tx · 4Y9jYWx7yUsE7iovoPcK72UaVd8dFr5EXXqKapA9fdne

3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW:  -0.10000000 Waves

2023.01.24 11:59 [2418832] smart account 3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW > SELF 0.00000000 Waves

{ "type": 13, "id": "4Y9jYWx7yUsE7iovoPcK72UaVd8dFr5EXXqKapA9fdne", "fee": 10000000, "feeAssetId": null, "timestamp": 1674550823472, "version": 2, "chainId": 84, "sender": "3N1rzvSD6e3e8EAAe58DSPPmAmgHzU8keGW", "senderPublicKey": "DfabAmKWXpe5iKMWYEYbph4E3w2pTX8Znzgh2MgxqKuc", "proofs": [ "u9T1ScKFEzx3h7MV3W9HjVGiNB91jy3f6jY7sDvNW9iwyqaMjshvDZwVAZAzwpeU6yUQdBq8MRosvPPsyXSGSQa", "3BZqj5bP3KC7oQs4eQowyVjUBrPoNJd8VE1PWb9QPpawVzvRUpLwXV4UsFUmU6tVDzWE9PQzf7romWiB9ZXLRiW2" ], "script": "base64:BgImCAISBAoCCBgSABIAEgUKAwQBCBIAEgMKAQESAwoBARIAEgMKAQEpAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQAMa1VTRE5BZGRyZXNzAhhzdGFraW5nX3VzZG5uc2J0X2FkZHJlc3MADGtFVVJOQWRkcmVzcwIUc3Rha2luZ19ldXJuX2FkZHJlc3MADGtMZWFzaW5nUG9vbAIPbGVhc2luZ19hZGRyZXNzAA5rTGVhc2luZ0Ftb3VudAIObGVhc2luZ19hbW91bnQACmtMZWFzaW5nSWQCCmxlYXNpbmdfaWQADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgANa0NwbW1Db250cmFjdAINY3BtbV9jb250cmFjdAAMa1VTRE5Bc3NldElkAg11c2RuX2Fzc2V0X2lkAAxrRVVSTkFzc2V0SWQCDWV1cm5fYXNzZXRfaWQADmtTdGFraW5nQXNzZXRzAg5zdGFraW5nX2Fzc2V0cwANa1NoYXJlQXNzZXRJZAIOc2hhcmVfYXNzZXRfaWQABm9yYWNsZQkBB0FkZHJlc3MBARoBVEgTlwzA0zPMJTKAtin3p2RogKvjzHtLmQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwARYWRtaW5QdWJLZXlJbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABJzdGFraW5nVVNETkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFkZHJlc3MAEnN0YWtpbmdFVVJOQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtFVVJOQWRkcmVzcwAMY3BtbUNvbnRyYWN0CQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0NwbW1Db250cmFjdAAEVVNETgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFzc2V0SWQABEVVUk4JARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5Bc3NldElkAA1zdGFraW5nQXNzZXRzCQERQGV4dHJOYXRpdmUoMTA1MykCBQZvcmFjbGUFDmtTdGFraW5nQXNzZXRzAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGAAZhY3RpdmUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUHa0FjdGl2ZQYBCGlzQWN0aXZlAAMDBQZhY3RpdmUFCmFjdGl2ZUdsb2IHBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEOaXNHbG9iYWxDYWxsZXIBBmNhbGxlcgMJAAACBQZjYWxsZXIFDGNwbW1Db250cmFjdAUEdW5pdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELaXNBZG1pbkNhbGwBDGNhbGxlclB1YktleQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwFDGNhbGxlclB1YktleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgVzdGFrZQdhc3NldElkAwUFc3Rha2UDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAgxsb2NrTmV1dHJpbm8FEnN0YWtpbmdVU0ROQWRkcmVzcwkAlAoCAgxzdGFydFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwMJAAACBQdhc3NldElkBQRVU0ROCQCUCgICDnVubG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgILc3RvcFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwERY2FsY1N0YWtpbmdQYXJhbXMDBXN0YWtlBmFtb3VudAdhc3NldElkAwUFc3Rha2UECyR0MDI1OTMyNjU5CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDAyNTkzMjY1OQJfMQQLc3Rha2luZ0FkZHIIBQskdDAyNTkzMjY1OQJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAQLJHQwMjc0NTI4MTEJARhjYWxjU3Rha2luZ0Z1bmNBbmRBZGRyZXMCBQVzdGFrZQUHYXNzZXRJZAQEY2FsbAgFCyR0MDI3NDUyODExAl8xBAtzdGFraW5nQWRkcggFCyR0MDI3NDUyODExAl8yCQCWCgQFBGNhbGwFC3N0YWtpbmdBZGRyCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAQ9jb2xsZWN0UGF5bWVudHMCA2FjYwdwYXltZW50BAskdDAyOTczMzAxNgUDYWNjBA5wYXltZW50QW1vdW50cwgFCyR0MDI5NzMzMDE2Al8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAyOTczMzAxNgJfMgkAlAoCCQDNCAIFDnBheW1lbnRBbW91bnRzCAUHcGF5bWVudAZhbW91bnQJAM0IAgUPcGF5bWVudEFzc2V0SWRzAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFBHVuaXQBAAgFB3BheW1lbnQHYXNzZXRJZAEMY29sbGVjdFN0YXRlAgZyZXN1bHQGc291cmNlBAckbWF0Y2gwBQZzb3VyY2UDAwkAAQIFByRtYXRjaDACBUlzc3VlBgMJAAECBQckbWF0Y2gwAgRCdXJuBgMJAAECBQckbWF0Y2gwAgdSZWlzc3VlBgMJAAECBQckbWF0Y2gwAg5TY3JpcHRUcmFuc2ZlcgYDCQABAgUHJG1hdGNoMAILQmluYXJ5RW50cnkGAwkAAQIFByRtYXRjaDACDEJvb2xlYW5FbnRyeQYDCQABAgUHJG1hdGNoMAILU3RyaW5nRW50cnkGCQABAgUHJG1hdGNoMAIMSW50ZWdlckVudHJ5BAFlBQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBZQUGcmVzdWx0AQtjb2xsZWN0RGF0YQIGcmVzdWx0BnNvdXJjZQQHJG1hdGNoMAUGc291cmNlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdgUHJG1hdGNoMAkAzQgCBQZyZXN1bHQFAXYDCQABAgUHJG1hdGNoMAIDSW50BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgRVbml0BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgkBBXRocm93AAEKY2FsbENvbW1vbgQIZnVuY05hbWUGY2FsbGVyBGFyZ3MIcGF5bWVudHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECyR0MDM5MzY0MDIwCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBA5wYXltZW50QW1vdW50cwgFCyR0MDM5MzY0MDIwAl8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAzOTM2NDAyMAJfMgQLbG9ja1BheW1lbnQDAwkAAAIFCGZ1bmNOYW1lAhZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zCQAAAgkAkAMBBQhwYXltZW50cwADBwkAzAgCCQCRAwIFCHBheW1lbnRzAAIFA25pbAMDCQAAAgUIZnVuY05hbWUCFXJlcGxlbmlzaFdpdGhPbmVUb2tlbgkAAAIJAJADAQUIcGF5bWVudHMAAgcJAMwIAgkAkQMCBQhwYXltZW50cwABBQNuaWwFA25pbAQLJHQwNDI0OTQ0MDYKAAFACQD9BwQFDGNwbW1Db250cmFjdAUIZnVuY05hbWUJAMwIAgUGY2FsbGVyCQDMCAIFBGFyZ3MJAMwIAgUOcGF5bWVudEFtb3VudHMJAMwIAgUPcGF5bWVudEFzc2V0SWRzBQNuaWwFC2xvY2tQYXltZW50AwkAAQIFAUACFihMaXN0W0FueV0sIExpc3RbQW55XSkFAUAJAAIBCQCsAgIJAAMBBQFAAisgY291bGRuJ3QgYmUgY2FzdCB0byAoTGlzdFtBbnldLCBMaXN0W0FueV0pAwkAAAIFCyR0MDQyNDk0NDA2BQskdDA0MjQ5NDQwNgQEZGF0YQgFCyR0MDQyNDk0NDA2Al8yBAdhY3Rpb25zCAULJHQwNDI0OTQ0MDYCXzEECm1hcHBlZERhdGEKAAIkbAUEZGF0YQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELY29sbGVjdERhdGECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEDW1hcHBlZEFjdGlvbnMKAAIkbAUHYWN0aW9ucwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMY29sbGVjdFN0YXRlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYyXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwkAlAoCBQ1tYXBwZWRBY3Rpb25zBQptYXBwZWREYXRhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQFpAQxjYWxsRnVuY3Rpb24CCGZ1bmNOYW1lBGFyZ3MJAQpjYWxsQ29tbW9uBAUIZnVuY05hbWUICAUBaQZjYWxsZXIFYnl0ZXMFBGFyZ3MIBQFpCHBheW1lbnRzAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDBQZhY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAFpAQxzdGFrZVVuc3Rha2UDBXN0YWtlBmFtb3VudA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMEBHBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZvcmFjbGUFDGtMZWFzaW5nUG9vbAIZTm8gbGVhc2luZyBwb29sIGluIG9yYWNsZQQJbGVhc2luZ0lkCQCcCAIFBHRoaXMFCmtMZWFzaW5nSWQEDWxlYXNpbmdBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOa0xlYXNpbmdBbW91bnQAAAQObmV3TGVhc2VBbW91bnQDBQVzdGFrZQkAZAIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAkAZQIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAQIbmV3TGVhc2UJAMQIAgUEcG9vbAUObmV3TGVhc2VBbW91bnQECm5ld0xlYXNlSWQJALkIAQUIbmV3TGVhc2UECGJhc2VFdHJ5CQDMCAIFCG5ld0xlYXNlCQDMCAIJAQtCaW5hcnlFbnRyeQIFCmtMZWFzaW5nSWQFCm5ld0xlYXNlSWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtMZWFzaW5nQW1vdW50BQ5uZXdMZWFzZUFtb3VudAUDbmlsBAckbWF0Y2gwBQlsZWFzaW5nSWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDbElkBQckbWF0Y2gwCQDOCAIJAMwIAgkBC0xlYXNlQ2FuY2VsAQUDbElkBQNuaWwFCGJhc2VFdHJ5BQhiYXNlRXRyeQQLJHQwNjMyNDY0MjcJARFjYWxjU3Rha2luZ1BhcmFtcwMFBXN0YWtlBQZhbW91bnQJANkEAQUNYXNzZXRJZFN0cmluZwQEY2FsbAgFCyR0MDYzMjQ2NDI3Al8xBARhZGRyCAULJHQwNjMyNDY0MjcCXzIEBnBhcmFtcwgFCyR0MDYzMjQ2NDI3Al8zBAhwYXltZW50cwgFCyR0MDYzMjQ2NDI3Al80BANpbnYJAPwHBAUEYWRkcgUEY2FsbAUGcGFyYW1zBQhwYXltZW50cwMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltTmV0cmlub1Jld2FyZHMACQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEA2ludgkA/AcEBRJzdGFraW5nVVNETkFkZHJlc3MCDGNsYWltUmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQNpbnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVpc3N1ZVNoYXJlVG9rZW4BBmFtb3VudAkBC3ZhbHVlT3JFbHNlAgkBDmlzR2xvYmFsQ2FsbGVyAQgFAWkGY2FsbGVyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAxzaGFyZUFzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUNa1NoYXJlQXNzZXRJZAkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUGYW1vdW50BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUMc2hhcmVBc3NldElkBQNuaWwBaQEWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwERc2xpcHBhZ2VUb2xlcmFuY2UJAQpjYWxsQ29tbW9uBAIWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgVmYWxzZQkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCHdpdGhkcmF3AAkBCmNhbGxDb21tb24EAgh3aXRoZHJhdwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCGV4Y2hhbmdlARJtaW5BbW91bnRUb1JlY2VpdmUJAQpjYWxsQ29tbW9uBAIIZXhjaGFuZ2UICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkApAMBBRJtaW5BbW91bnRUb1JlY2VpdmUFA25pbAgFAWkIcGF5bWVudHMBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIFE211bHRpU2lnbmVkQnlBZG1pbnOCFYaH", "height": 2418832, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6x5vRTZqZcXoeH4miDhJWU9qEGeSRHjv2aAFBnueiDBe Next: HFyovmwqN3XHpwLkhrjkRH9bLQVMW1imRcrDmsVDdDfR Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
6-let b = "shutdown_cause"
6+let b = "active_all_contracts"
77
8-let c = "staking_usdnnsbt_address"
8+let c = "shutdown_cause"
99
10-let d = "staking_eurn_address"
10+let d = "staking_usdnnsbt_address"
1111
12-let e = "leasing_address"
12+let e = "staking_eurn_address"
1313
14-let f = "leasing_amount"
14+let f = "leasing_address"
1515
16-let g = "leasing_id"
16+let g = "leasing_amount"
1717
18-let h = "admin_pub_1"
18+let h = "leasing_id"
1919
20-let i = "admin_pub_2"
20+let i = "admin_pub_1"
2121
22-let j = "admin_pub_3"
22+let j = "admin_pub_2"
2323
24-let k = "admin_invoke_pub"
24+let k = "admin_pub_3"
2525
26-let l = "cpmm_contract"
26+let l = "admin_invoke_pub"
2727
28-let m = "usdn_asset_id"
28+let m = "cpmm_contract"
2929
30-let n = "eurn_asset_id"
30+let n = "usdn_asset_id"
3131
32-let o = "staking_assets"
32+let o = "eurn_asset_id"
3333
34-let p = "share_asset_id"
34+let p = "staking_assets"
3535
36-let q = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
36+let q = "share_asset_id"
3737
38-func r (s) = {
39- let t = getString(q, s)
40- if ($isInstanceOf(t, "String"))
38+let r = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
39+
40+func s (t) = {
41+ let u = getString(r, t)
42+ if ($isInstanceOf(u, "String"))
4143 then {
42- let u = t
43- fromBase58String(u)
44+ let v = u
45+ fromBase58String(v)
4446 }
4547 else {
46- let v = t
47- throw((s + "is empty"))
48+ let w = u
49+ throw((t + "is empty"))
4850 }
4951 }
5052
5153
52-let w = r(h)
54+let x = s(i)
5355
54-let x = r(i)
56+let y = s(j)
5557
56-let y = r(j)
58+let z = s(k)
5759
58-let z = r(k)
60+let A = s(l)
5961
60-let A = Address(r(c))
62+let B = Address(s(d))
6163
62-let B = Address(r(d))
64+let C = Address(s(e))
6365
64-let C = Address(r(l))
66+let D = Address(s(m))
6567
66-let D = r(m)
68+let E = s(n)
6769
68-let E = r(n)
70+let F = s(o)
6971
70-let F = getStringValue(q, o)
72+let G = getStringValue(r, p)
7173
72-let G = valueOrElse(getBoolean(this, a), true)
74+let H = valueOrElse(getBoolean(r, b), true)
7375
74-func H () = if (G)
76+let I = valueOrElse(getBoolean(this, a), true)
77+
78+func J () = if (if (I)
79+ then H
80+ else false)
7581 then unit
7682 else throw("DApp is inactive at this moment")
7783
7884
79-func I (J) = if ((J == C))
85+func K (L) = if ((L == D))
8086 then unit
8187 else throw("Only global Contract can invoke this function")
8288
8389
84-func K (L) = if (containsElement([w, x, y], L))
90+func M (N) = if (containsElement([x, y, z], N))
8591 then unit
8692 else throw("Only admin can call this function")
8793
8894
89-func M (N) = [BooleanEntry(a, false), StringEntry(b, N)]
95+func O (P) = [BooleanEntry(a, false), StringEntry(c, P)]
9096
9197
92-func O (P,Q) = if (P)
93- then if ((Q == D))
94- then $Tuple2("lockNeutrino", A)
95- else $Tuple2("startStaking", B)
96- else if ((Q == D))
97- then $Tuple2("unlockNeutrino", A)
98- else $Tuple2("stopStaking", B)
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)
99105
100106
101-func R (P,S,Q) = if (P)
107+func T (R,U,S) = if (R)
102108 then {
103- let T = O(P, Q)
104- let U = T._1
105- let V = T._2
106- $Tuple4(U, V, nil, [AttachedPayment(Q, S)])
109+ let V = Q(R, S)
110+ let W = V._1
111+ let X = V._2
112+ $Tuple4(W, X, nil, [AttachedPayment(S, U)])
107113 }
108114 else {
109- let W = O(P, Q)
110- let U = W._1
111- let V = W._2
112- $Tuple4(U, V, [S, toBase58String(Q)], nil)
115+ let Y = Q(R, S)
116+ let W = Y._1
117+ let X = Y._2
118+ $Tuple4(W, X, [U, toBase58String(S)], nil)
113119 }
114120
115121
116-func X (Y,Z) = {
117- let aa = Y
118- let ab = aa._1
119- let ac = aa._2
120- $Tuple2((ab :+ Z.amount), (ac :+ (if ((Z.assetId == unit))
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))
121127 then base58''
122- else Z.assetId)))
128+ else ab.assetId)))
123129 }
124130
125131
126-func ad (ae,af) = {
127- let t = af
128- if (if ($isInstanceOf(t, "Issue"))
132+func af (ag,ah) = {
133+ let u = ah
134+ if (if ($isInstanceOf(u, "Issue"))
129135 then true
130- else if ($isInstanceOf(t, "Burn"))
136+ else if ($isInstanceOf(u, "Burn"))
131137 then true
132- else if ($isInstanceOf(t, "Reissue"))
138+ else if ($isInstanceOf(u, "Reissue"))
133139 then true
134- else if ($isInstanceOf(t, "ScriptTransfer"))
140+ else if ($isInstanceOf(u, "ScriptTransfer"))
135141 then true
136- else if ($isInstanceOf(t, "BinaryEntry"))
142+ else if ($isInstanceOf(u, "BinaryEntry"))
137143 then true
138- else if ($isInstanceOf(t, "BooleanEntry"))
144+ else if ($isInstanceOf(u, "BooleanEntry"))
139145 then true
140- else if ($isInstanceOf(t, "StringEntry"))
146+ else if ($isInstanceOf(u, "StringEntry"))
141147 then true
142- else $isInstanceOf(t, "IntegerEntry"))
148+ else $isInstanceOf(u, "IntegerEntry"))
143149 then {
144- let ag = t
145- (ae :+ ag)
150+ let ai = u
151+ (ag :+ ai)
146152 }
147- else ae
153+ else ag
148154 }
149155
150156
151-func ah (ae,af) = {
152- let t = af
153- if ($isInstanceOf(t, "String"))
157+func aj (ag,ah) = {
158+ let u = ah
159+ if ($isInstanceOf(u, "String"))
154160 then {
155- let ai = t
156- (ae :+ ai)
161+ let ak = u
162+ (ag :+ ak)
157163 }
158- else if ($isInstanceOf(t, "Int"))
164+ else if ($isInstanceOf(u, "Int"))
159165 then {
160- let ai = t
161- (ae :+ ai)
166+ let ak = u
167+ (ag :+ ak)
162168 }
163- else if ($isInstanceOf(t, "Boolean"))
169+ else if ($isInstanceOf(u, "Boolean"))
164170 then {
165- let ai = t
166- (ae :+ ai)
171+ let ak = u
172+ (ag :+ ak)
167173 }
168- else if ($isInstanceOf(t, "ByteVector"))
174+ else if ($isInstanceOf(u, "ByteVector"))
169175 then {
170- let ai = t
171- (ae :+ ai)
176+ let ak = u
177+ (ag :+ ak)
172178 }
173- else throw()
179+ else if ($isInstanceOf(u, "Unit"))
180+ then {
181+ let ak = u
182+ (ag :+ ak)
183+ }
184+ else throw()
174185 }
175186
176187
177-func aj (ak,J,al,am) = valueOrElse(H(), {
178- let an = {
179- let ao = am
180- let ap = size(ao)
181- let aq = $Tuple2(nil, nil)
182- func ar (as,at) = if ((at >= ap))
183- then as
184- else X(as, ao[at])
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])
185196
186- func au (as,at) = if ((at >= ap))
187- then as
197+ func aw (au,av) = if ((av >= ar))
198+ then au
188199 else throw("List size exceeds 10")
189200
190- au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
201+ aw(at(at(at(at(at(at(at(at(at(at(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
191202 }
192- let ab = an._1
193- let ac = an._2
194- let av = {
195- let aw = reentrantInvoke(C, ak, [J, al, ab, ac], nil)
196- if ($isInstanceOf(aw, "(List[Any], List[Any])"))
197- then aw
198- else throw(($getType(aw) + " couldn't be cast to (List[Any], List[Any])"))
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])"))
199219 }
200- if ((av == av))
220+ if ((ay == ay))
201221 then {
202- let ax = av._2
203- let ay = av._1
204- let az = {
205- let ao = ax
206- let ap = size(ao)
207- let aq = nil
208- func aA (as,at) = if ((at >= ap))
209- then as
210- else ah(as, ao[at])
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])
211231
212- func aB (as,at) = if ((at >= ap))
213- then as
232+ func aE (au,av) = if ((av >= ar))
233+ then au
214234 else throw("List size exceeds 10")
215235
216- aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
236+ aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
217237 }
218- let aC = {
219- let ao = ay
220- let ap = size(ao)
221- let aq = nil
222- func aD (as,at) = if ((at >= ap))
223- then as
224- else ad(as, ao[at])
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])
225245
226- func aE (as,at) = if ((at >= ap))
227- then as
246+ func aH (au,av) = if ((av >= ar))
247+ then au
228248 else throw("List size exceeds 15")
229249
230- aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
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)
231251 }
232- $Tuple2(aC, az)
252+ $Tuple2(aF, aC)
233253 }
234254 else throw("Strict value is not equal to itself.")
235255 })
236256
237257
238-@Callable(aF)
239-func callFunction (ak,al) = aj(ak, aF.caller.bytes, al, aF.payments)
258+@Callable(aI)
259+func callFunction (am,an) = al(am, aI.caller.bytes, an, aI.payments)
240260
241261
242262
243-@Callable(aF)
244-func shutdown () = valueOrElse(K(aF.callerPublicKey), if (!(G))
245- then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
246- else M("Paused by admin"))
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"))
247267
248268
249269
250-@Callable(aF)
251-func activate () = valueOrElse(K(aF.callerPublicKey), if (G)
270+@Callable(aI)
271+func activate () = valueOrElse(M(aI.callerPublicKey), if (I)
252272 then throw("DApp is already active")
253- else [BooleanEntry(a, true), DeleteEntry(b)])
273+ else [BooleanEntry(a, true), DeleteEntry(c)])
254274
255275
256276
257-@Callable(aF)
258-func stakeUnstake (P,S,aG) = valueOrElse(H(), if ((aF.caller != C))
259- then throw("Only global Contract can invoke this function")
260- else if ((aG == "WAVES"))
261- then {
262- let aH = addressFromStringValue(valueOrErrorMessage(getString(q, e), "No leasing pool in oracle"))
263- let aI = getBinary(this, g)
264- let aJ = valueOrElse(getInteger(this, f), 0)
265- let aK = if (P)
266- then (aJ + S)
267- else (aJ - S)
268- let aL = Lease(aH, aK)
269- let aM = calculateLeaseId(aL)
270- let aN = [aL, BinaryEntry(g, aM), IntegerEntry(f, aK)]
271- let t = aI
272- if ($isInstanceOf(t, "ByteVector"))
273- then {
274- let aO = t
275- ([LeaseCancel(aO)] ++ aN)
276- }
277- else aN
278- }
279- else {
280- let aP = R(P, S, fromBase58String(aG))
281- let U = aP._1
282- let aQ = aP._2
283- let aR = aP._3
284- let am = aP._4
285- let aS = invoke(aQ, U, aR, am)
286- if ((aS == aS))
287- then nil
288- else throw("Strict value is not equal to itself.")
289- })
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+ }))
290308
291309
292310
293-@Callable(aF)
294-func reissueShareToken (S) = valueOrElse(I(aF.caller), valueOrElse(H(), {
295- let aT = fromBase58String(getStringValue(this, p))
296-[Reissue(aT, S, true), ScriptTransfer(aF.caller, S, aT)]
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.")
297317 }))
298318
299319
300320
301-@Callable(aF)
302-func replenishWithTwoTokens (aU) = aj("replenishWithTwoTokens", aF.caller.bytes, ["false", "0"], aF.payments)
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+ }))
303326
304327
305328
306-@Callable(aF)
307-func withdraw () = aj("withdraw", aF.caller.bytes, ["0"], aF.payments)
329+@Callable(aI)
330+func replenishWithTwoTokens (aX) = al("replenishWithTwoTokens", aI.caller.bytes, ["false", "0"], aI.payments)
308331
309332
310333
311-@Callable(aF)
312-func exchange (aV) = aj("exchange", aF.caller.bytes, [toString(aV)], aF.payments)
334+@Callable(aI)
335+func withdraw () = al("withdraw", aI.caller.bytes, ["0"], aI.payments)
313336
314337
315-@Verifier(aW)
316-func aX () = {
317- let aY = {
318- let aZ = if (sigVerify(aW.bodyBytes, aW.proofs[0], w))
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))
319347 then 1
320348 else 0
321- let ba = if (sigVerify(aW.bodyBytes, aW.proofs[1], x))
349+ let bd = if (sigVerify(aZ.bodyBytes, aZ.proofs[1], y))
322350 then 1
323351 else 0
324- let bb = if (sigVerify(aW.bodyBytes, aW.proofs[2], y))
352+ let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[2], z))
325353 then 1
326354 else 0
327- (((aZ + ba) + bb) >= 2)
355+ (((bc + bd) + be) >= 2)
328356 }
329- aY
357+ bb
330358 }
331359
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
6-let b = "shutdown_cause"
6+let b = "active_all_contracts"
77
8-let c = "staking_usdnnsbt_address"
8+let c = "shutdown_cause"
99
10-let d = "staking_eurn_address"
10+let d = "staking_usdnnsbt_address"
1111
12-let e = "leasing_address"
12+let e = "staking_eurn_address"
1313
14-let f = "leasing_amount"
14+let f = "leasing_address"
1515
16-let g = "leasing_id"
16+let g = "leasing_amount"
1717
18-let h = "admin_pub_1"
18+let h = "leasing_id"
1919
20-let i = "admin_pub_2"
20+let i = "admin_pub_1"
2121
22-let j = "admin_pub_3"
22+let j = "admin_pub_2"
2323
24-let k = "admin_invoke_pub"
24+let k = "admin_pub_3"
2525
26-let l = "cpmm_contract"
26+let l = "admin_invoke_pub"
2727
28-let m = "usdn_asset_id"
28+let m = "cpmm_contract"
2929
30-let n = "eurn_asset_id"
30+let n = "usdn_asset_id"
3131
32-let o = "staking_assets"
32+let o = "eurn_asset_id"
3333
34-let p = "share_asset_id"
34+let p = "staking_assets"
3535
36-let q = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
36+let q = "share_asset_id"
3737
38-func r (s) = {
39- let t = getString(q, s)
40- if ($isInstanceOf(t, "String"))
38+let r = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
39+
40+func s (t) = {
41+ let u = getString(r, t)
42+ if ($isInstanceOf(u, "String"))
4143 then {
42- let u = t
43- fromBase58String(u)
44+ let v = u
45+ fromBase58String(v)
4446 }
4547 else {
46- let v = t
47- throw((s + "is empty"))
48+ let w = u
49+ throw((t + "is empty"))
4850 }
4951 }
5052
5153
52-let w = r(h)
54+let x = s(i)
5355
54-let x = r(i)
56+let y = s(j)
5557
56-let y = r(j)
58+let z = s(k)
5759
58-let z = r(k)
60+let A = s(l)
5961
60-let A = Address(r(c))
62+let B = Address(s(d))
6163
62-let B = Address(r(d))
64+let C = Address(s(e))
6365
64-let C = Address(r(l))
66+let D = Address(s(m))
6567
66-let D = r(m)
68+let E = s(n)
6769
68-let E = r(n)
70+let F = s(o)
6971
70-let F = getStringValue(q, o)
72+let G = getStringValue(r, p)
7173
72-let G = valueOrElse(getBoolean(this, a), true)
74+let H = valueOrElse(getBoolean(r, b), true)
7375
74-func H () = if (G)
76+let I = valueOrElse(getBoolean(this, a), true)
77+
78+func J () = if (if (I)
79+ then H
80+ else false)
7581 then unit
7682 else throw("DApp is inactive at this moment")
7783
7884
79-func I (J) = if ((J == C))
85+func K (L) = if ((L == D))
8086 then unit
8187 else throw("Only global Contract can invoke this function")
8288
8389
84-func K (L) = if (containsElement([w, x, y], L))
90+func M (N) = if (containsElement([x, y, z], N))
8591 then unit
8692 else throw("Only admin can call this function")
8793
8894
89-func M (N) = [BooleanEntry(a, false), StringEntry(b, N)]
95+func O (P) = [BooleanEntry(a, false), StringEntry(c, P)]
9096
9197
92-func O (P,Q) = if (P)
93- then if ((Q == D))
94- then $Tuple2("lockNeutrino", A)
95- else $Tuple2("startStaking", B)
96- else if ((Q == D))
97- then $Tuple2("unlockNeutrino", A)
98- else $Tuple2("stopStaking", B)
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)
99105
100106
101-func R (P,S,Q) = if (P)
107+func T (R,U,S) = if (R)
102108 then {
103- let T = O(P, Q)
104- let U = T._1
105- let V = T._2
106- $Tuple4(U, V, nil, [AttachedPayment(Q, S)])
109+ let V = Q(R, S)
110+ let W = V._1
111+ let X = V._2
112+ $Tuple4(W, X, nil, [AttachedPayment(S, U)])
107113 }
108114 else {
109- let W = O(P, Q)
110- let U = W._1
111- let V = W._2
112- $Tuple4(U, V, [S, toBase58String(Q)], nil)
115+ let Y = Q(R, S)
116+ let W = Y._1
117+ let X = Y._2
118+ $Tuple4(W, X, [U, toBase58String(S)], nil)
113119 }
114120
115121
116-func X (Y,Z) = {
117- let aa = Y
118- let ab = aa._1
119- let ac = aa._2
120- $Tuple2((ab :+ Z.amount), (ac :+ (if ((Z.assetId == unit))
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))
121127 then base58''
122- else Z.assetId)))
128+ else ab.assetId)))
123129 }
124130
125131
126-func ad (ae,af) = {
127- let t = af
128- if (if ($isInstanceOf(t, "Issue"))
132+func af (ag,ah) = {
133+ let u = ah
134+ if (if ($isInstanceOf(u, "Issue"))
129135 then true
130- else if ($isInstanceOf(t, "Burn"))
136+ else if ($isInstanceOf(u, "Burn"))
131137 then true
132- else if ($isInstanceOf(t, "Reissue"))
138+ else if ($isInstanceOf(u, "Reissue"))
133139 then true
134- else if ($isInstanceOf(t, "ScriptTransfer"))
140+ else if ($isInstanceOf(u, "ScriptTransfer"))
135141 then true
136- else if ($isInstanceOf(t, "BinaryEntry"))
142+ else if ($isInstanceOf(u, "BinaryEntry"))
137143 then true
138- else if ($isInstanceOf(t, "BooleanEntry"))
144+ else if ($isInstanceOf(u, "BooleanEntry"))
139145 then true
140- else if ($isInstanceOf(t, "StringEntry"))
146+ else if ($isInstanceOf(u, "StringEntry"))
141147 then true
142- else $isInstanceOf(t, "IntegerEntry"))
148+ else $isInstanceOf(u, "IntegerEntry"))
143149 then {
144- let ag = t
145- (ae :+ ag)
150+ let ai = u
151+ (ag :+ ai)
146152 }
147- else ae
153+ else ag
148154 }
149155
150156
151-func ah (ae,af) = {
152- let t = af
153- if ($isInstanceOf(t, "String"))
157+func aj (ag,ah) = {
158+ let u = ah
159+ if ($isInstanceOf(u, "String"))
154160 then {
155- let ai = t
156- (ae :+ ai)
161+ let ak = u
162+ (ag :+ ak)
157163 }
158- else if ($isInstanceOf(t, "Int"))
164+ else if ($isInstanceOf(u, "Int"))
159165 then {
160- let ai = t
161- (ae :+ ai)
166+ let ak = u
167+ (ag :+ ak)
162168 }
163- else if ($isInstanceOf(t, "Boolean"))
169+ else if ($isInstanceOf(u, "Boolean"))
164170 then {
165- let ai = t
166- (ae :+ ai)
171+ let ak = u
172+ (ag :+ ak)
167173 }
168- else if ($isInstanceOf(t, "ByteVector"))
174+ else if ($isInstanceOf(u, "ByteVector"))
169175 then {
170- let ai = t
171- (ae :+ ai)
176+ let ak = u
177+ (ag :+ ak)
172178 }
173- else throw()
179+ else if ($isInstanceOf(u, "Unit"))
180+ then {
181+ let ak = u
182+ (ag :+ ak)
183+ }
184+ else throw()
174185 }
175186
176187
177-func aj (ak,J,al,am) = valueOrElse(H(), {
178- let an = {
179- let ao = am
180- let ap = size(ao)
181- let aq = $Tuple2(nil, nil)
182- func ar (as,at) = if ((at >= ap))
183- then as
184- else X(as, ao[at])
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])
185196
186- func au (as,at) = if ((at >= ap))
187- then as
197+ func aw (au,av) = if ((av >= ar))
198+ then au
188199 else throw("List size exceeds 10")
189200
190- au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
201+ aw(at(at(at(at(at(at(at(at(at(at(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
191202 }
192- let ab = an._1
193- let ac = an._2
194- let av = {
195- let aw = reentrantInvoke(C, ak, [J, al, ab, ac], nil)
196- if ($isInstanceOf(aw, "(List[Any], List[Any])"))
197- then aw
198- else throw(($getType(aw) + " couldn't be cast to (List[Any], List[Any])"))
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])"))
199219 }
200- if ((av == av))
220+ if ((ay == ay))
201221 then {
202- let ax = av._2
203- let ay = av._1
204- let az = {
205- let ao = ax
206- let ap = size(ao)
207- let aq = nil
208- func aA (as,at) = if ((at >= ap))
209- then as
210- else ah(as, ao[at])
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])
211231
212- func aB (as,at) = if ((at >= ap))
213- then as
232+ func aE (au,av) = if ((av >= ar))
233+ then au
214234 else throw("List size exceeds 10")
215235
216- aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
236+ aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
217237 }
218- let aC = {
219- let ao = ay
220- let ap = size(ao)
221- let aq = nil
222- func aD (as,at) = if ((at >= ap))
223- then as
224- else ad(as, ao[at])
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])
225245
226- func aE (as,at) = if ((at >= ap))
227- then as
246+ func aH (au,av) = if ((av >= ar))
247+ then au
228248 else throw("List size exceeds 15")
229249
230- aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
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)
231251 }
232- $Tuple2(aC, az)
252+ $Tuple2(aF, aC)
233253 }
234254 else throw("Strict value is not equal to itself.")
235255 })
236256
237257
238-@Callable(aF)
239-func callFunction (ak,al) = aj(ak, aF.caller.bytes, al, aF.payments)
258+@Callable(aI)
259+func callFunction (am,an) = al(am, aI.caller.bytes, an, aI.payments)
240260
241261
242262
243-@Callable(aF)
244-func shutdown () = valueOrElse(K(aF.callerPublicKey), if (!(G))
245- then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
246- else M("Paused by admin"))
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"))
247267
248268
249269
250-@Callable(aF)
251-func activate () = valueOrElse(K(aF.callerPublicKey), if (G)
270+@Callable(aI)
271+func activate () = valueOrElse(M(aI.callerPublicKey), if (I)
252272 then throw("DApp is already active")
253- else [BooleanEntry(a, true), DeleteEntry(b)])
273+ else [BooleanEntry(a, true), DeleteEntry(c)])
254274
255275
256276
257-@Callable(aF)
258-func stakeUnstake (P,S,aG) = valueOrElse(H(), if ((aF.caller != C))
259- then throw("Only global Contract can invoke this function")
260- else if ((aG == "WAVES"))
261- then {
262- let aH = addressFromStringValue(valueOrErrorMessage(getString(q, e), "No leasing pool in oracle"))
263- let aI = getBinary(this, g)
264- let aJ = valueOrElse(getInteger(this, f), 0)
265- let aK = if (P)
266- then (aJ + S)
267- else (aJ - S)
268- let aL = Lease(aH, aK)
269- let aM = calculateLeaseId(aL)
270- let aN = [aL, BinaryEntry(g, aM), IntegerEntry(f, aK)]
271- let t = aI
272- if ($isInstanceOf(t, "ByteVector"))
273- then {
274- let aO = t
275- ([LeaseCancel(aO)] ++ aN)
276- }
277- else aN
278- }
279- else {
280- let aP = R(P, S, fromBase58String(aG))
281- let U = aP._1
282- let aQ = aP._2
283- let aR = aP._3
284- let am = aP._4
285- let aS = invoke(aQ, U, aR, am)
286- if ((aS == aS))
287- then nil
288- else throw("Strict value is not equal to itself.")
289- })
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+ }))
290308
291309
292310
293-@Callable(aF)
294-func reissueShareToken (S) = valueOrElse(I(aF.caller), valueOrElse(H(), {
295- let aT = fromBase58String(getStringValue(this, p))
296-[Reissue(aT, S, true), ScriptTransfer(aF.caller, S, aT)]
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.")
297317 }))
298318
299319
300320
301-@Callable(aF)
302-func replenishWithTwoTokens (aU) = aj("replenishWithTwoTokens", aF.caller.bytes, ["false", "0"], aF.payments)
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+ }))
303326
304327
305328
306-@Callable(aF)
307-func withdraw () = aj("withdraw", aF.caller.bytes, ["0"], aF.payments)
329+@Callable(aI)
330+func replenishWithTwoTokens (aX) = al("replenishWithTwoTokens", aI.caller.bytes, ["false", "0"], aI.payments)
308331
309332
310333
311-@Callable(aF)
312-func exchange (aV) = aj("exchange", aF.caller.bytes, [toString(aV)], aF.payments)
334+@Callable(aI)
335+func withdraw () = al("withdraw", aI.caller.bytes, ["0"], aI.payments)
313336
314337
315-@Verifier(aW)
316-func aX () = {
317- let aY = {
318- let aZ = if (sigVerify(aW.bodyBytes, aW.proofs[0], w))
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))
319347 then 1
320348 else 0
321- let ba = if (sigVerify(aW.bodyBytes, aW.proofs[1], x))
349+ let bd = if (sigVerify(aZ.bodyBytes, aZ.proofs[1], y))
322350 then 1
323351 else 0
324- let bb = if (sigVerify(aW.bodyBytes, aW.proofs[2], y))
352+ let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[2], z))
325353 then 1
326354 else 0
327- (((aZ + ba) + bb) >= 2)
355+ (((bc + bd) + be) >= 2)
328356 }
329- aY
357+ bb
330358 }
331359

github/deemru/w8io/c3f4982 
124.19 ms