tx · Dt67xcVQmHVBzrQfFT3HYWXztACJt2jFpUAednBeP99a 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai: -0.02400000 Waves 2023.03.22 14:27 [2501162] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves
{ "type": 13, "id": "Dt67xcVQmHVBzrQfFT3HYWXztACJt2jFpUAednBeP99a", "fee": 2400000, "feeAssetId": null, "timestamp": 1679484487779, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "4c11XJi6dfWLdW5GnPHEh4dSPQ5i55xEd4xkSknBTf7gQ17SGSG8GBenKyW5vFsmv9wgNtcvNtHnNBfhXdpUWvEE" ], "script": "base64:BgLhKAgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCILd2F2ZXNTdHJpbmciEWRlY2ltYWxzTXVsdFByaWNlIgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biISaWR4SW50ZXJuYWxBc3NldElkIg9pZHhSZXN1dEFjdGlvbnMiIGlkeElmQXNzZXRJZENhbGN1bGF0aW9uUGVyZm9ybWVkIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iC2lkeFBvb2xUeXBlIhNwb29sTGFiZWxXeEVtaXNzaW9uIg92YWxpZFBvb2xMYWJlbHMiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giIWtleUFsbG93ZWRMcFN0YWJsZUFkZG9uU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM3MjYzNzg4IiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiIRa2V5Q2hhbmdlQW1wRGVsYXkiEWtleUNoYW5nZUFtcERlbHRhIhJrZXlDaGFuZ2VBbXBUYXJnZXQiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIgxnZXRJbnRPckZhaWwiDHBhcnNlQXNzZXRJZCIFaW5wdXQiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhRJZHhGYWN0b3J5Q2ZnRGFvRGFwcCIaSWR4RmFjdG9yeUNmZ01hcmtldGluZ0RhcHAiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIhZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiDmdldFByaWNlQXNzZXRzIgckbWF0Y2gwIgFzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbEV4aXN0cyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpwb29sQ29uZmlnIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdlaWdodEJ0YyIRb25Nb2RpZnlXZWlnaHRFdGgiFG9uTW9kaWZ5V2VpZ2h0RXRoQnRjIhZvbk1vZGlmeVdlaWdodFVzZGNVc2R0IgloYXZlTGFiZWwiAWIiB2Fzc2V0SWQiFGNoZWNrUHJpY2VBc3NldHNTaXplIgJjYiIDYWNjIgpwcmljZUFzc2V0IgFyIgdhY3Rpb25zIgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIecG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIiJhbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgNmZWUiEGFtb3VudEFzc2V0SWRTdHIiD3ByaWNlQXNzZXRJZFN0ciIbYW1vdW50QXNzZXRJbnRlcm5hbElkT3B0aW9uIhpwcmljZUFzc2V0SW50ZXJuYWxJZE9wdGlvbiIZcG9vbENvbnRyYWN0QWRkcmVzc09wdGlvbiIPbHBBc3NldElkT3B0aW9uIghwb29sSW5mbyIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleW0AAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUFAWIAAWYCDkdXWHZpcnR1YWxQT09MAAFnAghQT09MU19MUAABaACAiXoAAWkCBVdBVkVTAAFqCQBoAgkAaAIAZADoBwDoBwABawICX18AAWwCAAABbQABAAFuAAIAAW8AAwABcAAEAAFxAAEAAXIAAgABcwADAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAoAAUQACwABRQILV1hfRU1JU1NJT04AAUYJAMwIAgUBRQUDbmlsAQFHAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUgAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBSQACIiVzX19hbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gBAUoAAhAlc19fc3dhcENvbnRyYWN0AQFLAAIRJXNfX2ZhY3RvcnlDb25maWcBAUwAAhAlc19fbHBUb2tlbnNMaXN0AQFNAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBTgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBTwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVAAAg8lc19fbGVnYWN5UG9vbHMBAVEAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUwACECVzX19hZG1pblB1YktleXMBAVQAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBVQACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFWAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWsBAVcAAhElc19fcHJpY2VEZWNpbWFscwEBWAACDCVzX19zaHV0ZG93bgEBWQACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQFaAQJhYQkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFhAQJhYgICYWECYWMJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWECAl9fCQCkAwEFAmFjAQJhZAECYWUJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhZQECYWYBAmFnCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFnAQJhaAICYWkCYWoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFpAgJfXwUCYWoCCF9fY29uZmlnAQJhawECYWwEAmFtBQJhbAQCYWkIBQJhbQJfMQQCYWoIBQJhbQJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFpCQDMCAIJAKQDAQUCYWoJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW4ACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW8BAmFwCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFwAhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmFxAgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhcgICX18FAmFzAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmF0AQJhYQkArAICAg4lcyVzX19zcHJlYWRfXwUCYWEBAmF1AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmF3AgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFyAgJfXwkApAMBBQJhcwIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmF4AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmF5AQJhcAkArAICCQCsAgICCCVzJXMlc19fBQJhcAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmF6AgJhQQJhQgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFBAgJfXwUCYUIBAmFDAQJhYQkArAICAg0lcyVzX19pbkZlZV9fBQJhYQECYUQAAhAlc19faW5GZWVEZWZhdWx0AQJhRQECYWEJAKwCAgIOJXMlc19fb3V0RmVlX18FAmFhAQJhRgACESVzX19vdXRGZWVEZWZhdWx0AQJhRwECYWEJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhYQECYUgBAmFhCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbGF5X18FAmFhAQJhSQECYWEJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsdGFfXwUCYWEBAmFKAQJhYQkArAICAhclcyVzX19jaGFuZ2VBbXBUYXJnZXRfXwUCYWEBAmFLAQJhTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFMCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUwBAmFNAQJhTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFAmFMCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUwBAmFOAQJhTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAmFMCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUwBAmFPAQJhUAMJAAACBQJhUAUBaQUEdW5pdAkA2QQBBQJhUAACYVEAAQACYVIAAgACYVMAAwACYVQABAACYVUABQACYVYABgACYVcABwACYVgACAACYVkACQACYVoACgACYmEACwECYmIBAmJjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJjBQJhUgECYmQBAmJjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJjBQJhVQECYmUBAmJjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJjBQJhUQECYmYBAmJjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJjBQJhWgECYmcABAJiaAkAoggBCQEBVgADCQABAgUCYmgCBlN0cmluZwQCYmkFAmJoAwkAAAIJALECAQUCYmkAAAUDbmlsCQC1CQIFAmJpBQFrBQNuaWwBAmJqAAQCYmgJAKIIAQkBAVEAAwkAAQIFAmJoAgZTdHJpbmcEAmJpBQJiaAkA2QQBBQJiaQMJAAECBQJiaAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJiawAEAmJoCQCiCAEJAQFSAAMJAAECBQJiaAIGU3RyaW5nBAJiaQUCYmgJANkEAQUCYmkDCQABAgUCYmgCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYmwJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAACYm0JAAIBAg9UZXN0IGVycm9yIGhlcmUBAmJuAQJibwMJAAACCAUCYm8GY2FsbGVyBQR0aGlzBgUCYmwBAmJwAQJibwQCYmgJAQJiagADCQABAgUCYmgCCkJ5dGVWZWN0b3IEAmJxBQJiaAMJAAACCAUCYm8PY2FsbGVyUHVibGljS2V5BQJicQYFAmJsAwkAAQIFAmJoAgRVbml0CQECYm4BBQJibwkAAgECC01hdGNoIGVycm9yAQJicgsCYnMCYnQCYnUCYnYCYncCYngCYnkCYnoCYkECYkICYkMJALkJAgkAzAgCAhYlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCQDMCAIFAmJzCQDMCAIFAmJ0CQDMCAIFAmJ1CQDMCAIFAmJ2CQDMCAIFAmJ3CQDMCAIFAmJ4CQDMCAIFAmJ5CQDMCAIFAmJ6CQDMCAIFAmJBCQDMCAIFAmJCCQDMCAIFAmJDBQNuaWwFAWsBAmJEBwJicwJidAJidQJidgJidwJieAJieQkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQJicwkAzAgCBQJidAkAzAgCBQJidQkAzAgCBQJidgkAzAgCBQJidwkAzAgCBQJieAkAzAgCBQJieQUDbmlsBQFrAQJiRQsCYWECYkYCYkcCYkgCYkkCYkoCYksCYkwCYk0CYk4CYk8JALkJAgkAzAgCAhYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQDMCAIFAmFhCQDMCAIFAmJGCQDMCAIFAmJHCQDMCAIFAmJICQDMCAIFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0JAMwIAgkApAMBBQJiTgkAzAgCBQJiTwUDbmlsBQFrAQJiUAICYlECYlIJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCYlEJAMwIAgkApAMBBQJiUgUDbmlsBQFrAQJiUwECYWEEAmJUCQC1CQIJAQJhSwEJAQJhdQEFAmFhBQFrBAJhaQkAkQMCBQJiVAABBAJhagkAkQMCBQJiVAACCQC1CQIJAQJhSwEJAQJhaAIFAmFpBQJhagUBawECYlUCAmJWAmJXBAJiWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWYBBQJiVgAABAJiWQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBWQAAAAQCYloDCQAAAgUCYlgAAAQCY2EJAGQCBQJiWQUCYlcJAJUKAwUCY2EJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFZAAUCY2EJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZgEFAmJWBQJjYQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQBBQJjYQUCYlYFA25pbAYJAJUKAwUCYlgFA25pbAcFAmJaAQJjYgECYm8EAmNjCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVMABQFsBQFrAwkBD2NvbnRhaW5zRWxlbWVudAIFAmNjCQDYBAEIBQJibw9jYWxsZXJQdWJsaWNLZXkGBAJjZAkBAmJwAQUCYm8DCQAAAgUCY2QFAmNkBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2UDAmFMAmNmAmNnCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFMCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmNmBQJjZwECY2gCAmFBAmFCBAJhaQkAnwgBCQECYWYBBQJhQQQCYWoJAJ8IAQkBAmFmAQUCYUIDAwkAAAIFAmFpBQR1bml0BgkAAAIFAmFqBQR1bml0BwQCY2kJAKQDAQkBBXZhbHVlAQUCYWkEAmNqCQCkAwEJAQV2YWx1ZQEFAmFqBAJjawkAoggBCQECYWgCBQJjaQUCY2oEAmNsCQCiCAEJAQJhaAIFAmNqBQJjaQQCY20DCQECIT0CBQJjawUEdW5pdAYJAQIhPQIFAmNsBQR1bml0BQJjbSACYm8BF2dldFN3YXBDb250cmFjdFJFQURPTkxZAAkAlAoCBQNuaWwJAQJhSwEJAQFKAAJibwEgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkCAmNuAmNvAwMJAAACBQJjbgIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMJAAACBQJjbwIFV0FWRVMHCQCUCgIFA25pbAUEdW5pdAQCY3AJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFmAQUCY24EAmNxCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhZgEFAmNvBAJjcgkAnQgCBQR0aGlzCQECYXECCQCkAwEFAmNwCQCkAwEFAmNxBAJjcwMJAAACBQJjcgUEdW5pdAUEdW5pdAkAsAICCQEFdmFsdWUBBQJjcgAECQCUCgIFA25pbAUCY3MCYm8BIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQECY3QJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJheQEFAmN0AgACYm8BC2NvbnN0cnVjdG9yCAJjdQJjdgJidQJidgJidwJieAJjdwJjeAQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQkAzAgCCQELU3RyaW5nRW50cnkCCQEBSwAJAQJiRAcFAmN1BQJjdgUCYnUFAmJ2BQJidwUCYngFAmN3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmN4BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjIBAmN6BAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJjQQkApwgBCQDZBAEFAmN6AwkAAAIFAmNBBQJjQQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTgAFAmN6BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjMEAmJ6AmJBAmJCAmJDBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJiYwkAtQkCCQECYUsBCQEBSwAFAWsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUsACQECYnILCQCRAwIFAmJjAAEJAJEDAgUCYmMAAgkAkQMCBQJiYwADCQCRAwIFAmJjAAQJAJEDAgUCYmMABQkAkQMCBQJiYwAGCQCRAwIFAmJjAAcFAmJ6BQJiQQUCYkIFAmJDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjQCAmNCAmNDBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAUCY0IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVAACQC5CQIFAmNDBQFrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjUBAmNEBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY0QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwENY29uc3RydWN0b3JWNgICY0UCY0YEAmNHCQDMCAIJAQJicAEFAmJvCQDMCAIDCQECIT0CCQCmCAEFAmNFBQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmNHBQJjRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAFAmNFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAkAuQkCBQJjRgUBawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAQpzZXRNYW5hZ2VyAQJjSAQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCY0kJANkEAQUCY0gDCQAAAgUCY0kFAmNJCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCY0gFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEOY29uZmlybU1hbmFnZXIABAJjSgkBAmJrAAQCY0sDCQEJaXNEZWZpbmVkAQUCY0oGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNLBQJjSwQCY0wDCQAAAggFAmJvD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY0oGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNMBQJjTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQAJANgEAQkBBXZhbHVlAQUCY0oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVIABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BCXNldEFkbWlucwECY00EAmN5CQECYnABBQJibwMJAAACBQJjeQUCY3kJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMACQC5CQIFAmNNBQFrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BD2FjdGl2YXRlTmV3UG9vbAgCYWECYkgCYkkCY04CY08CY1ACYk8CY1EEAmN5CQECY2IBBQJibwMJAAACBQJjeQUCY3kDCQEJaXNEZWZpbmVkAQkAoggBCQECYXUBBQJhYQkAAgEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQJhYQIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmNSCQECYlUCBQJiSAABBAJjUwgFAmNSAl8xBAJjVAkBAmJVAgUCYkkDCAUCY1ICXzMAAgABBAJjVQgFAmNUAl8xBAJjVgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFhCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQJhYQQCY1cJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFNAAQCY1gJAQJjaAIFAmJIBQJiSQMFAmNYCQACAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCYkgCAS8FAmJJAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJjWQkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYWgCCQCkAwEFAmNTCQCkAwEFAmNVBAJjWgMJAAACBQJiSAIFV0FWRVMFAWoJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiSAhkZWNpbWFscwAAAAAFBERPV04EAmRhAwkAAAIFAmJJAgVXQVZFUwUBagkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJJCGRlY2ltYWxzAAAAAAUERE9XTgQCZGIJAMIIBQUCY04FAmNPAAEACAYEAmJHCQC4CAEFAmRiBAJkYwkA2AQBBQJiRwQCZGQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWECCGFjdGl2YXRlCQDMCAIFAmJICQDMCAIFAmJJBQNuaWwFA25pbAMJAAACBQJkZAUCZGQDCQECIT0CBQJkZAIHc3VjY2VzcwkAAgECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBAJjRAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFLAQkBAVQABAJkZQkA/AcEBQJjRAIOY3JlYXRlT3JVcGRhdGUJAMwIAgUCZGMJAMwIAgUCY04JAMwIAgcFA25pbAUDbmlsAwkAAAIFAmRlBQJkZQQCZGYJAPwHBAUCY0QCCGFkZExhYmVsCQDMCAIFAmRjCQDMCAIFAWcFA25pbAUDbmlsAwkAAAIFAmRmBQJkZgQCZGcJAPwHBAUCY0QCB3NldExvZ28JAMwIAgUCZGMJAMwIAgUCY1EFA25pbAUDbmlsAwkAAAIFAmRnBQJkZwQCZGgJAPwHBAUCY0QCDWFkZEFzc2V0c0xpbmsJAMwIAgUCYkgJAMwIAgUCYkkJAMwIAgUCZGMFA25pbAUDbmlsAwkAAAIFAmRoBQJkaAQCZGkJAPwHBAUCY0QCGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQJiSAUDbmlsBQNuaWwDCQAAAgUCZGkFAmRpCQCUCgIJAM4IAgkAzggCCAUCY1ICXzIIBQJjVAJfMgkAzAgCBQJkYgkAzAgCCQEEQnVybgIFAmJHAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFoAgkApAMBBQJjUwkApAMBBQJjVQkBAmJFCwUCYWEJAKQDAQUBbQUCZGMFAmJIBQJiSQUCY1oFAmRhBQJjUwUCY1UFAWoFAmJPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbwEFAmRjCQECYlACBQJjUwUCY1UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFxAgkApAMBBQJjUwkApAMBBQJjVQkArAICAgQlc19fBQJkYwkAzAgCCQELU3RyaW5nRW50cnkCCQECYXUBBQJhYQkBAmJQAgUCY1MFAmNVCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdwIFAmNTBQJjVQUCYWEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF5AQUCZGMFAmFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJheAEFAmFhBQJkYwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVoBBQJhYQUCY1AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhdAEFAmFhBQFoBQNuaWwFAmRjCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAQptYW5hZ2VQb29sAgJhYQJkagQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCZGsJAQJiUwEFAmFhBAJiRgkAkQMCBQJkawUBdQQCZGMJAJEDAgUCZGsFAXYEAmJICQCRAwIFAmRrBQF3BAJiSQkAkQMCBQJkawUBeAQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBeQQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBegQCY1MJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQQQCY1UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQgQCZGwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQwQCYk8JAJEDAgUCZGsFAUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFoAgkApAMBBQJjUwkApAMBBQJjVQkBAmJFCwUCYWEJAKQDAQUCZGoFAmRjBQJiSAUCYkkFAmNaBQJkYQUCY1MFAmNVBQJkbAUCYk8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEEZW1pdAECZG0EAmRuCAUCYm8GY2FsbGVyBAJkbwgFAmJvDG9yaWdpbkNhbGxlcgQCZHAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYXgBCQClCAEFAmRuAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgQCZHEJANkEAQUCZHAEAmNDCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVAABQFsBQFrBAJjQgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFPAAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFAmRtBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUCY0MJAKUIAQUCZG4JAJQKAgUDbmlsBQJjQgkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCZHEFAmRtBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYm8GY2FsbGVyBQJkbQUCZHEFA25pbAIHc3VjY2VzcwJibwEEYnVybgECZHIEAmRuCAUCYm8GY2FsbGVyBAJkbwgFAmJvDG9yaWdpbkNhbGxlcgQCZHMJAQV2YWx1ZQEJAJEDAggFAmJvCHBheW1lbnRzAAAEAmR0CQEFdmFsdWUBCAUCZHMGYW1vdW50BAJkdQkA2AQBCQEFdmFsdWUBCAUCZHMHYXNzZXRJZAQCZHYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYXgBCQClCAEFAmRuAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQIhPQIFAmR1BQJkdgkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgMJAQIhPQIFAmRyBQJkdAkAAgECFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAmRxCQDZBAEFAmR2CQCUCgIJAMwIAgkBBEJ1cm4CBQJkcQUCZHIFA25pbAIHc3VjY2VzcwJibwEMbW9kaWZ5V2VpZ2h0AgJiRwJkdwQCY3kDCQAAAgkA2AQBCAgFAmJvBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBVQACAAYJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCYXYJAQJhSwEJAQJheQEFAmJHBAJkeAkBAVoBBQJhdgQCZHkJAQFaAQUBZgQCZHoJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZHkAAAQCY1AJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZHgAAAQCZEEFAmR3BAJiYwkAtQkCCQECYUsBCQEBSwAFAWsEAmN1CQECYmUBBQJiYwQCZEIJAPwHBAUCY3UCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmJHCQDMCAIFAmF2BQNuaWwFA25pbAMJAAACBQJkQgUCZEIEAmRDAwkAAAIFAmR6AAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHkAAAUDbmlsBAJkRAkBAmFiAgUCYXYAAAQCZEUJAJ8IAQUCZEQEAmRGAwkAAAIFAmRFBQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUCZEQFA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmR4BQJkQQUDbmlsBQJkQwUCZEYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDW1vZGlmeVdlaWdodHMEAmRHAmRIAmRJAmRKBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJkSwkAaQIJAGgCAAUFAWUAZAQCZEwJAGkCCQBoAgAFBQFlAGQEAmRNCQBpAgkAaAIABQUBZQBkBAJiYwkAtQkCCQECYUsBCQEBSwAFAWsEAmROCQECYmUBBQJiYwQCZE8JAQJiZgEFAmJjBAJkUAkBAVoBBQJkRwQCZFEJAQFaAQUCZEgEAmRSCQEBWgEFAmRJBAJkUwkBAVoBBQJkSgQCZFQJAQJhTgEFAmRQBAJkVQkBAmFOAQUCZFEEAmRWCQBlAgUCZFQFAmRNBAJkVwkAZQIFAmRVBQJkTQMJAGcCAAAFAmRWCQACAQkArAICAhZpbnZhbGlkIGJ0Y1dlaWdodE5ldzogCQCkAwEFAmRWAwkAZwIAAAUCZFcJAAIBCQCsAgICFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAKQDAQUCZFcEAmRYCQECYUsBCQECYXgBBQJkRwQCZFkJAQJhSwEJAQJheAEFAmRIBAJkWgkBAmFLAQkBAmF4AQUCZEkEAmVhCQECYUsBCQECYXgBBQJkSgQCZWIJAPwHBAUCZE4CDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRYCQDMCAIFAmRHBQNuaWwFA25pbAMJAAACBQJlYgUCZWIEAmVjCQD8BwQFAmROAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkWQkAzAgCBQJkSAUDbmlsBQNuaWwDCQAAAgUCZWMFAmVjBAJlZAkA/AcEBQJkTgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFoJAMwIAgUCZEkFA25pbAUDbmlsAwkAAAIFAmVkBQJlZAQCZWUJAPwHBAUCZE4CDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVhCQDMCAIFAmRKBQNuaWwFA25pbAMJAAACBQJlZQUCZWUJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRQBQJkVgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFEFAmRXCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkUgUCZEsJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRTBQJkTAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEcAAAUCZFQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRIAAAFAmRVCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkSQAABQJkSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEoAAAUCZEwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAgJhQQJhQgQCZWYEAmJoCQCgCAEJAQJhegIFAmFBBQJhQgMJAAECBQJiaAIHQm9vbGVhbgQCZWcFAmJoBQJlZwcJAJQKAgUDbmlsBQJlZgJibwEWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmN5CQECY2IBBQJibwMJAAACBQJjeQUCY3kJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAmF6AgUCYUEFAmFCBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvARlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsAgJhQQJhQgQCY3kDCQECYm4BBQJibwYJAQJjYgEFAmJvAwkAAAIFAmN5BQJjeQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhegIFAmFBBQJhQgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvARJvblZlcmlmaWNhdGlvbkxvc3MBAmVoBAJjeQMJAAACCQDYBAEICAUCYm8GY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFUAAIABgkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJjRgkBAmJnAAQCZWkDCQBmAgkAkAMBBQJjRgAABgkAAgECFGludmFsaWQgcHJpY2UgYXNzZXRzAwkAAAIFAmVpBQJlaQoBAmVqAgJlawJlbAQCZW0JAPwHBAUEdGhpcwIZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQJlaAkAzAgCBQJlbAUDbmlsBQNuaWwDCQAAAgUCZW0FAmVtBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJlbgoAAmVvBQJjRgoAAmVwCQCQAwEFAmVvCgACZXEFBHVuaXQKAQJlcgICZXMCZXQDCQBnAgUCZXQFAmVwBQJlcwkBAmVqAgUCZXMJAJEDAgUCZW8FAmV0CgECZXUCAmVzAmV0AwkAZwIFAmV0BQJlcAUCZXMJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAyCQECZXUCCQECZXICCQECZXICBQJlcQAAAAEAAgMJAAACBQJlbgUCZW4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAShpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZAQJhYQQCZGsJAQJiUwEFAmFhBAJhbAkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQgQCZXYJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFrAQUCYWwHBAJldwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYW4ABwkAlAoCBQNuaWwDBQJldwYFAmV2AmJvARBnZXRJbkZlZVJFQURPTkxZAQJhYQQCZXgJAQJjZQMJAQJhQwEFAmFhCQECYUQAAAAJAJQKAgUDbmlsBQJleAJibwERZ2V0T3V0RmVlUkVBRE9OTFkBAmFhBAJleAkBAmNlAwkBAmFFAQUCYWEJAQJhRgAJAGsDAAoFAWIAkE4JAJQKAgUDbmlsBQJleAJibwEQcG9vbEluZm9SRUFET05MWQICZXkCZXoEAmVBCQCaCAIFBHRoaXMJAQJhZgEFAmV5BAJlQgkAmggCBQR0aGlzCQECYWYBBQJlegQCZUMJAJ0IAgUEdGhpcwkBAmF3AgkBBXZhbHVlAQUCZUEJAQV2YWx1ZQEFAmVCBAJlRAkAnQgCBQR0aGlzCQECYXgBCQEFdmFsdWUBBQJlQwQCY1gDAwkBCWlzRGVmaW5lZAEFAmVBCQEJaXNEZWZpbmVkAQUCZUIHCQEJaXNEZWZpbmVkAQUCZUMHBAJlRQMFAmNYCQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmVDCQECYU8BCQEFdmFsdWUBBQJlRAUEdW5pdAkAlAoCBQNuaWwFAmVFAmJvARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFhBAJiVAkAtQkCCQECYUsBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlQAAQQCYWoJAJEDAgUCYlQAAgQCY2sJALUJAgkBAmFLAQkBAmFoAgUCYWkFAmFqBQFrCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNrBQF1AmJvARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFhBAJiVAkAtQkCCQECYUsBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlQAAQQCYWoJAJEDAgUCYlQAAgQCY2sJALUJAgkBAmFLAQkBAmFoAgUCYWkFAmFqBQFrCQCUCgIFA25pbAUCY2sCYm8BGGdldFBvb2xDb25maWdCeUxwQXNzZXRJZAECZGMEAmJUCQC1CQIJAQJhSwEJAQJhbwEFAmRjBQFrBAJhaQkAkQMCBQJiVAABBAJhagkAkQMCBQJiVAACBAJjawkAtQkCCQECYUsBCQECYWgCBQJhaQUCYWoFAWsJAJQKAgUDbmlsBQJjawJibwEScG9vbEV4aXN0c1JFQURPTkxZAgJhQQJhQgkAlAoCBQNuaWwJAQJjaAIFAmFBBQJhQgJibwEbc2tpcE9yZGVyVmFsaWRhdGlvblJFQURPTkxZAQJhYQkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFHAQUCYWEHAmJvARpnZXRDaGFuZ2VBbXBDb25maWdSRUFET05MWQECYWEEAmVGCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYUgBBQJhYQQCZUcJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhSQEFAmFhBAJlSAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFKAQUCYWEJAJQKAgUDbmlsCQDMCAIFAmVGCQDMCAIFAmVHCQDMCAIFAmVIBQNuaWwBAmVJAQJlSgAEAmVLBAJiaAkBAmJqAAMJAAECBQJiaAIKQnl0ZVZlY3RvcgQCYnEFAmJoBQJicQMJAAECBQJiaAIEVW5pdAgFAmVJD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJlSQlib2R5Qnl0ZXMJAJEDAggFAmVJBnByb29mcwAABQJlSzKKrNc=", "height": 2501162, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 688tfSDQMrf7MWxvrsT6N8k4PUVPsV1TtyBW6L7ediJa Next: 8BXfsqshR8cnAwrvyPVbE163XTg9DjYf41KXRwyYYQyb Diff:
Old | New | Differences | |
---|---|---|---|
184 | 184 | func aF () = "%s__outFeeDefault" | |
185 | 185 | ||
186 | 186 | ||
187 | - | func aG ( | |
187 | + | func aG (aa) = ("%s%s__skipOrderValidation__" + aa) | |
188 | 188 | ||
189 | 189 | ||
190 | - | func | |
190 | + | func aH (aa) = ("%s%s__changeAmpDelay__" + aa) | |
191 | 191 | ||
192 | 192 | ||
193 | - | func | |
193 | + | func aI (aa) = ("%s%s__changeAmpDelta__" + aa) | |
194 | 194 | ||
195 | 195 | ||
196 | - | func aK (aL) = if ((aL == i)) | |
197 | - | then unit | |
198 | - | else fromBase58String(aL) | |
196 | + | func aJ (aa) = ("%s%s__changeAmpTarget__" + aa) | |
199 | 197 | ||
200 | 198 | ||
201 | - | let aM = 1 | |
202 | - | ||
203 | - | let aN = 2 | |
204 | - | ||
205 | - | let aO = 3 | |
206 | - | ||
207 | - | let aP = 4 | |
208 | - | ||
209 | - | let aQ = 5 | |
210 | - | ||
211 | - | let aR = 6 | |
212 | - | ||
213 | - | let aS = 7 | |
214 | - | ||
215 | - | let aT = 8 | |
216 | - | ||
217 | - | let aU = 9 | |
218 | - | ||
219 | - | let aV = 10 | |
220 | - | ||
221 | - | let aW = 11 | |
222 | - | ||
223 | - | func aX (aY) = addressFromStringValue(aY[aN]) | |
199 | + | func aK (aL) = valueOrErrorMessage(getString(this, aL), ("No data for this.key=" + aL)) | |
224 | 200 | ||
225 | 201 | ||
226 | - | func | |
202 | + | func aM (aL) = valueOrErrorMessage(getBoolean(this, aL), ("No data for this.key=" + aL)) | |
227 | 203 | ||
228 | 204 | ||
229 | - | func | |
205 | + | func aN (aL) = valueOrErrorMessage(getInteger(this, aL), ("No data for this.key=" + aL)) | |
230 | 206 | ||
231 | 207 | ||
232 | - | func bb (aY) = addressFromStringValue(aY[aV]) | |
208 | + | func aO (aP) = if ((aP == i)) | |
209 | + | then unit | |
210 | + | else fromBase58String(aP) | |
233 | 211 | ||
234 | 212 | ||
235 | - | func bc () = { | |
236 | - | let bd = getString(V()) | |
237 | - | if ($isInstanceOf(bd, "String")) | |
213 | + | let aQ = 1 | |
214 | + | ||
215 | + | let aR = 2 | |
216 | + | ||
217 | + | let aS = 3 | |
218 | + | ||
219 | + | let aT = 4 | |
220 | + | ||
221 | + | let aU = 5 | |
222 | + | ||
223 | + | let aV = 6 | |
224 | + | ||
225 | + | let aW = 7 | |
226 | + | ||
227 | + | let aX = 8 | |
228 | + | ||
229 | + | let aY = 9 | |
230 | + | ||
231 | + | let aZ = 10 | |
232 | + | ||
233 | + | let ba = 11 | |
234 | + | ||
235 | + | func bb (bc) = addressFromStringValue(bc[aR]) | |
236 | + | ||
237 | + | ||
238 | + | func bd (bc) = addressFromStringValue(bc[aU]) | |
239 | + | ||
240 | + | ||
241 | + | func be (bc) = addressFromStringValue(bc[aQ]) | |
242 | + | ||
243 | + | ||
244 | + | func bf (bc) = addressFromStringValue(bc[aZ]) | |
245 | + | ||
246 | + | ||
247 | + | func bg () = { | |
248 | + | let bh = getString(V()) | |
249 | + | if ($isInstanceOf(bh, "String")) | |
238 | 250 | then { | |
239 | - | let | |
240 | - | if ((size( | |
251 | + | let bi = bh | |
252 | + | if ((size(bi) == 0)) | |
241 | 253 | then nil | |
242 | - | else split( | |
254 | + | else split(bi, k) | |
243 | 255 | } | |
244 | 256 | else nil | |
245 | 257 | } | |
246 | 258 | ||
247 | 259 | ||
248 | - | func | |
249 | - | let | |
250 | - | if ($isInstanceOf( | |
260 | + | func bj () = { | |
261 | + | let bh = getString(Q()) | |
262 | + | if ($isInstanceOf(bh, "String")) | |
251 | 263 | then { | |
252 | - | let | |
253 | - | fromBase58String( | |
264 | + | let bi = bh | |
265 | + | fromBase58String(bi) | |
254 | 266 | } | |
255 | - | else if ($isInstanceOf( | |
267 | + | else if ($isInstanceOf(bh, "Unit")) | |
256 | 268 | then unit | |
257 | 269 | else throw("Match error") | |
258 | 270 | } | |
259 | 271 | ||
260 | 272 | ||
261 | - | func | |
262 | - | let | |
263 | - | if ($isInstanceOf( | |
273 | + | func bk () = { | |
274 | + | let bh = getString(R()) | |
275 | + | if ($isInstanceOf(bh, "String")) | |
264 | 276 | then { | |
265 | - | let | |
266 | - | fromBase58String( | |
277 | + | let bi = bh | |
278 | + | fromBase58String(bi) | |
267 | 279 | } | |
268 | - | else if ($isInstanceOf( | |
280 | + | else if ($isInstanceOf(bh, "Unit")) | |
269 | 281 | then unit | |
270 | 282 | else throw("Match error") | |
271 | 283 | } | |
272 | 284 | ||
273 | 285 | ||
274 | - | let | |
286 | + | let bl = throw("Permission denied") | |
275 | 287 | ||
276 | - | let | |
288 | + | let bm = throw("Test error here") | |
277 | 289 | ||
278 | - | func | |
290 | + | func bn (bo) = if ((bo.caller == this)) | |
279 | 291 | then true | |
280 | - | else | |
292 | + | else bl | |
281 | 293 | ||
282 | 294 | ||
283 | - | func | |
284 | - | let | |
285 | - | if ($isInstanceOf( | |
295 | + | func bp (bo) = { | |
296 | + | let bh = bj() | |
297 | + | if ($isInstanceOf(bh, "ByteVector")) | |
286 | 298 | then { | |
287 | - | let | |
288 | - | if (( | |
299 | + | let bq = bh | |
300 | + | if ((bo.callerPublicKey == bq)) | |
289 | 301 | then true | |
290 | - | else | |
302 | + | else bl | |
291 | 303 | } | |
292 | - | else if ($isInstanceOf( | |
293 | - | then | |
304 | + | else if ($isInstanceOf(bh, "Unit")) | |
305 | + | then bn(bo) | |
294 | 306 | else throw("Match error") | |
295 | 307 | } | |
296 | 308 | ||
297 | 309 | ||
298 | - | func | |
310 | + | func br (bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by, bz, bA, bB, bC], k) | |
299 | 311 | ||
300 | 312 | ||
301 | - | func | |
313 | + | func bD (bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by], k) | |
302 | 314 | ||
303 | 315 | ||
304 | - | func | |
316 | + | func bE (aa,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bF, bG, bH, bI, toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), bO], k) | |
305 | 317 | ||
306 | 318 | ||
307 | - | func | |
319 | + | func bP (bQ,bR) = makeString(["%d%d", toString(bQ), toString(bR)], k) | |
308 | 320 | ||
309 | 321 | ||
310 | - | func | |
311 | - | let | |
312 | - | let ai = | |
313 | - | let aj = | |
314 | - | split( | |
322 | + | func bS (aa) = { | |
323 | + | let bT = split(aK(au(aa)), k) | |
324 | + | let ai = bT[1] | |
325 | + | let aj = bT[2] | |
326 | + | split(aK(ah(ai, aj)), k) | |
315 | 327 | } | |
316 | 328 | ||
317 | 329 | ||
318 | - | func | |
319 | - | let | |
320 | - | let | |
321 | - | let | |
330 | + | func bU (bV,bW) = { | |
331 | + | let bX = valueOrElse(getInteger(this, af(bV)), 0) | |
332 | + | let bY = valueOrElse(getInteger(this, Y()), 0) | |
333 | + | let bZ = if ((bX == 0)) | |
322 | 334 | then { | |
323 | - | let | |
324 | - | $Tuple3( | |
335 | + | let ca = (bY + bW) | |
336 | + | $Tuple3(ca, [IntegerEntry(Y(), ca), IntegerEntry(af(bV), ca), StringEntry(ad(ca), bV)], true) | |
325 | 337 | } | |
326 | - | else $Tuple3( | |
327 | - | | |
338 | + | else $Tuple3(bX, nil, false) | |
339 | + | bZ | |
328 | 340 | } | |
329 | 341 | ||
330 | 342 | ||
331 | - | func | |
332 | - | let | |
333 | - | if (containsElement( | |
343 | + | func cb (bo) = { | |
344 | + | let cc = split(valueOrElse(getString(S()), l), k) | |
345 | + | if (containsElement(cc, toBase58String(bo.callerPublicKey))) | |
334 | 346 | then true | |
335 | 347 | else { | |
336 | - | let | |
337 | - | if (( | |
348 | + | let cd = bp(bo) | |
349 | + | if ((cd == cd)) | |
338 | 350 | then true | |
339 | 351 | else throw("Strict value is not equal to itself.") | |
340 | 352 | } | |
341 | 353 | } | |
342 | 354 | ||
343 | 355 | ||
344 | - | func | |
356 | + | func ce (aL,cf,cg) = valueOrElse(getInteger(this, aL), valueOrElse(getInteger(this, cf), cg)) | |
345 | 357 | ||
346 | 358 | ||
347 | - | func | |
359 | + | func ch (aA,aB) = { | |
348 | 360 | let ai = getInteger(af(aA)) | |
349 | 361 | let aj = getInteger(af(aB)) | |
350 | 362 | if (if ((ai == unit)) | |
352 | 364 | else (aj == unit)) | |
353 | 365 | then false | |
354 | 366 | else { | |
355 | - | let | |
356 | - | let | |
357 | - | let | |
358 | - | let | |
359 | - | let | |
367 | + | let ci = toString(value(ai)) | |
368 | + | let cj = toString(value(aj)) | |
369 | + | let ck = getString(ah(ci, cj)) | |
370 | + | let cl = getString(ah(cj, ci)) | |
371 | + | let cm = if ((ck != unit)) | |
360 | 372 | then true | |
361 | - | else ( | |
362 | - | | |
373 | + | else (cl != unit) | |
374 | + | cm | |
363 | 375 | } | |
364 | 376 | } | |
365 | 377 | ||
366 | 378 | ||
367 | - | @Callable( | |
368 | - | func getSwapContractREADONLY () = $Tuple2(nil, | |
379 | + | @Callable(bo) | |
380 | + | func getSwapContractREADONLY () = $Tuple2(nil, aK(J())) | |
369 | 381 | ||
370 | 382 | ||
371 | 383 | ||
372 | - | @Callable( | |
373 | - | func getLpAssetFromPoolAssetsREADONLY ( | |
374 | - | then ( | |
384 | + | @Callable(bo) | |
385 | + | func getLpAssetFromPoolAssetsREADONLY (cn,co) = if (if ((cn == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS")) | |
386 | + | then (co == "WAVES") | |
375 | 387 | else false) | |
376 | 388 | then $Tuple2(nil, unit) | |
377 | 389 | else { | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
390 | + | let cp = value(getInteger(this, af(cn))) | |
391 | + | let cq = value(getInteger(this, af(co))) | |
392 | + | let cr = getString(this, aq(toString(cp), toString(cq))) | |
393 | + | let cs = if ((cr == unit)) | |
382 | 394 | then unit | |
383 | - | else drop(value( | |
384 | - | $Tuple2(nil, | |
395 | + | else drop(value(cr), 4) | |
396 | + | $Tuple2(nil, cs) | |
385 | 397 | } | |
386 | 398 | ||
387 | 399 | ||
388 | 400 | ||
389 | - | @Callable( | |
390 | - | func getPoolAddressFromLpAssetREADONLY ( | |
401 | + | @Callable(bo) | |
402 | + | func getPoolAddressFromLpAssetREADONLY (ct) = $Tuple2(nil, valueOrElse(getString(this, ay(ct)), "")) | |
391 | 403 | ||
392 | 404 | ||
393 | 405 | ||
394 | - | @Callable( | |
395 | - | func constructor ( | |
396 | - | let | |
397 | - | if (( | |
398 | - | then [StringEntry(K(), | |
406 | + | @Callable(bo) | |
407 | + | func constructor (cu,cv,bu,bv,bw,bx,cw,cx) = { | |
408 | + | let cy = bp(bo) | |
409 | + | if ((cy == cy)) | |
410 | + | then [StringEntry(K(), bD(cu, cv, bu, bv, bw, bx, cw)), IntegerEntry(W(), cx)] | |
399 | 411 | else throw("Strict value is not equal to itself.") | |
400 | 412 | } | |
401 | 413 | ||
402 | 414 | ||
403 | 415 | ||
404 | - | @Callable( | |
405 | - | func constructorV2 ( | |
406 | - | let | |
407 | - | if (( | |
416 | + | @Callable(bo) | |
417 | + | func constructorV2 (cz) = { | |
418 | + | let cy = bp(bo) | |
419 | + | if ((cy == cy)) | |
408 | 420 | then { | |
409 | - | let | |
410 | - | if (( | |
411 | - | then [StringEntry(N(), | |
421 | + | let cA = addressFromPublicKey(fromBase58String(cz)) | |
422 | + | if ((cA == cA)) | |
423 | + | then [StringEntry(N(), cz)] | |
412 | 424 | else throw("Strict value is not equal to itself.") | |
413 | 425 | } | |
414 | 426 | else throw("Strict value is not equal to itself.") | |
416 | 428 | ||
417 | 429 | ||
418 | 430 | ||
419 | - | @Callable( | |
420 | - | func constructorV3 ( | |
421 | - | let | |
422 | - | if (( | |
431 | + | @Callable(bo) | |
432 | + | func constructorV3 (bz,bA,bB,bC) = { | |
433 | + | let cy = bp(bo) | |
434 | + | if ((cy == cy)) | |
423 | 435 | then { | |
424 | - | let | |
425 | - | [StringEntry(K(), | |
436 | + | let bc = split(aK(K()), k) | |
437 | + | [StringEntry(K(), br(bc[1], bc[2], bc[3], bc[4], bc[5], bc[6], bc[7], bz, bA, bB, bC))] | |
426 | 438 | } | |
427 | 439 | else throw("Strict value is not equal to itself.") | |
428 | 440 | } | |
429 | 441 | ||
430 | 442 | ||
431 | 443 | ||
432 | - | @Callable( | |
433 | - | func constructorV4 ( | |
434 | - | let | |
435 | - | if (( | |
436 | - | then [StringEntry(O(), | |
444 | + | @Callable(bo) | |
445 | + | func constructorV4 (cB,cC) = { | |
446 | + | let cy = bp(bo) | |
447 | + | if ((cy == cy)) | |
448 | + | then [StringEntry(O(), cB), StringEntry(P(), makeString(cC, k))] | |
437 | 449 | else throw("Strict value is not equal to itself.") | |
438 | 450 | } | |
439 | 451 | ||
440 | 452 | ||
441 | 453 | ||
442 | - | @Callable( | |
443 | - | func constructorV5 ( | |
444 | - | let | |
445 | - | if (( | |
446 | - | then [StringEntry(T(), | |
454 | + | @Callable(bo) | |
455 | + | func constructorV5 (cD) = { | |
456 | + | let cy = bp(bo) | |
457 | + | if ((cy == cy)) | |
458 | + | then [StringEntry(T(), cD)] | |
447 | 459 | else throw("Strict value is not equal to itself.") | |
448 | 460 | } | |
449 | 461 | ||
450 | 462 | ||
451 | 463 | ||
452 | - | @Callable( | |
453 | - | func constructorV6 ( | |
454 | - | let | |
464 | + | @Callable(bo) | |
465 | + | func constructorV6 (cE,cF) = { | |
466 | + | let cG = [bp(bo), if ((addressFromString(cE) != unit)) | |
455 | 467 | then true | |
456 | 468 | else "invalid voting emission contract address"] | |
457 | - | if (( | |
458 | - | then [StringEntry(U(), | |
469 | + | if ((cG == cG)) | |
470 | + | then [StringEntry(U(), cE), StringEntry(V(), makeString(cF, k))] | |
459 | 471 | else throw("Strict value is not equal to itself.") | |
460 | 472 | } | |
461 | 473 | ||
462 | 474 | ||
463 | 475 | ||
464 | - | @Callable( | |
465 | - | func setManager ( | |
466 | - | let | |
467 | - | if (( | |
476 | + | @Callable(bo) | |
477 | + | func setManager (cH) = { | |
478 | + | let cy = bp(bo) | |
479 | + | if ((cy == cy)) | |
468 | 480 | then { | |
469 | - | let | |
470 | - | if (( | |
471 | - | then [StringEntry(R(), | |
481 | + | let cI = fromBase58String(cH) | |
482 | + | if ((cI == cI)) | |
483 | + | then [StringEntry(R(), cH)] | |
472 | 484 | else throw("Strict value is not equal to itself.") | |
473 | 485 | } | |
474 | 486 | else throw("Strict value is not equal to itself.") | |
476 | 488 | ||
477 | 489 | ||
478 | 490 | ||
479 | - | @Callable( | |
491 | + | @Callable(bo) | |
480 | 492 | func confirmManager () = { | |
481 | - | let | |
482 | - | let | |
493 | + | let cJ = bk() | |
494 | + | let cK = if (isDefined(cJ)) | |
483 | 495 | then true | |
484 | 496 | else throw("No pending manager") | |
485 | - | if (( | |
497 | + | if ((cK == cK)) | |
486 | 498 | then { | |
487 | - | let | |
499 | + | let cL = if ((bo.callerPublicKey == value(cJ))) | |
488 | 500 | then true | |
489 | 501 | else throw("You are not pending manager") | |
490 | - | if (( | |
491 | - | then [StringEntry(Q(), toBase58String(value( | |
502 | + | if ((cL == cL)) | |
503 | + | then [StringEntry(Q(), toBase58String(value(cJ))), DeleteEntry(R())] | |
492 | 504 | else throw("Strict value is not equal to itself.") | |
493 | 505 | } | |
494 | 506 | else throw("Strict value is not equal to itself.") | |
496 | 508 | ||
497 | 509 | ||
498 | 510 | ||
499 | - | @Callable( | |
500 | - | func setAdmins ( | |
501 | - | let | |
502 | - | if (( | |
503 | - | then [StringEntry(S(), makeString( | |
511 | + | @Callable(bo) | |
512 | + | func setAdmins (cM) = { | |
513 | + | let cy = bp(bo) | |
514 | + | if ((cy == cy)) | |
515 | + | then [StringEntry(S(), makeString(cM, k))] | |
504 | 516 | else throw("Strict value is not equal to itself.") | |
505 | 517 | } | |
506 | 518 | ||
507 | 519 | ||
508 | 520 | ||
509 | - | @Callable( | |
510 | - | func activateNewPool (aa, | |
511 | - | let | |
512 | - | if (( | |
521 | + | @Callable(bo) | |
522 | + | func activateNewPool (aa,bH,bI,cN,cO,cP,bO,cQ) = { | |
523 | + | let cy = cb(bo) | |
524 | + | if ((cy == cy)) | |
513 | 525 | then if (isDefined(getString(au(aa)))) | |
514 | 526 | then throw((("Pool address " + aa) + " already registered.")) | |
515 | 527 | else { | |
516 | - | let | |
517 | - | let | |
518 | - | let | |
528 | + | let cR = bU(bH, 1) | |
529 | + | let cS = cR._1 | |
530 | + | let cT = bU(bI, if (cR._3) | |
519 | 531 | then 2 | |
520 | 532 | else 1) | |
521 | - | let | |
522 | - | let | |
523 | - | let | |
524 | - | let | |
525 | - | if ( | |
526 | - | then throw((((("Pool " + | |
533 | + | let cU = cT._1 | |
534 | + | let cV = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa)) | |
535 | + | let cW = getBinaryValue(M()) | |
536 | + | let cX = ch(bH, bI) | |
537 | + | if (cX) | |
538 | + | then throw((((("Pool " + bH) + "/") + bI) + " has already been activated.")) | |
527 | 539 | else { | |
528 | - | let | |
529 | - | let | |
540 | + | let cY = value(getString(this, ah(toString(cS), toString(cU)))) | |
541 | + | let cZ = if ((bH == "WAVES")) | |
530 | 542 | then j | |
531 | - | else pow(10, 0, value(assetInfo(fromBase58String( | |
532 | - | let | |
543 | + | else pow(10, 0, value(assetInfo(fromBase58String(bH))).decimals, 0, 0, DOWN) | |
544 | + | let da = if ((bI == "WAVES")) | |
533 | 545 | then j | |
534 | - | else pow(10, 0, value(assetInfo(fromBase58String( | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
539 | - | if (( | |
540 | - | then if (( | |
546 | + | else pow(10, 0, value(assetInfo(fromBase58String(bI))).decimals, 0, 0, DOWN) | |
547 | + | let db = Issue(cN, cO, 1, 8, true) | |
548 | + | let bG = calculateAssetId(db) | |
549 | + | let dc = toBase58String(bG) | |
550 | + | let dd = invoke(addressFromStringValue(aa), "activate", [bH, bI], nil) | |
551 | + | if ((dd == dd)) | |
552 | + | then if ((dd != "success")) | |
541 | 553 | then throw("Pool initialisation error happened.") | |
542 | 554 | else { | |
543 | - | let | |
544 | - | let | |
545 | - | if (( | |
555 | + | let cD = addressFromStringValue(aK(T())) | |
556 | + | let de = invoke(cD, "createOrUpdate", [dc, cN, false], nil) | |
557 | + | if ((de == de)) | |
546 | 558 | then { | |
547 | - | let | |
548 | - | if (( | |
559 | + | let df = invoke(cD, "addLabel", [dc, g], nil) | |
560 | + | if ((df == df)) | |
549 | 561 | then { | |
550 | - | let | |
551 | - | if (( | |
562 | + | let dg = invoke(cD, "setLogo", [dc, cQ], nil) | |
563 | + | if ((dg == dg)) | |
552 | 564 | then { | |
553 | - | let | |
554 | - | if (( | |
565 | + | let dh = invoke(cD, "addAssetsLink", [bH, bI, dc], nil) | |
566 | + | if ((dh == dh)) | |
555 | 567 | then { | |
556 | - | let | |
557 | - | if (( | |
558 | - | then $Tuple2((( | |
568 | + | let di = invoke(cD, "increaseAssetPoolsNumber", [bH], nil) | |
569 | + | if ((di == di)) | |
570 | + | then $Tuple2(((cR._2 ++ cT._2) ++ [db, Burn(bG, 1), StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(m), dc, bH, bI, cZ, da, cS, cU, j, bO)), StringEntry(ao(dc), bP(cS, cU)), StringEntry(aq(toString(cS), toString(cU)), ("%s__" + dc)), StringEntry(au(aa), bP(cS, cU)), StringEntry(aw(cS, cU), aa), StringEntry(ay(dc), aa), StringEntry(ax(aa), dc), IntegerEntry(Z(aa), cP), IntegerEntry(at(aa), h)]), dc) | |
559 | 571 | else throw("Strict value is not equal to itself.") | |
560 | 572 | } | |
561 | 573 | else throw("Strict value is not equal to itself.") | |
574 | 586 | ||
575 | 587 | ||
576 | 588 | ||
577 | - | @Callable( | |
578 | - | func managePool (aa, | |
579 | - | let | |
580 | - | if (( | |
589 | + | @Callable(bo) | |
590 | + | func managePool (aa,dj) = { | |
591 | + | let cy = bp(bo) | |
592 | + | if ((cy == cy)) | |
581 | 593 | then { | |
582 | - | let | |
583 | - | let | |
584 | - | let | |
585 | - | let | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | let | |
590 | - | let | |
591 | - | let | |
592 | - | let | |
593 | - | [StringEntry(ah(toString( | |
594 | + | let dk = bS(aa) | |
595 | + | let bF = dk[u] | |
596 | + | let dc = dk[v] | |
597 | + | let bH = dk[w] | |
598 | + | let bI = dk[x] | |
599 | + | let cZ = parseIntValue(dk[y]) | |
600 | + | let da = parseIntValue(dk[z]) | |
601 | + | let cS = parseIntValue(dk[A]) | |
602 | + | let cU = parseIntValue(dk[B]) | |
603 | + | let dl = parseIntValue(dk[C]) | |
604 | + | let bO = dk[D] | |
605 | + | [StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(dj), dc, bH, bI, cZ, da, cS, cU, dl, bO))] | |
594 | 606 | } | |
595 | 607 | else throw("Strict value is not equal to itself.") | |
596 | 608 | } | |
597 | 609 | ||
598 | 610 | ||
599 | 611 | ||
600 | - | @Callable( | |
601 | - | func emit ( | |
602 | - | let | |
603 | - | let | |
604 | - | let | |
605 | - | let | |
606 | - | let | |
607 | - | let | |
608 | - | if ((0 >= | |
612 | + | @Callable(bo) | |
613 | + | func emit (dm) = { | |
614 | + | let dn = bo.caller | |
615 | + | let do = bo.originCaller | |
616 | + | let dp = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.") | |
617 | + | let dq = fromBase58String(dp) | |
618 | + | let cC = split(valueOrElse(getString(P()), l), k) | |
619 | + | let cB = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists.")) | |
620 | + | if ((0 >= dm)) | |
609 | 621 | then nil | |
610 | - | else if (containsElement( | |
611 | - | then $Tuple2(nil, | |
612 | - | else $Tuple2([Reissue( | |
622 | + | else if (containsElement(cC, toString(dn))) | |
623 | + | then $Tuple2(nil, cB) | |
624 | + | else $Tuple2([Reissue(dq, dm, true), ScriptTransfer(bo.caller, dm, dq)], "success") | |
613 | 625 | } | |
614 | 626 | ||
615 | 627 | ||
616 | 628 | ||
617 | - | @Callable( | |
618 | - | func burn ( | |
619 | - | let | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | let | |
625 | - | if (( | |
629 | + | @Callable(bo) | |
630 | + | func burn (dr) = { | |
631 | + | let dn = bo.caller | |
632 | + | let do = bo.originCaller | |
633 | + | let ds = value(bo.payments[0]) | |
634 | + | let dt = value(ds.amount) | |
635 | + | let du = toBase58String(value(ds.assetId)) | |
636 | + | let dv = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.") | |
637 | + | if ((du != dv)) | |
626 | 638 | then throw("Invalid asset passed.") | |
627 | - | else if (( | |
639 | + | else if ((dr != dt)) | |
628 | 640 | then throw("Invalid amount passed.") | |
629 | 641 | else { | |
630 | - | let | |
631 | - | $Tuple2([Burn( | |
642 | + | let dq = fromBase58String(dv) | |
643 | + | $Tuple2([Burn(dq, dr)], "success") | |
632 | 644 | } | |
633 | 645 | } | |
634 | 646 | ||
635 | 647 | ||
636 | 648 | ||
637 | - | @Callable( | |
638 | - | func modifyWeight ( | |
639 | - | let | |
649 | + | @Callable(bo) | |
650 | + | func modifyWeight (bG,dw) = { | |
651 | + | let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, U()), ""))) | |
640 | 652 | then true | |
641 | - | else | |
642 | - | if (( | |
653 | + | else bp(bo) | |
654 | + | if ((cy == cy)) | |
643 | 655 | then { | |
644 | - | let av = | |
645 | - | let | |
646 | - | let | |
647 | - | let | |
648 | - | let | |
649 | - | let | |
650 | - | let | |
651 | - | let | |
652 | - | let | |
653 | - | if (( | |
656 | + | let av = aK(ay(bG)) | |
657 | + | let dx = Z(av) | |
658 | + | let dy = Z(f) | |
659 | + | let dz = valueOrElse(getInteger(dy), 0) | |
660 | + | let cP = valueOrElse(getInteger(dx), 0) | |
661 | + | let dA = dw | |
662 | + | let bc = split(aK(K()), k) | |
663 | + | let cu = be(bc) | |
664 | + | let dB = invoke(cu, "onModifyWeight", [bG, av], nil) | |
665 | + | if ((dB == dB)) | |
654 | 666 | then { | |
655 | - | let | |
667 | + | let dC = if ((dz == 0)) | |
656 | 668 | then nil | |
657 | - | else [IntegerEntry( | |
658 | - | let | |
659 | - | let | |
660 | - | let | |
669 | + | else [IntegerEntry(dy, 0)] | |
670 | + | let dD = ab(av, 0) | |
671 | + | let dE = getInteger(dD) | |
672 | + | let dF = if ((dE == unit)) | |
661 | 673 | then nil | |
662 | - | else [DeleteEntry( | |
663 | - | (([IntegerEntry( | |
674 | + | else [DeleteEntry(dD)] | |
675 | + | (([IntegerEntry(dx, dA)] ++ dC) ++ dF) | |
664 | 676 | } | |
665 | 677 | else throw("Strict value is not equal to itself.") | |
666 | 678 | } | |
669 | 681 | ||
670 | 682 | ||
671 | 683 | ||
672 | - | @Callable( | |
673 | - | func modifyWeights ( | |
674 | - | let | |
675 | - | if (( | |
684 | + | @Callable(bo) | |
685 | + | func modifyWeights (dG,dH,dI,dJ) = { | |
686 | + | let cy = bp(bo) | |
687 | + | if ((cy == cy)) | |
676 | 688 | then { | |
677 | - | let | |
678 | - | let | |
679 | - | let | |
680 | - | let | |
681 | - | let | |
682 | - | let | |
683 | - | let | |
684 | - | let | |
685 | - | let | |
686 | - | let | |
687 | - | let | |
688 | - | let | |
689 | - | let | |
690 | - | let | |
691 | - | if ((0 >= | |
692 | - | then throw(("invalid btcWeightNew: " + toString( | |
693 | - | else if ((0 >= | |
694 | - | then throw(("invalid ethWeightNew: " + toString( | |
689 | + | let dK = ((5 * e) / 100) | |
690 | + | let dL = ((5 * e) / 100) | |
691 | + | let dM = ((5 * e) / 100) | |
692 | + | let bc = split(aK(K()), k) | |
693 | + | let dN = be(bc) | |
694 | + | let dO = bf(bc) | |
695 | + | let dP = Z(dG) | |
696 | + | let dQ = Z(dH) | |
697 | + | let dR = Z(dI) | |
698 | + | let dS = Z(dJ) | |
699 | + | let dT = aN(dP) | |
700 | + | let dU = aN(dQ) | |
701 | + | let dV = (dT - dM) | |
702 | + | let dW = (dU - dM) | |
703 | + | if ((0 >= dV)) | |
704 | + | then throw(("invalid btcWeightNew: " + toString(dV))) | |
705 | + | else if ((0 >= dW)) | |
706 | + | then throw(("invalid ethWeightNew: " + toString(dW))) | |
695 | 707 | else { | |
696 | - | let | |
697 | - | let | |
698 | - | let | |
699 | - | let | |
700 | - | let | |
701 | - | if (( | |
708 | + | let dX = aK(ax(dG)) | |
709 | + | let dY = aK(ax(dH)) | |
710 | + | let dZ = aK(ax(dI)) | |
711 | + | let ea = aK(ax(dJ)) | |
712 | + | let eb = invoke(dN, "onModifyWeight", [dX, dG], nil) | |
713 | + | if ((eb == eb)) | |
702 | 714 | then { | |
703 | - | let | |
704 | - | if (( | |
715 | + | let ec = invoke(dN, "onModifyWeight", [dY, dH], nil) | |
716 | + | if ((ec == ec)) | |
705 | 717 | then { | |
706 | - | let | |
707 | - | if (( | |
718 | + | let ed = invoke(dN, "onModifyWeight", [dZ, dI], nil) | |
719 | + | if ((ed == ed)) | |
708 | 720 | then { | |
709 | - | let | |
710 | - | if (( | |
711 | - | then [IntegerEntry( | |
721 | + | let ee = invoke(dN, "onModifyWeight", [ea, dJ], nil) | |
722 | + | if ((ee == ee)) | |
723 | + | then [IntegerEntry(dP, dV), IntegerEntry(dQ, dW), IntegerEntry(dR, dK), IntegerEntry(dS, dL), IntegerEntry(ab(dG, 0), dT), IntegerEntry(ab(dH, 0), dU), IntegerEntry(ab(dI, 0), dK), IntegerEntry(ab(dJ, 0), dL)] | |
712 | 724 | else throw("Strict value is not equal to itself.") | |
713 | 725 | } | |
714 | 726 | else throw("Strict value is not equal to itself.") | |
723 | 735 | ||
724 | 736 | ||
725 | 737 | ||
726 | - | @Callable( | |
738 | + | @Callable(bo) | |
727 | 739 | func checkWxEmissionPoolLabel (aA,aB) = { | |
728 | - | let | |
729 | - | let | |
730 | - | if ($isInstanceOf( | |
740 | + | let ef = { | |
741 | + | let bh = getBoolean(az(aA, aB)) | |
742 | + | if ($isInstanceOf(bh, "Boolean")) | |
731 | 743 | then { | |
732 | - | let | |
733 | - | | |
744 | + | let eg = bh | |
745 | + | eg | |
734 | 746 | } | |
735 | 747 | else false | |
736 | 748 | } | |
737 | - | $Tuple2(nil, | |
749 | + | $Tuple2(nil, ef) | |
738 | 750 | } | |
739 | 751 | ||
740 | 752 | ||
741 | 753 | ||
742 | - | @Callable( | |
754 | + | @Callable(bo) | |
743 | 755 | func setWxEmissionPoolLabel (aA,aB) = { | |
744 | - | let | |
745 | - | if (( | |
756 | + | let cy = cb(bo) | |
757 | + | if ((cy == cy)) | |
746 | 758 | then $Tuple2([BooleanEntry(az(aA, aB), true)], unit) | |
747 | 759 | else throw("Strict value is not equal to itself.") | |
748 | 760 | } | |
749 | 761 | ||
750 | 762 | ||
751 | 763 | ||
752 | - | @Callable( | |
764 | + | @Callable(bo) | |
753 | 765 | func deleteWxEmissionPoolLabel (aA,aB) = { | |
754 | - | let | |
766 | + | let cy = if (bn(bo)) | |
755 | 767 | then true | |
756 | - | else | |
757 | - | if (( | |
768 | + | else cb(bo) | |
769 | + | if ((cy == cy)) | |
758 | 770 | then $Tuple2([DeleteEntry(az(aA, aB))], unit) | |
759 | 771 | else throw("Strict value is not equal to itself.") | |
760 | 772 | } | |
761 | 773 | ||
762 | 774 | ||
763 | 775 | ||
764 | - | @Callable( | |
765 | - | func onVerificationLoss ( | |
766 | - | let | |
776 | + | @Callable(bo) | |
777 | + | func onVerificationLoss (eh) = { | |
778 | + | let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, T()), ""))) | |
767 | 779 | then true | |
768 | - | else | |
769 | - | if (( | |
780 | + | else bp(bo) | |
781 | + | if ((cy == cy)) | |
770 | 782 | then { | |
771 | - | let | |
772 | - | let | |
783 | + | let cF = bg() | |
784 | + | let ei = if ((size(cF) > 0)) | |
773 | 785 | then true | |
774 | 786 | else throw("invalid price assets") | |
775 | - | if (( | |
787 | + | if ((ei == ei)) | |
776 | 788 | then { | |
777 | - | func | |
778 | - | let | |
779 | - | if (( | |
789 | + | func ej (ek,el) = { | |
790 | + | let em = invoke(this, "deleteWxEmissionPoolLabel", [eh, el], nil) | |
791 | + | if ((em == em)) | |
780 | 792 | then unit | |
781 | 793 | else throw("Strict value is not equal to itself.") | |
782 | 794 | } | |
783 | 795 | ||
784 | - | let | |
785 | - | let | |
786 | - | let | |
787 | - | let | |
788 | - | func | |
789 | - | then | |
790 | - | else | |
796 | + | let en = { | |
797 | + | let eo = cF | |
798 | + | let ep = size(eo) | |
799 | + | let eq = unit | |
800 | + | func er (es,et) = if ((et >= ep)) | |
801 | + | then es | |
802 | + | else ej(es, eo[et]) | |
791 | 803 | ||
792 | - | func | |
793 | - | then | |
804 | + | func eu (es,et) = if ((et >= ep)) | |
805 | + | then es | |
794 | 806 | else throw("List size exceeds 2") | |
795 | 807 | ||
796 | - | eq | |
808 | + | eu(er(er(eq, 0), 1), 2) | |
797 | 809 | } | |
798 | - | if (( | |
810 | + | if ((en == en)) | |
799 | 811 | then $Tuple2(nil, unit) | |
800 | 812 | else throw("Strict value is not equal to itself.") | |
801 | 813 | } | |
806 | 818 | ||
807 | 819 | ||
808 | 820 | ||
809 | - | @Callable( | |
821 | + | @Callable(bo) | |
810 | 822 | func isPoolOneTokenOperationsDisabledREADONLY (aa) = { | |
811 | - | let | |
812 | - | let al = $Tuple2(parseIntValue( | |
813 | - | let | |
814 | - | let | |
815 | - | $Tuple2(nil, if ( | |
823 | + | let dk = bS(aa) | |
824 | + | let al = $Tuple2(parseIntValue(dk[A]), parseIntValue(dk[B])) | |
825 | + | let ev = valueOrElse(getBoolean(ak(al)), false) | |
826 | + | let ew = valueOrElse(getBoolean(an()), false) | |
827 | + | $Tuple2(nil, if (ew) | |
816 | 828 | then true | |
817 | - | else | |
829 | + | else ev) | |
818 | 830 | } | |
819 | 831 | ||
820 | 832 | ||
821 | 833 | ||
822 | - | @Callable( | |
834 | + | @Callable(bo) | |
823 | 835 | func getInFeeREADONLY (aa) = { | |
824 | - | let | |
825 | - | $Tuple2(nil, | |
836 | + | let ex = ce(aC(aa), aD(), 0) | |
837 | + | $Tuple2(nil, ex) | |
826 | 838 | } | |
827 | 839 | ||
828 | 840 | ||
829 | 841 | ||
830 | - | @Callable( | |
842 | + | @Callable(bo) | |
831 | 843 | func getOutFeeREADONLY (aa) = { | |
832 | - | let | |
833 | - | $Tuple2(nil, | |
844 | + | let ex = ce(aE(aa), aF(), fraction(10, b, 10000)) | |
845 | + | $Tuple2(nil, ex) | |
834 | 846 | } | |
835 | 847 | ||
836 | 848 | ||
837 | 849 | ||
838 | - | @Callable( | |
839 | - | func poolInfoREADONLY ( | |
840 | - | let | |
841 | - | let | |
842 | - | let | |
843 | - | let | |
844 | - | let | |
845 | - | then isDefined( | |
850 | + | @Callable(bo) | |
851 | + | func poolInfoREADONLY (ey,ez) = { | |
852 | + | let eA = getInteger(this, af(ey)) | |
853 | + | let eB = getInteger(this, af(ez)) | |
854 | + | let eC = getString(this, aw(value(eA), value(eB))) | |
855 | + | let eD = getString(this, ax(value(eC))) | |
856 | + | let cX = if (if (isDefined(eA)) | |
857 | + | then isDefined(eB) | |
846 | 858 | else false) | |
847 | - | then isDefined( | |
859 | + | then isDefined(eC) | |
848 | 860 | else false | |
849 | - | let | |
850 | - | then $Tuple2(addressFromStringValue(value( | |
861 | + | let eE = if (cX) | |
862 | + | then $Tuple2(addressFromStringValue(value(eC)), aO(value(eD))) | |
851 | 863 | else unit | |
852 | - | $Tuple2(nil, | |
864 | + | $Tuple2(nil, eE) | |
853 | 865 | } | |
854 | 866 | ||
855 | 867 | ||
856 | 868 | ||
857 | - | @Callable( | |
869 | + | @Callable(bo) | |
858 | 870 | func getPoolStatusREADONLY (aa) = { | |
859 | - | let | |
860 | - | let ai = | |
861 | - | let aj = | |
862 | - | let | |
863 | - | $Tuple2(nil, parseIntValue( | |
871 | + | let bT = split(aK(au(aa)), k) | |
872 | + | let ai = bT[1] | |
873 | + | let aj = bT[2] | |
874 | + | let ck = split(aK(ah(ai, aj)), k) | |
875 | + | $Tuple2(nil, parseIntValue(ck[u])) | |
864 | 876 | } | |
865 | 877 | ||
866 | 878 | ||
867 | 879 | ||
868 | - | @Callable( | |
880 | + | @Callable(bo) | |
869 | 881 | func getPoolConfigREADONLY (aa) = { | |
870 | - | let | |
871 | - | let ai = | |
872 | - | let aj = | |
873 | - | let | |
874 | - | $Tuple2(nil, | |
882 | + | let bT = split(aK(au(aa)), k) | |
883 | + | let ai = bT[1] | |
884 | + | let aj = bT[2] | |
885 | + | let ck = split(aK(ah(ai, aj)), k) | |
886 | + | $Tuple2(nil, ck) | |
875 | 887 | } | |
876 | 888 | ||
877 | 889 | ||
878 | 890 | ||
879 | - | @Callable( | |
880 | - | func | |
881 | - | let | |
882 | - | let ai = | |
883 | - | let aj = | |
884 | - | let | |
885 | - | $Tuple2(nil, | |
891 | + | @Callable(bo) | |
892 | + | func getPoolConfigByLpAssetId (dc) = { | |
893 | + | let bT = split(aK(ao(dc)), k) | |
894 | + | let ai = bT[1] | |
895 | + | let aj = bT[2] | |
896 | + | let ck = split(aK(ah(ai, aj)), k) | |
897 | + | $Tuple2(nil, ck) | |
886 | 898 | } | |
887 | 899 | ||
888 | 900 | ||
889 | 901 | ||
890 | - | @Callable( | |
891 | - | func poolExistsREADONLY (aA,aB) = $Tuple2(nil, | |
902 | + | @Callable(bo) | |
903 | + | func poolExistsREADONLY (aA,aB) = $Tuple2(nil, ch(aA, aB)) | |
892 | 904 | ||
893 | 905 | ||
894 | - | @Verifier(eB) | |
895 | - | func eC () = { | |
896 | - | let eD = { | |
897 | - | let bd = bf() | |
898 | - | if ($isInstanceOf(bd, "ByteVector")) | |
906 | + | ||
907 | + | @Callable(bo) | |
908 | + | func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false)) | |
909 | + | ||
910 | + | ||
911 | + | ||
912 | + | @Callable(bo) | |
913 | + | func getChangeAmpConfigREADONLY (aa) = { | |
914 | + | let eF = getIntegerValue(aH(aa)) | |
915 | + | let eG = getIntegerValue(aI(aa)) | |
916 | + | let eH = getIntegerValue(aJ(aa)) | |
917 | + | $Tuple2(nil, [eF, eG, eH]) | |
918 | + | } | |
919 | + | ||
920 | + | ||
921 | + | @Verifier(eI) | |
922 | + | func eJ () = { | |
923 | + | let eK = { | |
924 | + | let bh = bj() | |
925 | + | if ($isInstanceOf(bh, "ByteVector")) | |
899 | 926 | then { | |
900 | - | let | |
901 | - | | |
927 | + | let bq = bh | |
928 | + | bq | |
902 | 929 | } | |
903 | - | else if ($isInstanceOf( | |
904 | - | then | |
930 | + | else if ($isInstanceOf(bh, "Unit")) | |
931 | + | then eI.senderPublicKey | |
905 | 932 | else throw("Match error") | |
906 | 933 | } | |
907 | - | sigVerify( | |
934 | + | sigVerify(eI.bodyBytes, eI.proofs[0], eK) | |
908 | 935 | } | |
909 | 936 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 8 | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | let c = 18 | |
9 | 9 | ||
10 | 10 | let d = toBigInt(1000000000000000000) | |
11 | 11 | ||
12 | 12 | let e = b | |
13 | 13 | ||
14 | 14 | let f = "GWXvirtualPOOL" | |
15 | 15 | ||
16 | 16 | let g = "POOLS_LP" | |
17 | 17 | ||
18 | 18 | let h = 2000000 | |
19 | 19 | ||
20 | 20 | let i = "WAVES" | |
21 | 21 | ||
22 | 22 | let j = ((100 * 1000) * 1000) | |
23 | 23 | ||
24 | 24 | let k = "__" | |
25 | 25 | ||
26 | 26 | let l = "" | |
27 | 27 | ||
28 | 28 | let m = 1 | |
29 | 29 | ||
30 | 30 | let n = 2 | |
31 | 31 | ||
32 | 32 | let o = 3 | |
33 | 33 | ||
34 | 34 | let p = 4 | |
35 | 35 | ||
36 | 36 | let q = 1 | |
37 | 37 | ||
38 | 38 | let r = 2 | |
39 | 39 | ||
40 | 40 | let s = 3 | |
41 | 41 | ||
42 | 42 | let t = 1 | |
43 | 43 | ||
44 | 44 | let u = 2 | |
45 | 45 | ||
46 | 46 | let v = 3 | |
47 | 47 | ||
48 | 48 | let w = 4 | |
49 | 49 | ||
50 | 50 | let x = 5 | |
51 | 51 | ||
52 | 52 | let y = 6 | |
53 | 53 | ||
54 | 54 | let z = 7 | |
55 | 55 | ||
56 | 56 | let A = 8 | |
57 | 57 | ||
58 | 58 | let B = 9 | |
59 | 59 | ||
60 | 60 | let C = 10 | |
61 | 61 | ||
62 | 62 | let D = 11 | |
63 | 63 | ||
64 | 64 | let E = "WX_EMISSION" | |
65 | 65 | ||
66 | 66 | let F = [E] | |
67 | 67 | ||
68 | 68 | func G () = "%s__allowedLpScriptHash" | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | func H () = "%s__allowedLpStableScriptHash" | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | func I () = "%s__allowedLpStableAddonScriptHash" | |
75 | 75 | ||
76 | 76 | ||
77 | 77 | func J () = "%s__swapContract" | |
78 | 78 | ||
79 | 79 | ||
80 | 80 | func K () = "%s__factoryConfig" | |
81 | 81 | ||
82 | 82 | ||
83 | 83 | func L () = "%s__lpTokensList" | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | func M () = "%s%s__pool__scriptHash" | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func N () = "%s%s__matcher__publicKey" | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | func O () = "%s__legacyFactoryContract" | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func P () = "%s__legacyPools" | |
96 | 96 | ||
97 | 97 | ||
98 | 98 | func Q () = "%s__managerPublicKey" | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | func R () = "%s__pendingManagerPublicKey" | |
102 | 102 | ||
103 | 103 | ||
104 | 104 | func S () = "%s__adminPubKeys" | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | func T () = "%s__assetsStoreContract" | |
108 | 108 | ||
109 | 109 | ||
110 | 110 | func U () = "%s__votingEmissionContract" | |
111 | 111 | ||
112 | 112 | ||
113 | 113 | func V () = makeString(["%s", "priceAssets"], k) | |
114 | 114 | ||
115 | 115 | ||
116 | 116 | func W () = "%s__priceDecimals" | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | func X () = "%s__shutdown" | |
120 | 120 | ||
121 | 121 | ||
122 | 122 | func Y () = "%s__nextInternalAssetId" | |
123 | 123 | ||
124 | 124 | ||
125 | 125 | func Z (aa) = ("%s%s__poolWeight__" + aa) | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac)) | |
129 | 129 | ||
130 | 130 | ||
131 | 131 | func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae)) | |
132 | 132 | ||
133 | 133 | ||
134 | 134 | func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag) | |
135 | 135 | ||
136 | 136 | ||
137 | 137 | func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config") | |
138 | 138 | ||
139 | 139 | ||
140 | 140 | func ak (al) = { | |
141 | 141 | let am = al | |
142 | 142 | let ai = am._1 | |
143 | 143 | let aj = am._2 | |
144 | 144 | makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k) | |
145 | 145 | } | |
146 | 146 | ||
147 | 147 | ||
148 | 148 | func an () = makeString(["%s", "oneTokenOperationsDisabled"], k) | |
149 | 149 | ||
150 | 150 | ||
151 | 151 | func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool") | |
152 | 152 | ||
153 | 153 | ||
154 | 154 | func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset") | |
155 | 155 | ||
156 | 156 | ||
157 | 157 | func at (aa) = ("%s%s__spread__" + aa) | |
158 | 158 | ||
159 | 159 | ||
160 | 160 | func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets") | |
161 | 161 | ||
162 | 162 | ||
163 | 163 | func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract") | |
164 | 164 | ||
165 | 165 | ||
166 | 166 | func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset") | |
167 | 167 | ||
168 | 168 | ||
169 | 169 | func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract") | |
170 | 170 | ||
171 | 171 | ||
172 | 172 | func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB) | |
173 | 173 | ||
174 | 174 | ||
175 | 175 | func aC (aa) = ("%s%s__inFee__" + aa) | |
176 | 176 | ||
177 | 177 | ||
178 | 178 | func aD () = "%s__inFeeDefault" | |
179 | 179 | ||
180 | 180 | ||
181 | 181 | func aE (aa) = ("%s%s__outFee__" + aa) | |
182 | 182 | ||
183 | 183 | ||
184 | 184 | func aF () = "%s__outFeeDefault" | |
185 | 185 | ||
186 | 186 | ||
187 | - | func aG ( | |
187 | + | func aG (aa) = ("%s%s__skipOrderValidation__" + aa) | |
188 | 188 | ||
189 | 189 | ||
190 | - | func | |
190 | + | func aH (aa) = ("%s%s__changeAmpDelay__" + aa) | |
191 | 191 | ||
192 | 192 | ||
193 | - | func | |
193 | + | func aI (aa) = ("%s%s__changeAmpDelta__" + aa) | |
194 | 194 | ||
195 | 195 | ||
196 | - | func aK (aL) = if ((aL == i)) | |
197 | - | then unit | |
198 | - | else fromBase58String(aL) | |
196 | + | func aJ (aa) = ("%s%s__changeAmpTarget__" + aa) | |
199 | 197 | ||
200 | 198 | ||
201 | - | let aM = 1 | |
202 | - | ||
203 | - | let aN = 2 | |
204 | - | ||
205 | - | let aO = 3 | |
206 | - | ||
207 | - | let aP = 4 | |
208 | - | ||
209 | - | let aQ = 5 | |
210 | - | ||
211 | - | let aR = 6 | |
212 | - | ||
213 | - | let aS = 7 | |
214 | - | ||
215 | - | let aT = 8 | |
216 | - | ||
217 | - | let aU = 9 | |
218 | - | ||
219 | - | let aV = 10 | |
220 | - | ||
221 | - | let aW = 11 | |
222 | - | ||
223 | - | func aX (aY) = addressFromStringValue(aY[aN]) | |
199 | + | func aK (aL) = valueOrErrorMessage(getString(this, aL), ("No data for this.key=" + aL)) | |
224 | 200 | ||
225 | 201 | ||
226 | - | func | |
202 | + | func aM (aL) = valueOrErrorMessage(getBoolean(this, aL), ("No data for this.key=" + aL)) | |
227 | 203 | ||
228 | 204 | ||
229 | - | func | |
205 | + | func aN (aL) = valueOrErrorMessage(getInteger(this, aL), ("No data for this.key=" + aL)) | |
230 | 206 | ||
231 | 207 | ||
232 | - | func bb (aY) = addressFromStringValue(aY[aV]) | |
208 | + | func aO (aP) = if ((aP == i)) | |
209 | + | then unit | |
210 | + | else fromBase58String(aP) | |
233 | 211 | ||
234 | 212 | ||
235 | - | func bc () = { | |
236 | - | let bd = getString(V()) | |
237 | - | if ($isInstanceOf(bd, "String")) | |
213 | + | let aQ = 1 | |
214 | + | ||
215 | + | let aR = 2 | |
216 | + | ||
217 | + | let aS = 3 | |
218 | + | ||
219 | + | let aT = 4 | |
220 | + | ||
221 | + | let aU = 5 | |
222 | + | ||
223 | + | let aV = 6 | |
224 | + | ||
225 | + | let aW = 7 | |
226 | + | ||
227 | + | let aX = 8 | |
228 | + | ||
229 | + | let aY = 9 | |
230 | + | ||
231 | + | let aZ = 10 | |
232 | + | ||
233 | + | let ba = 11 | |
234 | + | ||
235 | + | func bb (bc) = addressFromStringValue(bc[aR]) | |
236 | + | ||
237 | + | ||
238 | + | func bd (bc) = addressFromStringValue(bc[aU]) | |
239 | + | ||
240 | + | ||
241 | + | func be (bc) = addressFromStringValue(bc[aQ]) | |
242 | + | ||
243 | + | ||
244 | + | func bf (bc) = addressFromStringValue(bc[aZ]) | |
245 | + | ||
246 | + | ||
247 | + | func bg () = { | |
248 | + | let bh = getString(V()) | |
249 | + | if ($isInstanceOf(bh, "String")) | |
238 | 250 | then { | |
239 | - | let | |
240 | - | if ((size( | |
251 | + | let bi = bh | |
252 | + | if ((size(bi) == 0)) | |
241 | 253 | then nil | |
242 | - | else split( | |
254 | + | else split(bi, k) | |
243 | 255 | } | |
244 | 256 | else nil | |
245 | 257 | } | |
246 | 258 | ||
247 | 259 | ||
248 | - | func | |
249 | - | let | |
250 | - | if ($isInstanceOf( | |
260 | + | func bj () = { | |
261 | + | let bh = getString(Q()) | |
262 | + | if ($isInstanceOf(bh, "String")) | |
251 | 263 | then { | |
252 | - | let | |
253 | - | fromBase58String( | |
264 | + | let bi = bh | |
265 | + | fromBase58String(bi) | |
254 | 266 | } | |
255 | - | else if ($isInstanceOf( | |
267 | + | else if ($isInstanceOf(bh, "Unit")) | |
256 | 268 | then unit | |
257 | 269 | else throw("Match error") | |
258 | 270 | } | |
259 | 271 | ||
260 | 272 | ||
261 | - | func | |
262 | - | let | |
263 | - | if ($isInstanceOf( | |
273 | + | func bk () = { | |
274 | + | let bh = getString(R()) | |
275 | + | if ($isInstanceOf(bh, "String")) | |
264 | 276 | then { | |
265 | - | let | |
266 | - | fromBase58String( | |
277 | + | let bi = bh | |
278 | + | fromBase58String(bi) | |
267 | 279 | } | |
268 | - | else if ($isInstanceOf( | |
280 | + | else if ($isInstanceOf(bh, "Unit")) | |
269 | 281 | then unit | |
270 | 282 | else throw("Match error") | |
271 | 283 | } | |
272 | 284 | ||
273 | 285 | ||
274 | - | let | |
286 | + | let bl = throw("Permission denied") | |
275 | 287 | ||
276 | - | let | |
288 | + | let bm = throw("Test error here") | |
277 | 289 | ||
278 | - | func | |
290 | + | func bn (bo) = if ((bo.caller == this)) | |
279 | 291 | then true | |
280 | - | else | |
292 | + | else bl | |
281 | 293 | ||
282 | 294 | ||
283 | - | func | |
284 | - | let | |
285 | - | if ($isInstanceOf( | |
295 | + | func bp (bo) = { | |
296 | + | let bh = bj() | |
297 | + | if ($isInstanceOf(bh, "ByteVector")) | |
286 | 298 | then { | |
287 | - | let | |
288 | - | if (( | |
299 | + | let bq = bh | |
300 | + | if ((bo.callerPublicKey == bq)) | |
289 | 301 | then true | |
290 | - | else | |
302 | + | else bl | |
291 | 303 | } | |
292 | - | else if ($isInstanceOf( | |
293 | - | then | |
304 | + | else if ($isInstanceOf(bh, "Unit")) | |
305 | + | then bn(bo) | |
294 | 306 | else throw("Match error") | |
295 | 307 | } | |
296 | 308 | ||
297 | 309 | ||
298 | - | func | |
310 | + | func br (bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by, bz, bA, bB, bC], k) | |
299 | 311 | ||
300 | 312 | ||
301 | - | func | |
313 | + | func bD (bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by], k) | |
302 | 314 | ||
303 | 315 | ||
304 | - | func | |
316 | + | func bE (aa,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bF, bG, bH, bI, toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), bO], k) | |
305 | 317 | ||
306 | 318 | ||
307 | - | func | |
319 | + | func bP (bQ,bR) = makeString(["%d%d", toString(bQ), toString(bR)], k) | |
308 | 320 | ||
309 | 321 | ||
310 | - | func | |
311 | - | let | |
312 | - | let ai = | |
313 | - | let aj = | |
314 | - | split( | |
322 | + | func bS (aa) = { | |
323 | + | let bT = split(aK(au(aa)), k) | |
324 | + | let ai = bT[1] | |
325 | + | let aj = bT[2] | |
326 | + | split(aK(ah(ai, aj)), k) | |
315 | 327 | } | |
316 | 328 | ||
317 | 329 | ||
318 | - | func | |
319 | - | let | |
320 | - | let | |
321 | - | let | |
330 | + | func bU (bV,bW) = { | |
331 | + | let bX = valueOrElse(getInteger(this, af(bV)), 0) | |
332 | + | let bY = valueOrElse(getInteger(this, Y()), 0) | |
333 | + | let bZ = if ((bX == 0)) | |
322 | 334 | then { | |
323 | - | let | |
324 | - | $Tuple3( | |
335 | + | let ca = (bY + bW) | |
336 | + | $Tuple3(ca, [IntegerEntry(Y(), ca), IntegerEntry(af(bV), ca), StringEntry(ad(ca), bV)], true) | |
325 | 337 | } | |
326 | - | else $Tuple3( | |
327 | - | | |
338 | + | else $Tuple3(bX, nil, false) | |
339 | + | bZ | |
328 | 340 | } | |
329 | 341 | ||
330 | 342 | ||
331 | - | func | |
332 | - | let | |
333 | - | if (containsElement( | |
343 | + | func cb (bo) = { | |
344 | + | let cc = split(valueOrElse(getString(S()), l), k) | |
345 | + | if (containsElement(cc, toBase58String(bo.callerPublicKey))) | |
334 | 346 | then true | |
335 | 347 | else { | |
336 | - | let | |
337 | - | if (( | |
348 | + | let cd = bp(bo) | |
349 | + | if ((cd == cd)) | |
338 | 350 | then true | |
339 | 351 | else throw("Strict value is not equal to itself.") | |
340 | 352 | } | |
341 | 353 | } | |
342 | 354 | ||
343 | 355 | ||
344 | - | func | |
356 | + | func ce (aL,cf,cg) = valueOrElse(getInteger(this, aL), valueOrElse(getInteger(this, cf), cg)) | |
345 | 357 | ||
346 | 358 | ||
347 | - | func | |
359 | + | func ch (aA,aB) = { | |
348 | 360 | let ai = getInteger(af(aA)) | |
349 | 361 | let aj = getInteger(af(aB)) | |
350 | 362 | if (if ((ai == unit)) | |
351 | 363 | then true | |
352 | 364 | else (aj == unit)) | |
353 | 365 | then false | |
354 | 366 | else { | |
355 | - | let | |
356 | - | let | |
357 | - | let | |
358 | - | let | |
359 | - | let | |
367 | + | let ci = toString(value(ai)) | |
368 | + | let cj = toString(value(aj)) | |
369 | + | let ck = getString(ah(ci, cj)) | |
370 | + | let cl = getString(ah(cj, ci)) | |
371 | + | let cm = if ((ck != unit)) | |
360 | 372 | then true | |
361 | - | else ( | |
362 | - | | |
373 | + | else (cl != unit) | |
374 | + | cm | |
363 | 375 | } | |
364 | 376 | } | |
365 | 377 | ||
366 | 378 | ||
367 | - | @Callable( | |
368 | - | func getSwapContractREADONLY () = $Tuple2(nil, | |
379 | + | @Callable(bo) | |
380 | + | func getSwapContractREADONLY () = $Tuple2(nil, aK(J())) | |
369 | 381 | ||
370 | 382 | ||
371 | 383 | ||
372 | - | @Callable( | |
373 | - | func getLpAssetFromPoolAssetsREADONLY ( | |
374 | - | then ( | |
384 | + | @Callable(bo) | |
385 | + | func getLpAssetFromPoolAssetsREADONLY (cn,co) = if (if ((cn == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS")) | |
386 | + | then (co == "WAVES") | |
375 | 387 | else false) | |
376 | 388 | then $Tuple2(nil, unit) | |
377 | 389 | else { | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
390 | + | let cp = value(getInteger(this, af(cn))) | |
391 | + | let cq = value(getInteger(this, af(co))) | |
392 | + | let cr = getString(this, aq(toString(cp), toString(cq))) | |
393 | + | let cs = if ((cr == unit)) | |
382 | 394 | then unit | |
383 | - | else drop(value( | |
384 | - | $Tuple2(nil, | |
395 | + | else drop(value(cr), 4) | |
396 | + | $Tuple2(nil, cs) | |
385 | 397 | } | |
386 | 398 | ||
387 | 399 | ||
388 | 400 | ||
389 | - | @Callable( | |
390 | - | func getPoolAddressFromLpAssetREADONLY ( | |
401 | + | @Callable(bo) | |
402 | + | func getPoolAddressFromLpAssetREADONLY (ct) = $Tuple2(nil, valueOrElse(getString(this, ay(ct)), "")) | |
391 | 403 | ||
392 | 404 | ||
393 | 405 | ||
394 | - | @Callable( | |
395 | - | func constructor ( | |
396 | - | let | |
397 | - | if (( | |
398 | - | then [StringEntry(K(), | |
406 | + | @Callable(bo) | |
407 | + | func constructor (cu,cv,bu,bv,bw,bx,cw,cx) = { | |
408 | + | let cy = bp(bo) | |
409 | + | if ((cy == cy)) | |
410 | + | then [StringEntry(K(), bD(cu, cv, bu, bv, bw, bx, cw)), IntegerEntry(W(), cx)] | |
399 | 411 | else throw("Strict value is not equal to itself.") | |
400 | 412 | } | |
401 | 413 | ||
402 | 414 | ||
403 | 415 | ||
404 | - | @Callable( | |
405 | - | func constructorV2 ( | |
406 | - | let | |
407 | - | if (( | |
416 | + | @Callable(bo) | |
417 | + | func constructorV2 (cz) = { | |
418 | + | let cy = bp(bo) | |
419 | + | if ((cy == cy)) | |
408 | 420 | then { | |
409 | - | let | |
410 | - | if (( | |
411 | - | then [StringEntry(N(), | |
421 | + | let cA = addressFromPublicKey(fromBase58String(cz)) | |
422 | + | if ((cA == cA)) | |
423 | + | then [StringEntry(N(), cz)] | |
412 | 424 | else throw("Strict value is not equal to itself.") | |
413 | 425 | } | |
414 | 426 | else throw("Strict value is not equal to itself.") | |
415 | 427 | } | |
416 | 428 | ||
417 | 429 | ||
418 | 430 | ||
419 | - | @Callable( | |
420 | - | func constructorV3 ( | |
421 | - | let | |
422 | - | if (( | |
431 | + | @Callable(bo) | |
432 | + | func constructorV3 (bz,bA,bB,bC) = { | |
433 | + | let cy = bp(bo) | |
434 | + | if ((cy == cy)) | |
423 | 435 | then { | |
424 | - | let | |
425 | - | [StringEntry(K(), | |
436 | + | let bc = split(aK(K()), k) | |
437 | + | [StringEntry(K(), br(bc[1], bc[2], bc[3], bc[4], bc[5], bc[6], bc[7], bz, bA, bB, bC))] | |
426 | 438 | } | |
427 | 439 | else throw("Strict value is not equal to itself.") | |
428 | 440 | } | |
429 | 441 | ||
430 | 442 | ||
431 | 443 | ||
432 | - | @Callable( | |
433 | - | func constructorV4 ( | |
434 | - | let | |
435 | - | if (( | |
436 | - | then [StringEntry(O(), | |
444 | + | @Callable(bo) | |
445 | + | func constructorV4 (cB,cC) = { | |
446 | + | let cy = bp(bo) | |
447 | + | if ((cy == cy)) | |
448 | + | then [StringEntry(O(), cB), StringEntry(P(), makeString(cC, k))] | |
437 | 449 | else throw("Strict value is not equal to itself.") | |
438 | 450 | } | |
439 | 451 | ||
440 | 452 | ||
441 | 453 | ||
442 | - | @Callable( | |
443 | - | func constructorV5 ( | |
444 | - | let | |
445 | - | if (( | |
446 | - | then [StringEntry(T(), | |
454 | + | @Callable(bo) | |
455 | + | func constructorV5 (cD) = { | |
456 | + | let cy = bp(bo) | |
457 | + | if ((cy == cy)) | |
458 | + | then [StringEntry(T(), cD)] | |
447 | 459 | else throw("Strict value is not equal to itself.") | |
448 | 460 | } | |
449 | 461 | ||
450 | 462 | ||
451 | 463 | ||
452 | - | @Callable( | |
453 | - | func constructorV6 ( | |
454 | - | let | |
464 | + | @Callable(bo) | |
465 | + | func constructorV6 (cE,cF) = { | |
466 | + | let cG = [bp(bo), if ((addressFromString(cE) != unit)) | |
455 | 467 | then true | |
456 | 468 | else "invalid voting emission contract address"] | |
457 | - | if (( | |
458 | - | then [StringEntry(U(), | |
469 | + | if ((cG == cG)) | |
470 | + | then [StringEntry(U(), cE), StringEntry(V(), makeString(cF, k))] | |
459 | 471 | else throw("Strict value is not equal to itself.") | |
460 | 472 | } | |
461 | 473 | ||
462 | 474 | ||
463 | 475 | ||
464 | - | @Callable( | |
465 | - | func setManager ( | |
466 | - | let | |
467 | - | if (( | |
476 | + | @Callable(bo) | |
477 | + | func setManager (cH) = { | |
478 | + | let cy = bp(bo) | |
479 | + | if ((cy == cy)) | |
468 | 480 | then { | |
469 | - | let | |
470 | - | if (( | |
471 | - | then [StringEntry(R(), | |
481 | + | let cI = fromBase58String(cH) | |
482 | + | if ((cI == cI)) | |
483 | + | then [StringEntry(R(), cH)] | |
472 | 484 | else throw("Strict value is not equal to itself.") | |
473 | 485 | } | |
474 | 486 | else throw("Strict value is not equal to itself.") | |
475 | 487 | } | |
476 | 488 | ||
477 | 489 | ||
478 | 490 | ||
479 | - | @Callable( | |
491 | + | @Callable(bo) | |
480 | 492 | func confirmManager () = { | |
481 | - | let | |
482 | - | let | |
493 | + | let cJ = bk() | |
494 | + | let cK = if (isDefined(cJ)) | |
483 | 495 | then true | |
484 | 496 | else throw("No pending manager") | |
485 | - | if (( | |
497 | + | if ((cK == cK)) | |
486 | 498 | then { | |
487 | - | let | |
499 | + | let cL = if ((bo.callerPublicKey == value(cJ))) | |
488 | 500 | then true | |
489 | 501 | else throw("You are not pending manager") | |
490 | - | if (( | |
491 | - | then [StringEntry(Q(), toBase58String(value( | |
502 | + | if ((cL == cL)) | |
503 | + | then [StringEntry(Q(), toBase58String(value(cJ))), DeleteEntry(R())] | |
492 | 504 | else throw("Strict value is not equal to itself.") | |
493 | 505 | } | |
494 | 506 | else throw("Strict value is not equal to itself.") | |
495 | 507 | } | |
496 | 508 | ||
497 | 509 | ||
498 | 510 | ||
499 | - | @Callable( | |
500 | - | func setAdmins ( | |
501 | - | let | |
502 | - | if (( | |
503 | - | then [StringEntry(S(), makeString( | |
511 | + | @Callable(bo) | |
512 | + | func setAdmins (cM) = { | |
513 | + | let cy = bp(bo) | |
514 | + | if ((cy == cy)) | |
515 | + | then [StringEntry(S(), makeString(cM, k))] | |
504 | 516 | else throw("Strict value is not equal to itself.") | |
505 | 517 | } | |
506 | 518 | ||
507 | 519 | ||
508 | 520 | ||
509 | - | @Callable( | |
510 | - | func activateNewPool (aa, | |
511 | - | let | |
512 | - | if (( | |
521 | + | @Callable(bo) | |
522 | + | func activateNewPool (aa,bH,bI,cN,cO,cP,bO,cQ) = { | |
523 | + | let cy = cb(bo) | |
524 | + | if ((cy == cy)) | |
513 | 525 | then if (isDefined(getString(au(aa)))) | |
514 | 526 | then throw((("Pool address " + aa) + " already registered.")) | |
515 | 527 | else { | |
516 | - | let | |
517 | - | let | |
518 | - | let | |
528 | + | let cR = bU(bH, 1) | |
529 | + | let cS = cR._1 | |
530 | + | let cT = bU(bI, if (cR._3) | |
519 | 531 | then 2 | |
520 | 532 | else 1) | |
521 | - | let | |
522 | - | let | |
523 | - | let | |
524 | - | let | |
525 | - | if ( | |
526 | - | then throw((((("Pool " + | |
533 | + | let cU = cT._1 | |
534 | + | let cV = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa)) | |
535 | + | let cW = getBinaryValue(M()) | |
536 | + | let cX = ch(bH, bI) | |
537 | + | if (cX) | |
538 | + | then throw((((("Pool " + bH) + "/") + bI) + " has already been activated.")) | |
527 | 539 | else { | |
528 | - | let | |
529 | - | let | |
540 | + | let cY = value(getString(this, ah(toString(cS), toString(cU)))) | |
541 | + | let cZ = if ((bH == "WAVES")) | |
530 | 542 | then j | |
531 | - | else pow(10, 0, value(assetInfo(fromBase58String( | |
532 | - | let | |
543 | + | else pow(10, 0, value(assetInfo(fromBase58String(bH))).decimals, 0, 0, DOWN) | |
544 | + | let da = if ((bI == "WAVES")) | |
533 | 545 | then j | |
534 | - | else pow(10, 0, value(assetInfo(fromBase58String( | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
539 | - | if (( | |
540 | - | then if (( | |
546 | + | else pow(10, 0, value(assetInfo(fromBase58String(bI))).decimals, 0, 0, DOWN) | |
547 | + | let db = Issue(cN, cO, 1, 8, true) | |
548 | + | let bG = calculateAssetId(db) | |
549 | + | let dc = toBase58String(bG) | |
550 | + | let dd = invoke(addressFromStringValue(aa), "activate", [bH, bI], nil) | |
551 | + | if ((dd == dd)) | |
552 | + | then if ((dd != "success")) | |
541 | 553 | then throw("Pool initialisation error happened.") | |
542 | 554 | else { | |
543 | - | let | |
544 | - | let | |
545 | - | if (( | |
555 | + | let cD = addressFromStringValue(aK(T())) | |
556 | + | let de = invoke(cD, "createOrUpdate", [dc, cN, false], nil) | |
557 | + | if ((de == de)) | |
546 | 558 | then { | |
547 | - | let | |
548 | - | if (( | |
559 | + | let df = invoke(cD, "addLabel", [dc, g], nil) | |
560 | + | if ((df == df)) | |
549 | 561 | then { | |
550 | - | let | |
551 | - | if (( | |
562 | + | let dg = invoke(cD, "setLogo", [dc, cQ], nil) | |
563 | + | if ((dg == dg)) | |
552 | 564 | then { | |
553 | - | let | |
554 | - | if (( | |
565 | + | let dh = invoke(cD, "addAssetsLink", [bH, bI, dc], nil) | |
566 | + | if ((dh == dh)) | |
555 | 567 | then { | |
556 | - | let | |
557 | - | if (( | |
558 | - | then $Tuple2((( | |
568 | + | let di = invoke(cD, "increaseAssetPoolsNumber", [bH], nil) | |
569 | + | if ((di == di)) | |
570 | + | then $Tuple2(((cR._2 ++ cT._2) ++ [db, Burn(bG, 1), StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(m), dc, bH, bI, cZ, da, cS, cU, j, bO)), StringEntry(ao(dc), bP(cS, cU)), StringEntry(aq(toString(cS), toString(cU)), ("%s__" + dc)), StringEntry(au(aa), bP(cS, cU)), StringEntry(aw(cS, cU), aa), StringEntry(ay(dc), aa), StringEntry(ax(aa), dc), IntegerEntry(Z(aa), cP), IntegerEntry(at(aa), h)]), dc) | |
559 | 571 | else throw("Strict value is not equal to itself.") | |
560 | 572 | } | |
561 | 573 | else throw("Strict value is not equal to itself.") | |
562 | 574 | } | |
563 | 575 | else throw("Strict value is not equal to itself.") | |
564 | 576 | } | |
565 | 577 | else throw("Strict value is not equal to itself.") | |
566 | 578 | } | |
567 | 579 | else throw("Strict value is not equal to itself.") | |
568 | 580 | } | |
569 | 581 | else throw("Strict value is not equal to itself.") | |
570 | 582 | } | |
571 | 583 | } | |
572 | 584 | else throw("Strict value is not equal to itself.") | |
573 | 585 | } | |
574 | 586 | ||
575 | 587 | ||
576 | 588 | ||
577 | - | @Callable( | |
578 | - | func managePool (aa, | |
579 | - | let | |
580 | - | if (( | |
589 | + | @Callable(bo) | |
590 | + | func managePool (aa,dj) = { | |
591 | + | let cy = bp(bo) | |
592 | + | if ((cy == cy)) | |
581 | 593 | then { | |
582 | - | let | |
583 | - | let | |
584 | - | let | |
585 | - | let | |
586 | - | let | |
587 | - | let | |
588 | - | let | |
589 | - | let | |
590 | - | let | |
591 | - | let | |
592 | - | let | |
593 | - | [StringEntry(ah(toString( | |
594 | + | let dk = bS(aa) | |
595 | + | let bF = dk[u] | |
596 | + | let dc = dk[v] | |
597 | + | let bH = dk[w] | |
598 | + | let bI = dk[x] | |
599 | + | let cZ = parseIntValue(dk[y]) | |
600 | + | let da = parseIntValue(dk[z]) | |
601 | + | let cS = parseIntValue(dk[A]) | |
602 | + | let cU = parseIntValue(dk[B]) | |
603 | + | let dl = parseIntValue(dk[C]) | |
604 | + | let bO = dk[D] | |
605 | + | [StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(dj), dc, bH, bI, cZ, da, cS, cU, dl, bO))] | |
594 | 606 | } | |
595 | 607 | else throw("Strict value is not equal to itself.") | |
596 | 608 | } | |
597 | 609 | ||
598 | 610 | ||
599 | 611 | ||
600 | - | @Callable( | |
601 | - | func emit ( | |
602 | - | let | |
603 | - | let | |
604 | - | let | |
605 | - | let | |
606 | - | let | |
607 | - | let | |
608 | - | if ((0 >= | |
612 | + | @Callable(bo) | |
613 | + | func emit (dm) = { | |
614 | + | let dn = bo.caller | |
615 | + | let do = bo.originCaller | |
616 | + | let dp = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.") | |
617 | + | let dq = fromBase58String(dp) | |
618 | + | let cC = split(valueOrElse(getString(P()), l), k) | |
619 | + | let cB = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists.")) | |
620 | + | if ((0 >= dm)) | |
609 | 621 | then nil | |
610 | - | else if (containsElement( | |
611 | - | then $Tuple2(nil, | |
612 | - | else $Tuple2([Reissue( | |
622 | + | else if (containsElement(cC, toString(dn))) | |
623 | + | then $Tuple2(nil, cB) | |
624 | + | else $Tuple2([Reissue(dq, dm, true), ScriptTransfer(bo.caller, dm, dq)], "success") | |
613 | 625 | } | |
614 | 626 | ||
615 | 627 | ||
616 | 628 | ||
617 | - | @Callable( | |
618 | - | func burn ( | |
619 | - | let | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | let | |
625 | - | if (( | |
629 | + | @Callable(bo) | |
630 | + | func burn (dr) = { | |
631 | + | let dn = bo.caller | |
632 | + | let do = bo.originCaller | |
633 | + | let ds = value(bo.payments[0]) | |
634 | + | let dt = value(ds.amount) | |
635 | + | let du = toBase58String(value(ds.assetId)) | |
636 | + | let dv = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.") | |
637 | + | if ((du != dv)) | |
626 | 638 | then throw("Invalid asset passed.") | |
627 | - | else if (( | |
639 | + | else if ((dr != dt)) | |
628 | 640 | then throw("Invalid amount passed.") | |
629 | 641 | else { | |
630 | - | let | |
631 | - | $Tuple2([Burn( | |
642 | + | let dq = fromBase58String(dv) | |
643 | + | $Tuple2([Burn(dq, dr)], "success") | |
632 | 644 | } | |
633 | 645 | } | |
634 | 646 | ||
635 | 647 | ||
636 | 648 | ||
637 | - | @Callable( | |
638 | - | func modifyWeight ( | |
639 | - | let | |
649 | + | @Callable(bo) | |
650 | + | func modifyWeight (bG,dw) = { | |
651 | + | let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, U()), ""))) | |
640 | 652 | then true | |
641 | - | else | |
642 | - | if (( | |
653 | + | else bp(bo) | |
654 | + | if ((cy == cy)) | |
643 | 655 | then { | |
644 | - | let av = | |
645 | - | let | |
646 | - | let | |
647 | - | let | |
648 | - | let | |
649 | - | let | |
650 | - | let | |
651 | - | let | |
652 | - | let | |
653 | - | if (( | |
656 | + | let av = aK(ay(bG)) | |
657 | + | let dx = Z(av) | |
658 | + | let dy = Z(f) | |
659 | + | let dz = valueOrElse(getInteger(dy), 0) | |
660 | + | let cP = valueOrElse(getInteger(dx), 0) | |
661 | + | let dA = dw | |
662 | + | let bc = split(aK(K()), k) | |
663 | + | let cu = be(bc) | |
664 | + | let dB = invoke(cu, "onModifyWeight", [bG, av], nil) | |
665 | + | if ((dB == dB)) | |
654 | 666 | then { | |
655 | - | let | |
667 | + | let dC = if ((dz == 0)) | |
656 | 668 | then nil | |
657 | - | else [IntegerEntry( | |
658 | - | let | |
659 | - | let | |
660 | - | let | |
669 | + | else [IntegerEntry(dy, 0)] | |
670 | + | let dD = ab(av, 0) | |
671 | + | let dE = getInteger(dD) | |
672 | + | let dF = if ((dE == unit)) | |
661 | 673 | then nil | |
662 | - | else [DeleteEntry( | |
663 | - | (([IntegerEntry( | |
674 | + | else [DeleteEntry(dD)] | |
675 | + | (([IntegerEntry(dx, dA)] ++ dC) ++ dF) | |
664 | 676 | } | |
665 | 677 | else throw("Strict value is not equal to itself.") | |
666 | 678 | } | |
667 | 679 | else throw("Strict value is not equal to itself.") | |
668 | 680 | } | |
669 | 681 | ||
670 | 682 | ||
671 | 683 | ||
672 | - | @Callable( | |
673 | - | func modifyWeights ( | |
674 | - | let | |
675 | - | if (( | |
684 | + | @Callable(bo) | |
685 | + | func modifyWeights (dG,dH,dI,dJ) = { | |
686 | + | let cy = bp(bo) | |
687 | + | if ((cy == cy)) | |
676 | 688 | then { | |
677 | - | let | |
678 | - | let | |
679 | - | let | |
680 | - | let | |
681 | - | let | |
682 | - | let | |
683 | - | let | |
684 | - | let | |
685 | - | let | |
686 | - | let | |
687 | - | let | |
688 | - | let | |
689 | - | let | |
690 | - | let | |
691 | - | if ((0 >= | |
692 | - | then throw(("invalid btcWeightNew: " + toString( | |
693 | - | else if ((0 >= | |
694 | - | then throw(("invalid ethWeightNew: " + toString( | |
689 | + | let dK = ((5 * e) / 100) | |
690 | + | let dL = ((5 * e) / 100) | |
691 | + | let dM = ((5 * e) / 100) | |
692 | + | let bc = split(aK(K()), k) | |
693 | + | let dN = be(bc) | |
694 | + | let dO = bf(bc) | |
695 | + | let dP = Z(dG) | |
696 | + | let dQ = Z(dH) | |
697 | + | let dR = Z(dI) | |
698 | + | let dS = Z(dJ) | |
699 | + | let dT = aN(dP) | |
700 | + | let dU = aN(dQ) | |
701 | + | let dV = (dT - dM) | |
702 | + | let dW = (dU - dM) | |
703 | + | if ((0 >= dV)) | |
704 | + | then throw(("invalid btcWeightNew: " + toString(dV))) | |
705 | + | else if ((0 >= dW)) | |
706 | + | then throw(("invalid ethWeightNew: " + toString(dW))) | |
695 | 707 | else { | |
696 | - | let | |
697 | - | let | |
698 | - | let | |
699 | - | let | |
700 | - | let | |
701 | - | if (( | |
708 | + | let dX = aK(ax(dG)) | |
709 | + | let dY = aK(ax(dH)) | |
710 | + | let dZ = aK(ax(dI)) | |
711 | + | let ea = aK(ax(dJ)) | |
712 | + | let eb = invoke(dN, "onModifyWeight", [dX, dG], nil) | |
713 | + | if ((eb == eb)) | |
702 | 714 | then { | |
703 | - | let | |
704 | - | if (( | |
715 | + | let ec = invoke(dN, "onModifyWeight", [dY, dH], nil) | |
716 | + | if ((ec == ec)) | |
705 | 717 | then { | |
706 | - | let | |
707 | - | if (( | |
718 | + | let ed = invoke(dN, "onModifyWeight", [dZ, dI], nil) | |
719 | + | if ((ed == ed)) | |
708 | 720 | then { | |
709 | - | let | |
710 | - | if (( | |
711 | - | then [IntegerEntry( | |
721 | + | let ee = invoke(dN, "onModifyWeight", [ea, dJ], nil) | |
722 | + | if ((ee == ee)) | |
723 | + | then [IntegerEntry(dP, dV), IntegerEntry(dQ, dW), IntegerEntry(dR, dK), IntegerEntry(dS, dL), IntegerEntry(ab(dG, 0), dT), IntegerEntry(ab(dH, 0), dU), IntegerEntry(ab(dI, 0), dK), IntegerEntry(ab(dJ, 0), dL)] | |
712 | 724 | else throw("Strict value is not equal to itself.") | |
713 | 725 | } | |
714 | 726 | else throw("Strict value is not equal to itself.") | |
715 | 727 | } | |
716 | 728 | else throw("Strict value is not equal to itself.") | |
717 | 729 | } | |
718 | 730 | else throw("Strict value is not equal to itself.") | |
719 | 731 | } | |
720 | 732 | } | |
721 | 733 | else throw("Strict value is not equal to itself.") | |
722 | 734 | } | |
723 | 735 | ||
724 | 736 | ||
725 | 737 | ||
726 | - | @Callable( | |
738 | + | @Callable(bo) | |
727 | 739 | func checkWxEmissionPoolLabel (aA,aB) = { | |
728 | - | let | |
729 | - | let | |
730 | - | if ($isInstanceOf( | |
740 | + | let ef = { | |
741 | + | let bh = getBoolean(az(aA, aB)) | |
742 | + | if ($isInstanceOf(bh, "Boolean")) | |
731 | 743 | then { | |
732 | - | let | |
733 | - | | |
744 | + | let eg = bh | |
745 | + | eg | |
734 | 746 | } | |
735 | 747 | else false | |
736 | 748 | } | |
737 | - | $Tuple2(nil, | |
749 | + | $Tuple2(nil, ef) | |
738 | 750 | } | |
739 | 751 | ||
740 | 752 | ||
741 | 753 | ||
742 | - | @Callable( | |
754 | + | @Callable(bo) | |
743 | 755 | func setWxEmissionPoolLabel (aA,aB) = { | |
744 | - | let | |
745 | - | if (( | |
756 | + | let cy = cb(bo) | |
757 | + | if ((cy == cy)) | |
746 | 758 | then $Tuple2([BooleanEntry(az(aA, aB), true)], unit) | |
747 | 759 | else throw("Strict value is not equal to itself.") | |
748 | 760 | } | |
749 | 761 | ||
750 | 762 | ||
751 | 763 | ||
752 | - | @Callable( | |
764 | + | @Callable(bo) | |
753 | 765 | func deleteWxEmissionPoolLabel (aA,aB) = { | |
754 | - | let | |
766 | + | let cy = if (bn(bo)) | |
755 | 767 | then true | |
756 | - | else | |
757 | - | if (( | |
768 | + | else cb(bo) | |
769 | + | if ((cy == cy)) | |
758 | 770 | then $Tuple2([DeleteEntry(az(aA, aB))], unit) | |
759 | 771 | else throw("Strict value is not equal to itself.") | |
760 | 772 | } | |
761 | 773 | ||
762 | 774 | ||
763 | 775 | ||
764 | - | @Callable( | |
765 | - | func onVerificationLoss ( | |
766 | - | let | |
776 | + | @Callable(bo) | |
777 | + | func onVerificationLoss (eh) = { | |
778 | + | let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, T()), ""))) | |
767 | 779 | then true | |
768 | - | else | |
769 | - | if (( | |
780 | + | else bp(bo) | |
781 | + | if ((cy == cy)) | |
770 | 782 | then { | |
771 | - | let | |
772 | - | let | |
783 | + | let cF = bg() | |
784 | + | let ei = if ((size(cF) > 0)) | |
773 | 785 | then true | |
774 | 786 | else throw("invalid price assets") | |
775 | - | if (( | |
787 | + | if ((ei == ei)) | |
776 | 788 | then { | |
777 | - | func | |
778 | - | let | |
779 | - | if (( | |
789 | + | func ej (ek,el) = { | |
790 | + | let em = invoke(this, "deleteWxEmissionPoolLabel", [eh, el], nil) | |
791 | + | if ((em == em)) | |
780 | 792 | then unit | |
781 | 793 | else throw("Strict value is not equal to itself.") | |
782 | 794 | } | |
783 | 795 | ||
784 | - | let | |
785 | - | let | |
786 | - | let | |
787 | - | let | |
788 | - | func | |
789 | - | then | |
790 | - | else | |
796 | + | let en = { | |
797 | + | let eo = cF | |
798 | + | let ep = size(eo) | |
799 | + | let eq = unit | |
800 | + | func er (es,et) = if ((et >= ep)) | |
801 | + | then es | |
802 | + | else ej(es, eo[et]) | |
791 | 803 | ||
792 | - | func | |
793 | - | then | |
804 | + | func eu (es,et) = if ((et >= ep)) | |
805 | + | then es | |
794 | 806 | else throw("List size exceeds 2") | |
795 | 807 | ||
796 | - | eq | |
808 | + | eu(er(er(eq, 0), 1), 2) | |
797 | 809 | } | |
798 | - | if (( | |
810 | + | if ((en == en)) | |
799 | 811 | then $Tuple2(nil, unit) | |
800 | 812 | else throw("Strict value is not equal to itself.") | |
801 | 813 | } | |
802 | 814 | else throw("Strict value is not equal to itself.") | |
803 | 815 | } | |
804 | 816 | else throw("Strict value is not equal to itself.") | |
805 | 817 | } | |
806 | 818 | ||
807 | 819 | ||
808 | 820 | ||
809 | - | @Callable( | |
821 | + | @Callable(bo) | |
810 | 822 | func isPoolOneTokenOperationsDisabledREADONLY (aa) = { | |
811 | - | let | |
812 | - | let al = $Tuple2(parseIntValue( | |
813 | - | let | |
814 | - | let | |
815 | - | $Tuple2(nil, if ( | |
823 | + | let dk = bS(aa) | |
824 | + | let al = $Tuple2(parseIntValue(dk[A]), parseIntValue(dk[B])) | |
825 | + | let ev = valueOrElse(getBoolean(ak(al)), false) | |
826 | + | let ew = valueOrElse(getBoolean(an()), false) | |
827 | + | $Tuple2(nil, if (ew) | |
816 | 828 | then true | |
817 | - | else | |
829 | + | else ev) | |
818 | 830 | } | |
819 | 831 | ||
820 | 832 | ||
821 | 833 | ||
822 | - | @Callable( | |
834 | + | @Callable(bo) | |
823 | 835 | func getInFeeREADONLY (aa) = { | |
824 | - | let | |
825 | - | $Tuple2(nil, | |
836 | + | let ex = ce(aC(aa), aD(), 0) | |
837 | + | $Tuple2(nil, ex) | |
826 | 838 | } | |
827 | 839 | ||
828 | 840 | ||
829 | 841 | ||
830 | - | @Callable( | |
842 | + | @Callable(bo) | |
831 | 843 | func getOutFeeREADONLY (aa) = { | |
832 | - | let | |
833 | - | $Tuple2(nil, | |
844 | + | let ex = ce(aE(aa), aF(), fraction(10, b, 10000)) | |
845 | + | $Tuple2(nil, ex) | |
834 | 846 | } | |
835 | 847 | ||
836 | 848 | ||
837 | 849 | ||
838 | - | @Callable( | |
839 | - | func poolInfoREADONLY ( | |
840 | - | let | |
841 | - | let | |
842 | - | let | |
843 | - | let | |
844 | - | let | |
845 | - | then isDefined( | |
850 | + | @Callable(bo) | |
851 | + | func poolInfoREADONLY (ey,ez) = { | |
852 | + | let eA = getInteger(this, af(ey)) | |
853 | + | let eB = getInteger(this, af(ez)) | |
854 | + | let eC = getString(this, aw(value(eA), value(eB))) | |
855 | + | let eD = getString(this, ax(value(eC))) | |
856 | + | let cX = if (if (isDefined(eA)) | |
857 | + | then isDefined(eB) | |
846 | 858 | else false) | |
847 | - | then isDefined( | |
859 | + | then isDefined(eC) | |
848 | 860 | else false | |
849 | - | let | |
850 | - | then $Tuple2(addressFromStringValue(value( | |
861 | + | let eE = if (cX) | |
862 | + | then $Tuple2(addressFromStringValue(value(eC)), aO(value(eD))) | |
851 | 863 | else unit | |
852 | - | $Tuple2(nil, | |
864 | + | $Tuple2(nil, eE) | |
853 | 865 | } | |
854 | 866 | ||
855 | 867 | ||
856 | 868 | ||
857 | - | @Callable( | |
869 | + | @Callable(bo) | |
858 | 870 | func getPoolStatusREADONLY (aa) = { | |
859 | - | let | |
860 | - | let ai = | |
861 | - | let aj = | |
862 | - | let | |
863 | - | $Tuple2(nil, parseIntValue( | |
871 | + | let bT = split(aK(au(aa)), k) | |
872 | + | let ai = bT[1] | |
873 | + | let aj = bT[2] | |
874 | + | let ck = split(aK(ah(ai, aj)), k) | |
875 | + | $Tuple2(nil, parseIntValue(ck[u])) | |
864 | 876 | } | |
865 | 877 | ||
866 | 878 | ||
867 | 879 | ||
868 | - | @Callable( | |
880 | + | @Callable(bo) | |
869 | 881 | func getPoolConfigREADONLY (aa) = { | |
870 | - | let | |
871 | - | let ai = | |
872 | - | let aj = | |
873 | - | let | |
874 | - | $Tuple2(nil, | |
882 | + | let bT = split(aK(au(aa)), k) | |
883 | + | let ai = bT[1] | |
884 | + | let aj = bT[2] | |
885 | + | let ck = split(aK(ah(ai, aj)), k) | |
886 | + | $Tuple2(nil, ck) | |
875 | 887 | } | |
876 | 888 | ||
877 | 889 | ||
878 | 890 | ||
879 | - | @Callable( | |
880 | - | func | |
881 | - | let | |
882 | - | let ai = | |
883 | - | let aj = | |
884 | - | let | |
885 | - | $Tuple2(nil, | |
891 | + | @Callable(bo) | |
892 | + | func getPoolConfigByLpAssetId (dc) = { | |
893 | + | let bT = split(aK(ao(dc)), k) | |
894 | + | let ai = bT[1] | |
895 | + | let aj = bT[2] | |
896 | + | let ck = split(aK(ah(ai, aj)), k) | |
897 | + | $Tuple2(nil, ck) | |
886 | 898 | } | |
887 | 899 | ||
888 | 900 | ||
889 | 901 | ||
890 | - | @Callable( | |
891 | - | func poolExistsREADONLY (aA,aB) = $Tuple2(nil, | |
902 | + | @Callable(bo) | |
903 | + | func poolExistsREADONLY (aA,aB) = $Tuple2(nil, ch(aA, aB)) | |
892 | 904 | ||
893 | 905 | ||
894 | - | @Verifier(eB) | |
895 | - | func eC () = { | |
896 | - | let eD = { | |
897 | - | let bd = bf() | |
898 | - | if ($isInstanceOf(bd, "ByteVector")) | |
906 | + | ||
907 | + | @Callable(bo) | |
908 | + | func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false)) | |
909 | + | ||
910 | + | ||
911 | + | ||
912 | + | @Callable(bo) | |
913 | + | func getChangeAmpConfigREADONLY (aa) = { | |
914 | + | let eF = getIntegerValue(aH(aa)) | |
915 | + | let eG = getIntegerValue(aI(aa)) | |
916 | + | let eH = getIntegerValue(aJ(aa)) | |
917 | + | $Tuple2(nil, [eF, eG, eH]) | |
918 | + | } | |
919 | + | ||
920 | + | ||
921 | + | @Verifier(eI) | |
922 | + | func eJ () = { | |
923 | + | let eK = { | |
924 | + | let bh = bj() | |
925 | + | if ($isInstanceOf(bh, "ByteVector")) | |
899 | 926 | then { | |
900 | - | let | |
901 | - | | |
927 | + | let bq = bh | |
928 | + | bq | |
902 | 929 | } | |
903 | - | else if ($isInstanceOf( | |
904 | - | then | |
930 | + | else if ($isInstanceOf(bh, "Unit")) | |
931 | + | then eI.senderPublicKey | |
905 | 932 | else throw("Match error") | |
906 | 933 | } | |
907 | - | sigVerify( | |
934 | + | sigVerify(eI.bodyBytes, eI.proofs[0], eK) | |
908 | 935 | } | |
909 | 936 |
github/deemru/w8io/026f985 255.52 ms ◑