tx · 7N9YN26FYN5ozkfvCdUgJViuqKnYBYSdurenGMrJkVRc

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02800000 Waves

2023.06.19 11:15 [2629255] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "7N9YN26FYN5ozkfvCdUgJViuqKnYBYSdurenGMrJkVRc", "fee": 2800000, "feeAssetId": null, "timestamp": 1687162548410, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "dzL3sPkT8L5JMhhYUnxGjRAxRUaiVLvBRzSF8sw66iDL7bgswJneSpHeWQEpXtBu72eSFhWMyPA3E69mqJJJm7Z" ], "script": "base64:BgKnLQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIGTVVMVDEyIgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIQY29udHJhY3RGaWxlbmFtZSIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIg9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFGtleVVzZXJQb29sc0NvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM4NzgzOTQwIiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiIRa2V5Q2hhbmdlQW1wRGVsYXkiEWtleUNoYW5nZUFtcERlbHRhIhJrZXlDaGFuZ2VBbXBUYXJnZXQiFWtleVNXYXZlc1Byb3h5QWRkcmVzcyIQa2V5U1dhdmVzQXNzZXRJZCIXa2V5U3Rha2luZ1Byb2ZpdEFkZHJlc3MiDmtleUxlYXNlZFJhdGlvIgdhc3NldElkIhVrZXlMZWFzZWRSYXRpb0RlZmF1bHQiF2tleUxlYXNlZFJhdGlvVG9sZXJhbmNlIg1rZXlNaW5CYWxhbmNlIhRrZXlNaW5CYWxhbmNlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiHGdldEFzc2V0c0RhdGFGcm9tUG9vbEFkZHJlc3MiDmdldFBvb2xDcmVhdG9yIg0kdDAxNTA0OTE1MTg2IhF1c2VyUG9vbHNDb250cmFjdCILcG9vbENyZWF0b3IiEWdldEFkZHJlc3NCYWxhbmNlIg1hZGRyZXNzU3RyaW5nIg1hc3NldElkU3RyaW5nIgdhZGRyZXNzIgtpc1Bvb2xFbXB0eSINJHQwMTU3NTIxNTg4OSINJHQwMTYyMDQxNjUwOCIBciIHJG1hdGNoMSICcmQiCmlzTGVhc2FibGUiC2xlYXNlZFJhdGlvIgptaW5CYWxhbmNlIgFiIgJiZCINJHQwMTY3NzQxNjk5OCIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiDHByb3h5UmF0ZU11bCIUc3Rha2luZ1Byb2ZpdEFkZHJlc3MiBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sRXhpc3RzIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCnBvb2xDb25maWciCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9kaWZ5V2VpZ2h0QnRjIhFvbk1vZGlmeVdlaWdodEV0aCIUb25Nb2RpZnlXZWlnaHRFdGhCdGMiFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQiCWhhdmVMYWJlbCIUY2hlY2tQcmljZUFzc2V0c1NpemUiAmNiIgNhY2MiCnByaWNlQXNzZXQiB2FjdGlvbnMiAiRsIgIkcyIFJGFjYzAiBSRmMF8xIgIkYSICJGkiBSRmMF8yIh5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiImFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiA2ZlZSIQYW1vdW50QXNzZXRJZFN0ciIPcHJpY2VBc3NldElkU3RyIhthbW91bnRBc3NldEludGVybmFsSWRPcHRpb24iGnByaWNlQXNzZXRJbnRlcm5hbElkT3B0aW9uIhlwb29sQ29udHJhY3RBZGRyZXNzT3B0aW9uIg9scEFzc2V0SWRPcHRpb24iCHBvb2xJbmZvIgVkZWxheSIFZGVsdGEiBnRhcmdldCIGd2VpZ2h0IgtjaGVja1dlaWdodCINJHQwMzg3ODAzODkxNyIPdXNlclBvb2xzSW52b2tlIhR2b3RpbmdFbWlzc2lvbkludm9rZSIRYXNzZXRzU3RvcmVJbnZva2UiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleX0AAWEACAABYgCAwtcvAAFjAICglKWNHQABZAASAAFlCQC2AgEAgICQu7rWrfANAAFmBQFiAAFnAg5HV1h2aXJ0dWFsUE9PTAABaAIIUE9PTFNfTFAAAWkAgIl6AAFqAgVXQVZFUwABawIPZmFjdG9yeV92Mi5yaWRlAAFsCQBoAgkAaAIAZADoBwDoBwABbQICX18AAW4CAAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAEAAXQAAgABdQADAAF2AAEAAXcAAgABeAADAAF5AAQAAXoABQABQQAGAAFCAAcAAUMACAABRAAJAAFFAAoAAUYACwABRwILV1hfRU1JU1NJT04AAUgJAMwIAgUBRwUDbmlsAQFJAQFKCQC5CQIJAMwIAgUBawkAzAgCAgI6IAkAzAgCBQFKBQNuaWwCAAEBSwEBSgkAAgEJAQFJAQUBSgEBTAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAQFNAAIdJXNfX2FsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2gBAU4AAhAlc19fc3dhcENvbnRyYWN0AQFPAAIRJXNfX2ZhY3RvcnlDb25maWcBAVAAAhAlc19fbHBUb2tlbnNMaXN0AQFRAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBUgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBUwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVQAAg8lc19fbGVnYWN5UG9vbHMBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIQJXNfX2FkbWluUHViS2V5cwEBWAACFyVzX19hc3NldHNTdG9yZUNvbnRyYWN0AQFZAAIaJXNfX3ZvdGluZ0VtaXNzaW9uQ29udHJhY3QBAVoAAhUlc19fdXNlclBvb2xzQ29udHJhY3QBAmFhAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAW0BAmFiAAIRJXNfX3ByaWNlRGVjaW1hbHMBAmFjAAIMJXNfX3NodXRkb3duAQJhZAACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQJhZQECYWYJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhZgECYWcCAmFmAmFoCQCsAgIJAKwCAgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAgJfXwkApAMBBQJhaAECYWkBAmFqCQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQUCYWoBAmFrAQJhbAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhbAECYW0CAmFuAmFvCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhbgICX18FAmFvAghfX2NvbmZpZwECYXABAmFxBAJhcgUCYXEEAmFuCAUCYXICXzEEAmFvCAUCYXICXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhbgkAzAgCCQCkAwEFAmFvCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAW0BAmFzAAkAuQkCCQDMCAICAiVzCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAW0BAmF0AQJhdQkArAICCQCsAgICCCVzJXMlc19fBQJhdQIYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAQJhdgICYXcCYXgJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwUCYXcCAl9fBQJheAIeX19tYXBwaW5nc19fUG9vbEFzc2V0czJMcEFzc2V0AQJheQECYWYJAKwCAgIOJXMlc19fc3ByZWFkX18FAmFmAQJhegECYUEJAKwCAgkArAICAgglcyVzJXNfXwUCYUECI19fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJQb29sQXNzZXRzAQJhQgICYXcCYXgJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBQJhdwICX18JAKQDAQUCYXgCI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0AQJhQwECYUEJAKwCAgkArAICAgglcyVzJXNfXwUCYUECIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJhRAECYXUJAKwCAgkArAICAgglcyVzJXNfXwUCYXUCIF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0AQJhRQICYUYCYUcJAKwCAgkArAICCQCsAgICFCVzJXMlc19fd3hFbWlzc2lvbl9fBQJhRgICX18FAmFHAQJhSAECYWYJAKwCAgINJXMlc19faW5GZWVfXwUCYWYBAmFJAAIQJXNfX2luRmVlRGVmYXVsdAECYUoBAmFmCQCsAgICDiVzJXNfX291dEZlZV9fBQJhZgECYUsAAhElc19fb3V0RmVlRGVmYXVsdAECYUwBAmFmCQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYWYBAmFNAQJhZgkArAICAhYlcyVzX19jaGFuZ2VBbXBEZWxheV9fBQJhZgECYU4BAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbHRhX18FAmFmAQJhTwECYWYJAKwCAgIXJXMlc19fY2hhbmdlQW1wVGFyZ2V0X18FAmFmAQJhUAACFiVzX19zV2F2ZXNQcm94eUFkZHJlc3MBAmFRAAIRJXNfX3NXYXZlc0Fzc2V0SWQBAmFSAAIYJXNfX3N0YWtpbmdQcm9maXRBZGRyZXNzAQJhUwICYWYCYVQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgILbGVhc2VkUmF0aW8JAMwIAgUCYWYJAMwIAgUCYVQFA25pbAUBbQECYVUBAmFUCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhJsZWFzZWRSYXRpb0RlZmF1bHQJAMwIAgUCYVQFA25pbAUBbQECYVYCAmFmAmFUCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICFGxlYXNlZFJhdGlvVG9sZXJhbmNlCQDMCAIFAmFmCQDMCAIFAmFUBQNuaWwFAW0BAmFXAgJhZgJhVAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgptaW5CYWxhbmNlCQDMCAIFAmFmCQDMCAIFAmFUBQNuaWwFAW0BAmFYAQJhVAkAuQkCCQDMCAICBCVzJXMJAMwIAgIRbWluQmFsYW5jZURlZmF1bHQJAMwIAgUCYVQFA25pbAUBbQECYVkBAmFaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYVoJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhWgECYmEBAmFaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYVoJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhWgECYmIBAmFaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYVoJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhWgECYmMBAmJkAwkAAAIFAmJkBQFqBQR1bml0CQDZBAEFAmJkAQJiZQAEAmJmCQCiCAEJAQFWAAMJAAECBQJiZgIGU3RyaW5nBAJiZwUCYmYJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJnBQR0aGlzAAJiaAABAAJiaQACAAJiagADAAJiawAEAAJibAAFAAJibQAGAAJibgAHAAJibwAIAAJicAAJAAJicQAKAAJicgALAQJicwECYnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnQFAmJpAQJidQECYnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnQFAmJsAQJidgECYnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnQFAmJoAQJidwECYnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnQFAmJxAQJieAAEAmJmCQCiCAEJAQJhYQADCQABAgUCYmYCBlN0cmluZwQCYmcFAmJmAwkAAAIJALECAQUCYmcAAAUDbmlsCQC1CQIFAmJnBQFtBQNuaWwBAmJ5AAQCYnoJAQJiZQAEAmJmCQCdCAIFAmJ6CQEBVQADCQABAgUCYmYCBlN0cmluZwQCYmcFAmJmCQDZBAEFAmJnAwkAAQIFAmJmAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmJBCQEBSwECEVBlcm1pc3Npb24gZGVuaWVkAAJiQgkBAUsBAg9UZXN0IGVycm9yIGhlcmUBAmJDAQJiRAMJAAACCAUCYkQGY2FsbGVyBQR0aGlzBgUCYkEBAmJFAQJiRAQCYmYJAQJieQADCQABAgUCYmYCCkJ5dGVWZWN0b3IEAmJGBQJiZgMJAAACCAUCYkQPY2FsbGVyUHVibGljS2V5BQJiRgYFAmJBAwkAAQIFAmJmAgRVbml0CQECYkMBBQJiRAkAAgECC01hdGNoIGVycm9yAQJiRwsCYkgCYkkCYkoCYksCYkwCYk0CYk4CYk8CYlACYlECYlIJALkJAgkAzAgCAhYlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCQDMCAIFAmJICQDMCAIFAmJJCQDMCAIFAmJKCQDMCAIFAmJLCQDMCAIFAmJMCQDMCAIFAmJNCQDMCAIFAmJOCQDMCAIFAmJPCQDMCAIFAmJQCQDMCAIFAmJRCQDMCAIFAmJSBQNuaWwFAW0BAmJTBwJiSAJiSQJiSgJiSwJiTAJiTQJiTgkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQJiSAkAzAgCBQJiSQkAzAgCBQJiSgkAzAgCBQJiSwkAzAgCBQJiTAkAzAgCBQJiTQkAzAgCBQJiTgUDbmlsBQFtAQJiVAsCYWYCYlUCYlYCYlcCYlgCYlkCYloCY2ECY2ICY2MCY2QJALkJAgkAzAgCAhYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQDMCAIFAmFmCQDMCAIFAmJVCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJiWgkAzAgCCQCkAwEFAmNhCQDMCAIJAKQDAQUCY2IJAMwIAgkApAMBBQJjYwkAzAgCBQJjZAUDbmlsBQFtAQJjZQICY2YCY2cJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCY2YJAMwIAgkApAMBBQJjZwUDbmlsBQFtAQJjaAECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACCQC1CQIJAQJhWQEJAQJhbQIFAmFuBQJhbwUBbQECY2oCAmNrAmNsBAJjbQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWsBBQJjawAABAJjbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWQAAAAEAmNvAwkAAAIFAmNtAAAEAmNwCQBkAgUCY24FAmNsCQCVCgMFAmNwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWQABQJjcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFrAQUCY2sFAmNwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaQEFAmNwBQJjawUDbmlsBgkAlQoDBQJjbQUDbmlsBwUCY28BAmNxAQJiRAQCY3IJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBVwAFAW4FAW0DCQEPY29udGFpbnNFbGVtZW50AgUCY3IJANgEAQgFAmJED2NhbGxlclB1YmxpY0tleQYEAmNzCQECYkUBBQJiRAMJAAACBQJjcwUCY3MGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjdAMCYVoCY3UCY3YJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYVoJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCY3UFAmN2AQJjdwICYUYCYUcEAmFuCQCfCAEJAQJhawEFAmFGBAJhbwkAnwgBCQECYWsBBQJhRwMDCQAAAgUCYW4FBHVuaXQGCQAAAgUCYW8FBHVuaXQHBAJjeAkApAMBCQEFdmFsdWUBBQJhbgQCY3kJAKQDAQkBBXZhbHVlAQUCYW8EAmN6CQCiCAEJAQJhbQIFAmN4BQJjeQQCY0EJAKIIAQkBAmFtAgUCY3kFAmN4BAJjQgMJAQIhPQIFAmN6BQR1bml0BgkBAiE9AgUCY0EFBHVuaXQFAmNCAQJjQwECYUEEAmNpCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhegEFAmFBBQFtBAJhbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNpAAEEAmFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2kAAgQCYUYJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFuBAJhRwkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFpAQUCYW8EAmJWCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYUMBBQJhQQkAlwoFBQJhRgUCYUcFAmJWBQJhbgUCYW8BAmNEAQJhQQQCY0UJAQJjQwEFAmFBBAJhRggFAmNFAl8xBAJhRwgFAmNFAl8yBAJiVggFAmNFAl8zBAJhbggFAmNFAl80BAJhbwgFAmNFAl81BAJjRgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJjRwkA/AcEBQJjRgIWZ2V0UG9vbENyZWF0b3JSRUFET05MWQkAzAgCBQJhRgkAzAgCBQJhRwUDbmlsBQNuaWwFAmNHAQJjSAICY0kCY0oEAmNLCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjSQMJAAACBQJjSgIFV0FWRVMICQDvBwEFAmNLB3JlZ3VsYXIEAmFUCQCbAwEFAmNKCQDwBwIFAmNLBQJhVAECY0wBAmFBBAJjTQkBAmNDAQUCYUEEAmFGCAUCY00CXzEEAmFHCAUCY00CXzIEAmJWCAUCY00CXzMEAmFuCAUCY00CXzQEAmFvCAUCY00CXzUDCQAAAgkBAmNIAgUCYUEFAmFGAAAJAAACCQECY0gCBQJhQQUCYUcAAAchAmJEARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYVkBCQEBTgACYkQBGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZAgJhZgJhVAQCY04EAmJmCQCaCAIFBHRoaXMJAQJhUwIFAmFmBQJhVAMJAAECBQJiZgIDSW50BAJjTwUCYmYJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJjTwUDbmlsBQNuaWwEAmNQCQCaCAIFBHRoaXMJAQJhVQEFAmFUAwkAAQIFAmNQAgNJbnQEAmNRBQJjUAkAlAoCBgkAlwMBCQDMCAIAZAkAzAgCCQCWAwEJAMwIAgAACQDMCAIFAmNRBQNuaWwFA25pbAkAlAoCBwAABAJjUggFAmNOAl8xBAJjUwgFAmNOAl8yBAJjVAQCYmYJAJoIAgUEdGhpcwkBAmFXAgUCYWYFAmFUAwkAAQIFAmJmAgNJbnQEAmNVBQJiZgkAlgMBCQDMCAIAAAkAzAgCBQJjVQUDbmlsBAJjUAkAmggCBQR0aGlzCQECYVgBBQJhVAMJAAECBQJjUAIDSW50BAJjVgUCY1AJAJYDAQkAzAgCAAAJAMwIAgUCY1YFA25pbAAABAJjVwMJAAACBQJhVAIFV0FWRVMJAJUKAwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVAAAgAJAJ0IAgUEdGhpcwkBC3ZhbHVlT3JFbHNlAgkBAmFRAAIABQFjCQCVCgMCAAIAAAAEAmNYCAUCY1cCXzEEAmNZCAUCY1cCXzIEAmNaCAUCY1cCXzMEAmRhCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhUgACAAkAlAoCBQNuaWwJAJkKBwUCY1IFAmNTBQJjVAUCY1gFAmNZBQJjWgUCZGECYkQBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJkYgJkYwMDCQAAAgUCZGICLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCZGMCBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmRkCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhawEFAmRiBAJkZQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkYwQCZGYJAJ0IAgUEdGhpcwkBAmF2AgkApAMBBQJkZAkApAMBBQJkZQQCZGcDCQAAAgUCZGYFBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCZGYABAkAlAoCBQNuaWwFAmRnAmJEASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmRoCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYUQBBQJkaAIAAmJEAQtjb25zdHJ1Y3RvcggCZGkCZGoCYkoCYksCYkwCYk0CZGsCZGwEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlMHBQJkaQUCZGoFAmJKBQJiSwUCYkwFAmJNBQJkawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZGwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMgECZG4EAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmRvCQCnCAEJANkEAQUCZG4DCQAAAgUCZG8FAmRvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZG4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMwQCYk8CYlACYlECYlIEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmJ0CQC1CQIJAQJhWQEJAQFPAAUBbQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJAQJiRwsJAJEDAgUCYnQAAQkAkQMCBQJidAACCQCRAwIFAmJ0AAMJAJEDAgUCYnQABAkAkQMCBQJidAAFCQCRAwIFAmJ0AAYJAJEDAgUCYnQABwUCYk8FAmJQBQJiUQUCYlIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNAICZHACZHEEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJkcAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJALkJAgUCZHEFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNQECZHIEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgABQJkcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ1jb25zdHJ1Y3RvclY2AgJkcwJkdAQCZHUJAMwIAgkBAmJFAQUCYkQJAMwIAgMJAQIhPQIJAKYIAQUCZHMFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCZHUFAmR1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAkAuQkCBQJkdAUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQlzZXRBZG1pbnMBAmR2BAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAAkAuQkCBQJkdgUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ9hY3RpdmF0ZU5ld1Bvb2wIAmFmAmJXAmJYAmR3AmR4AmR5AmNkAmR6BAJkbQkBAmNxAQUCYkQDCQAAAgUCZG0FAmRtAwkBCWlzRGVmaW5lZAEJAKIIAQkBAmF6AQUCYWYJAQFLAQkArAICCQCsAgICDVBvb2wgYWRkcmVzcyAFAmFmAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCZEEJAQJjagIFAmJXAAEEAmRCCAUCZEECXzEEAmRDCQECY2oCBQJiWAMIBQJkQQJfMwACAAEEAmRECAUCZEMCXzEEAmRFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAmFmBAJkRgkBEUBleHRyTmF0aXZlKDEwNTcpAQkBAVEABAJkRwkBAmN3AgUCYlcFAmJYAwUCZEcJAQFLAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCYlcCAS8FAmJYAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJkSAkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYW0CCQCkAwEFAmRCCQCkAwEFAmREBAJkSQMJAAACBQJiVwIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiVwhkZWNpbWFscwAAAAAFBERPV04EAmRKAwkAAAIFAmJYAgVXQVZFUwUBbAkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJYCGRlY2ltYWxzAAAAAAUERE9XTgQCZEsJAMIIBQUCZHcFAmR4AAEACAYEAmJWCQC4CAEFAmRLBAJkTAkA2AQBBQJiVgQCZE0JAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYCCGFjdGl2YXRlCQDMCAIFAmJXCQDMCAIFAmJYBQNuaWwFA25pbAMJAAACBQJkTQUCZE0DCQECIT0CBQJkTQIHc3VjY2VzcwkBAUsBAiNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgQCZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhWQEJAQFYAAQCZE4JAPwHBAUCZHICDmNyZWF0ZU9yVXBkYXRlCQDMCAIFAmRMCQDMCAIFAmR3CQDMCAIHBQNuaWwFA25pbAMJAAACBQJkTgUCZE4EAmRPCQD8BwQFAmRyAghhZGRMYWJlbAkAzAgCBQJkTAkAzAgCBQFoBQNuaWwFA25pbAMJAAACBQJkTwUCZE8EAmRQCQD8BwQFAmRyAgdzZXRMb2dvCQDMCAIFAmRMCQDMCAIFAmR6BQNuaWwFA25pbAMJAAACBQJkUAUCZFAEAmRRCQD8BwQFAmRyAg1hZGRBc3NldHNMaW5rCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmRMBQNuaWwFA25pbAMJAAACBQJkUQUCZFEEAmRSCQD8BwQFAmRyAhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCYlcFA25pbAUDbmlsAwkAAAIFAmRSBQJkUgkAlAoCCQDOCAIJAM4IAggFAmRBAl8yCAUCZEMCXzIJAMwIAgUCZEsJAMwIAgkBBEJ1cm4CBQJiVgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZEIJAKQDAQUCZEQJAQJiVAsFAmFmCQCkAwEFAW8FAmRMBQJiVwUCYlgFAmRJBQJkSgUCZEIFAmREBQFsBQJjZAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXQBBQJkTAkBAmNlAgUCZEIFAmRECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdgIJAKQDAQUCZEIJAKQDAQUCZEQJAKwCAgIEJXNfXwUCZEwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF6AQUCYWYJAQJjZQIFAmRCBQJkRAkAzAgCCQELU3RyaW5nRW50cnkCCQECYUICBQJkQgUCZEQFAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRAEFAmRMBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUMBBQJhZgUCZEwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQEFAmFmBQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF5AQUCYWYFAWkFA25pbAUCZEwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBCm1hbmFnZVBvb2wCAmFmAmRTBAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJkVAkBAmNoAQUCYWYEAmJVCQCRAwIFAmRUBQF3BAJkTAkAkQMCBQJkVAUBeAQCYlcJAJEDAgUCZFQFAXkEAmJYCQCRAwIFAmRUBQF6BAJkSQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFBBAJkSgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFCBAJkQgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFDBAJkRAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFEBAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFFBAJjZAkAkQMCBQJkVAUBRgkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRCCQCkAwEFAmRECQECYlQLBQJhZgkApAMBBQJkUwUCZEwFAmJXBQJiWAUCZEkFAmRKBQJkQgUCZEQFAmRVBQJjZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQRlbWl0AQJkVgQCZFcIBQJiRAZjYWxsZXIEAmRYCAUCYkQMb3JpZ2luQ2FsbGVyBAJkWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZFcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkWgkA2QQBBQJkWQQCZHEJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBVAAFAW4FAW0EAmRwCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAVMAAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCZFYFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJkcQkApQgBBQJkVwkAlAoCBQNuaWwFAmRwCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkWgUCZFYGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiRAZjYWxsZXIFAmRWBQJkWgUDbmlsAgdzdWNjZXNzAmJEAQRidXJuAQJlYQQCZFcIBQJiRAZjYWxsZXIEAmRYCAUCYkQMb3JpZ2luQ2FsbGVyBAJlYgkBBXZhbHVlAQkAkQMCCAUCYkQIcGF5bWVudHMAAAQCZWMJAQV2YWx1ZQEIBQJlYgZhbW91bnQEAmVkCQDYBAEJAQV2YWx1ZQEIBQJlYgdhc3NldElkBAJlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZFcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZWQFAmVlCQEBSwECFUludmFsaWQgYXNzZXQgcGFzc2VkLgMJAQIhPQIFAmVhBQJlYwkBAUsBAhZJbnZhbGlkIGFtb3VudCBwYXNzZWQuBAJkWgkA2QQBBQJlZQkAlAoCCQDMCAIJAQRCdXJuAgUCZFoFAmVhBQNuaWwCB3N1Y2Nlc3MCYkQBDG1vZGlmeVdlaWdodAICYlYCZWYEAmRtAwkAAAIJANgEAQgIBQJiRAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVkAAgAGCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmFBCQECYVkBCQECYUQBBQJiVgQCZWcJAQJhZQEFAmFBBAJlaAkBAmFlAQUBZwQCZWkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZWgAAAQCZHkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZWcAAAQCZWoFAmVmBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmRpCQECYnYBBQJidAQCZWsJAPwHBAUCZGkCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmJWCQDMCAIFAmFBBQNuaWwFA25pbAMJAAACBQJlawUCZWsEAmVsAwkAAAIFAmVpAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZWgAAAUDbmlsBAJlbQkBAmFnAgUCYUEAAAQCZW4JAJ8IAQUCZW0EAmVvAwkAAAIFAmVuBQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUCZW0FA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVnBQJlagUDbmlsBQJlbAUCZW8JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBDW1vZGlmeVdlaWdodHMEAmVwAmVxAmVyAmVzBAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJldAkAaQIJAGgCAAUFAWYAZAQCZXUJAGkCCQBoAgAFBQFmAGQEAmV2CQBpAgkAaAIABQUBZgBkBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmV3CQECYnYBBQJidAQCZXgJAQJidwEFAmJ0BAJleQkBAmFlAQUCZXAEAmV6CQECYWUBBQJlcQQCZUEJAQJhZQEFAmVyBAJlQgkBAmFlAQUCZXMEAmVDCQECYmIBBQJleQQCZUQJAQJiYgEFAmV6BAJlRQkAZQIFAmVDBQJldgQCZUYJAGUCBQJlRAUCZXYDCQBnAgAABQJlRQkBAUsBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZUUDCQBnAgAABQJlRgkBAUsBCQCsAgICFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAKQDAQUCZUYEAmVHCQECYVkBCQECYUMBBQJlcAQCZUgJAQJhWQEJAQJhQwEFAmVxBAJlSQkBAmFZAQkBAmFDAQUCZXIEAmVKCQECYVkBCQECYUMBBQJlcwQCZUsJAPwHBAUCZXcCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVHCQDMCAIFAmVwBQNuaWwFA25pbAMJAAACBQJlSwUCZUsEAmVMCQD8BwQFAmV3Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJlSAkAzAgCBQJlcQUDbmlsBQNuaWwDCQAAAgUCZUwFAmVMBAJlTQkA/AcEBQJldwIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZUkJAMwIAgUCZXIFA25pbAUDbmlsAwkAAAIFAmVNBQJlTQQCZU4JAPwHBAUCZXcCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVKCQDMCAIFAmVzBQNuaWwFA25pbAMJAAACBQJlTgUCZU4JAMwIAgkBDEludGVnZXJFbnRyeQIFAmV5BQJlRQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXoFAmVGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlQQUCZXQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVCBQJldQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXAAAAUCZUMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVxAAAFAmVECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlcgAABQJldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXMAAAUCZXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZU8EAmJmCQCgCAEJAQJhRQIFAmFGBQJhRwMJAAECBQJiZgIHQm9vbGVhbgQCY1UFAmJmBQJjVQcJAJQKAgUDbmlsBQJlTwJiRAEWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAICYUYCYUcEAmRtCQECY3EBBQJiRAMJAAACBQJkbQUCZG0JAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAmFFAgUCYUYFAmFHBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZG0DCQAAAggFAmJEBmNhbGxlcgUEdGhpcwYJAQJjcQEFAmJEAwkAAAIFAmRtBQJkbQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARJvblZlcmlmaWNhdGlvbkxvc3MBAmFUBAJkbQMJAAACCQDYBAEICAUCYkQGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFYAAIABgkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJkdAkBAmJ4AAQCZVADCQBmAgkAkAMBBQJkdAAABgkBAUsBAhRpbnZhbGlkIHByaWNlIGFzc2V0cwMJAAACBQJlUAUCZVAKAQJlUQICZVICZVMEAmNPCQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUCYVQJAMwIAgUCZVMFA25pbAUDbmlsAwkAAAIFAmNPBQJjTwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZVQKAAJlVQUCZHQKAAJlVgkAkAMBBQJlVQoAAmVXBQR1bml0CgECZVgCAmVZAmVaAwkAZwIFAmVaBQJlVgUCZVkJAQJlUQIFAmVZCQCRAwIFAmVVBQJlWgoBAmZhAgJlWQJlWgMJAGcCBQJlWgUCZVYFAmVZCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTEJAQJmYQIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIFAmVXAAAAAQACAAMABAAFAAYABwAIAAkACgALAwkAAAIFAmVUBQJlVAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFmBAJkVAkBAmNoAQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkVAUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFEBAJmYgkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXABBQJhcQcEAmZjCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcwAHCQCUCgIFA25pbAMFAmZjBgUCZmICYkQBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmZAkBAmN0AwkBAmFIAQUCYWYJAQJhSQAAAAkAlAoCBQNuaWwFAmZkAmJEARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZkCQECY3QDCQECYUoBBQJhZgkBAmFLAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZkAmJEARBwb29sSW5mb1JFQURPTkxZAgJmZQJmZgQCZmcJAJoIAgUEdGhpcwkBAmFrAQUCZmUEAmZoCQCaCAIFBHRoaXMJAQJhawEFAmZmBAJmaQkAnQgCBQR0aGlzCQECYUICCQEFdmFsdWUBBQJmZwkBBXZhbHVlAQUCZmgEAmZqCQCdCAIFBHRoaXMJAQJhQwEJAQV2YWx1ZQEFAmZpBAJkRwMDCQEJaXNEZWZpbmVkAQUCZmcJAQlpc0RlZmluZWQBBQJmaAcJAQlpc0RlZmluZWQBBQJmaQcEAmZrAwUCZEcJAJQKAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUCZmkJAQJiYwEJAQV2YWx1ZQEFAmZqBQR1bml0CQCUCgIFA25pbAUCZmsCYkQBFWdldFBvb2xTdGF0dXNSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY3oFAXcCYkQBFWdldFBvb2xDb25maWdSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsBQJjegJiRAEgZ2V0UG9vbENvbmZpZ0J5THBBc3NldElkUkVBRE9OTFkBAmRMBAJjaQkAtQkCCQECYVkBCQECYXQBBQJkTAUBbQQCYW4JAJEDAgUCY2kAAQQCYW8JAJEDAgUCY2kAAgQCY3oJALUJAgkBAmFZAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY3oCYkQBEnBvb2xFeGlzdHNSRUFET05MWQICYUYCYUcJAJQKAgUDbmlsCQECY3cCBQJhRgUCYUcCYkQBG3NraXBPcmRlclZhbGlkYXRpb25SRUFET05MWQECYWYJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhTAEFAmFmBwJiRAEaZ2V0Q2hhbmdlQW1wQ29uZmlnUkVBRE9OTFkBAmFmBAJmbAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFNAQUCYWYEAmZtCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYU4BBQJhZgQCZm4JARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhTwEFAmFmCQCUCgIFA25pbAkAzAgCBQJmbAkAzAgCBQJmbQkAzAgCBQJmbgUDbmlsAmJEARVnZXRQb29sV2VpZ2h0UkVBRE9OTFkBAmJWBAJhZgkBAmFZAQkBAmFEAQUCYlYEAmZvCQELdmFsdWVPckVsc2UCCQCfCAEJAQJhZQEFAmFmAAAJAJQKAgUDbmlsBQJmbwJiRAEKZGVsZXRlUG9vbAECYUEEAmRtAwMJAQJiRQEFAmJEBgMJAQJjTAEFAmFBCQAAAgkApQgBCAUCYkQGY2FsbGVyCQECY0QBBQJhQQcGBQJiQQMJAAACBQJkbQUCZG0EAmZwAwkAAAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFlAQUCYUEAAAAABgkBAUsBAhdQb29sIHdlaWdodCBpcyBub3QgWmVybwMJAAACBQJmcAUCZnAEAmZxCQECY0MBBQJhQQQCYUYIBQJmcQJfMQQCYUcIBQJmcQJfMgQCYlYIBQJmcQJfMwQCYW4IBQJmcQJfNAQCYW8IBQJmcQJfNQQCY0YJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCZnIJAPwHBAUCY0YCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZyBQJmcgQCZHMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFZAAQCZnMJAPwHBAUCZHMCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZzBQJmcwQCZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFYAAQCZnQJAPwHBAUCZHICCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZ0BQJmdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUMBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXYCCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgIFAmFuBQJhbwkAzAgCCQELRGVsZXRlRW50cnkBCQECYW0CCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWUBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXkBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUwBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU0BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU4BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU8BBQJhQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmdQECZnYABAJmdwQCYmYJAQJieQADCQABAgUCYmYCCkJ5dGVWZWN0b3IEAmJGBQJiZgUCYkYDCQABAgUCYmYCBFVuaXQIBQJmdQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZnUJYm9keUJ5dGVzCQCRAwIIBQJmdQZwcm9vZnMAAAUCZnc0BvWU", "height": 2629255, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 37DqwX9n5E8Z3eewpmJjkKLRag6cPQPiogiFf2t3sWaF Next: mXumWeCWX3rChbHAArh4uUUWhWWoM78zxw4KZ3tTExA Diff:
OldNewDifferences
409409 }
410410
411411
412+func cC (aA) = {
413+ let ci = split(getStringValue(az(aA)), m)
414+ let an = parseIntValue(ci[1])
415+ let ao = parseIntValue(ci[2])
416+ let aF = getStringValue(ai(an))
417+ let aG = getStringValue(ai(ao))
418+ let bV = getStringValue(aC(aA))
419+ $Tuple5(aF, aG, bV, an, ao)
420+ }
421+
422+
423+func cD (aA) = {
424+ let cE = cC(aA)
425+ let aF = cE._1
426+ let aG = cE._2
427+ let bV = cE._3
428+ let an = cE._4
429+ let ao = cE._5
430+ let cF = addressFromStringValue(getStringValue(Z()))
431+ let cG = invoke(cF, "getPoolCreatorREADONLY", [aF, aG], nil)
432+ cG
433+ }
434+
435+
436+func cH (cI,cJ) = {
437+ let cK = addressFromStringValue(cI)
438+ if ((cJ == "WAVES"))
439+ then wavesBalance(cK).regular
440+ else {
441+ let aT = toBytes(cJ)
442+ assetBalance(cK, aT)
443+ }
444+ }
445+
446+
447+func cL (aA) = {
448+ let cM = cC(aA)
449+ let aF = cM._1
450+ let aG = cM._2
451+ let bV = cM._3
452+ let an = cM._4
453+ let ao = cM._5
454+ if ((cH(aA, aF) == 0))
455+ then (cH(aA, aG) == 0)
456+ else false
457+ }
458+
459+
412460 @Callable(bD)
413461 func getSwapContractREADONLY () = $Tuple2(nil, aY(N()))
414462
416464
417465 @Callable(bD)
418466 func getPoolLeaseConfigREADONLY (af,aT) = {
419- let cC = {
467+ let cN = {
420468 let bf = getInteger(this, aS(af, aT))
421469 if ($isInstanceOf(bf, "Int"))
422470 then {
423- let cD = bf
424- $Tuple2(true, min([100, max([0, cD])]))
471+ let cO = bf
472+ $Tuple2(true, min([100, max([0, cO])]))
425473 }
426474 else {
427- let cE = getInteger(this, aU(aT))
428- if ($isInstanceOf(cE, "Int"))
475+ let cP = getInteger(this, aU(aT))
476+ if ($isInstanceOf(cP, "Int"))
429477 then {
430- let cF = cE
431- $Tuple2(true, min([100, max([0, cF])]))
478+ let cQ = cP
479+ $Tuple2(true, min([100, max([0, cQ])]))
432480 }
433481 else $Tuple2(false, 0)
434482 }
435483 }
436- let cG = cC._1
437- let cH = cC._2
438- let cI = {
484+ let cR = cN._1
485+ let cS = cN._2
486+ let cT = {
439487 let bf = getInteger(this, aW(af, aT))
440488 if ($isInstanceOf(bf, "Int"))
441489 then {
442- let cJ = bf
443- max([0, cJ])
490+ let cU = bf
491+ max([0, cU])
444492 }
445493 else {
446- let cE = getInteger(this, aX(aT))
447- if ($isInstanceOf(cE, "Int"))
494+ let cP = getInteger(this, aX(aT))
495+ if ($isInstanceOf(cP, "Int"))
448496 then {
449- let cK = cE
450- max([0, cK])
497+ let cV = cP
498+ max([0, cV])
451499 }
452500 else 0
453501 }
454502 }
455- let cL = if ((aT == "WAVES"))
503+ let cW = if ((aT == "WAVES"))
456504 then $Tuple3(valueOrElse(getString(this, aP()), ""), getString(this, valueOrElse(aQ(), "")), c)
457505 else $Tuple3("", "", 0)
458- let cM = cL._1
459- let cN = cL._2
460- let cO = cL._3
461- let cP = valueOrElse(getString(this, aR()), "")
462- $Tuple2(nil, $Tuple7(cG, cH, cI, cM, cN, cO, cP))
506+ let cX = cW._1
507+ let cY = cW._2
508+ let cZ = cW._3
509+ let da = valueOrElse(getString(this, aR()), "")
510+ $Tuple2(nil, $Tuple7(cR, cS, cT, cX, cY, cZ, da))
463511 }
464512
465513
466514
467515 @Callable(bD)
468-func getLpAssetFromPoolAssetsREADONLY (cQ,cR) = if (if ((cQ == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
469- then (cR == "WAVES")
516+func getLpAssetFromPoolAssetsREADONLY (db,dc) = if (if ((db == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
517+ then (dc == "WAVES")
470518 else false)
471519 then $Tuple2(nil, unit)
472520 else {
473- let cS = value(getInteger(this, ak(cQ)))
474- let cT = value(getInteger(this, ak(cR)))
475- let cU = getString(this, av(toString(cS), toString(cT)))
476- let cV = if ((cU == unit))
521+ let dd = value(getInteger(this, ak(db)))
522+ let de = value(getInteger(this, ak(dc)))
523+ let df = getString(this, av(toString(dd), toString(de)))
524+ let dg = if ((df == unit))
477525 then unit
478- else drop(value(cU), 4)
479- $Tuple2(nil, cV)
526+ else drop(value(df), 4)
527+ $Tuple2(nil, dg)
480528 }
481529
482530
483531
484532 @Callable(bD)
485-func getPoolAddressFromLpAssetREADONLY (cW) = $Tuple2(nil, valueOrElse(getString(this, aD(cW)), ""))
533+func getPoolAddressFromLpAssetREADONLY (dh) = $Tuple2(nil, valueOrElse(getString(this, aD(dh)), ""))
486534
487535
488536
489537 @Callable(bD)
490-func constructor (cX,cY,bJ,bK,bL,bM,cZ,da) = {
491- let db = bE(bD)
492- if ((db == db))
493- then [StringEntry(O(), bS(cX, cY, bJ, bK, bL, bM, cZ)), IntegerEntry(ab(), da)]
538+func constructor (di,dj,bJ,bK,bL,bM,dk,dl) = {
539+ let dm = bE(bD)
540+ if ((dm == dm))
541+ then [StringEntry(O(), bS(di, dj, bJ, bK, bL, bM, dk)), IntegerEntry(ab(), dl)]
494542 else throw("Strict value is not equal to itself.")
495543 }
496544
497545
498546
499547 @Callable(bD)
500-func constructorV2 (dc) = {
501- let db = bE(bD)
502- if ((db == db))
548+func constructorV2 (dn) = {
549+ let dm = bE(bD)
550+ if ((dm == dm))
503551 then {
504- let dd = addressFromPublicKey(fromBase58String(dc))
505- if ((dd == dd))
506- then [StringEntry(R(), dc)]
552+ let do = addressFromPublicKey(fromBase58String(dn))
553+ if ((do == do))
554+ then [StringEntry(R(), dn)]
507555 else throw("Strict value is not equal to itself.")
508556 }
509557 else throw("Strict value is not equal to itself.")
513561
514562 @Callable(bD)
515563 func constructorV3 (bO,bP,bQ,bR) = {
516- let db = bE(bD)
517- if ((db == db))
564+ let dm = bE(bD)
565+ if ((dm == dm))
518566 then {
519567 let bt = split(aY(O()), m)
520568 [StringEntry(O(), bG(bt[1], bt[2], bt[3], bt[4], bt[5], bt[6], bt[7], bO, bP, bQ, bR))]
525573
526574
527575 @Callable(bD)
528-func constructorV4 (de,df) = {
529- let db = bE(bD)
530- if ((db == db))
531- then [StringEntry(S(), de), StringEntry(T(), makeString(df, m))]
576+func constructorV4 (dp,dq) = {
577+ let dm = bE(bD)
578+ if ((dm == dm))
579+ then [StringEntry(S(), dp), StringEntry(T(), makeString(dq, m))]
532580 else throw("Strict value is not equal to itself.")
533581 }
534582
535583
536584
537585 @Callable(bD)
538-func constructorV5 (dg) = {
539- let db = bE(bD)
540- if ((db == db))
541- then [StringEntry(X(), dg)]
586+func constructorV5 (dr) = {
587+ let dm = bE(bD)
588+ if ((dm == dm))
589+ then [StringEntry(X(), dr)]
542590 else throw("Strict value is not equal to itself.")
543591 }
544592
545593
546594
547595 @Callable(bD)
548-func constructorV6 (dh,di) = {
549- let dj = [bE(bD), if ((addressFromString(dh) != unit))
596+func constructorV6 (ds,dt) = {
597+ let du = [bE(bD), if ((addressFromString(ds) != unit))
550598 then true
551599 else "invalid voting emission contract address"]
552- if ((dj == dj))
553- then [StringEntry(Y(), dh), StringEntry(aa(), makeString(di, m))]
600+ if ((du == du))
601+ then [StringEntry(Y(), ds), StringEntry(aa(), makeString(dt, m))]
554602 else throw("Strict value is not equal to itself.")
555603 }
556604
557605
558606
559607 @Callable(bD)
560-func setAdmins (dk) = {
561- let db = bE(bD)
562- if ((db == db))
563- then [StringEntry(W(), makeString(dk, m))]
608+func setAdmins (dv) = {
609+ let dm = bE(bD)
610+ if ((dm == dm))
611+ then [StringEntry(W(), makeString(dv, m))]
564612 else throw("Strict value is not equal to itself.")
565613 }
566614
567615
568616
569617 @Callable(bD)
570-func activateNewPool (af,bW,bX,dl,dm,dn,cd,do) = {
571- let db = cq(bD)
572- if ((db == db))
618+func activateNewPool (af,bW,bX,dw,dx,dy,cd,dz) = {
619+ let dm = cq(bD)
620+ if ((dm == dm))
573621 then if (isDefined(getString(az(af))))
574622 then K((("Pool address " + af) + " already registered."))
575623 else {
576- let dp = cj(bW, 1)
577- let dq = dp._1
578- let dr = cj(bX, if (dp._3)
624+ let dA = cj(bW, 1)
625+ let dB = dA._1
626+ let dC = cj(bX, if (dA._3)
579627 then 2
580628 else 1)
581- let ds = dr._1
582- let dt = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
583- let du = getBinaryValue(Q())
584- let dv = cw(bW, bX)
585- if (dv)
629+ let dD = dC._1
630+ let dE = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
631+ let dF = getBinaryValue(Q())
632+ let dG = cw(bW, bX)
633+ if (dG)
586634 then K((((("Pool " + bW) + "/") + bX) + " has already been activated."))
587635 else {
588- let dw = value(getString(this, am(toString(dq), toString(ds))))
589- let dx = if ((bW == "WAVES"))
636+ let dH = value(getString(this, am(toString(dB), toString(dD))))
637+ let dI = if ((bW == "WAVES"))
590638 then l
591639 else pow(10, 0, value(assetInfo(fromBase58String(bW))).decimals, 0, 0, DOWN)
592- let dy = if ((bX == "WAVES"))
640+ let dJ = if ((bX == "WAVES"))
593641 then l
594642 else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
595- let dz = Issue(dl, dm, 1, 8, true)
596- let bV = calculateAssetId(dz)
597- let dA = toBase58String(bV)
598- let dB = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
599- if ((dB == dB))
600- then if ((dB != "success"))
643+ let dK = Issue(dw, dx, 1, 8, true)
644+ let bV = calculateAssetId(dK)
645+ let dL = toBase58String(bV)
646+ let dM = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
647+ if ((dM == dM))
648+ then if ((dM != "success"))
601649 then K("Pool initialisation error happened.")
602650 else {
603- let dg = addressFromStringValue(aY(X()))
604- let dC = invoke(dg, "createOrUpdate", [dA, dl, false], nil)
605- if ((dC == dC))
651+ let dr = addressFromStringValue(aY(X()))
652+ let dN = invoke(dr, "createOrUpdate", [dL, dw, false], nil)
653+ if ((dN == dN))
606654 then {
607- let dD = invoke(dg, "addLabel", [dA, h], nil)
608- if ((dD == dD))
655+ let dO = invoke(dr, "addLabel", [dL, h], nil)
656+ if ((dO == dO))
609657 then {
610- let dE = invoke(dg, "setLogo", [dA, do], nil)
611- if ((dE == dE))
658+ let dP = invoke(dr, "setLogo", [dL, dz], nil)
659+ if ((dP == dP))
612660 then {
613- let dF = invoke(dg, "addAssetsLink", [bW, bX, dA], nil)
614- if ((dF == dF))
661+ let dQ = invoke(dr, "addAssetsLink", [bW, bX, dL], nil)
662+ if ((dQ == dQ))
615663 then {
616- let dG = invoke(dg, "increaseAssetPoolsNumber", [bW], nil)
617- if ((dG == dG))
618- then $Tuple2(((dp._2 ++ dr._2) ++ [dz, Burn(bV, 1), StringEntry(am(toString(dq), toString(ds)), bT(af, toString(o), dA, bW, bX, dx, dy, dq, ds, l, cd)), StringEntry(at(dA), ce(dq, ds)), StringEntry(av(toString(dq), toString(ds)), ("%s__" + dA)), StringEntry(az(af), ce(dq, ds)), StringEntry(aB(dq, ds), af), StringEntry(aD(dA), af), StringEntry(aC(af), dA), IntegerEntry(ae(af), dn), IntegerEntry(ay(af), i)]), dA)
664+ let dR = invoke(dr, "increaseAssetPoolsNumber", [bW], nil)
665+ if ((dR == dR))
666+ then $Tuple2(((dA._2 ++ dC._2) ++ [dK, Burn(bV, 1), StringEntry(am(toString(dB), toString(dD)), bT(af, toString(o), dL, bW, bX, dI, dJ, dB, dD, l, cd)), StringEntry(at(dL), ce(dB, dD)), StringEntry(av(toString(dB), toString(dD)), ("%s__" + dL)), StringEntry(az(af), ce(dB, dD)), StringEntry(aB(dB, dD), af), StringEntry(aD(dL), af), StringEntry(aC(af), dL), IntegerEntry(ae(af), dy), IntegerEntry(ay(af), i)]), dL)
619667 else throw("Strict value is not equal to itself.")
620668 }
621669 else throw("Strict value is not equal to itself.")
635683
636684
637685 @Callable(bD)
638-func managePool (af,dH) = {
639- let db = bE(bD)
640- if ((db == db))
686+func managePool (af,dS) = {
687+ let dm = bE(bD)
688+ if ((dm == dm))
641689 then {
642- let dI = ch(af)
643- let bU = dI[w]
644- let dA = dI[x]
645- let bW = dI[y]
646- let bX = dI[z]
647- let dx = parseIntValue(dI[A])
648- let dy = parseIntValue(dI[B])
649- let dq = parseIntValue(dI[C])
650- let ds = parseIntValue(dI[D])
651- let dJ = parseIntValue(dI[E])
652- let cd = dI[F]
653-[StringEntry(am(toString(dq), toString(ds)), bT(af, toString(dH), dA, bW, bX, dx, dy, dq, ds, dJ, cd))]
690+ let dT = ch(af)
691+ let bU = dT[w]
692+ let dL = dT[x]
693+ let bW = dT[y]
694+ let bX = dT[z]
695+ let dI = parseIntValue(dT[A])
696+ let dJ = parseIntValue(dT[B])
697+ let dB = parseIntValue(dT[C])
698+ let dD = parseIntValue(dT[D])
699+ let dU = parseIntValue(dT[E])
700+ let cd = dT[F]
701+[StringEntry(am(toString(dB), toString(dD)), bT(af, toString(dS), dL, bW, bX, dI, dJ, dB, dD, dU, cd))]
654702 }
655703 else throw("Strict value is not equal to itself.")
656704 }
658706
659707
660708 @Callable(bD)
661-func emit (dK) = {
662- let dL = bD.caller
663- let dM = bD.originCaller
664- let dN = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
665- let dO = fromBase58String(dN)
666- let df = split(valueOrElse(getString(T()), n), m)
667- let de = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
668- if ((0 >= dK))
709+func emit (dV) = {
710+ let dW = bD.caller
711+ let dX = bD.originCaller
712+ let dY = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
713+ let dZ = fromBase58String(dY)
714+ let dq = split(valueOrElse(getString(T()), n), m)
715+ let dp = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
716+ if ((0 >= dV))
669717 then nil
670- else if (containsElement(df, toString(dL)))
671- then $Tuple2(nil, de)
672- else $Tuple2([Reissue(dO, dK, true), ScriptTransfer(bD.caller, dK, dO)], "success")
718+ else if (containsElement(dq, toString(dW)))
719+ then $Tuple2(nil, dp)
720+ else $Tuple2([Reissue(dZ, dV, true), ScriptTransfer(bD.caller, dV, dZ)], "success")
673721 }
674722
675723
676724
677725 @Callable(bD)
678-func burn (dP) = {
679- let dL = bD.caller
680- let dM = bD.originCaller
681- let dQ = value(bD.payments[0])
682- let dR = value(dQ.amount)
683- let dS = toBase58String(value(dQ.assetId))
684- let dT = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
685- if ((dS != dT))
726+func burn (ea) = {
727+ let dW = bD.caller
728+ let dX = bD.originCaller
729+ let eb = value(bD.payments[0])
730+ let ec = value(eb.amount)
731+ let ed = toBase58String(value(eb.assetId))
732+ let ee = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
733+ if ((ed != ee))
686734 then K("Invalid asset passed.")
687- else if ((dP != dR))
735+ else if ((ea != ec))
688736 then K("Invalid amount passed.")
689737 else {
690- let dO = fromBase58String(dT)
691- $Tuple2([Burn(dO, dP)], "success")
738+ let dZ = fromBase58String(ee)
739+ $Tuple2([Burn(dZ, ea)], "success")
692740 }
693741 }
694742
695743
696744
697745 @Callable(bD)
698-func modifyWeight (bV,dU) = {
699- let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
746+func modifyWeight (bV,ef) = {
747+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
700748 then true
701749 else bE(bD)
702- if ((db == db))
750+ if ((dm == dm))
703751 then {
704752 let aA = aY(aD(bV))
705- let dV = ae(aA)
706- let dW = ae(g)
707- let dX = valueOrElse(getInteger(dW), 0)
708- let dn = valueOrElse(getInteger(dV), 0)
709- let dY = dU
753+ let eg = ae(aA)
754+ let eh = ae(g)
755+ let ei = valueOrElse(getInteger(eh), 0)
756+ let dy = valueOrElse(getInteger(eg), 0)
757+ let ej = ef
710758 let bt = split(aY(O()), m)
711- let cX = bv(bt)
712- let dZ = invoke(cX, "onModifyWeight", [bV, aA], nil)
713- if ((dZ == dZ))
759+ let di = bv(bt)
760+ let ek = invoke(di, "onModifyWeight", [bV, aA], nil)
761+ if ((ek == ek))
714762 then {
715- let ea = if ((dX == 0))
763+ let el = if ((ei == 0))
716764 then nil
717- else [IntegerEntry(dW, 0)]
718- let eb = ag(aA, 0)
719- let ec = getInteger(eb)
720- let ed = if ((ec == unit))
765+ else [IntegerEntry(eh, 0)]
766+ let em = ag(aA, 0)
767+ let en = getInteger(em)
768+ let eo = if ((en == unit))
721769 then nil
722- else [DeleteEntry(eb)]
723- (([IntegerEntry(dV, dY)] ++ ea) ++ ed)
770+ else [DeleteEntry(em)]
771+ (([IntegerEntry(eg, ej)] ++ el) ++ eo)
724772 }
725773 else throw("Strict value is not equal to itself.")
726774 }
730778
731779
732780 @Callable(bD)
733-func modifyWeights (ee,ef,eg,eh) = {
734- let db = bE(bD)
735- if ((db == db))
781+func modifyWeights (ep,eq,er,es) = {
782+ let dm = bE(bD)
783+ if ((dm == dm))
736784 then {
737- let ei = ((5 * f) / 100)
738- let ej = ((5 * f) / 100)
739- let ek = ((5 * f) / 100)
785+ let et = ((5 * f) / 100)
786+ let eu = ((5 * f) / 100)
787+ let ev = ((5 * f) / 100)
740788 let bt = split(aY(O()), m)
741- let el = bv(bt)
742- let em = bw(bt)
743- let en = ae(ee)
744- let eo = ae(ef)
745- let ep = ae(eg)
746- let eq = ae(eh)
747- let er = bb(en)
748- let es = bb(eo)
749- let et = (er - ek)
750- let eu = (es - ek)
751- if ((0 >= et))
752- then K(("invalid btcWeightNew: " + toString(et)))
753- else if ((0 >= eu))
754- then K(("invalid ethWeightNew: " + toString(eu)))
789+ let ew = bv(bt)
790+ let ex = bw(bt)
791+ let ey = ae(ep)
792+ let ez = ae(eq)
793+ let eA = ae(er)
794+ let eB = ae(es)
795+ let eC = bb(ey)
796+ let eD = bb(ez)
797+ let eE = (eC - ev)
798+ let eF = (eD - ev)
799+ if ((0 >= eE))
800+ then K(("invalid btcWeightNew: " + toString(eE)))
801+ else if ((0 >= eF))
802+ then K(("invalid ethWeightNew: " + toString(eF)))
755803 else {
756- let ev = aY(aC(ee))
757- let ew = aY(aC(ef))
758- let ex = aY(aC(eg))
759- let ey = aY(aC(eh))
760- let ez = invoke(el, "onModifyWeight", [ev, ee], nil)
761- if ((ez == ez))
804+ let eG = aY(aC(ep))
805+ let eH = aY(aC(eq))
806+ let eI = aY(aC(er))
807+ let eJ = aY(aC(es))
808+ let eK = invoke(ew, "onModifyWeight", [eG, ep], nil)
809+ if ((eK == eK))
762810 then {
763- let eA = invoke(el, "onModifyWeight", [ew, ef], nil)
764- if ((eA == eA))
811+ let eL = invoke(ew, "onModifyWeight", [eH, eq], nil)
812+ if ((eL == eL))
765813 then {
766- let eB = invoke(el, "onModifyWeight", [ex, eg], nil)
767- if ((eB == eB))
814+ let eM = invoke(ew, "onModifyWeight", [eI, er], nil)
815+ if ((eM == eM))
768816 then {
769- let eC = invoke(el, "onModifyWeight", [ey, eh], nil)
770- if ((eC == eC))
771- then [IntegerEntry(en, et), IntegerEntry(eo, eu), IntegerEntry(ep, ei), IntegerEntry(eq, ej), IntegerEntry(ag(ee, 0), er), IntegerEntry(ag(ef, 0), es), IntegerEntry(ag(eg, 0), ei), IntegerEntry(ag(eh, 0), ej)]
817+ let eN = invoke(ew, "onModifyWeight", [eJ, es], nil)
818+ if ((eN == eN))
819+ then [IntegerEntry(ey, eE), IntegerEntry(ez, eF), IntegerEntry(eA, et), IntegerEntry(eB, eu), IntegerEntry(ag(ep, 0), eC), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), et), IntegerEntry(ag(es, 0), eu)]
772820 else throw("Strict value is not equal to itself.")
773821 }
774822 else throw("Strict value is not equal to itself.")
785833
786834 @Callable(bD)
787835 func checkWxEmissionPoolLabel (aF,aG) = {
788- let eD = {
836+ let eO = {
789837 let bf = getBoolean(aE(aF, aG))
790838 if ($isInstanceOf(bf, "Boolean"))
791839 then {
792- let cJ = bf
793- cJ
840+ let cU = bf
841+ cU
794842 }
795843 else false
796844 }
797- $Tuple2(nil, eD)
845+ $Tuple2(nil, eO)
798846 }
799847
800848
801849
802850 @Callable(bD)
803851 func setWxEmissionPoolLabel (aF,aG) = {
804- let db = cq(bD)
805- if ((db == db))
852+ let dm = cq(bD)
853+ if ((dm == dm))
806854 then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
807855 else throw("Strict value is not equal to itself.")
808856 }
811859
812860 @Callable(bD)
813861 func deleteWxEmissionPoolLabel (aF,aG) = {
814- let db = if ((bD.caller == this))
862+ let dm = if ((bD.caller == this))
815863 then true
816864 else cq(bD)
817- if ((db == db))
865+ if ((dm == dm))
818866 then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
819867 else throw("Strict value is not equal to itself.")
820868 }
823871
824872 @Callable(bD)
825873 func onVerificationLoss (aT) = {
826- let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
874+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
827875 then true
828876 else bE(bD)
829- if ((db == db))
877+ if ((dm == dm))
830878 then {
831- let di = bx()
832- let eE = if ((size(di) > 0))
879+ let dt = bx()
880+ let eP = if ((size(dt) > 0))
833881 then true
834882 else K("invalid price assets")
835- if ((eE == eE))
883+ if ((eP == eP))
836884 then {
837- func eF (eG,eH) = {
838- let cD = invoke(this, "deleteWxEmissionPoolLabel", [aT, eH], nil)
839- if ((cD == cD))
885+ func eQ (eR,eS) = {
886+ let cO = invoke(this, "deleteWxEmissionPoolLabel", [aT, eS], nil)
887+ if ((cO == cO))
840888 then unit
841889 else throw("Strict value is not equal to itself.")
842890 }
843891
844- let eI = {
845- let eJ = di
846- let eK = size(eJ)
847- let eL = unit
848- func eM (eN,eO) = if ((eO >= eK))
849- then eN
850- else eF(eN, eJ[eO])
892+ let eT = {
893+ let eU = dt
894+ let eV = size(eU)
895+ let eW = unit
896+ func eX (eY,eZ) = if ((eZ >= eV))
897+ then eY
898+ else eQ(eY, eU[eZ])
851899
852- func eP (eN,eO) = if ((eO >= eK))
853- then eN
900+ func fa (eY,eZ) = if ((eZ >= eV))
901+ then eY
854902 else throw("List size exceeds 11")
855903
856- eP(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eL, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
904+ fa(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eW, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
857905 }
858- if ((eI == eI))
906+ if ((eT == eT))
859907 then $Tuple2(nil, unit)
860908 else throw("Strict value is not equal to itself.")
861909 }
868916
869917 @Callable(bD)
870918 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
871- let dI = ch(af)
872- let aq = $Tuple2(parseIntValue(dI[C]), parseIntValue(dI[D]))
873- let eQ = valueOrElse(getBoolean(ap(aq)), false)
874- let eR = valueOrElse(getBoolean(as()), false)
875- $Tuple2(nil, if (eR)
919+ let dT = ch(af)
920+ let aq = $Tuple2(parseIntValue(dT[C]), parseIntValue(dT[D]))
921+ let fb = valueOrElse(getBoolean(ap(aq)), false)
922+ let fc = valueOrElse(getBoolean(as()), false)
923+ $Tuple2(nil, if (fc)
876924 then true
877- else eQ)
925+ else fb)
878926 }
879927
880928
881929
882930 @Callable(bD)
883931 func getInFeeREADONLY (af) = {
884- let eS = ct(aH(af), aI(), 0)
885- $Tuple2(nil, eS)
932+ let fd = ct(aH(af), aI(), 0)
933+ $Tuple2(nil, fd)
886934 }
887935
888936
889937
890938 @Callable(bD)
891939 func getOutFeeREADONLY (af) = {
892- let eS = ct(aJ(af), aK(), fraction(10, b, 10000))
893- $Tuple2(nil, eS)
940+ let fd = ct(aJ(af), aK(), fraction(10, b, 10000))
941+ $Tuple2(nil, fd)
894942 }
895943
896944
897945
898946 @Callable(bD)
899-func poolInfoREADONLY (eT,eU) = {
900- let eV = getInteger(this, ak(eT))
901- let eW = getInteger(this, ak(eU))
902- let eX = getString(this, aB(value(eV), value(eW)))
903- let eY = getString(this, aC(value(eX)))
904- let dv = if (if (isDefined(eV))
905- then isDefined(eW)
947+func poolInfoREADONLY (fe,ff) = {
948+ let fg = getInteger(this, ak(fe))
949+ let fh = getInteger(this, ak(ff))
950+ let fi = getString(this, aB(value(fg), value(fh)))
951+ let fj = getString(this, aC(value(fi)))
952+ let dG = if (if (isDefined(fg))
953+ then isDefined(fh)
906954 else false)
907- then isDefined(eX)
955+ then isDefined(fi)
908956 else false
909- let eZ = if (dv)
910- then $Tuple2(addressFromStringValue(value(eX)), bc(value(eY)))
957+ let fk = if (dG)
958+ then $Tuple2(addressFromStringValue(value(fi)), bc(value(fj)))
911959 else unit
912- $Tuple2(nil, eZ)
960+ $Tuple2(nil, fk)
913961 }
914962
915963
937985
938986
939987 @Callable(bD)
940-func getPoolConfigByLpAssetIdREADONLY (dA) = {
941- let ci = split(aY(at(dA)), m)
988+func getPoolConfigByLpAssetIdREADONLY (dL) = {
989+ let ci = split(aY(at(dL)), m)
942990 let an = ci[1]
943991 let ao = ci[2]
944992 let cz = split(aY(am(an, ao)), m)
9591007
9601008 @Callable(bD)
9611009 func getChangeAmpConfigREADONLY (af) = {
962- let fa = getIntegerValue(aM(af))
963- let fb = getIntegerValue(aN(af))
964- let fc = getIntegerValue(aO(af))
965- $Tuple2(nil, [fa, fb, fc])
1010+ let fl = getIntegerValue(aM(af))
1011+ let fm = getIntegerValue(aN(af))
1012+ let fn = getIntegerValue(aO(af))
1013+ $Tuple2(nil, [fl, fm, fn])
9661014 }
9671015
9681016
9701018 @Callable(bD)
9711019 func getPoolWeightREADONLY (bV) = {
9721020 let af = aY(aD(bV))
973- let fd = valueOrElse(getInteger(ae(af)), 0)
974- $Tuple2(nil, fd)
1021+ let fo = valueOrElse(getInteger(ae(af)), 0)
1022+ $Tuple2(nil, fo)
9751023 }
9761024
9771025
9781026
9791027 @Callable(bD)
9801028 func deletePool (aA) = {
981- let db = if (bE(bD))
1029+ let dm = if (if (bE(bD))
1030+ then true
1031+ else if (cL(aA))
1032+ then (toString(bD.caller) == cD(aA))
1033+ else false)
9821034 then true
9831035 else bA
984- if ((db == db))
1036+ if ((dm == dm))
9851037 then {
986- let fe = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1038+ let fp = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
9871039 then true
9881040 else K("Pool weight is not Zero")
989- if ((fe == fe))
1041+ if ((fp == fp))
9901042 then {
991- let ci = split(aY(az(aA)), m)
992- let an = parseIntValue(ci[1])
993- let ao = parseIntValue(ci[2])
994- let aF = getStringValue(ai(an))
995- let aG = getStringValue(ai(ao))
996- let bV = aY(aC(aA))
997- let ff = addressFromStringValue(getStringValue(Z()))
998- let fg = invoke(ff, "deletePool", [aF, aG], nil)
999- if ((fg == fg))
1043+ let fq = cC(aA)
1044+ let aF = fq._1
1045+ let aG = fq._2
1046+ let bV = fq._3
1047+ let an = fq._4
1048+ let ao = fq._5
1049+ let cF = addressFromStringValue(getStringValue(Z()))
1050+ let fr = invoke(cF, "deletePool", [aF, aG], nil)
1051+ if ((fr == fr))
10001052 then {
1001- let dh = addressFromStringValue(getStringValue(Y()))
1002- let fh = invoke(dh, "deletePool", [aF, aG], nil)
1003- if ((fh == fh))
1053+ let ds = addressFromStringValue(getStringValue(Y()))
1054+ let fs = invoke(ds, "deletePool", [aF, aG], nil)
1055+ if ((fs == fs))
10041056 then {
1005- let dg = addressFromStringValue(getStringValue(X()))
1006- let fi = invoke(dg, "deletePool", [aF, aG], nil)
1007- if ((fi == fi))
1057+ let dr = addressFromStringValue(getStringValue(X()))
1058+ let ft = invoke(dr, "deletePool", [aF, aG], nil)
1059+ if ((ft == ft))
10081060 then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
10091061 else throw("Strict value is not equal to itself.")
10101062 }
10181070 }
10191071
10201072
1021-@Verifier(fj)
1022-func fk () = {
1023- let fl = {
1073+@Verifier(fu)
1074+func fv () = {
1075+ let fw = {
10241076 let bf = by()
10251077 if ($isInstanceOf(bf, "ByteVector"))
10261078 then {
10281080 bF
10291081 }
10301082 else if ($isInstanceOf(bf, "Unit"))
1031- then fj.senderPublicKey
1083+ then fu.senderPublicKey
10321084 else throw("Match error")
10331085 }
1034- sigVerify(fj.bodyBytes, fj.proofs[0], fl)
1086+ sigVerify(fu.bodyBytes, fu.proofs[0], fw)
10351087 }
10361088
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
2424 let k = "factory_v2.ride"
2525
2626 let l = ((100 * 1000) * 1000)
2727
2828 let m = "__"
2929
3030 let n = ""
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 4
5353
5454 let z = 5
5555
5656 let A = 6
5757
5858 let B = 7
5959
6060 let C = 8
6161
6262 let D = 9
6363
6464 let E = 10
6565
6666 let F = 11
6767
6868 let G = "WX_EMISSION"
6969
7070 let H = [G]
7171
7272 func I (J) = makeString([k, ": ", J], "")
7373
7474
7575 func K (J) = throw(I(J))
7676
7777
7878 func L () = "%s__allowedLpScriptHash"
7979
8080
8181 func M () = "%s__allowedLpStableScriptHash"
8282
8383
8484 func N () = "%s__swapContract"
8585
8686
8787 func O () = "%s__factoryConfig"
8888
8989
9090 func P () = "%s__lpTokensList"
9191
9292
9393 func Q () = "%s%s__pool__scriptHash"
9494
9595
9696 func R () = "%s%s__matcher__publicKey"
9797
9898
9999 func S () = "%s__legacyFactoryContract"
100100
101101
102102 func T () = "%s__legacyPools"
103103
104104
105105 func U () = "%s__managerPublicKey"
106106
107107
108108 func V () = "%s__managerVaultAddress"
109109
110110
111111 func W () = "%s__adminPubKeys"
112112
113113
114114 func X () = "%s__assetsStoreContract"
115115
116116
117117 func Y () = "%s__votingEmissionContract"
118118
119119
120120 func Z () = "%s__userPoolsContract"
121121
122122
123123 func aa () = makeString(["%s", "priceAssets"], m)
124124
125125
126126 func ab () = "%s__priceDecimals"
127127
128128
129129 func ac () = "%s__shutdown"
130130
131131
132132 func ad () = "%s__nextInternalAssetId"
133133
134134
135135 func ae (af) = ("%s%s__poolWeight__" + af)
136136
137137
138138 func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
139139
140140
141141 func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142142
143143
144144 func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145145
146146
147147 func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148148
149149
150150 func ap (aq) = {
151151 let ar = aq
152152 let an = ar._1
153153 let ao = ar._2
154154 makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
155155 }
156156
157157
158158 func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
159159
160160
161161 func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
162162
163163
164164 func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
165165
166166
167167 func ay (af) = ("%s%s__spread__" + af)
168168
169169
170170 func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
171171
172172
173173 func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
174174
175175
176176 func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
177177
178178
179179 func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
180180
181181
182182 func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
183183
184184
185185 func aH (af) = ("%s%s__inFee__" + af)
186186
187187
188188 func aI () = "%s__inFeeDefault"
189189
190190
191191 func aJ (af) = ("%s%s__outFee__" + af)
192192
193193
194194 func aK () = "%s__outFeeDefault"
195195
196196
197197 func aL (af) = ("%s%s__skipOrderValidation__" + af)
198198
199199
200200 func aM (af) = ("%s%s__changeAmpDelay__" + af)
201201
202202
203203 func aN (af) = ("%s%s__changeAmpDelta__" + af)
204204
205205
206206 func aO (af) = ("%s%s__changeAmpTarget__" + af)
207207
208208
209209 func aP () = "%s__sWavesProxyAddress"
210210
211211
212212 func aQ () = "%s__sWavesAssetId"
213213
214214
215215 func aR () = "%s__stakingProfitAddress"
216216
217217
218218 func aS (af,aT) = makeString(["%s%s%s", "leasedRatio", af, aT], m)
219219
220220
221221 func aU (aT) = makeString(["%s%s", "leasedRatioDefault", aT], m)
222222
223223
224224 func aV (af,aT) = makeString(["%s%s%s", "leasedRatioTolerance", af, aT], m)
225225
226226
227227 func aW (af,aT) = makeString(["%s%s%s", "minBalance", af, aT], m)
228228
229229
230230 func aX (aT) = makeString(["%s%s", "minBalanceDefault", aT], m)
231231
232232
233233 func aY (aZ) = valueOrErrorMessage(getString(this, aZ), ("No data for this.key=" + aZ))
234234
235235
236236 func ba (aZ) = valueOrErrorMessage(getBoolean(this, aZ), ("No data for this.key=" + aZ))
237237
238238
239239 func bb (aZ) = valueOrErrorMessage(getInteger(this, aZ), ("No data for this.key=" + aZ))
240240
241241
242242 func bc (bd) = if ((bd == j))
243243 then unit
244244 else fromBase58String(bd)
245245
246246
247247 func be () = {
248248 let bf = getString(V())
249249 if ($isInstanceOf(bf, "String"))
250250 then {
251251 let bg = bf
252252 addressFromStringValue(bg)
253253 }
254254 else this
255255 }
256256
257257
258258 let bh = 1
259259
260260 let bi = 2
261261
262262 let bj = 3
263263
264264 let bk = 4
265265
266266 let bl = 5
267267
268268 let bm = 6
269269
270270 let bn = 7
271271
272272 let bo = 8
273273
274274 let bp = 9
275275
276276 let bq = 10
277277
278278 let br = 11
279279
280280 func bs (bt) = addressFromStringValue(bt[bi])
281281
282282
283283 func bu (bt) = addressFromStringValue(bt[bl])
284284
285285
286286 func bv (bt) = addressFromStringValue(bt[bh])
287287
288288
289289 func bw (bt) = addressFromStringValue(bt[bq])
290290
291291
292292 func bx () = {
293293 let bf = getString(aa())
294294 if ($isInstanceOf(bf, "String"))
295295 then {
296296 let bg = bf
297297 if ((size(bg) == 0))
298298 then nil
299299 else split(bg, m)
300300 }
301301 else nil
302302 }
303303
304304
305305 func by () = {
306306 let bz = be()
307307 let bf = getString(bz, U())
308308 if ($isInstanceOf(bf, "String"))
309309 then {
310310 let bg = bf
311311 fromBase58String(bg)
312312 }
313313 else if ($isInstanceOf(bf, "Unit"))
314314 then unit
315315 else throw("Match error")
316316 }
317317
318318
319319 let bA = K("Permission denied")
320320
321321 let bB = K("Test error here")
322322
323323 func bC (bD) = if ((bD.caller == this))
324324 then true
325325 else bA
326326
327327
328328 func bE (bD) = {
329329 let bf = by()
330330 if ($isInstanceOf(bf, "ByteVector"))
331331 then {
332332 let bF = bf
333333 if ((bD.callerPublicKey == bF))
334334 then true
335335 else bA
336336 }
337337 else if ($isInstanceOf(bf, "Unit"))
338338 then bC(bD)
339339 else throw("Match error")
340340 }
341341
342342
343343 func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR], m)
344344
345345
346346 func bS (bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN], m)
347347
348348
349349 func bT (af,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bU, bV, bW, bX, toString(bY), toString(bZ), toString(ca), toString(cb), toString(cc), cd], m)
350350
351351
352352 func ce (cf,cg) = makeString(["%d%d", toString(cf), toString(cg)], m)
353353
354354
355355 func ch (af) = {
356356 let ci = split(aY(az(af)), m)
357357 let an = ci[1]
358358 let ao = ci[2]
359359 split(aY(am(an, ao)), m)
360360 }
361361
362362
363363 func cj (ck,cl) = {
364364 let cm = valueOrElse(getInteger(this, ak(ck)), 0)
365365 let cn = valueOrElse(getInteger(this, ad()), 0)
366366 let co = if ((cm == 0))
367367 then {
368368 let cp = (cn + cl)
369369 $Tuple3(cp, [IntegerEntry(ad(), cp), IntegerEntry(ak(ck), cp), StringEntry(ai(cp), ck)], true)
370370 }
371371 else $Tuple3(cm, nil, false)
372372 co
373373 }
374374
375375
376376 func cq (bD) = {
377377 let cr = split(valueOrElse(getString(W()), n), m)
378378 if (containsElement(cr, toBase58String(bD.callerPublicKey)))
379379 then true
380380 else {
381381 let cs = bE(bD)
382382 if ((cs == cs))
383383 then true
384384 else throw("Strict value is not equal to itself.")
385385 }
386386 }
387387
388388
389389 func ct (aZ,cu,cv) = valueOrElse(getInteger(this, aZ), valueOrElse(getInteger(this, cu), cv))
390390
391391
392392 func cw (aF,aG) = {
393393 let an = getInteger(ak(aF))
394394 let ao = getInteger(ak(aG))
395395 if (if ((an == unit))
396396 then true
397397 else (ao == unit))
398398 then false
399399 else {
400400 let cx = toString(value(an))
401401 let cy = toString(value(ao))
402402 let cz = getString(am(cx, cy))
403403 let cA = getString(am(cy, cx))
404404 let cB = if ((cz != unit))
405405 then true
406406 else (cA != unit)
407407 cB
408408 }
409409 }
410410
411411
412+func cC (aA) = {
413+ let ci = split(getStringValue(az(aA)), m)
414+ let an = parseIntValue(ci[1])
415+ let ao = parseIntValue(ci[2])
416+ let aF = getStringValue(ai(an))
417+ let aG = getStringValue(ai(ao))
418+ let bV = getStringValue(aC(aA))
419+ $Tuple5(aF, aG, bV, an, ao)
420+ }
421+
422+
423+func cD (aA) = {
424+ let cE = cC(aA)
425+ let aF = cE._1
426+ let aG = cE._2
427+ let bV = cE._3
428+ let an = cE._4
429+ let ao = cE._5
430+ let cF = addressFromStringValue(getStringValue(Z()))
431+ let cG = invoke(cF, "getPoolCreatorREADONLY", [aF, aG], nil)
432+ cG
433+ }
434+
435+
436+func cH (cI,cJ) = {
437+ let cK = addressFromStringValue(cI)
438+ if ((cJ == "WAVES"))
439+ then wavesBalance(cK).regular
440+ else {
441+ let aT = toBytes(cJ)
442+ assetBalance(cK, aT)
443+ }
444+ }
445+
446+
447+func cL (aA) = {
448+ let cM = cC(aA)
449+ let aF = cM._1
450+ let aG = cM._2
451+ let bV = cM._3
452+ let an = cM._4
453+ let ao = cM._5
454+ if ((cH(aA, aF) == 0))
455+ then (cH(aA, aG) == 0)
456+ else false
457+ }
458+
459+
412460 @Callable(bD)
413461 func getSwapContractREADONLY () = $Tuple2(nil, aY(N()))
414462
415463
416464
417465 @Callable(bD)
418466 func getPoolLeaseConfigREADONLY (af,aT) = {
419- let cC = {
467+ let cN = {
420468 let bf = getInteger(this, aS(af, aT))
421469 if ($isInstanceOf(bf, "Int"))
422470 then {
423- let cD = bf
424- $Tuple2(true, min([100, max([0, cD])]))
471+ let cO = bf
472+ $Tuple2(true, min([100, max([0, cO])]))
425473 }
426474 else {
427- let cE = getInteger(this, aU(aT))
428- if ($isInstanceOf(cE, "Int"))
475+ let cP = getInteger(this, aU(aT))
476+ if ($isInstanceOf(cP, "Int"))
429477 then {
430- let cF = cE
431- $Tuple2(true, min([100, max([0, cF])]))
478+ let cQ = cP
479+ $Tuple2(true, min([100, max([0, cQ])]))
432480 }
433481 else $Tuple2(false, 0)
434482 }
435483 }
436- let cG = cC._1
437- let cH = cC._2
438- let cI = {
484+ let cR = cN._1
485+ let cS = cN._2
486+ let cT = {
439487 let bf = getInteger(this, aW(af, aT))
440488 if ($isInstanceOf(bf, "Int"))
441489 then {
442- let cJ = bf
443- max([0, cJ])
490+ let cU = bf
491+ max([0, cU])
444492 }
445493 else {
446- let cE = getInteger(this, aX(aT))
447- if ($isInstanceOf(cE, "Int"))
494+ let cP = getInteger(this, aX(aT))
495+ if ($isInstanceOf(cP, "Int"))
448496 then {
449- let cK = cE
450- max([0, cK])
497+ let cV = cP
498+ max([0, cV])
451499 }
452500 else 0
453501 }
454502 }
455- let cL = if ((aT == "WAVES"))
503+ let cW = if ((aT == "WAVES"))
456504 then $Tuple3(valueOrElse(getString(this, aP()), ""), getString(this, valueOrElse(aQ(), "")), c)
457505 else $Tuple3("", "", 0)
458- let cM = cL._1
459- let cN = cL._2
460- let cO = cL._3
461- let cP = valueOrElse(getString(this, aR()), "")
462- $Tuple2(nil, $Tuple7(cG, cH, cI, cM, cN, cO, cP))
506+ let cX = cW._1
507+ let cY = cW._2
508+ let cZ = cW._3
509+ let da = valueOrElse(getString(this, aR()), "")
510+ $Tuple2(nil, $Tuple7(cR, cS, cT, cX, cY, cZ, da))
463511 }
464512
465513
466514
467515 @Callable(bD)
468-func getLpAssetFromPoolAssetsREADONLY (cQ,cR) = if (if ((cQ == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
469- then (cR == "WAVES")
516+func getLpAssetFromPoolAssetsREADONLY (db,dc) = if (if ((db == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
517+ then (dc == "WAVES")
470518 else false)
471519 then $Tuple2(nil, unit)
472520 else {
473- let cS = value(getInteger(this, ak(cQ)))
474- let cT = value(getInteger(this, ak(cR)))
475- let cU = getString(this, av(toString(cS), toString(cT)))
476- let cV = if ((cU == unit))
521+ let dd = value(getInteger(this, ak(db)))
522+ let de = value(getInteger(this, ak(dc)))
523+ let df = getString(this, av(toString(dd), toString(de)))
524+ let dg = if ((df == unit))
477525 then unit
478- else drop(value(cU), 4)
479- $Tuple2(nil, cV)
526+ else drop(value(df), 4)
527+ $Tuple2(nil, dg)
480528 }
481529
482530
483531
484532 @Callable(bD)
485-func getPoolAddressFromLpAssetREADONLY (cW) = $Tuple2(nil, valueOrElse(getString(this, aD(cW)), ""))
533+func getPoolAddressFromLpAssetREADONLY (dh) = $Tuple2(nil, valueOrElse(getString(this, aD(dh)), ""))
486534
487535
488536
489537 @Callable(bD)
490-func constructor (cX,cY,bJ,bK,bL,bM,cZ,da) = {
491- let db = bE(bD)
492- if ((db == db))
493- then [StringEntry(O(), bS(cX, cY, bJ, bK, bL, bM, cZ)), IntegerEntry(ab(), da)]
538+func constructor (di,dj,bJ,bK,bL,bM,dk,dl) = {
539+ let dm = bE(bD)
540+ if ((dm == dm))
541+ then [StringEntry(O(), bS(di, dj, bJ, bK, bL, bM, dk)), IntegerEntry(ab(), dl)]
494542 else throw("Strict value is not equal to itself.")
495543 }
496544
497545
498546
499547 @Callable(bD)
500-func constructorV2 (dc) = {
501- let db = bE(bD)
502- if ((db == db))
548+func constructorV2 (dn) = {
549+ let dm = bE(bD)
550+ if ((dm == dm))
503551 then {
504- let dd = addressFromPublicKey(fromBase58String(dc))
505- if ((dd == dd))
506- then [StringEntry(R(), dc)]
552+ let do = addressFromPublicKey(fromBase58String(dn))
553+ if ((do == do))
554+ then [StringEntry(R(), dn)]
507555 else throw("Strict value is not equal to itself.")
508556 }
509557 else throw("Strict value is not equal to itself.")
510558 }
511559
512560
513561
514562 @Callable(bD)
515563 func constructorV3 (bO,bP,bQ,bR) = {
516- let db = bE(bD)
517- if ((db == db))
564+ let dm = bE(bD)
565+ if ((dm == dm))
518566 then {
519567 let bt = split(aY(O()), m)
520568 [StringEntry(O(), bG(bt[1], bt[2], bt[3], bt[4], bt[5], bt[6], bt[7], bO, bP, bQ, bR))]
521569 }
522570 else throw("Strict value is not equal to itself.")
523571 }
524572
525573
526574
527575 @Callable(bD)
528-func constructorV4 (de,df) = {
529- let db = bE(bD)
530- if ((db == db))
531- then [StringEntry(S(), de), StringEntry(T(), makeString(df, m))]
576+func constructorV4 (dp,dq) = {
577+ let dm = bE(bD)
578+ if ((dm == dm))
579+ then [StringEntry(S(), dp), StringEntry(T(), makeString(dq, m))]
532580 else throw("Strict value is not equal to itself.")
533581 }
534582
535583
536584
537585 @Callable(bD)
538-func constructorV5 (dg) = {
539- let db = bE(bD)
540- if ((db == db))
541- then [StringEntry(X(), dg)]
586+func constructorV5 (dr) = {
587+ let dm = bE(bD)
588+ if ((dm == dm))
589+ then [StringEntry(X(), dr)]
542590 else throw("Strict value is not equal to itself.")
543591 }
544592
545593
546594
547595 @Callable(bD)
548-func constructorV6 (dh,di) = {
549- let dj = [bE(bD), if ((addressFromString(dh) != unit))
596+func constructorV6 (ds,dt) = {
597+ let du = [bE(bD), if ((addressFromString(ds) != unit))
550598 then true
551599 else "invalid voting emission contract address"]
552- if ((dj == dj))
553- then [StringEntry(Y(), dh), StringEntry(aa(), makeString(di, m))]
600+ if ((du == du))
601+ then [StringEntry(Y(), ds), StringEntry(aa(), makeString(dt, m))]
554602 else throw("Strict value is not equal to itself.")
555603 }
556604
557605
558606
559607 @Callable(bD)
560-func setAdmins (dk) = {
561- let db = bE(bD)
562- if ((db == db))
563- then [StringEntry(W(), makeString(dk, m))]
608+func setAdmins (dv) = {
609+ let dm = bE(bD)
610+ if ((dm == dm))
611+ then [StringEntry(W(), makeString(dv, m))]
564612 else throw("Strict value is not equal to itself.")
565613 }
566614
567615
568616
569617 @Callable(bD)
570-func activateNewPool (af,bW,bX,dl,dm,dn,cd,do) = {
571- let db = cq(bD)
572- if ((db == db))
618+func activateNewPool (af,bW,bX,dw,dx,dy,cd,dz) = {
619+ let dm = cq(bD)
620+ if ((dm == dm))
573621 then if (isDefined(getString(az(af))))
574622 then K((("Pool address " + af) + " already registered."))
575623 else {
576- let dp = cj(bW, 1)
577- let dq = dp._1
578- let dr = cj(bX, if (dp._3)
624+ let dA = cj(bW, 1)
625+ let dB = dA._1
626+ let dC = cj(bX, if (dA._3)
579627 then 2
580628 else 1)
581- let ds = dr._1
582- let dt = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
583- let du = getBinaryValue(Q())
584- let dv = cw(bW, bX)
585- if (dv)
629+ let dD = dC._1
630+ let dE = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
631+ let dF = getBinaryValue(Q())
632+ let dG = cw(bW, bX)
633+ if (dG)
586634 then K((((("Pool " + bW) + "/") + bX) + " has already been activated."))
587635 else {
588- let dw = value(getString(this, am(toString(dq), toString(ds))))
589- let dx = if ((bW == "WAVES"))
636+ let dH = value(getString(this, am(toString(dB), toString(dD))))
637+ let dI = if ((bW == "WAVES"))
590638 then l
591639 else pow(10, 0, value(assetInfo(fromBase58String(bW))).decimals, 0, 0, DOWN)
592- let dy = if ((bX == "WAVES"))
640+ let dJ = if ((bX == "WAVES"))
593641 then l
594642 else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
595- let dz = Issue(dl, dm, 1, 8, true)
596- let bV = calculateAssetId(dz)
597- let dA = toBase58String(bV)
598- let dB = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
599- if ((dB == dB))
600- then if ((dB != "success"))
643+ let dK = Issue(dw, dx, 1, 8, true)
644+ let bV = calculateAssetId(dK)
645+ let dL = toBase58String(bV)
646+ let dM = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
647+ if ((dM == dM))
648+ then if ((dM != "success"))
601649 then K("Pool initialisation error happened.")
602650 else {
603- let dg = addressFromStringValue(aY(X()))
604- let dC = invoke(dg, "createOrUpdate", [dA, dl, false], nil)
605- if ((dC == dC))
651+ let dr = addressFromStringValue(aY(X()))
652+ let dN = invoke(dr, "createOrUpdate", [dL, dw, false], nil)
653+ if ((dN == dN))
606654 then {
607- let dD = invoke(dg, "addLabel", [dA, h], nil)
608- if ((dD == dD))
655+ let dO = invoke(dr, "addLabel", [dL, h], nil)
656+ if ((dO == dO))
609657 then {
610- let dE = invoke(dg, "setLogo", [dA, do], nil)
611- if ((dE == dE))
658+ let dP = invoke(dr, "setLogo", [dL, dz], nil)
659+ if ((dP == dP))
612660 then {
613- let dF = invoke(dg, "addAssetsLink", [bW, bX, dA], nil)
614- if ((dF == dF))
661+ let dQ = invoke(dr, "addAssetsLink", [bW, bX, dL], nil)
662+ if ((dQ == dQ))
615663 then {
616- let dG = invoke(dg, "increaseAssetPoolsNumber", [bW], nil)
617- if ((dG == dG))
618- then $Tuple2(((dp._2 ++ dr._2) ++ [dz, Burn(bV, 1), StringEntry(am(toString(dq), toString(ds)), bT(af, toString(o), dA, bW, bX, dx, dy, dq, ds, l, cd)), StringEntry(at(dA), ce(dq, ds)), StringEntry(av(toString(dq), toString(ds)), ("%s__" + dA)), StringEntry(az(af), ce(dq, ds)), StringEntry(aB(dq, ds), af), StringEntry(aD(dA), af), StringEntry(aC(af), dA), IntegerEntry(ae(af), dn), IntegerEntry(ay(af), i)]), dA)
664+ let dR = invoke(dr, "increaseAssetPoolsNumber", [bW], nil)
665+ if ((dR == dR))
666+ then $Tuple2(((dA._2 ++ dC._2) ++ [dK, Burn(bV, 1), StringEntry(am(toString(dB), toString(dD)), bT(af, toString(o), dL, bW, bX, dI, dJ, dB, dD, l, cd)), StringEntry(at(dL), ce(dB, dD)), StringEntry(av(toString(dB), toString(dD)), ("%s__" + dL)), StringEntry(az(af), ce(dB, dD)), StringEntry(aB(dB, dD), af), StringEntry(aD(dL), af), StringEntry(aC(af), dL), IntegerEntry(ae(af), dy), IntegerEntry(ay(af), i)]), dL)
619667 else throw("Strict value is not equal to itself.")
620668 }
621669 else throw("Strict value is not equal to itself.")
622670 }
623671 else throw("Strict value is not equal to itself.")
624672 }
625673 else throw("Strict value is not equal to itself.")
626674 }
627675 else throw("Strict value is not equal to itself.")
628676 }
629677 else throw("Strict value is not equal to itself.")
630678 }
631679 }
632680 else throw("Strict value is not equal to itself.")
633681 }
634682
635683
636684
637685 @Callable(bD)
638-func managePool (af,dH) = {
639- let db = bE(bD)
640- if ((db == db))
686+func managePool (af,dS) = {
687+ let dm = bE(bD)
688+ if ((dm == dm))
641689 then {
642- let dI = ch(af)
643- let bU = dI[w]
644- let dA = dI[x]
645- let bW = dI[y]
646- let bX = dI[z]
647- let dx = parseIntValue(dI[A])
648- let dy = parseIntValue(dI[B])
649- let dq = parseIntValue(dI[C])
650- let ds = parseIntValue(dI[D])
651- let dJ = parseIntValue(dI[E])
652- let cd = dI[F]
653-[StringEntry(am(toString(dq), toString(ds)), bT(af, toString(dH), dA, bW, bX, dx, dy, dq, ds, dJ, cd))]
690+ let dT = ch(af)
691+ let bU = dT[w]
692+ let dL = dT[x]
693+ let bW = dT[y]
694+ let bX = dT[z]
695+ let dI = parseIntValue(dT[A])
696+ let dJ = parseIntValue(dT[B])
697+ let dB = parseIntValue(dT[C])
698+ let dD = parseIntValue(dT[D])
699+ let dU = parseIntValue(dT[E])
700+ let cd = dT[F]
701+[StringEntry(am(toString(dB), toString(dD)), bT(af, toString(dS), dL, bW, bX, dI, dJ, dB, dD, dU, cd))]
654702 }
655703 else throw("Strict value is not equal to itself.")
656704 }
657705
658706
659707
660708 @Callable(bD)
661-func emit (dK) = {
662- let dL = bD.caller
663- let dM = bD.originCaller
664- let dN = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
665- let dO = fromBase58String(dN)
666- let df = split(valueOrElse(getString(T()), n), m)
667- let de = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
668- if ((0 >= dK))
709+func emit (dV) = {
710+ let dW = bD.caller
711+ let dX = bD.originCaller
712+ let dY = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
713+ let dZ = fromBase58String(dY)
714+ let dq = split(valueOrElse(getString(T()), n), m)
715+ let dp = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
716+ if ((0 >= dV))
669717 then nil
670- else if (containsElement(df, toString(dL)))
671- then $Tuple2(nil, de)
672- else $Tuple2([Reissue(dO, dK, true), ScriptTransfer(bD.caller, dK, dO)], "success")
718+ else if (containsElement(dq, toString(dW)))
719+ then $Tuple2(nil, dp)
720+ else $Tuple2([Reissue(dZ, dV, true), ScriptTransfer(bD.caller, dV, dZ)], "success")
673721 }
674722
675723
676724
677725 @Callable(bD)
678-func burn (dP) = {
679- let dL = bD.caller
680- let dM = bD.originCaller
681- let dQ = value(bD.payments[0])
682- let dR = value(dQ.amount)
683- let dS = toBase58String(value(dQ.assetId))
684- let dT = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
685- if ((dS != dT))
726+func burn (ea) = {
727+ let dW = bD.caller
728+ let dX = bD.originCaller
729+ let eb = value(bD.payments[0])
730+ let ec = value(eb.amount)
731+ let ed = toBase58String(value(eb.assetId))
732+ let ee = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
733+ if ((ed != ee))
686734 then K("Invalid asset passed.")
687- else if ((dP != dR))
735+ else if ((ea != ec))
688736 then K("Invalid amount passed.")
689737 else {
690- let dO = fromBase58String(dT)
691- $Tuple2([Burn(dO, dP)], "success")
738+ let dZ = fromBase58String(ee)
739+ $Tuple2([Burn(dZ, ea)], "success")
692740 }
693741 }
694742
695743
696744
697745 @Callable(bD)
698-func modifyWeight (bV,dU) = {
699- let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
746+func modifyWeight (bV,ef) = {
747+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
700748 then true
701749 else bE(bD)
702- if ((db == db))
750+ if ((dm == dm))
703751 then {
704752 let aA = aY(aD(bV))
705- let dV = ae(aA)
706- let dW = ae(g)
707- let dX = valueOrElse(getInteger(dW), 0)
708- let dn = valueOrElse(getInteger(dV), 0)
709- let dY = dU
753+ let eg = ae(aA)
754+ let eh = ae(g)
755+ let ei = valueOrElse(getInteger(eh), 0)
756+ let dy = valueOrElse(getInteger(eg), 0)
757+ let ej = ef
710758 let bt = split(aY(O()), m)
711- let cX = bv(bt)
712- let dZ = invoke(cX, "onModifyWeight", [bV, aA], nil)
713- if ((dZ == dZ))
759+ let di = bv(bt)
760+ let ek = invoke(di, "onModifyWeight", [bV, aA], nil)
761+ if ((ek == ek))
714762 then {
715- let ea = if ((dX == 0))
763+ let el = if ((ei == 0))
716764 then nil
717- else [IntegerEntry(dW, 0)]
718- let eb = ag(aA, 0)
719- let ec = getInteger(eb)
720- let ed = if ((ec == unit))
765+ else [IntegerEntry(eh, 0)]
766+ let em = ag(aA, 0)
767+ let en = getInteger(em)
768+ let eo = if ((en == unit))
721769 then nil
722- else [DeleteEntry(eb)]
723- (([IntegerEntry(dV, dY)] ++ ea) ++ ed)
770+ else [DeleteEntry(em)]
771+ (([IntegerEntry(eg, ej)] ++ el) ++ eo)
724772 }
725773 else throw("Strict value is not equal to itself.")
726774 }
727775 else throw("Strict value is not equal to itself.")
728776 }
729777
730778
731779
732780 @Callable(bD)
733-func modifyWeights (ee,ef,eg,eh) = {
734- let db = bE(bD)
735- if ((db == db))
781+func modifyWeights (ep,eq,er,es) = {
782+ let dm = bE(bD)
783+ if ((dm == dm))
736784 then {
737- let ei = ((5 * f) / 100)
738- let ej = ((5 * f) / 100)
739- let ek = ((5 * f) / 100)
785+ let et = ((5 * f) / 100)
786+ let eu = ((5 * f) / 100)
787+ let ev = ((5 * f) / 100)
740788 let bt = split(aY(O()), m)
741- let el = bv(bt)
742- let em = bw(bt)
743- let en = ae(ee)
744- let eo = ae(ef)
745- let ep = ae(eg)
746- let eq = ae(eh)
747- let er = bb(en)
748- let es = bb(eo)
749- let et = (er - ek)
750- let eu = (es - ek)
751- if ((0 >= et))
752- then K(("invalid btcWeightNew: " + toString(et)))
753- else if ((0 >= eu))
754- then K(("invalid ethWeightNew: " + toString(eu)))
789+ let ew = bv(bt)
790+ let ex = bw(bt)
791+ let ey = ae(ep)
792+ let ez = ae(eq)
793+ let eA = ae(er)
794+ let eB = ae(es)
795+ let eC = bb(ey)
796+ let eD = bb(ez)
797+ let eE = (eC - ev)
798+ let eF = (eD - ev)
799+ if ((0 >= eE))
800+ then K(("invalid btcWeightNew: " + toString(eE)))
801+ else if ((0 >= eF))
802+ then K(("invalid ethWeightNew: " + toString(eF)))
755803 else {
756- let ev = aY(aC(ee))
757- let ew = aY(aC(ef))
758- let ex = aY(aC(eg))
759- let ey = aY(aC(eh))
760- let ez = invoke(el, "onModifyWeight", [ev, ee], nil)
761- if ((ez == ez))
804+ let eG = aY(aC(ep))
805+ let eH = aY(aC(eq))
806+ let eI = aY(aC(er))
807+ let eJ = aY(aC(es))
808+ let eK = invoke(ew, "onModifyWeight", [eG, ep], nil)
809+ if ((eK == eK))
762810 then {
763- let eA = invoke(el, "onModifyWeight", [ew, ef], nil)
764- if ((eA == eA))
811+ let eL = invoke(ew, "onModifyWeight", [eH, eq], nil)
812+ if ((eL == eL))
765813 then {
766- let eB = invoke(el, "onModifyWeight", [ex, eg], nil)
767- if ((eB == eB))
814+ let eM = invoke(ew, "onModifyWeight", [eI, er], nil)
815+ if ((eM == eM))
768816 then {
769- let eC = invoke(el, "onModifyWeight", [ey, eh], nil)
770- if ((eC == eC))
771- then [IntegerEntry(en, et), IntegerEntry(eo, eu), IntegerEntry(ep, ei), IntegerEntry(eq, ej), IntegerEntry(ag(ee, 0), er), IntegerEntry(ag(ef, 0), es), IntegerEntry(ag(eg, 0), ei), IntegerEntry(ag(eh, 0), ej)]
817+ let eN = invoke(ew, "onModifyWeight", [eJ, es], nil)
818+ if ((eN == eN))
819+ then [IntegerEntry(ey, eE), IntegerEntry(ez, eF), IntegerEntry(eA, et), IntegerEntry(eB, eu), IntegerEntry(ag(ep, 0), eC), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), et), IntegerEntry(ag(es, 0), eu)]
772820 else throw("Strict value is not equal to itself.")
773821 }
774822 else throw("Strict value is not equal to itself.")
775823 }
776824 else throw("Strict value is not equal to itself.")
777825 }
778826 else throw("Strict value is not equal to itself.")
779827 }
780828 }
781829 else throw("Strict value is not equal to itself.")
782830 }
783831
784832
785833
786834 @Callable(bD)
787835 func checkWxEmissionPoolLabel (aF,aG) = {
788- let eD = {
836+ let eO = {
789837 let bf = getBoolean(aE(aF, aG))
790838 if ($isInstanceOf(bf, "Boolean"))
791839 then {
792- let cJ = bf
793- cJ
840+ let cU = bf
841+ cU
794842 }
795843 else false
796844 }
797- $Tuple2(nil, eD)
845+ $Tuple2(nil, eO)
798846 }
799847
800848
801849
802850 @Callable(bD)
803851 func setWxEmissionPoolLabel (aF,aG) = {
804- let db = cq(bD)
805- if ((db == db))
852+ let dm = cq(bD)
853+ if ((dm == dm))
806854 then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
807855 else throw("Strict value is not equal to itself.")
808856 }
809857
810858
811859
812860 @Callable(bD)
813861 func deleteWxEmissionPoolLabel (aF,aG) = {
814- let db = if ((bD.caller == this))
862+ let dm = if ((bD.caller == this))
815863 then true
816864 else cq(bD)
817- if ((db == db))
865+ if ((dm == dm))
818866 then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
819867 else throw("Strict value is not equal to itself.")
820868 }
821869
822870
823871
824872 @Callable(bD)
825873 func onVerificationLoss (aT) = {
826- let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
874+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
827875 then true
828876 else bE(bD)
829- if ((db == db))
877+ if ((dm == dm))
830878 then {
831- let di = bx()
832- let eE = if ((size(di) > 0))
879+ let dt = bx()
880+ let eP = if ((size(dt) > 0))
833881 then true
834882 else K("invalid price assets")
835- if ((eE == eE))
883+ if ((eP == eP))
836884 then {
837- func eF (eG,eH) = {
838- let cD = invoke(this, "deleteWxEmissionPoolLabel", [aT, eH], nil)
839- if ((cD == cD))
885+ func eQ (eR,eS) = {
886+ let cO = invoke(this, "deleteWxEmissionPoolLabel", [aT, eS], nil)
887+ if ((cO == cO))
840888 then unit
841889 else throw("Strict value is not equal to itself.")
842890 }
843891
844- let eI = {
845- let eJ = di
846- let eK = size(eJ)
847- let eL = unit
848- func eM (eN,eO) = if ((eO >= eK))
849- then eN
850- else eF(eN, eJ[eO])
892+ let eT = {
893+ let eU = dt
894+ let eV = size(eU)
895+ let eW = unit
896+ func eX (eY,eZ) = if ((eZ >= eV))
897+ then eY
898+ else eQ(eY, eU[eZ])
851899
852- func eP (eN,eO) = if ((eO >= eK))
853- then eN
900+ func fa (eY,eZ) = if ((eZ >= eV))
901+ then eY
854902 else throw("List size exceeds 11")
855903
856- eP(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eL, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
904+ fa(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eW, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
857905 }
858- if ((eI == eI))
906+ if ((eT == eT))
859907 then $Tuple2(nil, unit)
860908 else throw("Strict value is not equal to itself.")
861909 }
862910 else throw("Strict value is not equal to itself.")
863911 }
864912 else throw("Strict value is not equal to itself.")
865913 }
866914
867915
868916
869917 @Callable(bD)
870918 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
871- let dI = ch(af)
872- let aq = $Tuple2(parseIntValue(dI[C]), parseIntValue(dI[D]))
873- let eQ = valueOrElse(getBoolean(ap(aq)), false)
874- let eR = valueOrElse(getBoolean(as()), false)
875- $Tuple2(nil, if (eR)
919+ let dT = ch(af)
920+ let aq = $Tuple2(parseIntValue(dT[C]), parseIntValue(dT[D]))
921+ let fb = valueOrElse(getBoolean(ap(aq)), false)
922+ let fc = valueOrElse(getBoolean(as()), false)
923+ $Tuple2(nil, if (fc)
876924 then true
877- else eQ)
925+ else fb)
878926 }
879927
880928
881929
882930 @Callable(bD)
883931 func getInFeeREADONLY (af) = {
884- let eS = ct(aH(af), aI(), 0)
885- $Tuple2(nil, eS)
932+ let fd = ct(aH(af), aI(), 0)
933+ $Tuple2(nil, fd)
886934 }
887935
888936
889937
890938 @Callable(bD)
891939 func getOutFeeREADONLY (af) = {
892- let eS = ct(aJ(af), aK(), fraction(10, b, 10000))
893- $Tuple2(nil, eS)
940+ let fd = ct(aJ(af), aK(), fraction(10, b, 10000))
941+ $Tuple2(nil, fd)
894942 }
895943
896944
897945
898946 @Callable(bD)
899-func poolInfoREADONLY (eT,eU) = {
900- let eV = getInteger(this, ak(eT))
901- let eW = getInteger(this, ak(eU))
902- let eX = getString(this, aB(value(eV), value(eW)))
903- let eY = getString(this, aC(value(eX)))
904- let dv = if (if (isDefined(eV))
905- then isDefined(eW)
947+func poolInfoREADONLY (fe,ff) = {
948+ let fg = getInteger(this, ak(fe))
949+ let fh = getInteger(this, ak(ff))
950+ let fi = getString(this, aB(value(fg), value(fh)))
951+ let fj = getString(this, aC(value(fi)))
952+ let dG = if (if (isDefined(fg))
953+ then isDefined(fh)
906954 else false)
907- then isDefined(eX)
955+ then isDefined(fi)
908956 else false
909- let eZ = if (dv)
910- then $Tuple2(addressFromStringValue(value(eX)), bc(value(eY)))
957+ let fk = if (dG)
958+ then $Tuple2(addressFromStringValue(value(fi)), bc(value(fj)))
911959 else unit
912- $Tuple2(nil, eZ)
960+ $Tuple2(nil, fk)
913961 }
914962
915963
916964
917965 @Callable(bD)
918966 func getPoolStatusREADONLY (af) = {
919967 let ci = split(aY(az(af)), m)
920968 let an = ci[1]
921969 let ao = ci[2]
922970 let cz = split(aY(am(an, ao)), m)
923971 $Tuple2(nil, parseIntValue(cz[w]))
924972 }
925973
926974
927975
928976 @Callable(bD)
929977 func getPoolConfigREADONLY (af) = {
930978 let ci = split(aY(az(af)), m)
931979 let an = ci[1]
932980 let ao = ci[2]
933981 let cz = split(aY(am(an, ao)), m)
934982 $Tuple2(nil, cz)
935983 }
936984
937985
938986
939987 @Callable(bD)
940-func getPoolConfigByLpAssetIdREADONLY (dA) = {
941- let ci = split(aY(at(dA)), m)
988+func getPoolConfigByLpAssetIdREADONLY (dL) = {
989+ let ci = split(aY(at(dL)), m)
942990 let an = ci[1]
943991 let ao = ci[2]
944992 let cz = split(aY(am(an, ao)), m)
945993 $Tuple2(nil, cz)
946994 }
947995
948996
949997
950998 @Callable(bD)
951999 func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cw(aF, aG))
9521000
9531001
9541002
9551003 @Callable(bD)
9561004 func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aL(af)), false))
9571005
9581006
9591007
9601008 @Callable(bD)
9611009 func getChangeAmpConfigREADONLY (af) = {
962- let fa = getIntegerValue(aM(af))
963- let fb = getIntegerValue(aN(af))
964- let fc = getIntegerValue(aO(af))
965- $Tuple2(nil, [fa, fb, fc])
1010+ let fl = getIntegerValue(aM(af))
1011+ let fm = getIntegerValue(aN(af))
1012+ let fn = getIntegerValue(aO(af))
1013+ $Tuple2(nil, [fl, fm, fn])
9661014 }
9671015
9681016
9691017
9701018 @Callable(bD)
9711019 func getPoolWeightREADONLY (bV) = {
9721020 let af = aY(aD(bV))
973- let fd = valueOrElse(getInteger(ae(af)), 0)
974- $Tuple2(nil, fd)
1021+ let fo = valueOrElse(getInteger(ae(af)), 0)
1022+ $Tuple2(nil, fo)
9751023 }
9761024
9771025
9781026
9791027 @Callable(bD)
9801028 func deletePool (aA) = {
981- let db = if (bE(bD))
1029+ let dm = if (if (bE(bD))
1030+ then true
1031+ else if (cL(aA))
1032+ then (toString(bD.caller) == cD(aA))
1033+ else false)
9821034 then true
9831035 else bA
984- if ((db == db))
1036+ if ((dm == dm))
9851037 then {
986- let fe = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1038+ let fp = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
9871039 then true
9881040 else K("Pool weight is not Zero")
989- if ((fe == fe))
1041+ if ((fp == fp))
9901042 then {
991- let ci = split(aY(az(aA)), m)
992- let an = parseIntValue(ci[1])
993- let ao = parseIntValue(ci[2])
994- let aF = getStringValue(ai(an))
995- let aG = getStringValue(ai(ao))
996- let bV = aY(aC(aA))
997- let ff = addressFromStringValue(getStringValue(Z()))
998- let fg = invoke(ff, "deletePool", [aF, aG], nil)
999- if ((fg == fg))
1043+ let fq = cC(aA)
1044+ let aF = fq._1
1045+ let aG = fq._2
1046+ let bV = fq._3
1047+ let an = fq._4
1048+ let ao = fq._5
1049+ let cF = addressFromStringValue(getStringValue(Z()))
1050+ let fr = invoke(cF, "deletePool", [aF, aG], nil)
1051+ if ((fr == fr))
10001052 then {
1001- let dh = addressFromStringValue(getStringValue(Y()))
1002- let fh = invoke(dh, "deletePool", [aF, aG], nil)
1003- if ((fh == fh))
1053+ let ds = addressFromStringValue(getStringValue(Y()))
1054+ let fs = invoke(ds, "deletePool", [aF, aG], nil)
1055+ if ((fs == fs))
10041056 then {
1005- let dg = addressFromStringValue(getStringValue(X()))
1006- let fi = invoke(dg, "deletePool", [aF, aG], nil)
1007- if ((fi == fi))
1057+ let dr = addressFromStringValue(getStringValue(X()))
1058+ let ft = invoke(dr, "deletePool", [aF, aG], nil)
1059+ if ((ft == ft))
10081060 then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
10091061 else throw("Strict value is not equal to itself.")
10101062 }
10111063 else throw("Strict value is not equal to itself.")
10121064 }
10131065 else throw("Strict value is not equal to itself.")
10141066 }
10151067 else throw("Strict value is not equal to itself.")
10161068 }
10171069 else throw("Strict value is not equal to itself.")
10181070 }
10191071
10201072
1021-@Verifier(fj)
1022-func fk () = {
1023- let fl = {
1073+@Verifier(fu)
1074+func fv () = {
1075+ let fw = {
10241076 let bf = by()
10251077 if ($isInstanceOf(bf, "ByteVector"))
10261078 then {
10271079 let bF = bf
10281080 bF
10291081 }
10301082 else if ($isInstanceOf(bf, "Unit"))
1031- then fj.senderPublicKey
1083+ then fu.senderPublicKey
10321084 else throw("Match error")
10331085 }
1034- sigVerify(fj.bodyBytes, fj.proofs[0], fl)
1086+ sigVerify(fu.bodyBytes, fu.proofs[0], fw)
10351087 }
10361088

github/deemru/w8io/873ac7e 
277.13 ms