tx · 45dDeyhUhVVjpKMDBZyhGQMTpoidFAMpjSfunZ7dDsWz
3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq: -0.01300000 Waves
2023.02.10 14:38 [2443493] smart account 3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq > SELF 0.00000000 Waves
{
"type": 13,
"id": "45dDeyhUhVVjpKMDBZyhGQMTpoidFAMpjSfunZ7dDsWz",
"fee": 1300000,
"feeAssetId": null,
"timestamp": 1676029101687,
"version": 2,
"chainId": 84,
"sender": "3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq",
"senderPublicKey": "2u2wYYcVBQv43Cc71zkhHPPitkqgg6dqTZ3nUMvYJ1uq",
"proofs": [
"5GjxwC4FsB7iPquW1Z5Jwfa4YYmFPvAgkamUNA1boS6xHpSfA98gyrtn6Tf7GRYmzTawgACYRoh2v5un9DbMhhf6"
],
"script": "base64:BgIXCAISBQoDAQgIEgUKAwEICBIDCgEIEgAVAANTRVACAl9fAAhmZWVTY2FsZQkAtgIBAKCNBgEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQNrZXkADHBvb2xEaXNhYmxlZAkAAgECDVBvb2wgZGlzYWJsZWQADHBvb2xOb3RFeGlzdAkAAgECEVBvb2wgaXMgbm90IGV4aXN0AA5zbGlwcGFnZVRvb0JpZwkAAgECE1NsaXBwYWdlIGlzIHRvbyBiaWcBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmZjAAITJXNfX2ZhY3RvcnlDb250cmFjdAAPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBAmZjAAEaZmVlUHJvdG9jb2xDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIaZmVlUHJvdG9jb2xDb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAAtmZWVDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEJARpmZWVQcm90b2NvbENvbnRyYWN0QWRkcmVzcwABC3Byb3RvY29sRmVlAAkAuQkCCQDMCAICAiVzCQDMCAICC3Byb3RvY29sRmVlBQNuaWwFA1NFUAEHcG9vbEZlZQAJALkJAgkAzAgCAgIlcwkAzAgCAgdwb29sRmVlBQNuaWwFA1NFUAEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwIWaW50ZXJuYWxBbW91bnRBc3NldFN0chVpbnRlcm5hbFByaWNlQXNzZXRTdHIJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUWaW50ZXJuYWxBbW91bnRBc3NldFN0cgkAzAgCCQCkAwEFFWludGVybmFsUHJpY2VBc3NldFN0cgUDbmlsBQNTRVABFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEJaXNNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQJAAACCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkDCQEJaXNNYW5hZ2VyAQUBaQYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAENZ2V0QWNjQmFsYW5jZQEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQdhc3NldElkBAFpARVzd2FwQ2FsY3VsYXRlUkVBRE9OTFkDCGFtb3VudEluB2Fzc2V0SW4IYXNzZXRPdXQEBXByRmVlCQEFdmFsdWUBCQCfCAEJAQtwcm90b2NvbEZlZQAEFWZlZVByb3RvY29sQW1vdW50Q2FsYwkAvAIDCQC2AgEFCGFtb3VudEluCQC2AgEFBXByRmVlBQhmZWVTY2FsZQQFcGxGZWUJAQV2YWx1ZQEJAJ8IAQkBB3Bvb2xGZWUABBFmZWVQb29sQW1vdW50Q2FsYwkAvAIDCQC2AgEFCGFtb3VudEluCQC2AgEFBXBsRmVlBQhmZWVTY2FsZQQRZmVlUHJvdG9jb2xBbW91bnQDCQAAAgkAoAMBBRVmZWVQcm90b2NvbEFtb3VudENhbGMAAAkAtgIBAAEFFWZlZVByb3RvY29sQW1vdW50Q2FsYwQNZmVlUG9vbEFtb3VudAMJAAACCQCgAwEFEWZlZVBvb2xBbW91bnRDYWxjAAAJALYCAQABBRFmZWVQb29sQW1vdW50Q2FsYwQNY2xlYW5BbW91bnRJbgkAuAICCQC4AgIJALYCAQUIYW1vdW50SW4FEWZlZVByb3RvY29sQW1vdW50BRFmZWVQb29sQW1vdW50Q2FsYwQMbHBOb25SZXZlcnNlCQD8BwQFD2ZhY3RvcnlDb250cmFjdAIgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkJAMwIAgUHYXNzZXRJbgkAzAgCBQhhc3NldE91dAUDbmlsBQNuaWwECWxwUmV2ZXJzZQkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZCQDMCAIFCGFzc2V0T3V0CQDMCAIFB2Fzc2V0SW4FA25pbAUDbmlsBAskdDAyOTM0MzQzNwMJAQIhPQIFDGxwTm9uUmV2ZXJzZQUEdW5pdAQJaXNSZXZlcnNlBwQEcG9vbAoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AiFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkJAMwIAgUMbHBOb25SZXZlcnNlBQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBBQFAAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJAJQKAgUJaXNSZXZlcnNlBQRwb29sAwkBAiE9AgUJbHBSZXZlcnNlBQR1bml0BAlpc1JldmVyc2UGBARwb29sCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQkAzAgCBQlscFJldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQlpc1JldmVyc2UFBHBvb2wFDHBvb2xOb3RFeGlzdAQJaXNSZXZlcnNlCAULJHQwMjkzNDM0MzcCXzEEBHBvb2wIBQskdDAyOTM0MzQzNwJfMgQKcG9vbFN0YXR1cwoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AhVnZXRQb29sU3RhdHVzUkVBRE9OTFkJAMwIAgUEcG9vbAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAVjaGVjawMJAAACBQpwb29sU3RhdHVzAAEGBQxwb29sRGlzYWJsZWQDCQAAAgUFY2hlY2sFBWNoZWNrBAdwb29sQWRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCBQRwb29sAgAEA3JlcwoAAUAJAPwHBAUHcG9vbEFkcgIhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZCQDMCAIJAKADAQUNY2xlYW5BbW91bnRJbgkAzAgCBQlpc1JldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRzd2FwAwxhbW91bnRPdXRNaW4IYXNzZXRPdXQJYWRkcmVzc1RvBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHYXNzZXRJbgMJAAACCAUDcG10B2Fzc2V0SWQFBHVuaXQJAJsDAQIFV0FWRVMJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQIYW1vdW50SW4JAQV2YWx1ZQEIBQNwbXQGYW1vdW50BAVwckZlZQkBBXZhbHVlAQkAnwgBCQELcHJvdG9jb2xGZWUABBVmZWVQcm90b2NvbEFtb3VudENhbGMJALwCAwkAtgIBBQhhbW91bnRJbgkAtgIBBQVwckZlZQUIZmVlU2NhbGUEBXBsRmVlCQEFdmFsdWUBCQCfCAEJAQdwb29sRmVlAAQRZmVlUG9vbEFtb3VudENhbGMJALwCAwkAtgIBBQhhbW91bnRJbgkAtgIBBQVwbEZlZQUIZmVlU2NhbGUEEWZlZVByb3RvY29sQW1vdW50AwkAAAIJAKADAQUVZmVlUHJvdG9jb2xBbW91bnRDYWxjAAAJALYCAQABBRVmZWVQcm90b2NvbEFtb3VudENhbGMEDWZlZVBvb2xBbW91bnQDCQAAAgkAoAMBBRFmZWVQb29sQW1vdW50Q2FsYwAACQC2AgEAAQURZmVlUG9vbEFtb3VudENhbGMEDWNsZWFuQW1vdW50SW4JALgCAgkAuAICCQC2AgEFCGFtb3VudEluBRFmZWVQcm90b2NvbEFtb3VudAURZmVlUG9vbEFtb3VudENhbGMEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQMbHBOb25SZXZlcnNlCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZCQDMCAIJANgEAQUHYXNzZXRJbgkAzAgCBQhhc3NldE91dAUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFABQR1bml0BAlscFJldmVyc2UKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkJAMwIAgUIYXNzZXRPdXQJAMwIAgkA2AQBBQdhc3NldEluBQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAFBHVuaXQECyR0MDUwNzM1NTkyAwkBAiE9AgUMbHBOb25SZXZlcnNlBQR1bml0BAlpc1JldmVyc2UHBARwb29sCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQkAzAgCCQEFdmFsdWUBBQxscE5vblJldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQlpc1JldmVyc2UFBHBvb2wDCQECIT0CBQlscFJldmVyc2UFBHVuaXQECWlzUmV2ZXJzZQYEBHBvb2wKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZCQDMCAIJAQV2YWx1ZQEFCWxwUmV2ZXJzZQUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQCUCgIFCWlzUmV2ZXJzZQUEcG9vbAUMcG9vbE5vdEV4aXN0BAlpc1JldmVyc2UIBQskdDA1MDczNTU5MgJfMQQEcG9vbAgFCyR0MDUwNzM1NTkyAl8yBApwb29sU3RhdHVzCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCFWdldFBvb2xTdGF0dXNSRUFET05MWQkAzAgCBQRwb29sBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEBWNoZWNrAwkAAAIFCnBvb2xTdGF0dXMAAQYFDHBvb2xEaXNhYmxlZAMJAAACBQVjaGVjawUFY2hlY2sEB3Bvb2xBZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBHBvb2wEC3RvdGFsR2V0UmF3CgABQAkA/AcEBQdwb29sQWRyAiZjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwQW5kU2VuZFRva2VucwkAzAgCCQCgAwEFDWNsZWFuQW1vdW50SW4JAMwIAgUJaXNSZXZlcnNlCQDMCAIFDGFtb3VudE91dE1pbgkAzAgCBQlhZGRyZXNzVG8FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgkAoAMBBQ1jbGVhbkFtb3VudEluBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULZmVlQ29udHJhY3QJAKADAQURZmVlUHJvdG9jb2xBbW91bnQFB2Fzc2V0SW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUHcG9vbEFkcgkAoAMBBQ1mZWVQb29sQW1vdW50BQdhc3NldEluBQNuaWwFC3RvdGFsR2V0UmF3CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEm5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAht5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5mD1w7Q==",
"height": 2443493,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 8kuznLzHEABscZitMBk5NannaHhP3yZFWPby1SkdaQnb
Next: 9vnSnznJu69UUXtsX2NnvoyBFyoFBCVV8ctQMf9STgLm
Diff:
Old | New | | Differences |
---|
33 | 33 | | func n () = makeString(["%s", "protocolFee"], a) |
---|
34 | 34 | | |
---|
35 | 35 | | |
---|
36 | | - | func o (p) = { |
---|
37 | | - | let q = p |
---|
38 | | - | if ($isInstanceOf(q, "Int")) |
---|
| 36 | + | func o () = makeString(["%s", "poolFee"], a) |
---|
| 37 | + | |
---|
| 38 | + | |
---|
| 39 | + | func p (q) = { |
---|
| 40 | + | let r = q |
---|
| 41 | + | if ($isInstanceOf(r, "Int")) |
---|
39 | 42 | | then { |
---|
40 | | - | let r = q |
---|
41 | | - | r |
---|
| 43 | + | let s = r |
---|
| 44 | + | s |
---|
42 | 45 | | } |
---|
43 | 46 | | else throw("fail to cast into Int") |
---|
44 | 47 | | } |
---|
45 | 48 | | |
---|
46 | 49 | | |
---|
47 | | - | func s (t,u) = makeString(["%d%d", toString(t), toString(u)], a) |
---|
| 50 | + | func t (u,v) = makeString(["%d%d", toString(u), toString(v)], a) |
---|
48 | 51 | | |
---|
49 | 52 | | |
---|
50 | | - | func v () = { |
---|
51 | | - | let q = getString(h()) |
---|
52 | | - | if ($isInstanceOf(q, "String")) |
---|
| 53 | + | func w () = { |
---|
| 54 | + | let r = getString(h()) |
---|
| 55 | + | if ($isInstanceOf(r, "String")) |
---|
53 | 56 | | then { |
---|
54 | | - | let w = q |
---|
55 | | - | fromBase58String(w) |
---|
| 57 | + | let x = r |
---|
| 58 | + | fromBase58String(x) |
---|
56 | 59 | | } |
---|
57 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
| 60 | + | else if ($isInstanceOf(r, "Unit")) |
---|
58 | 61 | | then unit |
---|
59 | 62 | | else throw("Match error") |
---|
60 | 63 | | } |
---|
61 | 64 | | |
---|
62 | 65 | | |
---|
63 | | - | func x () = { |
---|
64 | | - | let q = getString(i()) |
---|
65 | | - | if ($isInstanceOf(q, "String")) |
---|
| 66 | + | func y () = { |
---|
| 67 | + | let r = getString(i()) |
---|
| 68 | + | if ($isInstanceOf(r, "String")) |
---|
66 | 69 | | then { |
---|
67 | | - | let w = q |
---|
68 | | - | fromBase58String(w) |
---|
| 70 | + | let x = r |
---|
| 71 | + | fromBase58String(x) |
---|
69 | 72 | | } |
---|
70 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
| 73 | + | else if ($isInstanceOf(r, "Unit")) |
---|
71 | 74 | | then unit |
---|
72 | 75 | | else throw("Match error") |
---|
73 | 76 | | } |
---|
74 | 77 | | |
---|
75 | 78 | | |
---|
76 | | - | func y (z) = { |
---|
77 | | - | let q = v() |
---|
78 | | - | if ($isInstanceOf(q, "ByteVector")) |
---|
| 79 | + | func z (A) = { |
---|
| 80 | + | let r = w() |
---|
| 81 | + | if ($isInstanceOf(r, "ByteVector")) |
---|
79 | 82 | | then { |
---|
80 | | - | let A = q |
---|
81 | | - | (z.callerPublicKey == A) |
---|
| 83 | + | let B = r |
---|
| 84 | + | (A.callerPublicKey == B) |
---|
82 | 85 | | } |
---|
83 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
84 | | - | then (z.caller == this) |
---|
| 86 | + | else if ($isInstanceOf(r, "Unit")) |
---|
| 87 | + | then (A.caller == this) |
---|
85 | 88 | | else throw("Match error") |
---|
86 | 89 | | } |
---|
87 | 90 | | |
---|
88 | 91 | | |
---|
89 | | - | func B (z) = if (y(z)) |
---|
| 92 | + | func C (A) = if (z(A)) |
---|
90 | 93 | | then true |
---|
91 | 94 | | else throw("permission denied") |
---|
92 | 95 | | |
---|
93 | 96 | | |
---|
94 | | - | func C (D) = if ((D == "WAVES")) |
---|
| 97 | + | func D (E) = if ((E == "WAVES")) |
---|
95 | 98 | | then wavesBalance(this).available |
---|
96 | | - | else assetBalance(this, fromBase58String(D)) |
---|
| 99 | + | else assetBalance(this, fromBase58String(E)) |
---|
97 | 100 | | |
---|
98 | 101 | | |
---|
99 | | - | @Callable(z) |
---|
100 | | - | func swapCalculateREADONLY (E,F,G) = { |
---|
101 | | - | let H = value(getInteger(n())) |
---|
102 | | - | let I = fraction(toBigInt(E), toBigInt(H), b) |
---|
103 | | - | let J = if ((toInt(I) == 0)) |
---|
| 102 | + | @Callable(A) |
---|
| 103 | + | func swapCalculateREADONLY (F,G,H) = { |
---|
| 104 | + | let I = value(getInteger(n())) |
---|
| 105 | + | let J = fraction(toBigInt(F), toBigInt(I), b) |
---|
| 106 | + | let K = value(getInteger(o())) |
---|
| 107 | + | let L = fraction(toBigInt(F), toBigInt(K), b) |
---|
| 108 | + | let M = if ((toInt(J) == 0)) |
---|
104 | 109 | | then toBigInt(1) |
---|
105 | | - | else I |
---|
106 | | - | let K = (toBigInt(E) - J) |
---|
107 | | - | let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil) |
---|
108 | | - | let M = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil) |
---|
109 | | - | let N = if ((L != unit)) |
---|
| 110 | + | else J |
---|
| 111 | + | let N = if ((toInt(L) == 0)) |
---|
| 112 | + | then toBigInt(1) |
---|
| 113 | + | else L |
---|
| 114 | + | let O = ((toBigInt(F) - M) - L) |
---|
| 115 | + | let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, H], nil) |
---|
| 116 | + | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [H, G], nil) |
---|
| 117 | + | let R = if ((P != unit)) |
---|
110 | 118 | | then { |
---|
111 | | - | let O = false |
---|
112 | | - | let P = { |
---|
113 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil) |
---|
114 | | - | if ($isInstanceOf(Q, "String")) |
---|
115 | | - | then Q |
---|
116 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 119 | + | let S = false |
---|
| 120 | + | let T = { |
---|
| 121 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [P], nil) |
---|
| 122 | + | if ($isInstanceOf(U, "String")) |
---|
| 123 | + | then U |
---|
| 124 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
117 | 125 | | } |
---|
118 | | - | $Tuple2(O, P) |
---|
| 126 | + | $Tuple2(S, T) |
---|
119 | 127 | | } |
---|
120 | | - | else if ((M != unit)) |
---|
| 128 | + | else if ((Q != unit)) |
---|
121 | 129 | | then { |
---|
122 | | - | let O = true |
---|
123 | | - | let P = { |
---|
124 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [M], nil) |
---|
125 | | - | if ($isInstanceOf(Q, "String")) |
---|
126 | | - | then Q |
---|
127 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 130 | + | let S = true |
---|
| 131 | + | let T = { |
---|
| 132 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [Q], nil) |
---|
| 133 | + | if ($isInstanceOf(U, "String")) |
---|
| 134 | + | then U |
---|
| 135 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
128 | 136 | | } |
---|
129 | | - | $Tuple2(O, P) |
---|
| 137 | + | $Tuple2(S, T) |
---|
130 | 138 | | } |
---|
131 | 139 | | else f |
---|
132 | | - | let O = N._1 |
---|
133 | | - | let P = N._2 |
---|
134 | | - | let R = { |
---|
135 | | - | let Q = invoke(k, "getPoolStatusREADONLY", [P], nil) |
---|
136 | | - | if ($isInstanceOf(Q, "Int")) |
---|
137 | | - | then Q |
---|
138 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 140 | + | let S = R._1 |
---|
| 141 | + | let T = R._2 |
---|
| 142 | + | let V = { |
---|
| 143 | + | let U = invoke(k, "getPoolStatusREADONLY", [T], nil) |
---|
| 144 | + | if ($isInstanceOf(U, "Int")) |
---|
| 145 | + | then U |
---|
| 146 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
139 | 147 | | } |
---|
140 | | - | let S = if ((R == 1)) |
---|
| 148 | + | let W = if ((V == 1)) |
---|
141 | 149 | | then true |
---|
142 | 150 | | else e |
---|
143 | | - | if ((S == S)) |
---|
| 151 | + | if ((W == W)) |
---|
144 | 152 | | then { |
---|
145 | | - | let T = addressFromStringValue(valueOrElse(P, "")) |
---|
146 | | - | let U = { |
---|
147 | | - | let Q = invoke(T, "calculateAmountOutForSwapREADONLY", [toInt(K), O], nil) |
---|
148 | | - | if ($isInstanceOf(Q, "Int")) |
---|
149 | | - | then Q |
---|
150 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 153 | + | let X = addressFromStringValue(valueOrElse(T, "")) |
---|
| 154 | + | let Y = { |
---|
| 155 | + | let U = invoke(X, "calculateAmountOutForSwapREADONLY", [toInt(O), S], nil) |
---|
| 156 | + | if ($isInstanceOf(U, "Int")) |
---|
| 157 | + | then U |
---|
| 158 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
151 | 159 | | } |
---|
152 | | - | $Tuple2(nil, U) |
---|
| 160 | + | $Tuple2(nil, Y) |
---|
153 | 161 | | } |
---|
154 | 162 | | else throw("Strict value is not equal to itself.") |
---|
155 | 163 | | } |
---|
156 | 164 | | |
---|
157 | 165 | | |
---|
158 | 166 | | |
---|
159 | | - | @Callable(z) |
---|
160 | | - | func swap (V,G,W) = { |
---|
161 | | - | let X = value(z.payments[0]) |
---|
162 | | - | let F = if ((X.assetId == unit)) |
---|
| 167 | + | @Callable(A) |
---|
| 168 | + | func swap (Z,H,aa) = { |
---|
| 169 | + | let ab = value(A.payments[0]) |
---|
| 170 | + | let G = if ((ab.assetId == unit)) |
---|
163 | 171 | | then toBytes("WAVES") |
---|
164 | | - | else value(X.assetId) |
---|
165 | | - | let E = value(X.amount) |
---|
166 | | - | let H = value(getInteger(n())) |
---|
167 | | - | let I = fraction(toBigInt(E), toBigInt(H), b) |
---|
168 | | - | let J = if ((toInt(I) == 0)) |
---|
| 172 | + | else value(ab.assetId) |
---|
| 173 | + | let F = value(ab.amount) |
---|
| 174 | + | let I = value(getInteger(n())) |
---|
| 175 | + | let J = fraction(toBigInt(F), toBigInt(I), b) |
---|
| 176 | + | let K = value(getInteger(o())) |
---|
| 177 | + | let L = fraction(toBigInt(F), toBigInt(K), b) |
---|
| 178 | + | let M = if ((toInt(J) == 0)) |
---|
169 | 179 | | then toBigInt(1) |
---|
170 | | - | else I |
---|
171 | | - | let K = (toBigInt(E) - J) |
---|
172 | | - | let Y = [if ((size(z.payments) == 1)) |
---|
| 180 | + | else J |
---|
| 181 | + | let N = if ((toInt(L) == 0)) |
---|
| 182 | + | then toBigInt(1) |
---|
| 183 | + | else L |
---|
| 184 | + | let O = ((toBigInt(F) - M) - L) |
---|
| 185 | + | let ac = [if ((size(A.payments) == 1)) |
---|
173 | 186 | | then true |
---|
174 | 187 | | else throw("exactly 1 payment are expected")] |
---|
175 | | - | if ((Y == Y)) |
---|
| 188 | + | if ((ac == ac)) |
---|
176 | 189 | | then { |
---|
177 | | - | let L = { |
---|
178 | | - | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil) |
---|
179 | | - | if ($isInstanceOf(Q, "String")) |
---|
180 | | - | then Q |
---|
| 190 | + | let P = { |
---|
| 191 | + | let U = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(G), H], nil) |
---|
| 192 | + | if ($isInstanceOf(U, "String")) |
---|
| 193 | + | then U |
---|
181 | 194 | | else unit |
---|
182 | 195 | | } |
---|
183 | | - | let M = { |
---|
184 | | - | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil) |
---|
185 | | - | if ($isInstanceOf(Q, "String")) |
---|
186 | | - | then Q |
---|
| 196 | + | let Q = { |
---|
| 197 | + | let U = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [H, toBase58String(G)], nil) |
---|
| 198 | + | if ($isInstanceOf(U, "String")) |
---|
| 199 | + | then U |
---|
187 | 200 | | else unit |
---|
188 | 201 | | } |
---|
189 | | - | let Z = if ((L != unit)) |
---|
| 202 | + | let ad = if ((P != unit)) |
---|
190 | 203 | | then { |
---|
191 | | - | let O = false |
---|
192 | | - | let P = { |
---|
193 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil) |
---|
194 | | - | if ($isInstanceOf(Q, "String")) |
---|
195 | | - | then Q |
---|
196 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 204 | + | let S = false |
---|
| 205 | + | let T = { |
---|
| 206 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(P)], nil) |
---|
| 207 | + | if ($isInstanceOf(U, "String")) |
---|
| 208 | + | then U |
---|
| 209 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
197 | 210 | | } |
---|
198 | | - | $Tuple2(O, P) |
---|
| 211 | + | $Tuple2(S, T) |
---|
199 | 212 | | } |
---|
200 | | - | else if ((M != unit)) |
---|
| 213 | + | else if ((Q != unit)) |
---|
201 | 214 | | then { |
---|
202 | | - | let O = true |
---|
203 | | - | let P = { |
---|
204 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(M)], nil) |
---|
205 | | - | if ($isInstanceOf(Q, "String")) |
---|
206 | | - | then Q |
---|
207 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 215 | + | let S = true |
---|
| 216 | + | let T = { |
---|
| 217 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(Q)], nil) |
---|
| 218 | + | if ($isInstanceOf(U, "String")) |
---|
| 219 | + | then U |
---|
| 220 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
208 | 221 | | } |
---|
209 | | - | $Tuple2(O, P) |
---|
| 222 | + | $Tuple2(S, T) |
---|
210 | 223 | | } |
---|
211 | 224 | | else f |
---|
212 | | - | let O = Z._1 |
---|
213 | | - | let P = Z._2 |
---|
214 | | - | let R = { |
---|
215 | | - | let Q = invoke(k, "getPoolStatusREADONLY", [P], nil) |
---|
216 | | - | if ($isInstanceOf(Q, "Int")) |
---|
217 | | - | then Q |
---|
218 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 225 | + | let S = ad._1 |
---|
| 226 | + | let T = ad._2 |
---|
| 227 | + | let V = { |
---|
| 228 | + | let U = invoke(k, "getPoolStatusREADONLY", [T], nil) |
---|
| 229 | + | if ($isInstanceOf(U, "Int")) |
---|
| 230 | + | then U |
---|
| 231 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
219 | 232 | | } |
---|
220 | | - | let S = if ((R == 1)) |
---|
| 233 | + | let W = if ((V == 1)) |
---|
221 | 234 | | then true |
---|
222 | 235 | | else e |
---|
223 | | - | if ((S == S)) |
---|
| 236 | + | if ((W == W)) |
---|
224 | 237 | | then { |
---|
225 | | - | let T = addressFromStringValue(P) |
---|
226 | | - | let aa = { |
---|
227 | | - | let Q = invoke(T, "calculateAmountOutForSwapAndSendTokens", [toInt(K), O, V, W], [AttachedPayment(F, toInt(K))]) |
---|
228 | | - | if ($isInstanceOf(Q, "Int")) |
---|
229 | | - | then Q |
---|
230 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 238 | + | let X = addressFromStringValue(T) |
---|
| 239 | + | let ae = { |
---|
| 240 | + | let U = invoke(X, "calculateAmountOutForSwapAndSendTokens", [toInt(O), S, Z, aa], [AttachedPayment(G, toInt(O))]) |
---|
| 241 | + | if ($isInstanceOf(U, "Int")) |
---|
| 242 | + | then U |
---|
| 243 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
231 | 244 | | } |
---|
232 | | - | $Tuple2([ScriptTransfer(m, toInt(J), F)], aa) |
---|
| 245 | + | $Tuple2([ScriptTransfer(m, toInt(M), G), ScriptTransfer(X, toInt(N), G)], ae) |
---|
233 | 246 | | } |
---|
234 | 247 | | else throw("Strict value is not equal to itself.") |
---|
235 | 248 | | } |
---|
|
238 | 251 | | |
---|
239 | 252 | | |
---|
240 | 253 | | |
---|
241 | | - | @Callable(z) |
---|
242 | | - | func setManager (ab) = { |
---|
243 | | - | let ac = B(z) |
---|
244 | | - | if ((ac == ac)) |
---|
| 254 | + | @Callable(A) |
---|
| 255 | + | func setManager (af) = { |
---|
| 256 | + | let ag = C(A) |
---|
| 257 | + | if ((ag == ag)) |
---|
245 | 258 | | then { |
---|
246 | | - | let ad = fromBase58String(ab) |
---|
247 | | - | if ((ad == ad)) |
---|
248 | | - | then [StringEntry(i(), ab)] |
---|
| 259 | + | let ah = fromBase58String(af) |
---|
| 260 | + | if ((ah == ah)) |
---|
| 261 | + | then [StringEntry(i(), af)] |
---|
249 | 262 | | else throw("Strict value is not equal to itself.") |
---|
250 | 263 | | } |
---|
251 | 264 | | else throw("Strict value is not equal to itself.") |
---|
|
253 | 266 | | |
---|
254 | 267 | | |
---|
255 | 268 | | |
---|
256 | | - | @Callable(z) |
---|
| 269 | + | @Callable(A) |
---|
257 | 270 | | func confirmManager () = { |
---|
258 | | - | let ae = x() |
---|
259 | | - | let af = if (isDefined(ae)) |
---|
| 271 | + | let ai = y() |
---|
| 272 | + | let aj = if (isDefined(ai)) |
---|
260 | 273 | | then true |
---|
261 | 274 | | else throw("no pending manager") |
---|
262 | | - | if ((af == af)) |
---|
| 275 | + | if ((aj == aj)) |
---|
263 | 276 | | then { |
---|
264 | | - | let ag = if ((z.callerPublicKey == value(ae))) |
---|
| 277 | + | let ak = if ((A.callerPublicKey == value(ai))) |
---|
265 | 278 | | then true |
---|
266 | 279 | | else throw("you are not pending manager") |
---|
267 | | - | if ((ag == ag)) |
---|
268 | | - | then [StringEntry(h(), toBase58String(value(ae))), DeleteEntry(i())] |
---|
| 280 | + | if ((ak == ak)) |
---|
| 281 | + | then [StringEntry(h(), toBase58String(value(ai))), DeleteEntry(i())] |
---|
269 | 282 | | else throw("Strict value is not equal to itself.") |
---|
270 | 283 | | } |
---|
271 | 284 | | else throw("Strict value is not equal to itself.") |
---|
272 | 285 | | } |
---|
273 | 286 | | |
---|
274 | 287 | | |
---|
275 | | - | @Verifier(ah) |
---|
276 | | - | func ai () = { |
---|
277 | | - | let aj = { |
---|
278 | | - | let q = v() |
---|
279 | | - | if ($isInstanceOf(q, "ByteVector")) |
---|
| 288 | + | @Verifier(al) |
---|
| 289 | + | func am () = { |
---|
| 290 | + | let an = { |
---|
| 291 | + | let r = w() |
---|
| 292 | + | if ($isInstanceOf(r, "ByteVector")) |
---|
280 | 293 | | then { |
---|
281 | | - | let A = q |
---|
282 | | - | A |
---|
| 294 | + | let B = r |
---|
| 295 | + | B |
---|
283 | 296 | | } |
---|
284 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
285 | | - | then ah.senderPublicKey |
---|
| 297 | + | else if ($isInstanceOf(r, "Unit")) |
---|
| 298 | + | then al.senderPublicKey |
---|
286 | 299 | | else throw("Match error") |
---|
287 | 300 | | } |
---|
288 | | - | sigVerify(ah.bodyBytes, ah.proofs[0], aj) |
---|
| 301 | + | sigVerify(al.bodyBytes, al.proofs[0], an) |
---|
289 | 302 | | } |
---|
290 | 303 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 6 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "__" |
---|
5 | 5 | | |
---|
6 | 6 | | let b = toBigInt(100000) |
---|
7 | 7 | | |
---|
8 | 8 | | func c (d) = valueOrErrorMessage(getString(this, d), ("No data for this.key=" + d)) |
---|
9 | 9 | | |
---|
10 | 10 | | |
---|
11 | 11 | | let e = throw("Pool disabled") |
---|
12 | 12 | | |
---|
13 | 13 | | let f = throw("Pool is not exist") |
---|
14 | 14 | | |
---|
15 | 15 | | let g = throw("Slippage is too big") |
---|
16 | 16 | | |
---|
17 | 17 | | func h () = "%s__managerPublicKey" |
---|
18 | 18 | | |
---|
19 | 19 | | |
---|
20 | 20 | | func i () = "%s__pendingManagerPublicKey" |
---|
21 | 21 | | |
---|
22 | 22 | | |
---|
23 | 23 | | func j () = "%s__factoryContract" |
---|
24 | 24 | | |
---|
25 | 25 | | |
---|
26 | 26 | | let k = addressFromStringValue(c(j())) |
---|
27 | 27 | | |
---|
28 | 28 | | func l () = makeString(["%s", "feeProtocolContractAddress"], a) |
---|
29 | 29 | | |
---|
30 | 30 | | |
---|
31 | 31 | | let m = addressFromStringValue(c(l())) |
---|
32 | 32 | | |
---|
33 | 33 | | func n () = makeString(["%s", "protocolFee"], a) |
---|
34 | 34 | | |
---|
35 | 35 | | |
---|
36 | | - | func o (p) = { |
---|
37 | | - | let q = p |
---|
38 | | - | if ($isInstanceOf(q, "Int")) |
---|
| 36 | + | func o () = makeString(["%s", "poolFee"], a) |
---|
| 37 | + | |
---|
| 38 | + | |
---|
| 39 | + | func p (q) = { |
---|
| 40 | + | let r = q |
---|
| 41 | + | if ($isInstanceOf(r, "Int")) |
---|
39 | 42 | | then { |
---|
40 | | - | let r = q |
---|
41 | | - | r |
---|
| 43 | + | let s = r |
---|
| 44 | + | s |
---|
42 | 45 | | } |
---|
43 | 46 | | else throw("fail to cast into Int") |
---|
44 | 47 | | } |
---|
45 | 48 | | |
---|
46 | 49 | | |
---|
47 | | - | func s (t,u) = makeString(["%d%d", toString(t), toString(u)], a) |
---|
| 50 | + | func t (u,v) = makeString(["%d%d", toString(u), toString(v)], a) |
---|
48 | 51 | | |
---|
49 | 52 | | |
---|
50 | | - | func v () = { |
---|
51 | | - | let q = getString(h()) |
---|
52 | | - | if ($isInstanceOf(q, "String")) |
---|
| 53 | + | func w () = { |
---|
| 54 | + | let r = getString(h()) |
---|
| 55 | + | if ($isInstanceOf(r, "String")) |
---|
53 | 56 | | then { |
---|
54 | | - | let w = q |
---|
55 | | - | fromBase58String(w) |
---|
| 57 | + | let x = r |
---|
| 58 | + | fromBase58String(x) |
---|
56 | 59 | | } |
---|
57 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
| 60 | + | else if ($isInstanceOf(r, "Unit")) |
---|
58 | 61 | | then unit |
---|
59 | 62 | | else throw("Match error") |
---|
60 | 63 | | } |
---|
61 | 64 | | |
---|
62 | 65 | | |
---|
63 | | - | func x () = { |
---|
64 | | - | let q = getString(i()) |
---|
65 | | - | if ($isInstanceOf(q, "String")) |
---|
| 66 | + | func y () = { |
---|
| 67 | + | let r = getString(i()) |
---|
| 68 | + | if ($isInstanceOf(r, "String")) |
---|
66 | 69 | | then { |
---|
67 | | - | let w = q |
---|
68 | | - | fromBase58String(w) |
---|
| 70 | + | let x = r |
---|
| 71 | + | fromBase58String(x) |
---|
69 | 72 | | } |
---|
70 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
| 73 | + | else if ($isInstanceOf(r, "Unit")) |
---|
71 | 74 | | then unit |
---|
72 | 75 | | else throw("Match error") |
---|
73 | 76 | | } |
---|
74 | 77 | | |
---|
75 | 78 | | |
---|
76 | | - | func y (z) = { |
---|
77 | | - | let q = v() |
---|
78 | | - | if ($isInstanceOf(q, "ByteVector")) |
---|
| 79 | + | func z (A) = { |
---|
| 80 | + | let r = w() |
---|
| 81 | + | if ($isInstanceOf(r, "ByteVector")) |
---|
79 | 82 | | then { |
---|
80 | | - | let A = q |
---|
81 | | - | (z.callerPublicKey == A) |
---|
| 83 | + | let B = r |
---|
| 84 | + | (A.callerPublicKey == B) |
---|
82 | 85 | | } |
---|
83 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
84 | | - | then (z.caller == this) |
---|
| 86 | + | else if ($isInstanceOf(r, "Unit")) |
---|
| 87 | + | then (A.caller == this) |
---|
85 | 88 | | else throw("Match error") |
---|
86 | 89 | | } |
---|
87 | 90 | | |
---|
88 | 91 | | |
---|
89 | | - | func B (z) = if (y(z)) |
---|
| 92 | + | func C (A) = if (z(A)) |
---|
90 | 93 | | then true |
---|
91 | 94 | | else throw("permission denied") |
---|
92 | 95 | | |
---|
93 | 96 | | |
---|
94 | | - | func C (D) = if ((D == "WAVES")) |
---|
| 97 | + | func D (E) = if ((E == "WAVES")) |
---|
95 | 98 | | then wavesBalance(this).available |
---|
96 | | - | else assetBalance(this, fromBase58String(D)) |
---|
| 99 | + | else assetBalance(this, fromBase58String(E)) |
---|
97 | 100 | | |
---|
98 | 101 | | |
---|
99 | | - | @Callable(z) |
---|
100 | | - | func swapCalculateREADONLY (E,F,G) = { |
---|
101 | | - | let H = value(getInteger(n())) |
---|
102 | | - | let I = fraction(toBigInt(E), toBigInt(H), b) |
---|
103 | | - | let J = if ((toInt(I) == 0)) |
---|
| 102 | + | @Callable(A) |
---|
| 103 | + | func swapCalculateREADONLY (F,G,H) = { |
---|
| 104 | + | let I = value(getInteger(n())) |
---|
| 105 | + | let J = fraction(toBigInt(F), toBigInt(I), b) |
---|
| 106 | + | let K = value(getInteger(o())) |
---|
| 107 | + | let L = fraction(toBigInt(F), toBigInt(K), b) |
---|
| 108 | + | let M = if ((toInt(J) == 0)) |
---|
104 | 109 | | then toBigInt(1) |
---|
105 | | - | else I |
---|
106 | | - | let K = (toBigInt(E) - J) |
---|
107 | | - | let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil) |
---|
108 | | - | let M = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil) |
---|
109 | | - | let N = if ((L != unit)) |
---|
| 110 | + | else J |
---|
| 111 | + | let N = if ((toInt(L) == 0)) |
---|
| 112 | + | then toBigInt(1) |
---|
| 113 | + | else L |
---|
| 114 | + | let O = ((toBigInt(F) - M) - L) |
---|
| 115 | + | let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, H], nil) |
---|
| 116 | + | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [H, G], nil) |
---|
| 117 | + | let R = if ((P != unit)) |
---|
110 | 118 | | then { |
---|
111 | | - | let O = false |
---|
112 | | - | let P = { |
---|
113 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil) |
---|
114 | | - | if ($isInstanceOf(Q, "String")) |
---|
115 | | - | then Q |
---|
116 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 119 | + | let S = false |
---|
| 120 | + | let T = { |
---|
| 121 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [P], nil) |
---|
| 122 | + | if ($isInstanceOf(U, "String")) |
---|
| 123 | + | then U |
---|
| 124 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
117 | 125 | | } |
---|
118 | | - | $Tuple2(O, P) |
---|
| 126 | + | $Tuple2(S, T) |
---|
119 | 127 | | } |
---|
120 | | - | else if ((M != unit)) |
---|
| 128 | + | else if ((Q != unit)) |
---|
121 | 129 | | then { |
---|
122 | | - | let O = true |
---|
123 | | - | let P = { |
---|
124 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [M], nil) |
---|
125 | | - | if ($isInstanceOf(Q, "String")) |
---|
126 | | - | then Q |
---|
127 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 130 | + | let S = true |
---|
| 131 | + | let T = { |
---|
| 132 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [Q], nil) |
---|
| 133 | + | if ($isInstanceOf(U, "String")) |
---|
| 134 | + | then U |
---|
| 135 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
128 | 136 | | } |
---|
129 | | - | $Tuple2(O, P) |
---|
| 137 | + | $Tuple2(S, T) |
---|
130 | 138 | | } |
---|
131 | 139 | | else f |
---|
132 | | - | let O = N._1 |
---|
133 | | - | let P = N._2 |
---|
134 | | - | let R = { |
---|
135 | | - | let Q = invoke(k, "getPoolStatusREADONLY", [P], nil) |
---|
136 | | - | if ($isInstanceOf(Q, "Int")) |
---|
137 | | - | then Q |
---|
138 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 140 | + | let S = R._1 |
---|
| 141 | + | let T = R._2 |
---|
| 142 | + | let V = { |
---|
| 143 | + | let U = invoke(k, "getPoolStatusREADONLY", [T], nil) |
---|
| 144 | + | if ($isInstanceOf(U, "Int")) |
---|
| 145 | + | then U |
---|
| 146 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
139 | 147 | | } |
---|
140 | | - | let S = if ((R == 1)) |
---|
| 148 | + | let W = if ((V == 1)) |
---|
141 | 149 | | then true |
---|
142 | 150 | | else e |
---|
143 | | - | if ((S == S)) |
---|
| 151 | + | if ((W == W)) |
---|
144 | 152 | | then { |
---|
145 | | - | let T = addressFromStringValue(valueOrElse(P, "")) |
---|
146 | | - | let U = { |
---|
147 | | - | let Q = invoke(T, "calculateAmountOutForSwapREADONLY", [toInt(K), O], nil) |
---|
148 | | - | if ($isInstanceOf(Q, "Int")) |
---|
149 | | - | then Q |
---|
150 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 153 | + | let X = addressFromStringValue(valueOrElse(T, "")) |
---|
| 154 | + | let Y = { |
---|
| 155 | + | let U = invoke(X, "calculateAmountOutForSwapREADONLY", [toInt(O), S], nil) |
---|
| 156 | + | if ($isInstanceOf(U, "Int")) |
---|
| 157 | + | then U |
---|
| 158 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
151 | 159 | | } |
---|
152 | | - | $Tuple2(nil, U) |
---|
| 160 | + | $Tuple2(nil, Y) |
---|
153 | 161 | | } |
---|
154 | 162 | | else throw("Strict value is not equal to itself.") |
---|
155 | 163 | | } |
---|
156 | 164 | | |
---|
157 | 165 | | |
---|
158 | 166 | | |
---|
159 | | - | @Callable(z) |
---|
160 | | - | func swap (V,G,W) = { |
---|
161 | | - | let X = value(z.payments[0]) |
---|
162 | | - | let F = if ((X.assetId == unit)) |
---|
| 167 | + | @Callable(A) |
---|
| 168 | + | func swap (Z,H,aa) = { |
---|
| 169 | + | let ab = value(A.payments[0]) |
---|
| 170 | + | let G = if ((ab.assetId == unit)) |
---|
163 | 171 | | then toBytes("WAVES") |
---|
164 | | - | else value(X.assetId) |
---|
165 | | - | let E = value(X.amount) |
---|
166 | | - | let H = value(getInteger(n())) |
---|
167 | | - | let I = fraction(toBigInt(E), toBigInt(H), b) |
---|
168 | | - | let J = if ((toInt(I) == 0)) |
---|
| 172 | + | else value(ab.assetId) |
---|
| 173 | + | let F = value(ab.amount) |
---|
| 174 | + | let I = value(getInteger(n())) |
---|
| 175 | + | let J = fraction(toBigInt(F), toBigInt(I), b) |
---|
| 176 | + | let K = value(getInteger(o())) |
---|
| 177 | + | let L = fraction(toBigInt(F), toBigInt(K), b) |
---|
| 178 | + | let M = if ((toInt(J) == 0)) |
---|
169 | 179 | | then toBigInt(1) |
---|
170 | | - | else I |
---|
171 | | - | let K = (toBigInt(E) - J) |
---|
172 | | - | let Y = [if ((size(z.payments) == 1)) |
---|
| 180 | + | else J |
---|
| 181 | + | let N = if ((toInt(L) == 0)) |
---|
| 182 | + | then toBigInt(1) |
---|
| 183 | + | else L |
---|
| 184 | + | let O = ((toBigInt(F) - M) - L) |
---|
| 185 | + | let ac = [if ((size(A.payments) == 1)) |
---|
173 | 186 | | then true |
---|
174 | 187 | | else throw("exactly 1 payment are expected")] |
---|
175 | | - | if ((Y == Y)) |
---|
| 188 | + | if ((ac == ac)) |
---|
176 | 189 | | then { |
---|
177 | | - | let L = { |
---|
178 | | - | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil) |
---|
179 | | - | if ($isInstanceOf(Q, "String")) |
---|
180 | | - | then Q |
---|
| 190 | + | let P = { |
---|
| 191 | + | let U = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(G), H], nil) |
---|
| 192 | + | if ($isInstanceOf(U, "String")) |
---|
| 193 | + | then U |
---|
181 | 194 | | else unit |
---|
182 | 195 | | } |
---|
183 | | - | let M = { |
---|
184 | | - | let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil) |
---|
185 | | - | if ($isInstanceOf(Q, "String")) |
---|
186 | | - | then Q |
---|
| 196 | + | let Q = { |
---|
| 197 | + | let U = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [H, toBase58String(G)], nil) |
---|
| 198 | + | if ($isInstanceOf(U, "String")) |
---|
| 199 | + | then U |
---|
187 | 200 | | else unit |
---|
188 | 201 | | } |
---|
189 | | - | let Z = if ((L != unit)) |
---|
| 202 | + | let ad = if ((P != unit)) |
---|
190 | 203 | | then { |
---|
191 | | - | let O = false |
---|
192 | | - | let P = { |
---|
193 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil) |
---|
194 | | - | if ($isInstanceOf(Q, "String")) |
---|
195 | | - | then Q |
---|
196 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 204 | + | let S = false |
---|
| 205 | + | let T = { |
---|
| 206 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(P)], nil) |
---|
| 207 | + | if ($isInstanceOf(U, "String")) |
---|
| 208 | + | then U |
---|
| 209 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
197 | 210 | | } |
---|
198 | | - | $Tuple2(O, P) |
---|
| 211 | + | $Tuple2(S, T) |
---|
199 | 212 | | } |
---|
200 | | - | else if ((M != unit)) |
---|
| 213 | + | else if ((Q != unit)) |
---|
201 | 214 | | then { |
---|
202 | | - | let O = true |
---|
203 | | - | let P = { |
---|
204 | | - | let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(M)], nil) |
---|
205 | | - | if ($isInstanceOf(Q, "String")) |
---|
206 | | - | then Q |
---|
207 | | - | else throw(($getType(Q) + " couldn't be cast to String")) |
---|
| 215 | + | let S = true |
---|
| 216 | + | let T = { |
---|
| 217 | + | let U = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(Q)], nil) |
---|
| 218 | + | if ($isInstanceOf(U, "String")) |
---|
| 219 | + | then U |
---|
| 220 | + | else throw(($getType(U) + " couldn't be cast to String")) |
---|
208 | 221 | | } |
---|
209 | | - | $Tuple2(O, P) |
---|
| 222 | + | $Tuple2(S, T) |
---|
210 | 223 | | } |
---|
211 | 224 | | else f |
---|
212 | | - | let O = Z._1 |
---|
213 | | - | let P = Z._2 |
---|
214 | | - | let R = { |
---|
215 | | - | let Q = invoke(k, "getPoolStatusREADONLY", [P], nil) |
---|
216 | | - | if ($isInstanceOf(Q, "Int")) |
---|
217 | | - | then Q |
---|
218 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 225 | + | let S = ad._1 |
---|
| 226 | + | let T = ad._2 |
---|
| 227 | + | let V = { |
---|
| 228 | + | let U = invoke(k, "getPoolStatusREADONLY", [T], nil) |
---|
| 229 | + | if ($isInstanceOf(U, "Int")) |
---|
| 230 | + | then U |
---|
| 231 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
219 | 232 | | } |
---|
220 | | - | let S = if ((R == 1)) |
---|
| 233 | + | let W = if ((V == 1)) |
---|
221 | 234 | | then true |
---|
222 | 235 | | else e |
---|
223 | | - | if ((S == S)) |
---|
| 236 | + | if ((W == W)) |
---|
224 | 237 | | then { |
---|
225 | | - | let T = addressFromStringValue(P) |
---|
226 | | - | let aa = { |
---|
227 | | - | let Q = invoke(T, "calculateAmountOutForSwapAndSendTokens", [toInt(K), O, V, W], [AttachedPayment(F, toInt(K))]) |
---|
228 | | - | if ($isInstanceOf(Q, "Int")) |
---|
229 | | - | then Q |
---|
230 | | - | else throw(($getType(Q) + " couldn't be cast to Int")) |
---|
| 238 | + | let X = addressFromStringValue(T) |
---|
| 239 | + | let ae = { |
---|
| 240 | + | let U = invoke(X, "calculateAmountOutForSwapAndSendTokens", [toInt(O), S, Z, aa], [AttachedPayment(G, toInt(O))]) |
---|
| 241 | + | if ($isInstanceOf(U, "Int")) |
---|
| 242 | + | then U |
---|
| 243 | + | else throw(($getType(U) + " couldn't be cast to Int")) |
---|
231 | 244 | | } |
---|
232 | | - | $Tuple2([ScriptTransfer(m, toInt(J), F)], aa) |
---|
| 245 | + | $Tuple2([ScriptTransfer(m, toInt(M), G), ScriptTransfer(X, toInt(N), G)], ae) |
---|
233 | 246 | | } |
---|
234 | 247 | | else throw("Strict value is not equal to itself.") |
---|
235 | 248 | | } |
---|
236 | 249 | | else throw("Strict value is not equal to itself.") |
---|
237 | 250 | | } |
---|
238 | 251 | | |
---|
239 | 252 | | |
---|
240 | 253 | | |
---|
241 | | - | @Callable(z) |
---|
242 | | - | func setManager (ab) = { |
---|
243 | | - | let ac = B(z) |
---|
244 | | - | if ((ac == ac)) |
---|
| 254 | + | @Callable(A) |
---|
| 255 | + | func setManager (af) = { |
---|
| 256 | + | let ag = C(A) |
---|
| 257 | + | if ((ag == ag)) |
---|
245 | 258 | | then { |
---|
246 | | - | let ad = fromBase58String(ab) |
---|
247 | | - | if ((ad == ad)) |
---|
248 | | - | then [StringEntry(i(), ab)] |
---|
| 259 | + | let ah = fromBase58String(af) |
---|
| 260 | + | if ((ah == ah)) |
---|
| 261 | + | then [StringEntry(i(), af)] |
---|
249 | 262 | | else throw("Strict value is not equal to itself.") |
---|
250 | 263 | | } |
---|
251 | 264 | | else throw("Strict value is not equal to itself.") |
---|
252 | 265 | | } |
---|
253 | 266 | | |
---|
254 | 267 | | |
---|
255 | 268 | | |
---|
256 | | - | @Callable(z) |
---|
| 269 | + | @Callable(A) |
---|
257 | 270 | | func confirmManager () = { |
---|
258 | | - | let ae = x() |
---|
259 | | - | let af = if (isDefined(ae)) |
---|
| 271 | + | let ai = y() |
---|
| 272 | + | let aj = if (isDefined(ai)) |
---|
260 | 273 | | then true |
---|
261 | 274 | | else throw("no pending manager") |
---|
262 | | - | if ((af == af)) |
---|
| 275 | + | if ((aj == aj)) |
---|
263 | 276 | | then { |
---|
264 | | - | let ag = if ((z.callerPublicKey == value(ae))) |
---|
| 277 | + | let ak = if ((A.callerPublicKey == value(ai))) |
---|
265 | 278 | | then true |
---|
266 | 279 | | else throw("you are not pending manager") |
---|
267 | | - | if ((ag == ag)) |
---|
268 | | - | then [StringEntry(h(), toBase58String(value(ae))), DeleteEntry(i())] |
---|
| 280 | + | if ((ak == ak)) |
---|
| 281 | + | then [StringEntry(h(), toBase58String(value(ai))), DeleteEntry(i())] |
---|
269 | 282 | | else throw("Strict value is not equal to itself.") |
---|
270 | 283 | | } |
---|
271 | 284 | | else throw("Strict value is not equal to itself.") |
---|
272 | 285 | | } |
---|
273 | 286 | | |
---|
274 | 287 | | |
---|
275 | | - | @Verifier(ah) |
---|
276 | | - | func ai () = { |
---|
277 | | - | let aj = { |
---|
278 | | - | let q = v() |
---|
279 | | - | if ($isInstanceOf(q, "ByteVector")) |
---|
| 288 | + | @Verifier(al) |
---|
| 289 | + | func am () = { |
---|
| 290 | + | let an = { |
---|
| 291 | + | let r = w() |
---|
| 292 | + | if ($isInstanceOf(r, "ByteVector")) |
---|
280 | 293 | | then { |
---|
281 | | - | let A = q |
---|
282 | | - | A |
---|
| 294 | + | let B = r |
---|
| 295 | + | B |
---|
283 | 296 | | } |
---|
284 | | - | else if ($isInstanceOf(q, "Unit")) |
---|
285 | | - | then ah.senderPublicKey |
---|
| 297 | + | else if ($isInstanceOf(r, "Unit")) |
---|
| 298 | + | then al.senderPublicKey |
---|
286 | 299 | | else throw("Match error") |
---|
287 | 300 | | } |
---|
288 | | - | sigVerify(ah.bodyBytes, ah.proofs[0], aj) |
---|
| 301 | + | sigVerify(al.bodyBytes, al.proofs[0], an) |
---|
289 | 302 | | } |
---|
290 | 303 | | |
---|