tx · 8VMLbvKuxLnnqbh5BMzKX74ywJMra4hS6pZXLKLRkW8m 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh: -0.01800000 Waves 2024.12.18 09:56 [3419649] smart account 3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh > SELF 0.00000000 Waves
{ "type": 13, "id": "8VMLbvKuxLnnqbh5BMzKX74ywJMra4hS6pZXLKLRkW8m", "fee": 1800000, "feeAssetId": null, "timestamp": 1734505029057, "version": 2, "chainId": 84, "sender": "3N3g7W8FPoQ7g5EadbAD2GVjrZT5RWpHZZh", "senderPublicKey": "Ap7CkWd6fzBU34kGo4GJJzC5q4qWXuLVunzE25PchdGS", "proofs": [ "4NHveRmRwydEsfyX7WmDj3Kw3gKtrzcLWrLMhzdyQzzPR652DfAFPPdKgNmSaYi79D3m2Scocdc2zeeg4smZrWfv" ], "script": "base64:BgIyCAISBwoFCAgICAESABIAEggKBggICAgICBIDCgEYEgASBAoCCAgSBAoCCAgSBAoCCAhDABBjb250cmFjdEZpbGVuYW1lAg91c2VyX3Bvb2xzLnJpZGUAA1NFUAICX18ADHdhdmVzQXNzZXRJZAIFV0FWRVMAB1ZMVFBPT0wCB1ZMVFBPT0wACFNUQkxQT09MAghTVEJMUE9PTAARaW52YWxpZFByaWNlQXNzZXQCE0ludmFsaWQgcHJpY2UgYXNzZXQBB3dyYXBFcnIBA21zZwkAuQkCCQDMCAIFEGNvbnRyYWN0RmlsZW5hbWUJAMwIAgICOiAJAMwIAgUDbXNnBQNuaWwCAAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnAQd0aHJvd1BEAAkBCHRocm93RXJyAQIRUGVybWlzc2lvbiBkZW5pZWQBFHRocm93Q3JlYXRlTm90Q2FsbGVkAAkBCHRocm93RXJyAQIkQ3JlYXRlIGlzIG5vdCBjYWxsZWQgZm9yIGFzc2V0cyBwYWlyARF0aHJvd1lvdU5vdElzc3VlcgAJAQh0aHJvd0VycgECHllvdSBhcmUgbm90IGFtb3VudEFzc2V0IGlzc3VlcgEPdGhyb3dQb29sRXhpc3RzAAkBCHRocm93RXJyAQIkUG9vbCB3aXRoIHN1Y2ggYXNzZXRzIGFscmVhZHkgZXhpc3RzARV0aHJvd0Fzc2V0Tm90VmVyaWZpZWQACQEIdGhyb3dFcnIBAhVBc3NldCBpcyBub3QgdmVyaWZpZWQBFnRocm93SW52YWxpZFByaWNlQXNzZXQACQEIdGhyb3dFcnIBBRFpbnZhbGlkUHJpY2VBc3NldAEUdGhyb3dJbnZhbGlkRmVlQXNzZXQACQEIdGhyb3dFcnIBAhFJbnZhbGlkIGZlZSBhc3NldAEXdGhyb3dJbnZhbGlkQW1vdW50QXNzZXQACQEIdGhyb3dFcnIBAh1JbnZhbGlkIGFtb3VudCBhc3NldCBhdHRhY2hlZAESdGhyb3dJbnZhbGlkU3RhdHVzAAkBCHRocm93RXJyAQIOSW52YWxpZCBzdGF0dXMBH3Rocm93Q2FuQWN0aXZhdGVPbmx5UGVuZGluZ1Bvb2wACQEIdGhyb3dFcnIBAipDYW4gYWN0aXZhdGUgcG9vbCBvbmx5IGluICdwZW5kaW5nJyBzdGF0dXMBHXRocm93RmFjdG9yeVJldHVybmVkTm90U3RyaW5nAAkBCHRocm93RXJyAQIdRmFjdG9yeVYyIHJldHVybmVkIG5vdCBzdHJpbmcBHHRocm93SW52YWxpZFByaWNlQXNzZXRBbW91bnQACQEIdGhyb3dFcnIBAhppbnZhbGlkIHByaWNlIGFzc2V0IGFtb3VudAEPdGhyb3dJbnZhbGlkRmVlAAkBCHRocm93RXJyAQILaW52YWxpZCBmZWUBFXRocm93SW52YWxpZEFzc2V0UGFpcgAJAQh0aHJvd0VycgECEmludmFsaWQgYXNzZXQgcGFpcgETa2V5TWFuYWdlclB1YmxpY0tleQAJALkJAgkAzAgCAgIlcwkAzAgCAhBtYW5hZ2VyUHVibGljS2V5BQNuaWwFA1NFUAEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQ9rZXlBZG1pblB1YktleXMACQC5CQIJAMwIAgICJXMJAMwIAgIMYWRtaW5QdWJLZXlzBQNuaWwFA1NFUAEJa2V5U3RhdHVzAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGF0dXMJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQARJrZXlGYWN0b3J5Q29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFA1NFUAEWa2V5QXNzZXRzU3RvcmVDb250cmFjdAAJALkJAgkAzAgCAgIlcwkAzAgCAhNhc3NldHNTdG9yZUNvbnRyYWN0BQNuaWwFA1NFUAETa2V5RW1pc3Npb25Db250cmFjdAAJALkJAgkAzAgCAgIlcwkAzAgCAhBlbWlzc2lvbkNvbnRyYWN0BQNuaWwFA1NFUAEJa2V5U3VmZml4Ag1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdWZmaXgJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQAQxrZXlMYXN0SW5kZXgACQC5CQIJAMwIAgICJXMJAMwIAgIJbGFzdEluZGV4BQNuaWwFA1NFUAALaW5kZXhTdWZmaXgCAXUADXN0YXR1c1BlbmRpbmcCB3BlbmRpbmcADnN0YXR1c0RlY2xpbmVkAghkZWNsaW5lZAAMc3RhdHVzQWN0aXZlAgZhY3RpdmUACHN0YXR1c2VzCQDMCAIFDXN0YXR1c1BlbmRpbmcJAMwIAgUOc3RhdHVzRGVjbGluZWQJAMwIAgUMc3RhdHVzQWN0aXZlBQNuaWwBD2tleUNyZWF0ZUNhbGxlZAINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMY3JlYXRlQ2FsbGVkCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA1NFUAEPa2V5Q3JlYXRlQ2FsbGVyAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgxjcmVhdGVDYWxsZXIJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQARRrZXlBbW91bnRBc3NldEFtb3VudAINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRYW1vdW50QXNzZXRBbW91bnQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQARNrZXlQcmljZUFzc2V0QW1vdW50Ag1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBwcmljZUFzc2V0QW1vdW50CQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA1NFUAEJa2V5SGVpZ2h0Ag1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZoZWlnaHQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQAQtrZXlQb29sVHlwZQINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcG9vbFR5cGUJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDU0VQAQ1rZXlGZWVBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCmZlZUFzc2V0SWQFA25pbAUDU0VQAQxrZXlGZWVBbW91bnQACQC5CQIJAMwIAgICJXMJAMwIAgIJZmVlQW1vdW50BQNuaWwFA1NFUAEca2V5UG9vbEFzc2V0RGVmYXVsdE1pbkFtb3VudAAJALkJAgkAzAgCAgIlcwkAzAgCAhlwb29sQXNzZXREZWZhdWx0TWluQW1vdW50BQNuaWwFA1NFUAEWa2V5UG9vbEFzc2V0c01pbkFtb3VudAEHYXNzZXRJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgIScG9vbEFzc2V0TWluQW1vdW50CQDMCAIFB2Fzc2V0SWQFA25pbAUDU0VQAQ5rZXlQcmljZUFzc2V0cwAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQNTRVABEmtleU1lbWVQb29sRmFjdG9yeQAJALkJAgkAzAgCAgIlcwkAzAgCAg9tZW1lUG9vbEZhY3RvcnkFA25pbAUDU0VQARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzAQ9nZXRTdHJpbmdPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFA2tleQkArAICBQNrZXkCDyBpcyBub3QgZGVmaW5lZAESc3RyaW5nT3B0aW9uVG9MaXN0AQxzdHJpbmdPclVuaXQEByRtYXRjaDAFDHN0cmluZ09yVW5pdAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDADCQAAAgkAsQIBBQFzAAAFA25pbAkAvAkCBQFzBQNTRVADCQABAgUHJG1hdGNoMAIEVW5pdAUDbmlsCQACAQILTWF0Y2ggZXJyb3IAD2ZhY3RvcnlDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEJARJrZXlGYWN0b3J5Q29udHJhY3QAABlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIWdm90aW5nRW1pc3Npb25Db250cmFjdAUDbmlsBQNTRVAAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ9mYWN0b3J5Q29udHJhY3QFGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QJAQd3cmFwRXJyAQIsdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQAImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFA1NFUAAfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFImtleVZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QJAQd3cmFwRXJyAQI2dm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzIGlzIHJlcXVpcmVkAQ5pc0NyZWF0ZUNhbGxlZAINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBD2tleUNyZWF0ZUNhbGxlZAIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAcBEG11c3RDcmVhdGVDYWxsZWQCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkAwkBDmlzQ3JlYXRlQ2FsbGVkAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBgkBFHRocm93Q3JlYXRlTm90Q2FsbGVkAAEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEE21hbmFnZXJWYXVsdEFkZHJlc3MJARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQlpc01hbmFnZXIBAWkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAkAAAIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQttdXN0TWFuYWdlcgEBaQMJAQlpc01hbmFnZXIBBQFpBgkBB3Rocm93UEQAAQltdXN0QWRtaW4BAWkECGFkbWluUEtzCQESc3RyaW5nT3B0aW9uVG9MaXN0AQkAoggBCQEPa2V5QWRtaW5QdWJLZXlzAAMJAQ9jb250YWluc0VsZW1lbnQCBQhhZG1pblBLcwkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkGCQELbXVzdE1hbmFnZXIBBQFpARFpc01lbWVQb29sRmFjdG9yeQEBaQQPbWVtZVBvb2xGYWN0b3J5CQCdCAIFD2ZhY3RvcnlDb250cmFjdAkBEmtleU1lbWVQb29sRmFjdG9yeQAEByRtYXRjaDAFD21lbWVQb29sRmFjdG9yeQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB2FkZHJlc3MFByRtYXRjaDAJAAACCQClCAEIBQFpBmNhbGxlcgUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgRVbml0BwkAAgECC01hdGNoIGVycm9yAQppc1ZlcmlmaWVkAQdhc3NldElkCQAAAgkBC3ZhbHVlT3JFbHNlAgkAmggCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QACQCsAgIJAKwCAgIIc3RhdHVzXzwFB2Fzc2V0SWQCAT4AAAACAQxnZXRJZEFuZEluZm8BB3BheW1lbnQEByRtYXRjaDAIBQdwYXltZW50B2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAEBGluZm8JAQV2YWx1ZQEJAOwHAQUCaWQJAJQKAgkA2AQBBQJpZAUEaW5mbwMJAAECBQckbWF0Y2gwAgRVbml0CQCUCgIFDHdhdmVzQXNzZXRJZAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQt2YWxpZFN0YXR1cwEGc3RhdHVzCQEPY29udGFpbnNFbGVtZW50AgUIc3RhdHVzZXMFBnN0YXR1cwEHX2NyZWF0ZQIBaQhwb29sVHlwZQQSYW1vdW50QXNzZXRQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEEXByaWNlQXNzZXRQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAEED2ZlZUFzc2V0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwACBAskdDA2ODI5NjkwMQkBDGdldElkQW5kSW5mbwEFEmFtb3VudEFzc2V0UGF5bWVudAQNYW1vdW50QXNzZXRJZAgFCyR0MDY4Mjk2OTAxAl8xBA9hbW91bnRBc3NldEluZm8IBQskdDA2ODI5NjkwMQJfMgQLJHQwNjkwNDY5NzMJAQxnZXRJZEFuZEluZm8BBRFwcmljZUFzc2V0UGF5bWVudAQMcHJpY2VBc3NldElkCAULJHQwNjkwNDY5NzMCXzEEDnByaWNlQXNzZXRJbmZvCAULJHQwNjkwNDY5NzMCXzIECyR0MDY5NzY3MDM5CQEMZ2V0SWRBbmRJbmZvAQUPZmVlQXNzZXRQYXltZW50BApmZWVBc3NldElkCAULJHQwNjk3NjcwMzkCXzEEDGZlZUFzc2V0SW5mbwgFCyR0MDY5NzY3MDM5Al8yBBFhbW91bnRBc3NldEFtb3VudAgFEmFtb3VudEFzc2V0UGF5bWVudAZhbW91bnQEEHByaWNlQXNzZXRBbW91bnQIBRFwcmljZUFzc2V0UGF5bWVudAZhbW91bnQEDmZlZUFzc2V0QW1vdW50CAUPZmVlQXNzZXRQYXltZW50BmFtb3VudAQPcHJpY2VBc3NldHNMaXN0CQESc3RyaW5nT3B0aW9uVG9MaXN0AQkAnQgCBQ9mYWN0b3J5Q29udHJhY3QJAQ5rZXlQcmljZUFzc2V0cwAEFWFzc2V0TWluQW1vdW50RGVmYXVsdAkBEUBleHRyTmF0aXZlKDEwNTApAgUPZmFjdG9yeUNvbnRyYWN0CQEca2V5UG9vbEFzc2V0RGVmYXVsdE1pbkFtb3VudAAEFGFtb3VudEFzc2V0TWluQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFD2ZhY3RvcnlDb250cmFjdAkBFmtleVBvb2xBc3NldHNNaW5BbW91bnQBBQ1hbW91bnRBc3NldElkBRVhc3NldE1pbkFtb3VudERlZmF1bHQEE3ByaWNlQXNzZXRNaW5BbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPZmFjdG9yeUNvbnRyYWN0CQEWa2V5UG9vbEFzc2V0c01pbkFtb3VudAEFDHByaWNlQXNzZXRJZAUVYXNzZXRNaW5BbW91bnREZWZhdWx0BAlsYXN0SW5kZXgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGtleUxhc3RJbmRleAAAAAQIY3VySW5kZXgJAGQCBQlsYXN0SW5kZXgAAQQQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEJARNrZXlFbWlzc2lvbkNvbnRyYWN0AAQKcG9vbEV4aXN0cwoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AhJwb29sRXhpc3RzUkVBRE9OTFkJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBBQFAAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAZjaGVja3MJAMwIAgMJAQEhAQkBDmlzQ3JlYXRlQ2FsbGVkAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBgkBD3Rocm93UG9vbEV4aXN0cwAJAMwIAgMJAQEhAQUKcG9vbEV4aXN0cwYJAQ90aHJvd1Bvb2xFeGlzdHMACQDMCAIDCQECIT0CBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQGCQEVdGhyb3dJbnZhbGlkQXNzZXRQYWlyAAkAzAgCAwMJAQ9jb250YWluc0VsZW1lbnQCBQ9wcmljZUFzc2V0c0xpc3QFDWFtb3VudEFzc2V0SWQGCQEPY29udGFpbnNFbGVtZW50AgUPcHJpY2VBc3NldHNMaXN0BQxwcmljZUFzc2V0SWQGCQEVdGhyb3dJbnZhbGlkQXNzZXRQYWlyAAkAzAgCAwMDCQEJaXNNYW5hZ2VyAQUBaQYJARFpc01lbWVQb29sRmFjdG9yeQEFAWkGAwkBCmlzVmVyaWZpZWQBBQ1hbW91bnRBc3NldElkCQEKaXNWZXJpZmllZAEFDHByaWNlQXNzZXRJZAcGCQEVdGhyb3dJbnZhbGlkQXNzZXRQYWlyAAkAzAgCAwMDCQEJaXNNYW5hZ2VyAQUBaQYJARFpc01lbWVQb29sRmFjdG9yeQEFAWkGCQAAAgkAoggBCQENa2V5RmVlQXNzZXRJZAAFCmZlZUFzc2V0SWQGCQEUdGhyb3dJbnZhbGlkRmVlQXNzZXQACQDMCAIDAwMJAQlpc01hbmFnZXIBBQFpBgkBEWlzTWVtZVBvb2xGYWN0b3J5AQUBaQYJAGcCBRFhbW91bnRBc3NldEFtb3VudAUUYW1vdW50QXNzZXRNaW5BbW91bnQGCQEXdGhyb3dJbnZhbGlkQW1vdW50QXNzZXQACQDMCAIDAwMJAQlpc01hbmFnZXIBBQFpBgkBEWlzTWVtZVBvb2xGYWN0b3J5AQUBaQYJAGcCBRBwcmljZUFzc2V0QW1vdW50BRNwcmljZUFzc2V0TWluQW1vdW50BgkBHHRocm93SW52YWxpZFByaWNlQXNzZXRBbW91bnQACQDMCAIDAwMJAQlpc01hbmFnZXIBBQFpBgkBEWlzTWVtZVBvb2xGYWN0b3J5AQUBaQYJAAACBQ5mZWVBc3NldEFtb3VudAkAnwgBCQEMa2V5RmVlQW1vdW50AAYJAQ90aHJvd0ludmFsaWRGZWUABQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEE3BheW1lbnRzV2l0aEZlZVNpemUAAwQPYnVybkVtaXNzaW9uSW52AwkAZwIJAJADAQgFAWkIcGF5bWVudHMFE3BheW1lbnRzV2l0aEZlZVNpemUJAPwHBAUQZW1pc3Npb25Db250cmFjdAIEYnVybgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFCmZlZUFzc2V0SWQFDmZlZUFzc2V0QW1vdW50BQNuaWwFBHVuaXQDCQAAAgUPYnVybkVtaXNzaW9uSW52BQ9idXJuRW1pc3Npb25JbnYJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ9rZXlDcmVhdGVDYWxsZWQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlDcmVhdGVDYWxsZXICBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5TGFzdEluZGV4AAUIY3VySW5kZXgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCWtleVN1ZmZpeAIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAkArAICCQCkAwEFCGN1ckluZGV4BQtpbmRleFN1ZmZpeAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCWtleUhlaWdodAIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQlrZXlTdGF0dXMCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQFDXN0YXR1c1BlbmRpbmcJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlBbW91bnRBc3NldEFtb3VudAIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAURYW1vdW50QXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARNrZXlQcmljZUFzc2V0QW1vdW50AgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBRBwcmljZUFzc2V0QW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlQb29sVHlwZQIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAUIcG9vbFR5cGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkBaQELY29uc3RydWN0b3IFEGZhY3RvcnlWMkFkZHJlc3MSYXNzZXRzU3RvcmVBZGRyZXNzD2VtaXNzaW9uQWRkcmVzcwpmZWVBc3NldElkCWZlZUFtb3VudAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlGYWN0b3J5Q29udHJhY3QABRBmYWN0b3J5VjJBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAUSYXNzZXRzU3RvcmVBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlFbWlzc2lvbkNvbnRyYWN0AAUPZW1pc3Npb25BZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlGZWVBc3NldElkAAUKZmVlQXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDGtleUZlZUFtb3VudAAFCWZlZUFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBmNyZWF0ZQAJAQdfY3JlYXRlAgUBaQUHVkxUUE9PTAFpAQxjcmVhdGVTdGFibGUABAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAQdfY3JlYXRlAgUBaQUIU1RCTFBPT0wJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIYWN0aXZhdGUGC3Bvb2xBZGRyZXNzDWFtb3VudEFzc2V0SWQRYW1vdW50QXNzZXRUaWNrZXIMcHJpY2VBc3NldElkEHByaWNlQXNzZXRUaWNrZXIEbG9nbwQGY2hlY2tzCQDMCAIJAQltdXN0QWRtaW4BBQFpCQDMCAIDCQEOaXNDcmVhdGVDYWxsZWQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQGCQEUdGhyb3dDcmVhdGVOb3RDYWxsZWQACQDMCAIDCQAAAgkBBXZhbHVlAQkAoggBCQEJa2V5U3RhdHVzAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBQ1zdGF0dXNQZW5kaW5nBgkBH3Rocm93Q2FuQWN0aXZhdGVPbmx5UGVuZGluZ1Bvb2wABQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDnBvb2xUeXBlT3B0aW9uCQCdCAIFBHRoaXMJAQtrZXlQb29sVHlwZQIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAQSYWN0aXZhdGVOZXdQb29sSW52CQD8BwQFD2ZhY3RvcnlDb250cmFjdAIPYWN0aXZhdGVOZXdQb29sCQDMCAIFC3Bvb2xBZGRyZXNzCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkCQDMCAIJAKwCAgkArAICBRFhbW91bnRBc3NldFRpY2tlcgUQcHJpY2VBc3NldFRpY2tlcgICTFAJAMwIAgkArAICCQCsAgIJAKwCAgURYW1vdW50QXNzZXRUaWNrZXICAS8FEHByaWNlQXNzZXRUaWNrZXICHiBwb29sIGxpcXVpZGl0eSBwcm92aWRlciB0b2tlbgkAzAgCAAAJAMwIAgMJAAACBQ5wb29sVHlwZU9wdGlvbgUEdW5pdAIHVkxUUE9PTAkBBXZhbHVlAQUOcG9vbFR5cGVPcHRpb24JAMwIAgUEbG9nbwUDbmlsBQNuaWwDCQAAAgUSYWN0aXZhdGVOZXdQb29sSW52BRJhY3RpdmF0ZU5ld1Bvb2xJbnYECWxwQXNzZXRJZAQHJG1hdGNoMAUSYWN0aXZhdGVOZXdQb29sSW52AwkAAQIFByRtYXRjaDACBlN0cmluZwQCaWQFByRtYXRjaDAFAmlkCQEddGhyb3dGYWN0b3J5UmV0dXJuZWROb3RTdHJpbmcAAwkAAAIFCWxwQXNzZXRJZAUJbHBBc3NldElkBAliZWZvcmVQdXQJAPAHAgUEdGhpcwkA2QQBBQlscEFzc2V0SWQDCQAAAgUJYmVmb3JlUHV0BQliZWZvcmVQdXQEA3B1dAkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQtwb29sQWRkcmVzcwIDcHV0CQDMCAIAAAkAzAgCBwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFDWFtb3VudEFzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFDWFtb3VudEFzc2V0SWQJAQV2YWx1ZQEJAJ8IAQkBFGtleUFtb3VudEFzc2V0QW1vdW50AgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCAwkAAAIFDHByaWNlQXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUMcHJpY2VBc3NldElkCQEFdmFsdWUBCQCfCAEJARNrZXlQcmljZUFzc2V0QW1vdW50AgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBQNuaWwDCQAAAgUDcHV0BQNwdXQECGFmdGVyUHV0CQDwBwIFBHRoaXMJANkEAQUJbHBBc3NldElkAwkAAAIFCGFmdGVyUHV0BQhhZnRlclB1dAQEdXNlcgkBBXZhbHVlAQkApggBCQEFdmFsdWUBCQCiCAEJAQ9rZXlDcmVhdGVDYWxsZXICBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQEA3JlcwkA/AcEBR92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0AgdhcHByb3ZlCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAMJAAACBQNyZXMFA3JlcwkAzAgCCQELU3RyaW5nRW50cnkCCQEJa2V5U3RhdHVzAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBQxzdGF0dXNBY3RpdmUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUEdXNlcgkAZQIFCGFmdGVyUHV0BQliZWZvcmVQdXQJANkEAQUJbHBBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc2V0QWRtaW5zAQxhZG1pblB1YktleXMEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5QWRtaW5QdWJLZXlzAAkAuQkCBQxhZG1pblB1YktleXMFA1NFUAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3ByaWNlQXNzZXRzUkVBRE9OTFkACQCUCgIFA25pbAkBEnN0cmluZ09wdGlvblRvTGlzdAEJAKIIAQkBDmtleVByaWNlQXNzZXRzAAFpAQ5zdGF0dXNSRUFET05MWQINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQEBnN0YXR1cwQHJG1hdGNoMAkAoggBCQEJa2V5U3RhdHVzAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwUEdW5pdAkAlAoCBQNuaWwFBnN0YXR1cwFpARZnZXRQb29sQ3JlYXRvclJFQURPTkxZAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQHY3JlYXRvcgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEPa2V5Q3JlYXRlQ2FsbGVyAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkAgAJAJQKAgUDbmlsBQdjcmVhdG9yAWkBCmRlbGV0ZVBvb2wCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBAtjaGVja0NhbGxlcgMDCQAAAggFAWkGY2FsbGVyBQ9mYWN0b3J5Q29udHJhY3QGCQELbXVzdE1hbmFnZXIBBQFpBgkBCHRocm93RXJyAQIRUGVybWlzc2lvbiBkZW5pZWQDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlDcmVhdGVDYWxsZWQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBD2tleUNyZWF0ZUNhbGxlcgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEJa2V5U3VmZml4AgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlrZXlIZWlnaHQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCWtleVN0YXR1cwIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEUa2V5QW1vdW50QXNzZXRBbW91bnQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBE2tleVByaWNlQXNzZXRBbW91bnQCBQ1hbW91bnRBc3NldElkBQxwcmljZUFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleVBvb2xUeXBlAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXmq6nqa", "height": 3419649, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C1WDv6ANK9MfpBf6GG3xXmP7H2tEPibczdoYiuDT8Am2 Next: none Diff:
Old | New | Differences | |
---|---|---|---|
131 | 131 | func Y () = makeString(["%s", "priceAssets"], b) | |
132 | 132 | ||
133 | 133 | ||
134 | - | func Z () = { | |
135 | - | let aa = getString(y()) | |
136 | - | if ($isInstanceOf(aa, "String")) | |
134 | + | func Z () = makeString(["%s", "memePoolFactory"], b) | |
135 | + | ||
136 | + | ||
137 | + | func aa () = { | |
138 | + | let ab = getString(y()) | |
139 | + | if ($isInstanceOf(ab, "String")) | |
137 | 140 | then { | |
138 | - | let | |
139 | - | addressFromStringValue( | |
141 | + | let ac = ab | |
142 | + | addressFromStringValue(ac) | |
140 | 143 | } | |
141 | 144 | else this | |
142 | 145 | } | |
143 | 146 | ||
144 | 147 | ||
145 | - | func | |
148 | + | func ad (ae) = valueOrErrorMessage(getString(this, ae), (ae + " is not defined")) | |
146 | 149 | ||
147 | 150 | ||
148 | - | func | |
149 | - | let | |
150 | - | if ($isInstanceOf( | |
151 | + | func af (ag) = { | |
152 | + | let ab = ag | |
153 | + | if ($isInstanceOf(ab, "String")) | |
151 | 154 | then { | |
152 | - | let | |
153 | - | if ((size( | |
155 | + | let ac = ab | |
156 | + | if ((size(ac) == 0)) | |
154 | 157 | then nil | |
155 | - | else split_4C( | |
158 | + | else split_4C(ac, b) | |
156 | 159 | } | |
157 | - | else if ($isInstanceOf( | |
160 | + | else if ($isInstanceOf(ab, "Unit")) | |
158 | 161 | then nil | |
159 | 162 | else throw("Match error") | |
160 | 163 | } | |
161 | 164 | ||
162 | 165 | ||
163 | - | let | |
166 | + | let ah = addressFromStringValue(ad(D())) | |
164 | 167 | ||
165 | - | let | |
168 | + | let ai = makeString(["%s", "votingEmissionContract"], b) | |
166 | 169 | ||
167 | - | let | |
170 | + | let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission contract address is required"))) | |
168 | 171 | ||
169 | - | let | |
172 | + | let ak = makeString(["%s", "votingEmissionCandidateContract"], b) | |
170 | 173 | ||
171 | - | let | |
174 | + | let al = addressFromStringValue(valueOrErrorMessage(getString(aj, ak), g("voting emission candidate contract address is required"))) | |
172 | 175 | ||
173 | - | func | |
176 | + | func am (B,C) = valueOrElse(getBoolean(N(B, C)), false) | |
174 | 177 | ||
175 | 178 | ||
176 | - | func | |
179 | + | func an (B,C) = if (am(B, C)) | |
177 | 180 | then true | |
178 | 181 | else k() | |
179 | 182 | ||
180 | 183 | ||
181 | - | func | |
182 | - | let | |
183 | - | let | |
184 | - | if ($isInstanceOf( | |
184 | + | func ao () = { | |
185 | + | let ap = aa() | |
186 | + | let ab = getString(ap, x()) | |
187 | + | if ($isInstanceOf(ab, "String")) | |
185 | 188 | then { | |
186 | - | let | |
187 | - | fromBase58String( | |
189 | + | let ac = ab | |
190 | + | fromBase58String(ac) | |
188 | 191 | } | |
189 | - | else if ($isInstanceOf( | |
192 | + | else if ($isInstanceOf(ab, "Unit")) | |
190 | 193 | then unit | |
191 | 194 | else throw("Match error") | |
192 | 195 | } | |
193 | 196 | ||
194 | 197 | ||
195 | - | func | |
196 | - | let | |
197 | - | if ($isInstanceOf( | |
198 | + | func aq (ar) = { | |
199 | + | let ab = ao() | |
200 | + | if ($isInstanceOf(ab, "ByteVector")) | |
198 | 201 | then { | |
199 | - | let | |
200 | - | ( | |
202 | + | let as = ab | |
203 | + | (ar.callerPublicKey == as) | |
201 | 204 | } | |
202 | - | else if ($isInstanceOf( | |
203 | - | then ( | |
205 | + | else if ($isInstanceOf(ab, "Unit")) | |
206 | + | then (ar.caller == this) | |
204 | 207 | else throw("Match error") | |
205 | 208 | } | |
206 | 209 | ||
207 | 210 | ||
208 | - | func | |
211 | + | func at (ar) = if (aq(ar)) | |
209 | 212 | then true | |
210 | 213 | else j() | |
211 | 214 | ||
212 | 215 | ||
213 | - | func | |
214 | - | let | |
215 | - | if (containsElement( | |
216 | + | func au (ar) = { | |
217 | + | let av = af(getString(z())) | |
218 | + | if (containsElement(av, toBase58String(ar.callerPublicKey))) | |
216 | 219 | then true | |
217 | - | else | |
220 | + | else at(ar) | |
218 | 221 | } | |
219 | 222 | ||
220 | 223 | ||
221 | - | func av (X) = (valueOrElse(getInteger(addressFromStringValue(ac(E())), (("status_<" + X) + ">")), 0) == 2) | |
224 | + | func aw (ar) = { | |
225 | + | let ax = getString(ah, Z()) | |
226 | + | let ab = ax | |
227 | + | if ($isInstanceOf(ab, "String")) | |
228 | + | then { | |
229 | + | let ay = ab | |
230 | + | (toString(ar.caller) == ay) | |
231 | + | } | |
232 | + | else if ($isInstanceOf(ab, "Unit")) | |
233 | + | then false | |
234 | + | else throw("Match error") | |
235 | + | } | |
222 | 236 | ||
223 | 237 | ||
224 | - | func aw (ax) = { | |
225 | - | let aa = ax.assetId | |
226 | - | if ($isInstanceOf(aa, "ByteVector")) | |
238 | + | func az (X) = (valueOrElse(getInteger(addressFromStringValue(ad(E())), (("status_<" + X) + ">")), 0) == 2) | |
239 | + | ||
240 | + | ||
241 | + | func aA (aB) = { | |
242 | + | let ab = aB.assetId | |
243 | + | if ($isInstanceOf(ab, "ByteVector")) | |
227 | 244 | then { | |
228 | - | let | |
229 | - | let | |
230 | - | $Tuple2(toBase58String( | |
245 | + | let aC = ab | |
246 | + | let aD = value(assetInfo(aC)) | |
247 | + | $Tuple2(toBase58String(aC), aD) | |
231 | 248 | } | |
232 | - | else if ($isInstanceOf( | |
249 | + | else if ($isInstanceOf(ab, "Unit")) | |
233 | 250 | then $Tuple2(c, unit) | |
234 | 251 | else throw("Match error") | |
235 | 252 | } | |
236 | 253 | ||
237 | 254 | ||
238 | - | func | |
255 | + | func aE (aF) = containsElement(M, aF) | |
239 | 256 | ||
240 | 257 | ||
241 | - | func | |
242 | - | let | |
243 | - | let | |
244 | - | let | |
245 | - | let | |
246 | - | let B = | |
247 | - | let | |
248 | - | let | |
249 | - | let C = | |
250 | - | let | |
251 | - | let | |
252 | - | let | |
253 | - | let | |
254 | - | let | |
255 | - | let | |
256 | - | let | |
257 | - | let | |
258 | - | let | |
259 | - | let | |
260 | - | let | |
261 | - | let | |
262 | - | let | |
263 | - | let | |
264 | - | let | |
265 | - | let | |
266 | - | if ($isInstanceOf( | |
267 | - | then | |
268 | - | else throw(($getType( | |
258 | + | func aG (ar,aH) = { | |
259 | + | let aI = value(ar.payments[0]) | |
260 | + | let aJ = value(ar.payments[1]) | |
261 | + | let aK = value(ar.payments[2]) | |
262 | + | let aL = aA(aI) | |
263 | + | let B = aL._1 | |
264 | + | let aM = aL._2 | |
265 | + | let aN = aA(aJ) | |
266 | + | let C = aN._1 | |
267 | + | let aO = aN._2 | |
268 | + | let aP = aA(aK) | |
269 | + | let aQ = aP._1 | |
270 | + | let aR = aP._2 | |
271 | + | let aS = aI.amount | |
272 | + | let aT = aJ.amount | |
273 | + | let aU = aK.amount | |
274 | + | let aV = af(getString(ah, Y())) | |
275 | + | let aW = getIntegerValue(ah, V()) | |
276 | + | let aX = valueOrElse(getInteger(ah, W(B)), aW) | |
277 | + | let aY = valueOrElse(getInteger(ah, W(C)), aW) | |
278 | + | let aZ = valueOrElse(getInteger(H()), 0) | |
279 | + | let ba = (aZ + 1) | |
280 | + | let bb = addressFromStringValue(ad(F())) | |
281 | + | let bc = { | |
282 | + | let bd = invoke(ah, "poolExistsREADONLY", [B, C], nil) | |
283 | + | if ($isInstanceOf(bd, "Boolean")) | |
284 | + | then bd | |
285 | + | else throw(($getType(bd) + " couldn't be cast to Boolean")) | |
269 | 286 | } | |
270 | - | let | |
287 | + | let be = [if (!(am(B, C))) | |
271 | 288 | then true | |
272 | - | else m(), if (!( | |
289 | + | else m(), if (!(bc)) | |
273 | 290 | then true | |
274 | 291 | else m(), if ((B != C)) | |
275 | 292 | then true | |
276 | - | else w(), if (if ( | |
293 | + | else w(), if (if (containsElement(aV, B)) | |
277 | 294 | then true | |
278 | - | else if (av(B)) | |
279 | - | then av(C) | |
295 | + | else containsElement(aV, C)) | |
296 | + | then true | |
297 | + | else w(), if (if (if (aq(ar)) | |
298 | + | then true | |
299 | + | else aw(ar)) | |
300 | + | then true | |
301 | + | else if (az(B)) | |
302 | + | then az(C) | |
280 | 303 | else false) | |
281 | 304 | then true | |
282 | - | else w(), if (if ( | |
305 | + | else w(), if (if (if (aq(ar)) | |
283 | 306 | then true | |
284 | - | else | |
307 | + | else aw(ar)) | |
285 | 308 | then true | |
286 | - | else | |
309 | + | else (getString(T()) == aQ)) | |
287 | 310 | then true | |
288 | - | else | |
311 | + | else p(), if (if (if (aq(ar)) | |
289 | 312 | then true | |
290 | - | else | |
313 | + | else aw(ar)) | |
291 | 314 | then true | |
292 | - | else ( | |
315 | + | else (aS >= aX)) | |
293 | 316 | then true | |
294 | - | else q(), if (if ( | |
317 | + | else q(), if (if (if (aq(ar)) | |
295 | 318 | then true | |
296 | - | else ( | |
319 | + | else aw(ar)) | |
297 | 320 | then true | |
298 | - | else | |
321 | + | else (aT >= aY)) | |
299 | 322 | then true | |
300 | - | else (aQ == getInteger(U()))) | |
323 | + | else u(), if (if (if (aq(ar)) | |
324 | + | then true | |
325 | + | else aw(ar)) | |
326 | + | then true | |
327 | + | else (aU == getInteger(U()))) | |
301 | 328 | then true | |
302 | 329 | else v()] | |
303 | - | if (( | |
330 | + | if ((be == be)) | |
304 | 331 | then { | |
305 | - | let | |
306 | - | let | |
307 | - | then invoke( | |
332 | + | let bf = 3 | |
333 | + | let bg = if ((size(ar.payments) >= bf)) | |
334 | + | then invoke(bb, "burn", nil, [AttachedPayment(fromBase58String(aQ), aU)]) | |
308 | 335 | else unit | |
309 | - | if (( | |
310 | - | then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString( | |
336 | + | if ((bg == bg)) | |
337 | + | then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(ar.caller)), IntegerEntry(H(), ba), StringEntry(G(B, C), (toString(ba) + I)), IntegerEntry(R(B, C), height), StringEntry(A(B, C), J), IntegerEntry(P(B, C), aS), IntegerEntry(Q(B, C), aT), StringEntry(S(B, C), aH)] | |
311 | 338 | else throw("Strict value is not equal to itself.") | |
312 | 339 | } | |
313 | 340 | else throw("Strict value is not equal to itself.") | |
314 | 341 | } | |
315 | 342 | ||
316 | 343 | ||
317 | - | @Callable( | |
318 | - | func constructor ( | |
319 | - | let | |
320 | - | if (( | |
321 | - | then [StringEntry(D(), | |
344 | + | @Callable(ar) | |
345 | + | func constructor (bh,bi,bj,aQ,bk) = { | |
346 | + | let bl = at(ar) | |
347 | + | if ((bl == bl)) | |
348 | + | then [StringEntry(D(), bh), StringEntry(E(), bi), StringEntry(F(), bj), StringEntry(T(), aQ), IntegerEntry(U(), bk)] | |
322 | 349 | else throw("Strict value is not equal to itself.") | |
323 | 350 | } | |
324 | 351 | ||
325 | 352 | ||
326 | 353 | ||
327 | - | @Callable( | |
328 | - | func create () = | |
354 | + | @Callable(ar) | |
355 | + | func create () = aG(ar, d) | |
329 | 356 | ||
330 | 357 | ||
331 | 358 | ||
332 | - | @Callable( | |
359 | + | @Callable(ar) | |
333 | 360 | func createStable () = { | |
334 | - | let | |
335 | - | if (( | |
336 | - | then | |
361 | + | let bl = at(ar) | |
362 | + | if ((bl == bl)) | |
363 | + | then aG(ar, e) | |
337 | 364 | else throw("Strict value is not equal to itself.") | |
338 | 365 | } | |
339 | 366 | ||
340 | 367 | ||
341 | 368 | ||
342 | - | @Callable( | |
343 | - | func activate ( | |
344 | - | let | |
369 | + | @Callable(ar) | |
370 | + | func activate (bm,B,bn,C,bo,bp) = { | |
371 | + | let be = [au(ar), if (am(B, C)) | |
345 | 372 | then true | |
346 | 373 | else k(), if ((value(getString(A(B, C))) == J)) | |
347 | 374 | then true | |
348 | 375 | else s()] | |
349 | - | if (( | |
376 | + | if ((be == be)) | |
350 | 377 | then { | |
351 | - | let | |
352 | - | let | |
378 | + | let bq = getString(this, S(B, C)) | |
379 | + | let br = invoke(ah, "activateNewPool", [bm, B, C, ((bn + bo) + "LP"), (((bn + "/") + bo) + " pool liquidity provider token"), 0, if ((bq == unit)) | |
353 | 380 | then "VLTPOOL" | |
354 | - | else value( | |
355 | - | if (( | |
381 | + | else value(bq), bp], nil) | |
382 | + | if ((br == br)) | |
356 | 383 | then { | |
357 | - | let | |
358 | - | let | |
359 | - | if ($isInstanceOf( | |
384 | + | let bs = { | |
385 | + | let ab = br | |
386 | + | if ($isInstanceOf(ab, "String")) | |
360 | 387 | then { | |
361 | - | let | |
362 | - | | |
388 | + | let aC = ab | |
389 | + | aC | |
363 | 390 | } | |
364 | 391 | else t() | |
365 | 392 | } | |
366 | - | if (( | |
393 | + | if ((bs == bs)) | |
367 | 394 | then { | |
368 | - | let | |
369 | - | if (( | |
395 | + | let bt = assetBalance(this, fromBase58String(bs)) | |
396 | + | if ((bt == bt)) | |
370 | 397 | then { | |
371 | - | let | |
398 | + | let bu = invoke(addressFromStringValue(bm), "put", [0, false], [AttachedPayment(if ((B == "WAVES")) | |
372 | 399 | then unit | |
373 | 400 | else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES")) | |
374 | 401 | then unit | |
375 | 402 | else fromBase58String(C), value(getInteger(Q(B, C))))]) | |
376 | - | if (( | |
403 | + | if ((bu == bu)) | |
377 | 404 | then { | |
378 | - | let | |
379 | - | if (( | |
405 | + | let bv = assetBalance(this, fromBase58String(bs)) | |
406 | + | if ((bv == bv)) | |
380 | 407 | then { | |
381 | - | let | |
382 | - | let | |
383 | - | if (( | |
384 | - | then [StringEntry(A(B, C), L), ScriptTransfer( | |
408 | + | let bw = value(addressFromString(value(getString(O(B, C))))) | |
409 | + | let bx = invoke(al, "approve", [B, C], nil) | |
410 | + | if ((bx == bx)) | |
411 | + | then [StringEntry(A(B, C), L), ScriptTransfer(bw, (bv - bt), fromBase58String(bs))] | |
385 | 412 | else throw("Strict value is not equal to itself.") | |
386 | 413 | } | |
387 | 414 | else throw("Strict value is not equal to itself.") | |
399 | 426 | ||
400 | 427 | ||
401 | 428 | ||
402 | - | @Callable( | |
403 | - | func setAdmins ( | |
404 | - | let | |
405 | - | if (( | |
406 | - | then [StringEntry(z(), makeString( | |
429 | + | @Callable(ar) | |
430 | + | func setAdmins (by) = { | |
431 | + | let bl = at(ar) | |
432 | + | if ((bl == bl)) | |
433 | + | then [StringEntry(z(), makeString(by, b))] | |
407 | 434 | else throw("Strict value is not equal to itself.") | |
408 | 435 | } | |
409 | 436 | ||
410 | 437 | ||
411 | 438 | ||
412 | - | @Callable( | |
413 | - | func priceAssetsREADONLY () = $Tuple2(nil, | |
439 | + | @Callable(ar) | |
440 | + | func priceAssetsREADONLY () = $Tuple2(nil, af(getString(Y()))) | |
414 | 441 | ||
415 | 442 | ||
416 | 443 | ||
417 | - | @Callable( | |
444 | + | @Callable(ar) | |
418 | 445 | func statusREADONLY (B,C) = { | |
419 | - | let | |
420 | - | let | |
421 | - | if ($isInstanceOf( | |
446 | + | let aF = { | |
447 | + | let ab = getString(A(B, C)) | |
448 | + | if ($isInstanceOf(ab, "String")) | |
422 | 449 | then { | |
423 | - | let | |
424 | - | | |
450 | + | let ac = ab | |
451 | + | ac | |
425 | 452 | } | |
426 | 453 | else unit | |
427 | 454 | } | |
428 | - | $Tuple2(nil, | |
455 | + | $Tuple2(nil, aF) | |
429 | 456 | } | |
430 | 457 | ||
431 | 458 | ||
432 | 459 | ||
433 | - | @Callable( | |
460 | + | @Callable(ar) | |
434 | 461 | func getPoolCreatorREADONLY (B,C) = { | |
435 | - | let | |
436 | - | $Tuple2(nil, | |
462 | + | let bz = valueOrElse(getString(O(B, C)), "") | |
463 | + | $Tuple2(nil, bz) | |
437 | 464 | } | |
438 | 465 | ||
439 | 466 | ||
440 | 467 | ||
441 | - | @Callable( | |
468 | + | @Callable(ar) | |
442 | 469 | func deletePool (B,C) = { | |
443 | - | let | |
470 | + | let bl = if (if ((ar.caller == ah)) | |
444 | 471 | then true | |
445 | - | else | |
472 | + | else at(ar)) | |
446 | 473 | then true | |
447 | 474 | else i("Permission denied") | |
448 | - | if (( | |
475 | + | if ((bl == bl)) | |
449 | 476 | then [DeleteEntry(N(B, C)), DeleteEntry(O(B, C)), DeleteEntry(G(B, C)), DeleteEntry(R(B, C)), DeleteEntry(A(B, C)), DeleteEntry(P(B, C)), DeleteEntry(Q(B, C)), DeleteEntry(S(B, C))] | |
450 | 477 | else throw("Strict value is not equal to itself.") | |
451 | 478 | } | |
452 | 479 | ||
453 | 480 | ||
454 | - | @Verifier( | |
455 | - | func | |
456 | - | let | |
457 | - | let | |
458 | - | if ($isInstanceOf( | |
481 | + | @Verifier(bA) | |
482 | + | func bB () = { | |
483 | + | let bC = { | |
484 | + | let ab = ao() | |
485 | + | if ($isInstanceOf(ab, "ByteVector")) | |
459 | 486 | then { | |
460 | - | let | |
461 | - | | |
487 | + | let as = ab | |
488 | + | as | |
462 | 489 | } | |
463 | - | else if ($isInstanceOf( | |
464 | - | then | |
490 | + | else if ($isInstanceOf(ab, "Unit")) | |
491 | + | then bA.senderPublicKey | |
465 | 492 | else throw("Match error") | |
466 | 493 | } | |
467 | - | sigVerify( | |
494 | + | sigVerify(bA.bodyBytes, bA.proofs[0], bC) | |
468 | 495 | } | |
469 | 496 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "user_pools.ride" | |
5 | 5 | ||
6 | 6 | let b = "__" | |
7 | 7 | ||
8 | 8 | let c = "WAVES" | |
9 | 9 | ||
10 | 10 | let d = "VLTPOOL" | |
11 | 11 | ||
12 | 12 | let e = "STBLPOOL" | |
13 | 13 | ||
14 | 14 | let f = "Invalid price asset" | |
15 | 15 | ||
16 | 16 | func g (h) = makeString([a, ": ", h], "") | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func i (h) = throw(g(h)) | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func j () = i("Permission denied") | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func k () = i("Create is not called for assets pair") | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func l () = i("You are not amountAsset issuer") | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func m () = i("Pool with such assets already exists") | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func n () = i("Asset is not verified") | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func o () = i(f) | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func p () = i("Invalid fee asset") | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func q () = i("Invalid amount asset attached") | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func r () = i("Invalid status") | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func s () = i("Can activate pool only in 'pending' status") | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func t () = i("FactoryV2 returned not string") | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func u () = i("invalid price asset amount") | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | func v () = i("invalid fee") | |
59 | 59 | ||
60 | 60 | ||
61 | 61 | func w () = i("invalid asset pair") | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func x () = makeString(["%s", "managerPublicKey"], b) | |
65 | 65 | ||
66 | 66 | ||
67 | 67 | func y () = "%s__managerVaultAddress" | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | func z () = makeString(["%s", "adminPubKeys"], b) | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | func A (B,C) = makeString(["%s%s%s", "status", B, C], b) | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | func D () = makeString(["%s", "factoryContract"], b) | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func E () = makeString(["%s", "assetsStoreContract"], b) | |
80 | 80 | ||
81 | 81 | ||
82 | 82 | func F () = makeString(["%s", "emissionContract"], b) | |
83 | 83 | ||
84 | 84 | ||
85 | 85 | func G (B,C) = makeString(["%s%s%s", "suffix", B, C], b) | |
86 | 86 | ||
87 | 87 | ||
88 | 88 | func H () = makeString(["%s", "lastIndex"], b) | |
89 | 89 | ||
90 | 90 | ||
91 | 91 | let I = "u" | |
92 | 92 | ||
93 | 93 | let J = "pending" | |
94 | 94 | ||
95 | 95 | let K = "declined" | |
96 | 96 | ||
97 | 97 | let L = "active" | |
98 | 98 | ||
99 | 99 | let M = [J, K, L] | |
100 | 100 | ||
101 | 101 | func N (B,C) = makeString(["%s%s%s", "createCalled", B, C], b) | |
102 | 102 | ||
103 | 103 | ||
104 | 104 | func O (B,C) = makeString(["%s%s%s", "createCaller", B, C], b) | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | func P (B,C) = makeString(["%s%s%s", "amountAssetAmount", B, C], b) | |
108 | 108 | ||
109 | 109 | ||
110 | 110 | func Q (B,C) = makeString(["%s%s%s", "priceAssetAmount", B, C], b) | |
111 | 111 | ||
112 | 112 | ||
113 | 113 | func R (B,C) = makeString(["%s%s%s", "height", B, C], b) | |
114 | 114 | ||
115 | 115 | ||
116 | 116 | func S (B,C) = makeString(["%s%s%s", "poolType", B, C], b) | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | func T () = makeString(["%s", "feeAssetId"], b) | |
120 | 120 | ||
121 | 121 | ||
122 | 122 | func U () = makeString(["%s", "feeAmount"], b) | |
123 | 123 | ||
124 | 124 | ||
125 | 125 | func V () = makeString(["%s", "poolAssetDefaultMinAmount"], b) | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | func W (X) = makeString(["%s%s", "poolAssetMinAmount", X], b) | |
129 | 129 | ||
130 | 130 | ||
131 | 131 | func Y () = makeString(["%s", "priceAssets"], b) | |
132 | 132 | ||
133 | 133 | ||
134 | - | func Z () = { | |
135 | - | let aa = getString(y()) | |
136 | - | if ($isInstanceOf(aa, "String")) | |
134 | + | func Z () = makeString(["%s", "memePoolFactory"], b) | |
135 | + | ||
136 | + | ||
137 | + | func aa () = { | |
138 | + | let ab = getString(y()) | |
139 | + | if ($isInstanceOf(ab, "String")) | |
137 | 140 | then { | |
138 | - | let | |
139 | - | addressFromStringValue( | |
141 | + | let ac = ab | |
142 | + | addressFromStringValue(ac) | |
140 | 143 | } | |
141 | 144 | else this | |
142 | 145 | } | |
143 | 146 | ||
144 | 147 | ||
145 | - | func | |
148 | + | func ad (ae) = valueOrErrorMessage(getString(this, ae), (ae + " is not defined")) | |
146 | 149 | ||
147 | 150 | ||
148 | - | func | |
149 | - | let | |
150 | - | if ($isInstanceOf( | |
151 | + | func af (ag) = { | |
152 | + | let ab = ag | |
153 | + | if ($isInstanceOf(ab, "String")) | |
151 | 154 | then { | |
152 | - | let | |
153 | - | if ((size( | |
155 | + | let ac = ab | |
156 | + | if ((size(ac) == 0)) | |
154 | 157 | then nil | |
155 | - | else split_4C( | |
158 | + | else split_4C(ac, b) | |
156 | 159 | } | |
157 | - | else if ($isInstanceOf( | |
160 | + | else if ($isInstanceOf(ab, "Unit")) | |
158 | 161 | then nil | |
159 | 162 | else throw("Match error") | |
160 | 163 | } | |
161 | 164 | ||
162 | 165 | ||
163 | - | let | |
166 | + | let ah = addressFromStringValue(ad(D())) | |
164 | 167 | ||
165 | - | let | |
168 | + | let ai = makeString(["%s", "votingEmissionContract"], b) | |
166 | 169 | ||
167 | - | let | |
170 | + | let aj = addressFromStringValue(valueOrErrorMessage(getString(ah, ai), g("voting emission contract address is required"))) | |
168 | 171 | ||
169 | - | let | |
172 | + | let ak = makeString(["%s", "votingEmissionCandidateContract"], b) | |
170 | 173 | ||
171 | - | let | |
174 | + | let al = addressFromStringValue(valueOrErrorMessage(getString(aj, ak), g("voting emission candidate contract address is required"))) | |
172 | 175 | ||
173 | - | func | |
176 | + | func am (B,C) = valueOrElse(getBoolean(N(B, C)), false) | |
174 | 177 | ||
175 | 178 | ||
176 | - | func | |
179 | + | func an (B,C) = if (am(B, C)) | |
177 | 180 | then true | |
178 | 181 | else k() | |
179 | 182 | ||
180 | 183 | ||
181 | - | func | |
182 | - | let | |
183 | - | let | |
184 | - | if ($isInstanceOf( | |
184 | + | func ao () = { | |
185 | + | let ap = aa() | |
186 | + | let ab = getString(ap, x()) | |
187 | + | if ($isInstanceOf(ab, "String")) | |
185 | 188 | then { | |
186 | - | let | |
187 | - | fromBase58String( | |
189 | + | let ac = ab | |
190 | + | fromBase58String(ac) | |
188 | 191 | } | |
189 | - | else if ($isInstanceOf( | |
192 | + | else if ($isInstanceOf(ab, "Unit")) | |
190 | 193 | then unit | |
191 | 194 | else throw("Match error") | |
192 | 195 | } | |
193 | 196 | ||
194 | 197 | ||
195 | - | func | |
196 | - | let | |
197 | - | if ($isInstanceOf( | |
198 | + | func aq (ar) = { | |
199 | + | let ab = ao() | |
200 | + | if ($isInstanceOf(ab, "ByteVector")) | |
198 | 201 | then { | |
199 | - | let | |
200 | - | ( | |
202 | + | let as = ab | |
203 | + | (ar.callerPublicKey == as) | |
201 | 204 | } | |
202 | - | else if ($isInstanceOf( | |
203 | - | then ( | |
205 | + | else if ($isInstanceOf(ab, "Unit")) | |
206 | + | then (ar.caller == this) | |
204 | 207 | else throw("Match error") | |
205 | 208 | } | |
206 | 209 | ||
207 | 210 | ||
208 | - | func | |
211 | + | func at (ar) = if (aq(ar)) | |
209 | 212 | then true | |
210 | 213 | else j() | |
211 | 214 | ||
212 | 215 | ||
213 | - | func | |
214 | - | let | |
215 | - | if (containsElement( | |
216 | + | func au (ar) = { | |
217 | + | let av = af(getString(z())) | |
218 | + | if (containsElement(av, toBase58String(ar.callerPublicKey))) | |
216 | 219 | then true | |
217 | - | else | |
220 | + | else at(ar) | |
218 | 221 | } | |
219 | 222 | ||
220 | 223 | ||
221 | - | func av (X) = (valueOrElse(getInteger(addressFromStringValue(ac(E())), (("status_<" + X) + ">")), 0) == 2) | |
224 | + | func aw (ar) = { | |
225 | + | let ax = getString(ah, Z()) | |
226 | + | let ab = ax | |
227 | + | if ($isInstanceOf(ab, "String")) | |
228 | + | then { | |
229 | + | let ay = ab | |
230 | + | (toString(ar.caller) == ay) | |
231 | + | } | |
232 | + | else if ($isInstanceOf(ab, "Unit")) | |
233 | + | then false | |
234 | + | else throw("Match error") | |
235 | + | } | |
222 | 236 | ||
223 | 237 | ||
224 | - | func aw (ax) = { | |
225 | - | let aa = ax.assetId | |
226 | - | if ($isInstanceOf(aa, "ByteVector")) | |
238 | + | func az (X) = (valueOrElse(getInteger(addressFromStringValue(ad(E())), (("status_<" + X) + ">")), 0) == 2) | |
239 | + | ||
240 | + | ||
241 | + | func aA (aB) = { | |
242 | + | let ab = aB.assetId | |
243 | + | if ($isInstanceOf(ab, "ByteVector")) | |
227 | 244 | then { | |
228 | - | let | |
229 | - | let | |
230 | - | $Tuple2(toBase58String( | |
245 | + | let aC = ab | |
246 | + | let aD = value(assetInfo(aC)) | |
247 | + | $Tuple2(toBase58String(aC), aD) | |
231 | 248 | } | |
232 | - | else if ($isInstanceOf( | |
249 | + | else if ($isInstanceOf(ab, "Unit")) | |
233 | 250 | then $Tuple2(c, unit) | |
234 | 251 | else throw("Match error") | |
235 | 252 | } | |
236 | 253 | ||
237 | 254 | ||
238 | - | func | |
255 | + | func aE (aF) = containsElement(M, aF) | |
239 | 256 | ||
240 | 257 | ||
241 | - | func | |
242 | - | let | |
243 | - | let | |
244 | - | let | |
245 | - | let | |
246 | - | let B = | |
247 | - | let | |
248 | - | let | |
249 | - | let C = | |
250 | - | let | |
251 | - | let | |
252 | - | let | |
253 | - | let | |
254 | - | let | |
255 | - | let | |
256 | - | let | |
257 | - | let | |
258 | - | let | |
259 | - | let | |
260 | - | let | |
261 | - | let | |
262 | - | let | |
263 | - | let | |
264 | - | let | |
265 | - | let | |
266 | - | if ($isInstanceOf( | |
267 | - | then | |
268 | - | else throw(($getType( | |
258 | + | func aG (ar,aH) = { | |
259 | + | let aI = value(ar.payments[0]) | |
260 | + | let aJ = value(ar.payments[1]) | |
261 | + | let aK = value(ar.payments[2]) | |
262 | + | let aL = aA(aI) | |
263 | + | let B = aL._1 | |
264 | + | let aM = aL._2 | |
265 | + | let aN = aA(aJ) | |
266 | + | let C = aN._1 | |
267 | + | let aO = aN._2 | |
268 | + | let aP = aA(aK) | |
269 | + | let aQ = aP._1 | |
270 | + | let aR = aP._2 | |
271 | + | let aS = aI.amount | |
272 | + | let aT = aJ.amount | |
273 | + | let aU = aK.amount | |
274 | + | let aV = af(getString(ah, Y())) | |
275 | + | let aW = getIntegerValue(ah, V()) | |
276 | + | let aX = valueOrElse(getInteger(ah, W(B)), aW) | |
277 | + | let aY = valueOrElse(getInteger(ah, W(C)), aW) | |
278 | + | let aZ = valueOrElse(getInteger(H()), 0) | |
279 | + | let ba = (aZ + 1) | |
280 | + | let bb = addressFromStringValue(ad(F())) | |
281 | + | let bc = { | |
282 | + | let bd = invoke(ah, "poolExistsREADONLY", [B, C], nil) | |
283 | + | if ($isInstanceOf(bd, "Boolean")) | |
284 | + | then bd | |
285 | + | else throw(($getType(bd) + " couldn't be cast to Boolean")) | |
269 | 286 | } | |
270 | - | let | |
287 | + | let be = [if (!(am(B, C))) | |
271 | 288 | then true | |
272 | - | else m(), if (!( | |
289 | + | else m(), if (!(bc)) | |
273 | 290 | then true | |
274 | 291 | else m(), if ((B != C)) | |
275 | 292 | then true | |
276 | - | else w(), if (if ( | |
293 | + | else w(), if (if (containsElement(aV, B)) | |
277 | 294 | then true | |
278 | - | else if (av(B)) | |
279 | - | then av(C) | |
295 | + | else containsElement(aV, C)) | |
296 | + | then true | |
297 | + | else w(), if (if (if (aq(ar)) | |
298 | + | then true | |
299 | + | else aw(ar)) | |
300 | + | then true | |
301 | + | else if (az(B)) | |
302 | + | then az(C) | |
280 | 303 | else false) | |
281 | 304 | then true | |
282 | - | else w(), if (if ( | |
305 | + | else w(), if (if (if (aq(ar)) | |
283 | 306 | then true | |
284 | - | else | |
307 | + | else aw(ar)) | |
285 | 308 | then true | |
286 | - | else | |
309 | + | else (getString(T()) == aQ)) | |
287 | 310 | then true | |
288 | - | else | |
311 | + | else p(), if (if (if (aq(ar)) | |
289 | 312 | then true | |
290 | - | else | |
313 | + | else aw(ar)) | |
291 | 314 | then true | |
292 | - | else ( | |
315 | + | else (aS >= aX)) | |
293 | 316 | then true | |
294 | - | else q(), if (if ( | |
317 | + | else q(), if (if (if (aq(ar)) | |
295 | 318 | then true | |
296 | - | else ( | |
319 | + | else aw(ar)) | |
297 | 320 | then true | |
298 | - | else | |
321 | + | else (aT >= aY)) | |
299 | 322 | then true | |
300 | - | else (aQ == getInteger(U()))) | |
323 | + | else u(), if (if (if (aq(ar)) | |
324 | + | then true | |
325 | + | else aw(ar)) | |
326 | + | then true | |
327 | + | else (aU == getInteger(U()))) | |
301 | 328 | then true | |
302 | 329 | else v()] | |
303 | - | if (( | |
330 | + | if ((be == be)) | |
304 | 331 | then { | |
305 | - | let | |
306 | - | let | |
307 | - | then invoke( | |
332 | + | let bf = 3 | |
333 | + | let bg = if ((size(ar.payments) >= bf)) | |
334 | + | then invoke(bb, "burn", nil, [AttachedPayment(fromBase58String(aQ), aU)]) | |
308 | 335 | else unit | |
309 | - | if (( | |
310 | - | then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString( | |
336 | + | if ((bg == bg)) | |
337 | + | then [BooleanEntry(N(B, C), true), StringEntry(O(B, C), toString(ar.caller)), IntegerEntry(H(), ba), StringEntry(G(B, C), (toString(ba) + I)), IntegerEntry(R(B, C), height), StringEntry(A(B, C), J), IntegerEntry(P(B, C), aS), IntegerEntry(Q(B, C), aT), StringEntry(S(B, C), aH)] | |
311 | 338 | else throw("Strict value is not equal to itself.") | |
312 | 339 | } | |
313 | 340 | else throw("Strict value is not equal to itself.") | |
314 | 341 | } | |
315 | 342 | ||
316 | 343 | ||
317 | - | @Callable( | |
318 | - | func constructor ( | |
319 | - | let | |
320 | - | if (( | |
321 | - | then [StringEntry(D(), | |
344 | + | @Callable(ar) | |
345 | + | func constructor (bh,bi,bj,aQ,bk) = { | |
346 | + | let bl = at(ar) | |
347 | + | if ((bl == bl)) | |
348 | + | then [StringEntry(D(), bh), StringEntry(E(), bi), StringEntry(F(), bj), StringEntry(T(), aQ), IntegerEntry(U(), bk)] | |
322 | 349 | else throw("Strict value is not equal to itself.") | |
323 | 350 | } | |
324 | 351 | ||
325 | 352 | ||
326 | 353 | ||
327 | - | @Callable( | |
328 | - | func create () = | |
354 | + | @Callable(ar) | |
355 | + | func create () = aG(ar, d) | |
329 | 356 | ||
330 | 357 | ||
331 | 358 | ||
332 | - | @Callable( | |
359 | + | @Callable(ar) | |
333 | 360 | func createStable () = { | |
334 | - | let | |
335 | - | if (( | |
336 | - | then | |
361 | + | let bl = at(ar) | |
362 | + | if ((bl == bl)) | |
363 | + | then aG(ar, e) | |
337 | 364 | else throw("Strict value is not equal to itself.") | |
338 | 365 | } | |
339 | 366 | ||
340 | 367 | ||
341 | 368 | ||
342 | - | @Callable( | |
343 | - | func activate ( | |
344 | - | let | |
369 | + | @Callable(ar) | |
370 | + | func activate (bm,B,bn,C,bo,bp) = { | |
371 | + | let be = [au(ar), if (am(B, C)) | |
345 | 372 | then true | |
346 | 373 | else k(), if ((value(getString(A(B, C))) == J)) | |
347 | 374 | then true | |
348 | 375 | else s()] | |
349 | - | if (( | |
376 | + | if ((be == be)) | |
350 | 377 | then { | |
351 | - | let | |
352 | - | let | |
378 | + | let bq = getString(this, S(B, C)) | |
379 | + | let br = invoke(ah, "activateNewPool", [bm, B, C, ((bn + bo) + "LP"), (((bn + "/") + bo) + " pool liquidity provider token"), 0, if ((bq == unit)) | |
353 | 380 | then "VLTPOOL" | |
354 | - | else value( | |
355 | - | if (( | |
381 | + | else value(bq), bp], nil) | |
382 | + | if ((br == br)) | |
356 | 383 | then { | |
357 | - | let | |
358 | - | let | |
359 | - | if ($isInstanceOf( | |
384 | + | let bs = { | |
385 | + | let ab = br | |
386 | + | if ($isInstanceOf(ab, "String")) | |
360 | 387 | then { | |
361 | - | let | |
362 | - | | |
388 | + | let aC = ab | |
389 | + | aC | |
363 | 390 | } | |
364 | 391 | else t() | |
365 | 392 | } | |
366 | - | if (( | |
393 | + | if ((bs == bs)) | |
367 | 394 | then { | |
368 | - | let | |
369 | - | if (( | |
395 | + | let bt = assetBalance(this, fromBase58String(bs)) | |
396 | + | if ((bt == bt)) | |
370 | 397 | then { | |
371 | - | let | |
398 | + | let bu = invoke(addressFromStringValue(bm), "put", [0, false], [AttachedPayment(if ((B == "WAVES")) | |
372 | 399 | then unit | |
373 | 400 | else fromBase58String(B), value(getInteger(P(B, C)))), AttachedPayment(if ((C == "WAVES")) | |
374 | 401 | then unit | |
375 | 402 | else fromBase58String(C), value(getInteger(Q(B, C))))]) | |
376 | - | if (( | |
403 | + | if ((bu == bu)) | |
377 | 404 | then { | |
378 | - | let | |
379 | - | if (( | |
405 | + | let bv = assetBalance(this, fromBase58String(bs)) | |
406 | + | if ((bv == bv)) | |
380 | 407 | then { | |
381 | - | let | |
382 | - | let | |
383 | - | if (( | |
384 | - | then [StringEntry(A(B, C), L), ScriptTransfer( | |
408 | + | let bw = value(addressFromString(value(getString(O(B, C))))) | |
409 | + | let bx = invoke(al, "approve", [B, C], nil) | |
410 | + | if ((bx == bx)) | |
411 | + | then [StringEntry(A(B, C), L), ScriptTransfer(bw, (bv - bt), fromBase58String(bs))] | |
385 | 412 | else throw("Strict value is not equal to itself.") | |
386 | 413 | } | |
387 | 414 | else throw("Strict value is not equal to itself.") | |
388 | 415 | } | |
389 | 416 | else throw("Strict value is not equal to itself.") | |
390 | 417 | } | |
391 | 418 | else throw("Strict value is not equal to itself.") | |
392 | 419 | } | |
393 | 420 | else throw("Strict value is not equal to itself.") | |
394 | 421 | } | |
395 | 422 | else throw("Strict value is not equal to itself.") | |
396 | 423 | } | |
397 | 424 | else throw("Strict value is not equal to itself.") | |
398 | 425 | } | |
399 | 426 | ||
400 | 427 | ||
401 | 428 | ||
402 | - | @Callable( | |
403 | - | func setAdmins ( | |
404 | - | let | |
405 | - | if (( | |
406 | - | then [StringEntry(z(), makeString( | |
429 | + | @Callable(ar) | |
430 | + | func setAdmins (by) = { | |
431 | + | let bl = at(ar) | |
432 | + | if ((bl == bl)) | |
433 | + | then [StringEntry(z(), makeString(by, b))] | |
407 | 434 | else throw("Strict value is not equal to itself.") | |
408 | 435 | } | |
409 | 436 | ||
410 | 437 | ||
411 | 438 | ||
412 | - | @Callable( | |
413 | - | func priceAssetsREADONLY () = $Tuple2(nil, | |
439 | + | @Callable(ar) | |
440 | + | func priceAssetsREADONLY () = $Tuple2(nil, af(getString(Y()))) | |
414 | 441 | ||
415 | 442 | ||
416 | 443 | ||
417 | - | @Callable( | |
444 | + | @Callable(ar) | |
418 | 445 | func statusREADONLY (B,C) = { | |
419 | - | let | |
420 | - | let | |
421 | - | if ($isInstanceOf( | |
446 | + | let aF = { | |
447 | + | let ab = getString(A(B, C)) | |
448 | + | if ($isInstanceOf(ab, "String")) | |
422 | 449 | then { | |
423 | - | let | |
424 | - | | |
450 | + | let ac = ab | |
451 | + | ac | |
425 | 452 | } | |
426 | 453 | else unit | |
427 | 454 | } | |
428 | - | $Tuple2(nil, | |
455 | + | $Tuple2(nil, aF) | |
429 | 456 | } | |
430 | 457 | ||
431 | 458 | ||
432 | 459 | ||
433 | - | @Callable( | |
460 | + | @Callable(ar) | |
434 | 461 | func getPoolCreatorREADONLY (B,C) = { | |
435 | - | let | |
436 | - | $Tuple2(nil, | |
462 | + | let bz = valueOrElse(getString(O(B, C)), "") | |
463 | + | $Tuple2(nil, bz) | |
437 | 464 | } | |
438 | 465 | ||
439 | 466 | ||
440 | 467 | ||
441 | - | @Callable( | |
468 | + | @Callable(ar) | |
442 | 469 | func deletePool (B,C) = { | |
443 | - | let | |
470 | + | let bl = if (if ((ar.caller == ah)) | |
444 | 471 | then true | |
445 | - | else | |
472 | + | else at(ar)) | |
446 | 473 | then true | |
447 | 474 | else i("Permission denied") | |
448 | - | if (( | |
475 | + | if ((bl == bl)) | |
449 | 476 | then [DeleteEntry(N(B, C)), DeleteEntry(O(B, C)), DeleteEntry(G(B, C)), DeleteEntry(R(B, C)), DeleteEntry(A(B, C)), DeleteEntry(P(B, C)), DeleteEntry(Q(B, C)), DeleteEntry(S(B, C))] | |
450 | 477 | else throw("Strict value is not equal to itself.") | |
451 | 478 | } | |
452 | 479 | ||
453 | 480 | ||
454 | - | @Verifier( | |
455 | - | func | |
456 | - | let | |
457 | - | let | |
458 | - | if ($isInstanceOf( | |
481 | + | @Verifier(bA) | |
482 | + | func bB () = { | |
483 | + | let bC = { | |
484 | + | let ab = ao() | |
485 | + | if ($isInstanceOf(ab, "ByteVector")) | |
459 | 486 | then { | |
460 | - | let | |
461 | - | | |
487 | + | let as = ab | |
488 | + | as | |
462 | 489 | } | |
463 | - | else if ($isInstanceOf( | |
464 | - | then | |
490 | + | else if ($isInstanceOf(ab, "Unit")) | |
491 | + | then bA.senderPublicKey | |
465 | 492 | else throw("Match error") | |
466 | 493 | } | |
467 | - | sigVerify( | |
494 | + | sigVerify(bA.bodyBytes, bA.proofs[0], bC) | |
468 | 495 | } | |
469 | 496 |
github/deemru/w8io/169f3d6 206.33 ms ◑