tx · 7Xx6sfQcLadQCk69rBeQkiXMhhU1SVaEoT3c3K3NXHb

3MzdcCMH5TtWM7wYgShjmkw78TqwhaGxVgB:  -0.01000000 Waves

2023.06.22 17:05 [2633935] smart account 3MzdcCMH5TtWM7wYgShjmkw78TqwhaGxVgB > SELF 0.00000000 Waves

{ "type": 13, "id": "7Xx6sfQcLadQCk69rBeQkiXMhhU1SVaEoT3c3K3NXHb", "fee": 1000000, "feeAssetId": null, "timestamp": 1687442764769, "version": 2, "chainId": 84, "sender": "3MzdcCMH5TtWM7wYgShjmkw78TqwhaGxVgB", "senderPublicKey": "5pipasxFGrLc1rEA1DV89vSfdWNWqjyBnyZhSRseq9aA", "proofs": [ "9JWYzxCs5Rs9yNAx6d9dJBw5QBWUz4ngYjkx3zUywphcToqMV47jMZqihHJqbjpNsBwKMbow1scSJhC96aWd8Kk" ], "script": "base64:BgImCAISBAoCCBgSABIAEgUKAwQBCBIAEgMKAQESAwoBARIAEgMKAQEpAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQAMa1VTRE5BZGRyZXNzAhhzdGFraW5nX3VzZG5uc2J0X2FkZHJlc3MADGtFVVJOQWRkcmVzcwIUc3Rha2luZ19ldXJuX2FkZHJlc3MADGtMZWFzaW5nUG9vbAIPbGVhc2luZ19hZGRyZXNzAA5rTGVhc2luZ0Ftb3VudAIObGVhc2luZ19hbW91bnQACmtMZWFzaW5nSWQCCmxlYXNpbmdfaWQADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgANa0NwbW1Db250cmFjdAINY3BtbV9jb250cmFjdAAMa1VTRE5Bc3NldElkAg11c2RuX2Fzc2V0X2lkAAxrRVVSTkFzc2V0SWQCDWV1cm5fYXNzZXRfaWQADmtTdGFraW5nQXNzZXRzAg5zdGFraW5nX2Fzc2V0cwANa1NoYXJlQXNzZXRJZAIOc2hhcmVfYXNzZXRfaWQABm9yYWNsZQkBB0FkZHJlc3MBARoBVEgTlwzA0zPMJTKAtin3p2RogKvjzHtLmQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwARYWRtaW5QdWJLZXlJbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABJzdGFraW5nVVNETkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFkZHJlc3MAEnN0YWtpbmdFVVJOQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtFVVJOQWRkcmVzcwAMY3BtbUNvbnRyYWN0CQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0NwbW1Db250cmFjdAAEVVNETgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFzc2V0SWQABEVVUk4JARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5Bc3NldElkAA1zdGFraW5nQXNzZXRzCQERQGV4dHJOYXRpdmUoMTA1MykCBQZvcmFjbGUFDmtTdGFraW5nQXNzZXRzAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGAAZhY3RpdmUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUHa0FjdGl2ZQYBCGlzQWN0aXZlAAMDBQZhY3RpdmUFCmFjdGl2ZUdsb2IHBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEOaXNHbG9iYWxDYWxsZXIBBmNhbGxlcgMJAAACBQZjYWxsZXIFDGNwbW1Db250cmFjdAUEdW5pdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELaXNBZG1pbkNhbGwBDGNhbGxlclB1YktleQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwFDGNhbGxlclB1YktleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgVzdGFrZQdhc3NldElkAwUFc3Rha2UDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAgxsb2NrTmV1dHJpbm8FEnN0YWtpbmdVU0ROQWRkcmVzcwkAlAoCAgxzdGFydFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwMJAAACBQdhc3NldElkBQRVU0ROCQCUCgICDnVubG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgILc3RvcFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwERY2FsY1N0YWtpbmdQYXJhbXMDBXN0YWtlBmFtb3VudAdhc3NldElkAwUFc3Rha2UECyR0MDI1OTMyNjU5CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDAyNTkzMjY1OQJfMQQLc3Rha2luZ0FkZHIIBQskdDAyNTkzMjY1OQJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAQLJHQwMjc0NTI4MTEJARhjYWxjU3Rha2luZ0Z1bmNBbmRBZGRyZXMCBQVzdGFrZQUHYXNzZXRJZAQEY2FsbAgFCyR0MDI3NDUyODExAl8xBAtzdGFraW5nQWRkcggFCyR0MDI3NDUyODExAl8yCQCWCgQFBGNhbGwFC3N0YWtpbmdBZGRyCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAQ9jb2xsZWN0UGF5bWVudHMCA2FjYwdwYXltZW50BAskdDAyOTczMzAxNgUDYWNjBA5wYXltZW50QW1vdW50cwgFCyR0MDI5NzMzMDE2Al8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAyOTczMzAxNgJfMgkAlAoCCQDNCAIFDnBheW1lbnRBbW91bnRzCAUHcGF5bWVudAZhbW91bnQJAM0IAgUPcGF5bWVudEFzc2V0SWRzAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFBHVuaXQBAAgFB3BheW1lbnQHYXNzZXRJZAEMY29sbGVjdFN0YXRlAgZyZXN1bHQGc291cmNlBAckbWF0Y2gwBQZzb3VyY2UDAwkAAQIFByRtYXRjaDACBUlzc3VlBgMJAAECBQckbWF0Y2gwAgRCdXJuBgMJAAECBQckbWF0Y2gwAgdSZWlzc3VlBgMJAAECBQckbWF0Y2gwAg5TY3JpcHRUcmFuc2ZlcgYDCQABAgUHJG1hdGNoMAILQmluYXJ5RW50cnkGAwkAAQIFByRtYXRjaDACDEJvb2xlYW5FbnRyeQYDCQABAgUHJG1hdGNoMAILU3RyaW5nRW50cnkGCQABAgUHJG1hdGNoMAIMSW50ZWdlckVudHJ5BAFlBQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBZQUGcmVzdWx0AQtjb2xsZWN0RGF0YQIGcmVzdWx0BnNvdXJjZQQHJG1hdGNoMAUGc291cmNlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdgUHJG1hdGNoMAkAzQgCBQZyZXN1bHQFAXYDCQABAgUHJG1hdGNoMAIDSW50BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgRVbml0BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgkBBXRocm93AAEKY2FsbENvbW1vbgQIZnVuY05hbWUGY2FsbGVyBGFyZ3MIcGF5bWVudHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECyR0MDM5MzY0MDIwCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBA5wYXltZW50QW1vdW50cwgFCyR0MDM5MzY0MDIwAl8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAzOTM2NDAyMAJfMgQLbG9ja1BheW1lbnQDAwkAAAIFCGZ1bmNOYW1lAhZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zCQAAAgkAkAMBBQhwYXltZW50cwADBwkAzAgCCQCRAwIFCHBheW1lbnRzAAIFA25pbAMDCQAAAgUIZnVuY05hbWUCFXJlcGxlbmlzaFdpdGhPbmVUb2tlbgkAAAIJAJADAQUIcGF5bWVudHMAAgcJAMwIAgkAkQMCBQhwYXltZW50cwABBQNuaWwFA25pbAQLJHQwNDI0OTQ0MDYKAAFACQD9BwQFDGNwbW1Db250cmFjdAUIZnVuY05hbWUJAMwIAgUGY2FsbGVyCQDMCAIFBGFyZ3MJAMwIAgUOcGF5bWVudEFtb3VudHMJAMwIAgUPcGF5bWVudEFzc2V0SWRzBQNuaWwFC2xvY2tQYXltZW50AwkAAQIFAUACFihMaXN0W0FueV0sIExpc3RbQW55XSkFAUAJAAIBCQCsAgIJAAMBBQFAAisgY291bGRuJ3QgYmUgY2FzdCB0byAoTGlzdFtBbnldLCBMaXN0W0FueV0pAwkAAAIFCyR0MDQyNDk0NDA2BQskdDA0MjQ5NDQwNgQEZGF0YQgFCyR0MDQyNDk0NDA2Al8yBAdhY3Rpb25zCAULJHQwNDI0OTQ0MDYCXzEECm1hcHBlZERhdGEKAAIkbAUEZGF0YQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELY29sbGVjdERhdGECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEDW1hcHBlZEFjdGlvbnMKAAIkbAUHYWN0aW9ucwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMY29sbGVjdFN0YXRlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYyXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwkAlAoCBQ1tYXBwZWRBY3Rpb25zBQptYXBwZWREYXRhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQFpAQxjYWxsRnVuY3Rpb24CCGZ1bmNOYW1lBGFyZ3MJAQpjYWxsQ29tbW9uBAUIZnVuY05hbWUICAUBaQZjYWxsZXIFYnl0ZXMFBGFyZ3MIBQFpCHBheW1lbnRzAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDBQZhY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAFpAQxzdGFrZVVuc3Rha2UDBXN0YWtlBmFtb3VudA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMEBHBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZvcmFjbGUFDGtMZWFzaW5nUG9vbAIZTm8gbGVhc2luZyBwb29sIGluIG9yYWNsZQQJbGVhc2luZ0lkCQCcCAIFBHRoaXMFCmtMZWFzaW5nSWQEDWxlYXNpbmdBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOa0xlYXNpbmdBbW91bnQAAAQObmV3TGVhc2VBbW91bnQDBQVzdGFrZQkAZAIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAkAZQIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAQIbmV3TGVhc2UJAMQIAgUEcG9vbAUObmV3TGVhc2VBbW91bnQECm5ld0xlYXNlSWQJALkIAQUIbmV3TGVhc2UECGJhc2VFdHJ5CQDMCAIFCG5ld0xlYXNlCQDMCAIJAQtCaW5hcnlFbnRyeQIFCmtMZWFzaW5nSWQFCm5ld0xlYXNlSWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtMZWFzaW5nQW1vdW50BQ5uZXdMZWFzZUFtb3VudAUDbmlsBAckbWF0Y2gwBQlsZWFzaW5nSWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDbElkBQckbWF0Y2gwCQDOCAIJAMwIAgkBC0xlYXNlQ2FuY2VsAQUDbElkBQNuaWwFCGJhc2VFdHJ5BQhiYXNlRXRyeQQLJHQwNjMyNDY0MjcJARFjYWxjU3Rha2luZ1BhcmFtcwMFBXN0YWtlBQZhbW91bnQJANkEAQUNYXNzZXRJZFN0cmluZwQEY2FsbAgFCyR0MDYzMjQ2NDI3Al8xBARhZGRyCAULJHQwNjMyNDY0MjcCXzIEBnBhcmFtcwgFCyR0MDYzMjQ2NDI3Al8zBAhwYXltZW50cwgFCyR0MDYzMjQ2NDI3Al80BANpbnYJAPwHBAUEYWRkcgUEY2FsbAUGcGFyYW1zBQhwYXltZW50cwMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltTmV0cmlub1Jld2FyZHMACQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEA2ludgkA/AcEBRJzdGFraW5nVVNETkFkZHJlc3MCDGNsYWltUmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQNpbnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVpc3N1ZVNoYXJlVG9rZW4BBmFtb3VudAkBC3ZhbHVlT3JFbHNlAgkBDmlzR2xvYmFsQ2FsbGVyAQgFAWkGY2FsbGVyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAxzaGFyZUFzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUNa1NoYXJlQXNzZXRJZAkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUGYW1vdW50BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUMc2hhcmVBc3NldElkBQNuaWwBaQEWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwERc2xpcHBhZ2VUb2xlcmFuY2UJAQpjYWxsQ29tbW9uBAIWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgVmYWxzZQkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCHdpdGhkcmF3AAkBCmNhbGxDb21tb24EAgh3aXRoZHJhdwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCGV4Y2hhbmdlARJtaW5BbW91bnRUb1JlY2VpdmUJAQpjYWxsQ29tbW9uBAIIZXhjaGFuZ2UICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkApAMBBRJtaW5BbW91bnRUb1JlY2VpdmUFA25pbAgFAWkIcGF5bWVudHMBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIFE211bHRpU2lnbmVkQnlBZG1pbnOCFYaH", "height": 2633935, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "active"
5+
6+let b = "active_all_contracts"
7+
8+let c = "shutdown_cause"
9+
10+let d = "staking_usdnnsbt_address"
11+
12+let e = "staking_eurn_address"
13+
14+let f = "leasing_address"
15+
16+let g = "leasing_amount"
17+
18+let h = "leasing_id"
19+
20+let i = "admin_pub_1"
21+
22+let j = "admin_pub_2"
23+
24+let k = "admin_pub_3"
25+
26+let l = "admin_invoke_pub"
27+
28+let m = "cpmm_contract"
29+
30+let n = "usdn_asset_id"
31+
32+let o = "eurn_asset_id"
33+
34+let p = "staking_assets"
35+
36+let q = "share_asset_id"
37+
38+let r = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
39+
40+func s (t) = {
41+ let u = getString(r, t)
42+ if ($isInstanceOf(u, "String"))
43+ then {
44+ let v = u
45+ fromBase58String(v)
46+ }
47+ else {
48+ let w = u
49+ throw((t + "is empty"))
50+ }
51+ }
52+
53+
54+let x = s(i)
55+
56+let y = s(j)
57+
58+let z = s(k)
59+
60+let A = s(l)
61+
62+let B = Address(s(d))
63+
64+let C = Address(s(e))
65+
66+let D = Address(s(m))
67+
68+let E = s(n)
69+
70+let F = s(o)
71+
72+let G = getStringValue(r, p)
73+
74+let H = valueOrElse(getBoolean(r, b), true)
75+
76+let I = valueOrElse(getBoolean(this, a), true)
77+
78+func J () = if (if (I)
79+ then H
80+ else false)
81+ then unit
82+ else throw("DApp is inactive at this moment")
83+
84+
85+func K (L) = if ((L == D))
86+ then unit
87+ else throw("Only global Contract can invoke this function")
88+
89+
90+func M (N) = if (containsElement([x, y, z], N))
91+ then unit
92+ else throw("Only admin can call this function")
93+
94+
95+func O (P) = [BooleanEntry(a, false), StringEntry(c, P)]
96+
97+
98+func Q (R,S) = if (R)
99+ then if ((S == E))
100+ then $Tuple2("lockNeutrino", B)
101+ else $Tuple2("startStaking", C)
102+ else if ((S == E))
103+ then $Tuple2("unlockNeutrino", B)
104+ else $Tuple2("stopStaking", C)
105+
106+
107+func T (R,U,S) = if (R)
108+ then {
109+ let V = Q(R, S)
110+ let W = V._1
111+ let X = V._2
112+ $Tuple4(W, X, nil, [AttachedPayment(S, U)])
113+ }
114+ else {
115+ let Y = Q(R, S)
116+ let W = Y._1
117+ let X = Y._2
118+ $Tuple4(W, X, [U, toBase58String(S)], nil)
119+ }
120+
121+
122+func Z (aa,ab) = {
123+ let ac = aa
124+ let ad = ac._1
125+ let ae = ac._2
126+ $Tuple2((ad :+ ab.amount), (ae :+ (if ((ab.assetId == unit))
127+ then base58''
128+ else ab.assetId)))
129+ }
130+
131+
132+func af (ag,ah) = {
133+ let u = ah
134+ if (if ($isInstanceOf(u, "Issue"))
135+ then true
136+ else if ($isInstanceOf(u, "Burn"))
137+ then true
138+ else if ($isInstanceOf(u, "Reissue"))
139+ then true
140+ else if ($isInstanceOf(u, "ScriptTransfer"))
141+ then true
142+ else if ($isInstanceOf(u, "BinaryEntry"))
143+ then true
144+ else if ($isInstanceOf(u, "BooleanEntry"))
145+ then true
146+ else if ($isInstanceOf(u, "StringEntry"))
147+ then true
148+ else $isInstanceOf(u, "IntegerEntry"))
149+ then {
150+ let ai = u
151+ (ag :+ ai)
152+ }
153+ else ag
154+ }
155+
156+
157+func aj (ag,ah) = {
158+ let u = ah
159+ if ($isInstanceOf(u, "String"))
160+ then {
161+ let ak = u
162+ (ag :+ ak)
163+ }
164+ else if ($isInstanceOf(u, "Int"))
165+ then {
166+ let ak = u
167+ (ag :+ ak)
168+ }
169+ else if ($isInstanceOf(u, "Boolean"))
170+ then {
171+ let ak = u
172+ (ag :+ ak)
173+ }
174+ else if ($isInstanceOf(u, "ByteVector"))
175+ then {
176+ let ak = u
177+ (ag :+ ak)
178+ }
179+ else if ($isInstanceOf(u, "Unit"))
180+ then {
181+ let ak = u
182+ (ag :+ ak)
183+ }
184+ else throw()
185+ }
186+
187+
188+func al (am,L,an,ao) = valueOrElse(J(), {
189+ let ap = {
190+ let aq = ao
191+ let ar = size(aq)
192+ let as = $Tuple2(nil, nil)
193+ func at (au,av) = if ((av >= ar))
194+ then au
195+ else Z(au, aq[av])
196+
197+ func aw (au,av) = if ((av >= ar))
198+ then au
199+ else throw("List size exceeds 10")
200+
201+ aw(at(at(at(at(at(at(at(at(at(at(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
202+ }
203+ let ad = ap._1
204+ let ae = ap._2
205+ let ax = if (if ((am == "replenishWithTwoTokens"))
206+ then (size(ao) == 3)
207+ else false)
208+ then [ao[2]]
209+ else if (if ((am == "replenishWithOneToken"))
210+ then (size(ao) == 2)
211+ else false)
212+ then [ao[1]]
213+ else nil
214+ let ay = {
215+ let az = reentrantInvoke(D, am, [L, an, ad, ae], ax)
216+ if ($isInstanceOf(az, "(List[Any], List[Any])"))
217+ then az
218+ else throw(($getType(az) + " couldn't be cast to (List[Any], List[Any])"))
219+ }
220+ if ((ay == ay))
221+ then {
222+ let aA = ay._2
223+ let aB = ay._1
224+ let aC = {
225+ let aq = aA
226+ let ar = size(aq)
227+ let as = nil
228+ func aD (au,av) = if ((av >= ar))
229+ then au
230+ else aj(au, aq[av])
231+
232+ func aE (au,av) = if ((av >= ar))
233+ then au
234+ else throw("List size exceeds 10")
235+
236+ aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
237+ }
238+ let aF = {
239+ let aq = aB
240+ let ar = size(aq)
241+ let as = nil
242+ func aG (au,av) = if ((av >= ar))
243+ then au
244+ else af(au, aq[av])
245+
246+ func aH (au,av) = if ((av >= ar))
247+ then au
248+ else throw("List size exceeds 15")
249+
250+ aH(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(aG(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
251+ }
252+ $Tuple2(aF, aC)
253+ }
254+ else throw("Strict value is not equal to itself.")
255+ })
256+
257+
258+@Callable(aI)
259+func callFunction (am,an) = al(am, aI.caller.bytes, an, aI.payments)
260+
261+
262+
263+@Callable(aI)
264+func shutdown () = valueOrElse(M(aI.callerPublicKey), if (!(I))
265+ then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, c), "the cause wasn't specified")))
266+ else O("Paused by admin"))
267+
268+
269+
270+@Callable(aI)
271+func activate () = valueOrElse(M(aI.callerPublicKey), if (I)
272+ then throw("DApp is already active")
273+ else [BooleanEntry(a, true), DeleteEntry(c)])
274+
275+
276+
277+@Callable(aI)
278+func stakeUnstake (R,U,aJ) = valueOrElse(K(aI.caller), valueOrElse(J(), if ((aJ == "WAVES"))
279+ then {
280+ let aK = addressFromStringValue(valueOrErrorMessage(getString(r, f), "No leasing pool in oracle"))
281+ let aL = getBinary(this, h)
282+ let aM = valueOrElse(getInteger(this, g), 0)
283+ let aN = if (R)
284+ then (aM + U)
285+ else (aM - U)
286+ let aO = Lease(aK, aN)
287+ let aP = calculateLeaseId(aO)
288+ let aQ = [aO, BinaryEntry(h, aP), IntegerEntry(g, aN)]
289+ let u = aL
290+ if ($isInstanceOf(u, "ByteVector"))
291+ then {
292+ let aR = u
293+ ([LeaseCancel(aR)] ++ aQ)
294+ }
295+ else aQ
296+ }
297+ else {
298+ let aS = T(R, U, fromBase58String(aJ))
299+ let W = aS._1
300+ let aT = aS._2
301+ let aU = aS._3
302+ let ao = aS._4
303+ let aV = invoke(aT, W, aU, ao)
304+ if ((aV == aV))
305+ then nil
306+ else throw("Strict value is not equal to itself.")
307+ }))
308+
309+
310+
311+@Callable(aI)
312+func claimNetrinoRewards () = valueOrElse(K(aI.caller), valueOrElse(J(), {
313+ let aV = invoke(B, "claimRewards", nil, nil)
314+ if ((aV == aV))
315+ then $Tuple2(nil, aV)
316+ else throw("Strict value is not equal to itself.")
317+ }))
318+
319+
320+
321+@Callable(aI)
322+func reissueShareToken (U) = valueOrElse(K(aI.caller), valueOrElse(J(), {
323+ let aW = fromBase58String(getStringValue(this, q))
324+[Reissue(aW, U, true), ScriptTransfer(aI.caller, U, aW)]
325+ }))
326+
327+
328+
329+@Callable(aI)
330+func replenishWithTwoTokens (aX) = al("replenishWithTwoTokens", aI.caller.bytes, ["false", "0"], aI.payments)
331+
332+
333+
334+@Callable(aI)
335+func withdraw () = al("withdraw", aI.caller.bytes, ["0"], aI.payments)
336+
337+
338+
339+@Callable(aI)
340+func exchange (aY) = al("exchange", aI.caller.bytes, [toString(aY)], aI.payments)
341+
342+
343+@Verifier(aZ)
344+func ba () = {
345+ let bb = {
346+ let bc = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], x))
347+ then 1
348+ else 0
349+ let bd = if (sigVerify(aZ.bodyBytes, aZ.proofs[1], y))
350+ then 1
351+ else 0
352+ let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[2], z))
353+ then 1
354+ else 0
355+ (((bc + bd) + be) >= 2)
356+ }
357+ bb
358+ }
359+

github/deemru/w8io/026f985 
20.51 ms