tx · 688tfSDQMrf7MWxvrsT6N8k4PUVPsV1TtyBW6L7ediJa

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02400000 Waves

2023.03.22 13:32 [2501114] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "688tfSDQMrf7MWxvrsT6N8k4PUVPsV1TtyBW6L7ediJa", "fee": 2400000, "feeAssetId": null, "timestamp": 1679481178012, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "MFfWJxQJh4coTfoDr6urCSF9TX9J4pAxjGn65okTKrYUUSj3heeFPUPo3hauexeP4ZwGGeiXbVG6dussJb8tZtS" ], "script": "base64:BgLvJwgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzcyNjM3ODgiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIgxwYXJzZUFzc2V0SWQiBWlucHV0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIHJG1hdGNoMCIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIgFiIgdhc3NldElkIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIBciIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIDZmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleWkAAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUFAWIAAWYCDkdXWHZpcnR1YWxQT09MAAFnAghQT09MU19MUAABaACAiXoAAWkCBVdBVkVTAAFqCQBoAgkAaAIAZADoBwDoBwABawICX18AAWwCAAABbQABAAFuAAIAAW8AAwABcAAEAAFxAAEAAXIAAgABcwADAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAoAAUQACwABRQILV1hfRU1JU1NJT04AAUYJAMwIAgUBRQUDbmlsAQFHAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUgAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBSQACIiVzX19hbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gBAUoAAhAlc19fc3dhcENvbnRyYWN0AQFLAAIRJXNfX2ZhY3RvcnlDb25maWcBAUwAAhAlc19fbHBUb2tlbnNMaXN0AQFNAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBTgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBTwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVAAAg8lc19fbGVnYWN5UG9vbHMBAVEAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUwACECVzX19hZG1pblB1YktleXMBAVQAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBVQACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFWAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWsBAVcAAhElc19fcHJpY2VEZWNpbWFscwEBWAACDCVzX19zaHV0ZG93bgEBWQACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQFaAQJhYQkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFhAQJhYgICYWECYWMJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWECAl9fCQCkAwEFAmFjAQJhZAECYWUJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhZQECYWYBAmFnCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFnAQJhaAICYWkCYWoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFpAgJfXwUCYWoCCF9fY29uZmlnAQJhawECYWwEAmFtBQJhbAQCYWkIBQJhbQJfMQQCYWoIBQJhbQJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFpCQDMCAIJAKQDAQUCYWoJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW4ACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBawECYW8BAmFwCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFwAhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmFxAgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhcgICX18FAmFzAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmF0AQJhYQkArAICAg4lcyVzX19zcHJlYWRfXwUCYWEBAmF1AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmF3AgJhcgJhcwkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFyAgJfXwkApAMBBQJhcwIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmF4AQJhdgkArAICCQCsAgICCCVzJXMlc19fBQJhdgIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmF5AQJhcAkArAICCQCsAgICCCVzJXMlc19fBQJhcAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmF6AgJhQQJhQgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFBAgJfXwUCYUIBAmFDAQJhYQkArAICAg0lcyVzX19pbkZlZV9fBQJhYQECYUQAAhAlc19faW5GZWVEZWZhdWx0AQJhRQECYWEJAKwCAgIOJXMlc19fb3V0RmVlX18FAmFhAQJhRgACESVzX19vdXRGZWVEZWZhdWx0AQJhRwECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSQECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSgECYUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQJhSAkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFIAQJhSwECYUwDCQAAAgUCYUwFAWkFBHVuaXQJANkEAQUCYUwAAmFNAAEAAmFOAAIAAmFPAAMAAmFQAAQAAmFRAAUAAmFSAAYAAmFTAAcAAmFUAAgAAmFVAAkAAmFWAAoAAmFXAAsBAmFYAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYU4BAmFaAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYVEBAmJhAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYU0BAmJiAQJhWQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhWQUCYVYBAmJjAAQCYmQJAKIIAQkBAVYAAwkAAQIFAmJkAgZTdHJpbmcEAmJlBQJiZAMJAAACCQCxAgEFAmJlAAAFA25pbAkAtQkCBQJiZQUBawUDbmlsAQJiZgAEAmJkCQCiCAEJAQFRAAMJAAECBQJiZAIGU3RyaW5nBAJiZQUCYmQJANkEAQUCYmUDCQABAgUCYmQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYmcABAJiZAkAoggBCQEBUgADCQABAgUCYmQCBlN0cmluZwQCYmUFAmJkCQDZBAEFAmJlAwkAAQIFAmJkAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmJoCQACAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJpCQACAQIPVGVzdCBlcnJvciBoZXJlAQJiagECYmsDCQAAAggFAmJrBmNhbGxlcgUEdGhpcwYFAmJoAQJibAECYmsEAmJkCQECYmYAAwkAAQIFAmJkAgpCeXRlVmVjdG9yBAJibQUCYmQDCQAAAggFAmJrD2NhbGxlclB1YmxpY0tleQUCYm0GBQJiaAMJAAECBQJiZAIEVW5pdAkBAmJqAQUCYmsJAAIBAgtNYXRjaCBlcnJvcgECYm4LAmJvAmJwAmJxAmJyAmJzAmJ0AmJ1AmJ2AmJ3AmJ4AmJ5CQC5CQIJAMwIAgIWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkAzAgCBQJibwkAzAgCBQJicAkAzAgCBQJicQkAzAgCBQJicgkAzAgCBQJicwkAzAgCBQJidAkAzAgCBQJidQkAzAgCBQJidgkAzAgCBQJidwkAzAgCBQJieAkAzAgCBQJieQUDbmlsBQFrAQJiegcCYm8CYnACYnECYnICYnMCYnQCYnUJALkJAgkAzAgCAgwlcyVzJXMlcyVzJXMJAMwIAgUCYm8JAMwIAgUCYnAJAMwIAgUCYnEJAMwIAgUCYnIJAMwIAgUCYnMJAMwIAgUCYnQJAMwIAgUCYnUFA25pbAUBawECYkELAmFhAmJCAmJDAmJEAmJFAmJGAmJHAmJIAmJJAmJKAmJLCQC5CQIJAMwIAgIWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkAzAgCBQJhYQkAzAgCBQJiQgkAzAgCBQJiQwkAzAgCBQJiRAkAzAgCBQJiRQkAzAgCCQCkAwEFAmJGCQDMCAIJAKQDAQUCYkcJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgUCYksFA25pbAUBawECYkwCAmJNAmJOCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFAmJNCQDMCAIJAKQDAQUCYk4FA25pbAUBawECYk8BAmFhBAJiUAkAtQkCCQECYUcBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlAAAQQCYWoJAJEDAgUCYlAAAgkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsBAmJRAgJiUgJiUwQCYlQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFmAQUCYlIAAAQCYlUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAVkAAAAEAmJWAwkAAAIFAmJUAAAEAmJXCQBkAgUCYlUFAmJTCQCVCgMFAmJXCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWQAFAmJXCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWYBBQJiUgUCYlcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAQUCYlcFAmJSBQNuaWwGCQCVCgMFAmJUBQNuaWwHBQJiVgECYlgBAmJrBAJiWQkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFTAAUBbAUBawMJAQ9jb250YWluc0VsZW1lbnQCBQJiWQkA2AQBCAUCYmsPY2FsbGVyUHVibGljS2V5BgQCYloJAQJibAEFAmJrAwkAAAIFAmJaBQJiWgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNhAwJhSAJjYgJjYwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhSAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjYgUCY2MBAmNkAgJhQQJhQgQCYWkJAJ8IAQkBAmFmAQUCYUEEAmFqCQCfCAEJAQJhZgEFAmFCAwMJAAACBQJhaQUEdW5pdAYJAAACBQJhagUEdW5pdAcEAmNlCQCkAwEJAQV2YWx1ZQEFAmFpBAJjZgkApAMBCQEFdmFsdWUBBQJhagQCY2cJAKIIAQkBAmFoAgUCY2UFAmNmBAJjaAkAoggBCQECYWgCBQJjZgUCY2UEAmNpAwkBAiE9AgUCY2cFBHVuaXQGCQECIT0CBQJjaAUEdW5pdAUCY2keAmJrARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYUcBCQEBSgACYmsBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJjagJjawMDCQAAAgUCY2oCLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCY2sCBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmNsCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhZgEFAmNqBAJjbQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWYBBQJjawQCY24JAJ0IAgUEdGhpcwkBAmFxAgkApAMBBQJjbAkApAMBBQJjbQQCY28DCQAAAgUCY24FBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCY24ABAkAlAoCBQNuaWwFAmNvAmJrASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmNwCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYXkBBQJjcAIAAmJrAQtjb25zdHJ1Y3RvcggCY3ECY3ICYnECYnICYnMCYnQCY3MCY3QEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUsACQECYnoHBQJjcQUCY3IFAmJxBQJicgUCYnMFAmJ0BQJjcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJjdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclYyAQJjdgQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCY3cJAKcIAQkA2QQBBQJjdgMJAAACBQJjdwUCY3cJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4ABQJjdgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclYzBAJidgJidwJieAJieQQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCYVkJALUJAgkBAmFHAQkBAUsABQFrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFLAAkBAmJuCwkAkQMCBQJhWQABCQCRAwIFAmFZAAIJAJEDAgUCYVkAAwkAkQMCBQJhWQAECQCRAwIFAmFZAAUJAJEDAgUCYVkABgkAkQMCBQJhWQAHBQJidgUCYncFAmJ4BQJieQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclY0AgJjeAJjeQQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAFAmN4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAAkAuQkCBQJjeQUBawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclY1AQJjegQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAFAmN6BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBDWNvbnN0cnVjdG9yVjYCAmNBAmNCBAJjQwkAzAgCCQECYmwBBQJiawkAzAgCAwkBAiE9AgkApggBBQJjQQUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJjQwUCY0MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVUABQJjQQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVgAJALkJAgUCY0IFAWsFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEKc2V0TWFuYWdlcgECY0QEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmNFCQDZBAEFAmNEAwkAAAIFAmNFBQJjRQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAmNEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBDmNvbmZpcm1NYW5hZ2VyAAQCY0YJAQJiZwAEAmNHAwkBCWlzRGVmaW5lZAEFAmNGBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJjRwUCY0cEAmNIAwkAAAIIBQJiaw9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmNGBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJjSAUCY0gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVEACQDYBAEJAQV2YWx1ZQEFAmNGCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFSAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQlzZXRBZG1pbnMBAmNJBAJjdQkBAmJsAQUCYmsDCQAAAgUCY3UFAmN1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAkAuQkCBQJjSQUBawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ9hY3RpdmF0ZU5ld1Bvb2wIAmFhAmJEAmJFAmNKAmNLAmNMAmJLAmNNBAJjdQkBAmJYAQUCYmsDCQAAAgUCY3UFAmN1AwkBCWlzRGVmaW5lZAEJAKIIAQkBAmF1AQUCYWEJAAIBCQCsAgIJAKwCAgINUG9vbCBhZGRyZXNzIAUCYWECFCBhbHJlYWR5IHJlZ2lzdGVyZWQuBAJjTgkBAmJRAgUCYkQAAQQCY08IBQJjTgJfMQQCY1AJAQJiUQIFAmJFAwgFAmNOAl8zAAIAAQQCY1EIBQJjUAJfMQQCY1IJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA8QcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhYQkArAICAilObyBzY3JpcHQgaGFzIGJlZW4gZm91bmQgb24gcG9vbCBhY2NvdW50IAUCYWEEAmNTCQERQGV4dHJOYXRpdmUoMTA1NykBCQEBTQAEAmNUCQECY2QCBQJiRAUCYkUDBQJjVAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmJEAgEvBQJiRQIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCY1UJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFoAgkApAMBBQJjTwkApAMBBQJjUQQCY1YDCQAAAgUCYkQCBVdBVkVTBQFqCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCYkQIZGVjaW1hbHMAAAAABQRET1dOBAJjVwMJAAACBQJiRQIFV0FWRVMFAWoJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiRQhkZWNpbWFscwAAAAAFBERPV04EAmNYCQDCCAUFAmNKBQJjSwABAAgGBAJiQwkAuAgBBQJjWAQCY1kJANgEAQUCYkMEAmNaCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFhAghhY3RpdmF0ZQkAzAgCBQJiRAkAzAgCBQJiRQUDbmlsBQNuaWwDCQAAAgUCY1oFAmNaAwkBAiE9AgUCY1oCB3N1Y2Nlc3MJAAIBAiNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgQCY3oJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhRwEJAQFUAAQCZGEJAPwHBAUCY3oCDmNyZWF0ZU9yVXBkYXRlCQDMCAIFAmNZCQDMCAIFAmNKCQDMCAIHBQNuaWwFA25pbAMJAAACBQJkYQUCZGEEAmRiCQD8BwQFAmN6AghhZGRMYWJlbAkAzAgCBQJjWQkAzAgCBQFnBQNuaWwFA25pbAMJAAACBQJkYgUCZGIEAmRjCQD8BwQFAmN6AgdzZXRMb2dvCQDMCAIFAmNZCQDMCAIFAmNNBQNuaWwFA25pbAMJAAACBQJkYwUCZGMEAmRkCQD8BwQFAmN6Ag1hZGRBc3NldHNMaW5rCQDMCAIFAmJECQDMCAIFAmJFCQDMCAIFAmNZBQNuaWwFA25pbAMJAAACBQJkZAUCZGQEAmRlCQD8BwQFAmN6AhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCYkQFA25pbAUDbmlsAwkAAAIFAmRlBQJkZQkAlAoCCQDOCAIJAM4IAggFAmNOAl8yCAUCY1ACXzIJAMwIAgUCY1gJAMwIAgkBBEJ1cm4CBQJiQwABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAIJAKQDAQUCY08JAKQDAQUCY1EJAQJiQQsFAmFhCQCkAwEFAW0FAmNZBQJiRAUCYkUFAmNWBQJjVwUCY08FAmNRBQFqBQJiSwkAzAgCCQELU3RyaW5nRW50cnkCCQECYW8BBQJjWQkBAmJMAgUCY08FAmNRCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhcQIJAKQDAQUCY08JAKQDAQUCY1EJAKwCAgIEJXNfXwUCY1kJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF1AQUCYWEJAQJiTAIFAmNPBQJjUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXcCBQJjTwUCY1EFAmFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJheQEFAmNZBQJhYQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXgBBQJhYQUCY1kJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFaAQUCYWEFAmNMCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXQBBQJhYQUBaAUDbmlsBQJjWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEKbWFuYWdlUG9vbAICYWECZGYEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmRnCQECYk8BBQJhYQQCYkIJAJEDAgUCZGcFAXUEAmNZCQCRAwIFAmRnBQF2BAJiRAkAkQMCBQJkZwUBdwQCYkUJAJEDAgUCZGcFAXgEAmNWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAXkEAmNXCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAXoEAmNPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUEEAmNRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUIEAmRoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUMEAmJLCQCRAwIFAmRnBQFECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAIJAKQDAQUCY08JAKQDAQUCY1EJAQJiQQsFAmFhCQCkAwEFAmRmBQJjWQUCYkQFAmJFBQJjVgUCY1cFAmNPBQJjUQUCZGgFAmJLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBBGVtaXQBAmRpBAJkaggFAmJrBmNhbGxlcgQCZGsIBQJiawxvcmlnaW5DYWxsZXIEAmRsCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmF4AQkApQgBBQJkagIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4EAmRtCQDZBAEFAmRsBAJjeQkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFQAAUBbAUBawQCY3gJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEBTwACKExlZ2FjeSBmYWN0b3J5IGNvbnRyYWN0IGRvZXMgbm90IGV4aXN0cy4DCQBnAgAABQJkaQUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFAmN5CQClCAEFAmRqCQCUCgIFA25pbAUCY3gJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFAmRtBQJkaQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmJrBmNhbGxlcgUCZGkFAmRtBQNuaWwCB3N1Y2Nlc3MCYmsBBGJ1cm4BAmRuBAJkaggFAmJrBmNhbGxlcgQCZGsIBQJiawxvcmlnaW5DYWxsZXIEAmRvCQEFdmFsdWUBCQCRAwIIBQJiawhwYXltZW50cwAABAJkcAkBBXZhbHVlAQgFAmRvBmFtb3VudAQCZHEJANgEAQkBBXZhbHVlAQgFAmRvB2Fzc2V0SWQEAmRyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmF4AQkApQgBBQJkagIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4DCQECIT0CBQJkcQUCZHIJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4DCQECIT0CBQJkbgUCZHAJAAIBAhZJbnZhbGlkIGFtb3VudCBwYXNzZWQuBAJkbQkA2QQBBQJkcgkAlAoCCQDMCAIJAQRCdXJuAgUCZG0FAmRuBQNuaWwCB3N1Y2Nlc3MCYmsBDG1vZGlmeVdlaWdodAICYkMCZHMEAmN1AwkAAAIJANgEAQgIBQJiawZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVUAAgAGCQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmF2CQECYUcBCQECYXkBBQJiQwQCZHQJAQFaAQUCYXYEAmR1CQEBWgEFAWYEAmR2CQELdmFsdWVPckVsc2UCCQCfCAEFAmR1AAAEAmNMCQELdmFsdWVPckVsc2UCCQCfCAEFAmR0AAAEAmR3BQJkcwQCYVkJALUJAgkBAmFHAQkBAUsABQFrBAJjcQkBAmJhAQUCYVkEAmR4CQD8BwQFAmNxAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJiQwkAzAgCBQJhdgUDbmlsBQNuaWwDCQAAAgUCZHgFAmR4BAJkeQMJAAACBQJkdgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmR1AAAFA25pbAQCZHoJAQJhYgIFAmF2AAAEAmRBCQCfCAEFAmR6BAJkQgMJAAACBQJkQQUEdW5pdAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAmR6BQNuaWwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkdAUCZHcFA25pbAUCZHkFAmRCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1tb2RpZnlXZWlnaHRzBAJkQwJkRAJkRQJkRgQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCZEcJAGkCCQBoAgAFBQFlAGQEAmRICQBpAgkAaAIABQUBZQBkBAJkSQkAaQIJAGgCAAUFAWUAZAQCYVkJALUJAgkBAmFHAQkBAUsABQFrBAJkSgkBAmJhAQUCYVkEAmRLCQECYmIBBQJhWQQCZEwJAQFaAQUCZEMEAmRNCQEBWgEFAmREBAJkTgkBAVoBBQJkRQQCZE8JAQFaAQUCZEYEAmRQCQECYUoBBQJkTAQCZFEJAQJhSgEFAmRNBAJkUgkAZQIFAmRQBQJkSQQCZFMJAGUCBQJkUQUCZEkDCQBnAgAABQJkUgkAAgEJAKwCAgIWaW52YWxpZCBidGNXZWlnaHROZXc6IAkApAMBBQJkUgMJAGcCAAAFAmRTCQACAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFAmRTBAJkVAkBAmFHAQkBAmF4AQUCZEMEAmRVCQECYUcBCQECYXgBBQJkRAQCZFYJAQJhRwEJAQJheAEFAmRFBAJkVwkBAmFHAQkBAmF4AQUCZEYEAmRYCQD8BwQFAmRKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkVAkAzAgCBQJkQwUDbmlsBQNuaWwDCQAAAgUCZFgFAmRYBAJkWQkA/AcEBQJkSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFUJAMwIAgUCZEQFA25pbAUDbmlsAwkAAAIFAmRZBQJkWQQCZFoJAPwHBAUCZEoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRWCQDMCAIFAmRFBQNuaWwFA25pbAMJAAACBQJkWgUCZFoEAmVhCQD8BwQFAmRKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkVwkAzAgCBQJkRgUDbmlsBQNuaWwDCQAAAgUCZWEFAmVhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTAUCZFIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRNBQJkUwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZE4FAmRHCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTwUCZEgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRDAAAFAmRQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkRAAABQJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEUAAAUCZEcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRGAAAFAmRIBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmViBAJiZAkAoAgBCQECYXoCBQJhQQUCYUIDCQABAgUCYmQCB0Jvb2xlYW4EAmVjBQJiZAUCZWMHCQCUCgIFA25pbAUCZWICYmsBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCAmFBAmFCBAJjdQkBAmJYAQUCYmsDCQAAAgUCY3UFAmN1CQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQJhegIFAmFBBQJhQgYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmN1AwkBAmJqAQUCYmsGCQECYlgBBQJiawMJAAACBQJjdQUCY3UJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYXoCBQJhQQUCYUIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawESb25WZXJpZmljYXRpb25Mb3NzAQJlZAQCY3UDCQAAAgkA2AQBCAgFAmJrBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBVAACAAYJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQQCY0IJAQJiYwAEAmVlAwkAZgIJAJADAQUCY0IAAAYJAAIBAhRpbnZhbGlkIHByaWNlIGFzc2V0cwMJAAACBQJlZQUCZWUKAQJlZgICZWcCZWgEAmVpCQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUCZWQJAMwIAgUCZWgFA25pbAUDbmlsAwkAAAIFAmVpBQJlaQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZWoKAAJlawUCY0IKAAJlbAkAkAMBBQJlawoAAmVtBQR1bml0CgECZW4CAmVvAmVwAwkAZwIFAmVwBQJlbAUCZW8JAQJlZgIFAmVvCQCRAwIFAmVrBQJlcAoBAmVxAgJlbwJlcAMJAGcCBQJlcAUCZWwFAmVvCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBAmVxAgkBAmVuAgkBAmVuAgUCZW0AAAABAAIDCQAAAgUCZWoFAmVqCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQECYWEEAmRnCQECYk8BBQJhYQQCYWwJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFBCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGcFAUIEAmVyCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhawEFAmFsBwQCZXMJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFuAAcJAJQKAgUDbmlsAwUCZXMGBQJlcgJiawEQZ2V0SW5GZWVSRUFET05MWQECYWEEAmV0CQECY2EDCQECYUMBBQJhYQkBAmFEAAAACQCUCgIFA25pbAUCZXQCYmsBEWdldE91dEZlZVJFQURPTkxZAQJhYQQCZXQJAQJjYQMJAQJhRQEFAmFhCQECYUYACQBrAwAKBQFiAJBOCQCUCgIFA25pbAUCZXQCYmsBEHBvb2xJbmZvUkVBRE9OTFkCAmV1AmV2BAJldwkAmggCBQR0aGlzCQECYWYBBQJldQQCZXgJAJoIAgUEdGhpcwkBAmFmAQUCZXYEAmV5CQCdCAIFBHRoaXMJAQJhdwIJAQV2YWx1ZQEFAmV3CQEFdmFsdWUBBQJleAQCZXoJAJ0IAgUEdGhpcwkBAmF4AQkBBXZhbHVlAQUCZXkEAmNUAwMJAQlpc0RlZmluZWQBBQJldwkBCWlzRGVmaW5lZAEFAmV4BwkBCWlzRGVmaW5lZAEFAmV5BwQCZUEDBQJjVAkAlAoCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQJleQkBAmFLAQkBBXZhbHVlAQUCZXoFBHVuaXQJAJQKAgUDbmlsBQJlQQJiawEVZ2V0UG9vbFN0YXR1c1JFQURPTkxZAQJhYQQCYlAJALUJAgkBAmFHAQkBAmF1AQUCYWEFAWsEAmFpCQCRAwIFAmJQAAEEAmFqCQCRAwIFAmJQAAIEAmNnCQC1CQIJAQJhRwEJAQJhaAIFAmFpBQJhagUBawkAlAoCBQNuaWwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjZwUBdQJiawEVZ2V0UG9vbENvbmZpZ1JFQURPTkxZAQJhYQQCYlAJALUJAgkBAmFHAQkBAmF1AQUCYWEFAWsEAmFpCQCRAwIFAmJQAAEEAmFqCQCRAwIFAmJQAAIEAmNnCQC1CQIJAQJhRwEJAQJhaAIFAmFpBQJhagUBawkAlAoCBQNuaWwFAmNnAmJrASBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQECY1kEAmJQCQC1CQIJAQJhRwEJAQJhbwEFAmNZBQFrBAJhaQkAkQMCBQJiUAABBAJhagkAkQMCBQJiUAACBAJjZwkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsJAJQKAgUDbmlsBQJjZwJiawEScG9vbEV4aXN0c1JFQURPTkxZAgJhQQJhQgkAlAoCBQNuaWwJAQJjZAIFAmFBBQJhQgECZUIBAmVDAAQCZUQEAmJkCQECYmYAAwkAAQIFAmJkAgpCeXRlVmVjdG9yBAJibQUCYmQFAmJtAwkAAQIFAmJkAgRVbml0CAUCZUIPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVCCWJvZHlCeXRlcwkAkQMCCAUCZUIGcHJvb2ZzAAAFAmVEnpsv9w==", "height": 2501114, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6zdAhF1hVi7G2224ZGQpYb9jkZ8PZVBDPCfHFrdNCpK4 Next: Dt67xcVQmHVBzrQfFT3HYWXztACJt2jFpUAednBeP99a Diff:
OldNewDifferences
184184 func aF () = "%s__outFeeDefault"
185185
186186
187-func aG (aa) = ("%s%s__skipOrderValidation__" + aa)
187+func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
188188
189189
190-func aH (aI) = valueOrErrorMessage(getString(this, aI), ("No data for this.key=" + aI))
190+func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
191191
192192
193-func aJ (aI) = valueOrErrorMessage(getBoolean(this, aI), ("No data for this.key=" + aI))
193+func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
194194
195195
196-func aK (aI) = valueOrErrorMessage(getInteger(this, aI), ("No data for this.key=" + aI))
196+func aK (aL) = if ((aL == i))
197+ then unit
198+ else fromBase58String(aL)
197199
198200
199-func aL (aM) = if ((aM == i))
200- then unit
201- else fromBase58String(aM)
201+let aM = 1
202+
203+let aN = 2
204+
205+let aO = 3
206+
207+let aP = 4
208+
209+let aQ = 5
210+
211+let aR = 6
212+
213+let aS = 7
214+
215+let aT = 8
216+
217+let aU = 9
218+
219+let aV = 10
220+
221+let aW = 11
222+
223+func aX (aY) = addressFromStringValue(aY[aN])
202224
203225
204-let aN = 1
205-
206-let aO = 2
207-
208-let aP = 3
209-
210-let aQ = 4
211-
212-let aR = 5
213-
214-let aS = 6
215-
216-let aT = 7
217-
218-let aU = 8
219-
220-let aV = 9
221-
222-let aW = 10
223-
224-let aX = 11
225-
226-func aY (aZ) = addressFromStringValue(aZ[aO])
226+func aZ (aY) = addressFromStringValue(aY[aQ])
227227
228228
229-func ba (aZ) = addressFromStringValue(aZ[aR])
229+func ba (aY) = addressFromStringValue(aY[aM])
230230
231231
232-func bb (aZ) = addressFromStringValue(aZ[aN])
232+func bb (aY) = addressFromStringValue(aY[aV])
233233
234234
235-func bc (aZ) = addressFromStringValue(aZ[aW])
236-
237-
238-func bd () = {
239- let be = getString(V())
240- if ($isInstanceOf(be, "String"))
235+func bc () = {
236+ let bd = getString(V())
237+ if ($isInstanceOf(bd, "String"))
241238 then {
242- let bf = be
243- if ((size(bf) == 0))
239+ let be = bd
240+ if ((size(be) == 0))
244241 then nil
245- else split(bf, k)
242+ else split(be, k)
246243 }
247244 else nil
248245 }
249246
250247
251-func bg () = {
252- let be = getString(Q())
253- if ($isInstanceOf(be, "String"))
248+func bf () = {
249+ let bd = getString(Q())
250+ if ($isInstanceOf(bd, "String"))
254251 then {
255- let bf = be
256- fromBase58String(bf)
252+ let be = bd
253+ fromBase58String(be)
257254 }
258- else if ($isInstanceOf(be, "Unit"))
255+ else if ($isInstanceOf(bd, "Unit"))
259256 then unit
260257 else throw("Match error")
261258 }
262259
263260
264-func bh () = {
265- let be = getString(R())
266- if ($isInstanceOf(be, "String"))
261+func bg () = {
262+ let bd = getString(R())
263+ if ($isInstanceOf(bd, "String"))
267264 then {
268- let bf = be
269- fromBase58String(bf)
265+ let be = bd
266+ fromBase58String(be)
270267 }
271- else if ($isInstanceOf(be, "Unit"))
268+ else if ($isInstanceOf(bd, "Unit"))
272269 then unit
273270 else throw("Match error")
274271 }
275272
276273
277-let bi = throw("Permission denied")
274+let bh = throw("Permission denied")
278275
279-let bj = throw("Test error here")
276+let bi = throw("Test error here")
280277
281-func bk (bl) = if ((bl.caller == this))
278+func bj (bk) = if ((bk.caller == this))
282279 then true
283- else bi
280+ else bh
284281
285282
286-func bm (bl) = {
287- let be = bg()
288- if ($isInstanceOf(be, "ByteVector"))
283+func bl (bk) = {
284+ let bd = bf()
285+ if ($isInstanceOf(bd, "ByteVector"))
289286 then {
290- let bn = be
291- if ((bl.callerPublicKey == bn))
287+ let bm = bd
288+ if ((bk.callerPublicKey == bm))
292289 then true
293- else bi
290+ else bh
294291 }
295- else if ($isInstanceOf(be, "Unit"))
296- then bk(bl)
292+ else if ($isInstanceOf(bd, "Unit"))
293+ then bj(bk)
297294 else throw("Match error")
298295 }
299296
300297
301-func bo (bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz], k)
298+func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by], k)
302299
303300
304-func bA (bp,bq,br,bs,bt,bu,bv) = makeString(["%s%s%s%s%s%s", bp, bq, br, bs, bt, bu, bv], k)
301+func bz (bo,bp,bq,br,bs,bt,bu) = makeString(["%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu], k)
305302
306303
307-func bB (aa,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bC, bD, bE, bF, toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), bL], k)
304+func bA (aa,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bB, bC, bD, bE, toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), bK], k)
308305
309306
310-func bM (bN,bO) = makeString(["%d%d", toString(bN), toString(bO)], k)
307+func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
311308
312309
313-func bP (aa) = {
314- let bQ = split(aH(au(aa)), k)
315- let ai = bQ[1]
316- let aj = bQ[2]
317- split(aH(ah(ai, aj)), k)
310+func bO (aa) = {
311+ let bP = split(aG(au(aa)), k)
312+ let ai = bP[1]
313+ let aj = bP[2]
314+ split(aG(ah(ai, aj)), k)
318315 }
319316
320317
321-func bR (bS,bT) = {
322- let bU = valueOrElse(getInteger(this, af(bS)), 0)
323- let bV = valueOrElse(getInteger(this, Y()), 0)
324- let bW = if ((bU == 0))
318+func bQ (bR,bS) = {
319+ let bT = valueOrElse(getInteger(this, af(bR)), 0)
320+ let bU = valueOrElse(getInteger(this, Y()), 0)
321+ let bV = if ((bT == 0))
325322 then {
326- let bX = (bV + bT)
327- $Tuple3(bX, [IntegerEntry(Y(), bX), IntegerEntry(af(bS), bX), StringEntry(ad(bX), bS)], true)
323+ let bW = (bU + bS)
324+ $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
328325 }
329- else $Tuple3(bU, nil, false)
330- bW
326+ else $Tuple3(bT, nil, false)
327+ bV
331328 }
332329
333330
334-func bY (bl) = {
335- let bZ = split(valueOrElse(getString(S()), l), k)
336- if (containsElement(bZ, toBase58String(bl.callerPublicKey)))
331+func bX (bk) = {
332+ let bY = split(valueOrElse(getString(S()), l), k)
333+ if (containsElement(bY, toBase58String(bk.callerPublicKey)))
337334 then true
338335 else {
339- let ca = bm(bl)
340- if ((ca == ca))
336+ let bZ = bl(bk)
337+ if ((bZ == bZ))
341338 then true
342339 else throw("Strict value is not equal to itself.")
343340 }
344341 }
345342
346343
347-func cb (aI,cc,cd) = valueOrElse(getInteger(this, aI), valueOrElse(getInteger(this, cc), cd))
344+func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
348345
349346
350-func ce (aA,aB) = {
347+func cd (aA,aB) = {
351348 let ai = getInteger(af(aA))
352349 let aj = getInteger(af(aB))
353350 if (if ((ai == unit))
355352 else (aj == unit))
356353 then false
357354 else {
358- let cf = toString(value(ai))
359- let cg = toString(value(aj))
360- let ch = getString(ah(cf, cg))
361- let ci = getString(ah(cg, cf))
362- let cj = if ((ch != unit))
355+ let ce = toString(value(ai))
356+ let cf = toString(value(aj))
357+ let cg = getString(ah(ce, cf))
358+ let ch = getString(ah(cf, ce))
359+ let ci = if ((cg != unit))
363360 then true
364- else (ci != unit)
365- cj
361+ else (ch != unit)
362+ ci
366363 }
367364 }
368365
369366
370-@Callable(bl)
371-func getSwapContractREADONLY () = $Tuple2(nil, aH(J()))
367+@Callable(bk)
368+func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
372369
373370
374371
375-@Callable(bl)
376-func getLpAssetFromPoolAssetsREADONLY (ck,cl) = if (if ((ck == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
377- then (cl == "WAVES")
372+@Callable(bk)
373+func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374+ then (ck == "WAVES")
378375 else false)
379376 then $Tuple2(nil, unit)
380377 else {
378+ let cl = value(getInteger(this, af(cj)))
381379 let cm = value(getInteger(this, af(ck)))
382- let cn = value(getInteger(this, af(cl)))
383- let co = getString(this, aq(toString(cm), toString(cn)))
384- let cp = if ((co == unit))
380+ let cn = getString(this, aq(toString(cl), toString(cm)))
381+ let co = if ((cn == unit))
385382 then unit
386- else drop(value(co), 4)
387- $Tuple2(nil, cp)
383+ else drop(value(cn), 4)
384+ $Tuple2(nil, co)
388385 }
389386
390387
391388
392-@Callable(bl)
393-func getPoolAddressFromLpAssetREADONLY (cq) = $Tuple2(nil, valueOrElse(getString(this, ay(cq)), ""))
389+@Callable(bk)
390+func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
394391
395392
396393
397-@Callable(bl)
398-func constructor (cr,cs,br,bs,bt,bu,ct,cu) = {
399- let cv = bm(bl)
400- if ((cv == cv))
401- then [StringEntry(K(), bA(cr, cs, br, bs, bt, bu, ct)), IntegerEntry(W(), cu)]
394+@Callable(bk)
395+func constructor (cq,cr,bq,br,bs,bt,cs,ct) = {
396+ let cu = bl(bk)
397+ if ((cu == cu))
398+ then [StringEntry(K(), bz(cq, cr, bq, br, bs, bt, cs)), IntegerEntry(W(), ct)]
402399 else throw("Strict value is not equal to itself.")
403400 }
404401
405402
406403
407-@Callable(bl)
408-func constructorV2 (cw) = {
409- let cv = bm(bl)
410- if ((cv == cv))
404+@Callable(bk)
405+func constructorV2 (cv) = {
406+ let cu = bl(bk)
407+ if ((cu == cu))
411408 then {
412- let cx = addressFromPublicKey(fromBase58String(cw))
413- if ((cx == cx))
414- then [StringEntry(N(), cw)]
409+ let cw = addressFromPublicKey(fromBase58String(cv))
410+ if ((cw == cw))
411+ then [StringEntry(N(), cv)]
415412 else throw("Strict value is not equal to itself.")
416413 }
417414 else throw("Strict value is not equal to itself.")
419416
420417
421418
422-@Callable(bl)
423-func constructorV3 (bw,bx,by,bz) = {
424- let cv = bm(bl)
425- if ((cv == cv))
419+@Callable(bk)
420+func constructorV3 (bv,bw,bx,by) = {
421+ let cu = bl(bk)
422+ if ((cu == cu))
426423 then {
427- let aZ = split(aH(K()), k)
428-[StringEntry(K(), bo(aZ[1], aZ[2], aZ[3], aZ[4], aZ[5], aZ[6], aZ[7], bw, bx, by, bz))]
424+ let aY = split(aG(K()), k)
425+[StringEntry(K(), bn(aY[1], aY[2], aY[3], aY[4], aY[5], aY[6], aY[7], bv, bw, bx, by))]
429426 }
430427 else throw("Strict value is not equal to itself.")
431428 }
432429
433430
434431
435-@Callable(bl)
436-func constructorV4 (cy,cz) = {
437- let cv = bm(bl)
438- if ((cv == cv))
439- then [StringEntry(O(), cy), StringEntry(P(), makeString(cz, k))]
432+@Callable(bk)
433+func constructorV4 (cx,cy) = {
434+ let cu = bl(bk)
435+ if ((cu == cu))
436+ then [StringEntry(O(), cx), StringEntry(P(), makeString(cy, k))]
440437 else throw("Strict value is not equal to itself.")
441438 }
442439
443440
444441
445-@Callable(bl)
446-func constructorV5 (cA) = {
447- let cv = bm(bl)
448- if ((cv == cv))
449- then [StringEntry(T(), cA)]
442+@Callable(bk)
443+func constructorV5 (cz) = {
444+ let cu = bl(bk)
445+ if ((cu == cu))
446+ then [StringEntry(T(), cz)]
450447 else throw("Strict value is not equal to itself.")
451448 }
452449
453450
454451
455-@Callable(bl)
456-func constructorV6 (cB,cC) = {
457- let cD = [bm(bl), if ((addressFromString(cB) != unit))
452+@Callable(bk)
453+func constructorV6 (cA,cB) = {
454+ let cC = [bl(bk), if ((addressFromString(cA) != unit))
458455 then true
459456 else "invalid voting emission contract address"]
460- if ((cD == cD))
461- then [StringEntry(U(), cB), StringEntry(V(), makeString(cC, k))]
457+ if ((cC == cC))
458+ then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
462459 else throw("Strict value is not equal to itself.")
463460 }
464461
465462
466463
467-@Callable(bl)
468-func setManager (cE) = {
469- let cv = bm(bl)
470- if ((cv == cv))
464+@Callable(bk)
465+func setManager (cD) = {
466+ let cu = bl(bk)
467+ if ((cu == cu))
471468 then {
472- let cF = fromBase58String(cE)
473- if ((cF == cF))
474- then [StringEntry(R(), cE)]
469+ let cE = fromBase58String(cD)
470+ if ((cE == cE))
471+ then [StringEntry(R(), cD)]
475472 else throw("Strict value is not equal to itself.")
476473 }
477474 else throw("Strict value is not equal to itself.")
479476
480477
481478
482-@Callable(bl)
479+@Callable(bk)
483480 func confirmManager () = {
484- let cG = bh()
485- let cH = if (isDefined(cG))
481+ let cF = bg()
482+ let cG = if (isDefined(cF))
486483 then true
487484 else throw("No pending manager")
488- if ((cH == cH))
485+ if ((cG == cG))
489486 then {
490- let cI = if ((bl.callerPublicKey == value(cG)))
487+ let cH = if ((bk.callerPublicKey == value(cF)))
491488 then true
492489 else throw("You are not pending manager")
493- if ((cI == cI))
494- then [StringEntry(Q(), toBase58String(value(cG))), DeleteEntry(R())]
490+ if ((cH == cH))
491+ then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
495492 else throw("Strict value is not equal to itself.")
496493 }
497494 else throw("Strict value is not equal to itself.")
499496
500497
501498
502-@Callable(bl)
503-func setAdmins (cJ) = {
504- let cv = bm(bl)
505- if ((cv == cv))
506- then [StringEntry(S(), makeString(cJ, k))]
499+@Callable(bk)
500+func setAdmins (cI) = {
501+ let cu = bl(bk)
502+ if ((cu == cu))
503+ then [StringEntry(S(), makeString(cI, k))]
507504 else throw("Strict value is not equal to itself.")
508505 }
509506
510507
511508
512-@Callable(bl)
513-func activateNewPool (aa,bE,bF,cK,cL,cM,bL,cN) = {
514- let cv = bY(bl)
515- if ((cv == cv))
509+@Callable(bk)
510+func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511+ let cu = bX(bk)
512+ if ((cu == cu))
516513 then if (isDefined(getString(au(aa))))
517514 then throw((("Pool address " + aa) + " already registered."))
518515 else {
519- let cO = bR(bE, 1)
520- let cP = cO._1
521- let cQ = bR(bF, if (cO._3)
516+ let cN = bQ(bD, 1)
517+ let cO = cN._1
518+ let cP = bQ(bE, if (cN._3)
522519 then 2
523520 else 1)
524- let cR = cQ._1
525- let cS = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
526- let cT = getBinaryValue(M())
527- let cU = ce(bE, bF)
528- if (cU)
529- then throw((((("Pool " + bE) + "/") + bF) + " has already been activated."))
521+ let cQ = cP._1
522+ let cR = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
523+ let cS = getBinaryValue(M())
524+ let cT = cd(bD, bE)
525+ if (cT)
526+ then throw((((("Pool " + bD) + "/") + bE) + " has already been activated."))
530527 else {
531- let cV = value(getString(this, ah(toString(cP), toString(cR))))
528+ let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529+ let cV = if ((bD == "WAVES"))
530+ then j
531+ else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532532 let cW = if ((bE == "WAVES"))
533533 then j
534534 else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
535- let cX = if ((bF == "WAVES"))
536- then j
537- else pow(10, 0, value(assetInfo(fromBase58String(bF))).decimals, 0, 0, DOWN)
538- let cY = Issue(cK, cL, 1, 8, true)
539- let bD = calculateAssetId(cY)
540- let cZ = toBase58String(bD)
541- let da = invoke(addressFromStringValue(aa), "activate", [bE, bF], nil)
542- if ((da == da))
543- then if ((da != "success"))
535+ let cX = Issue(cJ, cK, 1, 8, true)
536+ let bC = calculateAssetId(cX)
537+ let cY = toBase58String(bC)
538+ let cZ = invoke(addressFromStringValue(aa), "activate", [bD, bE], nil)
539+ if ((cZ == cZ))
540+ then if ((cZ != "success"))
544541 then throw("Pool initialisation error happened.")
545542 else {
546- let cA = addressFromStringValue(aH(T()))
547- let db = invoke(cA, "createOrUpdate", [cZ, cK, false], nil)
548- if ((db == db))
543+ let cz = addressFromStringValue(aG(T()))
544+ let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545+ if ((da == da))
549546 then {
550- let dc = invoke(cA, "addLabel", [cZ, g], nil)
551- if ((dc == dc))
547+ let db = invoke(cz, "addLabel", [cY, g], nil)
548+ if ((db == db))
552549 then {
553- let dd = invoke(cA, "setLogo", [cZ, cN], nil)
554- if ((dd == dd))
550+ let dc = invoke(cz, "setLogo", [cY, cM], nil)
551+ if ((dc == dc))
555552 then {
556- let de = invoke(cA, "addAssetsLink", [bE, bF, cZ], nil)
557- if ((de == de))
553+ let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554+ if ((dd == dd))
558555 then {
559- let df = invoke(cA, "increaseAssetPoolsNumber", [bE], nil)
560- if ((df == df))
561- then $Tuple2(((cO._2 ++ cQ._2) ++ [cY, Burn(bD, 1), StringEntry(ah(toString(cP), toString(cR)), bB(aa, toString(m), cZ, bE, bF, cW, cX, cP, cR, j, bL)), StringEntry(ao(cZ), bM(cP, cR)), StringEntry(aq(toString(cP), toString(cR)), ("%s__" + cZ)), StringEntry(au(aa), bM(cP, cR)), StringEntry(aw(cP, cR), aa), StringEntry(ay(cZ), aa), StringEntry(ax(aa), cZ), IntegerEntry(Z(aa), cM), IntegerEntry(at(aa), h)]), cZ)
556+ let de = invoke(cz, "increaseAssetPoolsNumber", [bD], nil)
557+ if ((de == de))
558+ then $Tuple2(((cN._2 ++ cP._2) ++ [cX, Burn(bC, 1), StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(m), cY, bD, bE, cV, cW, cO, cQ, j, bK)), StringEntry(ao(cY), bL(cO, cQ)), StringEntry(aq(toString(cO), toString(cQ)), ("%s__" + cY)), StringEntry(au(aa), bL(cO, cQ)), StringEntry(aw(cO, cQ), aa), StringEntry(ay(cY), aa), StringEntry(ax(aa), cY), IntegerEntry(Z(aa), cL), IntegerEntry(at(aa), h)]), cY)
562559 else throw("Strict value is not equal to itself.")
563560 }
564561 else throw("Strict value is not equal to itself.")
577574
578575
579576
580-@Callable(bl)
581-func managePool (aa,dg) = {
582- let cv = bm(bl)
583- if ((cv == cv))
577+@Callable(bk)
578+func managePool (aa,df) = {
579+ let cu = bl(bk)
580+ if ((cu == cu))
584581 then {
585- let dh = bP(aa)
586- let bC = dh[u]
587- let cZ = dh[v]
588- let bE = dh[w]
589- let bF = dh[x]
590- let cW = parseIntValue(dh[y])
591- let cX = parseIntValue(dh[z])
592- let cP = parseIntValue(dh[A])
593- let cR = parseIntValue(dh[B])
594- let di = parseIntValue(dh[C])
595- let bL = dh[D]
596-[StringEntry(ah(toString(cP), toString(cR)), bB(aa, toString(dg), cZ, bE, bF, cW, cX, cP, cR, di, bL))]
582+ let dg = bO(aa)
583+ let bB = dg[u]
584+ let cY = dg[v]
585+ let bD = dg[w]
586+ let bE = dg[x]
587+ let cV = parseIntValue(dg[y])
588+ let cW = parseIntValue(dg[z])
589+ let cO = parseIntValue(dg[A])
590+ let cQ = parseIntValue(dg[B])
591+ let dh = parseIntValue(dg[C])
592+ let bK = dg[D]
593+[StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(df), cY, bD, bE, cV, cW, cO, cQ, dh, bK))]
597594 }
598595 else throw("Strict value is not equal to itself.")
599596 }
600597
601598
602599
603-@Callable(bl)
604-func emit (dj) = {
605- let dk = bl.caller
606- let dl = bl.originCaller
607- let dm = valueOrErrorMessage(getString(ax(toString(dk))), "Invalid LP address called me.")
608- let dn = fromBase58String(dm)
609- let cz = split(valueOrElse(getString(P()), l), k)
610- let cy = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
611- if ((0 >= dj))
600+@Callable(bk)
601+func emit (di) = {
602+ let dj = bk.caller
603+ let dk = bk.originCaller
604+ let dl = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
605+ let dm = fromBase58String(dl)
606+ let cy = split(valueOrElse(getString(P()), l), k)
607+ let cx = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
608+ if ((0 >= di))
612609 then nil
613- else if (containsElement(cz, toString(dk)))
614- then $Tuple2(nil, cy)
615- else $Tuple2([Reissue(dn, dj, true), ScriptTransfer(bl.caller, dj, dn)], "success")
610+ else if (containsElement(cy, toString(dj)))
611+ then $Tuple2(nil, cx)
612+ else $Tuple2([Reissue(dm, di, true), ScriptTransfer(bk.caller, di, dm)], "success")
616613 }
617614
618615
619616
620-@Callable(bl)
621-func burn (do) = {
622- let dk = bl.caller
623- let dl = bl.originCaller
624- let dp = value(bl.payments[0])
625- let dq = value(dp.amount)
626- let dr = toBase58String(value(dp.assetId))
627- let ds = valueOrErrorMessage(getString(ax(toString(dk))), "Invalid LP address called me.")
628- if ((dr != ds))
617+@Callable(bk)
618+func burn (dn) = {
619+ let dj = bk.caller
620+ let dk = bk.originCaller
621+ let do = value(bk.payments[0])
622+ let dp = value(do.amount)
623+ let dq = toBase58String(value(do.assetId))
624+ let dr = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
625+ if ((dq != dr))
629626 then throw("Invalid asset passed.")
630- else if ((do != dq))
627+ else if ((dn != dp))
631628 then throw("Invalid amount passed.")
632629 else {
633- let dn = fromBase58String(ds)
634- $Tuple2([Burn(dn, do)], "success")
630+ let dm = fromBase58String(dr)
631+ $Tuple2([Burn(dm, dn)], "success")
635632 }
636633 }
637634
638635
639636
640-@Callable(bl)
641-func modifyWeight (bD,dt) = {
642- let cv = if ((toBase58String(bl.caller.bytes) == valueOrElse(getString(this, U()), "")))
637+@Callable(bk)
638+func modifyWeight (bC,ds) = {
639+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
643640 then true
644- else bm(bl)
645- if ((cv == cv))
641+ else bl(bk)
642+ if ((cu == cu))
646643 then {
647- let av = aH(ay(bD))
648- let du = Z(av)
649- let dv = Z(f)
650- let dw = valueOrElse(getInteger(dv), 0)
651- let cM = valueOrElse(getInteger(du), 0)
652- let dx = dt
653- let aZ = split(aH(K()), k)
654- let cr = bb(aZ)
655- let dy = invoke(cr, "onModifyWeight", [bD, av], nil)
656- if ((dy == dy))
644+ let av = aG(ay(bC))
645+ let dt = Z(av)
646+ let du = Z(f)
647+ let dv = valueOrElse(getInteger(du), 0)
648+ let cL = valueOrElse(getInteger(dt), 0)
649+ let dw = ds
650+ let aY = split(aG(K()), k)
651+ let cq = ba(aY)
652+ let dx = invoke(cq, "onModifyWeight", [bC, av], nil)
653+ if ((dx == dx))
657654 then {
658- let dz = if ((dw == 0))
655+ let dy = if ((dv == 0))
659656 then nil
660- else [IntegerEntry(dv, 0)]
661- let dA = ab(av, 0)
662- let dB = getInteger(dA)
663- let dC = if ((dB == unit))
657+ else [IntegerEntry(du, 0)]
658+ let dz = ab(av, 0)
659+ let dA = getInteger(dz)
660+ let dB = if ((dA == unit))
664661 then nil
665- else [DeleteEntry(dA)]
666- (([IntegerEntry(du, dx)] ++ dz) ++ dC)
662+ else [DeleteEntry(dz)]
663+ (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
667664 }
668665 else throw("Strict value is not equal to itself.")
669666 }
672669
673670
674671
675-@Callable(bl)
676-func modifyWeights (dD,dE,dF,dG) = {
677- let cv = bm(bl)
678- if ((cv == cv))
672+@Callable(bk)
673+func modifyWeights (dC,dD,dE,dF) = {
674+ let cu = bl(bk)
675+ if ((cu == cu))
679676 then {
677+ let dG = ((5 * e) / 100)
680678 let dH = ((5 * e) / 100)
681679 let dI = ((5 * e) / 100)
682- let dJ = ((5 * e) / 100)
683- let aZ = split(aH(K()), k)
684- let dK = bb(aZ)
685- let dL = bc(aZ)
680+ let aY = split(aG(K()), k)
681+ let dJ = ba(aY)
682+ let dK = bb(aY)
683+ let dL = Z(dC)
686684 let dM = Z(dD)
687685 let dN = Z(dE)
688686 let dO = Z(dF)
689- let dP = Z(dG)
690- let dQ = aK(dM)
691- let dR = aK(dN)
692- let dS = (dQ - dJ)
693- let dT = (dR - dJ)
694- if ((0 >= dS))
695- then throw(("invalid btcWeightNew: " + toString(dS)))
696- else if ((0 >= dT))
697- then throw(("invalid ethWeightNew: " + toString(dT)))
687+ let dP = aJ(dL)
688+ let dQ = aJ(dM)
689+ let dR = (dP - dI)
690+ let dS = (dQ - dI)
691+ if ((0 >= dR))
692+ then throw(("invalid btcWeightNew: " + toString(dR)))
693+ else if ((0 >= dS))
694+ then throw(("invalid ethWeightNew: " + toString(dS)))
698695 else {
699- let dU = aH(ax(dD))
700- let dV = aH(ax(dE))
701- let dW = aH(ax(dF))
702- let dX = aH(ax(dG))
703- let dY = invoke(dK, "onModifyWeight", [dU, dD], nil)
704- if ((dY == dY))
696+ let dT = aG(ax(dC))
697+ let dU = aG(ax(dD))
698+ let dV = aG(ax(dE))
699+ let dW = aG(ax(dF))
700+ let dX = invoke(dJ, "onModifyWeight", [dT, dC], nil)
701+ if ((dX == dX))
705702 then {
706- let dZ = invoke(dK, "onModifyWeight", [dV, dE], nil)
707- if ((dZ == dZ))
703+ let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704+ if ((dY == dY))
708705 then {
709- let ea = invoke(dK, "onModifyWeight", [dW, dF], nil)
710- if ((ea == ea))
706+ let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707+ if ((dZ == dZ))
711708 then {
712- let eb = invoke(dK, "onModifyWeight", [dX, dG], nil)
713- if ((eb == eb))
714- then [IntegerEntry(dM, dS), IntegerEntry(dN, dT), IntegerEntry(dO, dH), IntegerEntry(dP, dI), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dR), IntegerEntry(ab(dF, 0), dH), IntegerEntry(ab(dG, 0), dI)]
709+ let ea = invoke(dJ, "onModifyWeight", [dW, dF], nil)
710+ if ((ea == ea))
711+ then [IntegerEntry(dL, dR), IntegerEntry(dM, dS), IntegerEntry(dN, dG), IntegerEntry(dO, dH), IntegerEntry(ab(dC, 0), dP), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dG), IntegerEntry(ab(dF, 0), dH)]
715712 else throw("Strict value is not equal to itself.")
716713 }
717714 else throw("Strict value is not equal to itself.")
726723
727724
728725
729-@Callable(bl)
726+@Callable(bk)
730727 func checkWxEmissionPoolLabel (aA,aB) = {
731- let ec = {
732- let be = getBoolean(az(aA, aB))
733- if ($isInstanceOf(be, "Boolean"))
728+ let eb = {
729+ let bd = getBoolean(az(aA, aB))
730+ if ($isInstanceOf(bd, "Boolean"))
734731 then {
735- let ed = be
736- ed
732+ let ec = bd
733+ ec
737734 }
738735 else false
739736 }
740- $Tuple2(nil, ec)
737+ $Tuple2(nil, eb)
741738 }
742739
743740
744741
745-@Callable(bl)
742+@Callable(bk)
746743 func setWxEmissionPoolLabel (aA,aB) = {
747- let cv = bY(bl)
748- if ((cv == cv))
744+ let cu = bX(bk)
745+ if ((cu == cu))
749746 then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
750747 else throw("Strict value is not equal to itself.")
751748 }
752749
753750
754751
755-@Callable(bl)
752+@Callable(bk)
756753 func deleteWxEmissionPoolLabel (aA,aB) = {
757- let cv = if (bk(bl))
754+ let cu = if (bj(bk))
758755 then true
759- else bY(bl)
760- if ((cv == cv))
756+ else bX(bk)
757+ if ((cu == cu))
761758 then $Tuple2([DeleteEntry(az(aA, aB))], unit)
762759 else throw("Strict value is not equal to itself.")
763760 }
764761
765762
766763
767-@Callable(bl)
768-func onVerificationLoss (ee) = {
769- let cv = if ((toBase58String(bl.caller.bytes) == valueOrElse(getString(this, T()), "")))
764+@Callable(bk)
765+func onVerificationLoss (ed) = {
766+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
770767 then true
771- else bm(bl)
772- if ((cv == cv))
768+ else bl(bk)
769+ if ((cu == cu))
773770 then {
774- let cC = bd()
775- let ef = if ((size(cC) > 0))
771+ let cB = bc()
772+ let ee = if ((size(cB) > 0))
776773 then true
777774 else throw("invalid price assets")
778- if ((ef == ef))
775+ if ((ee == ee))
779776 then {
780- func eg (eh,ei) = {
781- let ej = invoke(this, "deleteWxEmissionPoolLabel", [ee, ei], nil)
782- if ((ej == ej))
777+ func ef (eg,eh) = {
778+ let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779+ if ((ei == ei))
783780 then unit
784781 else throw("Strict value is not equal to itself.")
785782 }
786783
787- let ek = {
788- let el = cC
789- let em = size(el)
790- let en = unit
791- func eo (ep,eq) = if ((eq >= em))
792- then ep
793- else eg(ep, el[eq])
784+ let ej = {
785+ let ek = cB
786+ let el = size(ek)
787+ let em = unit
788+ func en (eo,ep) = if ((ep >= el))
789+ then eo
790+ else ef(eo, ek[ep])
794791
795- func er (ep,eq) = if ((eq >= em))
796- then ep
792+ func eq (eo,ep) = if ((ep >= el))
793+ then eo
797794 else throw("List size exceeds 2")
798795
799- er(eo(eo(en, 0), 1), 2)
796+ eq(en(en(em, 0), 1), 2)
800797 }
801- if ((ek == ek))
798+ if ((ej == ej))
802799 then $Tuple2(nil, unit)
803800 else throw("Strict value is not equal to itself.")
804801 }
809806
810807
811808
812-@Callable(bl)
809+@Callable(bk)
813810 func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
814- let dh = bP(aa)
815- let al = $Tuple2(parseIntValue(dh[A]), parseIntValue(dh[B]))
816- let es = valueOrElse(getBoolean(ak(al)), false)
817- let et = valueOrElse(getBoolean(an()), false)
818- $Tuple2(nil, if (et)
811+ let dg = bO(aa)
812+ let al = $Tuple2(parseIntValue(dg[A]), parseIntValue(dg[B]))
813+ let er = valueOrElse(getBoolean(ak(al)), false)
814+ let es = valueOrElse(getBoolean(an()), false)
815+ $Tuple2(nil, if (es)
819816 then true
820- else es)
817+ else er)
821818 }
822819
823820
824821
825-@Callable(bl)
822+@Callable(bk)
826823 func getInFeeREADONLY (aa) = {
827- let eu = cb(aC(aa), aD(), 0)
828- $Tuple2(nil, eu)
824+ let et = ca(aC(aa), aD(), 0)
825+ $Tuple2(nil, et)
829826 }
830827
831828
832829
833-@Callable(bl)
830+@Callable(bk)
834831 func getOutFeeREADONLY (aa) = {
835- let eu = cb(aE(aa), aF(), fraction(10, b, 10000))
836- $Tuple2(nil, eu)
832+ let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833+ $Tuple2(nil, et)
837834 }
838835
839836
840837
841-@Callable(bl)
842-func poolInfoREADONLY (ev,ew) = {
838+@Callable(bk)
839+func poolInfoREADONLY (eu,ev) = {
840+ let ew = getInteger(this, af(eu))
843841 let ex = getInteger(this, af(ev))
844- let ey = getInteger(this, af(ew))
845- let ez = getString(this, aw(value(ex), value(ey)))
846- let eA = getString(this, ax(value(ez)))
847- let cU = if (if (isDefined(ex))
842+ let ey = getString(this, aw(value(ew), value(ex)))
843+ let ez = getString(this, ax(value(ey)))
844+ let cT = if (if (isDefined(ew))
845+ then isDefined(ex)
846+ else false)
848847 then isDefined(ey)
849- else false)
850- then isDefined(ez)
851848 else false
852- let eB = if (cU)
853- then $Tuple2(addressFromStringValue(value(ez)), aL(value(eA)))
849+ let eA = if (cT)
850+ then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
854851 else unit
855- $Tuple2(nil, eB)
852+ $Tuple2(nil, eA)
856853 }
857854
858855
859856
860-@Callable(bl)
857+@Callable(bk)
861858 func getPoolStatusREADONLY (aa) = {
862- let bQ = split(aH(au(aa)), k)
863- let ai = bQ[1]
864- let aj = bQ[2]
865- let ch = split(aH(ah(ai, aj)), k)
866- $Tuple2(nil, parseIntValue(ch[u]))
859+ let bP = split(aG(au(aa)), k)
860+ let ai = bP[1]
861+ let aj = bP[2]
862+ let cg = split(aG(ah(ai, aj)), k)
863+ $Tuple2(nil, parseIntValue(cg[u]))
867864 }
868865
869866
870867
871-@Callable(bl)
868+@Callable(bk)
872869 func getPoolConfigREADONLY (aa) = {
873- let bQ = split(aH(au(aa)), k)
874- let ai = bQ[1]
875- let aj = bQ[2]
876- let ch = split(aH(ah(ai, aj)), k)
877- $Tuple2(nil, ch)
870+ let bP = split(aG(au(aa)), k)
871+ let ai = bP[1]
872+ let aj = bP[2]
873+ let cg = split(aG(ah(ai, aj)), k)
874+ $Tuple2(nil, cg)
878875 }
879876
880877
881878
882-@Callable(bl)
883-func getPoolConfigByLpAssetId (cZ) = {
884- let bQ = split(aH(ao(cZ)), k)
885- let ai = bQ[1]
886- let aj = bQ[2]
887- let ch = split(aH(ah(ai, aj)), k)
888- $Tuple2(nil, ch)
879+@Callable(bk)
880+func getPoolConfigByLpAssetIdREADONLY (cY) = {
881+ let bP = split(aG(ao(cY)), k)
882+ let ai = bP[1]
883+ let aj = bP[2]
884+ let cg = split(aG(ah(ai, aj)), k)
885+ $Tuple2(nil, cg)
889886 }
890887
891888
892889
893-@Callable(bl)
894-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, ce(aA, aB))
890+@Callable(bk)
891+func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
895892
896893
897-
898-@Callable(bl)
899-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false))
900-
901-
902-@Verifier(eC)
903-func eD () = {
904- let eE = {
905- let be = bg()
906- if ($isInstanceOf(be, "ByteVector"))
894+@Verifier(eB)
895+func eC () = {
896+ let eD = {
897+ let bd = bf()
898+ if ($isInstanceOf(bd, "ByteVector"))
907899 then {
908- let bn = be
909- bn
900+ let bm = bd
901+ bm
910902 }
911- else if ($isInstanceOf(be, "Unit"))
912- then eC.senderPublicKey
903+ else if ($isInstanceOf(bd, "Unit"))
904+ then eB.senderPublicKey
913905 else throw("Match error")
914906 }
915- sigVerify(eC.bodyBytes, eC.proofs[0], eE)
907+ sigVerify(eB.bodyBytes, eB.proofs[0], eD)
916908 }
917909
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 = "WAVES"
2121
2222 let j = ((100 * 1000) * 1000)
2323
2424 let k = "__"
2525
2626 let l = ""
2727
2828 let m = 1
2929
3030 let n = 2
3131
3232 let o = 3
3333
3434 let p = 4
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 1
4343
4444 let u = 2
4545
4646 let v = 3
4747
4848 let w = 4
4949
5050 let x = 5
5151
5252 let y = 6
5353
5454 let z = 7
5555
5656 let A = 8
5757
5858 let B = 9
5959
6060 let C = 10
6161
6262 let D = 11
6363
6464 let E = "WX_EMISSION"
6565
6666 let F = [E]
6767
6868 func G () = "%s__allowedLpScriptHash"
6969
7070
7171 func H () = "%s__allowedLpStableScriptHash"
7272
7373
7474 func I () = "%s__allowedLpStableAddonScriptHash"
7575
7676
7777 func J () = "%s__swapContract"
7878
7979
8080 func K () = "%s__factoryConfig"
8181
8282
8383 func L () = "%s__lpTokensList"
8484
8585
8686 func M () = "%s%s__pool__scriptHash"
8787
8888
8989 func N () = "%s%s__matcher__publicKey"
9090
9191
9292 func O () = "%s__legacyFactoryContract"
9393
9494
9595 func P () = "%s__legacyPools"
9696
9797
9898 func Q () = "%s__managerPublicKey"
9999
100100
101101 func R () = "%s__pendingManagerPublicKey"
102102
103103
104104 func S () = "%s__adminPubKeys"
105105
106106
107107 func T () = "%s__assetsStoreContract"
108108
109109
110110 func U () = "%s__votingEmissionContract"
111111
112112
113113 func V () = makeString(["%s", "priceAssets"], k)
114114
115115
116116 func W () = "%s__priceDecimals"
117117
118118
119119 func X () = "%s__shutdown"
120120
121121
122122 func Y () = "%s__nextInternalAssetId"
123123
124124
125125 func Z (aa) = ("%s%s__poolWeight__" + aa)
126126
127127
128128 func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129129
130130
131131 func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132132
133133
134134 func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135135
136136
137137 func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138138
139139
140140 func ak (al) = {
141141 let am = al
142142 let ai = am._1
143143 let aj = am._2
144144 makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
145145 }
146146
147147
148148 func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
149149
150150
151151 func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
152152
153153
154154 func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
155155
156156
157157 func at (aa) = ("%s%s__spread__" + aa)
158158
159159
160160 func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
161161
162162
163163 func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
164164
165165
166166 func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
167167
168168
169169 func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
170170
171171
172172 func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
173173
174174
175175 func aC (aa) = ("%s%s__inFee__" + aa)
176176
177177
178178 func aD () = "%s__inFeeDefault"
179179
180180
181181 func aE (aa) = ("%s%s__outFee__" + aa)
182182
183183
184184 func aF () = "%s__outFeeDefault"
185185
186186
187-func aG (aa) = ("%s%s__skipOrderValidation__" + aa)
187+func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
188188
189189
190-func aH (aI) = valueOrErrorMessage(getString(this, aI), ("No data for this.key=" + aI))
190+func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
191191
192192
193-func aJ (aI) = valueOrErrorMessage(getBoolean(this, aI), ("No data for this.key=" + aI))
193+func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
194194
195195
196-func aK (aI) = valueOrErrorMessage(getInteger(this, aI), ("No data for this.key=" + aI))
196+func aK (aL) = if ((aL == i))
197+ then unit
198+ else fromBase58String(aL)
197199
198200
199-func aL (aM) = if ((aM == i))
200- then unit
201- else fromBase58String(aM)
201+let aM = 1
202+
203+let aN = 2
204+
205+let aO = 3
206+
207+let aP = 4
208+
209+let aQ = 5
210+
211+let aR = 6
212+
213+let aS = 7
214+
215+let aT = 8
216+
217+let aU = 9
218+
219+let aV = 10
220+
221+let aW = 11
222+
223+func aX (aY) = addressFromStringValue(aY[aN])
202224
203225
204-let aN = 1
205-
206-let aO = 2
207-
208-let aP = 3
209-
210-let aQ = 4
211-
212-let aR = 5
213-
214-let aS = 6
215-
216-let aT = 7
217-
218-let aU = 8
219-
220-let aV = 9
221-
222-let aW = 10
223-
224-let aX = 11
225-
226-func aY (aZ) = addressFromStringValue(aZ[aO])
226+func aZ (aY) = addressFromStringValue(aY[aQ])
227227
228228
229-func ba (aZ) = addressFromStringValue(aZ[aR])
229+func ba (aY) = addressFromStringValue(aY[aM])
230230
231231
232-func bb (aZ) = addressFromStringValue(aZ[aN])
232+func bb (aY) = addressFromStringValue(aY[aV])
233233
234234
235-func bc (aZ) = addressFromStringValue(aZ[aW])
236-
237-
238-func bd () = {
239- let be = getString(V())
240- if ($isInstanceOf(be, "String"))
235+func bc () = {
236+ let bd = getString(V())
237+ if ($isInstanceOf(bd, "String"))
241238 then {
242- let bf = be
243- if ((size(bf) == 0))
239+ let be = bd
240+ if ((size(be) == 0))
244241 then nil
245- else split(bf, k)
242+ else split(be, k)
246243 }
247244 else nil
248245 }
249246
250247
251-func bg () = {
252- let be = getString(Q())
253- if ($isInstanceOf(be, "String"))
248+func bf () = {
249+ let bd = getString(Q())
250+ if ($isInstanceOf(bd, "String"))
254251 then {
255- let bf = be
256- fromBase58String(bf)
252+ let be = bd
253+ fromBase58String(be)
257254 }
258- else if ($isInstanceOf(be, "Unit"))
255+ else if ($isInstanceOf(bd, "Unit"))
259256 then unit
260257 else throw("Match error")
261258 }
262259
263260
264-func bh () = {
265- let be = getString(R())
266- if ($isInstanceOf(be, "String"))
261+func bg () = {
262+ let bd = getString(R())
263+ if ($isInstanceOf(bd, "String"))
267264 then {
268- let bf = be
269- fromBase58String(bf)
265+ let be = bd
266+ fromBase58String(be)
270267 }
271- else if ($isInstanceOf(be, "Unit"))
268+ else if ($isInstanceOf(bd, "Unit"))
272269 then unit
273270 else throw("Match error")
274271 }
275272
276273
277-let bi = throw("Permission denied")
274+let bh = throw("Permission denied")
278275
279-let bj = throw("Test error here")
276+let bi = throw("Test error here")
280277
281-func bk (bl) = if ((bl.caller == this))
278+func bj (bk) = if ((bk.caller == this))
282279 then true
283- else bi
280+ else bh
284281
285282
286-func bm (bl) = {
287- let be = bg()
288- if ($isInstanceOf(be, "ByteVector"))
283+func bl (bk) = {
284+ let bd = bf()
285+ if ($isInstanceOf(bd, "ByteVector"))
289286 then {
290- let bn = be
291- if ((bl.callerPublicKey == bn))
287+ let bm = bd
288+ if ((bk.callerPublicKey == bm))
292289 then true
293- else bi
290+ else bh
294291 }
295- else if ($isInstanceOf(be, "Unit"))
296- then bk(bl)
292+ else if ($isInstanceOf(bd, "Unit"))
293+ then bj(bk)
297294 else throw("Match error")
298295 }
299296
300297
301-func bo (bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz], k)
298+func bn (bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by], k)
302299
303300
304-func bA (bp,bq,br,bs,bt,bu,bv) = makeString(["%s%s%s%s%s%s", bp, bq, br, bs, bt, bu, bv], k)
301+func bz (bo,bp,bq,br,bs,bt,bu) = makeString(["%s%s%s%s%s%s", bo, bp, bq, br, bs, bt, bu], k)
305302
306303
307-func bB (aa,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bC, bD, bE, bF, toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), bL], k)
304+func bA (aa,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bB, bC, bD, bE, toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), bK], k)
308305
309306
310-func bM (bN,bO) = makeString(["%d%d", toString(bN), toString(bO)], k)
307+func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
311308
312309
313-func bP (aa) = {
314- let bQ = split(aH(au(aa)), k)
315- let ai = bQ[1]
316- let aj = bQ[2]
317- split(aH(ah(ai, aj)), k)
310+func bO (aa) = {
311+ let bP = split(aG(au(aa)), k)
312+ let ai = bP[1]
313+ let aj = bP[2]
314+ split(aG(ah(ai, aj)), k)
318315 }
319316
320317
321-func bR (bS,bT) = {
322- let bU = valueOrElse(getInteger(this, af(bS)), 0)
323- let bV = valueOrElse(getInteger(this, Y()), 0)
324- let bW = if ((bU == 0))
318+func bQ (bR,bS) = {
319+ let bT = valueOrElse(getInteger(this, af(bR)), 0)
320+ let bU = valueOrElse(getInteger(this, Y()), 0)
321+ let bV = if ((bT == 0))
325322 then {
326- let bX = (bV + bT)
327- $Tuple3(bX, [IntegerEntry(Y(), bX), IntegerEntry(af(bS), bX), StringEntry(ad(bX), bS)], true)
323+ let bW = (bU + bS)
324+ $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
328325 }
329- else $Tuple3(bU, nil, false)
330- bW
326+ else $Tuple3(bT, nil, false)
327+ bV
331328 }
332329
333330
334-func bY (bl) = {
335- let bZ = split(valueOrElse(getString(S()), l), k)
336- if (containsElement(bZ, toBase58String(bl.callerPublicKey)))
331+func bX (bk) = {
332+ let bY = split(valueOrElse(getString(S()), l), k)
333+ if (containsElement(bY, toBase58String(bk.callerPublicKey)))
337334 then true
338335 else {
339- let ca = bm(bl)
340- if ((ca == ca))
336+ let bZ = bl(bk)
337+ if ((bZ == bZ))
341338 then true
342339 else throw("Strict value is not equal to itself.")
343340 }
344341 }
345342
346343
347-func cb (aI,cc,cd) = valueOrElse(getInteger(this, aI), valueOrElse(getInteger(this, cc), cd))
344+func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
348345
349346
350-func ce (aA,aB) = {
347+func cd (aA,aB) = {
351348 let ai = getInteger(af(aA))
352349 let aj = getInteger(af(aB))
353350 if (if ((ai == unit))
354351 then true
355352 else (aj == unit))
356353 then false
357354 else {
358- let cf = toString(value(ai))
359- let cg = toString(value(aj))
360- let ch = getString(ah(cf, cg))
361- let ci = getString(ah(cg, cf))
362- let cj = if ((ch != unit))
355+ let ce = toString(value(ai))
356+ let cf = toString(value(aj))
357+ let cg = getString(ah(ce, cf))
358+ let ch = getString(ah(cf, ce))
359+ let ci = if ((cg != unit))
363360 then true
364- else (ci != unit)
365- cj
361+ else (ch != unit)
362+ ci
366363 }
367364 }
368365
369366
370-@Callable(bl)
371-func getSwapContractREADONLY () = $Tuple2(nil, aH(J()))
367+@Callable(bk)
368+func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
372369
373370
374371
375-@Callable(bl)
376-func getLpAssetFromPoolAssetsREADONLY (ck,cl) = if (if ((ck == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
377- then (cl == "WAVES")
372+@Callable(bk)
373+func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374+ then (ck == "WAVES")
378375 else false)
379376 then $Tuple2(nil, unit)
380377 else {
378+ let cl = value(getInteger(this, af(cj)))
381379 let cm = value(getInteger(this, af(ck)))
382- let cn = value(getInteger(this, af(cl)))
383- let co = getString(this, aq(toString(cm), toString(cn)))
384- let cp = if ((co == unit))
380+ let cn = getString(this, aq(toString(cl), toString(cm)))
381+ let co = if ((cn == unit))
385382 then unit
386- else drop(value(co), 4)
387- $Tuple2(nil, cp)
383+ else drop(value(cn), 4)
384+ $Tuple2(nil, co)
388385 }
389386
390387
391388
392-@Callable(bl)
393-func getPoolAddressFromLpAssetREADONLY (cq) = $Tuple2(nil, valueOrElse(getString(this, ay(cq)), ""))
389+@Callable(bk)
390+func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
394391
395392
396393
397-@Callable(bl)
398-func constructor (cr,cs,br,bs,bt,bu,ct,cu) = {
399- let cv = bm(bl)
400- if ((cv == cv))
401- then [StringEntry(K(), bA(cr, cs, br, bs, bt, bu, ct)), IntegerEntry(W(), cu)]
394+@Callable(bk)
395+func constructor (cq,cr,bq,br,bs,bt,cs,ct) = {
396+ let cu = bl(bk)
397+ if ((cu == cu))
398+ then [StringEntry(K(), bz(cq, cr, bq, br, bs, bt, cs)), IntegerEntry(W(), ct)]
402399 else throw("Strict value is not equal to itself.")
403400 }
404401
405402
406403
407-@Callable(bl)
408-func constructorV2 (cw) = {
409- let cv = bm(bl)
410- if ((cv == cv))
404+@Callable(bk)
405+func constructorV2 (cv) = {
406+ let cu = bl(bk)
407+ if ((cu == cu))
411408 then {
412- let cx = addressFromPublicKey(fromBase58String(cw))
413- if ((cx == cx))
414- then [StringEntry(N(), cw)]
409+ let cw = addressFromPublicKey(fromBase58String(cv))
410+ if ((cw == cw))
411+ then [StringEntry(N(), cv)]
415412 else throw("Strict value is not equal to itself.")
416413 }
417414 else throw("Strict value is not equal to itself.")
418415 }
419416
420417
421418
422-@Callable(bl)
423-func constructorV3 (bw,bx,by,bz) = {
424- let cv = bm(bl)
425- if ((cv == cv))
419+@Callable(bk)
420+func constructorV3 (bv,bw,bx,by) = {
421+ let cu = bl(bk)
422+ if ((cu == cu))
426423 then {
427- let aZ = split(aH(K()), k)
428-[StringEntry(K(), bo(aZ[1], aZ[2], aZ[3], aZ[4], aZ[5], aZ[6], aZ[7], bw, bx, by, bz))]
424+ let aY = split(aG(K()), k)
425+[StringEntry(K(), bn(aY[1], aY[2], aY[3], aY[4], aY[5], aY[6], aY[7], bv, bw, bx, by))]
429426 }
430427 else throw("Strict value is not equal to itself.")
431428 }
432429
433430
434431
435-@Callable(bl)
436-func constructorV4 (cy,cz) = {
437- let cv = bm(bl)
438- if ((cv == cv))
439- then [StringEntry(O(), cy), StringEntry(P(), makeString(cz, k))]
432+@Callable(bk)
433+func constructorV4 (cx,cy) = {
434+ let cu = bl(bk)
435+ if ((cu == cu))
436+ then [StringEntry(O(), cx), StringEntry(P(), makeString(cy, k))]
440437 else throw("Strict value is not equal to itself.")
441438 }
442439
443440
444441
445-@Callable(bl)
446-func constructorV5 (cA) = {
447- let cv = bm(bl)
448- if ((cv == cv))
449- then [StringEntry(T(), cA)]
442+@Callable(bk)
443+func constructorV5 (cz) = {
444+ let cu = bl(bk)
445+ if ((cu == cu))
446+ then [StringEntry(T(), cz)]
450447 else throw("Strict value is not equal to itself.")
451448 }
452449
453450
454451
455-@Callable(bl)
456-func constructorV6 (cB,cC) = {
457- let cD = [bm(bl), if ((addressFromString(cB) != unit))
452+@Callable(bk)
453+func constructorV6 (cA,cB) = {
454+ let cC = [bl(bk), if ((addressFromString(cA) != unit))
458455 then true
459456 else "invalid voting emission contract address"]
460- if ((cD == cD))
461- then [StringEntry(U(), cB), StringEntry(V(), makeString(cC, k))]
457+ if ((cC == cC))
458+ then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
462459 else throw("Strict value is not equal to itself.")
463460 }
464461
465462
466463
467-@Callable(bl)
468-func setManager (cE) = {
469- let cv = bm(bl)
470- if ((cv == cv))
464+@Callable(bk)
465+func setManager (cD) = {
466+ let cu = bl(bk)
467+ if ((cu == cu))
471468 then {
472- let cF = fromBase58String(cE)
473- if ((cF == cF))
474- then [StringEntry(R(), cE)]
469+ let cE = fromBase58String(cD)
470+ if ((cE == cE))
471+ then [StringEntry(R(), cD)]
475472 else throw("Strict value is not equal to itself.")
476473 }
477474 else throw("Strict value is not equal to itself.")
478475 }
479476
480477
481478
482-@Callable(bl)
479+@Callable(bk)
483480 func confirmManager () = {
484- let cG = bh()
485- let cH = if (isDefined(cG))
481+ let cF = bg()
482+ let cG = if (isDefined(cF))
486483 then true
487484 else throw("No pending manager")
488- if ((cH == cH))
485+ if ((cG == cG))
489486 then {
490- let cI = if ((bl.callerPublicKey == value(cG)))
487+ let cH = if ((bk.callerPublicKey == value(cF)))
491488 then true
492489 else throw("You are not pending manager")
493- if ((cI == cI))
494- then [StringEntry(Q(), toBase58String(value(cG))), DeleteEntry(R())]
490+ if ((cH == cH))
491+ then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
495492 else throw("Strict value is not equal to itself.")
496493 }
497494 else throw("Strict value is not equal to itself.")
498495 }
499496
500497
501498
502-@Callable(bl)
503-func setAdmins (cJ) = {
504- let cv = bm(bl)
505- if ((cv == cv))
506- then [StringEntry(S(), makeString(cJ, k))]
499+@Callable(bk)
500+func setAdmins (cI) = {
501+ let cu = bl(bk)
502+ if ((cu == cu))
503+ then [StringEntry(S(), makeString(cI, k))]
507504 else throw("Strict value is not equal to itself.")
508505 }
509506
510507
511508
512-@Callable(bl)
513-func activateNewPool (aa,bE,bF,cK,cL,cM,bL,cN) = {
514- let cv = bY(bl)
515- if ((cv == cv))
509+@Callable(bk)
510+func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511+ let cu = bX(bk)
512+ if ((cu == cu))
516513 then if (isDefined(getString(au(aa))))
517514 then throw((("Pool address " + aa) + " already registered."))
518515 else {
519- let cO = bR(bE, 1)
520- let cP = cO._1
521- let cQ = bR(bF, if (cO._3)
516+ let cN = bQ(bD, 1)
517+ let cO = cN._1
518+ let cP = bQ(bE, if (cN._3)
522519 then 2
523520 else 1)
524- let cR = cQ._1
525- let cS = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
526- let cT = getBinaryValue(M())
527- let cU = ce(bE, bF)
528- if (cU)
529- then throw((((("Pool " + bE) + "/") + bF) + " has already been activated."))
521+ let cQ = cP._1
522+ let cR = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
523+ let cS = getBinaryValue(M())
524+ let cT = cd(bD, bE)
525+ if (cT)
526+ then throw((((("Pool " + bD) + "/") + bE) + " has already been activated."))
530527 else {
531- let cV = value(getString(this, ah(toString(cP), toString(cR))))
528+ let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529+ let cV = if ((bD == "WAVES"))
530+ then j
531+ else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532532 let cW = if ((bE == "WAVES"))
533533 then j
534534 else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
535- let cX = if ((bF == "WAVES"))
536- then j
537- else pow(10, 0, value(assetInfo(fromBase58String(bF))).decimals, 0, 0, DOWN)
538- let cY = Issue(cK, cL, 1, 8, true)
539- let bD = calculateAssetId(cY)
540- let cZ = toBase58String(bD)
541- let da = invoke(addressFromStringValue(aa), "activate", [bE, bF], nil)
542- if ((da == da))
543- then if ((da != "success"))
535+ let cX = Issue(cJ, cK, 1, 8, true)
536+ let bC = calculateAssetId(cX)
537+ let cY = toBase58String(bC)
538+ let cZ = invoke(addressFromStringValue(aa), "activate", [bD, bE], nil)
539+ if ((cZ == cZ))
540+ then if ((cZ != "success"))
544541 then throw("Pool initialisation error happened.")
545542 else {
546- let cA = addressFromStringValue(aH(T()))
547- let db = invoke(cA, "createOrUpdate", [cZ, cK, false], nil)
548- if ((db == db))
543+ let cz = addressFromStringValue(aG(T()))
544+ let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545+ if ((da == da))
549546 then {
550- let dc = invoke(cA, "addLabel", [cZ, g], nil)
551- if ((dc == dc))
547+ let db = invoke(cz, "addLabel", [cY, g], nil)
548+ if ((db == db))
552549 then {
553- let dd = invoke(cA, "setLogo", [cZ, cN], nil)
554- if ((dd == dd))
550+ let dc = invoke(cz, "setLogo", [cY, cM], nil)
551+ if ((dc == dc))
555552 then {
556- let de = invoke(cA, "addAssetsLink", [bE, bF, cZ], nil)
557- if ((de == de))
553+ let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554+ if ((dd == dd))
558555 then {
559- let df = invoke(cA, "increaseAssetPoolsNumber", [bE], nil)
560- if ((df == df))
561- then $Tuple2(((cO._2 ++ cQ._2) ++ [cY, Burn(bD, 1), StringEntry(ah(toString(cP), toString(cR)), bB(aa, toString(m), cZ, bE, bF, cW, cX, cP, cR, j, bL)), StringEntry(ao(cZ), bM(cP, cR)), StringEntry(aq(toString(cP), toString(cR)), ("%s__" + cZ)), StringEntry(au(aa), bM(cP, cR)), StringEntry(aw(cP, cR), aa), StringEntry(ay(cZ), aa), StringEntry(ax(aa), cZ), IntegerEntry(Z(aa), cM), IntegerEntry(at(aa), h)]), cZ)
556+ let de = invoke(cz, "increaseAssetPoolsNumber", [bD], nil)
557+ if ((de == de))
558+ then $Tuple2(((cN._2 ++ cP._2) ++ [cX, Burn(bC, 1), StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(m), cY, bD, bE, cV, cW, cO, cQ, j, bK)), StringEntry(ao(cY), bL(cO, cQ)), StringEntry(aq(toString(cO), toString(cQ)), ("%s__" + cY)), StringEntry(au(aa), bL(cO, cQ)), StringEntry(aw(cO, cQ), aa), StringEntry(ay(cY), aa), StringEntry(ax(aa), cY), IntegerEntry(Z(aa), cL), IntegerEntry(at(aa), h)]), cY)
562559 else throw("Strict value is not equal to itself.")
563560 }
564561 else throw("Strict value is not equal to itself.")
565562 }
566563 else throw("Strict value is not equal to itself.")
567564 }
568565 else throw("Strict value is not equal to itself.")
569566 }
570567 else throw("Strict value is not equal to itself.")
571568 }
572569 else throw("Strict value is not equal to itself.")
573570 }
574571 }
575572 else throw("Strict value is not equal to itself.")
576573 }
577574
578575
579576
580-@Callable(bl)
581-func managePool (aa,dg) = {
582- let cv = bm(bl)
583- if ((cv == cv))
577+@Callable(bk)
578+func managePool (aa,df) = {
579+ let cu = bl(bk)
580+ if ((cu == cu))
584581 then {
585- let dh = bP(aa)
586- let bC = dh[u]
587- let cZ = dh[v]
588- let bE = dh[w]
589- let bF = dh[x]
590- let cW = parseIntValue(dh[y])
591- let cX = parseIntValue(dh[z])
592- let cP = parseIntValue(dh[A])
593- let cR = parseIntValue(dh[B])
594- let di = parseIntValue(dh[C])
595- let bL = dh[D]
596-[StringEntry(ah(toString(cP), toString(cR)), bB(aa, toString(dg), cZ, bE, bF, cW, cX, cP, cR, di, bL))]
582+ let dg = bO(aa)
583+ let bB = dg[u]
584+ let cY = dg[v]
585+ let bD = dg[w]
586+ let bE = dg[x]
587+ let cV = parseIntValue(dg[y])
588+ let cW = parseIntValue(dg[z])
589+ let cO = parseIntValue(dg[A])
590+ let cQ = parseIntValue(dg[B])
591+ let dh = parseIntValue(dg[C])
592+ let bK = dg[D]
593+[StringEntry(ah(toString(cO), toString(cQ)), bA(aa, toString(df), cY, bD, bE, cV, cW, cO, cQ, dh, bK))]
597594 }
598595 else throw("Strict value is not equal to itself.")
599596 }
600597
601598
602599
603-@Callable(bl)
604-func emit (dj) = {
605- let dk = bl.caller
606- let dl = bl.originCaller
607- let dm = valueOrErrorMessage(getString(ax(toString(dk))), "Invalid LP address called me.")
608- let dn = fromBase58String(dm)
609- let cz = split(valueOrElse(getString(P()), l), k)
610- let cy = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
611- if ((0 >= dj))
600+@Callable(bk)
601+func emit (di) = {
602+ let dj = bk.caller
603+ let dk = bk.originCaller
604+ let dl = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
605+ let dm = fromBase58String(dl)
606+ let cy = split(valueOrElse(getString(P()), l), k)
607+ let cx = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
608+ if ((0 >= di))
612609 then nil
613- else if (containsElement(cz, toString(dk)))
614- then $Tuple2(nil, cy)
615- else $Tuple2([Reissue(dn, dj, true), ScriptTransfer(bl.caller, dj, dn)], "success")
610+ else if (containsElement(cy, toString(dj)))
611+ then $Tuple2(nil, cx)
612+ else $Tuple2([Reissue(dm, di, true), ScriptTransfer(bk.caller, di, dm)], "success")
616613 }
617614
618615
619616
620-@Callable(bl)
621-func burn (do) = {
622- let dk = bl.caller
623- let dl = bl.originCaller
624- let dp = value(bl.payments[0])
625- let dq = value(dp.amount)
626- let dr = toBase58String(value(dp.assetId))
627- let ds = valueOrErrorMessage(getString(ax(toString(dk))), "Invalid LP address called me.")
628- if ((dr != ds))
617+@Callable(bk)
618+func burn (dn) = {
619+ let dj = bk.caller
620+ let dk = bk.originCaller
621+ let do = value(bk.payments[0])
622+ let dp = value(do.amount)
623+ let dq = toBase58String(value(do.assetId))
624+ let dr = valueOrErrorMessage(getString(ax(toString(dj))), "Invalid LP address called me.")
625+ if ((dq != dr))
629626 then throw("Invalid asset passed.")
630- else if ((do != dq))
627+ else if ((dn != dp))
631628 then throw("Invalid amount passed.")
632629 else {
633- let dn = fromBase58String(ds)
634- $Tuple2([Burn(dn, do)], "success")
630+ let dm = fromBase58String(dr)
631+ $Tuple2([Burn(dm, dn)], "success")
635632 }
636633 }
637634
638635
639636
640-@Callable(bl)
641-func modifyWeight (bD,dt) = {
642- let cv = if ((toBase58String(bl.caller.bytes) == valueOrElse(getString(this, U()), "")))
637+@Callable(bk)
638+func modifyWeight (bC,ds) = {
639+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
643640 then true
644- else bm(bl)
645- if ((cv == cv))
641+ else bl(bk)
642+ if ((cu == cu))
646643 then {
647- let av = aH(ay(bD))
648- let du = Z(av)
649- let dv = Z(f)
650- let dw = valueOrElse(getInteger(dv), 0)
651- let cM = valueOrElse(getInteger(du), 0)
652- let dx = dt
653- let aZ = split(aH(K()), k)
654- let cr = bb(aZ)
655- let dy = invoke(cr, "onModifyWeight", [bD, av], nil)
656- if ((dy == dy))
644+ let av = aG(ay(bC))
645+ let dt = Z(av)
646+ let du = Z(f)
647+ let dv = valueOrElse(getInteger(du), 0)
648+ let cL = valueOrElse(getInteger(dt), 0)
649+ let dw = ds
650+ let aY = split(aG(K()), k)
651+ let cq = ba(aY)
652+ let dx = invoke(cq, "onModifyWeight", [bC, av], nil)
653+ if ((dx == dx))
657654 then {
658- let dz = if ((dw == 0))
655+ let dy = if ((dv == 0))
659656 then nil
660- else [IntegerEntry(dv, 0)]
661- let dA = ab(av, 0)
662- let dB = getInteger(dA)
663- let dC = if ((dB == unit))
657+ else [IntegerEntry(du, 0)]
658+ let dz = ab(av, 0)
659+ let dA = getInteger(dz)
660+ let dB = if ((dA == unit))
664661 then nil
665- else [DeleteEntry(dA)]
666- (([IntegerEntry(du, dx)] ++ dz) ++ dC)
662+ else [DeleteEntry(dz)]
663+ (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
667664 }
668665 else throw("Strict value is not equal to itself.")
669666 }
670667 else throw("Strict value is not equal to itself.")
671668 }
672669
673670
674671
675-@Callable(bl)
676-func modifyWeights (dD,dE,dF,dG) = {
677- let cv = bm(bl)
678- if ((cv == cv))
672+@Callable(bk)
673+func modifyWeights (dC,dD,dE,dF) = {
674+ let cu = bl(bk)
675+ if ((cu == cu))
679676 then {
677+ let dG = ((5 * e) / 100)
680678 let dH = ((5 * e) / 100)
681679 let dI = ((5 * e) / 100)
682- let dJ = ((5 * e) / 100)
683- let aZ = split(aH(K()), k)
684- let dK = bb(aZ)
685- let dL = bc(aZ)
680+ let aY = split(aG(K()), k)
681+ let dJ = ba(aY)
682+ let dK = bb(aY)
683+ let dL = Z(dC)
686684 let dM = Z(dD)
687685 let dN = Z(dE)
688686 let dO = Z(dF)
689- let dP = Z(dG)
690- let dQ = aK(dM)
691- let dR = aK(dN)
692- let dS = (dQ - dJ)
693- let dT = (dR - dJ)
694- if ((0 >= dS))
695- then throw(("invalid btcWeightNew: " + toString(dS)))
696- else if ((0 >= dT))
697- then throw(("invalid ethWeightNew: " + toString(dT)))
687+ let dP = aJ(dL)
688+ let dQ = aJ(dM)
689+ let dR = (dP - dI)
690+ let dS = (dQ - dI)
691+ if ((0 >= dR))
692+ then throw(("invalid btcWeightNew: " + toString(dR)))
693+ else if ((0 >= dS))
694+ then throw(("invalid ethWeightNew: " + toString(dS)))
698695 else {
699- let dU = aH(ax(dD))
700- let dV = aH(ax(dE))
701- let dW = aH(ax(dF))
702- let dX = aH(ax(dG))
703- let dY = invoke(dK, "onModifyWeight", [dU, dD], nil)
704- if ((dY == dY))
696+ let dT = aG(ax(dC))
697+ let dU = aG(ax(dD))
698+ let dV = aG(ax(dE))
699+ let dW = aG(ax(dF))
700+ let dX = invoke(dJ, "onModifyWeight", [dT, dC], nil)
701+ if ((dX == dX))
705702 then {
706- let dZ = invoke(dK, "onModifyWeight", [dV, dE], nil)
707- if ((dZ == dZ))
703+ let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704+ if ((dY == dY))
708705 then {
709- let ea = invoke(dK, "onModifyWeight", [dW, dF], nil)
710- if ((ea == ea))
706+ let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707+ if ((dZ == dZ))
711708 then {
712- let eb = invoke(dK, "onModifyWeight", [dX, dG], nil)
713- if ((eb == eb))
714- then [IntegerEntry(dM, dS), IntegerEntry(dN, dT), IntegerEntry(dO, dH), IntegerEntry(dP, dI), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dR), IntegerEntry(ab(dF, 0), dH), IntegerEntry(ab(dG, 0), dI)]
709+ let ea = invoke(dJ, "onModifyWeight", [dW, dF], nil)
710+ if ((ea == ea))
711+ then [IntegerEntry(dL, dR), IntegerEntry(dM, dS), IntegerEntry(dN, dG), IntegerEntry(dO, dH), IntegerEntry(ab(dC, 0), dP), IntegerEntry(ab(dD, 0), dQ), IntegerEntry(ab(dE, 0), dG), IntegerEntry(ab(dF, 0), dH)]
715712 else throw("Strict value is not equal to itself.")
716713 }
717714 else throw("Strict value is not equal to itself.")
718715 }
719716 else throw("Strict value is not equal to itself.")
720717 }
721718 else throw("Strict value is not equal to itself.")
722719 }
723720 }
724721 else throw("Strict value is not equal to itself.")
725722 }
726723
727724
728725
729-@Callable(bl)
726+@Callable(bk)
730727 func checkWxEmissionPoolLabel (aA,aB) = {
731- let ec = {
732- let be = getBoolean(az(aA, aB))
733- if ($isInstanceOf(be, "Boolean"))
728+ let eb = {
729+ let bd = getBoolean(az(aA, aB))
730+ if ($isInstanceOf(bd, "Boolean"))
734731 then {
735- let ed = be
736- ed
732+ let ec = bd
733+ ec
737734 }
738735 else false
739736 }
740- $Tuple2(nil, ec)
737+ $Tuple2(nil, eb)
741738 }
742739
743740
744741
745-@Callable(bl)
742+@Callable(bk)
746743 func setWxEmissionPoolLabel (aA,aB) = {
747- let cv = bY(bl)
748- if ((cv == cv))
744+ let cu = bX(bk)
745+ if ((cu == cu))
749746 then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
750747 else throw("Strict value is not equal to itself.")
751748 }
752749
753750
754751
755-@Callable(bl)
752+@Callable(bk)
756753 func deleteWxEmissionPoolLabel (aA,aB) = {
757- let cv = if (bk(bl))
754+ let cu = if (bj(bk))
758755 then true
759- else bY(bl)
760- if ((cv == cv))
756+ else bX(bk)
757+ if ((cu == cu))
761758 then $Tuple2([DeleteEntry(az(aA, aB))], unit)
762759 else throw("Strict value is not equal to itself.")
763760 }
764761
765762
766763
767-@Callable(bl)
768-func onVerificationLoss (ee) = {
769- let cv = if ((toBase58String(bl.caller.bytes) == valueOrElse(getString(this, T()), "")))
764+@Callable(bk)
765+func onVerificationLoss (ed) = {
766+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
770767 then true
771- else bm(bl)
772- if ((cv == cv))
768+ else bl(bk)
769+ if ((cu == cu))
773770 then {
774- let cC = bd()
775- let ef = if ((size(cC) > 0))
771+ let cB = bc()
772+ let ee = if ((size(cB) > 0))
776773 then true
777774 else throw("invalid price assets")
778- if ((ef == ef))
775+ if ((ee == ee))
779776 then {
780- func eg (eh,ei) = {
781- let ej = invoke(this, "deleteWxEmissionPoolLabel", [ee, ei], nil)
782- if ((ej == ej))
777+ func ef (eg,eh) = {
778+ let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779+ if ((ei == ei))
783780 then unit
784781 else throw("Strict value is not equal to itself.")
785782 }
786783
787- let ek = {
788- let el = cC
789- let em = size(el)
790- let en = unit
791- func eo (ep,eq) = if ((eq >= em))
792- then ep
793- else eg(ep, el[eq])
784+ let ej = {
785+ let ek = cB
786+ let el = size(ek)
787+ let em = unit
788+ func en (eo,ep) = if ((ep >= el))
789+ then eo
790+ else ef(eo, ek[ep])
794791
795- func er (ep,eq) = if ((eq >= em))
796- then ep
792+ func eq (eo,ep) = if ((ep >= el))
793+ then eo
797794 else throw("List size exceeds 2")
798795
799- er(eo(eo(en, 0), 1), 2)
796+ eq(en(en(em, 0), 1), 2)
800797 }
801- if ((ek == ek))
798+ if ((ej == ej))
802799 then $Tuple2(nil, unit)
803800 else throw("Strict value is not equal to itself.")
804801 }
805802 else throw("Strict value is not equal to itself.")
806803 }
807804 else throw("Strict value is not equal to itself.")
808805 }
809806
810807
811808
812-@Callable(bl)
809+@Callable(bk)
813810 func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
814- let dh = bP(aa)
815- let al = $Tuple2(parseIntValue(dh[A]), parseIntValue(dh[B]))
816- let es = valueOrElse(getBoolean(ak(al)), false)
817- let et = valueOrElse(getBoolean(an()), false)
818- $Tuple2(nil, if (et)
811+ let dg = bO(aa)
812+ let al = $Tuple2(parseIntValue(dg[A]), parseIntValue(dg[B]))
813+ let er = valueOrElse(getBoolean(ak(al)), false)
814+ let es = valueOrElse(getBoolean(an()), false)
815+ $Tuple2(nil, if (es)
819816 then true
820- else es)
817+ else er)
821818 }
822819
823820
824821
825-@Callable(bl)
822+@Callable(bk)
826823 func getInFeeREADONLY (aa) = {
827- let eu = cb(aC(aa), aD(), 0)
828- $Tuple2(nil, eu)
824+ let et = ca(aC(aa), aD(), 0)
825+ $Tuple2(nil, et)
829826 }
830827
831828
832829
833-@Callable(bl)
830+@Callable(bk)
834831 func getOutFeeREADONLY (aa) = {
835- let eu = cb(aE(aa), aF(), fraction(10, b, 10000))
836- $Tuple2(nil, eu)
832+ let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833+ $Tuple2(nil, et)
837834 }
838835
839836
840837
841-@Callable(bl)
842-func poolInfoREADONLY (ev,ew) = {
838+@Callable(bk)
839+func poolInfoREADONLY (eu,ev) = {
840+ let ew = getInteger(this, af(eu))
843841 let ex = getInteger(this, af(ev))
844- let ey = getInteger(this, af(ew))
845- let ez = getString(this, aw(value(ex), value(ey)))
846- let eA = getString(this, ax(value(ez)))
847- let cU = if (if (isDefined(ex))
842+ let ey = getString(this, aw(value(ew), value(ex)))
843+ let ez = getString(this, ax(value(ey)))
844+ let cT = if (if (isDefined(ew))
845+ then isDefined(ex)
846+ else false)
848847 then isDefined(ey)
849- else false)
850- then isDefined(ez)
851848 else false
852- let eB = if (cU)
853- then $Tuple2(addressFromStringValue(value(ez)), aL(value(eA)))
849+ let eA = if (cT)
850+ then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
854851 else unit
855- $Tuple2(nil, eB)
852+ $Tuple2(nil, eA)
856853 }
857854
858855
859856
860-@Callable(bl)
857+@Callable(bk)
861858 func getPoolStatusREADONLY (aa) = {
862- let bQ = split(aH(au(aa)), k)
863- let ai = bQ[1]
864- let aj = bQ[2]
865- let ch = split(aH(ah(ai, aj)), k)
866- $Tuple2(nil, parseIntValue(ch[u]))
859+ let bP = split(aG(au(aa)), k)
860+ let ai = bP[1]
861+ let aj = bP[2]
862+ let cg = split(aG(ah(ai, aj)), k)
863+ $Tuple2(nil, parseIntValue(cg[u]))
867864 }
868865
869866
870867
871-@Callable(bl)
868+@Callable(bk)
872869 func getPoolConfigREADONLY (aa) = {
873- let bQ = split(aH(au(aa)), k)
874- let ai = bQ[1]
875- let aj = bQ[2]
876- let ch = split(aH(ah(ai, aj)), k)
877- $Tuple2(nil, ch)
870+ let bP = split(aG(au(aa)), k)
871+ let ai = bP[1]
872+ let aj = bP[2]
873+ let cg = split(aG(ah(ai, aj)), k)
874+ $Tuple2(nil, cg)
878875 }
879876
880877
881878
882-@Callable(bl)
883-func getPoolConfigByLpAssetId (cZ) = {
884- let bQ = split(aH(ao(cZ)), k)
885- let ai = bQ[1]
886- let aj = bQ[2]
887- let ch = split(aH(ah(ai, aj)), k)
888- $Tuple2(nil, ch)
879+@Callable(bk)
880+func getPoolConfigByLpAssetIdREADONLY (cY) = {
881+ let bP = split(aG(ao(cY)), k)
882+ let ai = bP[1]
883+ let aj = bP[2]
884+ let cg = split(aG(ah(ai, aj)), k)
885+ $Tuple2(nil, cg)
889886 }
890887
891888
892889
893-@Callable(bl)
894-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, ce(aA, aB))
890+@Callable(bk)
891+func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
895892
896893
897-
898-@Callable(bl)
899-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false))
900-
901-
902-@Verifier(eC)
903-func eD () = {
904- let eE = {
905- let be = bg()
906- if ($isInstanceOf(be, "ByteVector"))
894+@Verifier(eB)
895+func eC () = {
896+ let eD = {
897+ let bd = bf()
898+ if ($isInstanceOf(bd, "ByteVector"))
907899 then {
908- let bn = be
909- bn
900+ let bm = bd
901+ bm
910902 }
911- else if ($isInstanceOf(be, "Unit"))
912- then eC.senderPublicKey
903+ else if ($isInstanceOf(bd, "Unit"))
904+ then eB.senderPublicKey
913905 else throw("Match error")
914906 }
915- sigVerify(eC.bodyBytes, eC.proofs[0], eE)
907+ sigVerify(eB.bodyBytes, eB.proofs[0], eD)
916908 }
917909

github/deemru/w8io/026f985 
237.58 ms