tx · 8uMDS5JfUA7Qyd82WvmvCouVmhES9ZDRwEjkkjgXGweE

3MyzPou5b4wqX1yKewzD9Q842nZfEsrmmdA:  -0.14000000 Waves

2022.11.14 15:43 [2316817] smart account 3MyzPou5b4wqX1yKewzD9Q842nZfEsrmmdA > SELF 0.00000000 Waves

{ "type": 13, "id": "8uMDS5JfUA7Qyd82WvmvCouVmhES9ZDRwEjkkjgXGweE", "fee": 14000000, "feeAssetId": null, "timestamp": 1668429878207, "version": 2, "chainId": 84, "sender": "3MyzPou5b4wqX1yKewzD9Q842nZfEsrmmdA", "senderPublicKey": "J7rgH9Evbm92drmc4Tf5qZVRXhZDjak1uHg31HriTLxD", "proofs": [ "5ETbisymrmEzrS9ozPpiJmHEosgzqQAbEzUNGxFMFHDJetxQBPmPkNf5zvEgw3hQFKwnEAKC3bvZFwnxRpXTAtDR", "JTefR8R3N5rAYCdEHphSAeJVwok3aXPqP7BuAAeUSzpec8TJvzeRfaSYWJNJJpTXGEyC4ECj3ztF6gZMv4ssCVF" ], "script": "base64:BgIkCAISBAoCCBgSABIAEgUKAwQBCBIDCgEBEgMKAQESABIDCgEBJwAHa0FjdGl2ZQIGYWN0aXZlAAZrQ2F1c2UCDnNodXRkb3duX2NhdXNlAAxrVVNETkFkZHJlc3MCGHN0YWtpbmdfdXNkbm5zYnRfYWRkcmVzcwAMa0VVUk5BZGRyZXNzAhRzdGFraW5nX2V1cm5fYWRkcmVzcwAMa0xlYXNpbmdQb29sAg9sZWFzaW5nX2FkZHJlc3MADmtMZWFzaW5nQW1vdW50Ag5sZWFzaW5nX2Ftb3VudAAKa0xlYXNpbmdJZAIKbGVhc2luZ19pZAANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwASa0FkbWluSW52b2tlUHViS2V5AhBhZG1pbl9pbnZva2VfcHViAA1rQ3BtbUNvbnRyYWN0Ag1jcG1tX2NvbnRyYWN0AAxrVVNETkFzc2V0SWQCDXVzZG5fYXNzZXRfaWQADGtFVVJOQXNzZXRJZAINZXVybl9hc3NldF9pZAAOa1N0YWtpbmdBc3NldHMCDnN0YWtpbmdfYXNzZXRzAA1rU2hhcmVBc3NldElkAg5zaGFyZV9hc3NldF9pZAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFXiv8IaJo1ukDNYXTyEjfepjfw+jjO6B44ARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AAxhZG1pblB1YktleTEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MQAMYWRtaW5QdWJLZXkyCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTIADGFkbWluUHViS2V5MwkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkzABFhZG1pblB1YktleUludm9rZQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBRJrQWRtaW5JbnZva2VQdWJLZXkAEnN0YWtpbmdVU0ROQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQWRkcmVzcwASc3Rha2luZ0VVUk5BZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa0VVUk5BZGRyZXNzAAxjcG1tQ29udHJhY3QJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQ3BtbUNvbnRyYWN0AARVU0ROCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtVU0ROQXNzZXRJZAAERVVSTgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrRVVSTkFzc2V0SWQADXN0YWtpbmdBc3NldHMJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBm9yYWNsZQUOa1N0YWtpbmdBc3NldHMABmFjdGl2ZQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQdrQWN0aXZlBgEIaXNBY3RpdmUAAwUGYWN0aXZlBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEOaXNHbG9iYWxDYWxsZXIBBmNhbGxlcgMJAAACBQZjYWxsZXIFDGNwbW1Db250cmFjdAUEdW5pdAkAAgECLU9ubHkgZ2xvYmFsIENvbnRyYWN0IGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELaXNBZG1pbkNhbGwBDGNhbGxlclB1YktleQMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwFDGNhbGxlclB1YktleQUEdW5pdAkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEHc3VzcGVuZAEFY2F1c2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIFB2tBY3RpdmUHCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmtDYXVzZQUFY2F1c2UFA25pbAEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgVzdGFrZQdhc3NldElkAwUFc3Rha2UDCQAAAgUHYXNzZXRJZAUEVVNETgkAlAoCAgxsb2NrTmV1dHJpbm8FEnN0YWtpbmdVU0ROQWRkcmVzcwkAlAoCAgxzdGFydFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwMJAAACBQdhc3NldElkBQRVU0ROCQCUCgICDnVubG9ja05ldXRyaW5vBRJzdGFraW5nVVNETkFkZHJlc3MJAJQKAgILc3RvcFN0YWtpbmcFEnN0YWtpbmdFVVJOQWRkcmVzcwERY2FsY1N0YWtpbmdQYXJhbXMDBXN0YWtlBmFtb3VudAdhc3NldElkAwUFc3Rha2UECyR0MDI0NzMyNTM5CQEYY2FsY1N0YWtpbmdGdW5jQW5kQWRkcmVzAgUFc3Rha2UFB2Fzc2V0SWQEBGNhbGwIBQskdDAyNDczMjUzOQJfMQQLc3Rha2luZ0FkZHIIBQskdDAyNDczMjUzOQJfMgkAlgoEBQRjYWxsBQtzdGFraW5nQWRkcgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBQZhbW91bnQFA25pbAQLJHQwMjYyNTI2OTEJARhjYWxjU3Rha2luZ0Z1bmNBbmRBZGRyZXMCBQVzdGFrZQUHYXNzZXRJZAQEY2FsbAgFCyR0MDI2MjUyNjkxAl8xBAtzdGFraW5nQWRkcggFCyR0MDI2MjUyNjkxAl8yCQCWCgQFBGNhbGwFC3N0YWtpbmdBZGRyCQDMCAIFBmFtb3VudAkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAQ9jb2xsZWN0UGF5bWVudHMCA2FjYwdwYXltZW50BAskdDAyODUzMjg5NgUDYWNjBA5wYXltZW50QW1vdW50cwgFCyR0MDI4NTMyODk2Al8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAyODUzMjg5NgJfMgkAlAoCCQDNCAIFDnBheW1lbnRBbW91bnRzCAUHcGF5bWVudAZhbW91bnQJAM0IAgUPcGF5bWVudEFzc2V0SWRzAwkAAAIIBQdwYXltZW50B2Fzc2V0SWQFBHVuaXQBAAgFB3BheW1lbnQHYXNzZXRJZAEMY29sbGVjdFN0YXRlAgZyZXN1bHQGc291cmNlBAckbWF0Y2gwBQZzb3VyY2UDAwkAAQIFByRtYXRjaDACBUlzc3VlBgMJAAECBQckbWF0Y2gwAgRCdXJuBgMJAAECBQckbWF0Y2gwAgdSZWlzc3VlBgMJAAECBQckbWF0Y2gwAg5TY3JpcHRUcmFuc2ZlcgYDCQABAgUHJG1hdGNoMAILQmluYXJ5RW50cnkGAwkAAQIFByRtYXRjaDACDEJvb2xlYW5FbnRyeQYDCQABAgUHJG1hdGNoMAILU3RyaW5nRW50cnkGCQABAgUHJG1hdGNoMAIMSW50ZWdlckVudHJ5BAFlBQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBZQUGcmVzdWx0AQtjb2xsZWN0RGF0YQIGcmVzdWx0BnNvdXJjZQQHJG1hdGNoMAUGc291cmNlAwkAAQIFByRtYXRjaDACBlN0cmluZwQBdgUHJG1hdGNoMAkAzQgCBQZyZXN1bHQFAXYDCQABAgUHJG1hdGNoMAIDSW50BAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF2BQckbWF0Y2gwCQDNCAIFBnJlc3VsdAUBdgkBBXRocm93AAEKY2FsbENvbW1vbgQIZnVuY05hbWUGY2FsbGVyBGFyZ3MIcGF5bWVudHMJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECyR0MDM3NzczODYxCgACJGwFCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEPY29sbGVjdFBheW1lbnRzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBA5wYXltZW50QW1vdW50cwgFCyR0MDM3NzczODYxAl8xBA9wYXltZW50QXNzZXRJZHMIBQskdDAzNzc3Mzg2MQJfMgQLJHQwMzg2NjQwMTQKAAFACQD9BwQFDGNwbW1Db250cmFjdAUIZnVuY05hbWUJAMwIAgUGY2FsbGVyCQDMCAIFBGFyZ3MJAMwIAgUOcGF5bWVudEFtb3VudHMJAMwIAgUPcGF5bWVudEFzc2V0SWRzBQNuaWwFA25pbAMJAAECBQFAAhYoTGlzdFtBbnldLCBMaXN0W0FueV0pBQFACQACAQkArAICCQADAQUBQAIrIGNvdWxkbid0IGJlIGNhc3QgdG8gKExpc3RbQW55XSwgTGlzdFtBbnldKQMJAAACBQskdDAzODY2NDAxNAULJHQwMzg2NjQwMTQEBGRhdGEIBQskdDAzODY2NDAxNAJfMgQHYWN0aW9ucwgFCyR0MDM4NjY0MDE0Al8xBAptYXBwZWREYXRhCgACJGwFBGRhdGEKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBC2NvbGxlY3REYXRhAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBA1tYXBwZWRBY3Rpb25zCgACJGwFB2FjdGlvbnMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjJfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDGNvbGxlY3RTdGF0ZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQUkZjJfMgIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8JAJQKAgUNbWFwcGVkQWN0aW9ucwUKbWFwcGVkRGF0YQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLggBaQEMY2FsbEZ1bmN0aW9uAghmdW5jTmFtZQRhcmdzCQEKY2FsbENvbW1vbgQFCGZ1bmNOYW1lCAgFAWkGY2FsbGVyBWJ5dGVzBQRhcmdzCAUBaQhwYXltZW50cwFpAQhzaHV0ZG93bgAJAQt2YWx1ZU9yRWxzZQIJAQtpc0FkbWluQ2FsbAEIBQFpD2NhbGxlclB1YmxpY0tleQMJAQEhAQUGYWN0aXZlCQACAQkArAICAiJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFBmtDYXVzZQIadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQJAQdzdXNwZW5kAQIPUGF1c2VkIGJ5IGFkbWluAWkBCGFjdGl2YXRlAAkBC3ZhbHVlT3JFbHNlAgkBC2lzQWRtaW5DYWxsAQgFAWkPY2FsbGVyUHVibGljS2V5AwUGYWN0aXZlCQACAQIWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUHa0FjdGl2ZQYJAMwIAgkBC0RlbGV0ZUVudHJ5AQUGa0NhdXNlBQNuaWwBaQEMc3Rha2VVbnN0YWtlAwVzdGFrZQZhbW91bnQNYXNzZXRJZFN0cmluZwkBC3ZhbHVlT3JFbHNlAgkBCGlzQWN0aXZlAAMJAQIhPQIIBQFpBmNhbGxlcgUMY3BtbUNvbnRyYWN0CQACAQItT25seSBnbG9iYWwgQ29udHJhY3QgY2FuIGludm9rZSB0aGlzIGZ1bmN0aW9uAwkAAAIFDWFzc2V0SWRTdHJpbmcCBVdBVkVTBARwb29sCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUGb3JhY2xlBQxrTGVhc2luZ1Bvb2wCGU5vIGxlYXNpbmcgcG9vbCBpbiBvcmFjbGUECWxlYXNpbmdJZAkAnAgCBQR0aGlzBQprTGVhc2luZ0lkBA1sZWFzaW5nQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDmtMZWFzaW5nQW1vdW50AAAEDm5ld0xlYXNlQW1vdW50AwUFc3Rha2UJAGQCBQ1sZWFzaW5nQW1vdW50BQZhbW91bnQJAGUCBQ1sZWFzaW5nQW1vdW50BQZhbW91bnQECG5ld0xlYXNlCQDECAIFBHBvb2wFDm5ld0xlYXNlQW1vdW50BApuZXdMZWFzZUlkCQC5CAEFCG5ld0xlYXNlBAhiYXNlRXRyeQkAzAgCBQhuZXdMZWFzZQkAzAgCCQELQmluYXJ5RW50cnkCBQprTGVhc2luZ0lkBQpuZXdMZWFzZUlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rTGVhc2luZ0Ftb3VudAUObmV3TGVhc2VBbW91bnQFA25pbAQHJG1hdGNoMAUJbGVhc2luZ0lkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEA2xJZAUHJG1hdGNoMAkAzggCCQDMCAIJAQtMZWFzZUNhbmNlbAEFA2xJZAUDbmlsBQhiYXNlRXRyeQUIYmFzZUV0cnkECyR0MDYwMTA2MTEzCQERY2FsY1N0YWtpbmdQYXJhbXMDBQVzdGFrZQUGYW1vdW50CQDZBAEFDWFzc2V0SWRTdHJpbmcEBGNhbGwIBQskdDA2MDEwNjExMwJfMQQEYWRkcggFCyR0MDYwMTA2MTEzAl8yBAZwYXJhbXMIBQskdDA2MDEwNjExMwJfMwQIcGF5bWVudHMIBQskdDA2MDEwNjExMwJfNAQDaW52CQD8BwQFBGFkZHIFBGNhbGwFBnBhcmFtcwUIcGF5bWVudHMDCQAAAgUDaW52BQNpbnYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFyZWlzc3VlU2hhcmVUb2tlbgEGYW1vdW50CQELdmFsdWVPckVsc2UCCQEOaXNHbG9iYWxDYWxsZXIBCAUBaQZjYWxsZXIJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAEDHNoYXJlQXNzZXRJZAkA2QQBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQ1rU2hhcmVBc3NldElkCQDMCAIJAQdSZWlzc3VlAwUMc2hhcmVBc3NldElkBQZhbW91bnQGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUGYW1vdW50BQxzaGFyZUFzc2V0SWQFA25pbAFpARZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zARFzbGlwcGFnZVRvbGVyYW5jZQkBCmNhbGxDb21tb24EAhZyZXBsZW5pc2hXaXRoVHdvVG9rZW5zCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAICBWZhbHNlCQDMCAICATAFA25pbAgFAWkIcGF5bWVudHMBaQEId2l0aGRyYXcACQEKY2FsbENvbW1vbgQCCHdpdGhkcmF3CAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAICATAFA25pbAgFAWkIcGF5bWVudHMBaQEIZXhjaGFuZ2UBEm1pbkFtb3VudFRvUmVjZWl2ZQkBCmNhbGxDb21tb24EAghleGNoYW5nZQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQCkAwEFEm1pbkFtb3VudFRvUmVjZWl2ZQUDbmlsCAUBaQhwYXltZW50cwECdHgBBnZlcmlmeQAEE211bHRpU2lnbmVkQnlBZG1pbnMEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAgUTbXVsdGlTaWduZWRCeUFkbWluc18ca1c=", "height": 2316817, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9bhqVSCHrwUJGqQ1BKvwtTUA4hTSgZo9X7z8L78YGS6b Next: none Diff:
OldNewDifferences
3333
3434 let p = "share_asset_id"
3535
36-let q = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
36+let q = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
3737
3838 func r (s) = {
3939 let t = getString(q, s)
174174 }
175175
176176
177-@Callable(aj)
178-func callFunction (ak,al) = valueOrElse(H(), {
179- let am = {
180- let an = aj.payments
181- let ao = size(an)
182- let ap = $Tuple2(nil, nil)
183- func aq (ar,as) = if ((as >= ao))
184- then ar
185- else X(ar, an[as])
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])
186185
187- func at (ar,as) = if ((as >= ao))
188- then ar
186+ func au (as,at) = if ((at >= ap))
187+ then as
189188 else throw("List size exceeds 10")
190189
191- at(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
190+ au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
192191 }
193- let ab = am._1
194- let ac = am._2
195- let au = {
196- let av = reentrantInvoke(C, ak, [aj.caller.bytes, al, ab, ac], nil)
197- if ($isInstanceOf(av, "(List[Any], List[Any])"))
198- then av
199- else throw(($getType(av) + " couldn't be cast to (List[Any], List[Any])"))
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])"))
200199 }
201- if ((au == au))
200+ if ((av == av))
202201 then {
203- let aw = au._2
204- let ax = au._1
205- let ay = {
206- let an = aw
207- let ao = size(an)
208- let ap = nil
209- func az (ar,as) = if ((as >= ao))
210- then ar
211- else ah(ar, an[as])
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])
212211
213- func aA (ar,as) = if ((as >= ao))
214- then ar
212+ func aB (as,at) = if ((at >= ap))
213+ then as
215214 else throw("List size exceeds 10")
216215
217- aA(az(az(az(az(az(az(az(az(az(az(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
216+ aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
218217 }
219- let aB = {
220- let an = ax
221- let ao = size(an)
222- let ap = nil
223- func aC (ar,as) = if ((as >= ao))
224- then ar
225- else ad(ar, an[as])
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])
226225
227- func aD (ar,as) = if ((as >= ao))
228- then ar
226+ func aE (as,at) = if ((at >= ap))
227+ then as
229228 else throw("List size exceeds 15")
230229
231- aD(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
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)
232231 }
233- $Tuple2(aB, ay)
232+ $Tuple2(aC, az)
234233 }
235234 else throw("Strict value is not equal to itself.")
236235 })
237236
238237
238+@Callable(aF)
239+func callFunction (ak,al) = aj(ak, aF.caller.bytes, al, aF.payments)
239240
240-@Callable(aj)
241-func shutdown () = valueOrElse(K(aj.callerPublicKey), if (!(G))
241+
242+
243+@Callable(aF)
244+func shutdown () = valueOrElse(K(aF.callerPublicKey), if (!(G))
242245 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
243246 else M("Paused by admin"))
244247
245248
246249
247-@Callable(aj)
248-func activate () = valueOrElse(K(aj.callerPublicKey), if (G)
250+@Callable(aF)
251+func activate () = valueOrElse(K(aF.callerPublicKey), if (G)
249252 then throw("DApp is already active")
250253 else [BooleanEntry(a, true), DeleteEntry(b)])
251254
252255
253256
254-@Callable(aj)
255-func stakeUnstake (P,S,aE) = valueOrElse(I(aj.caller), valueOrElse(H(), if ((aj.caller != C))
257+@Callable(aF)
258+func stakeUnstake (P,S,aG) = valueOrElse(H(), if ((aF.caller != C))
256259 then throw("Only global Contract can invoke this function")
257- else if ((aE == "WAVES"))
260+ else if ((aG == "WAVES"))
258261 then {
259- let aF = addressFromStringValue(valueOrErrorMessage(getString(q, e), "No leasing pool in oracle"))
260- let aG = getBinary(this, g)
261- let aH = valueOrElse(getInteger(this, f), 0)
262- let aI = if (P)
263- then (aH + S)
264- else (aH - S)
265- let aJ = Lease(aF, aI)
266- let aK = calculateLeaseId(aJ)
267- let aL = [aJ, BinaryEntry(g, aK), IntegerEntry(f, aI)]
268- let t = aG
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
269272 if ($isInstanceOf(t, "ByteVector"))
270273 then {
271- let aM = t
272- ([LeaseCancel(aM)] ++ aL)
274+ let aO = t
275+ ([LeaseCancel(aO)] ++ aN)
273276 }
274- else aL
277+ else aN
275278 }
276279 else {
277- let aN = R(P, S, fromBase58String(aE))
278- let U = aN._1
279- let aO = aN._2
280- let aP = aN._3
281- let aQ = aN._4
282- let aR = invoke(aO, U, aP, aQ)
283- if ((aR == aR))
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))
284287 then nil
285288 else throw("Strict value is not equal to itself.")
286- }))
289+ })
287290
288291
289292
290-@Callable(aj)
291-func reissueShareToken (S) = valueOrElse(I(aj.caller), valueOrElse(H(), {
292- let aS = fromBase58String(getStringValue(this, p))
293-[Reissue(aS, S, true), ScriptTransfer(aj.caller, S, aS)]
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)]
294297 }))
295298
296299
297-@Verifier(aT)
298-func aU () = {
299- let aV = {
300- let aW = if (sigVerify(aT.bodyBytes, aT.proofs[0], w))
300+
301+@Callable(aF)
302+func replenishWithTwoTokens (aU) = aj("replenishWithTwoTokens", aF.caller.bytes, ["false", "0"], aF.payments)
303+
304+
305+
306+@Callable(aF)
307+func withdraw () = aj("withdraw", aF.caller.bytes, ["0"], aF.payments)
308+
309+
310+
311+@Callable(aF)
312+func exchange (aV) = aj("exchange", aF.caller.bytes, [toString(aV)], aF.payments)
313+
314+
315+@Verifier(aW)
316+func aX () = {
317+ let aY = {
318+ let aZ = if (sigVerify(aW.bodyBytes, aW.proofs[0], w))
301319 then 1
302320 else 0
303- let aX = if (sigVerify(aT.bodyBytes, aT.proofs[1], x))
321+ let ba = if (sigVerify(aW.bodyBytes, aW.proofs[1], x))
304322 then 1
305323 else 0
306- let aY = if (sigVerify(aT.bodyBytes, aT.proofs[2], y))
324+ let bb = if (sigVerify(aW.bodyBytes, aW.proofs[2], y))
307325 then 1
308326 else 0
309- (((aW + aX) + aY) >= 2)
327+ (((aZ + ba) + bb) >= 2)
310328 }
311- aV
329+ aY
312330 }
313331
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "shutdown_cause"
77
88 let c = "staking_usdnnsbt_address"
99
1010 let d = "staking_eurn_address"
1111
1212 let e = "leasing_address"
1313
1414 let f = "leasing_amount"
1515
1616 let g = "leasing_id"
1717
1818 let h = "admin_pub_1"
1919
2020 let i = "admin_pub_2"
2121
2222 let j = "admin_pub_3"
2323
2424 let k = "admin_invoke_pub"
2525
2626 let l = "cpmm_contract"
2727
2828 let m = "usdn_asset_id"
2929
3030 let n = "eurn_asset_id"
3131
3232 let o = "staking_assets"
3333
3434 let p = "share_asset_id"
3535
36-let q = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
36+let q = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
3737
3838 func r (s) = {
3939 let t = getString(q, s)
4040 if ($isInstanceOf(t, "String"))
4141 then {
4242 let u = t
4343 fromBase58String(u)
4444 }
4545 else {
4646 let v = t
4747 throw((s + "is empty"))
4848 }
4949 }
5050
5151
5252 let w = r(h)
5353
5454 let x = r(i)
5555
5656 let y = r(j)
5757
5858 let z = r(k)
5959
6060 let A = Address(r(c))
6161
6262 let B = Address(r(d))
6363
6464 let C = Address(r(l))
6565
6666 let D = r(m)
6767
6868 let E = r(n)
6969
7070 let F = getStringValue(q, o)
7171
7272 let G = valueOrElse(getBoolean(this, a), true)
7373
7474 func H () = if (G)
7575 then unit
7676 else throw("DApp is inactive at this moment")
7777
7878
7979 func I (J) = if ((J == C))
8080 then unit
8181 else throw("Only global Contract can invoke this function")
8282
8383
8484 func K (L) = if (containsElement([w, x, y], L))
8585 then unit
8686 else throw("Only admin can call this function")
8787
8888
8989 func M (N) = [BooleanEntry(a, false), StringEntry(b, N)]
9090
9191
9292 func O (P,Q) = if (P)
9393 then if ((Q == D))
9494 then $Tuple2("lockNeutrino", A)
9595 else $Tuple2("startStaking", B)
9696 else if ((Q == D))
9797 then $Tuple2("unlockNeutrino", A)
9898 else $Tuple2("stopStaking", B)
9999
100100
101101 func R (P,S,Q) = if (P)
102102 then {
103103 let T = O(P, Q)
104104 let U = T._1
105105 let V = T._2
106106 $Tuple4(U, V, nil, [AttachedPayment(Q, S)])
107107 }
108108 else {
109109 let W = O(P, Q)
110110 let U = W._1
111111 let V = W._2
112112 $Tuple4(U, V, [S, toBase58String(Q)], nil)
113113 }
114114
115115
116116 func X (Y,Z) = {
117117 let aa = Y
118118 let ab = aa._1
119119 let ac = aa._2
120120 $Tuple2((ab :+ Z.amount), (ac :+ (if ((Z.assetId == unit))
121121 then base58''
122122 else Z.assetId)))
123123 }
124124
125125
126126 func ad (ae,af) = {
127127 let t = af
128128 if (if ($isInstanceOf(t, "Issue"))
129129 then true
130130 else if ($isInstanceOf(t, "Burn"))
131131 then true
132132 else if ($isInstanceOf(t, "Reissue"))
133133 then true
134134 else if ($isInstanceOf(t, "ScriptTransfer"))
135135 then true
136136 else if ($isInstanceOf(t, "BinaryEntry"))
137137 then true
138138 else if ($isInstanceOf(t, "BooleanEntry"))
139139 then true
140140 else if ($isInstanceOf(t, "StringEntry"))
141141 then true
142142 else $isInstanceOf(t, "IntegerEntry"))
143143 then {
144144 let ag = t
145145 (ae :+ ag)
146146 }
147147 else ae
148148 }
149149
150150
151151 func ah (ae,af) = {
152152 let t = af
153153 if ($isInstanceOf(t, "String"))
154154 then {
155155 let ai = t
156156 (ae :+ ai)
157157 }
158158 else if ($isInstanceOf(t, "Int"))
159159 then {
160160 let ai = t
161161 (ae :+ ai)
162162 }
163163 else if ($isInstanceOf(t, "Boolean"))
164164 then {
165165 let ai = t
166166 (ae :+ ai)
167167 }
168168 else if ($isInstanceOf(t, "ByteVector"))
169169 then {
170170 let ai = t
171171 (ae :+ ai)
172172 }
173173 else throw()
174174 }
175175
176176
177-@Callable(aj)
178-func callFunction (ak,al) = valueOrElse(H(), {
179- let am = {
180- let an = aj.payments
181- let ao = size(an)
182- let ap = $Tuple2(nil, nil)
183- func aq (ar,as) = if ((as >= ao))
184- then ar
185- else X(ar, an[as])
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])
186185
187- func at (ar,as) = if ((as >= ao))
188- then ar
186+ func au (as,at) = if ((at >= ap))
187+ then as
189188 else throw("List size exceeds 10")
190189
191- at(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
190+ au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
192191 }
193- let ab = am._1
194- let ac = am._2
195- let au = {
196- let av = reentrantInvoke(C, ak, [aj.caller.bytes, al, ab, ac], nil)
197- if ($isInstanceOf(av, "(List[Any], List[Any])"))
198- then av
199- else throw(($getType(av) + " couldn't be cast to (List[Any], List[Any])"))
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])"))
200199 }
201- if ((au == au))
200+ if ((av == av))
202201 then {
203- let aw = au._2
204- let ax = au._1
205- let ay = {
206- let an = aw
207- let ao = size(an)
208- let ap = nil
209- func az (ar,as) = if ((as >= ao))
210- then ar
211- else ah(ar, an[as])
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])
212211
213- func aA (ar,as) = if ((as >= ao))
214- then ar
212+ func aB (as,at) = if ((at >= ap))
213+ then as
215214 else throw("List size exceeds 10")
216215
217- aA(az(az(az(az(az(az(az(az(az(az(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
216+ aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
218217 }
219- let aB = {
220- let an = ax
221- let ao = size(an)
222- let ap = nil
223- func aC (ar,as) = if ((as >= ao))
224- then ar
225- else ad(ar, an[as])
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])
226225
227- func aD (ar,as) = if ((as >= ao))
228- then ar
226+ func aE (as,at) = if ((at >= ap))
227+ then as
229228 else throw("List size exceeds 15")
230229
231- aD(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(aC(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
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)
232231 }
233- $Tuple2(aB, ay)
232+ $Tuple2(aC, az)
234233 }
235234 else throw("Strict value is not equal to itself.")
236235 })
237236
238237
238+@Callable(aF)
239+func callFunction (ak,al) = aj(ak, aF.caller.bytes, al, aF.payments)
239240
240-@Callable(aj)
241-func shutdown () = valueOrElse(K(aj.callerPublicKey), if (!(G))
241+
242+
243+@Callable(aF)
244+func shutdown () = valueOrElse(K(aF.callerPublicKey), if (!(G))
242245 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
243246 else M("Paused by admin"))
244247
245248
246249
247-@Callable(aj)
248-func activate () = valueOrElse(K(aj.callerPublicKey), if (G)
250+@Callable(aF)
251+func activate () = valueOrElse(K(aF.callerPublicKey), if (G)
249252 then throw("DApp is already active")
250253 else [BooleanEntry(a, true), DeleteEntry(b)])
251254
252255
253256
254-@Callable(aj)
255-func stakeUnstake (P,S,aE) = valueOrElse(I(aj.caller), valueOrElse(H(), if ((aj.caller != C))
257+@Callable(aF)
258+func stakeUnstake (P,S,aG) = valueOrElse(H(), if ((aF.caller != C))
256259 then throw("Only global Contract can invoke this function")
257- else if ((aE == "WAVES"))
260+ else if ((aG == "WAVES"))
258261 then {
259- let aF = addressFromStringValue(valueOrErrorMessage(getString(q, e), "No leasing pool in oracle"))
260- let aG = getBinary(this, g)
261- let aH = valueOrElse(getInteger(this, f), 0)
262- let aI = if (P)
263- then (aH + S)
264- else (aH - S)
265- let aJ = Lease(aF, aI)
266- let aK = calculateLeaseId(aJ)
267- let aL = [aJ, BinaryEntry(g, aK), IntegerEntry(f, aI)]
268- let t = aG
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
269272 if ($isInstanceOf(t, "ByteVector"))
270273 then {
271- let aM = t
272- ([LeaseCancel(aM)] ++ aL)
274+ let aO = t
275+ ([LeaseCancel(aO)] ++ aN)
273276 }
274- else aL
277+ else aN
275278 }
276279 else {
277- let aN = R(P, S, fromBase58String(aE))
278- let U = aN._1
279- let aO = aN._2
280- let aP = aN._3
281- let aQ = aN._4
282- let aR = invoke(aO, U, aP, aQ)
283- if ((aR == aR))
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))
284287 then nil
285288 else throw("Strict value is not equal to itself.")
286- }))
289+ })
287290
288291
289292
290-@Callable(aj)
291-func reissueShareToken (S) = valueOrElse(I(aj.caller), valueOrElse(H(), {
292- let aS = fromBase58String(getStringValue(this, p))
293-[Reissue(aS, S, true), ScriptTransfer(aj.caller, S, aS)]
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)]
294297 }))
295298
296299
297-@Verifier(aT)
298-func aU () = {
299- let aV = {
300- let aW = if (sigVerify(aT.bodyBytes, aT.proofs[0], w))
300+
301+@Callable(aF)
302+func replenishWithTwoTokens (aU) = aj("replenishWithTwoTokens", aF.caller.bytes, ["false", "0"], aF.payments)
303+
304+
305+
306+@Callable(aF)
307+func withdraw () = aj("withdraw", aF.caller.bytes, ["0"], aF.payments)
308+
309+
310+
311+@Callable(aF)
312+func exchange (aV) = aj("exchange", aF.caller.bytes, [toString(aV)], aF.payments)
313+
314+
315+@Verifier(aW)
316+func aX () = {
317+ let aY = {
318+ let aZ = if (sigVerify(aW.bodyBytes, aW.proofs[0], w))
301319 then 1
302320 else 0
303- let aX = if (sigVerify(aT.bodyBytes, aT.proofs[1], x))
321+ let ba = if (sigVerify(aW.bodyBytes, aW.proofs[1], x))
304322 then 1
305323 else 0
306- let aY = if (sigVerify(aT.bodyBytes, aT.proofs[2], y))
324+ let bb = if (sigVerify(aW.bodyBytes, aW.proofs[2], y))
307325 then 1
308326 else 0
309- (((aW + aX) + aY) >= 2)
327+ (((aZ + ba) + bb) >= 2)
310328 }
311- aV
329+ aY
312330 }
313331

github/deemru/w8io/026f985 
62.45 ms