tx · 41xiDfxuGjsorLPGMGuFqYT9eJiWvxte6FbNQEetHqMX

3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T:  -0.02300000 Waves

2022.07.06 10:40 [2127539] smart account 3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T > SELF 0.00000000 Waves

{ "type": 13, "id": "41xiDfxuGjsorLPGMGuFqYT9eJiWvxte6FbNQEetHqMX", "fee": 2300000, "feeAssetId": null, "timestamp": 1657093260497, "version": 1, "sender": "3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T", "senderPublicKey": "7iXEgsFNsnbLZ3ca4tmz8jffnyxMu9keuBV6CuQPJLuA", "proofs": [ "2LRLQ7z24t3ac8h3XZmmuA86vUDD5HCANKfZPr1q71NiAgUn12kMrxpgKzs3Ryfktf61BHFsD4pm9jYtcnHsRymE" ], "script": "base64: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AAAJZ3d4QW1vdW50AAAABHZvdGUEAAAAA2tleQMFAAAABHZvdGUJAAS5AAAAAgkABEwAAAACAgAAAAQlZCVzCQAETAAAAAIFAAAACWd3eEFtb3VudAkABEwAAAACAgAAAAN5ZXMFAAAAA25pbAUAAAAJc2VwYXJhdG9yCQAEuQAAAAIJAARMAAAAAgIAAAAEJWQlcwkABEwAAAACBQAAAAlnd3hBbW91bnQJAARMAAAAAgIAAAACbm8FAAAAA25pbAUAAAAJc2VwYXJhdG9yBQAAAANrZXkBAAAACWtleUluTGlzdAAAAAEAAAAEcG9vbAQAAAALJHQwMjQ2MzI1MDMFAAAABHBvb2wEAAAADWFtb3VudEFzc2V0SWQIBQAAAAskdDAyNDYzMjUwMwAAAAJfMQQAAAAMcHJpY2VBc3NldElkCAUAAAALJHQwMjQ2MzI1MDMAAAACXzIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgIAAAAGaW5MaXN0CQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAACAAAAFCVzX19tYW5hZ2VyUHVibGljS2V5AQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAACAAAAGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAATYXNzZXRzU3RvcmVDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABBQAAABNrZXlCb29zdGluZ0NvbnRyYWN0AAAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5RW1pc3Npb25Db250cmFjdAAAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAASa2V5RmFjdG9yeUNvbnRyYWN0AAAAABB1c2VyUG9vbENvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5VXNlclBvb2xDb250cmFjdAAAAAAWdm90aW5nRW1pc3Npb25Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAALbXVzdE1hbmFnZXIAAAABAAAAAWkEAAAAAnBkCQAAAgAAAAECAAAAEXBlcm1pc3Npb24gZGVuaWVkBAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAAnBrBgUAAAACcGQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQDCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwYFAAAAAnBkCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAAVhc0ludAAAAAEAAAADdmFsBAAAAAckbWF0Y2gwBQAAAAN2YWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAGdmFsSW50BQAAAAckbWF0Y2gwBQAAAAZ2YWxJbnQJAAACAAAAAQIAAAAbZmFpbGVkIHRvIGNhc3QgaW50byBJbnRlZ2VyAAAACgAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAsAAAAWYXNzZXRzU3RvcmVDb250cmFjdFBybQAAABNib29zdGluZ0NvbnRyYWN0UHJtAAAAE2VtaXNzaW9uQ29udHJhY3RQcm0AAAASZmFjdG9yeUNvbnRyYWN0UHJtAAAAE3VzZXJQb29sQ29udHJhY3RQcm0AAAAZdm90aW5nRW1pc3Npb25Db250cmFjdFBybQAAAAxmZWVBbW91bnRQcm0AAAAMd3hBc3NldElkUHJtAAAAEXZvdGluZ0R1cmF0aW9uUHJtAAAADnVzZG5Bc3NldElkUHJtAAAAEWZpbmFsaXplUmV3YXJkUHJtBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQmAAAAAQUAAAAWYXNzZXRzU3RvcmVDb250cmFjdFBybQYJAAACAAAAAQIAAAAkSW52YWxpZCBhc3NldF9zdG9yZSBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABNib29zdGluZ0NvbnRyYWN0UHJtBgkAAAIAAAABAgAAACFJbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEJgAAAAEFAAAAE3VzZXJQb29sQ29udHJhY3RQcm0GCQAAAgAAAAECAAAAI0ludmFsaWQgdXNlcl9wb29scyBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABNlbWlzc2lvbkNvbnRyYWN0UHJtBgkAAAIAAAABAgAAACFJbnZhbGlkIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEJgAAAAEFAAAAEmZhY3RvcnlDb250cmFjdFBybQYJAAACAAAAAQIAAAAgSW52YWxpZCBmYWN0b3J5IGNvbnRyYWN0IGFkZHJlc3MJAARMAAAAAgMJAABnAAAAAgUAAAAMZmVlQW1vdW50UHJtAAAAAAAAAAAABgkAAAIAAAABAgAAABJJbnZhbGlkIGZlZSBhbW91bnQJAARMAAAAAgMJAABmAAAAAgUAAAARdm90aW5nRHVyYXRpb25Qcm0AAAAAAAAAAAAGCQAAAgAAAAECAAAAF0ludmFsaWQgdm90aW5nIGR1cmF0aW9uCQAETAAAAAIDCQAAZwAAAAIFAAAAEWZpbmFsaXplUmV3YXJkUHJtAAAAAAAAAAAABgkAAAIAAAABAgAAABdJbnZhbGlkIGZpbmFsaXplIHJld2FyZAkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAAx3eEFzc2V0SWRQcm0GCQAAAgAAAAECAAAAE0ludmFsaWQgV1ggYXNzZXQgSUQJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAAOdXNkbkFzc2V0SWRQcm0GCQAAAgAAAAECAAAAFUludmFsaWQgVVNETiBhc3NldCBJRAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QFAAAAFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAATa2V5Qm9vc3RpbmdDb250cmFjdAUAAAATYm9vc3RpbmdDb250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABNrZXlFbWlzc2lvbkNvbnRyYWN0BQAAABNlbWlzc2lvbkNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEmtleUZhY3RvcnlDb250cmFjdAUAAAASZmFjdG9yeUNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAE2tleVVzZXJQb29sQ29udHJhY3QFAAAAE3VzZXJQb29sQ29udHJhY3RQcm0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAUAAAAZdm90aW5nRW1pc3Npb25Db250cmFjdFBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5RmVlQW1vdW50BQAAAAxmZWVBbW91bnRQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmtleUVwb2NoTGVuZ3RoBQAAABF2b3RpbmdEdXJhdGlvblBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5RmluYWxpemVSZXdhcmQFAAAAEWZpbmFsaXplUmV3YXJkUHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADGtleVd4QXNzZXRJZAUAAAAMd3hBc3NldElkUHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADmtleVVzZG5Bc3NldElkBQAAAA51c2RuQXNzZXRJZFBybQUAAAADbmlsBQAAAAR1bml0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1jb25zdHJ1Y3RvclYyAAAAAQAAAAl0aHJlc2hvbGQEAAAABmNoZWNrcwkABEwAAAACCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpCQAETAAAAAIDCQAAZgAAAAIFAAAACXRocmVzaG9sZAAAAAAAAAAAAAYJAAACAAAAAQIAAAARaW52YWxpZCB0aHJlc2hvbGQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAAUUAAAAAgkABEwAAAACCQEA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ABVhc3NldCBpcyBub3QgdmVyaWZpZWQJAAACAAAAAQIAAAAVYXNzZXQgaXMgbm90IHZlcmlmaWVkAwkAAAAAAAACBQAAABllbnN1cmVBbW91bnRBc3NldFZlcmlmaWVkBQAAABllbnN1cmVBbW91bnRBc3NldFZlcmlmaWVkBAAAAApidXJuRmVlSW52CQAD/AAAAAQFAAAAEGVtaXNzaW9uQ29udHJhY3QCAAAABGJ1cm4FAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAACmJ1cm5GZWVJbnYFAAAACmJ1cm5GZWVJbnYEAAAAD25ld1N1Z2dlc3RJbmRleAQAAAAHJG1hdGNoMAkABB8AAAABCQEAAAAPa2V5U3VnZ2VzdEluZGV4AAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAkAAGQAAAACBQAAAANpbnQAAAAAAAAAAAEAAAAAAAAAAAAJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAD25ld1N1Z2dlc3RJbmRleAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADmtleVN0YXJ0SGVpZ2h0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAA9uZXdTdWdnZXN0SW5kZXgFAAAABmhlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAA9uZXdTdWdnZXN0SW5kZXgJAQAAAAp0b3RhbFZvdGVzAAAAAgIAAAABMAIAAAABMAkABEwAAAACCQEAAAAMSW50ZWdlckVu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AAdrZXlWb3RlAAAABAUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAl2b3RlVmFsdWUJAQAAAAxrZXlWb3RlVmFsdWUAAAACCQABpAAAAAEJAQAAAAVhc0ludAAAAAEFAAAACWd3eEFtb3VudAUAAAAHaW5GYXZvcgkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAkBAAAACnRvdGFsVm90ZXMAAAACCQABkQAAAAIFAAAAG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwAAAAAAAAAAAAkAAZEAAAACBQAAABtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAHdm90ZUtleQUAAAAJdm90ZVZhbHVlBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKY2FuY2VsVm90ZQAAAAIAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQEAAAAC3VzZXJBZGRyZXNzAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEIgAAAAEJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAYJAAACAAAAAQIAAAAXbm8gdm90ZSBmb3IgYXNzZXRzIHBhaXIFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAABHZvdGUJAAS1AAAAAgkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAt1c2VyQWRkcmVzcwUAAAAJc2VwYXJhdG9yBAAAAAl2b3RlVmFsdWUJAAGRAAAAAgUAAAAEdm90ZQAAAAAAAAAAAQQAAAAIdm90ZVR5cGUJAAGRAAAAAgUAAAAEdm90ZQAAAAAAAAAAAgQAAAAMdm90aW5nUmVzdWx0CQAEtQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAlzZXBhcmF0b3IEAAAADXBvc2l0aXZlVm90ZXMJAAGRAAAAAgUAAAAMdm90aW5nUmVzdWx0AAAAAAAAAAABBAAAAA1uZWdhdGl2ZVZvdGVzCQABkQAAAAIFAAAADHZvdGluZ1Jlc3VsdAAAAAAAAAAAAgQAAAAHYWN0aW9ucwMJAAAAAAAAAgUAAAAIdm90ZVR5cGUCAAAAA3llcwQAAAAQbmV3UG9zaXRpdmVWb3RlcwkAAGUAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADXBvc2l0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAJdm90ZVZhbHVlCQAFFAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAKdG90YWxWb3RlcwAAAAIJAAGkAAAAAQUAAAAQbmV3UG9zaXRpdmVWb3RlcwUAAAANbmVnYXRpdmVWb3RlcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAAR1bml0BAAAABBuZXdOZWdhdGl2ZVZvdGVzCQAAZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAANbmVnYXRpdmVWb3RlcwkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAAl2b3RlVmFsdWUJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgJAQAAAAp0b3RhbFZvdGVzAAAAAgUAAAANcG9zaXRpdmVWb3RlcwkAAaQAAAABBQAAABBuZXdOZWdhdGl2ZVZvdGVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAdrZXlWb3RlAAAABAUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwFAAAABHVuaXQFAAAAB2FjdGlvbnMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAABnNldEZlZQAAAAEAAAAGbmV3RmVlBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5RmVlQW1vdW50BQAAAAZuZXdGZWUFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAMc2V0VGhyZXNob2xkAAAAAQAAAAxuZXdUaHJlc2hvbGQEAAAABmNoZWNrcwkABEwAAAACCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpCQAETAAAAAIDCQAAZgAAAAIFAAAADG5ld1RocmVzaG9sZAAAAAAAAAAAAAYJAAACAAAAAQIAAAARaW52YWxpZCB0aHJlc2hvbGQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5VGhyZXNob2xkBQAAAAxuZXdUaHJlc2hvbGQFAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAIZmluYWxpemUAAAACAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkBAAAAAxzdWdnZXN0SW5kZXgJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQEAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAAA5rZXlTdGFydEhlaWdodAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEFAAAADmtleUVwb2NoTGVuZ3RoBAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBgkAAAIAAAABAgAAAA5ubyBhc3NldHMgcGFpcgkABEwAAAACAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAYJAAACAAAAAQIAAAAiaW5zdWZmaWNpZW50IGhlaWdodCBmb3IgY29tcGxldGlvbgUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAMdm90aW5nUmVzdWx0CQAEtQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAlzZXBhcmF0b3IEAAAADXBvc2l0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAEEAAAADW5lZ2F0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAIEAAAACGFsbFZvdGVzCQAAZAAAAAIFAAAADXBvc2l0aXZlVm90ZXMFAAAADW5lZ2F0aXZlVm90ZXMEAAAACXRocmVzaG9sZAkBAAAADGdldEludE9yRmFpbAAAAAEFAAAADGtleVRocmVzaG9sZAQAAAAHYWN0aW9ucwMDCQAAZwAAAAIFAAAACGFsbFZvdGVzBQAAAAl0aHJlc2hvbGQJAABmAAAAAgUAAAANcG9zaXRpdmVWb3RlcwUAAAANbmVnYXRpdmVWb3RlcwcEAAAAA3JlcwkAA/wAAAAEBQAAAA9mYWN0b3J5Q29udHJhY3QCAAAAFnNldFd4RW1pc3Npb25Qb29sTGFiZWwJAARMAAAAAgUAAAANYW1vdW50QXNzZXRJZAkABEwAAAACBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAANyZXMFAAAAA3JlcwQAAAARdm90aW5nRW1pc3Npb25JbnYJAAP8AAAABAUAAAAWdm90aW5nRW1pc3Npb25Db250cmFjdAIAAAAGY3JlYXRlCQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAARdm90aW5nRW1pc3Npb25JbnYFAAAAEXZvdGluZ0VtaXNzaW9uSW52CQAFFAAAAAIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAFFAAAAAIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAAEdW5pdAUAAAAHYWN0aW9ucwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkAAAIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAAACAAAAAQIAAAAbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAD3RhcmdldFB1YmxpY0tleQQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA90YXJnZXRQdWJsaWNLZXkPjr81", "chainId": 84, "height": 2127539, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2UcyNAkziYLdS8VH9sNBj89mN3fNjqEjXxttYhD2TzHn Next: F2NWJ3rUpfZ8e61fpWa6UuKTRetnMCM6GJXcHcBwN6hq Diff:
OldNewDifferences
2525
2626 let l = makeString(["%s", "votingEmissionContract"], a)
2727
28-func m (n) = valueOrErrorMessage(getString(this, n), (n + " is not defined"))
28+let m = makeString(["%s", "votingThreshold"], a)
29+
30+func n (o) = valueOrErrorMessage(getString(this, o), (o + " is not defined"))
2931
3032
31-func o (p,q) = makeString(["%s%s%s", "inList", p, q], a)
33+func p (o) = valueOrErrorMessage(getInteger(this, o), (o + " is not defined"))
3234
3335
34-func r (p,q) = makeString(["%s%s%s", "suggestIndex", p, q], a)
36+func q (r,s) = makeString(["%s%s%s", "inList", r, s], a)
3537
3638
37-func s (p,q,t) = makeString(["%s%s%s%d", "startHeight", p, q, toString(t)], a)
39+func t (r,s) = makeString(["%s%s%s", "suggestIndex", r, s], a)
3840
3941
40-func u (p,q,t) = makeString(["%s%s%s%d", "votingResult", p, q, toString(t)], a)
42+func u (r,s,v) = makeString(["%s%s%s%d", "startHeight", r, s, toString(v)], a)
4143
4244
43-func v (w,x) = makeString(["%d%d", w, x], a)
45+func w (r,s,v) = makeString(["%s%s%s%d", "votingResult", r, s, toString(v)], a)
4446
4547
46-func y (p,q,t,z) = makeString(["%s%s%s%d%s", "vote", p, q, toString(t), z], a)
48+func x (y,z) = makeString(["%d%d", y, z], a)
4749
4850
49-func A (B,C) = {
50- let n = if (C)
51- then makeString(["%d%s", B, "yes"], a)
52- else makeString(["%d%s", B, "no"], a)
53- n
51+func A (r,s,v,B) = makeString(["%s%s%s%d%s", "vote", r, s, toString(v), B], a)
52+
53+
54+func C (D,E) = {
55+ let o = if (E)
56+ then makeString(["%d%s", D, "yes"], a)
57+ else makeString(["%d%s", D, "no"], a)
58+ o
5459 }
5560
5661
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+func F (G) = {
63+ let H = G
64+ let r = H._1
65+ let s = H._2
66+ makeString(["%s%s%s", "inList", r, s], a)
6267 }
6368
6469
65-func G () = "%s__managerPublicKey"
70+func I () = "%s__managerPublicKey"
6671
6772
68-func H () = "%s__pendingManagerPublicKey"
73+func J () = "%s__pendingManagerPublicKey"
6974
7075
71-let I = addressFromStringValue(m(g))
76+let K = addressFromStringValue(n(g))
7277
73-let J = addressFromStringValue(m(j))
78+let L = addressFromStringValue(n(j))
7479
75-let K = addressFromStringValue(m(i))
80+let M = addressFromStringValue(n(i))
7681
77-let L = addressFromStringValue(m(k))
82+let N = addressFromStringValue(n(k))
7883
79-let M = addressFromStringValue(m(h))
84+let O = addressFromStringValue(n(h))
8085
81-let N = addressFromStringValue(m(l))
86+let P = addressFromStringValue(n(l))
8287
83-func O () = {
84- let P = getString(G())
85- if ($isInstanceOf(P, "String"))
88+func Q () = {
89+ let R = getString(I())
90+ if ($isInstanceOf(R, "String"))
8691 then {
87- let Q = P
88- fromBase58String(Q)
92+ let S = R
93+ fromBase58String(S)
8994 }
90- else if ($isInstanceOf(P, "Unit"))
95+ else if ($isInstanceOf(R, "Unit"))
9196 then unit
9297 else throw("Match error")
9398 }
9499
95100
96-func R () = {
97- let P = getString(H())
98- if ($isInstanceOf(P, "String"))
101+func T () = {
102+ let R = getString(J())
103+ if ($isInstanceOf(R, "String"))
99104 then {
100- let Q = P
101- fromBase58String(Q)
105+ let S = R
106+ fromBase58String(S)
102107 }
103- else if ($isInstanceOf(P, "Unit"))
108+ else if ($isInstanceOf(R, "Unit"))
104109 then unit
105110 else throw("Match error")
106111 }
107112
108113
109-func S (T) = {
110- let U = throw("permission denied")
111- let P = O()
112- if ($isInstanceOf(P, "ByteVector"))
114+func U (V) = {
115+ let W = throw("permission denied")
116+ let R = Q()
117+ if ($isInstanceOf(R, "ByteVector"))
113118 then {
114- let V = P
115- if ((T.callerPublicKey == V))
119+ let X = R
120+ if ((V.callerPublicKey == X))
116121 then true
117- else U
122+ else W
118123 }
119- else if ($isInstanceOf(P, "Unit"))
120- then if ((T.caller == this))
124+ else if ($isInstanceOf(R, "Unit"))
125+ then if ((V.caller == this))
121126 then true
122- else U
127+ else W
123128 else throw("Match error")
124129 }
125130
126131
127-func W (X) = {
128- let P = X
129- if ($isInstanceOf(P, "Int"))
132+func Y (Z) = {
133+ let R = Z
134+ if ($isInstanceOf(R, "Int"))
130135 then {
131- let Y = P
132- Y
136+ let aa = R
137+ aa
133138 }
134139 else throw("failed to cast into Integer")
135140 }
136141
137142
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)))
143+@Callable(V)
144+func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145+ let am = [U(V), if (isDefined(addressFromString(ab)))
141146 then true
142- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(aa)))
147+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
143148 then true
144- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ad)))
149+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
145150 then true
146- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ab)))
151+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
147152 then true
148- else throw("Invalid emission contract address"), if (isDefined(addressFromString(ac)))
153+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
149154 then true
150- else throw("Invalid factory contract address"), if ((af >= 0))
155+ else throw("Invalid factory contract address"), if ((ah >= 0))
151156 then true
152- else throw("Invalid fee amount"), if ((ah > 0))
157+ else throw("Invalid fee amount"), if ((aj > 0))
153158 then true
154- else throw("Invalid voting duration"), if ((aj >= 0))
159+ else throw("Invalid voting duration"), if ((al >= 0))
155160 then true
156- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ag))))
161+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
157162 then true
158- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ai))))
163+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
159164 then true
160165 else throw("Invalid USDN asset ID")]
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)
166+ if ((am == am))
167+ then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
163168 else throw("Strict value is not equal to itself.")
164169 }
165170
166171
167172
168-@Callable(T)
169-func suggest (p,q) = {
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))
173+@Callable(V)
174+func constructorV2 (an) = {
175+ let am = [U(V), if ((an > 0))
174176 then true
175- else throw("asset can only be suggested by its issuer"), if ((am.scripted == false))
177+ else throw("invalid threshold")]
178+ if ((am == am))
179+ then $Tuple2([IntegerEntry(m, an)], unit)
180+ else throw("Strict value is not equal to itself.")
181+ }
182+
183+
184+
185+@Callable(V)
186+func suggest (r,s) = {
187+ let G = $Tuple2(r, s)
188+ let ao = value(V.payments[0])
189+ let ap = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
190+ let am = [if ((ap.issuer == V.caller))
176191 then true
177- else throw("asset is smart"), if ((toBase58String(value(al.assetId)) == value(getString(f))))
192+ else throw("asset can only be suggested by its issuer"), if ((ap.scripted == false))
178193 then true
179- else throw("invalid fee asset"), if ((al.amount == value(getInteger(b))))
194+ else throw("asset is smart"), if ((toBase58String(value(ao.assetId)) == value(getString(f))))
180195 then true
181- else throw("invalid fee amount"), if ((q == value(getString(c))))
196+ else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
182197 then true
183- else throw("priceAssetId is not USDN"), if ((getInteger(o(p, q)) == unit))
198+ else throw("invalid fee amount"), if ((s == value(getString(c))))
184199 then true
185- else throw("already in voting list"), if (!(valueOrElse(getBoolean(N, D(E)), false)))
200+ else throw("priceAssetId is not USDN"), if ((getInteger(q(r, s)) == unit))
201+ then true
202+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
186203 then true
187204 else throw("pool is in emission voting list")]
188- if ((ak == ak))
205+ if ((am == am))
189206 then {
190- let an = {
191- let P = invoke(M, "statusREADONLY", [p, q], nil)
192- if ($isInstanceOf(P, "String"))
207+ let aq = {
208+ let R = invoke(O, "statusREADONLY", [r, s], nil)
209+ if ($isInstanceOf(R, "String"))
193210 then {
194- let Q = P
195- if ((Q == "active"))
211+ let S = R
212+ if ((S == "active"))
196213 then true
197214 else throw("user pool is not active")
198215 }
199216 else throw("user pool is not active")
200217 }
201- if ((an == an))
218+ if ((aq == aq))
202219 then {
203- let ao = {
204- let P = invoke(I, "isVerifiedREADONLY", [p], nil)
205- if ($isInstanceOf(P, "Boolean"))
220+ let ar = {
221+ let R = invoke(K, "isVerifiedREADONLY", [r], nil)
222+ if ($isInstanceOf(R, "Boolean"))
206223 then {
207- let ap = P
208- if (ap)
224+ let as = R
225+ if (as)
209226 then true
210227 else throw("asset is not verified")
211228 }
212229 else throw("asset is not verified")
213230 }
214- if ((ao == ao))
231+ if ((ar == ar))
215232 then {
216- let aq = invoke(K, "burn", nil, [AttachedPayment(al.assetId, al.amount)])
217- if ((aq == aq))
233+ let at = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
234+ if ((at == at))
218235 then {
219- let ar = {
220- let P = getInteger(r(p, q))
221- if ($isInstanceOf(P, "Int"))
236+ let au = {
237+ let R = getInteger(t(r, s))
238+ if ($isInstanceOf(R, "Int"))
222239 then {
223- let as = P
224- (as + 1)
240+ let av = R
241+ (av + 1)
225242 }
226243 else 0
227244 }
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)
245+ $Tuple2([IntegerEntry(q(r, s), au), IntegerEntry(u(r, s, au), height), StringEntry(w(r, s, au), x("0", "0")), IntegerEntry(t(r, s), au)], unit)
229246 }
230247 else throw("Strict value is not equal to itself.")
231248 }
238255
239256
240257
241-@Callable(T)
242-func vote (p,q,at) = {
243- let t = value(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))))
258+@Callable(V)
259+func vote (r,s,aw) = {
260+ let v = value(getInteger(q(r, s)))
261+ let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
262+ let am = [if (isDefined(getInteger(q(r, s))))
246263 then true
247- else throw("the token isn't on the voting list"), if ((au > height))
264+ else throw("the token isn't on the voting list"), if ((ax > height))
248265 then true
249266 else throw("too late to vote")]
250- if ((ak == ak))
267+ if ((am == am))
251268 then {
252- let B = invoke(J, "getUserGwxAmountAtHeightREADONLY", [toString(T.caller), au], nil)
253- let av = if ((W(B) > 0))
269+ let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ax], nil)
270+ let ay = if ((Y(D) > 0))
254271 then true
255272 else throw("you don't have gwx")
256- if ((av == av))
273+ if ((ay == ay))
257274 then {
258- let C = {
259- let P = getString(y(p, q, t, toString(T.caller)))
260- if ($isInstanceOf(P, "String"))
275+ let E = {
276+ let R = getString(A(r, s, v, toString(V.caller)))
277+ if ($isInstanceOf(R, "String"))
261278 then {
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)
279+ let S = R
280+ let E = split(S, a)
281+ let az = E[1]
282+ let aA = E[2]
283+ let aB = if (if ((aA == "yes"))
284+ then (aw == true)
268285 else false)
269286 then true
270- else if ((ax == "no"))
271- then (at == false)
287+ else if ((aA == "no"))
288+ then (aw == false)
272289 else false
273- let az = if (ay)
274- then (W(B) == parseIntValue(aw))
290+ let aC = if (aB)
291+ then (Y(D) == parseIntValue(az))
275292 else false
276- let aA = if (if (ay)
277- then az
293+ let aD = if (if (aB)
294+ then aC
278295 else false)
279296 then throw("you already voted")
280- else invoke(this, "cancelVote", [p, q], nil)
281- aA
297+ else invoke(this, "cancelVote", [r, s], nil)
298+ aD
282299 }
283- else if ($isInstanceOf(P, "Unit"))
300+ else if ($isInstanceOf(R, "Unit"))
284301 then {
285- let aB = P
286- aB
302+ let aE = R
303+ aE
287304 }
288305 else throw("Match error")
289306 }
290- if ((C == C))
307+ if ((E == E))
291308 then {
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)
309+ let aF = split(value(getString(w(r, s, v))), a)
310+ let aG = aF[1]
311+ let aH = aF[2]
312+ let aI = if (aw)
296313 then {
297- let aG = (parseIntValue(aD) + W(B))
298-[toString(aG), aE]
314+ let aJ = (parseIntValue(aG) + Y(D))
315+[toString(aJ), aH]
299316 }
300317 else {
301- let aH = (parseIntValue(aE) + W(B))
302-[aD, toString(aH)]
318+ let aK = (parseIntValue(aH) + Y(D))
319+[aG, toString(aK)]
303320 }
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)
321+ let aL = A(r, s, v, toString(V.caller))
322+ let az = C(toString(Y(D)), aw)
323+ $Tuple2([StringEntry(w(r, s, v), x(aI[0], aI[1])), StringEntry(aL, az)], unit)
307324 }
308325 else throw("Strict value is not equal to itself.")
309326 }
314331
315332
316333
317-@Callable(T)
318-func cancelVote (p,q) = {
319- let aJ = if ((T.caller == this))
320- then toString(T.originCaller)
321- else toString(T.caller)
322- let t = value(getInteger(o(p, q)))
323- let ak = [if (isDefined(getString(u(p, q, t))))
334+@Callable(V)
335+func cancelVote (r,s) = {
336+ let aM = if ((V.caller == this))
337+ then toString(V.originCaller)
338+ else toString(V.caller)
339+ let v = value(getInteger(q(r, s)))
340+ let am = [if (isDefined(getString(w(r, s, v))))
324341 then true
325342 else throw("no vote for assets pair")]
326- if ((ak == ak))
343+ if ((am == am))
327344 then {
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"))
345+ let E = split(value(getString(A(r, s, v, aM))), a)
346+ let az = E[1]
347+ let aA = E[2]
348+ let aF = split(value(getString(w(r, s, v))), a)
349+ let aG = aF[1]
350+ let aH = aF[2]
351+ let aN = if ((aA == "yes"))
335352 then {
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)
353+ let aJ = (parseIntValue(aG) - parseIntValue(az))
354+ $Tuple2([StringEntry(w(r, s, v), x(toString(aJ), aH)), DeleteEntry(A(r, s, v, aM))], unit)
338355 }
339356 else {
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)
357+ let aK = (parseIntValue(aH) - parseIntValue(az))
358+ $Tuple2([StringEntry(w(r, s, v), x(aG, toString(aK))), DeleteEntry(A(r, s, v, aM))], unit)
342359 }
343- aK
360+ aN
344361 }
345362 else throw("Strict value is not equal to itself.")
346363 }
347364
348365
349366
350-@Callable(T)
351-func setFee (aL) = {
352- let ak = [S(T)]
353- if ((ak == ak))
354- then [IntegerEntry(b, aL)]
367+@Callable(V)
368+func setFee (aO) = {
369+ let am = [U(V)]
370+ if ((am == am))
371+ then [IntegerEntry(b, aO)]
355372 else throw("Strict value is not equal to itself.")
356373 }
357374
358375
359376
360-@Callable(T)
361-func finalize (p,q) = {
362- let t = value(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))))
377+@Callable(V)
378+func setThreshold (aP) = {
379+ let am = [U(V), if ((aP > 0))
365380 then true
366- else throw("no assets pair"), if ((height >= au))
381+ else throw("invalid threshold")]
382+ if ((am == am))
383+ then $Tuple2([IntegerEntry(m, aP)], unit)
384+ else throw("Strict value is not equal to itself.")
385+ }
386+
387+
388+
389+@Callable(V)
390+func finalize (r,s) = {
391+ let v = value(getInteger(q(r, s)))
392+ let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
393+ let am = [if (isDefined(getInteger(q(r, s))))
394+ then true
395+ else throw("no assets pair"), if ((height >= ax))
367396 then true
368397 else throw("insufficient height for completion")]
369- if ((ak == ak))
398+ if ((am == am))
370399 then {
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))
400+ let aF = split(value(getString(w(r, s, v))), a)
401+ let aG = parseIntValue(aF[1])
402+ let aH = parseIntValue(aF[2])
403+ let aQ = (aG + aH)
404+ let an = p(m)
405+ let aN = if (if ((aQ >= an))
406+ then (aG > aH)
407+ else false)
375408 then {
376- let aM = invoke(L, "setWxEmissionPoolLabel", [p, q], nil)
377- if ((aM == aM))
409+ let aR = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
410+ if ((aR == aR))
378411 then {
379- let aN = invoke(N, "create", [p, q], nil)
380- if ((aN == aN))
381- then $Tuple2([DeleteEntry(o(p, q))], unit)
412+ let aS = invoke(P, "create", [r, s], nil)
413+ if ((aS == aS))
414+ then $Tuple2([DeleteEntry(q(r, s))], unit)
382415 else throw("Strict value is not equal to itself.")
383416 }
384417 else throw("Strict value is not equal to itself.")
385418 }
386- else $Tuple2([DeleteEntry(o(p, q))], unit)
387- aK
419+ else $Tuple2([DeleteEntry(q(r, s))], unit)
420+ aN
388421 }
389422 else throw("Strict value is not equal to itself.")
390423 }
391424
392425
393426
394-@Callable(T)
395-func setManager (aO) = {
396- let aP = S(T)
397- if ((aP == aP))
427+@Callable(V)
428+func setManager (aT) = {
429+ let aU = U(V)
430+ if ((aU == aU))
398431 then {
399- let aQ = fromBase58String(aO)
400- if ((aQ == aQ))
401- then [StringEntry(H(), aO)]
432+ let aV = fromBase58String(aT)
433+ if ((aV == aV))
434+ then [StringEntry(J(), aT)]
402435 else throw("Strict value is not equal to itself.")
403436 }
404437 else throw("Strict value is not equal to itself.")
406439
407440
408441
409-@Callable(T)
442+@Callable(V)
410443 func confirmManager () = {
411- let aR = R()
412- let aS = if (isDefined(aR))
444+ let aW = T()
445+ let aX = if (isDefined(aW))
413446 then true
414447 else throw("no pending manager")
415- if ((aS == aS))
448+ if ((aX == aX))
416449 then {
417- let aT = if ((T.callerPublicKey == value(aR)))
450+ let aY = if ((V.callerPublicKey == value(aW)))
418451 then true
419452 else throw("you are not pending manager")
420- if ((aT == aT))
421- then [StringEntry(G(), toBase58String(value(aR))), DeleteEntry(H())]
453+ if ((aY == aY))
454+ then [StringEntry(I(), toBase58String(value(aW))), DeleteEntry(J())]
422455 else throw("Strict value is not equal to itself.")
423456 }
424457 else throw("Strict value is not equal to itself.")
425458 }
426459
427460
428-@Verifier(aU)
429-func aV () = {
430- let aW = {
431- let P = O()
432- if ($isInstanceOf(P, "ByteVector"))
461+@Verifier(aZ)
462+func ba () = {
463+ let bb = {
464+ let R = Q()
465+ if ($isInstanceOf(R, "ByteVector"))
433466 then {
434- let V = P
435- V
467+ let X = R
468+ X
436469 }
437- else if ($isInstanceOf(P, "Unit"))
438- then aU.senderPublicKey
470+ else if ($isInstanceOf(R, "Unit"))
471+ then aZ.senderPublicKey
439472 else throw("Match error")
440473 }
441- sigVerify(aU.bodyBytes, aU.proofs[0], aW)
474+ sigVerify(aZ.bodyBytes, aZ.proofs[0], bb)
442475 }
443476
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
28-func m (n) = valueOrErrorMessage(getString(this, n), (n + " is not defined"))
28+let m = makeString(["%s", "votingThreshold"], a)
29+
30+func n (o) = valueOrErrorMessage(getString(this, o), (o + " is not defined"))
2931
3032
31-func o (p,q) = makeString(["%s%s%s", "inList", p, q], a)
33+func p (o) = valueOrErrorMessage(getInteger(this, o), (o + " is not defined"))
3234
3335
34-func r (p,q) = makeString(["%s%s%s", "suggestIndex", p, q], a)
36+func q (r,s) = makeString(["%s%s%s", "inList", r, s], a)
3537
3638
37-func s (p,q,t) = makeString(["%s%s%s%d", "startHeight", p, q, toString(t)], a)
39+func t (r,s) = makeString(["%s%s%s", "suggestIndex", r, s], a)
3840
3941
40-func u (p,q,t) = makeString(["%s%s%s%d", "votingResult", p, q, toString(t)], a)
42+func u (r,s,v) = makeString(["%s%s%s%d", "startHeight", r, s, toString(v)], a)
4143
4244
43-func v (w,x) = makeString(["%d%d", w, x], a)
45+func w (r,s,v) = makeString(["%s%s%s%d", "votingResult", r, s, toString(v)], a)
4446
4547
46-func y (p,q,t,z) = makeString(["%s%s%s%d%s", "vote", p, q, toString(t), z], a)
48+func x (y,z) = makeString(["%d%d", y, z], a)
4749
4850
49-func A (B,C) = {
50- let n = if (C)
51- then makeString(["%d%s", B, "yes"], a)
52- else makeString(["%d%s", B, "no"], a)
53- n
51+func A (r,s,v,B) = makeString(["%s%s%s%d%s", "vote", r, s, toString(v), B], a)
52+
53+
54+func C (D,E) = {
55+ let o = if (E)
56+ then makeString(["%d%s", D, "yes"], a)
57+ else makeString(["%d%s", D, "no"], a)
58+ o
5459 }
5560
5661
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+func F (G) = {
63+ let H = G
64+ let r = H._1
65+ let s = H._2
66+ makeString(["%s%s%s", "inList", r, s], a)
6267 }
6368
6469
65-func G () = "%s__managerPublicKey"
70+func I () = "%s__managerPublicKey"
6671
6772
68-func H () = "%s__pendingManagerPublicKey"
73+func J () = "%s__pendingManagerPublicKey"
6974
7075
71-let I = addressFromStringValue(m(g))
76+let K = addressFromStringValue(n(g))
7277
73-let J = addressFromStringValue(m(j))
78+let L = addressFromStringValue(n(j))
7479
75-let K = addressFromStringValue(m(i))
80+let M = addressFromStringValue(n(i))
7681
77-let L = addressFromStringValue(m(k))
82+let N = addressFromStringValue(n(k))
7883
79-let M = addressFromStringValue(m(h))
84+let O = addressFromStringValue(n(h))
8085
81-let N = addressFromStringValue(m(l))
86+let P = addressFromStringValue(n(l))
8287
83-func O () = {
84- let P = getString(G())
85- if ($isInstanceOf(P, "String"))
88+func Q () = {
89+ let R = getString(I())
90+ if ($isInstanceOf(R, "String"))
8691 then {
87- let Q = P
88- fromBase58String(Q)
92+ let S = R
93+ fromBase58String(S)
8994 }
90- else if ($isInstanceOf(P, "Unit"))
95+ else if ($isInstanceOf(R, "Unit"))
9196 then unit
9297 else throw("Match error")
9398 }
9499
95100
96-func R () = {
97- let P = getString(H())
98- if ($isInstanceOf(P, "String"))
101+func T () = {
102+ let R = getString(J())
103+ if ($isInstanceOf(R, "String"))
99104 then {
100- let Q = P
101- fromBase58String(Q)
105+ let S = R
106+ fromBase58String(S)
102107 }
103- else if ($isInstanceOf(P, "Unit"))
108+ else if ($isInstanceOf(R, "Unit"))
104109 then unit
105110 else throw("Match error")
106111 }
107112
108113
109-func S (T) = {
110- let U = throw("permission denied")
111- let P = O()
112- if ($isInstanceOf(P, "ByteVector"))
114+func U (V) = {
115+ let W = throw("permission denied")
116+ let R = Q()
117+ if ($isInstanceOf(R, "ByteVector"))
113118 then {
114- let V = P
115- if ((T.callerPublicKey == V))
119+ let X = R
120+ if ((V.callerPublicKey == X))
116121 then true
117- else U
122+ else W
118123 }
119- else if ($isInstanceOf(P, "Unit"))
120- then if ((T.caller == this))
124+ else if ($isInstanceOf(R, "Unit"))
125+ then if ((V.caller == this))
121126 then true
122- else U
127+ else W
123128 else throw("Match error")
124129 }
125130
126131
127-func W (X) = {
128- let P = X
129- if ($isInstanceOf(P, "Int"))
132+func Y (Z) = {
133+ let R = Z
134+ if ($isInstanceOf(R, "Int"))
130135 then {
131- let Y = P
132- Y
136+ let aa = R
137+ aa
133138 }
134139 else throw("failed to cast into Integer")
135140 }
136141
137142
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)))
143+@Callable(V)
144+func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145+ let am = [U(V), if (isDefined(addressFromString(ab)))
141146 then true
142- else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(aa)))
147+ else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
143148 then true
144- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ad)))
149+ else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
145150 then true
146- else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ab)))
151+ else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
147152 then true
148- else throw("Invalid emission contract address"), if (isDefined(addressFromString(ac)))
153+ else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
149154 then true
150- else throw("Invalid factory contract address"), if ((af >= 0))
155+ else throw("Invalid factory contract address"), if ((ah >= 0))
151156 then true
152- else throw("Invalid fee amount"), if ((ah > 0))
157+ else throw("Invalid fee amount"), if ((aj > 0))
153158 then true
154- else throw("Invalid voting duration"), if ((aj >= 0))
159+ else throw("Invalid voting duration"), if ((al >= 0))
155160 then true
156- else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ag))))
161+ else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
157162 then true
158- else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ai))))
163+ else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
159164 then true
160165 else throw("Invalid USDN asset ID")]
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)
166+ if ((am == am))
167+ then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
163168 else throw("Strict value is not equal to itself.")
164169 }
165170
166171
167172
168-@Callable(T)
169-func suggest (p,q) = {
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))
173+@Callable(V)
174+func constructorV2 (an) = {
175+ let am = [U(V), if ((an > 0))
174176 then true
175- else throw("asset can only be suggested by its issuer"), if ((am.scripted == false))
177+ else throw("invalid threshold")]
178+ if ((am == am))
179+ then $Tuple2([IntegerEntry(m, an)], unit)
180+ else throw("Strict value is not equal to itself.")
181+ }
182+
183+
184+
185+@Callable(V)
186+func suggest (r,s) = {
187+ let G = $Tuple2(r, s)
188+ let ao = value(V.payments[0])
189+ let ap = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
190+ let am = [if ((ap.issuer == V.caller))
176191 then true
177- else throw("asset is smart"), if ((toBase58String(value(al.assetId)) == value(getString(f))))
192+ else throw("asset can only be suggested by its issuer"), if ((ap.scripted == false))
178193 then true
179- else throw("invalid fee asset"), if ((al.amount == value(getInteger(b))))
194+ else throw("asset is smart"), if ((toBase58String(value(ao.assetId)) == value(getString(f))))
180195 then true
181- else throw("invalid fee amount"), if ((q == value(getString(c))))
196+ else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
182197 then true
183- else throw("priceAssetId is not USDN"), if ((getInteger(o(p, q)) == unit))
198+ else throw("invalid fee amount"), if ((s == value(getString(c))))
184199 then true
185- else throw("already in voting list"), if (!(valueOrElse(getBoolean(N, D(E)), false)))
200+ else throw("priceAssetId is not USDN"), if ((getInteger(q(r, s)) == unit))
201+ then true
202+ else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
186203 then true
187204 else throw("pool is in emission voting list")]
188- if ((ak == ak))
205+ if ((am == am))
189206 then {
190- let an = {
191- let P = invoke(M, "statusREADONLY", [p, q], nil)
192- if ($isInstanceOf(P, "String"))
207+ let aq = {
208+ let R = invoke(O, "statusREADONLY", [r, s], nil)
209+ if ($isInstanceOf(R, "String"))
193210 then {
194- let Q = P
195- if ((Q == "active"))
211+ let S = R
212+ if ((S == "active"))
196213 then true
197214 else throw("user pool is not active")
198215 }
199216 else throw("user pool is not active")
200217 }
201- if ((an == an))
218+ if ((aq == aq))
202219 then {
203- let ao = {
204- let P = invoke(I, "isVerifiedREADONLY", [p], nil)
205- if ($isInstanceOf(P, "Boolean"))
220+ let ar = {
221+ let R = invoke(K, "isVerifiedREADONLY", [r], nil)
222+ if ($isInstanceOf(R, "Boolean"))
206223 then {
207- let ap = P
208- if (ap)
224+ let as = R
225+ if (as)
209226 then true
210227 else throw("asset is not verified")
211228 }
212229 else throw("asset is not verified")
213230 }
214- if ((ao == ao))
231+ if ((ar == ar))
215232 then {
216- let aq = invoke(K, "burn", nil, [AttachedPayment(al.assetId, al.amount)])
217- if ((aq == aq))
233+ let at = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
234+ if ((at == at))
218235 then {
219- let ar = {
220- let P = getInteger(r(p, q))
221- if ($isInstanceOf(P, "Int"))
236+ let au = {
237+ let R = getInteger(t(r, s))
238+ if ($isInstanceOf(R, "Int"))
222239 then {
223- let as = P
224- (as + 1)
240+ let av = R
241+ (av + 1)
225242 }
226243 else 0
227244 }
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)
245+ $Tuple2([IntegerEntry(q(r, s), au), IntegerEntry(u(r, s, au), height), StringEntry(w(r, s, au), x("0", "0")), IntegerEntry(t(r, s), au)], unit)
229246 }
230247 else throw("Strict value is not equal to itself.")
231248 }
232249 else throw("Strict value is not equal to itself.")
233250 }
234251 else throw("Strict value is not equal to itself.")
235252 }
236253 else throw("Strict value is not equal to itself.")
237254 }
238255
239256
240257
241-@Callable(T)
242-func vote (p,q,at) = {
243- let t = value(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))))
258+@Callable(V)
259+func vote (r,s,aw) = {
260+ let v = value(getInteger(q(r, s)))
261+ let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
262+ let am = [if (isDefined(getInteger(q(r, s))))
246263 then true
247- else throw("the token isn't on the voting list"), if ((au > height))
264+ else throw("the token isn't on the voting list"), if ((ax > height))
248265 then true
249266 else throw("too late to vote")]
250- if ((ak == ak))
267+ if ((am == am))
251268 then {
252- let B = invoke(J, "getUserGwxAmountAtHeightREADONLY", [toString(T.caller), au], nil)
253- let av = if ((W(B) > 0))
269+ let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ax], nil)
270+ let ay = if ((Y(D) > 0))
254271 then true
255272 else throw("you don't have gwx")
256- if ((av == av))
273+ if ((ay == ay))
257274 then {
258- let C = {
259- let P = getString(y(p, q, t, toString(T.caller)))
260- if ($isInstanceOf(P, "String"))
275+ let E = {
276+ let R = getString(A(r, s, v, toString(V.caller)))
277+ if ($isInstanceOf(R, "String"))
261278 then {
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)
279+ let S = R
280+ let E = split(S, a)
281+ let az = E[1]
282+ let aA = E[2]
283+ let aB = if (if ((aA == "yes"))
284+ then (aw == true)
268285 else false)
269286 then true
270- else if ((ax == "no"))
271- then (at == false)
287+ else if ((aA == "no"))
288+ then (aw == false)
272289 else false
273- let az = if (ay)
274- then (W(B) == parseIntValue(aw))
290+ let aC = if (aB)
291+ then (Y(D) == parseIntValue(az))
275292 else false
276- let aA = if (if (ay)
277- then az
293+ let aD = if (if (aB)
294+ then aC
278295 else false)
279296 then throw("you already voted")
280- else invoke(this, "cancelVote", [p, q], nil)
281- aA
297+ else invoke(this, "cancelVote", [r, s], nil)
298+ aD
282299 }
283- else if ($isInstanceOf(P, "Unit"))
300+ else if ($isInstanceOf(R, "Unit"))
284301 then {
285- let aB = P
286- aB
302+ let aE = R
303+ aE
287304 }
288305 else throw("Match error")
289306 }
290- if ((C == C))
307+ if ((E == E))
291308 then {
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)
309+ let aF = split(value(getString(w(r, s, v))), a)
310+ let aG = aF[1]
311+ let aH = aF[2]
312+ let aI = if (aw)
296313 then {
297- let aG = (parseIntValue(aD) + W(B))
298-[toString(aG), aE]
314+ let aJ = (parseIntValue(aG) + Y(D))
315+[toString(aJ), aH]
299316 }
300317 else {
301- let aH = (parseIntValue(aE) + W(B))
302-[aD, toString(aH)]
318+ let aK = (parseIntValue(aH) + Y(D))
319+[aG, toString(aK)]
303320 }
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)
321+ let aL = A(r, s, v, toString(V.caller))
322+ let az = C(toString(Y(D)), aw)
323+ $Tuple2([StringEntry(w(r, s, v), x(aI[0], aI[1])), StringEntry(aL, az)], unit)
307324 }
308325 else throw("Strict value is not equal to itself.")
309326 }
310327 else throw("Strict value is not equal to itself.")
311328 }
312329 else throw("Strict value is not equal to itself.")
313330 }
314331
315332
316333
317-@Callable(T)
318-func cancelVote (p,q) = {
319- let aJ = if ((T.caller == this))
320- then toString(T.originCaller)
321- else toString(T.caller)
322- let t = value(getInteger(o(p, q)))
323- let ak = [if (isDefined(getString(u(p, q, t))))
334+@Callable(V)
335+func cancelVote (r,s) = {
336+ let aM = if ((V.caller == this))
337+ then toString(V.originCaller)
338+ else toString(V.caller)
339+ let v = value(getInteger(q(r, s)))
340+ let am = [if (isDefined(getString(w(r, s, v))))
324341 then true
325342 else throw("no vote for assets pair")]
326- if ((ak == ak))
343+ if ((am == am))
327344 then {
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"))
345+ let E = split(value(getString(A(r, s, v, aM))), a)
346+ let az = E[1]
347+ let aA = E[2]
348+ let aF = split(value(getString(w(r, s, v))), a)
349+ let aG = aF[1]
350+ let aH = aF[2]
351+ let aN = if ((aA == "yes"))
335352 then {
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)
353+ let aJ = (parseIntValue(aG) - parseIntValue(az))
354+ $Tuple2([StringEntry(w(r, s, v), x(toString(aJ), aH)), DeleteEntry(A(r, s, v, aM))], unit)
338355 }
339356 else {
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)
357+ let aK = (parseIntValue(aH) - parseIntValue(az))
358+ $Tuple2([StringEntry(w(r, s, v), x(aG, toString(aK))), DeleteEntry(A(r, s, v, aM))], unit)
342359 }
343- aK
360+ aN
344361 }
345362 else throw("Strict value is not equal to itself.")
346363 }
347364
348365
349366
350-@Callable(T)
351-func setFee (aL) = {
352- let ak = [S(T)]
353- if ((ak == ak))
354- then [IntegerEntry(b, aL)]
367+@Callable(V)
368+func setFee (aO) = {
369+ let am = [U(V)]
370+ if ((am == am))
371+ then [IntegerEntry(b, aO)]
355372 else throw("Strict value is not equal to itself.")
356373 }
357374
358375
359376
360-@Callable(T)
361-func finalize (p,q) = {
362- let t = value(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))))
377+@Callable(V)
378+func setThreshold (aP) = {
379+ let am = [U(V), if ((aP > 0))
365380 then true
366- else throw("no assets pair"), if ((height >= au))
381+ else throw("invalid threshold")]
382+ if ((am == am))
383+ then $Tuple2([IntegerEntry(m, aP)], unit)
384+ else throw("Strict value is not equal to itself.")
385+ }
386+
387+
388+
389+@Callable(V)
390+func finalize (r,s) = {
391+ let v = value(getInteger(q(r, s)))
392+ let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
393+ let am = [if (isDefined(getInteger(q(r, s))))
394+ then true
395+ else throw("no assets pair"), if ((height >= ax))
367396 then true
368397 else throw("insufficient height for completion")]
369- if ((ak == ak))
398+ if ((am == am))
370399 then {
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))
400+ let aF = split(value(getString(w(r, s, v))), a)
401+ let aG = parseIntValue(aF[1])
402+ let aH = parseIntValue(aF[2])
403+ let aQ = (aG + aH)
404+ let an = p(m)
405+ let aN = if (if ((aQ >= an))
406+ then (aG > aH)
407+ else false)
375408 then {
376- let aM = invoke(L, "setWxEmissionPoolLabel", [p, q], nil)
377- if ((aM == aM))
409+ let aR = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
410+ if ((aR == aR))
378411 then {
379- let aN = invoke(N, "create", [p, q], nil)
380- if ((aN == aN))
381- then $Tuple2([DeleteEntry(o(p, q))], unit)
412+ let aS = invoke(P, "create", [r, s], nil)
413+ if ((aS == aS))
414+ then $Tuple2([DeleteEntry(q(r, s))], unit)
382415 else throw("Strict value is not equal to itself.")
383416 }
384417 else throw("Strict value is not equal to itself.")
385418 }
386- else $Tuple2([DeleteEntry(o(p, q))], unit)
387- aK
419+ else $Tuple2([DeleteEntry(q(r, s))], unit)
420+ aN
388421 }
389422 else throw("Strict value is not equal to itself.")
390423 }
391424
392425
393426
394-@Callable(T)
395-func setManager (aO) = {
396- let aP = S(T)
397- if ((aP == aP))
427+@Callable(V)
428+func setManager (aT) = {
429+ let aU = U(V)
430+ if ((aU == aU))
398431 then {
399- let aQ = fromBase58String(aO)
400- if ((aQ == aQ))
401- then [StringEntry(H(), aO)]
432+ let aV = fromBase58String(aT)
433+ if ((aV == aV))
434+ then [StringEntry(J(), aT)]
402435 else throw("Strict value is not equal to itself.")
403436 }
404437 else throw("Strict value is not equal to itself.")
405438 }
406439
407440
408441
409-@Callable(T)
442+@Callable(V)
410443 func confirmManager () = {
411- let aR = R()
412- let aS = if (isDefined(aR))
444+ let aW = T()
445+ let aX = if (isDefined(aW))
413446 then true
414447 else throw("no pending manager")
415- if ((aS == aS))
448+ if ((aX == aX))
416449 then {
417- let aT = if ((T.callerPublicKey == value(aR)))
450+ let aY = if ((V.callerPublicKey == value(aW)))
418451 then true
419452 else throw("you are not pending manager")
420- if ((aT == aT))
421- then [StringEntry(G(), toBase58String(value(aR))), DeleteEntry(H())]
453+ if ((aY == aY))
454+ then [StringEntry(I(), toBase58String(value(aW))), DeleteEntry(J())]
422455 else throw("Strict value is not equal to itself.")
423456 }
424457 else throw("Strict value is not equal to itself.")
425458 }
426459
427460
428-@Verifier(aU)
429-func aV () = {
430- let aW = {
431- let P = O()
432- if ($isInstanceOf(P, "ByteVector"))
461+@Verifier(aZ)
462+func ba () = {
463+ let bb = {
464+ let R = Q()
465+ if ($isInstanceOf(R, "ByteVector"))
433466 then {
434- let V = P
435- V
467+ let X = R
468+ X
436469 }
437- else if ($isInstanceOf(P, "Unit"))
438- then aU.senderPublicKey
470+ else if ($isInstanceOf(R, "Unit"))
471+ then aZ.senderPublicKey
439472 else throw("Match error")
440473 }
441- sigVerify(aU.bodyBytes, aU.proofs[0], aW)
474+ sigVerify(aZ.bodyBytes, aZ.proofs[0], bb)
442475 }
443476

github/deemru/w8io/873ac7e 
211.79 ms