tx · GDy6DKPHHxygNKUq9udograSwJjBVz2kEcNaJrdPLF7E

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02300000 Waves

2023.02.16 17:53 [2452306] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "GDy6DKPHHxygNKUq9udograSwJjBVz2kEcNaJrdPLF7E", "fee": 2300000, "feeAssetId": null, "timestamp": 1676559232956, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "4CxPoGZHutCS9Lf4FCBgbKjwSDetQKwPNpdEK5pppA36dsyH8i4dsrrvs8GZQwppMKehTchHcgxS1NnXniiVcNiv" ], "script": "base64:BgKwJggCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzcwMDM3NjIiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIgFiIgdhc3NldElkIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIBciIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIDZmVlIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlnAAFhAAgAAWIAgMLXLwABYwASAAFkCQC2AgEAgICQu7rWrfANAAFlBQFiAAFmAg5HV1h2aXJ0dWFsUE9PTAABZwIIUE9PTFNfTFAAAWgAgIl6AAFpCQBoAgkAaAIAZADoBwDoBwABagICX18AAWsCAAABbAABAAFtAAIAAW4AAwABbwAEAAFwAAEAAXEAAgABcgADAAFzAAEAAXQAAgABdQADAAF2AAQAAXcABQABeAAGAAF5AAcAAXoACAABQQAJAAFCAAoAAUMACwABRAILV1hfRU1JU1NJT04AAUUJAMwIAgUBRAUDbmlsAQFGAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUcAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBSAACIiVzX19hbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gBAUkAAhAlc19fc3dhcENvbnRyYWN0AQFKAAIRJXNfX2ZhY3RvcnlDb25maWcBAUsAAhAlc19fbHBUb2tlbnNMaXN0AQFMAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBTQACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBTgACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAU8AAg8lc19fbGVnYWN5UG9vbHMBAVAAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUgACECVzX19hZG1pblB1YktleXMBAVMAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBVAACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFVAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWoBAVYAAhElc19fcHJpY2VEZWNpbWFscwEBVwACDCVzX19zaHV0ZG93bgEBWAACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQFZAQFaCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUBWgECYWECAVoCYWIJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUBWgICX18JAKQDAQUCYWIBAmFjAQJhZAkArAICAiglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQCkAwEFAmFkAQJhZQECYWYJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWYBAmFnAgJhaAJhaQkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYWgCAl9fBQJhaQIIX19jb25maWcBAmFqAQJhawQCYWwFAmFrBAJhaAgFAmFsAl8xBAJhaQgFAmFsAl8yCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCYWgJAMwIAgkApAMBBQJhaQkAzAgCAhpvbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAUDbmlsBQFqAQJhbQAJALkJAgkAzAgCAgIlcwkAzAgCAhpvbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAUDbmlsBQFqAQJhbgECYW8JAKwCAgkArAICAgglcyVzJXNfXwUCYW8CGF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbAECYXACAmFxAmFyCQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18FAmFxAgJfXwUCYXICHl9fbWFwcGluZ3NfX1Bvb2xBc3NldHMyTHBBc3NldAECYXMBAVoJAKwCAgIOJXMlc19fc3ByZWFkX18FAVoBAmF0AQJhdQkArAICCQCsAgICCCVzJXMlc19fBQJhdQIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmF2AgJhcQJhcgkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFxAgJfXwkApAMBBQJhcgIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmF3AQJhdQkArAICCQCsAgICCCVzJXMlc19fBQJhdQIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmF4AQJhbwkArAICCQCsAgICCCVzJXMlc19fBQJhbwIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmF5AgJhegJhQQkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmF6AgJfXwUCYUEBAmFCAQFaCQCsAgICDSVzJXNfX2luRmVlX18FAVoBAmFDAAIQJXNfX2luRmVlRGVmYXVsdAECYUQBAVoJAKwCAgIOJXMlc19fb3V0RmVlX18FAVoBAmFFAAIRJXNfX291dEZlZURlZmF1bHQBAmFGAQJhRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFHCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUcBAmFIAQJhRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFAmFHCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUcBAmFJAQJhRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAmFHCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYUcAAmFKAAEAAmFLAAIAAmFMAAMAAmFNAAQAAmFOAAUAAmFPAAYAAmFQAAcAAmFRAAgAAmFSAAkAAmFTAAoAAmFUAAsBAmFVAQJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVgUCYUsBAmFXAQJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVgUCYU4BAmFYAQJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVgUCYUoBAmFZAQJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVgUCYVMBAmFaAAQCYmEJAKIIAQkBAVUAAwkAAQIFAmJhAgZTdHJpbmcEAmJiBQJiYQMJAAACCQCxAgEFAmJiAAAFA25pbAkAtQkCBQJiYgUBagUDbmlsAQJiYwAEAmJhCQCiCAEJAQFQAAMJAAECBQJiYQIGU3RyaW5nBAJiYgUCYmEJANkEAQUCYmIDCQABAgUCYmECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYmQABAJiYQkAoggBCQEBUQADCQABAgUCYmECBlN0cmluZwQCYmIFAmJhCQDZBAEFAmJiAwkAAQIFAmJhAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmJlCQACAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJmCQACAQIPVGVzdCBlcnJvciBoZXJlAQJiZwECYmgDCQAAAggFAmJoBmNhbGxlcgUEdGhpcwYFAmJlAQJiaQECYmgEAmJhCQECYmMAAwkAAQIFAmJhAgpCeXRlVmVjdG9yBAJiagUCYmEDCQAAAggFAmJoD2NhbGxlclB1YmxpY0tleQUCYmoGBQJiZQMJAAECBQJiYQIEVW5pdAkBAmJnAQUCYmgJAAIBAgtNYXRjaCBlcnJvcgECYmsLAmJsAmJtAmJuAmJvAmJwAmJxAmJyAmJzAmJ0AmJ1AmJ2CQC5CQIJAMwIAgIWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkAzAgCBQJibAkAzAgCBQJibQkAzAgCBQJibgkAzAgCBQJibwkAzAgCBQJicAkAzAgCBQJicQkAzAgCBQJicgkAzAgCBQJicwkAzAgCBQJidAkAzAgCBQJidQkAzAgCBQJidgUDbmlsBQFqAQJidwcCYmwCYm0CYm4CYm8CYnACYnECYnIJALkJAgkAzAgCAgwlcyVzJXMlcyVzJXMJAMwIAgUCYmwJAMwIAgUCYm0JAMwIAgUCYm4JAMwIAgUCYm8JAMwIAgUCYnAJAMwIAgUCYnEJAMwIAgUCYnIFA25pbAUBagECYngLAVoCYnkCYnoCYkECYkICYkMCYkQCYkUCYkYCYkcCYkgJALkJAgkAzAgCAhYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQDMCAIFAVoJAMwIAgUCYnkJAMwIAgUCYnoJAMwIAgUCYkEJAMwIAgUCYkIJAMwIAgkApAMBBQJiQwkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHCQDMCAIFAmJIBQNuaWwFAWoBAmJJAgJiSgJiSwkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJiSgkAzAgCCQCkAwEFAmJLBQNuaWwFAWoBAmJMAQFaBAJiTQkAtQkCCQECYUYBCQECYXQBBQFaBQFqBAJhaAkAkQMCBQJiTQABBAJhaQkAkQMCBQJiTQACCQC1CQIJAQJhRgEJAQJhZwIFAmFoBQJhaQUBagECYk4CAmJPAmJQBAJiUQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWUBBQJiTwAABAJiUgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBWAAAAAQCYlMDCQAAAgUCYlEAAAQCYlQJAGQCBQJiUgUCYlAJAJUKAwUCYlQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAAUCYlQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQEFAmJPBQJiVAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWMBBQJiVAUCYk8FA25pbAYJAJUKAwUCYlEFA25pbAcFAmJTAQJiVQECYmgEAmJWCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVIABQFrBQFqAwkBD2NvbnRhaW5zRWxlbWVudAIFAmJWCQDYBAEIBQJiaA9jYWxsZXJQdWJsaWNLZXkGBAJiVwkBAmJpAQUCYmgDCQAAAgUCYlcFAmJXBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYlgDAmFHAmJZAmJaCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFHCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmJZBQJiWgECY2ECAmF6AmFBBAJhaAkAnwgBCQECYWUBBQJhegQCYWkJAJ8IAQkBAmFlAQUCYUEDAwkAAAIFAmFoBQR1bml0BgkAAAIFAmFpBQR1bml0BwQCY2IJAKQDAQkBBXZhbHVlAQUCYWgEAmNjCQCkAwEJAQV2YWx1ZQEFAmFpBAJjZAkAoggBCQECYWcCBQJjYgUCY2MEAmNlCQCiCAEJAQJhZwIFAmNjBQJjYgQCY2YDCQECIT0CBQJjZAUEdW5pdAYJAQIhPQIFAmNlBQR1bml0BQJjZhwCYmgBF2dldFN3YXBDb250cmFjdFJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRgEJAQFJAAJiaAEgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkCAmNnAmNoAwMJAAACBQJjZwIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMJAAACBQJjaAIFV0FWRVMHCQCUCgIFA25pbAUEdW5pdAQCY2kJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFlAQUCY2cEAmNqCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhZQEFAmNoBAJjawkAnQgCBQR0aGlzCQECYXACCQCkAwEFAmNpCQCkAwEFAmNqBAJjbAMJAAACBQJjawUEdW5pdAUEdW5pdAkAsAICCQEFdmFsdWUBBQJjawAECQCUCgIFA25pbAUCY2wCYmgBIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQECY20JAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJheAEFAmNtAgACYmgBC2NvbnN0cnVjdG9yCAJjbgJjbwJibgJibwJicAJicQJjcAJjcQQCY3IJAQJiaQEFAmJoAwkAAAIFAmNyBQJjcgkAzAgCCQELU3RyaW5nRW50cnkCCQEBSgAJAQJidwcFAmNuBQJjbwUCYm4FAmJvBQJicAUCYnEFAmNwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgAFAmNxBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBDWNvbnN0cnVjdG9yVjIBAmNzBAJjcgkBAmJpAQUCYmgDCQAAAgUCY3IFAmNyBAJjdAkApwgBCQDZBAEFAmNzAwkAAAIFAmN0BQJjdAkAzAgCCQELU3RyaW5nRW50cnkCCQEBTQAFAmNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBDWNvbnN0cnVjdG9yVjMEAmJzAmJ0AmJ1AmJ2BAJjcgkBAmJpAQUCYmgDCQAAAgUCY3IFAmNyBAJhVgkAtQkCCQECYUYBCQEBSgAFAWoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUoACQECYmsLCQCRAwIFAmFWAAEJAJEDAgUCYVYAAgkAkQMCBQJhVgADCQCRAwIFAmFWAAQJAJEDAgUCYVYABQkAkQMCBQJhVgAGCQCRAwIFAmFWAAcFAmJzBQJidAUCYnUFAmJ2BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBDWNvbnN0cnVjdG9yVjQCAmN1AmN2BAJjcgkBAmJpAQUCYmgDCQAAAgUCY3IFAmNyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAUCY3UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQC5CQIFAmN2BQFqBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBDWNvbnN0cnVjdG9yVjUBAmN3BAJjcgkBAmJpAQUCYmgDCQAAAgUCY3IFAmNyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAUCY3cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENY29uc3RydWN0b3JWNgICY3gCY3kEAmN6CQDMCAIJAQJiaQEFAmJoCQDMCAIDCQECIT0CCQCmCAEFAmN4BQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmN6BQJjegkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAFAmN4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFVAAkAuQkCBQJjeQUBagUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAQpzZXRNYW5hZ2VyAQJjQQQCY3IJAQJiaQEFAmJoAwkAAAIFAmNyBQJjcgQCY0IJANkEAQUCY0EDCQAAAgUCY0IFAmNCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAAUCY0EFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAEOY29uZmlybU1hbmFnZXIABAJjQwkBAmJkAAQCY0QDCQEJaXNEZWZpbmVkAQUCY0MGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNEBQJjRAQCY0UDCQAAAggFAmJoD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY0MGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNFBQJjRQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUAAJANgEAQkBBXZhbHVlAQUCY0MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVEABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBCXNldEFkbWlucwECY0YEAmNyCQECYmkBBQJiaAMJAAACBQJjcgUCY3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIACQC5CQIFAmNGBQFqBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBD2FjdGl2YXRlTmV3UG9vbAgBWgJiQQJiQgJjRwJjSAJjSQJiSAJjSgQCY3IJAQJiVQEFAmJoAwkAAAIFAmNyBQJjcgMJAQlpc0RlZmluZWQBCQCiCAEJAQJhdAEFAVoJAAIBCQCsAgIJAKwCAgINUG9vbCBhZGRyZXNzIAUBWgIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmNLCQECYk4CBQJiQQABBAJjTAgFAmNLAl8xBAJjTQkBAmJOAgUCYkIDCAUCY0sCXzMAAgABBAJjTggFAmNNAl8xBAJjTwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVoJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAVoEAmNQCQERQGV4dHJOYXRpdmUoMTA1NykBCQEBTAAEAmNRCQECY2ECBQJiQQUCYkIDBQJjUQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmJBAgEvBQJiQgIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCY1IJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFnAgkApAMBBQJjTAkApAMBBQJjTgQCY1MDCQAAAgUCYkECBVdBVkVTBQFpCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCYkEIZGVjaW1hbHMAAAAABQRET1dOBAJjVAMJAAACBQJiQgIFV0FWRVMFAWkJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiQghkZWNpbWFscwAAAAAFBERPV04EAmNVCQDCCAUFAmNHBQJjSAABAAgGBAJiegkAuAgBBQJjVQQCY1YJANgEAQUCYnoEAmNXCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVoCCGFjdGl2YXRlCQDMCAIFAmJBCQDMCAIFAmJCBQNuaWwFA25pbAMJAAACBQJjVwUCY1cDCQECIT0CBQJjVwIHc3VjY2VzcwkAAgECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBAJjdwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFGAQkBAVMABAJjWAkA/AcEBQJjdwIOY3JlYXRlT3JVcGRhdGUJAMwIAgUCY1YJAMwIAgUCY0cJAMwIAgcFA25pbAUDbmlsAwkAAAIFAmNYBQJjWAQCY1kJAPwHBAUCY3cCCGFkZExhYmVsCQDMCAIFAmNWCQDMCAIFAWcFA25pbAUDbmlsAwkAAAIFAmNZBQJjWQQCY1oJAPwHBAUCY3cCB3NldExvZ28JAMwIAgUCY1YJAMwIAgUCY0oFA25pbAUDbmlsAwkAAAIFAmNaBQJjWgQCZGEJAPwHBAUCY3cCDWFkZEFzc2V0c0xpbmsJAMwIAgUCYkEJAMwIAgUCYkIJAMwIAgUCY1YFA25pbAUDbmlsAwkAAAIFAmRhBQJkYQQCZGIJAPwHBAUCY3cCGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQJiQQUDbmlsBQNuaWwDCQAAAgUCZGIFAmRiCQCUCgIJAM4IAgkAzggCCAUCY0sCXzIIBQJjTQJfMgkAzAgCBQJjVQkAzAgCCQEEQnVybgIFAmJ6AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgkApAMBBQJjTAkApAMBBQJjTgkBAmJ4CwUBWgkApAMBBQFsBQJjVgUCYkEFAmJCBQJjUwUCY1QFAmNMBQJjTgUBaQUCYkgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFuAQUCY1YJAQJiSQIFAmNMBQJjTgkAzAgCCQELU3RyaW5nRW50cnkCCQECYXACCQCkAwEFAmNMCQCkAwEFAmNOCQCsAgICBCVzX18FAmNWCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdAEFAVoJAQJiSQIFAmNMBQJjTgkAzAgCCQELU3RyaW5nRW50cnkCCQECYXYCBQJjTAUCY04FAVoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF4AQUCY1YFAVoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AQUBWgUCY1YJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFZAQUBWgUCY0kJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcwEFAVoFAWgFA25pbAUCY1YJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBCm1hbmFnZVBvb2wCAVoCZGMEAmNyCQECYmkBBQJiaAMJAAACBQJjcgUCY3IEAmRkCQECYkwBBQFaBAJieQkAkQMCBQJkZAUBdAQCY1YJAJEDAgUCZGQFAXUEAmJBCQCRAwIFAmRkBQF2BAJiQgkAkQMCBQJkZAUBdwQCY1MJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBeAQCY1QJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBeQQCY0wJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBegQCY04JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBQQQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZAUBQgQCYkgJAJEDAgUCZGQFAUMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgkApAMBBQJjTAkApAMBBQJjTgkBAmJ4CwUBWgkApAMBBQJkYwUCY1YFAmJBBQJiQgUCY1MFAmNUBQJjTAUCY04FAmRlBQJiSAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAQRlbWl0AQJkZgQCZGcIBQJiaAZjYWxsZXIEAmRoCAUCYmgMb3JpZ2luQ2FsbGVyBAJkaQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhdwEJAKUIAQUCZGcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkagkA2QQBBQJkaQQCY3YJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBTwAFAWsFAWoEAmN1CQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAU4AAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCZGYFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJjdgkApQgBBQJkZwkAlAoCBQNuaWwFAmN1CQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkagUCZGYGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiaAZjYWxsZXIFAmRmBQJkagUDbmlsAgdzdWNjZXNzAmJoAQRidXJuAQJkawQCZGcIBQJiaAZjYWxsZXIEAmRoCAUCYmgMb3JpZ2luQ2FsbGVyBAJkbAkBBXZhbHVlAQkAkQMCCAUCYmgIcGF5bWVudHMAAAQCZG0JAQV2YWx1ZQEIBQJkbAZhbW91bnQEAmRuCQDYBAEJAQV2YWx1ZQEIBQJkbAdhc3NldElkBAJkbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhdwEJAKUIAQUCZGcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZG4FAmRvCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUCZGsFAmRtCQACAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZGoJANkEAQUCZG8JAJQKAgkAzAgCCQEEQnVybgIFAmRqBQJkawUDbmlsAgdzdWNjZXNzAmJoAQxtb2RpZnlXZWlnaHQCAmJ6AmRwBAJjcgMJAAACCQDYBAEICAUCYmgGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFUAAIABgkBAmJpAQUCYmgDCQAAAgUCY3IFAmNyBAJhdQkBAmFGAQkBAmF4AQUCYnoEAmRxCQEBWQEFAmF1BAJkcgkBAVkBBQFmBAJkcwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkcgAABAJjSQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkcQAABAJkdAUCZHAEAmFWCQC1CQIJAQJhRgEJAQFKAAUBagQCY24JAQJhWAEFAmFWBAJkdQkA/AcEBQJjbgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCYnoJAMwIAgUCYXUFA25pbAUDbmlsAwkAAAIFAmR1BQJkdQQCZHYDCQAAAgUCZHMAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkcgAABQNuaWwEAmR3CQECYWECBQJhdQAABAJkeAkAnwgBBQJkdwQCZHkDCQAAAgUCZHgFBHVuaXQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQJkdwUDbmlsCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHEFAmR0BQNuaWwFAmR2BQJkeQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiaAENbW9kaWZ5V2VpZ2h0cwQCZHoCZEECZEICZEMEAmNyCQECYmkBBQJiaAMJAAACBQJjcgUCY3IEAmRECQBpAgkAaAIABQUBZQBkBAJkRQkAaQIJAGgCAAUFAWUAZAQCZEYJAGkCCQBoAgAFBQFlAGQEAmFWCQC1CQIJAQJhRgEJAQFKAAUBagQCZEcJAQJhWAEFAmFWBAJkSAkBAmFZAQUCYVYEAmRJCQEBWQEFAmR6BAJkSgkBAVkBBQJkQQQCZEsJAQFZAQUCZEIEAmRMCQEBWQEFAmRDBAJkTQkBAmFJAQUCZEkEAmROCQECYUkBBQJkSgQCZE8JAGUCBQJkTQUCZEYEAmRQCQBlAgUCZE4FAmRGAwkAZwIAAAUCZE8JAAIBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZE8DCQBnAgAABQJkUAkAAgEJAKwCAgIWaW52YWxpZCBldGhXZWlnaHROZXc6IAkApAMBBQJkUAQCZFEJAQJhRgEJAQJhdwEFAmR6BAJkUgkBAmFGAQkBAmF3AQUCZEEEAmRTCQECYUYBCQECYXcBBQJkQgQCZFQJAQJhRgEJAQJhdwEFAmRDBAJkVQkA/AcEBQJkRwIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFEJAMwIAgUCZHoFA25pbAUDbmlsAwkAAAIFAmRVBQJkVQQCZFYJAPwHBAUCZEcCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRSCQDMCAIFAmRBBQNuaWwFA25pbAMJAAACBQJkVgUCZFYEAmRXCQD8BwQFAmRHAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkUwkAzAgCBQJkQgUDbmlsBQNuaWwDCQAAAgUCZFcFAmRXBAJkWAkA/AcEBQJkRwIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFQJAMwIAgUCZEMFA25pbAUDbmlsAwkAAAIFAmRYBQJkWAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZEkFAmRPCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkSgUCZFAJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRLBQJkRAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZEwFAmRFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWECBQJkegAABQJkTQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFhAgUCZEEAAAUCZE4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYQIFAmRCAAAFAmRECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWECBQJkQwAABQJkRQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwCAmF6AmFBBAJkWQQCYmEJAKAIAQkBAmF5AgUCYXoFAmFBAwkAAQIFAmJhAgdCb29sZWFuBAJkWgUCYmEFAmRaBwkAlAoCBQNuaWwFAmRZAmJoARZzZXRXeEVtaXNzaW9uUG9vbExhYmVsAgJhegJhQQQCY3IJAQJiVQEFAmJoAwkAAAIFAmNyBQJjcgkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQECYXkCBQJhegUCYUEGBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCAmF6AmFBBAJjcgMJAQJiZwEFAmJoBgkBAmJVAQUCYmgDCQAAAgUCY3IFAmNyCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF5AgUCYXoFAmFBBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmgBEm9uVmVyaWZpY2F0aW9uTG9zcwECZWEEAmNyAwkAAAIJANgEAQgIBQJiaAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVMAAgAGCQECYmkBBQJiaAMJAAACBQJjcgUCY3IEAmN5CQECYVoABAJlYgMJAGYCCQCQAwEFAmN5AAAGCQACAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZWIFAmViCgECZWMCAmVkAmVlBAJlZgkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmVhCQDMCAIFAmVlBQNuaWwFA25pbAMJAAACBQJlZgUCZWYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmVnCgACZWgFAmN5CgACZWkJAJADAQUCZWgKAAJlagUEdW5pdAoBAmVrAgJlbAJlbQMJAGcCBQJlbQUCZWkFAmVsCQECZWMCBQJlbAkAkQMCBQJlaAUCZW0KAQJlbgICZWwCZW0DCQBnAgUCZW0FAmVpBQJlbAkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDEJAQJlbgIJAQJlawIFAmVqAAAAAQMJAAACBQJlZwUCZWcJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJoAShpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZAQFaBAJkZAkBAmJMAQUBWgQCYWsJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRkBQF6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGQFAUEEAmVvCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhagEFAmFrBwQCZXAJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFtAAcJAJQKAgUDbmlsAwUCZXAGBQJlbwJiaAEQZ2V0SW5GZWVSRUFET05MWQEBWgQCZXEJAQJiWAMJAQJhQgEFAVoJAQJhQwAAAAkAlAoCBQNuaWwFAmVxAmJoARFnZXRPdXRGZWVSRUFET05MWQEBWgQCZXEJAQJiWAMJAQJhRAEFAVoJAQJhRQAJAGsDAAoFAWIAkE4JAJQKAgUDbmlsBQJlcQJiaAEVZ2V0UG9vbFN0YXR1c1JFQURPTkxZAQFaBAJiTQkAtQkCCQECYUYBCQECYXQBBQFaBQFqBAJhaAkAkQMCBQJiTQABBAJhaQkAkQMCBQJiTQACBAJjZAkAtQkCCQECYUYBCQECYWcCBQJhaAUCYWkFAWoJAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2QFAXQCYmgBGGdldFBvb2xDb25maWdCeUxwQXNzZXRJZAECY1YEAmJNCQC1CQIJAQJhRgEJAQJhbgEFAmNWBQFqBAJhaAkAkQMCBQJiTQABBAJhaQkAkQMCBQJiTQACBAJjZAkAtQkCCQECYUYBCQECYWcCBQJhaAUCYWkFAWoJAJQKAgUDbmlsBQJjZAJiaAEScG9vbEV4aXN0c1JFQURPTkxZAgJhegJhQQkAlAoCBQNuaWwJAQJjYQIFAmF6BQJhQQECZXIBAmVzAAQCZXQEAmJhCQECYmMAAwkAAQIFAmJhAgpCeXRlVmVjdG9yBAJiagUCYmEFAmJqAwkAAQIFAmJhAgRVbml0CAUCZXIPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVyCWJvZHlCeXRlcwkAkQMCCAUCZXIGcHJvb2ZzAAAFAmV0DEWbsQ==", "height": 2452306, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: RfVvRpPYsqrkmTxBW8jA1ZTLYNMDsUszYsKCKXErxSj Next: B2xhnz7vEsqM2BvPsZMRag1e4UFpd1MFUmf8KN7p5S6g Diff:
OldNewDifferences
337337 func bX (aG,bY,bZ) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bY), bZ))
338338
339339
340+func ca (az,aA) = {
341+ let ah = getInteger(ae(az))
342+ let ai = getInteger(ae(aA))
343+ if (if ((ah == unit))
344+ then true
345+ else (ai == unit))
346+ then false
347+ else {
348+ let cb = toString(value(ah))
349+ let cc = toString(value(ai))
350+ let cd = getString(ag(cb, cc))
351+ let ce = getString(ag(cc, cb))
352+ let cf = if ((cd != unit))
353+ then true
354+ else (ce != unit)
355+ cf
356+ }
357+ }
358+
359+
340360 @Callable(bh)
341361 func getSwapContractREADONLY () = $Tuple2(nil, aF(I()))
342362
343363
344364
345365 @Callable(bh)
346-func getLpAssetFromPoolAssetsREADONLY (ca,cb) = if (if ((ca == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
347- then (cb == "WAVES")
366+func getLpAssetFromPoolAssetsREADONLY (cg,ch) = if (if ((cg == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
367+ then (ch == "WAVES")
348368 else false)
349369 then $Tuple2(nil, unit)
350370 else {
351- let cc = value(getInteger(this, ae(ca)))
352- let cd = value(getInteger(this, ae(cb)))
353- let ce = getString(this, ap(toString(cc), toString(cd)))
354- let cf = if ((ce == unit))
371+ let ci = value(getInteger(this, ae(cg)))
372+ let cj = value(getInteger(this, ae(ch)))
373+ let ck = getString(this, ap(toString(ci), toString(cj)))
374+ let cl = if ((ck == unit))
355375 then unit
356- else drop(value(ce), 4)
357- $Tuple2(nil, cf)
376+ else drop(value(ck), 4)
377+ $Tuple2(nil, cl)
358378 }
359379
360380
361381
362382 @Callable(bh)
363-func getPoolAddressFromLpAssetREADONLY (cg) = $Tuple2(nil, valueOrElse(getString(this, ax(cg)), ""))
383+func getPoolAddressFromLpAssetREADONLY (cm) = $Tuple2(nil, valueOrElse(getString(this, ax(cm)), ""))
364384
365385
366386
367387 @Callable(bh)
368-func constructor (ch,ci,bn,bo,bp,bq,cj,ck) = {
369- let cl = bi(bh)
370- if ((cl == cl))
371- then [StringEntry(J(), bw(ch, ci, bn, bo, bp, bq, cj)), IntegerEntry(V(), ck)]
388+func constructor (cn,co,bn,bo,bp,bq,cp,cq) = {
389+ let cr = bi(bh)
390+ if ((cr == cr))
391+ then [StringEntry(J(), bw(cn, co, bn, bo, bp, bq, cp)), IntegerEntry(V(), cq)]
372392 else throw("Strict value is not equal to itself.")
373393 }
374394
375395
376396
377397 @Callable(bh)
378-func constructorV2 (cm) = {
379- let cl = bi(bh)
380- if ((cl == cl))
398+func constructorV2 (cs) = {
399+ let cr = bi(bh)
400+ if ((cr == cr))
381401 then {
382- let cn = addressFromPublicKey(fromBase58String(cm))
383- if ((cn == cn))
384- then [StringEntry(M(), cm)]
402+ let ct = addressFromPublicKey(fromBase58String(cs))
403+ if ((ct == ct))
404+ then [StringEntry(M(), cs)]
385405 else throw("Strict value is not equal to itself.")
386406 }
387407 else throw("Strict value is not equal to itself.")
391411
392412 @Callable(bh)
393413 func constructorV3 (bs,bt,bu,bv) = {
394- let cl = bi(bh)
395- if ((cl == cl))
414+ let cr = bi(bh)
415+ if ((cr == cr))
396416 then {
397417 let aV = split(aF(J()), j)
398418 [StringEntry(J(), bk(aV[1], aV[2], aV[3], aV[4], aV[5], aV[6], aV[7], bs, bt, bu, bv))]
403423
404424
405425 @Callable(bh)
406-func constructorV4 (co,cp) = {
407- let cl = bi(bh)
408- if ((cl == cl))
409- then [StringEntry(N(), co), StringEntry(O(), makeString(cp, j))]
426+func constructorV4 (cu,cv) = {
427+ let cr = bi(bh)
428+ if ((cr == cr))
429+ then [StringEntry(N(), cu), StringEntry(O(), makeString(cv, j))]
410430 else throw("Strict value is not equal to itself.")
411431 }
412432
413433
414434
415435 @Callable(bh)
416-func constructorV5 (cq) = {
417- let cl = bi(bh)
418- if ((cl == cl))
419- then [StringEntry(S(), cq)]
436+func constructorV5 (cw) = {
437+ let cr = bi(bh)
438+ if ((cr == cr))
439+ then [StringEntry(S(), cw)]
420440 else throw("Strict value is not equal to itself.")
421441 }
422442
423443
424444
425445 @Callable(bh)
426-func constructorV6 (cr,cs) = {
427- let ct = [bi(bh), if ((addressFromString(cr) != unit))
446+func constructorV6 (cx,cy) = {
447+ let cz = [bi(bh), if ((addressFromString(cx) != unit))
428448 then true
429449 else "invalid voting emission contract address"]
430- if ((ct == ct))
431- then [StringEntry(T(), cr), StringEntry(U(), makeString(cs, j))]
450+ if ((cz == cz))
451+ then [StringEntry(T(), cx), StringEntry(U(), makeString(cy, j))]
432452 else throw("Strict value is not equal to itself.")
433453 }
434454
435455
436456
437457 @Callable(bh)
438-func setManager (cu) = {
439- let cl = bi(bh)
440- if ((cl == cl))
458+func setManager (cA) = {
459+ let cr = bi(bh)
460+ if ((cr == cr))
441461 then {
442- let cv = fromBase58String(cu)
443- if ((cv == cv))
444- then [StringEntry(Q(), cu)]
462+ let cB = fromBase58String(cA)
463+ if ((cB == cB))
464+ then [StringEntry(Q(), cA)]
445465 else throw("Strict value is not equal to itself.")
446466 }
447467 else throw("Strict value is not equal to itself.")
451471
452472 @Callable(bh)
453473 func confirmManager () = {
454- let cw = bd()
455- let cx = if (isDefined(cw))
474+ let cC = bd()
475+ let cD = if (isDefined(cC))
456476 then true
457477 else throw("No pending manager")
458- if ((cx == cx))
478+ if ((cD == cD))
459479 then {
460- let cy = if ((bh.callerPublicKey == value(cw)))
480+ let cE = if ((bh.callerPublicKey == value(cC)))
461481 then true
462482 else throw("You are not pending manager")
463- if ((cy == cy))
464- then [StringEntry(P(), toBase58String(value(cw))), DeleteEntry(Q())]
483+ if ((cE == cE))
484+ then [StringEntry(P(), toBase58String(value(cC))), DeleteEntry(Q())]
465485 else throw("Strict value is not equal to itself.")
466486 }
467487 else throw("Strict value is not equal to itself.")
470490
471491
472492 @Callable(bh)
473-func setAdmins (cz) = {
474- let cl = bi(bh)
475- if ((cl == cl))
476- then [StringEntry(R(), makeString(cz, j))]
493+func setAdmins (cF) = {
494+ let cr = bi(bh)
495+ if ((cr == cr))
496+ then [StringEntry(R(), makeString(cF, j))]
477497 else throw("Strict value is not equal to itself.")
478498 }
479499
480500
481501
482502 @Callable(bh)
483-func activateNewPool (Z,bA,bB,cA,cB,cC,bH,cD) = {
484- let cl = bU(bh)
485- if ((cl == cl))
503+func activateNewPool (Z,bA,bB,cG,cH,cI,bH,cJ) = {
504+ let cr = bU(bh)
505+ if ((cr == cr))
486506 then if (isDefined(getString(at(Z))))
487507 then throw((("Pool address " + Z) + " already registered."))
488508 else {
489- let cE = bN(bA, 1)
490- let cF = cE._1
491- let cG = bN(bB, if (cE._3)
509+ let cK = bN(bA, 1)
510+ let cL = cK._1
511+ let cM = bN(bB, if (cK._3)
492512 then 2
493513 else 1)
494- let cH = cG._1
495- let cI = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
496- let cJ = getBinaryValue(L())
497- let cK = getString(this, ag(toString(cF), toString(cH)))
498- if (isDefined(cK))
514+ let cN = cM._1
515+ let cO = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
516+ let cP = getBinaryValue(L())
517+ let cQ = ca(bA, bB)
518+ if (cQ)
499519 then throw((((("Pool " + bA) + "/") + bB) + " has already been activated."))
500520 else {
501- let cL = value(getString(this, ag(toString(cF), toString(cH))))
502- let cM = if ((bA == "WAVES"))
521+ let cR = value(getString(this, ag(toString(cL), toString(cN))))
522+ let cS = if ((bA == "WAVES"))
503523 then i
504524 else pow(10, 0, value(assetInfo(fromBase58String(bA))).decimals, 0, 0, DOWN)
505- let cN = if ((bB == "WAVES"))
525+ let cT = if ((bB == "WAVES"))
506526 then i
507527 else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
508- let cO = Issue(cA, cB, 1, 8, true)
509- let bz = calculateAssetId(cO)
510- let cP = toBase58String(bz)
511- let cQ = invoke(addressFromStringValue(Z), "activate", [bA, bB], nil)
512- if ((cQ == cQ))
513- then if ((cQ != "success"))
528+ let cU = Issue(cG, cH, 1, 8, true)
529+ let bz = calculateAssetId(cU)
530+ let cV = toBase58String(bz)
531+ let cW = invoke(addressFromStringValue(Z), "activate", [bA, bB], nil)
532+ if ((cW == cW))
533+ then if ((cW != "success"))
514534 then throw("Pool initialisation error happened.")
515535 else {
516- let cq = addressFromStringValue(aF(S()))
517- let cR = invoke(cq, "createOrUpdate", [cP, cA, false], nil)
518- if ((cR == cR))
536+ let cw = addressFromStringValue(aF(S()))
537+ let cX = invoke(cw, "createOrUpdate", [cV, cG, false], nil)
538+ if ((cX == cX))
519539 then {
520- let cS = invoke(cq, "addLabel", [cP, g], nil)
521- if ((cS == cS))
540+ let cY = invoke(cw, "addLabel", [cV, g], nil)
541+ if ((cY == cY))
522542 then {
523- let cT = invoke(cq, "setLogo", [cP, cD], nil)
524- if ((cT == cT))
543+ let cZ = invoke(cw, "setLogo", [cV, cJ], nil)
544+ if ((cZ == cZ))
525545 then {
526- let cU = invoke(cq, "addAssetsLink", [bA, bB, cP], nil)
527- if ((cU == cU))
546+ let da = invoke(cw, "addAssetsLink", [bA, bB, cV], nil)
547+ if ((da == da))
528548 then {
529- let cV = invoke(cq, "increaseAssetPoolsNumber", [bA], nil)
530- if ((cV == cV))
531- then $Tuple2(((cE._2 ++ cG._2) ++ [cO, Burn(bz, 1), StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(l), cP, bA, bB, cM, cN, cF, cH, i, bH)), StringEntry(an(cP), bI(cF, cH)), StringEntry(ap(toString(cF), toString(cH)), ("%s__" + cP)), StringEntry(at(Z), bI(cF, cH)), StringEntry(av(cF, cH), Z), StringEntry(ax(cP), Z), StringEntry(aw(Z), cP), IntegerEntry(Y(Z), cC), IntegerEntry(as(Z), h)]), cP)
549+ let db = invoke(cw, "increaseAssetPoolsNumber", [bA], nil)
550+ if ((db == db))
551+ then $Tuple2(((cK._2 ++ cM._2) ++ [cU, Burn(bz, 1), StringEntry(ag(toString(cL), toString(cN)), bx(Z, toString(l), cV, bA, bB, cS, cT, cL, cN, i, bH)), StringEntry(an(cV), bI(cL, cN)), StringEntry(ap(toString(cL), toString(cN)), ("%s__" + cV)), StringEntry(at(Z), bI(cL, cN)), StringEntry(av(cL, cN), Z), StringEntry(ax(cV), Z), StringEntry(aw(Z), cV), IntegerEntry(Y(Z), cI), IntegerEntry(as(Z), h)]), cV)
532552 else throw("Strict value is not equal to itself.")
533553 }
534554 else throw("Strict value is not equal to itself.")
548568
549569
550570 @Callable(bh)
551-func managePool (Z,cW) = {
552- let cl = bi(bh)
553- if ((cl == cl))
571+func managePool (Z,dc) = {
572+ let cr = bi(bh)
573+ if ((cr == cr))
554574 then {
555- let cK = bL(Z)
556- let by = cK[t]
557- let cP = cK[u]
558- let bA = cK[v]
559- let bB = cK[w]
560- let cM = parseIntValue(cK[x])
561- let cN = parseIntValue(cK[y])
562- let cF = parseIntValue(cK[z])
563- let cH = parseIntValue(cK[A])
564- let cX = parseIntValue(cK[B])
565- let bH = cK[C]
566-[StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(cW), cP, bA, bB, cM, cN, cF, cH, cX, bH))]
575+ let dd = bL(Z)
576+ let by = dd[t]
577+ let cV = dd[u]
578+ let bA = dd[v]
579+ let bB = dd[w]
580+ let cS = parseIntValue(dd[x])
581+ let cT = parseIntValue(dd[y])
582+ let cL = parseIntValue(dd[z])
583+ let cN = parseIntValue(dd[A])
584+ let de = parseIntValue(dd[B])
585+ let bH = dd[C]
586+[StringEntry(ag(toString(cL), toString(cN)), bx(Z, toString(dc), cV, bA, bB, cS, cT, cL, cN, de, bH))]
567587 }
568588 else throw("Strict value is not equal to itself.")
569589 }
571591
572592
573593 @Callable(bh)
574-func emit (cY) = {
575- let cZ = bh.caller
576- let da = bh.originCaller
577- let db = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
578- let dc = fromBase58String(db)
579- let cp = split(valueOrElse(getString(O()), k), j)
580- let co = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
581- if ((0 >= cY))
594+func emit (df) = {
595+ let dg = bh.caller
596+ let dh = bh.originCaller
597+ let di = valueOrErrorMessage(getString(aw(toString(dg))), "Invalid LP address called me.")
598+ let dj = fromBase58String(di)
599+ let cv = split(valueOrElse(getString(O()), k), j)
600+ let cu = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
601+ if ((0 >= df))
582602 then nil
583- else if (containsElement(cp, toString(cZ)))
584- then $Tuple2(nil, co)
585- else $Tuple2([Reissue(dc, cY, true), ScriptTransfer(bh.caller, cY, dc)], "success")
603+ else if (containsElement(cv, toString(dg)))
604+ then $Tuple2(nil, cu)
605+ else $Tuple2([Reissue(dj, df, true), ScriptTransfer(bh.caller, df, dj)], "success")
586606 }
587607
588608
589609
590610 @Callable(bh)
591-func burn (dd) = {
592- let cZ = bh.caller
593- let da = bh.originCaller
594- let de = value(bh.payments[0])
595- let df = value(de.amount)
596- let dg = toBase58String(value(de.assetId))
597- let dh = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
598- if ((dg != dh))
611+func burn (dk) = {
612+ let dg = bh.caller
613+ let dh = bh.originCaller
614+ let dl = value(bh.payments[0])
615+ let dm = value(dl.amount)
616+ let dn = toBase58String(value(dl.assetId))
617+ let do = valueOrErrorMessage(getString(aw(toString(dg))), "Invalid LP address called me.")
618+ if ((dn != do))
599619 then throw("Invalid asset passed.")
600- else if ((dd != df))
620+ else if ((dk != dm))
601621 then throw("Invalid amount passed.")
602622 else {
603- let dc = fromBase58String(dh)
604- $Tuple2([Burn(dc, dd)], "success")
623+ let dj = fromBase58String(do)
624+ $Tuple2([Burn(dj, dk)], "success")
605625 }
606626 }
607627
608628
609629
610630 @Callable(bh)
611-func modifyWeight (bz,di) = {
612- let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, T()), "")))
631+func modifyWeight (bz,dp) = {
632+ let cr = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, T()), "")))
613633 then true
614634 else bi(bh)
615- if ((cl == cl))
635+ if ((cr == cr))
616636 then {
617637 let au = aF(ax(bz))
618- let dj = Y(au)
619- let dk = Y(f)
620- let dl = valueOrElse(getInteger(dk), 0)
621- let cC = valueOrElse(getInteger(dj), 0)
622- let dm = di
638+ let dq = Y(au)
639+ let dr = Y(f)
640+ let ds = valueOrElse(getInteger(dr), 0)
641+ let cI = valueOrElse(getInteger(dq), 0)
642+ let dt = dp
623643 let aV = split(aF(J()), j)
624- let ch = aX(aV)
625- let dn = invoke(ch, "onModifyWeight", [bz, au], nil)
626- if ((dn == dn))
644+ let cn = aX(aV)
645+ let du = invoke(cn, "onModifyWeight", [bz, au], nil)
646+ if ((du == du))
627647 then {
628- let do = if ((dl == 0))
648+ let dv = if ((ds == 0))
629649 then nil
630- else [IntegerEntry(dk, 0)]
631- let dp = aa(au, 0)
632- let dq = getInteger(dp)
633- let dr = if ((dq == unit))
650+ else [IntegerEntry(dr, 0)]
651+ let dw = aa(au, 0)
652+ let dx = getInteger(dw)
653+ let dy = if ((dx == unit))
634654 then nil
635- else [DeleteEntry(dp)]
636- (([IntegerEntry(dj, dm)] ++ do) ++ dr)
655+ else [DeleteEntry(dw)]
656+ (([IntegerEntry(dq, dt)] ++ dv) ++ dy)
637657 }
638658 else throw("Strict value is not equal to itself.")
639659 }
643663
644664
645665 @Callable(bh)
646-func modifyWeights (ds,dt,du,dv) = {
647- let cl = bi(bh)
648- if ((cl == cl))
666+func modifyWeights (dz,dA,dB,dC) = {
667+ let cr = bi(bh)
668+ if ((cr == cr))
649669 then {
650- let dw = ((5 * e) / 100)
651- let dx = ((5 * e) / 100)
652- let dy = ((5 * e) / 100)
670+ let dD = ((5 * e) / 100)
671+ let dE = ((5 * e) / 100)
672+ let dF = ((5 * e) / 100)
653673 let aV = split(aF(J()), j)
654- let dz = aX(aV)
655- let dA = aY(aV)
656- let dB = Y(ds)
657- let dC = Y(dt)
658- let dD = Y(du)
659- let dE = Y(dv)
660- let dF = aI(dB)
661- let dG = aI(dC)
662- let dH = (dF - dy)
663- let dI = (dG - dy)
664- if ((0 >= dH))
665- then throw(("invalid btcWeightNew: " + toString(dH)))
666- else if ((0 >= dI))
667- then throw(("invalid ethWeightNew: " + toString(dI)))
674+ let dG = aX(aV)
675+ let dH = aY(aV)
676+ let dI = Y(dz)
677+ let dJ = Y(dA)
678+ let dK = Y(dB)
679+ let dL = Y(dC)
680+ let dM = aI(dI)
681+ let dN = aI(dJ)
682+ let dO = (dM - dF)
683+ let dP = (dN - dF)
684+ if ((0 >= dO))
685+ then throw(("invalid btcWeightNew: " + toString(dO)))
686+ else if ((0 >= dP))
687+ then throw(("invalid ethWeightNew: " + toString(dP)))
668688 else {
669- let dJ = aF(aw(ds))
670- let dK = aF(aw(dt))
671- let dL = aF(aw(du))
672- let dM = aF(aw(dv))
673- let dN = invoke(dz, "onModifyWeight", [dJ, ds], nil)
674- if ((dN == dN))
689+ let dQ = aF(aw(dz))
690+ let dR = aF(aw(dA))
691+ let dS = aF(aw(dB))
692+ let dT = aF(aw(dC))
693+ let dU = invoke(dG, "onModifyWeight", [dQ, dz], nil)
694+ if ((dU == dU))
675695 then {
676- let dO = invoke(dz, "onModifyWeight", [dK, dt], nil)
677- if ((dO == dO))
696+ let dV = invoke(dG, "onModifyWeight", [dR, dA], nil)
697+ if ((dV == dV))
678698 then {
679- let dP = invoke(dz, "onModifyWeight", [dL, du], nil)
680- if ((dP == dP))
699+ let dW = invoke(dG, "onModifyWeight", [dS, dB], nil)
700+ if ((dW == dW))
681701 then {
682- let dQ = invoke(dz, "onModifyWeight", [dM, dv], nil)
683- if ((dQ == dQ))
684- then [IntegerEntry(dB, dH), IntegerEntry(dC, dI), IntegerEntry(dD, dw), IntegerEntry(dE, dx), IntegerEntry(aa(ds, 0), dF), IntegerEntry(aa(dt, 0), dG), IntegerEntry(aa(du, 0), dw), IntegerEntry(aa(dv, 0), dx)]
702+ let dX = invoke(dG, "onModifyWeight", [dT, dC], nil)
703+ if ((dX == dX))
704+ then [IntegerEntry(dI, dO), IntegerEntry(dJ, dP), IntegerEntry(dK, dD), IntegerEntry(dL, dE), IntegerEntry(aa(dz, 0), dM), IntegerEntry(aa(dA, 0), dN), IntegerEntry(aa(dB, 0), dD), IntegerEntry(aa(dC, 0), dE)]
685705 else throw("Strict value is not equal to itself.")
686706 }
687707 else throw("Strict value is not equal to itself.")
698718
699719 @Callable(bh)
700720 func checkWxEmissionPoolLabel (az,aA) = {
701- let dR = {
721+ let dY = {
702722 let ba = getBoolean(ay(az, aA))
703723 if ($isInstanceOf(ba, "Boolean"))
704724 then {
705- let dS = ba
706- dS
725+ let dZ = ba
726+ dZ
707727 }
708728 else false
709729 }
710- $Tuple2(nil, dR)
730+ $Tuple2(nil, dY)
711731 }
712732
713733
714734
715735 @Callable(bh)
716736 func setWxEmissionPoolLabel (az,aA) = {
717- let cl = bU(bh)
718- if ((cl == cl))
737+ let cr = bU(bh)
738+ if ((cr == cr))
719739 then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
720740 else throw("Strict value is not equal to itself.")
721741 }
724744
725745 @Callable(bh)
726746 func deleteWxEmissionPoolLabel (az,aA) = {
727- let cl = if (bg(bh))
747+ let cr = if (bg(bh))
728748 then true
729749 else bU(bh)
730- if ((cl == cl))
750+ if ((cr == cr))
731751 then $Tuple2([DeleteEntry(ay(az, aA))], unit)
732752 else throw("Strict value is not equal to itself.")
733753 }
735755
736756
737757 @Callable(bh)
738-func onVerificationLoss (dT) = {
739- let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, S()), "")))
758+func onVerificationLoss (ea) = {
759+ let cr = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, S()), "")))
740760 then true
741761 else bi(bh)
742- if ((cl == cl))
762+ if ((cr == cr))
743763 then {
744- let cs = aZ()
745- let dU = if ((size(cs) > 0))
764+ let cy = aZ()
765+ let eb = if ((size(cy) > 0))
746766 then true
747767 else throw("invalid price assets")
748- if ((dU == dU))
768+ if ((eb == eb))
749769 then {
750- func dV (dW,dX) = {
751- let dY = invoke(this, "deleteWxEmissionPoolLabel", [dT, dX], nil)
752- if ((dY == dY))
770+ func ec (ed,ee) = {
771+ let ef = invoke(this, "deleteWxEmissionPoolLabel", [ea, ee], nil)
772+ if ((ef == ef))
753773 then unit
754774 else throw("Strict value is not equal to itself.")
755775 }
756776
757- let dZ = {
758- let ea = cs
759- let eb = size(ea)
760- let ec = unit
761- func ed (ee,ef) = if ((ef >= eb))
762- then ee
763- else dV(ee, ea[ef])
777+ let eg = {
778+ let eh = cy
779+ let ei = size(eh)
780+ let ej = unit
781+ func ek (el,em) = if ((em >= ei))
782+ then el
783+ else ec(el, eh[em])
764784
765- func eg (ee,ef) = if ((ef >= eb))
766- then ee
785+ func en (el,em) = if ((em >= ei))
786+ then el
767787 else throw("List size exceeds 1")
768788
769- eg(ed(ec, 0), 1)
789+ en(ek(ej, 0), 1)
770790 }
771- if ((dZ == dZ))
791+ if ((eg == eg))
772792 then $Tuple2(nil, unit)
773793 else throw("Strict value is not equal to itself.")
774794 }
781801
782802 @Callable(bh)
783803 func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
784- let cK = bL(Z)
785- let ak = $Tuple2(parseIntValue(cK[z]), parseIntValue(cK[A]))
786- let eh = valueOrElse(getBoolean(aj(ak)), false)
787- let ei = valueOrElse(getBoolean(am()), false)
788- $Tuple2(nil, if (ei)
804+ let dd = bL(Z)
805+ let ak = $Tuple2(parseIntValue(dd[z]), parseIntValue(dd[A]))
806+ let eo = valueOrElse(getBoolean(aj(ak)), false)
807+ let ep = valueOrElse(getBoolean(am()), false)
808+ $Tuple2(nil, if (ep)
789809 then true
790- else eh)
810+ else eo)
791811 }
792812
793813
794814
795815 @Callable(bh)
796816 func getInFeeREADONLY (Z) = {
797- let ej = bX(aB(Z), aC(), 0)
798- $Tuple2(nil, ej)
817+ let eq = bX(aB(Z), aC(), 0)
818+ $Tuple2(nil, eq)
799819 }
800820
801821
802822
803823 @Callable(bh)
804824 func getOutFeeREADONLY (Z) = {
805- let ej = bX(aD(Z), aE(), fraction(10, b, 10000))
806- $Tuple2(nil, ej)
825+ let eq = bX(aD(Z), aE(), fraction(10, b, 10000))
826+ $Tuple2(nil, eq)
807827 }
808828
809829
813833 let bM = split(aF(at(Z)), j)
814834 let ah = bM[1]
815835 let ai = bM[2]
816- let ek = split(aF(ag(ah, ai)), j)
817- $Tuple2(nil, parseIntValue(ek[t]))
836+ let cd = split(aF(ag(ah, ai)), j)
837+ $Tuple2(nil, parseIntValue(cd[t]))
818838 }
819839
820840
821841
822842 @Callable(bh)
823-func getPoolConfigByLpAssetId (cP) = {
824- let bM = split(aF(an(cP)), j)
843+func getPoolConfigByLpAssetId (cV) = {
844+ let bM = split(aF(an(cV)), j)
825845 let ah = bM[1]
826846 let ai = bM[2]
827- let ek = split(aF(ag(ah, ai)), j)
828- $Tuple2(nil, ek)
847+ let cd = split(aF(ag(ah, ai)), j)
848+ $Tuple2(nil, cd)
829849 }
830850
831851
832-@Verifier(el)
833-func em () = {
834- let en = {
852+
853+@Callable(bh)
854+func poolExistsREADONLY (az,aA) = $Tuple2(nil, ca(az, aA))
855+
856+
857+@Verifier(er)
858+func es () = {
859+ let et = {
835860 let ba = bc()
836861 if ($isInstanceOf(ba, "ByteVector"))
837862 then {
839864 bj
840865 }
841866 else if ($isInstanceOf(ba, "Unit"))
842- then el.senderPublicKey
867+ then er.senderPublicKey
843868 else throw("Match error")
844869 }
845- sigVerify(el.bodyBytes, el.proofs[0], en)
870+ sigVerify(er.bodyBytes, er.proofs[0], et)
846871 }
847872
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 = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
2020 let i = ((100 * 1000) * 1000)
2121
2222 let j = "__"
2323
2424 let k = ""
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 4
4747
4848 let w = 5
4949
5050 let x = 6
5151
5252 let y = 7
5353
5454 let z = 8
5555
5656 let A = 9
5757
5858 let B = 10
5959
6060 let C = 11
6161
6262 let D = "WX_EMISSION"
6363
6464 let E = [D]
6565
6666 func F () = "%s__allowedLpScriptHash"
6767
6868
6969 func G () = "%s__allowedLpStableScriptHash"
7070
7171
7272 func H () = "%s__allowedLpStableAddonScriptHash"
7373
7474
7575 func I () = "%s__swapContract"
7676
7777
7878 func J () = "%s__factoryConfig"
7979
8080
8181 func K () = "%s__lpTokensList"
8282
8383
8484 func L () = "%s%s__pool__scriptHash"
8585
8686
8787 func M () = "%s%s__matcher__publicKey"
8888
8989
9090 func N () = "%s__legacyFactoryContract"
9191
9292
9393 func O () = "%s__legacyPools"
9494
9595
9696 func P () = "%s__managerPublicKey"
9797
9898
9999 func Q () = "%s__pendingManagerPublicKey"
100100
101101
102102 func R () = "%s__adminPubKeys"
103103
104104
105105 func S () = "%s__assetsStoreContract"
106106
107107
108108 func T () = "%s__votingEmissionContract"
109109
110110
111111 func U () = makeString(["%s", "priceAssets"], j)
112112
113113
114114 func V () = "%s__priceDecimals"
115115
116116
117117 func W () = "%s__shutdown"
118118
119119
120120 func X () = "%s__nextInternalAssetId"
121121
122122
123123 func Y (Z) = ("%s%s__poolWeight__" + Z)
124124
125125
126126 func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
127127
128128
129129 func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
130130
131131
132132 func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
133133
134134
135135 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
136136
137137
138138 func aj (ak) = {
139139 let al = ak
140140 let ah = al._1
141141 let ai = al._2
142142 makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], j)
143143 }
144144
145145
146146 func am () = makeString(["%s", "oneTokenOperationsDisabled"], j)
147147
148148
149149 func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
150150
151151
152152 func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
153153
154154
155155 func as (Z) = ("%s%s__spread__" + Z)
156156
157157
158158 func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
159159
160160
161161 func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
162162
163163
164164 func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
165165
166166
167167 func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
168168
169169
170170 func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
171171
172172
173173 func aB (Z) = ("%s%s__inFee__" + Z)
174174
175175
176176 func aC () = "%s__inFeeDefault"
177177
178178
179179 func aD (Z) = ("%s%s__outFee__" + Z)
180180
181181
182182 func aE () = "%s__outFeeDefault"
183183
184184
185185 func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
186186
187187
188188 func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
189189
190190
191191 func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
192192
193193
194194 let aJ = 1
195195
196196 let aK = 2
197197
198198 let aL = 3
199199
200200 let aM = 4
201201
202202 let aN = 5
203203
204204 let aO = 6
205205
206206 let aP = 7
207207
208208 let aQ = 8
209209
210210 let aR = 9
211211
212212 let aS = 10
213213
214214 let aT = 11
215215
216216 func aU (aV) = addressFromStringValue(aV[aK])
217217
218218
219219 func aW (aV) = addressFromStringValue(aV[aN])
220220
221221
222222 func aX (aV) = addressFromStringValue(aV[aJ])
223223
224224
225225 func aY (aV) = addressFromStringValue(aV[aS])
226226
227227
228228 func aZ () = {
229229 let ba = getString(U())
230230 if ($isInstanceOf(ba, "String"))
231231 then {
232232 let bb = ba
233233 if ((size(bb) == 0))
234234 then nil
235235 else split(bb, j)
236236 }
237237 else nil
238238 }
239239
240240
241241 func bc () = {
242242 let ba = getString(P())
243243 if ($isInstanceOf(ba, "String"))
244244 then {
245245 let bb = ba
246246 fromBase58String(bb)
247247 }
248248 else if ($isInstanceOf(ba, "Unit"))
249249 then unit
250250 else throw("Match error")
251251 }
252252
253253
254254 func bd () = {
255255 let ba = getString(Q())
256256 if ($isInstanceOf(ba, "String"))
257257 then {
258258 let bb = ba
259259 fromBase58String(bb)
260260 }
261261 else if ($isInstanceOf(ba, "Unit"))
262262 then unit
263263 else throw("Match error")
264264 }
265265
266266
267267 let be = throw("Permission denied")
268268
269269 let bf = throw("Test error here")
270270
271271 func bg (bh) = if ((bh.caller == this))
272272 then true
273273 else be
274274
275275
276276 func bi (bh) = {
277277 let ba = bc()
278278 if ($isInstanceOf(ba, "ByteVector"))
279279 then {
280280 let bj = ba
281281 if ((bh.callerPublicKey == bj))
282282 then true
283283 else be
284284 }
285285 else if ($isInstanceOf(ba, "Unit"))
286286 then bg(bh)
287287 else throw("Match error")
288288 }
289289
290290
291291 func bk (bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv], j)
292292
293293
294294 func bw (bl,bm,bn,bo,bp,bq,br) = makeString(["%s%s%s%s%s%s", bl, bm, bn, bo, bp, bq, br], j)
295295
296296
297297 func bx (Z,by,bz,bA,bB,bC,bD,bE,bF,bG,bH) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, by, bz, bA, bB, toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), bH], j)
298298
299299
300300 func bI (bJ,bK) = makeString(["%d%d", toString(bJ), toString(bK)], j)
301301
302302
303303 func bL (Z) = {
304304 let bM = split(aF(at(Z)), j)
305305 let ah = bM[1]
306306 let ai = bM[2]
307307 split(aF(ag(ah, ai)), j)
308308 }
309309
310310
311311 func bN (bO,bP) = {
312312 let bQ = valueOrElse(getInteger(this, ae(bO)), 0)
313313 let bR = valueOrElse(getInteger(this, X()), 0)
314314 let bS = if ((bQ == 0))
315315 then {
316316 let bT = (bR + bP)
317317 $Tuple3(bT, [IntegerEntry(X(), bT), IntegerEntry(ae(bO), bT), StringEntry(ac(bT), bO)], true)
318318 }
319319 else $Tuple3(bQ, nil, false)
320320 bS
321321 }
322322
323323
324324 func bU (bh) = {
325325 let bV = split(valueOrElse(getString(R()), k), j)
326326 if (containsElement(bV, toBase58String(bh.callerPublicKey)))
327327 then true
328328 else {
329329 let bW = bi(bh)
330330 if ((bW == bW))
331331 then true
332332 else throw("Strict value is not equal to itself.")
333333 }
334334 }
335335
336336
337337 func bX (aG,bY,bZ) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bY), bZ))
338338
339339
340+func ca (az,aA) = {
341+ let ah = getInteger(ae(az))
342+ let ai = getInteger(ae(aA))
343+ if (if ((ah == unit))
344+ then true
345+ else (ai == unit))
346+ then false
347+ else {
348+ let cb = toString(value(ah))
349+ let cc = toString(value(ai))
350+ let cd = getString(ag(cb, cc))
351+ let ce = getString(ag(cc, cb))
352+ let cf = if ((cd != unit))
353+ then true
354+ else (ce != unit)
355+ cf
356+ }
357+ }
358+
359+
340360 @Callable(bh)
341361 func getSwapContractREADONLY () = $Tuple2(nil, aF(I()))
342362
343363
344364
345365 @Callable(bh)
346-func getLpAssetFromPoolAssetsREADONLY (ca,cb) = if (if ((ca == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
347- then (cb == "WAVES")
366+func getLpAssetFromPoolAssetsREADONLY (cg,ch) = if (if ((cg == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
367+ then (ch == "WAVES")
348368 else false)
349369 then $Tuple2(nil, unit)
350370 else {
351- let cc = value(getInteger(this, ae(ca)))
352- let cd = value(getInteger(this, ae(cb)))
353- let ce = getString(this, ap(toString(cc), toString(cd)))
354- let cf = if ((ce == unit))
371+ let ci = value(getInteger(this, ae(cg)))
372+ let cj = value(getInteger(this, ae(ch)))
373+ let ck = getString(this, ap(toString(ci), toString(cj)))
374+ let cl = if ((ck == unit))
355375 then unit
356- else drop(value(ce), 4)
357- $Tuple2(nil, cf)
376+ else drop(value(ck), 4)
377+ $Tuple2(nil, cl)
358378 }
359379
360380
361381
362382 @Callable(bh)
363-func getPoolAddressFromLpAssetREADONLY (cg) = $Tuple2(nil, valueOrElse(getString(this, ax(cg)), ""))
383+func getPoolAddressFromLpAssetREADONLY (cm) = $Tuple2(nil, valueOrElse(getString(this, ax(cm)), ""))
364384
365385
366386
367387 @Callable(bh)
368-func constructor (ch,ci,bn,bo,bp,bq,cj,ck) = {
369- let cl = bi(bh)
370- if ((cl == cl))
371- then [StringEntry(J(), bw(ch, ci, bn, bo, bp, bq, cj)), IntegerEntry(V(), ck)]
388+func constructor (cn,co,bn,bo,bp,bq,cp,cq) = {
389+ let cr = bi(bh)
390+ if ((cr == cr))
391+ then [StringEntry(J(), bw(cn, co, bn, bo, bp, bq, cp)), IntegerEntry(V(), cq)]
372392 else throw("Strict value is not equal to itself.")
373393 }
374394
375395
376396
377397 @Callable(bh)
378-func constructorV2 (cm) = {
379- let cl = bi(bh)
380- if ((cl == cl))
398+func constructorV2 (cs) = {
399+ let cr = bi(bh)
400+ if ((cr == cr))
381401 then {
382- let cn = addressFromPublicKey(fromBase58String(cm))
383- if ((cn == cn))
384- then [StringEntry(M(), cm)]
402+ let ct = addressFromPublicKey(fromBase58String(cs))
403+ if ((ct == ct))
404+ then [StringEntry(M(), cs)]
385405 else throw("Strict value is not equal to itself.")
386406 }
387407 else throw("Strict value is not equal to itself.")
388408 }
389409
390410
391411
392412 @Callable(bh)
393413 func constructorV3 (bs,bt,bu,bv) = {
394- let cl = bi(bh)
395- if ((cl == cl))
414+ let cr = bi(bh)
415+ if ((cr == cr))
396416 then {
397417 let aV = split(aF(J()), j)
398418 [StringEntry(J(), bk(aV[1], aV[2], aV[3], aV[4], aV[5], aV[6], aV[7], bs, bt, bu, bv))]
399419 }
400420 else throw("Strict value is not equal to itself.")
401421 }
402422
403423
404424
405425 @Callable(bh)
406-func constructorV4 (co,cp) = {
407- let cl = bi(bh)
408- if ((cl == cl))
409- then [StringEntry(N(), co), StringEntry(O(), makeString(cp, j))]
426+func constructorV4 (cu,cv) = {
427+ let cr = bi(bh)
428+ if ((cr == cr))
429+ then [StringEntry(N(), cu), StringEntry(O(), makeString(cv, j))]
410430 else throw("Strict value is not equal to itself.")
411431 }
412432
413433
414434
415435 @Callable(bh)
416-func constructorV5 (cq) = {
417- let cl = bi(bh)
418- if ((cl == cl))
419- then [StringEntry(S(), cq)]
436+func constructorV5 (cw) = {
437+ let cr = bi(bh)
438+ if ((cr == cr))
439+ then [StringEntry(S(), cw)]
420440 else throw("Strict value is not equal to itself.")
421441 }
422442
423443
424444
425445 @Callable(bh)
426-func constructorV6 (cr,cs) = {
427- let ct = [bi(bh), if ((addressFromString(cr) != unit))
446+func constructorV6 (cx,cy) = {
447+ let cz = [bi(bh), if ((addressFromString(cx) != unit))
428448 then true
429449 else "invalid voting emission contract address"]
430- if ((ct == ct))
431- then [StringEntry(T(), cr), StringEntry(U(), makeString(cs, j))]
450+ if ((cz == cz))
451+ then [StringEntry(T(), cx), StringEntry(U(), makeString(cy, j))]
432452 else throw("Strict value is not equal to itself.")
433453 }
434454
435455
436456
437457 @Callable(bh)
438-func setManager (cu) = {
439- let cl = bi(bh)
440- if ((cl == cl))
458+func setManager (cA) = {
459+ let cr = bi(bh)
460+ if ((cr == cr))
441461 then {
442- let cv = fromBase58String(cu)
443- if ((cv == cv))
444- then [StringEntry(Q(), cu)]
462+ let cB = fromBase58String(cA)
463+ if ((cB == cB))
464+ then [StringEntry(Q(), cA)]
445465 else throw("Strict value is not equal to itself.")
446466 }
447467 else throw("Strict value is not equal to itself.")
448468 }
449469
450470
451471
452472 @Callable(bh)
453473 func confirmManager () = {
454- let cw = bd()
455- let cx = if (isDefined(cw))
474+ let cC = bd()
475+ let cD = if (isDefined(cC))
456476 then true
457477 else throw("No pending manager")
458- if ((cx == cx))
478+ if ((cD == cD))
459479 then {
460- let cy = if ((bh.callerPublicKey == value(cw)))
480+ let cE = if ((bh.callerPublicKey == value(cC)))
461481 then true
462482 else throw("You are not pending manager")
463- if ((cy == cy))
464- then [StringEntry(P(), toBase58String(value(cw))), DeleteEntry(Q())]
483+ if ((cE == cE))
484+ then [StringEntry(P(), toBase58String(value(cC))), DeleteEntry(Q())]
465485 else throw("Strict value is not equal to itself.")
466486 }
467487 else throw("Strict value is not equal to itself.")
468488 }
469489
470490
471491
472492 @Callable(bh)
473-func setAdmins (cz) = {
474- let cl = bi(bh)
475- if ((cl == cl))
476- then [StringEntry(R(), makeString(cz, j))]
493+func setAdmins (cF) = {
494+ let cr = bi(bh)
495+ if ((cr == cr))
496+ then [StringEntry(R(), makeString(cF, j))]
477497 else throw("Strict value is not equal to itself.")
478498 }
479499
480500
481501
482502 @Callable(bh)
483-func activateNewPool (Z,bA,bB,cA,cB,cC,bH,cD) = {
484- let cl = bU(bh)
485- if ((cl == cl))
503+func activateNewPool (Z,bA,bB,cG,cH,cI,bH,cJ) = {
504+ let cr = bU(bh)
505+ if ((cr == cr))
486506 then if (isDefined(getString(at(Z))))
487507 then throw((("Pool address " + Z) + " already registered."))
488508 else {
489- let cE = bN(bA, 1)
490- let cF = cE._1
491- let cG = bN(bB, if (cE._3)
509+ let cK = bN(bA, 1)
510+ let cL = cK._1
511+ let cM = bN(bB, if (cK._3)
492512 then 2
493513 else 1)
494- let cH = cG._1
495- let cI = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
496- let cJ = getBinaryValue(L())
497- let cK = getString(this, ag(toString(cF), toString(cH)))
498- if (isDefined(cK))
514+ let cN = cM._1
515+ let cO = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
516+ let cP = getBinaryValue(L())
517+ let cQ = ca(bA, bB)
518+ if (cQ)
499519 then throw((((("Pool " + bA) + "/") + bB) + " has already been activated."))
500520 else {
501- let cL = value(getString(this, ag(toString(cF), toString(cH))))
502- let cM = if ((bA == "WAVES"))
521+ let cR = value(getString(this, ag(toString(cL), toString(cN))))
522+ let cS = if ((bA == "WAVES"))
503523 then i
504524 else pow(10, 0, value(assetInfo(fromBase58String(bA))).decimals, 0, 0, DOWN)
505- let cN = if ((bB == "WAVES"))
525+ let cT = if ((bB == "WAVES"))
506526 then i
507527 else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
508- let cO = Issue(cA, cB, 1, 8, true)
509- let bz = calculateAssetId(cO)
510- let cP = toBase58String(bz)
511- let cQ = invoke(addressFromStringValue(Z), "activate", [bA, bB], nil)
512- if ((cQ == cQ))
513- then if ((cQ != "success"))
528+ let cU = Issue(cG, cH, 1, 8, true)
529+ let bz = calculateAssetId(cU)
530+ let cV = toBase58String(bz)
531+ let cW = invoke(addressFromStringValue(Z), "activate", [bA, bB], nil)
532+ if ((cW == cW))
533+ then if ((cW != "success"))
514534 then throw("Pool initialisation error happened.")
515535 else {
516- let cq = addressFromStringValue(aF(S()))
517- let cR = invoke(cq, "createOrUpdate", [cP, cA, false], nil)
518- if ((cR == cR))
536+ let cw = addressFromStringValue(aF(S()))
537+ let cX = invoke(cw, "createOrUpdate", [cV, cG, false], nil)
538+ if ((cX == cX))
519539 then {
520- let cS = invoke(cq, "addLabel", [cP, g], nil)
521- if ((cS == cS))
540+ let cY = invoke(cw, "addLabel", [cV, g], nil)
541+ if ((cY == cY))
522542 then {
523- let cT = invoke(cq, "setLogo", [cP, cD], nil)
524- if ((cT == cT))
543+ let cZ = invoke(cw, "setLogo", [cV, cJ], nil)
544+ if ((cZ == cZ))
525545 then {
526- let cU = invoke(cq, "addAssetsLink", [bA, bB, cP], nil)
527- if ((cU == cU))
546+ let da = invoke(cw, "addAssetsLink", [bA, bB, cV], nil)
547+ if ((da == da))
528548 then {
529- let cV = invoke(cq, "increaseAssetPoolsNumber", [bA], nil)
530- if ((cV == cV))
531- then $Tuple2(((cE._2 ++ cG._2) ++ [cO, Burn(bz, 1), StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(l), cP, bA, bB, cM, cN, cF, cH, i, bH)), StringEntry(an(cP), bI(cF, cH)), StringEntry(ap(toString(cF), toString(cH)), ("%s__" + cP)), StringEntry(at(Z), bI(cF, cH)), StringEntry(av(cF, cH), Z), StringEntry(ax(cP), Z), StringEntry(aw(Z), cP), IntegerEntry(Y(Z), cC), IntegerEntry(as(Z), h)]), cP)
549+ let db = invoke(cw, "increaseAssetPoolsNumber", [bA], nil)
550+ if ((db == db))
551+ then $Tuple2(((cK._2 ++ cM._2) ++ [cU, Burn(bz, 1), StringEntry(ag(toString(cL), toString(cN)), bx(Z, toString(l), cV, bA, bB, cS, cT, cL, cN, i, bH)), StringEntry(an(cV), bI(cL, cN)), StringEntry(ap(toString(cL), toString(cN)), ("%s__" + cV)), StringEntry(at(Z), bI(cL, cN)), StringEntry(av(cL, cN), Z), StringEntry(ax(cV), Z), StringEntry(aw(Z), cV), IntegerEntry(Y(Z), cI), IntegerEntry(as(Z), h)]), cV)
532552 else throw("Strict value is not equal to itself.")
533553 }
534554 else throw("Strict value is not equal to itself.")
535555 }
536556 else throw("Strict value is not equal to itself.")
537557 }
538558 else throw("Strict value is not equal to itself.")
539559 }
540560 else throw("Strict value is not equal to itself.")
541561 }
542562 else throw("Strict value is not equal to itself.")
543563 }
544564 }
545565 else throw("Strict value is not equal to itself.")
546566 }
547567
548568
549569
550570 @Callable(bh)
551-func managePool (Z,cW) = {
552- let cl = bi(bh)
553- if ((cl == cl))
571+func managePool (Z,dc) = {
572+ let cr = bi(bh)
573+ if ((cr == cr))
554574 then {
555- let cK = bL(Z)
556- let by = cK[t]
557- let cP = cK[u]
558- let bA = cK[v]
559- let bB = cK[w]
560- let cM = parseIntValue(cK[x])
561- let cN = parseIntValue(cK[y])
562- let cF = parseIntValue(cK[z])
563- let cH = parseIntValue(cK[A])
564- let cX = parseIntValue(cK[B])
565- let bH = cK[C]
566-[StringEntry(ag(toString(cF), toString(cH)), bx(Z, toString(cW), cP, bA, bB, cM, cN, cF, cH, cX, bH))]
575+ let dd = bL(Z)
576+ let by = dd[t]
577+ let cV = dd[u]
578+ let bA = dd[v]
579+ let bB = dd[w]
580+ let cS = parseIntValue(dd[x])
581+ let cT = parseIntValue(dd[y])
582+ let cL = parseIntValue(dd[z])
583+ let cN = parseIntValue(dd[A])
584+ let de = parseIntValue(dd[B])
585+ let bH = dd[C]
586+[StringEntry(ag(toString(cL), toString(cN)), bx(Z, toString(dc), cV, bA, bB, cS, cT, cL, cN, de, bH))]
567587 }
568588 else throw("Strict value is not equal to itself.")
569589 }
570590
571591
572592
573593 @Callable(bh)
574-func emit (cY) = {
575- let cZ = bh.caller
576- let da = bh.originCaller
577- let db = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
578- let dc = fromBase58String(db)
579- let cp = split(valueOrElse(getString(O()), k), j)
580- let co = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
581- if ((0 >= cY))
594+func emit (df) = {
595+ let dg = bh.caller
596+ let dh = bh.originCaller
597+ let di = valueOrErrorMessage(getString(aw(toString(dg))), "Invalid LP address called me.")
598+ let dj = fromBase58String(di)
599+ let cv = split(valueOrElse(getString(O()), k), j)
600+ let cu = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
601+ if ((0 >= df))
582602 then nil
583- else if (containsElement(cp, toString(cZ)))
584- then $Tuple2(nil, co)
585- else $Tuple2([Reissue(dc, cY, true), ScriptTransfer(bh.caller, cY, dc)], "success")
603+ else if (containsElement(cv, toString(dg)))
604+ then $Tuple2(nil, cu)
605+ else $Tuple2([Reissue(dj, df, true), ScriptTransfer(bh.caller, df, dj)], "success")
586606 }
587607
588608
589609
590610 @Callable(bh)
591-func burn (dd) = {
592- let cZ = bh.caller
593- let da = bh.originCaller
594- let de = value(bh.payments[0])
595- let df = value(de.amount)
596- let dg = toBase58String(value(de.assetId))
597- let dh = valueOrErrorMessage(getString(aw(toString(cZ))), "Invalid LP address called me.")
598- if ((dg != dh))
611+func burn (dk) = {
612+ let dg = bh.caller
613+ let dh = bh.originCaller
614+ let dl = value(bh.payments[0])
615+ let dm = value(dl.amount)
616+ let dn = toBase58String(value(dl.assetId))
617+ let do = valueOrErrorMessage(getString(aw(toString(dg))), "Invalid LP address called me.")
618+ if ((dn != do))
599619 then throw("Invalid asset passed.")
600- else if ((dd != df))
620+ else if ((dk != dm))
601621 then throw("Invalid amount passed.")
602622 else {
603- let dc = fromBase58String(dh)
604- $Tuple2([Burn(dc, dd)], "success")
623+ let dj = fromBase58String(do)
624+ $Tuple2([Burn(dj, dk)], "success")
605625 }
606626 }
607627
608628
609629
610630 @Callable(bh)
611-func modifyWeight (bz,di) = {
612- let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, T()), "")))
631+func modifyWeight (bz,dp) = {
632+ let cr = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, T()), "")))
613633 then true
614634 else bi(bh)
615- if ((cl == cl))
635+ if ((cr == cr))
616636 then {
617637 let au = aF(ax(bz))
618- let dj = Y(au)
619- let dk = Y(f)
620- let dl = valueOrElse(getInteger(dk), 0)
621- let cC = valueOrElse(getInteger(dj), 0)
622- let dm = di
638+ let dq = Y(au)
639+ let dr = Y(f)
640+ let ds = valueOrElse(getInteger(dr), 0)
641+ let cI = valueOrElse(getInteger(dq), 0)
642+ let dt = dp
623643 let aV = split(aF(J()), j)
624- let ch = aX(aV)
625- let dn = invoke(ch, "onModifyWeight", [bz, au], nil)
626- if ((dn == dn))
644+ let cn = aX(aV)
645+ let du = invoke(cn, "onModifyWeight", [bz, au], nil)
646+ if ((du == du))
627647 then {
628- let do = if ((dl == 0))
648+ let dv = if ((ds == 0))
629649 then nil
630- else [IntegerEntry(dk, 0)]
631- let dp = aa(au, 0)
632- let dq = getInteger(dp)
633- let dr = if ((dq == unit))
650+ else [IntegerEntry(dr, 0)]
651+ let dw = aa(au, 0)
652+ let dx = getInteger(dw)
653+ let dy = if ((dx == unit))
634654 then nil
635- else [DeleteEntry(dp)]
636- (([IntegerEntry(dj, dm)] ++ do) ++ dr)
655+ else [DeleteEntry(dw)]
656+ (([IntegerEntry(dq, dt)] ++ dv) ++ dy)
637657 }
638658 else throw("Strict value is not equal to itself.")
639659 }
640660 else throw("Strict value is not equal to itself.")
641661 }
642662
643663
644664
645665 @Callable(bh)
646-func modifyWeights (ds,dt,du,dv) = {
647- let cl = bi(bh)
648- if ((cl == cl))
666+func modifyWeights (dz,dA,dB,dC) = {
667+ let cr = bi(bh)
668+ if ((cr == cr))
649669 then {
650- let dw = ((5 * e) / 100)
651- let dx = ((5 * e) / 100)
652- let dy = ((5 * e) / 100)
670+ let dD = ((5 * e) / 100)
671+ let dE = ((5 * e) / 100)
672+ let dF = ((5 * e) / 100)
653673 let aV = split(aF(J()), j)
654- let dz = aX(aV)
655- let dA = aY(aV)
656- let dB = Y(ds)
657- let dC = Y(dt)
658- let dD = Y(du)
659- let dE = Y(dv)
660- let dF = aI(dB)
661- let dG = aI(dC)
662- let dH = (dF - dy)
663- let dI = (dG - dy)
664- if ((0 >= dH))
665- then throw(("invalid btcWeightNew: " + toString(dH)))
666- else if ((0 >= dI))
667- then throw(("invalid ethWeightNew: " + toString(dI)))
674+ let dG = aX(aV)
675+ let dH = aY(aV)
676+ let dI = Y(dz)
677+ let dJ = Y(dA)
678+ let dK = Y(dB)
679+ let dL = Y(dC)
680+ let dM = aI(dI)
681+ let dN = aI(dJ)
682+ let dO = (dM - dF)
683+ let dP = (dN - dF)
684+ if ((0 >= dO))
685+ then throw(("invalid btcWeightNew: " + toString(dO)))
686+ else if ((0 >= dP))
687+ then throw(("invalid ethWeightNew: " + toString(dP)))
668688 else {
669- let dJ = aF(aw(ds))
670- let dK = aF(aw(dt))
671- let dL = aF(aw(du))
672- let dM = aF(aw(dv))
673- let dN = invoke(dz, "onModifyWeight", [dJ, ds], nil)
674- if ((dN == dN))
689+ let dQ = aF(aw(dz))
690+ let dR = aF(aw(dA))
691+ let dS = aF(aw(dB))
692+ let dT = aF(aw(dC))
693+ let dU = invoke(dG, "onModifyWeight", [dQ, dz], nil)
694+ if ((dU == dU))
675695 then {
676- let dO = invoke(dz, "onModifyWeight", [dK, dt], nil)
677- if ((dO == dO))
696+ let dV = invoke(dG, "onModifyWeight", [dR, dA], nil)
697+ if ((dV == dV))
678698 then {
679- let dP = invoke(dz, "onModifyWeight", [dL, du], nil)
680- if ((dP == dP))
699+ let dW = invoke(dG, "onModifyWeight", [dS, dB], nil)
700+ if ((dW == dW))
681701 then {
682- let dQ = invoke(dz, "onModifyWeight", [dM, dv], nil)
683- if ((dQ == dQ))
684- then [IntegerEntry(dB, dH), IntegerEntry(dC, dI), IntegerEntry(dD, dw), IntegerEntry(dE, dx), IntegerEntry(aa(ds, 0), dF), IntegerEntry(aa(dt, 0), dG), IntegerEntry(aa(du, 0), dw), IntegerEntry(aa(dv, 0), dx)]
702+ let dX = invoke(dG, "onModifyWeight", [dT, dC], nil)
703+ if ((dX == dX))
704+ then [IntegerEntry(dI, dO), IntegerEntry(dJ, dP), IntegerEntry(dK, dD), IntegerEntry(dL, dE), IntegerEntry(aa(dz, 0), dM), IntegerEntry(aa(dA, 0), dN), IntegerEntry(aa(dB, 0), dD), IntegerEntry(aa(dC, 0), dE)]
685705 else throw("Strict value is not equal to itself.")
686706 }
687707 else throw("Strict value is not equal to itself.")
688708 }
689709 else throw("Strict value is not equal to itself.")
690710 }
691711 else throw("Strict value is not equal to itself.")
692712 }
693713 }
694714 else throw("Strict value is not equal to itself.")
695715 }
696716
697717
698718
699719 @Callable(bh)
700720 func checkWxEmissionPoolLabel (az,aA) = {
701- let dR = {
721+ let dY = {
702722 let ba = getBoolean(ay(az, aA))
703723 if ($isInstanceOf(ba, "Boolean"))
704724 then {
705- let dS = ba
706- dS
725+ let dZ = ba
726+ dZ
707727 }
708728 else false
709729 }
710- $Tuple2(nil, dR)
730+ $Tuple2(nil, dY)
711731 }
712732
713733
714734
715735 @Callable(bh)
716736 func setWxEmissionPoolLabel (az,aA) = {
717- let cl = bU(bh)
718- if ((cl == cl))
737+ let cr = bU(bh)
738+ if ((cr == cr))
719739 then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
720740 else throw("Strict value is not equal to itself.")
721741 }
722742
723743
724744
725745 @Callable(bh)
726746 func deleteWxEmissionPoolLabel (az,aA) = {
727- let cl = if (bg(bh))
747+ let cr = if (bg(bh))
728748 then true
729749 else bU(bh)
730- if ((cl == cl))
750+ if ((cr == cr))
731751 then $Tuple2([DeleteEntry(ay(az, aA))], unit)
732752 else throw("Strict value is not equal to itself.")
733753 }
734754
735755
736756
737757 @Callable(bh)
738-func onVerificationLoss (dT) = {
739- let cl = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, S()), "")))
758+func onVerificationLoss (ea) = {
759+ let cr = if ((toBase58String(bh.caller.bytes) == valueOrElse(getString(this, S()), "")))
740760 then true
741761 else bi(bh)
742- if ((cl == cl))
762+ if ((cr == cr))
743763 then {
744- let cs = aZ()
745- let dU = if ((size(cs) > 0))
764+ let cy = aZ()
765+ let eb = if ((size(cy) > 0))
746766 then true
747767 else throw("invalid price assets")
748- if ((dU == dU))
768+ if ((eb == eb))
749769 then {
750- func dV (dW,dX) = {
751- let dY = invoke(this, "deleteWxEmissionPoolLabel", [dT, dX], nil)
752- if ((dY == dY))
770+ func ec (ed,ee) = {
771+ let ef = invoke(this, "deleteWxEmissionPoolLabel", [ea, ee], nil)
772+ if ((ef == ef))
753773 then unit
754774 else throw("Strict value is not equal to itself.")
755775 }
756776
757- let dZ = {
758- let ea = cs
759- let eb = size(ea)
760- let ec = unit
761- func ed (ee,ef) = if ((ef >= eb))
762- then ee
763- else dV(ee, ea[ef])
777+ let eg = {
778+ let eh = cy
779+ let ei = size(eh)
780+ let ej = unit
781+ func ek (el,em) = if ((em >= ei))
782+ then el
783+ else ec(el, eh[em])
764784
765- func eg (ee,ef) = if ((ef >= eb))
766- then ee
785+ func en (el,em) = if ((em >= ei))
786+ then el
767787 else throw("List size exceeds 1")
768788
769- eg(ed(ec, 0), 1)
789+ en(ek(ej, 0), 1)
770790 }
771- if ((dZ == dZ))
791+ if ((eg == eg))
772792 then $Tuple2(nil, unit)
773793 else throw("Strict value is not equal to itself.")
774794 }
775795 else throw("Strict value is not equal to itself.")
776796 }
777797 else throw("Strict value is not equal to itself.")
778798 }
779799
780800
781801
782802 @Callable(bh)
783803 func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
784- let cK = bL(Z)
785- let ak = $Tuple2(parseIntValue(cK[z]), parseIntValue(cK[A]))
786- let eh = valueOrElse(getBoolean(aj(ak)), false)
787- let ei = valueOrElse(getBoolean(am()), false)
788- $Tuple2(nil, if (ei)
804+ let dd = bL(Z)
805+ let ak = $Tuple2(parseIntValue(dd[z]), parseIntValue(dd[A]))
806+ let eo = valueOrElse(getBoolean(aj(ak)), false)
807+ let ep = valueOrElse(getBoolean(am()), false)
808+ $Tuple2(nil, if (ep)
789809 then true
790- else eh)
810+ else eo)
791811 }
792812
793813
794814
795815 @Callable(bh)
796816 func getInFeeREADONLY (Z) = {
797- let ej = bX(aB(Z), aC(), 0)
798- $Tuple2(nil, ej)
817+ let eq = bX(aB(Z), aC(), 0)
818+ $Tuple2(nil, eq)
799819 }
800820
801821
802822
803823 @Callable(bh)
804824 func getOutFeeREADONLY (Z) = {
805- let ej = bX(aD(Z), aE(), fraction(10, b, 10000))
806- $Tuple2(nil, ej)
825+ let eq = bX(aD(Z), aE(), fraction(10, b, 10000))
826+ $Tuple2(nil, eq)
807827 }
808828
809829
810830
811831 @Callable(bh)
812832 func getPoolStatusREADONLY (Z) = {
813833 let bM = split(aF(at(Z)), j)
814834 let ah = bM[1]
815835 let ai = bM[2]
816- let ek = split(aF(ag(ah, ai)), j)
817- $Tuple2(nil, parseIntValue(ek[t]))
836+ let cd = split(aF(ag(ah, ai)), j)
837+ $Tuple2(nil, parseIntValue(cd[t]))
818838 }
819839
820840
821841
822842 @Callable(bh)
823-func getPoolConfigByLpAssetId (cP) = {
824- let bM = split(aF(an(cP)), j)
843+func getPoolConfigByLpAssetId (cV) = {
844+ let bM = split(aF(an(cV)), j)
825845 let ah = bM[1]
826846 let ai = bM[2]
827- let ek = split(aF(ag(ah, ai)), j)
828- $Tuple2(nil, ek)
847+ let cd = split(aF(ag(ah, ai)), j)
848+ $Tuple2(nil, cd)
829849 }
830850
831851
832-@Verifier(el)
833-func em () = {
834- let en = {
852+
853+@Callable(bh)
854+func poolExistsREADONLY (az,aA) = $Tuple2(nil, ca(az, aA))
855+
856+
857+@Verifier(er)
858+func es () = {
859+ let et = {
835860 let ba = bc()
836861 if ($isInstanceOf(ba, "ByteVector"))
837862 then {
838863 let bj = ba
839864 bj
840865 }
841866 else if ($isInstanceOf(ba, "Unit"))
842- then el.senderPublicKey
867+ then er.senderPublicKey
843868 else throw("Match error")
844869 }
845- sigVerify(el.bodyBytes, el.proofs[0], en)
870+ sigVerify(er.bodyBytes, er.proofs[0], et)
846871 }
847872

github/deemru/w8io/026f985 
185.78 ms