tx · ofZZG2QRyV8e5Vyf1AUAfP2apq3JEsYRR2RihFRqyhS

3Ms7SA6E2ntk65GZD46LCZyGJjc4XNGuWpw:  -0.01400000 Waves

2022.03.11 17:44 [1959425] smart account 3Ms7SA6E2ntk65GZD46LCZyGJjc4XNGuWpw > SELF 0.00000000 Waves

{ "type": 13, "id": "ofZZG2QRyV8e5Vyf1AUAfP2apq3JEsYRR2RihFRqyhS", "fee": 1400000, "feeAssetId": null, "timestamp": 1647009889180, "version": 1, "sender": "3Ms7SA6E2ntk65GZD46LCZyGJjc4XNGuWpw", "senderPublicKey": "Xr66kzm4ArQMXWGfdhubHQuHx1uwhWdjthS9EP1ayUn", "proofs": [ "KbeAQKTGP5fSEi2Fuhib5zwdJbLu174hUuVEuL7n8Pqj6Hde1ZvwjuVi95DJs8XoHWSb8n6NzfgffR932eaCzV9" ], "script": "base64:AAIFAAAAAAAAABUIAhIDCgEIEgASAwoBCBIDCgEIEgAAAAAkAAAAAANTRVACAAAAAl9fAAAAAAZzY2FsZTgAAAAAAAX14QAAAAAAEXBvb2xTdGF0c1ByaWNlS2V5AAAAAAAAAAAEAAAAAA5pZHhQb29sQWRkcmVzcwAAAAAAAAAAAQAAAAANaWR4UG9vbFN0YXR1cwAAAAAAAAAAAgAAAAAQaWR4UG9vbExQQXNzZXRJZAAAAAAAAAAAAwAAAAANaWR4QW10QXNzZXRJZAAAAAAAAAAABAAAAAAPaWR4UHJpY2VBc3NldElkAAAAAAAAAAAFAAAAAA5pZHhBbXRBc3NldERjbQAAAAAAAAAABgAAAAAQaWR4UHJpY2VBc3NldERjbQAAAAAAAAAABwAAAAAOaWR4SUFtdEFzc2V0SWQAAAAAAAAAAAgAAAAAEGlkeElQcmljZUFzc2V0SWQAAAAAAAAAAAkAAAAADWlkeExQQXNzZXREY20AAAAAAAAAAAoAAAAAE2lkeE1hdGNoZXJQdWJsaWNLZXkAAAAAAAAAAAsBAAAADmtleVJlZ2lzdGVyUHV0AAAAAgAAAAtwb29sQWRkcmVzcwAAAAR0eElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAslcyVzJXNfX1BfXwUAAAALcG9vbEFkZHJlc3MCAAAAAl9fBQAAAAR0eElkAQAAABFrZXlSZWdpc3RlckludmVzdAAAAAIAAAALcG9vbEFkZHJlc3MAAAAEdHhJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAQJXMlcyVzX19pbnZlc3RfXwUAAAALcG9vbEFkZHJlc3MCAAAAAl9fBQAAAAR0eElkAQAAABZrZXlQb29sVG90YWxBbXRCeUFzc2V0AAAAAgAAAAtwb29sQWRkcmVzcwAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA8lcyVzJXNfX3RvdGFsX18FAAAAC3Bvb2xBZGRyZXNzAgAAAAJfXwUAAAAHYXNzZXRJZAEAAAASa2V5RmFjdG9yeUNvbnRyYWN0AAAAAAIAAAATJXNfX2ZhY3RvcnlDb250cmFjdAEAAAAga2V5U2xpcHBhZ2VBbXRQZXJBc3NldEN1bXVsYXRpdmUAAAACAAAAC3Bvb2xBZGRyZXNzAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIJXMlcyVzX18FAAAAC3Bvb2xBZGRyZXNzAgAAAAJfXwUAAAAHYXNzZXRJZAIAAAAUX19zbGlwcGFnZUN1bXVsYXRpdmUBAAAAEGtleUZhY3RvcnlDb25maWcAAAAAAgAAABElc19fZmFjdG9yeUNvbmZpZwEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAATcG9vbENvbnRyYWN0QWRkcmVzcwIAAAAjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABAAAAEWludGVybmFsQmFzZUFzc2V0CQABLAAAAAICAAAAKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAAGkAAAAAQUAAAARaW50ZXJuYWxCYXNlQXNzZXQBAAAADWtleVBvb2xDb25maWcAAAACAAAACWlBbXRBc3NldAAAAAtpUHJpY2VBc3NldAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAglZCVkJXNfXwUAAAAJaUFtdEFzc2V0AgAAAAJfXwUAAAALaVByaWNlQXNzZXQCAAAACF9fY29uZmlnAQAAABNrZXlBbGxQb29sc1NodXRkb3duAAAAAAIAAAAMJXNfX3NodXRkb3duAQAAAA1rZXlQb29sV2VpZ2h0AAAAAQAAAA9jb250cmFjdEFkZHJlc3MJAAEsAAAAAgIAAAASJXMlc19fcG9vbFdlaWdodF9fBQAAAA9jb250cmFjdEFkZHJlc3MBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAAAgAAABQlc19fbWFuYWdlclB1YmxpY0tleQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAgAAABslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAD2ZhY3RvcnlDb250cmFj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AQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlGYWN0b3J5Q29udHJhY3QAAAAABQAAAA9mYWN0b3J5Q29udHJhY3QFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAADcHV0AAAAAAQAAAAEcG9vbAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAC3BtdEFtdEFzc2V0CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApwbXRBc3NldElkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAC3BtdEFtdEFzc2V0AAAAB2Fzc2V0SWQCAAAABVdBVkVTCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAtwbXRBbXRBc3NldAAAAAdhc3NldElkBAAAAAtwbXRBc3NldEFtdAgFAAAAC3BtdEFtdEFzc2V0AAAABmFtb3VudAQAAAAKcG9vbEFzc2V0cwkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAARwb29sAgAAAA5JbnZhbGlkIGNhbGxlcgUAAAADU0VQBAAAAA1hbW91bnRBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAQQAAAAMcHJpY2VBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAgQAAAALYW1vdW50QXNzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQUAAAANYW1vdW50QXNzZXRJZAIAAAARQ2Fubm90IGZpbmQgYXNzZXQEAAAACnByaWNlQXNzZXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQUAAAAMcHJpY2VBc3NldElkAgAAABFDYW5ub3QgZmluZCBhc3NldAQAAAAIdG90YWxBbXQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACBQAAAARwb29sBQAAAApwbXRBc3NldElkAAAAAAAAAAAABAAAABVjdW11bGF0aXZlU2xpcHBhZ2VBbXQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAIGtleVNsaXBwYWdlQW10UGVyQXNzZXRDdW11bGF0aXZlAAAAAgUAAAAEcG9vbAUAAAAKcG10QXNzZXRJZAAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAOa2V5UmVnaXN0ZXJQdXQAAAACBQAAAARwb29sCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAQAAABFkYXRhUHV0QWN0aW9uSW5mbwAAAAQFAAAACnBtdEFzc2V0SWQFAAAAC3BtdEFzc2V0QW10BQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5UG9vbFRvdGFsQW10QnlBc3NldAAAAAIFAAAABHBvb2wFAAAACnBtdEFzc2V0SWQJAABkAAAAAgUAAAAIdG90YWxBbXQFAAAAC3BtdEFzc2V0QW10CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAga2V5U2xpcHBhZ2VBbXRQZXJBc3NldEN1bXVsYXRpdmUAAAACBQAAAARwb29sBQAAAApwbXRBc3NldElkCQAAZAAAAAIFAAAAFWN1bXVsYXRpdmVTbGlwcGFnZUFtdAUAAAALcG10QXNzZXRBbXQFAAAAA25pbAAAAAFpAQAAAAZpbnZlc3QAAAABAAAADnBvb2xBZGRyZXNzU3RyBAAAAAtwb29sQWRkcmVzcwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAADnBvb2xBZGRyZXNzU3RyAgAAABRpbnZhbGlkIHBvb2wgYWRkcmVzcwQAAAAKcG9vbEFzc2V0cwkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAA5wb29sQWRkcmVzc1N0cgIAAAAUSW52YWxpZCBwb29sIHBhc3NlZC4FAAAAA1NFUAQAAAAEYW1JZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAQIAAAAWTm8gYXNzZXQgbWFwcGluZyBmb3VuZAQAAAAEcHJJZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAgIAAAAWTm8gYXNzZXQgbWFwcGluZyBmb3VuZAQAAAAJYW1CYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABZrZXlQb29sVG90YWxBbXRCeUFzc2V0AAAAAgUAAAAOcG9vbEFkZHJlc3NTdHIFAAAABGFtSWQAAAAAAAAAAAAEAAAACXByQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWa2V5UG9vbFRvdGFsQW10QnlBc3NldAAAAAIFAAAADnBvb2xBZGRyZXNzU3RyBQAAAARwcklkAAAAAAAAAAAABAAAAA1lc3RCeVByUmVzdWx0CQAD/AAAAAQFAAAAC3Bvb2xBZGRyZXNzAgAAAB9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZCQAETAAAAAIFAAAACXByQmFsYW5jZQUAAAADbmlsBQAAAANuaWwEAAAADWVzdEJ5QW1SZXN1bHQJAAP8AAAABAUAAAALcG9vbEFkZHJlc3MCAAAAIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZCQAETAAAAAIFAAAACWFtQmFsYW5jZQUAAAADbmlsBQAAAANuaWwEAAAADklkeEVzdEFtQW1vdW50AAAAAAAAAAAHBAAAAA5JZHhFc3RQckFtb3VudAAAAAAAAAAACAQAAAAIZXN0QW1BbXQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIJAAS1AAAAAgkBAAAACGFzU3RyaW5nAAAAAQUAAAANZXN0QnlQclJlc3VsdAUAAAADU0VQBQAAAA5JZHhFc3RBbUFtb3VudAIAAAAmZmFpbCB0byBwYXJzZSBlc3RpbWF0ZWQgYW1Bc3NldCBhbW91bnQEAAAACGVzdFByQW10CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACCQAEtQAAAAIJAQAAAAhhc1N0cmluZwAAAAEFAAAADWVzdEJ5QW1SZXN1bHQFAAAAA1NFUAUAAAAOSWR4RXN0UHJBbW91bnQCAAAAJmZhaWwgdG8gcGFyc2UgZXN0aW1hdGVkIHByQXNzZXQgYW1vdW50BAAAAAskdDA2NjQzNjc0NAMJAABnAAAAAgUAAAAJYW1CYWxhbmNlBQAAAAhlc3RBbUFtdAkABRQAAAACBQAAAAhlc3RBbUFtdAUAAAAJcHJCYWxhbmNlCQAFFAAAAAIFAAAACWFtQmFsYW5jZQUAAAAIZXN0UHJBbXQEAAAABWFtQW10CAUAAAALJHQwNjY0MzY3NDQAAAACXzEEAAAABXByQW10CAUAAAALJHQwNjY0MzY3NDQAAAACXzIEAAAACWFtQXNzZXRJZAMJAAAAAAAAAgUAAAAEYW1JZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAEYW1JZAQAAAAJcHJBc3NldElkAwkAAAAAAAACBQAAAARwcklkAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAARwcklkBAAAAAVscFB1dAkAA/wAAAAEBQAAAAtwb29sQWRkcmVzcwIAAAAKcHV0Rm9yRnJlZQkABEwAAAACAAAAAAAAAAPoBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACWFtQXNzZXRJZAUAAAAFYW1BbXQJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACXByQXNzZXRJZAUAAAAFcHJBbXQFAAAAA25pbAMJAAAAAAAAAgUAAAAFbHBQdXQFAAAABWxwUHV0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlSZWdpc3RlckludmVzdAAAAAIFAAAADnBvb2xBZGRyZXNzU3RyCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAQAAABRkYXRhSW52ZXN0QWN0aW9uSW5mbwAAAAQFAAAABWFtQW10BQAAAAVwckFtdAUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACBQAAAA5wb29sQWRkcmVzc1N0cgUAAAAEYW1JZAkAAGUAAAACBQAAAAlhbUJhbGFuY2UFAAAABWFtQW10CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5UG9vbFRvdGFsQW10QnlBc3NldAAAAAIFAAAADnBvb2xBZGRyZXNzU3RyBQAAAARwcklkCQAAZQAAAAIFAAAACXByQmFsYW5jZQUAAAAFcHJBbXQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkAAAIAAAABAgAAABJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAAACAAAAAQIAAAAbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAD3RhcmdldFB1YmxpY0tleQQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA90YXJnZXRQdWJsaWNLZXndp/uh", "chainId": 84, "height": 1959425, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5ppiNbZ2xyznhgkef5XLFAhkEMQ3eaaVYvyPLrWg5s4b Next: 7wMyUpr7Wb1fYFUCyBEr2Xw6sAZ8QTkyT2MjHnodhWVS Diff:
OldNewDifferences
6262 func F (G) = ("%s%s__poolWeight__" + G)
6363
6464
65-let H = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found."))
65+func H () = "%s__managerPublicKey"
6666
67-func I (t) = if (!(isDefined(t)))
67+
68+func I () = "%s__pendingManagerPublicKey"
69+
70+
71+let J = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found."))
72+
73+func K (t) = if (!(isDefined(t)))
6874 then "WAVES"
6975 else t
7076
7177
72-func J (K,L,M,N) = makeString(["%s%d%d%d", K, toString(L), toString(M), toString(N)], a)
78+func L (M,N,O,P) = makeString(["%s%d%d%d", M, toString(N), toString(O), toString(P)], a)
7379
7480
75-func O (P,Q,M,N) = makeString(["%d%d%d%d", toString(P), toString(Q), toString(M), toString(N)], a)
81+func Q (R,S,O,P) = makeString(["%d%d%d%d", toString(R), toString(S), toString(O), toString(P)], a)
7682
7783
78-func R (S) = {
79- let T = S
80- if ($isInstanceOf(T, "String"))
84+func T (U) = {
85+ let V = U
86+ if ($isInstanceOf(V, "String"))
8187 then {
82- let U = T
83- U
88+ let W = V
89+ W
8490 }
8591 else throw("fail to cast into String")
8692 }
8793
8894
89-func V (W,X,Y) = fraction(W, X, Y)
95+func X (Y,Z,aa) = fraction(Y, Z, aa)
9096
9197
92-@Callable(Z)
93-func constructor (H) = if ((Z.caller != this))
94- then throw("permissions denied")
95- else [StringEntry(u(), H)]
98+func ab () = {
99+ let V = getString(H())
100+ if ($isInstanceOf(V, "String"))
101+ then {
102+ let ac = V
103+ fromBase58String(ac)
104+ }
105+ else if ($isInstanceOf(V, "Unit"))
106+ then unit
107+ else throw("Match error")
108+ }
96109
97110
111+func ad () = {
112+ let V = getString(I())
113+ if ($isInstanceOf(V, "String"))
114+ then {
115+ let ac = V
116+ fromBase58String(ac)
117+ }
118+ else if ($isInstanceOf(V, "Unit"))
119+ then unit
120+ else throw("Match error")
121+ }
98122
99-@Callable(Z)
100-func put () = {
101- let aa = toString(Z.caller)
102- let ab = value(Z.payments[0])
103- let ac = if (!(isDefined(ab.assetId)))
104- then "WAVES"
105- else toBase58String(value(ab.assetId))
106- let ad = ab.amount
107- let ae = split(valueOrErrorMessage(getString(H, x(aa)), "Invalid caller"), a)
108- let af = parseIntValue(ae[1])
109- let ag = parseIntValue(ae[2])
110- let ah = valueOrErrorMessage(getString(H, z(af)), "Cannot find asset")
111- let ai = valueOrErrorMessage(getString(H, z(ag)), "Cannot find asset")
112- let aj = valueOrElse(getInteger(this, s(aa, ac)), 0)
113- let ak = valueOrElse(getInteger(this, v(aa, ac)), 0)
114-[StringEntry(o(aa, toBase58String(Z.transactionId)), J(ac, ad, height, lastBlock.timestamp)), IntegerEntry(s(aa, ac), (aj + ad)), IntegerEntry(v(aa, ac), (ak + ad))]
123+
124+func ae (af) = {
125+ let ag = throw("Permission denied")
126+ let V = ab()
127+ if ($isInstanceOf(V, "ByteVector"))
128+ then {
129+ let ah = V
130+ if ((af.callerPublicKey == ah))
131+ then true
132+ else ag
133+ }
134+ else if ($isInstanceOf(V, "Unit"))
135+ then if ((af.caller == this))
136+ then true
137+ else ag
138+ else throw("Match error")
139+ }
140+
141+
142+@Callable(af)
143+func constructor (J) = {
144+ let ai = ae(af)
145+ if ((ai == ai))
146+ then [StringEntry(u(), J)]
147+ else throw("Strict value is not equal to itself.")
115148 }
116149
117150
118151
119-@Callable(Z)
120-func invest (al) = {
121- let p = valueOrErrorMessage(addressFromString(al), "invalid pool address")
122- let ae = split(valueOrErrorMessage(getString(H, x(al)), "Invalid pool passed."), a)
123- let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
124- let an = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
125- let ao = valueOrElse(getInteger(this, s(al, am)), 0)
126- let ap = valueOrElse(getInteger(this, s(al, an)), 0)
127- let aq = invoke(p, "evaluatePutByPriceAssetREADONLY", [ap], nil)
128- let ar = invoke(p, "evaluatePutByAmountAssetREADONLY", [ao], nil)
129- let as = 7
130- let at = 8
131- let au = valueOrErrorMessage(parseIntValue(split(R(aq), a)[as]), "fail to parse estimated amAsset amount")
132- let av = valueOrErrorMessage(parseIntValue(split(R(ar), a)[at]), "fail to parse estimated prAsset amount")
133- let aw = if ((ao >= au))
134- then $Tuple2(au, ap)
135- else $Tuple2(ao, av)
136- let ax = aw._1
137- let ay = aw._2
138- let az = if ((am == "WAVES"))
152+@Callable(af)
153+func put () = {
154+ let aj = toString(af.caller)
155+ let ak = value(af.payments[0])
156+ let al = if (!(isDefined(ak.assetId)))
157+ then "WAVES"
158+ else toBase58String(value(ak.assetId))
159+ let am = ak.amount
160+ let an = split(valueOrErrorMessage(getString(J, x(aj)), "Invalid caller"), a)
161+ let ao = parseIntValue(an[1])
162+ let ap = parseIntValue(an[2])
163+ let aq = valueOrErrorMessage(getString(J, z(ao)), "Cannot find asset")
164+ let ar = valueOrErrorMessage(getString(J, z(ap)), "Cannot find asset")
165+ let as = valueOrElse(getInteger(this, s(aj, al)), 0)
166+ let at = valueOrElse(getInteger(this, v(aj, al)), 0)
167+[StringEntry(o(aj, toBase58String(af.transactionId)), L(al, am, height, lastBlock.timestamp)), IntegerEntry(s(aj, al), (as + am)), IntegerEntry(v(aj, al), (at + am))]
168+ }
169+
170+
171+
172+@Callable(af)
173+func invest (au) = {
174+ let p = valueOrErrorMessage(addressFromString(au), "invalid pool address")
175+ let an = split(valueOrErrorMessage(getString(J, x(au)), "Invalid pool passed."), a)
176+ let av = valueOrErrorMessage(getString(J, z(parseIntValue(an[1]))), "No asset mapping found")
177+ let aw = valueOrErrorMessage(getString(J, z(parseIntValue(an[2]))), "No asset mapping found")
178+ let ax = valueOrElse(getInteger(this, s(au, av)), 0)
179+ let ay = valueOrElse(getInteger(this, s(au, aw)), 0)
180+ let az = invoke(p, "evaluatePutByPriceAssetREADONLY", [ay], nil)
181+ let aA = invoke(p, "evaluatePutByAmountAssetREADONLY", [ax], nil)
182+ let aB = 7
183+ let aC = 8
184+ let aD = valueOrErrorMessage(parseIntValue(split(T(az), a)[aB]), "fail to parse estimated amAsset amount")
185+ let aE = valueOrErrorMessage(parseIntValue(split(T(aA), a)[aC]), "fail to parse estimated prAsset amount")
186+ let aF = if ((ax >= aD))
187+ then $Tuple2(aD, ay)
188+ else $Tuple2(ax, aE)
189+ let aG = aF._1
190+ let aH = aF._2
191+ let aI = if ((av == "WAVES"))
139192 then unit
140- else fromBase58String(am)
141- let aA = if ((an == "WAVES"))
193+ else fromBase58String(av)
194+ let aJ = if ((aw == "WAVES"))
142195 then unit
143- else fromBase58String(an)
144- let aB = invoke(p, "putForFree", [1000], [AttachedPayment(az, ax), AttachedPayment(aA, ay)])
145- if ((aB == aB))
146- then [StringEntry(r(al, toBase58String(Z.transactionId)), O(ax, ay, height, lastBlock.timestamp)), IntegerEntry(s(al, am), (ao - ax)), IntegerEntry(s(al, an), (ap - ay))]
196+ else fromBase58String(aw)
197+ let aK = invoke(p, "putForFree", [1000], [AttachedPayment(aI, aG), AttachedPayment(aJ, aH)])
198+ if ((aK == aK))
199+ then [StringEntry(r(au, toBase58String(af.transactionId)), Q(aG, aH, height, lastBlock.timestamp)), IntegerEntry(s(au, av), (ax - aG)), IntegerEntry(s(au, aw), (ay - aH))]
147200 else throw("Strict value is not equal to itself.")
148201 }
149202
150203
151-@Verifier(aC)
152-func aD () = sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
204+
205+@Callable(af)
206+func setManager (aL) = {
207+ let ai = ae(af)
208+ if ((ai == ai))
209+ then {
210+ let aM = fromBase58String(aL)
211+ if ((aM == aM))
212+ then [StringEntry(I(), aL)]
213+ else throw("Strict value is not equal to itself.")
214+ }
215+ else throw("Strict value is not equal to itself.")
216+ }
217+
218+
219+
220+@Callable(af)
221+func confirmManager () = {
222+ let aN = ad()
223+ let aO = if (isDefined(aN))
224+ then true
225+ else throw("No pending manager")
226+ if ((aO == aO))
227+ then {
228+ let aP = if ((af.callerPublicKey == value(aN)))
229+ then true
230+ else throw("You are not pending manager")
231+ if ((aP == aP))
232+ then [StringEntry(H(), toBase58String(value(aN))), DeleteEntry(I())]
233+ else throw("Strict value is not equal to itself.")
234+ }
235+ else throw("Strict value is not equal to itself.")
236+ }
237+
238+
239+@Verifier(aQ)
240+func aR () = {
241+ let aS = {
242+ let V = ab()
243+ if ($isInstanceOf(V, "ByteVector"))
244+ then {
245+ let ah = V
246+ ah
247+ }
248+ else if ($isInstanceOf(V, "Unit"))
249+ then aQ.senderPublicKey
250+ else throw("Match error")
251+ }
252+ sigVerify(aQ.bodyBytes, aQ.proofs[0], aS)
253+ }
153254
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 4
99
1010 let d = 1
1111
1212 let e = 2
1313
1414 let f = 3
1515
1616 let g = 4
1717
1818 let h = 5
1919
2020 let i = 6
2121
2222 let j = 7
2323
2424 let k = 8
2525
2626 let l = 9
2727
2828 let m = 10
2929
3030 let n = 11
3131
3232 func o (p,q) = ((("%s%s%s__P__" + p) + "__") + q)
3333
3434
3535 func r (p,q) = ((("%s%s%s__invest__" + p) + "__") + q)
3636
3737
3838 func s (p,t) = ((("%s%s%s__total__" + p) + "__") + t)
3939
4040
4141 func u () = "%s__factoryContract"
4242
4343
4444 func v (p,t) = (((("%s%s%s__" + p) + "__") + t) + "__slippageCumulative")
4545
4646
4747 func w () = "%s__factoryConfig"
4848
4949
5050 func x (y) = (("%s%s%s__" + y) + "__mappings__poolContract2PoolAssets")
5151
5252
5353 func z (A) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(A))
5454
5555
5656 func B (C,D) = (((("%d%d%s__" + C) + "__") + D) + "__config")
5757
5858
5959 func E () = "%s__shutdown"
6060
6161
6262 func F (G) = ("%s%s__poolWeight__" + G)
6363
6464
65-let H = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found."))
65+func H () = "%s__managerPublicKey"
6666
67-func I (t) = if (!(isDefined(t)))
67+
68+func I () = "%s__pendingManagerPublicKey"
69+
70+
71+let J = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found."))
72+
73+func K (t) = if (!(isDefined(t)))
6874 then "WAVES"
6975 else t
7076
7177
72-func J (K,L,M,N) = makeString(["%s%d%d%d", K, toString(L), toString(M), toString(N)], a)
78+func L (M,N,O,P) = makeString(["%s%d%d%d", M, toString(N), toString(O), toString(P)], a)
7379
7480
75-func O (P,Q,M,N) = makeString(["%d%d%d%d", toString(P), toString(Q), toString(M), toString(N)], a)
81+func Q (R,S,O,P) = makeString(["%d%d%d%d", toString(R), toString(S), toString(O), toString(P)], a)
7682
7783
78-func R (S) = {
79- let T = S
80- if ($isInstanceOf(T, "String"))
84+func T (U) = {
85+ let V = U
86+ if ($isInstanceOf(V, "String"))
8187 then {
82- let U = T
83- U
88+ let W = V
89+ W
8490 }
8591 else throw("fail to cast into String")
8692 }
8793
8894
89-func V (W,X,Y) = fraction(W, X, Y)
95+func X (Y,Z,aa) = fraction(Y, Z, aa)
9096
9197
92-@Callable(Z)
93-func constructor (H) = if ((Z.caller != this))
94- then throw("permissions denied")
95- else [StringEntry(u(), H)]
98+func ab () = {
99+ let V = getString(H())
100+ if ($isInstanceOf(V, "String"))
101+ then {
102+ let ac = V
103+ fromBase58String(ac)
104+ }
105+ else if ($isInstanceOf(V, "Unit"))
106+ then unit
107+ else throw("Match error")
108+ }
96109
97110
111+func ad () = {
112+ let V = getString(I())
113+ if ($isInstanceOf(V, "String"))
114+ then {
115+ let ac = V
116+ fromBase58String(ac)
117+ }
118+ else if ($isInstanceOf(V, "Unit"))
119+ then unit
120+ else throw("Match error")
121+ }
98122
99-@Callable(Z)
100-func put () = {
101- let aa = toString(Z.caller)
102- let ab = value(Z.payments[0])
103- let ac = if (!(isDefined(ab.assetId)))
104- then "WAVES"
105- else toBase58String(value(ab.assetId))
106- let ad = ab.amount
107- let ae = split(valueOrErrorMessage(getString(H, x(aa)), "Invalid caller"), a)
108- let af = parseIntValue(ae[1])
109- let ag = parseIntValue(ae[2])
110- let ah = valueOrErrorMessage(getString(H, z(af)), "Cannot find asset")
111- let ai = valueOrErrorMessage(getString(H, z(ag)), "Cannot find asset")
112- let aj = valueOrElse(getInteger(this, s(aa, ac)), 0)
113- let ak = valueOrElse(getInteger(this, v(aa, ac)), 0)
114-[StringEntry(o(aa, toBase58String(Z.transactionId)), J(ac, ad, height, lastBlock.timestamp)), IntegerEntry(s(aa, ac), (aj + ad)), IntegerEntry(v(aa, ac), (ak + ad))]
123+
124+func ae (af) = {
125+ let ag = throw("Permission denied")
126+ let V = ab()
127+ if ($isInstanceOf(V, "ByteVector"))
128+ then {
129+ let ah = V
130+ if ((af.callerPublicKey == ah))
131+ then true
132+ else ag
133+ }
134+ else if ($isInstanceOf(V, "Unit"))
135+ then if ((af.caller == this))
136+ then true
137+ else ag
138+ else throw("Match error")
139+ }
140+
141+
142+@Callable(af)
143+func constructor (J) = {
144+ let ai = ae(af)
145+ if ((ai == ai))
146+ then [StringEntry(u(), J)]
147+ else throw("Strict value is not equal to itself.")
115148 }
116149
117150
118151
119-@Callable(Z)
120-func invest (al) = {
121- let p = valueOrErrorMessage(addressFromString(al), "invalid pool address")
122- let ae = split(valueOrErrorMessage(getString(H, x(al)), "Invalid pool passed."), a)
123- let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
124- let an = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
125- let ao = valueOrElse(getInteger(this, s(al, am)), 0)
126- let ap = valueOrElse(getInteger(this, s(al, an)), 0)
127- let aq = invoke(p, "evaluatePutByPriceAssetREADONLY", [ap], nil)
128- let ar = invoke(p, "evaluatePutByAmountAssetREADONLY", [ao], nil)
129- let as = 7
130- let at = 8
131- let au = valueOrErrorMessage(parseIntValue(split(R(aq), a)[as]), "fail to parse estimated amAsset amount")
132- let av = valueOrErrorMessage(parseIntValue(split(R(ar), a)[at]), "fail to parse estimated prAsset amount")
133- let aw = if ((ao >= au))
134- then $Tuple2(au, ap)
135- else $Tuple2(ao, av)
136- let ax = aw._1
137- let ay = aw._2
138- let az = if ((am == "WAVES"))
152+@Callable(af)
153+func put () = {
154+ let aj = toString(af.caller)
155+ let ak = value(af.payments[0])
156+ let al = if (!(isDefined(ak.assetId)))
157+ then "WAVES"
158+ else toBase58String(value(ak.assetId))
159+ let am = ak.amount
160+ let an = split(valueOrErrorMessage(getString(J, x(aj)), "Invalid caller"), a)
161+ let ao = parseIntValue(an[1])
162+ let ap = parseIntValue(an[2])
163+ let aq = valueOrErrorMessage(getString(J, z(ao)), "Cannot find asset")
164+ let ar = valueOrErrorMessage(getString(J, z(ap)), "Cannot find asset")
165+ let as = valueOrElse(getInteger(this, s(aj, al)), 0)
166+ let at = valueOrElse(getInteger(this, v(aj, al)), 0)
167+[StringEntry(o(aj, toBase58String(af.transactionId)), L(al, am, height, lastBlock.timestamp)), IntegerEntry(s(aj, al), (as + am)), IntegerEntry(v(aj, al), (at + am))]
168+ }
169+
170+
171+
172+@Callable(af)
173+func invest (au) = {
174+ let p = valueOrErrorMessage(addressFromString(au), "invalid pool address")
175+ let an = split(valueOrErrorMessage(getString(J, x(au)), "Invalid pool passed."), a)
176+ let av = valueOrErrorMessage(getString(J, z(parseIntValue(an[1]))), "No asset mapping found")
177+ let aw = valueOrErrorMessage(getString(J, z(parseIntValue(an[2]))), "No asset mapping found")
178+ let ax = valueOrElse(getInteger(this, s(au, av)), 0)
179+ let ay = valueOrElse(getInteger(this, s(au, aw)), 0)
180+ let az = invoke(p, "evaluatePutByPriceAssetREADONLY", [ay], nil)
181+ let aA = invoke(p, "evaluatePutByAmountAssetREADONLY", [ax], nil)
182+ let aB = 7
183+ let aC = 8
184+ let aD = valueOrErrorMessage(parseIntValue(split(T(az), a)[aB]), "fail to parse estimated amAsset amount")
185+ let aE = valueOrErrorMessage(parseIntValue(split(T(aA), a)[aC]), "fail to parse estimated prAsset amount")
186+ let aF = if ((ax >= aD))
187+ then $Tuple2(aD, ay)
188+ else $Tuple2(ax, aE)
189+ let aG = aF._1
190+ let aH = aF._2
191+ let aI = if ((av == "WAVES"))
139192 then unit
140- else fromBase58String(am)
141- let aA = if ((an == "WAVES"))
193+ else fromBase58String(av)
194+ let aJ = if ((aw == "WAVES"))
142195 then unit
143- else fromBase58String(an)
144- let aB = invoke(p, "putForFree", [1000], [AttachedPayment(az, ax), AttachedPayment(aA, ay)])
145- if ((aB == aB))
146- then [StringEntry(r(al, toBase58String(Z.transactionId)), O(ax, ay, height, lastBlock.timestamp)), IntegerEntry(s(al, am), (ao - ax)), IntegerEntry(s(al, an), (ap - ay))]
196+ else fromBase58String(aw)
197+ let aK = invoke(p, "putForFree", [1000], [AttachedPayment(aI, aG), AttachedPayment(aJ, aH)])
198+ if ((aK == aK))
199+ then [StringEntry(r(au, toBase58String(af.transactionId)), Q(aG, aH, height, lastBlock.timestamp)), IntegerEntry(s(au, av), (ax - aG)), IntegerEntry(s(au, aw), (ay - aH))]
147200 else throw("Strict value is not equal to itself.")
148201 }
149202
150203
151-@Verifier(aC)
152-func aD () = sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
204+
205+@Callable(af)
206+func setManager (aL) = {
207+ let ai = ae(af)
208+ if ((ai == ai))
209+ then {
210+ let aM = fromBase58String(aL)
211+ if ((aM == aM))
212+ then [StringEntry(I(), aL)]
213+ else throw("Strict value is not equal to itself.")
214+ }
215+ else throw("Strict value is not equal to itself.")
216+ }
217+
218+
219+
220+@Callable(af)
221+func confirmManager () = {
222+ let aN = ad()
223+ let aO = if (isDefined(aN))
224+ then true
225+ else throw("No pending manager")
226+ if ((aO == aO))
227+ then {
228+ let aP = if ((af.callerPublicKey == value(aN)))
229+ then true
230+ else throw("You are not pending manager")
231+ if ((aP == aP))
232+ then [StringEntry(H(), toBase58String(value(aN))), DeleteEntry(I())]
233+ else throw("Strict value is not equal to itself.")
234+ }
235+ else throw("Strict value is not equal to itself.")
236+ }
237+
238+
239+@Verifier(aQ)
240+func aR () = {
241+ let aS = {
242+ let V = ab()
243+ if ($isInstanceOf(V, "ByteVector"))
244+ then {
245+ let ah = V
246+ ah
247+ }
248+ else if ($isInstanceOf(V, "Unit"))
249+ then aQ.senderPublicKey
250+ else throw("Match error")
251+ }
252+ sigVerify(aQ.bodyBytes, aQ.proofs[0], aS)
253+ }
153254

github/deemru/w8io/169f3d6 
44.14 ms