tx · DQtXiZecdnJAYvsdStexSKyFwHiB16JxhtLUAJgSEFFP

3P9o2H6G5d2xXBTfBEwjzHc16RLSZLFLQjp:  -0.01200000 Waves

2022.12.16 14:38 [3428280] smart account 3P9o2H6G5d2xXBTfBEwjzHc16RLSZLFLQjp > SELF 0.00000000 Waves

{ "type": 13, "id": "DQtXiZecdnJAYvsdStexSKyFwHiB16JxhtLUAJgSEFFP", "fee": 1200000, "feeAssetId": null, "timestamp": 1671190363052, "version": 2, "chainId": 87, "sender": "3P9o2H6G5d2xXBTfBEwjzHc16RLSZLFLQjp", "senderPublicKey": "F8F2bTbnJfkpoaEFtseg7U44KjMUN6w3o1PW6mhSGyA", "proofs": [ "", "kFJnQLP5g8aKa4qCKHfCe3ioQWmed3VxvEtPeGcAfjQZ82FU4ntMeZcQdcgnqNesrsKKTv8srtXjX4gyR8rns5d", "4uZUPzcDGgAnP7aWrAAbgNypydKGGNHpCoLpRpRbdzxR67k4H6i9WYZoKXCoj5vertj5TyRMkCQRhc8YRSez4ewi" ], "script": "base64:BgImCAISBAoCCBgSABIAEgUKAwQBCBIAEgMKAQESAwoBARIAEgMKAQEpAAdrQWN0aXZlAgZhY3RpdmUAC2tBY3RpdmVHbG9iAhRhY3RpdmVfYWxsX2NvbnRyYWN0cwAGa0NhdXNlAg5zaHV0ZG93bl9jYXVzZQAMa1VTRE5BZGRyZXNzAhhzdGFraW5nX3VzZG5uc2J0X2FkZHJlc3MADGtFVVJOQWRkcmVzcwIUc3Rha2luZ19ldXJuX2FkZHJlc3MADGtMZWFzaW5nUG9vbAIPbGVhc2luZ19hZGRyZXNzAA5rTGVhc2luZ0Ftb3VudAIObGVhc2luZ19hbW91bnQACmtMZWFzaW5nSWQCCmxlYXNpbmdfaWQADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgANa0NwbW1Db250cmFjdAINY3BtbV9jb250cmFjdAAMa1VTRE5Bc3NldElkAg11c2RuX2Fzc2V0X2lkAAxrRVVSTkFzc2V0SWQCDWV1cm5fYXNzZXRfaWQADmtTdGFraW5nQXNzZXRzAg5zdGFraW5nX2Fzc2V0cwANa1NoYXJlQXNzZXRJZAIOc2hhcmVfYXNzZXRfaWQABm9yYWNsZQkBB0FkZHJlc3MBARoBV4r/CGiaNbpAzWF08hI33qY38Po4zugeOAETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwARYWRtaW5QdWJLZXlJbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABJzdGFraW5nVVNETkFkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFkZHJlc3MAEnN0YWtpbmdFVVJOQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtFVVJOQWRkcmVzcwAMY3BtbUNvbnRyYWN0CQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0NwbW1Db250cmFjdAAEVVNETgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrVVNETkFzc2V0SWQABEVVUk4JARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5Bc3NldElkAA1zdGFraW5nQXNzZXRzCQERQGV4dHJOYXRpdmUoMTA1MykCBQZvcmFjbGUFDmtTdGFraW5nQXNzZXRzAAphY3RpdmVHbG9iCQELdmFsdWVPckVsc2UCCQCbCAIFBm9yYWNsZQULa0FjdGl2ZUdsb2IGAAZhY3RpdmUJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUHa0FjdGl2ZQYBCGlzQWN0aXZlAAMDBQZhY3RpdmUFCmFjdGl2ZUdsb2IHBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEOaXNHbG9iYWxDYWxsZXIBBmNhbGxlcgMJAAACBQZjYWxsZXIFDGNwbW1Db250cmFjdAUEdW5pdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELaXNBZG1pbkNhbGwBDGNhbGxlclB1YktleQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwFDGNhbGxlclB1YktleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgVzdGFrZQdhc3NldElkAwUFc3Rha2UDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAgxsb2NrTmV1dHJpbm8FEnN0YWtpbmdVU0ROQWRkcmVzcwkAlAoCAgxzdGFydFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwMJAAACBQdhc3NldElkBQRVU0ROCQCUCgICDnVubG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgILc3RvcFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwERY2FsY1N0YWtpbmdQYXJhbXMDBXN0YWtlBmFtb3VudAdhc3NldElkAwUFc3Rha2UECyR0MDI1OTMyNjU5CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDAyNTkzMjY1OQJfMQQLc3Rha2luZ0FkZHIIBQskdDAyNTkzMjY1OQJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAQLJHQwMjc0NTI4MTEJARhjYWxjU3Rha2luZ0Z1bmNBbmRBZGRyZXMCBQVzdGFrZQUHYXNzZXRJZAQEY2FsbAgFCyR0MDI3NDUyODExAl8xBAtzdGFraW5nQWRkcggFCyR0MDI3NDUyODExAl8yCQCWCgQFBGNhbGwFC3N0YWtpbmdBZGRyCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAQ9jb2xsZWN0UGF5bWVudHMCA2FjYwdwYXltZW50BAskdDAyOTczMzAxNgUDYWNjBA5wYXltZW50QW1vdW50cwgFCyR0MDI5NzMzMDE2Al8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAyOTczMzAxNgJfMgkAlAoCCQDNCAIFDnBheW1lbnRBbW91bnRzCAUHcGF5bWVudAZhbW91bnQJAM0IAgUPcGF5bWVudEFzc2V0SWRzAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFBHVuaXQBAAgFB3BheW1lbnQHYXNzZXRJZAEMY29sbGVjdFN0YXRlAgZyZXN1bHQGc291cmNlBAckbWF0Y2gwBQZzb3VyY2UDAwkAAQIFByRtYXRjaDACBUlzc3VlBgMJAAECBQckbWF0Y2gwAgRCdXJuBgMJAAECBQckbWF0Y2gwAgdSZWlzc3VlBgMJAAECBQckbWF0Y2gwAg5TY3JpcHRUcmFuc2ZlcgYDCQABAgUHJG1hdGNoMAILQmluYXJ5RW50cnkGAwkAAQIFByRtYXRjaDACDEJvb2xlYW5FbnRyeQYDCQABAgUHJG1hdGNoMAILU3RyaW5nRW50cnkGCQABAgUHJG1hdGNoMAIMSW50ZWdlckVudHJ5BAFlBQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBZQUGcmVzdWx0AQtjb2xsZWN0RGF0YQIGcmVzdWx0BnNvdXJjZQQHJG1hdGNoMAUGc291cmNlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdgUHJG1hdGNoMAkAzQgCBQZyZXN1bHQFAXYDCQABAgUHJG1hdGNoMAIDSW50BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgRVbml0BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgkBBXRocm93AAEKY2FsbENvbW1vbgQIZnVuY05hbWUGY2FsbGVyBGFyZ3MIcGF5bWVudHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECyR0MDM5MzY0MDIwCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBA5wYXltZW50QW1vdW50cwgFCyR0MDM5MzY0MDIwAl8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAzOTM2NDAyMAJfMgQLbG9ja1BheW1lbnQDAwkAAAIFCGZ1bmNOYW1lAhZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zCQAAAgkAkAMBBQhwYXltZW50cwADBwkAzAgCCQCRAwIFCHBheW1lbnRzAAIFA25pbAMDCQAAAgUIZnVuY05hbWUCFXJlcGxlbmlzaFdpdGhPbmVUb2tlbgkAAAIJAJADAQUIcGF5bWVudHMAAgcJAMwIAgkAkQMCBQhwYXltZW50cwABBQNuaWwFA25pbAQLJHQwNDI0OTQ0MDYKAAFACQD9BwQFDGNwbW1Db250cmFjdAUIZnVuY05hbWUJAMwIAgUGY2FsbGVyCQDMCAIFBGFyZ3MJAMwIAgUOcGF5bWVudEFtb3VudHMJAMwIAgUPcGF5bWVudEFzc2V0SWRzBQNuaWwFC2xvY2tQYXltZW50AwkAAQIFAUACFihMaXN0W0FueV0sIExpc3RbQW55XSkFAUAJAAIBCQCsAgIJAAMBBQFAAisgY291bGRuJ3QgYmUgY2FzdCB0byAoTGlzdFtBbnldLCBMaXN0W0FueV0pAwkAAAIFCyR0MDQyNDk0NDA2BQskdDA0MjQ5NDQwNgQEZGF0YQgFCyR0MDQyNDk0NDA2Al8yBAdhY3Rpb25zCAULJHQwNDI0OTQ0MDYCXzEECm1hcHBlZERhdGEKAAIkbAUEZGF0YQoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELY29sbGVjdERhdGECBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEDW1hcHBlZEFjdGlvbnMKAAIkbAUHYWN0aW9ucwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMl8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMY29sbGVjdFN0YXRlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYyXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwkAlAoCBQ1tYXBwZWRBY3Rpb25zBQptYXBwZWREYXRhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQFpAQxjYWxsRnVuY3Rpb24CCGZ1bmNOYW1lBGFyZ3MJAQpjYWxsQ29tbW9uBAUIZnVuY05hbWUICAUBaQZjYWxsZXIFYnl0ZXMFBGFyZ3MIBQFpCHBheW1lbnRzAWkBCHNodXRkb3duAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBASEBBQZhY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUGa0NhdXNlAhp0aGUgY2F1c2Ugd2Fzbid0IHNwZWNpZmllZAkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUACQELdmFsdWVPckVsc2UCCQELaXNBZG1pbkNhbGwBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDBQZhY3RpdmUJAAIBAhZEQXBwIGlzIGFscmVhZHkgYWN0aXZlCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAFpAQxzdGFrZVVuc3Rha2UDBXN0YWtlBmFtb3VudA1hc3NldElkU3RyaW5nCQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQADCQAAAgUNYXNzZXRJZFN0cmluZwIFV0FWRVMEBHBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQZvcmFjbGUFDGtMZWFzaW5nUG9vbAIZTm8gbGVhc2luZyBwb29sIGluIG9yYWNsZQQJbGVhc2luZ0lkCQCcCAIFBHRoaXMFCmtMZWFzaW5nSWQEDWxlYXNpbmdBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOa0xlYXNpbmdBbW91bnQAAAQObmV3TGVhc2VBbW91bnQDBQVzdGFrZQkAZAIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAkAZQIFDWxlYXNpbmdBbW91bnQFBmFtb3VudAQIbmV3TGVhc2UJAMQIAgUEcG9vbAUObmV3TGVhc2VBbW91bnQECm5ld0xlYXNlSWQJALkIAQUIbmV3TGVhc2UECGJhc2VFdHJ5CQDMCAIFCG5ld0xlYXNlCQDMCAIJAQtCaW5hcnlFbnRyeQIFCmtMZWFzaW5nSWQFCm5ld0xlYXNlSWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtMZWFzaW5nQW1vdW50BQ5uZXdMZWFzZUFtb3VudAUDbmlsBAckbWF0Y2gwBQlsZWFzaW5nSWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDbElkBQckbWF0Y2gwCQDOCAIJAMwIAgkBC0xlYXNlQ2FuY2VsAQUDbElkBQNuaWwFCGJhc2VFdHJ5BQhiYXNlRXRyeQQLJHQwNjMyNDY0MjcJARFjYWxjU3Rha2luZ1BhcmFtcwMFBXN0YWtlBQZhbW91bnQJANkEAQUNYXNzZXRJZFN0cmluZwQEY2FsbAgFCyR0MDYzMjQ2NDI3Al8xBARhZGRyCAULJHQwNjMyNDY0MjcCXzIEBnBhcmFtcwgFCyR0MDYzMjQ2NDI3Al8zBAhwYXltZW50cwgFCyR0MDYzMjQ2NDI3Al80BANpbnYJAPwHBAUEYWRkcgUEY2FsbAUGcGFyYW1zBQhwYXltZW50cwMJAAACBQNpbnYFA2ludgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltTmV0cmlub1Jld2FyZHMACQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEA2ludgkA/AcEBRJzdGFraW5nVVNETkFkZHJlc3MCDGNsYWltUmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQNpbnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERcmVpc3N1ZVNoYXJlVG9rZW4BBmFtb3VudAkBC3ZhbHVlT3JFbHNlAgkBDmlzR2xvYmFsQ2FsbGVyAQgFAWkGY2FsbGVyCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUABAxzaGFyZUFzc2V0SWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUNa1NoYXJlQXNzZXRJZAkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUGYW1vdW50BgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFBmFtb3VudAUMc2hhcmVBc3NldElkBQNuaWwBaQEWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwERc2xpcHBhZ2VUb2xlcmFuY2UJAQpjYWxsQ29tbW9uBAIWcmVwbGVuaXNoV2l0aFR3b1Rva2VucwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgVmYWxzZQkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCHdpdGhkcmF3AAkBCmNhbGxDb21tb24EAgh3aXRoZHJhdwgIBQFpBmNhbGxlcgVieXRlcwkAzAgCAgEwBQNuaWwIBQFpCHBheW1lbnRzAWkBCGV4Y2hhbmdlARJtaW5BbW91bnRUb1JlY2VpdmUJAQpjYWxsQ29tbW9uBAIIZXhjaGFuZ2UICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkApAMBBRJtaW5BbW91bnRUb1JlY2VpdmUFA25pbAgFAWkIcGF5bWVudHMBAnR4AQZ2ZXJpZnkABBNtdWx0aVNpZ25lZEJ5QWRtaW5zBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAIFE211bHRpU2lnbmVkQnlBZG1pbnPa7dko", "height": 3428280, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CaVgQoTaSZ8nh5pgPHNotPhEwFUYuocj8bVouj8oHVPd Next: none Diff:
OldNewDifferences
275275
276276
277277 @Callable(aI)
278-func stakeUnstake (R,U,aJ) = valueOrElse(J(), if ((aI.caller != D))
279- then throw("Only global Contract can invoke this function")
280- else if ((aJ == "WAVES"))
281- then {
282- let aK = addressFromStringValue(valueOrErrorMessage(getString(r, f), "No leasing pool in oracle"))
283- let aL = getBinary(this, h)
284- let aM = valueOrElse(getInteger(this, g), 0)
285- let aN = if (R)
286- then (aM + U)
287- else (aM - U)
288- let aO = Lease(aK, aN)
289- let aP = calculateLeaseId(aO)
290- let aQ = [aO, BinaryEntry(h, aP), IntegerEntry(g, aN)]
291- let u = aL
292- if ($isInstanceOf(u, "ByteVector"))
293- then {
294- let aR = u
295- ([LeaseCancel(aR)] ++ aQ)
296- }
297- else aQ
298- }
299- else {
300- let aS = T(R, U, fromBase58String(aJ))
301- let W = aS._1
302- let aT = aS._2
303- let aU = aS._3
304- let ao = aS._4
305- let aV = invoke(aT, W, aU, ao)
306- if ((aV == aV))
307- then nil
308- else throw("Strict value is not equal to itself.")
309- })
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+ }))
310318
311319
312320
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "active_all_contracts"
77
88 let c = "shutdown_cause"
99
1010 let d = "staking_usdnnsbt_address"
1111
1212 let e = "staking_eurn_address"
1313
1414 let f = "leasing_address"
1515
1616 let g = "leasing_amount"
1717
1818 let h = "leasing_id"
1919
2020 let i = "admin_pub_1"
2121
2222 let j = "admin_pub_2"
2323
2424 let k = "admin_pub_3"
2525
2626 let l = "admin_invoke_pub"
2727
2828 let m = "cpmm_contract"
2929
3030 let n = "usdn_asset_id"
3131
3232 let o = "eurn_asset_id"
3333
3434 let p = "staking_assets"
3535
3636 let q = "share_asset_id"
3737
3838 let r = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
3939
4040 func s (t) = {
4141 let u = getString(r, t)
4242 if ($isInstanceOf(u, "String"))
4343 then {
4444 let v = u
4545 fromBase58String(v)
4646 }
4747 else {
4848 let w = u
4949 throw((t + "is empty"))
5050 }
5151 }
5252
5353
5454 let x = s(i)
5555
5656 let y = s(j)
5757
5858 let z = s(k)
5959
6060 let A = s(l)
6161
6262 let B = Address(s(d))
6363
6464 let C = Address(s(e))
6565
6666 let D = Address(s(m))
6767
6868 let E = s(n)
6969
7070 let F = s(o)
7171
7272 let G = getStringValue(r, p)
7373
7474 let H = valueOrElse(getBoolean(r, b), true)
7575
7676 let I = valueOrElse(getBoolean(this, a), true)
7777
7878 func J () = if (if (I)
7979 then H
8080 else false)
8181 then unit
8282 else throw("DApp is inactive at this moment")
8383
8484
8585 func K (L) = if ((L == D))
8686 then unit
8787 else throw("Only global Contract can invoke this function")
8888
8989
9090 func M (N) = if (containsElement([x, y, z], N))
9191 then unit
9292 else throw("Only admin can call this function")
9393
9494
9595 func O (P) = [BooleanEntry(a, false), StringEntry(c, P)]
9696
9797
9898 func Q (R,S) = if (R)
9999 then if ((S == E))
100100 then $Tuple2("lockNeutrino", B)
101101 else $Tuple2("startStaking", C)
102102 else if ((S == E))
103103 then $Tuple2("unlockNeutrino", B)
104104 else $Tuple2("stopStaking", C)
105105
106106
107107 func T (R,U,S) = if (R)
108108 then {
109109 let V = Q(R, S)
110110 let W = V._1
111111 let X = V._2
112112 $Tuple4(W, X, nil, [AttachedPayment(S, U)])
113113 }
114114 else {
115115 let Y = Q(R, S)
116116 let W = Y._1
117117 let X = Y._2
118118 $Tuple4(W, X, [U, toBase58String(S)], nil)
119119 }
120120
121121
122122 func Z (aa,ab) = {
123123 let ac = aa
124124 let ad = ac._1
125125 let ae = ac._2
126126 $Tuple2((ad :+ ab.amount), (ae :+ (if ((ab.assetId == unit))
127127 then base58''
128128 else ab.assetId)))
129129 }
130130
131131
132132 func af (ag,ah) = {
133133 let u = ah
134134 if (if ($isInstanceOf(u, "Issue"))
135135 then true
136136 else if ($isInstanceOf(u, "Burn"))
137137 then true
138138 else if ($isInstanceOf(u, "Reissue"))
139139 then true
140140 else if ($isInstanceOf(u, "ScriptTransfer"))
141141 then true
142142 else if ($isInstanceOf(u, "BinaryEntry"))
143143 then true
144144 else if ($isInstanceOf(u, "BooleanEntry"))
145145 then true
146146 else if ($isInstanceOf(u, "StringEntry"))
147147 then true
148148 else $isInstanceOf(u, "IntegerEntry"))
149149 then {
150150 let ai = u
151151 (ag :+ ai)
152152 }
153153 else ag
154154 }
155155
156156
157157 func aj (ag,ah) = {
158158 let u = ah
159159 if ($isInstanceOf(u, "String"))
160160 then {
161161 let ak = u
162162 (ag :+ ak)
163163 }
164164 else if ($isInstanceOf(u, "Int"))
165165 then {
166166 let ak = u
167167 (ag :+ ak)
168168 }
169169 else if ($isInstanceOf(u, "Boolean"))
170170 then {
171171 let ak = u
172172 (ag :+ ak)
173173 }
174174 else if ($isInstanceOf(u, "ByteVector"))
175175 then {
176176 let ak = u
177177 (ag :+ ak)
178178 }
179179 else if ($isInstanceOf(u, "Unit"))
180180 then {
181181 let ak = u
182182 (ag :+ ak)
183183 }
184184 else throw()
185185 }
186186
187187
188188 func al (am,L,an,ao) = valueOrElse(J(), {
189189 let ap = {
190190 let aq = ao
191191 let ar = size(aq)
192192 let as = $Tuple2(nil, nil)
193193 func at (au,av) = if ((av >= ar))
194194 then au
195195 else Z(au, aq[av])
196196
197197 func aw (au,av) = if ((av >= ar))
198198 then au
199199 else throw("List size exceeds 10")
200200
201201 aw(at(at(at(at(at(at(at(at(at(at(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
202202 }
203203 let ad = ap._1
204204 let ae = ap._2
205205 let ax = if (if ((am == "replenishWithTwoTokens"))
206206 then (size(ao) == 3)
207207 else false)
208208 then [ao[2]]
209209 else if (if ((am == "replenishWithOneToken"))
210210 then (size(ao) == 2)
211211 else false)
212212 then [ao[1]]
213213 else nil
214214 let ay = {
215215 let az = reentrantInvoke(D, am, [L, an, ad, ae], ax)
216216 if ($isInstanceOf(az, "(List[Any], List[Any])"))
217217 then az
218218 else throw(($getType(az) + " couldn't be cast to (List[Any], List[Any])"))
219219 }
220220 if ((ay == ay))
221221 then {
222222 let aA = ay._2
223223 let aB = ay._1
224224 let aC = {
225225 let aq = aA
226226 let ar = size(aq)
227227 let as = nil
228228 func aD (au,av) = if ((av >= ar))
229229 then au
230230 else aj(au, aq[av])
231231
232232 func aE (au,av) = if ((av >= ar))
233233 then au
234234 else throw("List size exceeds 10")
235235
236236 aE(aD(aD(aD(aD(aD(aD(aD(aD(aD(aD(as, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
237237 }
238238 let aF = {
239239 let aq = aB
240240 let ar = size(aq)
241241 let as = nil
242242 func aG (au,av) = if ((av >= ar))
243243 then au
244244 else af(au, aq[av])
245245
246246 func aH (au,av) = if ((av >= ar))
247247 then au
248248 else throw("List size exceeds 15")
249249
250250 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)
251251 }
252252 $Tuple2(aF, aC)
253253 }
254254 else throw("Strict value is not equal to itself.")
255255 })
256256
257257
258258 @Callable(aI)
259259 func callFunction (am,an) = al(am, aI.caller.bytes, an, aI.payments)
260260
261261
262262
263263 @Callable(aI)
264264 func shutdown () = valueOrElse(M(aI.callerPublicKey), if (!(I))
265265 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, c), "the cause wasn't specified")))
266266 else O("Paused by admin"))
267267
268268
269269
270270 @Callable(aI)
271271 func activate () = valueOrElse(M(aI.callerPublicKey), if (I)
272272 then throw("DApp is already active")
273273 else [BooleanEntry(a, true), DeleteEntry(c)])
274274
275275
276276
277277 @Callable(aI)
278-func stakeUnstake (R,U,aJ) = valueOrElse(J(), if ((aI.caller != D))
279- then throw("Only global Contract can invoke this function")
280- else if ((aJ == "WAVES"))
281- then {
282- let aK = addressFromStringValue(valueOrErrorMessage(getString(r, f), "No leasing pool in oracle"))
283- let aL = getBinary(this, h)
284- let aM = valueOrElse(getInteger(this, g), 0)
285- let aN = if (R)
286- then (aM + U)
287- else (aM - U)
288- let aO = Lease(aK, aN)
289- let aP = calculateLeaseId(aO)
290- let aQ = [aO, BinaryEntry(h, aP), IntegerEntry(g, aN)]
291- let u = aL
292- if ($isInstanceOf(u, "ByteVector"))
293- then {
294- let aR = u
295- ([LeaseCancel(aR)] ++ aQ)
296- }
297- else aQ
298- }
299- else {
300- let aS = T(R, U, fromBase58String(aJ))
301- let W = aS._1
302- let aT = aS._2
303- let aU = aS._3
304- let ao = aS._4
305- let aV = invoke(aT, W, aU, ao)
306- if ((aV == aV))
307- then nil
308- else throw("Strict value is not equal to itself.")
309- })
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+ }))
310318
311319
312320
313321 @Callable(aI)
314322 func reissueShareToken (U) = valueOrElse(K(aI.caller), valueOrElse(J(), {
315323 let aW = fromBase58String(getStringValue(this, q))
316324 [Reissue(aW, U, true), ScriptTransfer(aI.caller, U, aW)]
317325 }))
318326
319327
320328
321329 @Callable(aI)
322330 func replenishWithTwoTokens (aX) = al("replenishWithTwoTokens", aI.caller.bytes, ["false", "0"], aI.payments)
323331
324332
325333
326334 @Callable(aI)
327335 func withdraw () = al("withdraw", aI.caller.bytes, ["0"], aI.payments)
328336
329337
330338
331339 @Callable(aI)
332340 func exchange (aY) = al("exchange", aI.caller.bytes, [toString(aY)], aI.payments)
333341
334342
335343 @Verifier(aZ)
336344 func ba () = {
337345 let bb = {
338346 let bc = if (sigVerify(aZ.bodyBytes, aZ.proofs[0], x))
339347 then 1
340348 else 0
341349 let bd = if (sigVerify(aZ.bodyBytes, aZ.proofs[1], y))
342350 then 1
343351 else 0
344352 let be = if (sigVerify(aZ.bodyBytes, aZ.proofs[2], z))
345353 then 1
346354 else 0
347355 (((bc + bd) + be) >= 2)
348356 }
349357 bb
350358 }
351359

github/deemru/w8io/6500d08 
44.04 ms