tx · A5RxhyGyxCLqw2eTdDSZeCZ78dYz6yeKeXwwfLsQtqnq

3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T:  -0.02200000 Waves

2022.06.27 16:17 [2114898] smart account 3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T > SELF 0.00000000 Waves

{ "type": 13, "id": "A5RxhyGyxCLqw2eTdDSZeCZ78dYz6yeKeXwwfLsQtqnq", "fee": 2200000, "feeAssetId": null, "timestamp": 1656335943745, "version": 1, "sender": "3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T", "senderPublicKey": "7iXEgsFNsnbLZ3ca4tmz8jffnyxMu9keuBV6CuQPJLuA", "proofs": [ "JferUL45ECzgR4beaSqaWxmzk4GSJhG13JtRUUVKKjqfWpNfxhRa2GEAdgkJ7ZMD1dzcs4xmr8bwPSTswQagmrv" ], "script": "base64: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AAlrZXlJbkxpc3QAAAABAAAABHBvb2wEAAAACyR0MDIyOTcyMzM3BQAAAARwb29sBAAAAA1hbW91bnRBc3NldElkCAUAAAALJHQwMjI5NzIzMzcAAAACXzEEAAAADHByaWNlQXNzZXRJZAgFAAAACyR0MDIyOTcyMzM3AAAAAl8yCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAICAAAABmluTGlzdAkABEwAAAACBQAAAA1hbW91bnRBc3NldElkCQAETAAAAAIFAAAADHByaWNlQXNzZXRJZAUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAAAgAAABQlc19fbWFuYWdlclB1YmxpY0tleQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAgAAABslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAE2Fzc2V0c1N0b3JlQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABBQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0AAAAABBib29zdGluZ0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5Qm9vc3RpbmdDb250cmFjdAAAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAE2tleUVtaXNzaW9uQ29udHJhY3QAAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAEmtleUZhY3RvcnlDb250cmFjdAAAAAAQdXNlclBvb2xDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAE2tleVVzZXJQb29sQ29udHJhY3QAAAAAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABBQAAABlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0AQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAFzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BQAAAAR1bml0CQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAAByRtYXRjaDAJAAQiAAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAC211c3RNYW5hZ2VyAAAAAQAAAAFpBAAAAAJwZAkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAAJwawYFAAAAAnBkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBQAAAAJwZAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAFYXNJbnQAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABnZhbEludAUAAAAHJG1hdGNoMAUAAAAGdmFsSW50CQAAAgAAAAECAAAAG2ZhaWxlZCB0byBjYXN0IGludG8gSW50ZWdlcgAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAALAAAAFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0AAAATYm9vc3RpbmdDb250cmFjdFBybQAAABNlbWlzc2lvbkNvbnRyYWN0UHJtAAAAEmZhY3RvcnlDb250cmFjdFBybQAAABN1c2VyUG9vbENvbnRyYWN0UHJtAAAAGXZvdGluZ0VtaXNzaW9uQ29udHJhY3RQcm0AAAAMZmVlQW1vdW50UHJtAAAADHd4QXNzZXRJZFBybQAAABF2b3RpbmdEdXJhdGlvblBybQAAAA51c2RuQXNzZXRJZFBybQAAABFmaW5hbGl6ZVJld2FyZFBybQQAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEJgAAAAEFAAAAFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0GCQAAAgAAAAECAAAAJEludmFsaWQgYXNzZXRfc3RvcmUgY29udHJhY3QgYWRkcmVzcwkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQmAAAAAQUAAAATYm9vc3RpbmdDb250cmFjdFBybQYJAAACAAAAAQIAAAAhSW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABN1c2VyUG9vbENvbnRyYWN0UHJtBgkAAAIAAAABAgAAACNJbnZhbGlkIHVzZXJfcG9vbHMgY29udHJhY3QgYWRkcmVzcwkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQmAAAAAQUAAAATZW1pc3Npb25Db250cmFjdFBybQYJAAACAAAAAQIAAAAhSW52YWxpZCBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABJmYWN0b3J5Q29udHJhY3RQcm0GCQAAAgAAAAECAAAAIEludmFsaWQgZmFjdG9yeSBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQAAZwAAAAIFAAAADGZlZUFtb3VudFBybQAAAAAAAAAAAAYJAAACAAAAAQIAAAASSW52YWxpZCBmZWUgYW1vdW50CQAETAAAAAIDCQAAZgAAAAIFAAAAEXZvdGluZ0R1cmF0aW9uUHJtAAAAAAAAAAAABgkAAAIAAAABAgAAABdJbnZhbGlkIHZvdGluZyBkdXJhdGlvbgkABEwAAAACAwkAAGYAAAACBQAAABFmaW5hbGl6ZVJld2FyZFBybQAAAAAAAAAAAAYJAAACAAAAAQIAAAAXSW52YWxpZCBmaW5hbGl6ZSByZXdhcmQJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAAMd3hBc3NldElkUHJtBgkAAAIAAAABAgAAABNJbnZhbGlkIFdYIGFzc2V0IElECQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAADnVzZG5Bc3NldElkUHJtBgkAAAIAAAABAgAAABVJbnZhbGlkIFVTRE4gYXNzZXQgSUQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0BQAAABZhc3NldHNTdG9yZUNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAE2tleUJvb3N0aW5nQ29udHJhY3QFAAAAE2Jvb3N0aW5nQ29udHJhY3RQcm0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAATa2V5RW1pc3Npb25Db250cmFjdAUAAAATZW1pc3Npb25Db250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJrZXlGYWN0b3J5Q29udHJhY3QFAAAAEmZhY3RvcnlDb250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABNrZXlVc2VyUG9vbENvbnRyYWN0BQAAABN1c2VyUG9vbENvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QFAAAAGXZvdGluZ0VtaXNzaW9uQ29udHJhY3RQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUZlZUFtb3VudAUAAAAMZmVlQW1vdW50UHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5rZXlFcG9jaExlbmd0aAUAAAARdm90aW5nRHVyYXRpb25Qcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleUZpbmFsaXplUmV3YXJkBQAAABFmaW5hbGl6ZVJld2FyZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAxrZXlXeEFzc2V0SWQFAAAADHd4QXNzZXRJZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA5rZXlVc2RuQXNzZXRJZAUAAAAOdXNkbkFzc2V0SWRQcm0FAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAHc3VnZ2VzdAAAAAIAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQEAAAABHBvb2wJAAUUAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAARpbmZvCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQkAAlkAAAABBQAAAA1hbW91bnRBc3NldElkAgAAABhpbnZhbGlkIGFtb3VudEFzc2V0SWQgSUQEAAAABmNoZWNrcwkABEwAAAACAwkAAAAAAAACCAUAAAAEaW5mbwAAAAZpc3N1ZXIIBQAAAAFpAAAABmNhbGxlcgYJAAACAAAAAQIAAAApYXNzZXQgY2FuIG9ubHkgYmUgc3VnZ2VzdGVkIGJ5IGl0cyBpc3N1ZXIJAARMAAAAAgMJAAAAAAAAAggFAAAABGluZm8AAAAIc2NyaXB0ZWQHBgkA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dEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAD25ld1N1Z2dlc3RJbmRleAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADmtleVN0YXJ0SGVpZ2h0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAA9uZXdTdWdnZXN0SW5kZXgFAAAABmhlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAA9uZXdTdWdnZXN0SW5kZXgJAQAAAAp0b3RhbFZvdGVzAAAAAgIAAAABMAIAAAABMAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVN1Z2dlc3RJbmRleAAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAPbmV3U3VnZ2VzdEluZGV4BQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABHZvdGUAAAADAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkAAAAB2luRmF2b3IEAAAADHN1Z2dlc3RJbmRleAkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAQa2V5SW5MaXN0QXNzZXRJZAAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAQAAAASdm90aW5nRmluaXNoSGVpZ2h0CQAAZAAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAADmtleVN0YXJ0SGVpZ2h0AAAAAwUAAAANYW1v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bmV3UG9zaXRpdmVWb3RlcwkAAGQAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADXBvc2l0aXZlVm90ZXMJAQAAAAVhc0ludAAAAAEFAAAACWd3eEFtb3VudAkABEwAAAACCQABpAAAAAEFAAAAEG5ld1Bvc2l0aXZlVm90ZXMJAARMAAAAAgUAAAANbmVnYXRpdmVWb3RlcwUAAAADbmlsBAAAABBuZXdOZWdhdGl2ZVZvdGVzCQAAZAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAANbmVnYXRpdmVWb3RlcwkBAAAABWFzSW50AAAAAQUAAAAJZ3d4QW1vdW50CQAETAAAAAIFAAAADXBvc2l0aXZlVm90ZXMJAARMAAAAAgkAAaQAAAABBQAAABBuZXdOZWdhdGl2ZVZvdGVzBQAAAANuaWwEAAAAB3ZvdGVLZXkJAQAAAAdrZXlWb3RlAAAABAUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAl2b3RlVmFsdWUJAQAAAAxrZXlWb3RlVmFsdWUAAAACCQABpAAAAAEJAQAAAAVhc0ludAAAAAEFAAAACWd3eEFtb3VudAUAAAAHaW5GYXZvcgkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAkBAAAACnRvdGFsVm90ZXMAAAACCQABkQAAAAIFAAAAG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwAAAAAAAAAAAAkAAZEAAAACBQAAABtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAHdm90ZUtleQUAAAAJdm90ZVZhbHVlBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKY2FuY2VsVm90ZQAAAAIAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQEAAAAC3VzZXJBZGRyZXNzAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEIgAAAAEJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAYJAAACAAAAAQIAAAAXbm8gdm90ZSBmb3IgYXNzZXRzIHBhaXIFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAABHZvdGUJAAS1AAAAAgkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAt1c2VyQWRkcmVzcwUAAAAJc2VwYXJhdG9yBAAAAAl2b3RlVmFsdWUJAAGRAAAAAgUAAAAEdm90ZQAAAAAAAAAAAQQAAAAIdm90ZVR5cGUJAAGRAAAAAgUAAAAEdm90ZQAAAAAAAAAAAgQAAAAMdm90aW5nUmVzdWx0CQAEtQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAlzZXBhcmF0b3IEAAAADXBvc2l0aXZlVm90ZXMJAAGRAAAAAgUAAAAMdm90aW5nUmVzdWx0AAAAAAAAAAABBAAAAA1uZWdhdGl2ZVZvdGVzCQABkQAAAAIFAAAADHZvdGluZ1Jlc3VsdAAAAAAAAAAAAgQAAAAHYWN0aW9ucwMJAAAAAAAAAgUAAAAIdm90ZVR5cGUCAAAAA3llcwQAAAAQbmV3UG9zaXRpdmVWb3RlcwkAAGUAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADXBvc2l0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAJdm90ZVZhbHVlCQAFFAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAKdG90YWxWb3RlcwAAAAIJAAGkAAAAAQUAAAAQbmV3UG9zaXRpdmVWb3RlcwUAAAANbmVnYXRpdmVWb3RlcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAAR1bml0BAAAABBuZXdOZWdhdGl2ZVZvdGVzCQAAZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAANbmVnYXRpdmVWb3RlcwkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAAl2b3RlVmFsdWUJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgJAQAAAAp0b3RhbFZvdGVzAAAAAgUAAAANcG9zaXRpdmVWb3RlcwkAAaQAAAABBQAAABBuZXdOZWdhdGl2ZVZvdGVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAdrZXlWb3RlAAAABAUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwFAAAABHVuaXQFAAAAB2FjdGlvbnMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABnNldEZlZQAAAAEAAAAGbmV3RmVlBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5RmVlQW1vdW50BQAAAAZuZXdGZWUFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAIZmluYWxpemUAAAACAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkBAAAAAxzdWdnZXN0SW5kZXgJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQEAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAAA5rZXlTdGFydEhlaWdodAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEFAAAADmtleUVwb2NoTGVuZ3RoBAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBgkAAAIAAAABAgAAAA5ubyBhc3NldHMgcGFpcgkABEwAAAACAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAYJAAACAAAAAQIAAAAiaW5zdWZmaWNpZW50IGhlaWdodCBmb3IgY29tcGxldGlvbgUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAMdm90aW5nUmVzdWx0CQAEtQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAlzZXBhcmF0b3IEAAAADXBvc2l0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAEEAAAADW5lZ2F0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAIEAAAAB2FjdGlvbnMDCQAAZgAAAAIFAAAADXBvc2l0aXZlVm90ZXMFAAAADW5lZ2F0aXZlVm90ZXMEAAAAA3JlcwkAA/wAAAAEBQAAAA9mYWN0b3J5Q29udHJhY3QCAAAAFnNldFd4RW1pc3Npb25Qb29sTGFiZWwJAARMAAAAAgUAAAANYW1vdW50QXNzZXRJZAkABEwAAAACBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAANyZXMFAAAAA3JlcwQAAAARdm90aW5nRW1pc3Npb25JbnYJAAP8AAAABAUAAAAWdm90aW5nRW1pc3Npb25Db250cmFjdAIAAAAGY3JlYXRlCQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAARdm90aW5nRW1pc3Npb25JbnYFAAAAEXZvdGluZ0VtaXNzaW9uSW52CQAFFAAAAAIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAFFAAAAAIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAAEdW5pdAUAAAAHYWN0aW9ucwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkAAAIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAAACAAAAAQIAAAAbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAD3RhcmdldFB1YmxpY0tleQQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA90YXJnZXRQdWJsaWNLZXnM1sAO", "chainId": 84, "height": 2114898, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8gaRocQYr2GYogxYRLUVwJdYCQy12wjjgWee8HoUifki Next: 2UcyNAkziYLdS8VH9sNBj89mN3fNjqEjXxttYhD2TzHn Diff:
OldNewDifferences
5454 }
5555
5656
57-func D () = "%s__managerPublicKey"
57+func D (E) = {
58+ let F = E
59+ let p = F._1
60+ let q = F._2
61+ makeString(["%s%s%s", "inList", p, q], a)
62+ }
5863
5964
60-func E () = "%s__pendingManagerPublicKey"
65+func G () = "%s__managerPublicKey"
6166
6267
63-let F = addressFromStringValue(m(g))
68+func H () = "%s__pendingManagerPublicKey"
6469
65-let G = addressFromStringValue(m(j))
6670
67-let H = addressFromStringValue(m(i))
71+let I = addressFromStringValue(m(g))
6872
69-let I = addressFromStringValue(m(k))
73+let J = addressFromStringValue(m(j))
7074
71-let J = addressFromStringValue(m(h))
75+let K = addressFromStringValue(m(i))
7276
73-let K = addressFromStringValue(m(l))
77+let L = addressFromStringValue(m(k))
7478
75-func L () = {
76- let M = getString(D())
77- if ($isInstanceOf(M, "String"))
79+let M = addressFromStringValue(m(h))
80+
81+let N = addressFromStringValue(m(l))
82+
83+func O () = {
84+ let P = getString(G())
85+ if ($isInstanceOf(P, "String"))
7886 then {
79- let N = M
80- fromBase58String(N)
87+ let Q = P
88+ fromBase58String(Q)
8189 }
82- else if ($isInstanceOf(M, "Unit"))
90+ else if ($isInstanceOf(P, "Unit"))
8391 then unit
8492 else throw("Match error")
8593 }
8694
8795
88-func O () = {
89- let M = getString(E())
90- if ($isInstanceOf(M, "String"))
96+func R () = {
97+ let P = getString(H())
98+ if ($isInstanceOf(P, "String"))
9199 then {
92- let N = M
93- fromBase58String(N)
100+ let Q = P
101+ fromBase58String(Q)
94102 }
95- else if ($isInstanceOf(M, "Unit"))
103+ else if ($isInstanceOf(P, "Unit"))
96104 then unit
97105 else throw("Match error")
98106 }
99107
100108
101-func P (Q) = {
102- let R = throw("permission denied")
103- let M = L()
104- if ($isInstanceOf(M, "ByteVector"))
109+func S (T) = {
110+ let U = throw("permission denied")
111+ let P = O()
112+ if ($isInstanceOf(P, "ByteVector"))
105113 then {
106- let S = M
107- if ((Q.callerPublicKey == S))
114+ let V = P
115+ if ((T.callerPublicKey == V))
108116 then true
109- else R
117+ else U
110118 }
111- else if ($isInstanceOf(M, "Unit"))
112- then if ((Q.caller == this))
119+ else if ($isInstanceOf(P, "Unit"))
120+ then if ((T.caller == this))
113121 then true
114- else R
122+ else U
115123 else throw("Match error")
116124 }
117125
118126
119-func T (U) = {
120- let M = U
121- if ($isInstanceOf(M, "Int"))
127+func W (X) = {
128+ let P = X
129+ if ($isInstanceOf(P, "Int"))
122130 then {
123- let V = M
124- V
131+ let Y = P
132+ Y
125133 }
126134 else throw("failed to cast into Integer")
127135 }
128136
129137
130-@Callable(Q)
131-func constructor (W,X,Y,Z,aa,ab,ac,ad,ae,af,ag) = {
132- let ah = [P(Q), if (isDefined(addressFromString(W)))
138+@Callable(T)
139+func constructor (Z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj) = {
140+ let ak = [S(T), if (isDefined(addressFromString(Z)))
133141 then true
134- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(X)))
142+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(aa)))
135143 then true
136- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(aa)))
144+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ad)))
137145 then true
138- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(Y)))
146+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ab)))
139147 then true
140- else throw("Invalid emission contract address"), if (isDefined(addressFromString(Z)))
148+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(ac)))
141149 then true
142- else throw("Invalid factory contract address"), if ((ac >= 0))
150+ else throw("Invalid factory contract address"), if ((af >= 0))
143151 then true
144- else throw("Invalid fee amount"), if ((ae > 0))
152+ else throw("Invalid fee amount"), if ((ah > 0))
145153 then true
146- else throw("Invalid voting duration"), if ((ag > 0))
154+ else throw("Invalid voting duration"), if ((aj > 0))
147155 then true
148- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ad))))
156+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ag))))
149157 then true
150- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(af))))
158+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ai))))
151159 then true
152160 else throw("Invalid USDN asset ID")]
153- if ((ah == ah))
154- then $Tuple2([StringEntry(g, W), StringEntry(j, X), StringEntry(i, Y), StringEntry(k, Z), StringEntry(h, aa), StringEntry(l, ab), IntegerEntry(b, ac), IntegerEntry(d, ae), IntegerEntry(e, ag), StringEntry(f, ad), StringEntry(c, af)], unit)
161+ if ((ak == ak))
162+ then $Tuple2([StringEntry(g, Z), StringEntry(j, aa), StringEntry(i, ab), StringEntry(k, ac), StringEntry(h, ad), StringEntry(l, ae), IntegerEntry(b, af), IntegerEntry(d, ah), IntegerEntry(e, aj), StringEntry(f, ag), StringEntry(c, ai)], unit)
155163 else throw("Strict value is not equal to itself.")
156164 }
157165
158166
159167
160-@Callable(Q)
168+@Callable(T)
161169 func suggest (p,q) = {
162- let ai = value(Q.payments[0])
163- let aj = valueOrErrorMessage(assetInfo(fromBase58String(p)), "invalid amountAssetId ID")
164- let ah = [if ((aj.issuer == Q.caller))
170+ let E = $Tuple2(p, q)
171+ let al = value(T.payments[0])
172+ let am = valueOrErrorMessage(assetInfo(fromBase58String(p)), "invalid amountAssetId ID")
173+ let ak = [if ((am.issuer == T.caller))
165174 then true
166- else throw("asset can only be suggested by its issuer"), if ((aj.scripted == false))
175+ else throw("asset can only be suggested by its issuer"), if ((am.scripted == false))
167176 then true
168- else throw("asset is smart"), if ((toBase58String(value(ai.assetId)) == value(getString(f))))
177+ else throw("asset is smart"), if ((toBase58String(value(al.assetId)) == value(getString(f))))
169178 then true
170- else throw("invalid fee asset"), if ((ai.amount == value(getInteger(b))))
179+ else throw("invalid fee asset"), if ((al.amount == value(getInteger(b))))
171180 then true
172181 else throw("invalid fee amount"), if ((q == value(getString(c))))
173182 then true
174183 else throw("priceAssetId is not USDN"), if ((getInteger(o(p, q)) == unit))
175184 then true
176- else throw("already in voting list")]
177- if ((ah == ah))
185+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(N, D(E)), false)))
186+ then true
187+ else throw("pool is in emission voting list")]
188+ if ((ak == ak))
178189 then {
179- let ak = {
180- let M = invoke(J, "statusREADONLY", [p, q], nil)
181- if ($isInstanceOf(M, "String"))
190+ let an = {
191+ let P = invoke(M, "statusREADONLY", [p, q], nil)
192+ if ($isInstanceOf(P, "String"))
182193 then {
183- let N = M
184- if ((N == "active"))
194+ let Q = P
195+ if ((Q == "active"))
185196 then true
186197 else throw("user pool is not active")
187198 }
188199 else throw("user pool is not active")
189200 }
190- if ((ak == ak))
201+ if ((an == an))
191202 then {
192- let al = {
193- let M = invoke(F, "isVerifiedREADONLY", [p], nil)
194- if ($isInstanceOf(M, "Boolean"))
203+ let ao = {
204+ let P = invoke(I, "isVerifiedREADONLY", [p], nil)
205+ if ($isInstanceOf(P, "Boolean"))
195206 then {
196- let am = M
197- if (am)
207+ let ap = P
208+ if (ap)
198209 then true
199210 else throw("asset is not verified")
200211 }
201212 else throw("asset is not verified")
202213 }
203- if ((al == al))
214+ if ((ao == ao))
204215 then {
205- let an = invoke(H, "burn", nil, [AttachedPayment(ai.assetId, ai.amount)])
206- if ((an == an))
216+ let aq = invoke(K, "burn", nil, [AttachedPayment(al.assetId, al.amount)])
217+ if ((aq == aq))
207218 then {
208- let ao = {
209- let M = getInteger(r(p, q))
210- if ($isInstanceOf(M, "Int"))
219+ let ar = {
220+ let P = getInteger(r(p, q))
221+ if ($isInstanceOf(P, "Int"))
211222 then {
212- let ap = M
213- (ap + 1)
223+ let as = P
224+ (as + 1)
214225 }
215226 else 0
216227 }
217- $Tuple2([IntegerEntry(o(p, q), ao), IntegerEntry(s(p, q, ao), height), StringEntry(u(p, q, ao), v("0", "0")), IntegerEntry(r(p, q), ao)], unit)
228+ $Tuple2([IntegerEntry(o(p, q), ar), IntegerEntry(s(p, q, ar), height), StringEntry(u(p, q, ar), v("0", "0")), IntegerEntry(r(p, q), ar)], unit)
218229 }
219230 else throw("Strict value is not equal to itself.")
220231 }
227238
228239
229240
230-@Callable(Q)
231-func vote (p,q,aq) = {
241+@Callable(T)
242+func vote (p,q,at) = {
232243 let t = value(getInteger(o(p, q)))
233- let ar = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
234- let ah = [if (isDefined(getInteger(o(p, q))))
244+ let au = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
245+ let ak = [if (isDefined(getInteger(o(p, q))))
235246 then true
236- else throw("the token isn't on the voting list"), if ((ar > height))
247+ else throw("the token isn't on the voting list"), if ((au > height))
237248 then true
238249 else throw("too late to vote")]
239- if ((ah == ah))
250+ if ((ak == ak))
240251 then {
241- let B = invoke(G, "getUserGwxAmountAtHeightREADONLY", [toString(Q.caller), ar], nil)
242- let as = if ((T(B) > 0))
252+ let B = invoke(J, "getUserGwxAmountAtHeightREADONLY", [toString(T.caller), au], nil)
253+ let av = if ((W(B) > 0))
243254 then true
244255 else throw("you don't have gwx")
245- if ((as == as))
256+ if ((av == av))
246257 then {
247258 let C = {
248- let M = getString(y(p, q, t, toString(Q.caller)))
249- if ($isInstanceOf(M, "String"))
259+ let P = getString(y(p, q, t, toString(T.caller)))
260+ if ($isInstanceOf(P, "String"))
250261 then {
251- let N = M
252- let C = split(N, a)
253- let at = C[1]
254- let au = C[2]
255- let av = if (if ((au == "yes"))
256- then (aq == true)
262+ let Q = P
263+ let C = split(Q, a)
264+ let aw = C[1]
265+ let ax = C[2]
266+ let ay = if (if ((ax == "yes"))
267+ then (at == true)
257268 else false)
258269 then true
259- else if ((au == "no"))
260- then (aq == false)
270+ else if ((ax == "no"))
271+ then (at == false)
261272 else false
262- let aw = if (av)
263- then (T(B) == parseIntValue(at))
273+ let az = if (ay)
274+ then (W(B) == parseIntValue(aw))
264275 else false
265- let ax = if (if (av)
266- then aw
276+ let aA = if (if (ay)
277+ then az
267278 else false)
268279 then throw("you already voted")
269280 else invoke(this, "cancelVote", [p, q], nil)
270- ax
281+ aA
271282 }
272- else if ($isInstanceOf(M, "Unit"))
283+ else if ($isInstanceOf(P, "Unit"))
273284 then {
274- let ay = M
275- ay
285+ let aB = P
286+ aB
276287 }
277288 else throw("Match error")
278289 }
279290 if ((C == C))
280291 then {
281- let az = split(value(getString(u(p, q, t))), a)
282- let aA = az[1]
283- let aB = az[2]
284- let aC = if (aq)
292+ let aC = split(value(getString(u(p, q, t))), a)
293+ let aD = aC[1]
294+ let aE = aC[2]
295+ let aF = if (at)
285296 then {
286- let aD = (parseIntValue(aA) + T(B))
287-[toString(aD), aB]
297+ let aG = (parseIntValue(aD) + W(B))
298+[toString(aG), aE]
288299 }
289300 else {
290- let aE = (parseIntValue(aB) + T(B))
291-[aA, toString(aE)]
301+ let aH = (parseIntValue(aE) + W(B))
302+[aD, toString(aH)]
292303 }
293- let aF = y(p, q, t, toString(Q.caller))
294- let at = A(toString(T(B)), aq)
295- $Tuple2([StringEntry(u(p, q, t), v(aC[0], aC[1])), StringEntry(aF, at)], unit)
304+ let aI = y(p, q, t, toString(T.caller))
305+ let aw = A(toString(W(B)), at)
306+ $Tuple2([StringEntry(u(p, q, t), v(aF[0], aF[1])), StringEntry(aI, aw)], unit)
296307 }
297308 else throw("Strict value is not equal to itself.")
298309 }
303314
304315
305316
306-@Callable(Q)
317+@Callable(T)
307318 func cancelVote (p,q) = {
308- let aG = if ((Q.caller == this))
309- then toString(Q.originCaller)
310- else toString(Q.caller)
319+ let aJ = if ((T.caller == this))
320+ then toString(T.originCaller)
321+ else toString(T.caller)
311322 let t = value(getInteger(o(p, q)))
312- let ah = [if (isDefined(getString(u(p, q, t))))
323+ let ak = [if (isDefined(getString(u(p, q, t))))
313324 then true
314325 else throw("no vote for assets pair")]
315- if ((ah == ah))
326+ if ((ak == ak))
316327 then {
317- let C = split(value(getString(y(p, q, t, aG))), a)
318- let at = C[1]
319- let au = C[2]
320- let az = split(value(getString(u(p, q, t))), a)
321- let aA = az[1]
322- let aB = az[2]
323- let aH = if ((au == "yes"))
328+ let C = split(value(getString(y(p, q, t, aJ))), a)
329+ let aw = C[1]
330+ let ax = C[2]
331+ let aC = split(value(getString(u(p, q, t))), a)
332+ let aD = aC[1]
333+ let aE = aC[2]
334+ let aK = if ((ax == "yes"))
324335 then {
325- let aD = (parseIntValue(aA) - parseIntValue(at))
326- $Tuple2([StringEntry(u(p, q, t), v(toString(aD), aB)), DeleteEntry(y(p, q, t, aG))], unit)
336+ let aG = (parseIntValue(aD) - parseIntValue(aw))
337+ $Tuple2([StringEntry(u(p, q, t), v(toString(aG), aE)), DeleteEntry(y(p, q, t, aJ))], unit)
327338 }
328339 else {
329- let aE = (parseIntValue(aB) - parseIntValue(at))
330- $Tuple2([StringEntry(u(p, q, t), v(aA, toString(aE))), DeleteEntry(y(p, q, t, aG))], unit)
340+ let aH = (parseIntValue(aE) - parseIntValue(aw))
341+ $Tuple2([StringEntry(u(p, q, t), v(aD, toString(aH))), DeleteEntry(y(p, q, t, aJ))], unit)
331342 }
332- aH
343+ aK
333344 }
334345 else throw("Strict value is not equal to itself.")
335346 }
336347
337348
338349
339-@Callable(Q)
340-func setFee (aI) = {
341- let ah = [P(Q)]
342- if ((ah == ah))
343- then [IntegerEntry(b, aI)]
350+@Callable(T)
351+func setFee (aL) = {
352+ let ak = [S(T)]
353+ if ((ak == ak))
354+ then [IntegerEntry(b, aL)]
344355 else throw("Strict value is not equal to itself.")
345356 }
346357
347358
348359
349-@Callable(Q)
360+@Callable(T)
350361 func finalize (p,q) = {
351362 let t = value(getInteger(o(p, q)))
352- let ar = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
353- let ah = [if (isDefined(getInteger(o(p, q))))
363+ let au = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
364+ let ak = [if (isDefined(getInteger(o(p, q))))
354365 then true
355- else throw("no assets pair"), if ((height >= ar))
366+ else throw("no assets pair"), if ((height >= au))
356367 then true
357368 else throw("insufficient height for completion")]
358- if ((ah == ah))
369+ if ((ak == ak))
359370 then {
360- let az = split(value(getString(u(p, q, t))), a)
361- let aA = parseIntValue(az[1])
362- let aB = parseIntValue(az[2])
363- let aH = if ((aA > aB))
371+ let aC = split(value(getString(u(p, q, t))), a)
372+ let aD = parseIntValue(aC[1])
373+ let aE = parseIntValue(aC[2])
374+ let aK = if ((aD > aE))
364375 then {
365- let aJ = invoke(I, "setWxEmissionPoolLabel", [p, q], nil)
366- if ((aJ == aJ))
376+ let aM = invoke(L, "setWxEmissionPoolLabel", [p, q], nil)
377+ if ((aM == aM))
367378 then {
368- let aK = invoke(K, "create", [p, q], nil)
369- if ((aK == aK))
379+ let aN = invoke(N, "create", [p, q], nil)
380+ if ((aN == aN))
370381 then $Tuple2([DeleteEntry(o(p, q))], unit)
371382 else throw("Strict value is not equal to itself.")
372383 }
373384 else throw("Strict value is not equal to itself.")
374385 }
375386 else $Tuple2([DeleteEntry(o(p, q))], unit)
376- aH
387+ aK
377388 }
378389 else throw("Strict value is not equal to itself.")
379390 }
380391
381392
382393
383-@Callable(Q)
384-func setManager (aL) = {
385- let aM = P(Q)
386- if ((aM == aM))
394+@Callable(T)
395+func setManager (aO) = {
396+ let aP = S(T)
397+ if ((aP == aP))
387398 then {
388- let aN = fromBase58String(aL)
389- if ((aN == aN))
390- then [StringEntry(E(), aL)]
399+ let aQ = fromBase58String(aO)
400+ if ((aQ == aQ))
401+ then [StringEntry(H(), aO)]
391402 else throw("Strict value is not equal to itself.")
392403 }
393404 else throw("Strict value is not equal to itself.")
395406
396407
397408
398-@Callable(Q)
409+@Callable(T)
399410 func confirmManager () = {
400- let aO = O()
401- let aP = if (isDefined(aO))
411+ let aR = R()
412+ let aS = if (isDefined(aR))
402413 then true
403414 else throw("no pending manager")
404- if ((aP == aP))
415+ if ((aS == aS))
405416 then {
406- let aQ = if ((Q.callerPublicKey == value(aO)))
417+ let aT = if ((T.callerPublicKey == value(aR)))
407418 then true
408419 else throw("you are not pending manager")
409- if ((aQ == aQ))
410- then [StringEntry(D(), toBase58String(value(aO))), DeleteEntry(E())]
420+ if ((aT == aT))
421+ then [StringEntry(G(), toBase58String(value(aR))), DeleteEntry(H())]
411422 else throw("Strict value is not equal to itself.")
412423 }
413424 else throw("Strict value is not equal to itself.")
414425 }
415426
416427
417-@Verifier(aR)
418-func aS () = {
419- let aT = {
420- let M = L()
421- if ($isInstanceOf(M, "ByteVector"))
428+@Verifier(aU)
429+func aV () = {
430+ let aW = {
431+ let P = O()
432+ if ($isInstanceOf(P, "ByteVector"))
422433 then {
423- let S = M
424- S
434+ let V = P
435+ V
425436 }
426- else if ($isInstanceOf(M, "Unit"))
427- then aR.senderPublicKey
437+ else if ($isInstanceOf(P, "Unit"))
438+ then aU.senderPublicKey
428439 else throw("Match error")
429440 }
430- sigVerify(aR.bodyBytes, aR.proofs[0], aT)
441+ sigVerify(aU.bodyBytes, aU.proofs[0], aW)
431442 }
432443
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "fee"], a)
77
88 let c = makeString(["%s", "usdnAssetId"], a)
99
1010 let d = makeString(["%s", "epochLength"], a)
1111
1212 let e = makeString(["%s", "finalizeReward"], a)
1313
1414 let f = makeString(["%s", "wxAssetId"], a)
1515
1616 let g = makeString(["%s", "assetsStoreContract"], a)
1717
1818 let h = makeString(["%s", "userPoolContract"], a)
1919
2020 let i = makeString(["%s", "emissionContract"], a)
2121
2222 let j = makeString(["%s", "boostingContract"], a)
2323
2424 let k = makeString(["%s", "factoryContract"], a)
2525
2626 let l = makeString(["%s", "votingEmissionContract"], a)
2727
2828 func m (n) = valueOrErrorMessage(getString(this, n), (n + " is not defined"))
2929
3030
3131 func o (p,q) = makeString(["%s%s%s", "inList", p, q], a)
3232
3333
3434 func r (p,q) = makeString(["%s%s%s", "suggestIndex", p, q], a)
3535
3636
3737 func s (p,q,t) = makeString(["%s%s%s%d", "startHeight", p, q, toString(t)], a)
3838
3939
4040 func u (p,q,t) = makeString(["%s%s%s%d", "votingResult", p, q, toString(t)], a)
4141
4242
4343 func v (w,x) = makeString(["%d%d", w, x], a)
4444
4545
4646 func y (p,q,t,z) = makeString(["%s%s%s%d%s", "vote", p, q, toString(t), z], a)
4747
4848
4949 func A (B,C) = {
5050 let n = if (C)
5151 then makeString(["%d%s", B, "yes"], a)
5252 else makeString(["%d%s", B, "no"], a)
5353 n
5454 }
5555
5656
57-func D () = "%s__managerPublicKey"
57+func D (E) = {
58+ let F = E
59+ let p = F._1
60+ let q = F._2
61+ makeString(["%s%s%s", "inList", p, q], a)
62+ }
5863
5964
60-func E () = "%s__pendingManagerPublicKey"
65+func G () = "%s__managerPublicKey"
6166
6267
63-let F = addressFromStringValue(m(g))
68+func H () = "%s__pendingManagerPublicKey"
6469
65-let G = addressFromStringValue(m(j))
6670
67-let H = addressFromStringValue(m(i))
71+let I = addressFromStringValue(m(g))
6872
69-let I = addressFromStringValue(m(k))
73+let J = addressFromStringValue(m(j))
7074
71-let J = addressFromStringValue(m(h))
75+let K = addressFromStringValue(m(i))
7276
73-let K = addressFromStringValue(m(l))
77+let L = addressFromStringValue(m(k))
7478
75-func L () = {
76- let M = getString(D())
77- if ($isInstanceOf(M, "String"))
79+let M = addressFromStringValue(m(h))
80+
81+let N = addressFromStringValue(m(l))
82+
83+func O () = {
84+ let P = getString(G())
85+ if ($isInstanceOf(P, "String"))
7886 then {
79- let N = M
80- fromBase58String(N)
87+ let Q = P
88+ fromBase58String(Q)
8189 }
82- else if ($isInstanceOf(M, "Unit"))
90+ else if ($isInstanceOf(P, "Unit"))
8391 then unit
8492 else throw("Match error")
8593 }
8694
8795
88-func O () = {
89- let M = getString(E())
90- if ($isInstanceOf(M, "String"))
96+func R () = {
97+ let P = getString(H())
98+ if ($isInstanceOf(P, "String"))
9199 then {
92- let N = M
93- fromBase58String(N)
100+ let Q = P
101+ fromBase58String(Q)
94102 }
95- else if ($isInstanceOf(M, "Unit"))
103+ else if ($isInstanceOf(P, "Unit"))
96104 then unit
97105 else throw("Match error")
98106 }
99107
100108
101-func P (Q) = {
102- let R = throw("permission denied")
103- let M = L()
104- if ($isInstanceOf(M, "ByteVector"))
109+func S (T) = {
110+ let U = throw("permission denied")
111+ let P = O()
112+ if ($isInstanceOf(P, "ByteVector"))
105113 then {
106- let S = M
107- if ((Q.callerPublicKey == S))
114+ let V = P
115+ if ((T.callerPublicKey == V))
108116 then true
109- else R
117+ else U
110118 }
111- else if ($isInstanceOf(M, "Unit"))
112- then if ((Q.caller == this))
119+ else if ($isInstanceOf(P, "Unit"))
120+ then if ((T.caller == this))
113121 then true
114- else R
122+ else U
115123 else throw("Match error")
116124 }
117125
118126
119-func T (U) = {
120- let M = U
121- if ($isInstanceOf(M, "Int"))
127+func W (X) = {
128+ let P = X
129+ if ($isInstanceOf(P, "Int"))
122130 then {
123- let V = M
124- V
131+ let Y = P
132+ Y
125133 }
126134 else throw("failed to cast into Integer")
127135 }
128136
129137
130-@Callable(Q)
131-func constructor (W,X,Y,Z,aa,ab,ac,ad,ae,af,ag) = {
132- let ah = [P(Q), if (isDefined(addressFromString(W)))
138+@Callable(T)
139+func constructor (Z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj) = {
140+ let ak = [S(T), if (isDefined(addressFromString(Z)))
133141 then true
134- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(X)))
142+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(aa)))
135143 then true
136- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(aa)))
144+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ad)))
137145 then true
138- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(Y)))
146+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ab)))
139147 then true
140- else throw("Invalid emission contract address"), if (isDefined(addressFromString(Z)))
148+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(ac)))
141149 then true
142- else throw("Invalid factory contract address"), if ((ac >= 0))
150+ else throw("Invalid factory contract address"), if ((af >= 0))
143151 then true
144- else throw("Invalid fee amount"), if ((ae > 0))
152+ else throw("Invalid fee amount"), if ((ah > 0))
145153 then true
146- else throw("Invalid voting duration"), if ((ag > 0))
154+ else throw("Invalid voting duration"), if ((aj > 0))
147155 then true
148- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ad))))
156+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ag))))
149157 then true
150- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(af))))
158+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ai))))
151159 then true
152160 else throw("Invalid USDN asset ID")]
153- if ((ah == ah))
154- then $Tuple2([StringEntry(g, W), StringEntry(j, X), StringEntry(i, Y), StringEntry(k, Z), StringEntry(h, aa), StringEntry(l, ab), IntegerEntry(b, ac), IntegerEntry(d, ae), IntegerEntry(e, ag), StringEntry(f, ad), StringEntry(c, af)], unit)
161+ if ((ak == ak))
162+ then $Tuple2([StringEntry(g, Z), StringEntry(j, aa), StringEntry(i, ab), StringEntry(k, ac), StringEntry(h, ad), StringEntry(l, ae), IntegerEntry(b, af), IntegerEntry(d, ah), IntegerEntry(e, aj), StringEntry(f, ag), StringEntry(c, ai)], unit)
155163 else throw("Strict value is not equal to itself.")
156164 }
157165
158166
159167
160-@Callable(Q)
168+@Callable(T)
161169 func suggest (p,q) = {
162- let ai = value(Q.payments[0])
163- let aj = valueOrErrorMessage(assetInfo(fromBase58String(p)), "invalid amountAssetId ID")
164- let ah = [if ((aj.issuer == Q.caller))
170+ let E = $Tuple2(p, q)
171+ let al = value(T.payments[0])
172+ let am = valueOrErrorMessage(assetInfo(fromBase58String(p)), "invalid amountAssetId ID")
173+ let ak = [if ((am.issuer == T.caller))
165174 then true
166- else throw("asset can only be suggested by its issuer"), if ((aj.scripted == false))
175+ else throw("asset can only be suggested by its issuer"), if ((am.scripted == false))
167176 then true
168- else throw("asset is smart"), if ((toBase58String(value(ai.assetId)) == value(getString(f))))
177+ else throw("asset is smart"), if ((toBase58String(value(al.assetId)) == value(getString(f))))
169178 then true
170- else throw("invalid fee asset"), if ((ai.amount == value(getInteger(b))))
179+ else throw("invalid fee asset"), if ((al.amount == value(getInteger(b))))
171180 then true
172181 else throw("invalid fee amount"), if ((q == value(getString(c))))
173182 then true
174183 else throw("priceAssetId is not USDN"), if ((getInteger(o(p, q)) == unit))
175184 then true
176- else throw("already in voting list")]
177- if ((ah == ah))
185+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(N, D(E)), false)))
186+ then true
187+ else throw("pool is in emission voting list")]
188+ if ((ak == ak))
178189 then {
179- let ak = {
180- let M = invoke(J, "statusREADONLY", [p, q], nil)
181- if ($isInstanceOf(M, "String"))
190+ let an = {
191+ let P = invoke(M, "statusREADONLY", [p, q], nil)
192+ if ($isInstanceOf(P, "String"))
182193 then {
183- let N = M
184- if ((N == "active"))
194+ let Q = P
195+ if ((Q == "active"))
185196 then true
186197 else throw("user pool is not active")
187198 }
188199 else throw("user pool is not active")
189200 }
190- if ((ak == ak))
201+ if ((an == an))
191202 then {
192- let al = {
193- let M = invoke(F, "isVerifiedREADONLY", [p], nil)
194- if ($isInstanceOf(M, "Boolean"))
203+ let ao = {
204+ let P = invoke(I, "isVerifiedREADONLY", [p], nil)
205+ if ($isInstanceOf(P, "Boolean"))
195206 then {
196- let am = M
197- if (am)
207+ let ap = P
208+ if (ap)
198209 then true
199210 else throw("asset is not verified")
200211 }
201212 else throw("asset is not verified")
202213 }
203- if ((al == al))
214+ if ((ao == ao))
204215 then {
205- let an = invoke(H, "burn", nil, [AttachedPayment(ai.assetId, ai.amount)])
206- if ((an == an))
216+ let aq = invoke(K, "burn", nil, [AttachedPayment(al.assetId, al.amount)])
217+ if ((aq == aq))
207218 then {
208- let ao = {
209- let M = getInteger(r(p, q))
210- if ($isInstanceOf(M, "Int"))
219+ let ar = {
220+ let P = getInteger(r(p, q))
221+ if ($isInstanceOf(P, "Int"))
211222 then {
212- let ap = M
213- (ap + 1)
223+ let as = P
224+ (as + 1)
214225 }
215226 else 0
216227 }
217- $Tuple2([IntegerEntry(o(p, q), ao), IntegerEntry(s(p, q, ao), height), StringEntry(u(p, q, ao), v("0", "0")), IntegerEntry(r(p, q), ao)], unit)
228+ $Tuple2([IntegerEntry(o(p, q), ar), IntegerEntry(s(p, q, ar), height), StringEntry(u(p, q, ar), v("0", "0")), IntegerEntry(r(p, q), ar)], unit)
218229 }
219230 else throw("Strict value is not equal to itself.")
220231 }
221232 else throw("Strict value is not equal to itself.")
222233 }
223234 else throw("Strict value is not equal to itself.")
224235 }
225236 else throw("Strict value is not equal to itself.")
226237 }
227238
228239
229240
230-@Callable(Q)
231-func vote (p,q,aq) = {
241+@Callable(T)
242+func vote (p,q,at) = {
232243 let t = value(getInteger(o(p, q)))
233- let ar = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
234- let ah = [if (isDefined(getInteger(o(p, q))))
244+ let au = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
245+ let ak = [if (isDefined(getInteger(o(p, q))))
235246 then true
236- else throw("the token isn't on the voting list"), if ((ar > height))
247+ else throw("the token isn't on the voting list"), if ((au > height))
237248 then true
238249 else throw("too late to vote")]
239- if ((ah == ah))
250+ if ((ak == ak))
240251 then {
241- let B = invoke(G, "getUserGwxAmountAtHeightREADONLY", [toString(Q.caller), ar], nil)
242- let as = if ((T(B) > 0))
252+ let B = invoke(J, "getUserGwxAmountAtHeightREADONLY", [toString(T.caller), au], nil)
253+ let av = if ((W(B) > 0))
243254 then true
244255 else throw("you don't have gwx")
245- if ((as == as))
256+ if ((av == av))
246257 then {
247258 let C = {
248- let M = getString(y(p, q, t, toString(Q.caller)))
249- if ($isInstanceOf(M, "String"))
259+ let P = getString(y(p, q, t, toString(T.caller)))
260+ if ($isInstanceOf(P, "String"))
250261 then {
251- let N = M
252- let C = split(N, a)
253- let at = C[1]
254- let au = C[2]
255- let av = if (if ((au == "yes"))
256- then (aq == true)
262+ let Q = P
263+ let C = split(Q, a)
264+ let aw = C[1]
265+ let ax = C[2]
266+ let ay = if (if ((ax == "yes"))
267+ then (at == true)
257268 else false)
258269 then true
259- else if ((au == "no"))
260- then (aq == false)
270+ else if ((ax == "no"))
271+ then (at == false)
261272 else false
262- let aw = if (av)
263- then (T(B) == parseIntValue(at))
273+ let az = if (ay)
274+ then (W(B) == parseIntValue(aw))
264275 else false
265- let ax = if (if (av)
266- then aw
276+ let aA = if (if (ay)
277+ then az
267278 else false)
268279 then throw("you already voted")
269280 else invoke(this, "cancelVote", [p, q], nil)
270- ax
281+ aA
271282 }
272- else if ($isInstanceOf(M, "Unit"))
283+ else if ($isInstanceOf(P, "Unit"))
273284 then {
274- let ay = M
275- ay
285+ let aB = P
286+ aB
276287 }
277288 else throw("Match error")
278289 }
279290 if ((C == C))
280291 then {
281- let az = split(value(getString(u(p, q, t))), a)
282- let aA = az[1]
283- let aB = az[2]
284- let aC = if (aq)
292+ let aC = split(value(getString(u(p, q, t))), a)
293+ let aD = aC[1]
294+ let aE = aC[2]
295+ let aF = if (at)
285296 then {
286- let aD = (parseIntValue(aA) + T(B))
287-[toString(aD), aB]
297+ let aG = (parseIntValue(aD) + W(B))
298+[toString(aG), aE]
288299 }
289300 else {
290- let aE = (parseIntValue(aB) + T(B))
291-[aA, toString(aE)]
301+ let aH = (parseIntValue(aE) + W(B))
302+[aD, toString(aH)]
292303 }
293- let aF = y(p, q, t, toString(Q.caller))
294- let at = A(toString(T(B)), aq)
295- $Tuple2([StringEntry(u(p, q, t), v(aC[0], aC[1])), StringEntry(aF, at)], unit)
304+ let aI = y(p, q, t, toString(T.caller))
305+ let aw = A(toString(W(B)), at)
306+ $Tuple2([StringEntry(u(p, q, t), v(aF[0], aF[1])), StringEntry(aI, aw)], unit)
296307 }
297308 else throw("Strict value is not equal to itself.")
298309 }
299310 else throw("Strict value is not equal to itself.")
300311 }
301312 else throw("Strict value is not equal to itself.")
302313 }
303314
304315
305316
306-@Callable(Q)
317+@Callable(T)
307318 func cancelVote (p,q) = {
308- let aG = if ((Q.caller == this))
309- then toString(Q.originCaller)
310- else toString(Q.caller)
319+ let aJ = if ((T.caller == this))
320+ then toString(T.originCaller)
321+ else toString(T.caller)
311322 let t = value(getInteger(o(p, q)))
312- let ah = [if (isDefined(getString(u(p, q, t))))
323+ let ak = [if (isDefined(getString(u(p, q, t))))
313324 then true
314325 else throw("no vote for assets pair")]
315- if ((ah == ah))
326+ if ((ak == ak))
316327 then {
317- let C = split(value(getString(y(p, q, t, aG))), a)
318- let at = C[1]
319- let au = C[2]
320- let az = split(value(getString(u(p, q, t))), a)
321- let aA = az[1]
322- let aB = az[2]
323- let aH = if ((au == "yes"))
328+ let C = split(value(getString(y(p, q, t, aJ))), a)
329+ let aw = C[1]
330+ let ax = C[2]
331+ let aC = split(value(getString(u(p, q, t))), a)
332+ let aD = aC[1]
333+ let aE = aC[2]
334+ let aK = if ((ax == "yes"))
324335 then {
325- let aD = (parseIntValue(aA) - parseIntValue(at))
326- $Tuple2([StringEntry(u(p, q, t), v(toString(aD), aB)), DeleteEntry(y(p, q, t, aG))], unit)
336+ let aG = (parseIntValue(aD) - parseIntValue(aw))
337+ $Tuple2([StringEntry(u(p, q, t), v(toString(aG), aE)), DeleteEntry(y(p, q, t, aJ))], unit)
327338 }
328339 else {
329- let aE = (parseIntValue(aB) - parseIntValue(at))
330- $Tuple2([StringEntry(u(p, q, t), v(aA, toString(aE))), DeleteEntry(y(p, q, t, aG))], unit)
340+ let aH = (parseIntValue(aE) - parseIntValue(aw))
341+ $Tuple2([StringEntry(u(p, q, t), v(aD, toString(aH))), DeleteEntry(y(p, q, t, aJ))], unit)
331342 }
332- aH
343+ aK
333344 }
334345 else throw("Strict value is not equal to itself.")
335346 }
336347
337348
338349
339-@Callable(Q)
340-func setFee (aI) = {
341- let ah = [P(Q)]
342- if ((ah == ah))
343- then [IntegerEntry(b, aI)]
350+@Callable(T)
351+func setFee (aL) = {
352+ let ak = [S(T)]
353+ if ((ak == ak))
354+ then [IntegerEntry(b, aL)]
344355 else throw("Strict value is not equal to itself.")
345356 }
346357
347358
348359
349-@Callable(Q)
360+@Callable(T)
350361 func finalize (p,q) = {
351362 let t = value(getInteger(o(p, q)))
352- let ar = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
353- let ah = [if (isDefined(getInteger(o(p, q))))
363+ let au = (value(getInteger(s(p, q, t))) + value(getInteger(d)))
364+ let ak = [if (isDefined(getInteger(o(p, q))))
354365 then true
355- else throw("no assets pair"), if ((height >= ar))
366+ else throw("no assets pair"), if ((height >= au))
356367 then true
357368 else throw("insufficient height for completion")]
358- if ((ah == ah))
369+ if ((ak == ak))
359370 then {
360- let az = split(value(getString(u(p, q, t))), a)
361- let aA = parseIntValue(az[1])
362- let aB = parseIntValue(az[2])
363- let aH = if ((aA > aB))
371+ let aC = split(value(getString(u(p, q, t))), a)
372+ let aD = parseIntValue(aC[1])
373+ let aE = parseIntValue(aC[2])
374+ let aK = if ((aD > aE))
364375 then {
365- let aJ = invoke(I, "setWxEmissionPoolLabel", [p, q], nil)
366- if ((aJ == aJ))
376+ let aM = invoke(L, "setWxEmissionPoolLabel", [p, q], nil)
377+ if ((aM == aM))
367378 then {
368- let aK = invoke(K, "create", [p, q], nil)
369- if ((aK == aK))
379+ let aN = invoke(N, "create", [p, q], nil)
380+ if ((aN == aN))
370381 then $Tuple2([DeleteEntry(o(p, q))], unit)
371382 else throw("Strict value is not equal to itself.")
372383 }
373384 else throw("Strict value is not equal to itself.")
374385 }
375386 else $Tuple2([DeleteEntry(o(p, q))], unit)
376- aH
387+ aK
377388 }
378389 else throw("Strict value is not equal to itself.")
379390 }
380391
381392
382393
383-@Callable(Q)
384-func setManager (aL) = {
385- let aM = P(Q)
386- if ((aM == aM))
394+@Callable(T)
395+func setManager (aO) = {
396+ let aP = S(T)
397+ if ((aP == aP))
387398 then {
388- let aN = fromBase58String(aL)
389- if ((aN == aN))
390- then [StringEntry(E(), aL)]
399+ let aQ = fromBase58String(aO)
400+ if ((aQ == aQ))
401+ then [StringEntry(H(), aO)]
391402 else throw("Strict value is not equal to itself.")
392403 }
393404 else throw("Strict value is not equal to itself.")
394405 }
395406
396407
397408
398-@Callable(Q)
409+@Callable(T)
399410 func confirmManager () = {
400- let aO = O()
401- let aP = if (isDefined(aO))
411+ let aR = R()
412+ let aS = if (isDefined(aR))
402413 then true
403414 else throw("no pending manager")
404- if ((aP == aP))
415+ if ((aS == aS))
405416 then {
406- let aQ = if ((Q.callerPublicKey == value(aO)))
417+ let aT = if ((T.callerPublicKey == value(aR)))
407418 then true
408419 else throw("you are not pending manager")
409- if ((aQ == aQ))
410- then [StringEntry(D(), toBase58String(value(aO))), DeleteEntry(E())]
420+ if ((aT == aT))
421+ then [StringEntry(G(), toBase58String(value(aR))), DeleteEntry(H())]
411422 else throw("Strict value is not equal to itself.")
412423 }
413424 else throw("Strict value is not equal to itself.")
414425 }
415426
416427
417-@Verifier(aR)
418-func aS () = {
419- let aT = {
420- let M = L()
421- if ($isInstanceOf(M, "ByteVector"))
428+@Verifier(aU)
429+func aV () = {
430+ let aW = {
431+ let P = O()
432+ if ($isInstanceOf(P, "ByteVector"))
422433 then {
423- let S = M
424- S
434+ let V = P
435+ V
425436 }
426- else if ($isInstanceOf(M, "Unit"))
427- then aR.senderPublicKey
437+ else if ($isInstanceOf(P, "Unit"))
438+ then aU.senderPublicKey
428439 else throw("Match error")
429440 }
430- sigVerify(aR.bodyBytes, aR.proofs[0], aT)
441+ sigVerify(aU.bodyBytes, aU.proofs[0], aW)
431442 }
432443

github/deemru/w8io/873ac7e 
134.38 ms