tx · 2tjac3axAMwm5fz3YJofeETw2sVtrD1cCuWKjEMMCGaX

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02300000 Waves

2023.02.27 15:30 [2468123] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "2tjac3axAMwm5fz3YJofeETw2sVtrD1cCuWKjEMMCGaX", "fee": 2300000, "feeAssetId": null, "timestamp": 1677501104319, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "3BuLx8zyc7vMbrRp4DQJVz5YTBytLuZBjekxmeXkVnrscxkfyga2r7Pa8F3oXCSjWTWzSmjqoqJn1QvodNQicogE" ], "script": "base64:BgLqJwgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCILd2F2ZXNTdHJpbmciEWRlY2ltYWxzTXVsdFByaWNlIgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biISaWR4SW50ZXJuYWxBc3NldElkIg9pZHhSZXN1dEFjdGlvbnMiIGlkeElmQXNzZXRJZENhbGN1bGF0aW9uUGVyZm9ybWVkIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iC2lkeFBvb2xUeXBlIhNwb29sTGFiZWxXeEVtaXNzaW9uIg92YWxpZFBvb2xMYWJlbHMiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giIWtleUFsbG93ZWRMcFN0YWJsZUFkZG9uU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM3MjYzNzg4IiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCXRlc3RFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIQZGF0YUZhY3RvcnlDZmdWMyIOc3Rha2luZ0FkZHJlc3MiD2Jvb3N0aW5nQWRkcmVzcyILaWRvQ29udHJhY3QiDHRlYW1Db250cmFjdCIQZW1pc3Npb25Db250cmFjdCIMcmVzdENvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IgtkYW9Db250cmFjdCIRbWFya2V0aW5nQ29udHJhY3QiEmd3eFJld2FyZHNDb250cmFjdCINYmlyZHNDb250cmFjdCIOZGF0YUZhY3RvcnlDZmciC2RhdGFQb29sQ2ZnIgpwb29sU3RhdHVzIglscEFzc2V0SWQiDmFtb3VudEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiD2xwQXNzZXREZWNpbWFscyIIcG9vbFR5cGUiFWRhdGFNYXBwaW5nUG9vbEFzc2V0cyIWaW50ZXJuYWxBbW91bnRBc3NldFN0ciIVaW50ZXJuYWxQcmljZUFzc2V0U3RyIg1nZXRQb29sQ29uZmlnIgpwb29sQXNzZXRzIhpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZSIKYXNzZXRJZFN0ciILaW5jcmVtZW50b3IiD2ludGVybmFsQXNzZXRJZCIYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkIgZyZXN1bHQiEm5ld0ludGVybmFsQXNzZXRJZCIJbXVzdEFkbWluIghhZG1pblBLcyIJaXNNYW5hZ2VyIhZpbnRPckRlZmF1bHRPckZhbGxiYWNrIgprZXlEZWZhdWx0Ig12YWx1ZUZhbGxiYWNrIhJwb29sRXhpc3RzSW50ZXJuYWwiBGFtQXMiBHByQXMiA2NmZyIKY2ZnUmV2ZXJzZSIGZXhpc3RzIgZhc3NldDEiBmFzc2V0MiIJYXNzZXROdW0xIglhc3NldE51bTIiAmVlIgNyZXMiAmxwIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sRXhpc3RzIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCnBvb2xDb25maWciCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9kaWZ5V2VpZ2h0QnRjIhFvbk1vZGlmeVdlaWdodEV0aCIUb25Nb2RpZnlXZWlnaHRFdGhCdGMiFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQiCWhhdmVMYWJlbCIBYiIHYXNzZXRJZCIUY2hlY2tQcmljZUFzc2V0c1NpemUiAmNiIgNhY2MiCnByaWNlQXNzZXQiAXIiB2FjdGlvbnMiAiRsIgIkcyIFJGFjYzAiBSRmMF8xIgIkYSICJGkiBSRmMF8yIh5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiImFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiA2ZlZSIQYW1vdW50QXNzZXRJZFN0ciIPcHJpY2VBc3NldElkU3RyIhthbW91bnRBc3NldEludGVybmFsSWRPcHRpb24iGnByaWNlQXNzZXRJbnRlcm5hbElkT3B0aW9uIhlwb29sQ29udHJhY3RBZGRyZXNzT3B0aW9uIg9scEFzc2V0SWRPcHRpb24iCHBvb2xJbmZvIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlpAAFhAAgAAWIAgMLXLwABYwASAAFkCQC2AgEAgICQu7rWrfANAAFlBQFiAAFmAg5HV1h2aXJ0dWFsUE9PTAABZwIIUE9PTFNfTFAAAWgAgIl6AAFpAgVXQVZFUwABagkAaAIJAGgCAGQA6AcA6AcAAWsCAl9fAAFsAgAAAW0AAQABbgACAAFvAAMAAXAABAABcQABAAFyAAIAAXMAAwABdAABAAF1AAIAAXYAAwABdwAEAAF4AAUAAXkABgABegAHAAFBAAgAAUIACQABQwAKAAFEAAsAAUUCC1dYX0VNSVNTSU9OAAFGCQDMCAIFAUUFA25pbAEBRwACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAQFIAAIdJXNfX2FsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2gBAUkAAiIlc19fYWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoAQFKAAIQJXNfX3N3YXBDb250cmFjdAEBSwACESVzX19mYWN0b3J5Q29uZmlnAQFMAAIQJXNfX2xwVG9rZW5zTGlzdAEBTQACFiVzJXNfX3Bvb2xfX3NjcmlwdEhhc2gBAU4AAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAU8AAhklc19fbGVnYWN5RmFjdG9yeUNvbnRyYWN0AQFQAAIPJXNfX2xlZ2FjeVBvb2xzAQFRAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVIAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVMAAhAlc19fYWRtaW5QdWJLZXlzAQFUAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVUAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBVgAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFrAQFXAAIRJXNfX3ByaWNlRGVjaW1hbHMBAVgAAgwlc19fc2h1dGRvd24BAVkAAhclc19fbmV4dEludGVybmFsQXNzZXRJZAEBWgECYWEJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhYQECYWICAmFhAmFjCQCsAgIJAKwCAgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFhAgJfXwkApAMBBQJhYwECYWQBAmFlCQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQUCYWUBAmFmAQJhZwkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhZwECYWgCAmFpAmFqCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhaQICX18FAmFqAghfX2NvbmZpZwECYWsBAmFsBAJhbQUCYWwEAmFpCAUCYW0CXzEEAmFqCAUCYW0CXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhaQkAzAgCCQCkAwEFAmFqCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAWsBAmFuAAkAuQkCCQDMCAICAiVzCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAWsBAmFvAQJhcAkArAICCQCsAgICCCVzJXMlc19fBQJhcAIYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAQJhcQICYXICYXMJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwUCYXICAl9fBQJhcwIeX19tYXBwaW5nc19fUG9vbEFzc2V0czJMcEFzc2V0AQJhdAECYWEJAKwCAgIOJXMlc19fc3ByZWFkX18FAmFhAQJhdQECYXYJAKwCAgkArAICAgglcyVzJXNfXwUCYXYCI19fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJQb29sQXNzZXRzAQJhdwICYXICYXMJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBQJhcgICX18JAKQDAQUCYXMCI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0AQJheAECYXYJAKwCAgkArAICAgglcyVzJXNfXwUCYXYCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJheQECYXAJAKwCAgkArAICAgglcyVzJXNfXwUCYXACIF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0AQJhegICYUECYUIJAKwCAgkArAICCQCsAgICFCVzJXMlc19fd3hFbWlzc2lvbl9fBQJhQQICX18FAmFCAQJhQwECYWEJAKwCAgINJXMlc19faW5GZWVfXwUCYWEBAmFEAAIQJXNfX2luRmVlRGVmYXVsdAECYUUBAmFhCQCsAgICDiVzJXNfX291dEZlZV9fBQJhYQECYUYAAhElc19fb3V0RmVlRGVmYXVsdAECYUcBAmFICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYUgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhSAECYUkBAmFICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYUgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhSAECYUoBAmFICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYUgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJhSAECYUsBAmFMAwkAAAIFAmFMBQFpBQR1bml0CQDZBAEFAmFMAAJhTQABAAJhTgACAAJhTwADAAJhUAAEAAJhUQAFAAJhUgAGAAJhUwAHAAJhVAAIAAJhVQAJAAJhVgAKAAJhVwALAQJhWAECYVkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYVkFAmFOAQJhWgECYVkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYVkFAmFRAQJiYQECYVkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYVkFAmFNAQJiYgECYVkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYVkFAmFWAQJiYwAEAmJkCQCiCAEJAQFWAAMJAAECBQJiZAIGU3RyaW5nBAJiZQUCYmQDCQAAAgkAsQIBBQJiZQAABQNuaWwJALUJAgUCYmUFAWsFA25pbAECYmYABAJiZAkAoggBCQEBUQADCQABAgUCYmQCBlN0cmluZwQCYmUFAmJkCQDZBAEFAmJlAwkAAQIFAmJkAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmJnAAQCYmQJAKIIAQkBAVIAAwkAAQIFAmJkAgZTdHJpbmcEAmJlBQJiZAkA2QQBBQJiZQMJAAECBQJiZAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJiaAkAAgECEVBlcm1pc3Npb24gZGVuaWVkAAJiaQkAAgECD1Rlc3QgZXJyb3IgaGVyZQECYmoBAmJrAwkAAAIIBQJiawZjYWxsZXIFBHRoaXMGBQJiaAECYmwBAmJrBAJiZAkBAmJmAAMJAAECBQJiZAIKQnl0ZVZlY3RvcgQCYm0FAmJkAwkAAAIIBQJiaw9jYWxsZXJQdWJsaWNLZXkFAmJtBgUCYmgDCQABAgUCYmQCBFVuaXQJAQJiagEFAmJrCQACAQILTWF0Y2ggZXJyb3IBAmJuCwJibwJicAJicQJicgJicwJidAJidQJidgJidwJieAJieQkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUCYm8JAMwIAgUCYnAJAMwIAgUCYnEJAMwIAgUCYnIJAMwIAgUCYnMJAMwIAgUCYnQJAMwIAgUCYnUJAMwIAgUCYnYJAMwIAgUCYncJAMwIAgUCYngJAMwIAgUCYnkFA25pbAUBawECYnoHAmJvAmJwAmJxAmJyAmJzAmJ0AmJ1CQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVzCQDMCAIFAmJvCQDMCAIFAmJwCQDMCAIFAmJxCQDMCAIFAmJyCQDMCAIFAmJzCQDMCAIFAmJ0CQDMCAIFAmJ1BQNuaWwFAWsBAmJBCwJhYQJiQgJiQwJiRAJiRQJiRgJiRwJiSAJiSQJiSgJiSwkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUCYWEJAMwIAgUCYkIJAMwIAgUCYkMJAMwIAgUCYkQJAMwIAgUCYkUJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiSQkAzAgCCQCkAwEFAmJKCQDMCAIFAmJLBQNuaWwFAWsBAmJMAgJiTQJiTgkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJOBQNuaWwFAWsBAmJPAQJhYQQCYlAJALUJAgkBAmFHAQkBAmF1AQUCYWEFAWsEAmFpCQCRAwIFAmJQAAEEAmFqCQCRAwIFAmJQAAIJALUJAgkBAmFHAQkBAmFoAgUCYWkFAmFqBQFrAQJiUQICYlICYlMEAmJUCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZgEFAmJSAAAEAmJVCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFZAAAABAJiVgMJAAACBQJiVAAABAJiVwkAZAIFAmJVBQJiUwkAlQoDBQJiVwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVkABQJiVwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFmAQUCYlIFAmJXCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAEFAmJXBQJiUgUDbmlsBgkAlQoDBQJiVAUDbmlsBwUCYlYBAmJYAQJiawQCYlkJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBUwAFAWwFAWsDCQEPY29udGFpbnNFbGVtZW50AgUCYlkJANgEAQgFAmJrD2NhbGxlclB1YmxpY0tleQYEAmJaCQECYmwBBQJiawMJAAACBQJiWgUCYloGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjYQMCYUgCY2ICY2MJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYUgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCY2IFAmNjAQJjZAICYUECYUIEAmFpCQCfCAEJAQJhZgEFAmFBBAJhagkAnwgBCQECYWYBBQJhQgMDCQAAAgUCYWkFBHVuaXQGCQAAAgUCYWoFBHVuaXQHBAJjZQkApAMBCQEFdmFsdWUBBQJhaQQCY2YJAKQDAQkBBXZhbHVlAQUCYWoEAmNnCQCiCAEJAQJhaAIFAmNlBQJjZgQCY2gJAKIIAQkBAmFoAgUCY2YFAmNlBAJjaQMJAQIhPQIFAmNnBQR1bml0BgkBAiE9AgUCY2gFBHVuaXQFAmNpHQJiawEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBAmFHAQkBAUoAAmJrASBnZXRMcEFzc2V0RnJvbVBvb2xBc3NldHNSRUFET05MWQICY2oCY2sDAwkAAAIFAmNqAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwkAAAIFAmNrAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAJjbAkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWYBBQJjagQCY20JAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFmAQUCY2sEAmNuCQCdCAIFBHRoaXMJAQJhcQIJAKQDAQUCY2wJAKQDAQUCY20EAmNvAwkAAAIFAmNuBQR1bml0BQR1bml0CQCwAgIJAQV2YWx1ZQEFAmNuAAQJAJQKAgUDbmlsBQJjbwJiawEhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZAQJjcAkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmF5AQUCY3ACAAJiawELY29uc3RydWN0b3IIAmNxAmNyAmJxAmJyAmJzAmJ0AmNzAmN0BAJjdQkBAmJsAQUCYmsDCQAAAgUCY3UFAmN1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFLAAkBAmJ6BwUCY3EFAmNyBQJicQUCYnIFAmJzBQJidAUCY3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCY3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawENY29uc3RydWN0b3JWMgECY3YEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmN3CQCnCAEJANkEAQUCY3YDCQAAAgUCY3cFAmN3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAUCY3YFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawENY29uc3RydWN0b3JWMwQCYnYCYncCYngCYnkEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmFZCQC1CQIJAQJhRwEJAQFLAAUBawkAzAgCCQELU3RyaW5nRW50cnkCCQEBSwAJAQJibgsJAJEDAgUCYVkAAQkAkQMCBQJhWQACCQCRAwIFAmFZAAMJAJEDAgUCYVkABAkAkQMCBQJhWQAFCQCRAwIFAmFZAAYJAJEDAgUCYVkABwUCYnYFAmJ3BQJieAUCYnkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawENY29uc3RydWN0b3JWNAICY3gCY3kEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ABQJjeAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUAAJALkJAgUCY3kFAWsFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawENY29uc3RydWN0b3JWNQECY3oEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQABQJjegUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ1jb25zdHJ1Y3RvclY2AgJjQQJjQgQCY0MJAMwIAgkBAmJsAQUCYmsJAMwIAgMJAQIhPQIJAKYIAQUCY0EFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCY0MFAmNDCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFVAAUCY0EJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVYACQC5CQIFAmNCBQFrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBCnNldE1hbmFnZXIBAmNEBAJjdQkBAmJsAQUCYmsDCQAAAgUCY3UFAmN1BAJjRQkA2QQBBQJjRAMJAAACBQJjRQUCY0UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIABQJjRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQ5jb25maXJtTWFuYWdlcgAEAmNGCQECYmcABAJjRwMJAQlpc0RlZmluZWQBBQJjRgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY0cFAmNHBAJjSAMJAAACCAUCYmsPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJjRgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCY0gFAmNICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAAkA2AQBCQEFdmFsdWUBBQJjRgkAzAgCCQELRGVsZXRlRW50cnkBCQEBUgAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEJc2V0QWRtaW5zAQJjSQQCY3UJAQJibAEFAmJrAwkAAAIFAmN1BQJjdQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAJALkJAgUCY0kFAWsFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawEPYWN0aXZhdGVOZXdQb29sCAJhYQJiRAJiRQJjSgJjSwJjTAJiSwJjTQQCY3UJAQJiWAEFAmJrAwkAAAIFAmN1BQJjdQMJAQlpc0RlZmluZWQBCQCiCAEJAQJhdQEFAmFhCQACAQkArAICCQCsAgICDVBvb2wgYWRkcmVzcyAFAmFhAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCY04JAQJiUQIFAmJEAAEEAmNPCAUCY04CXzEEAmNQCQECYlECBQJiRQMIBQJjTgJfMwACAAEEAmNRCAUCY1ACXzEEAmNSCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWEJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAmFhBAJjUwkBEUBleHRyTmF0aXZlKDEwNTcpAQkBAU0ABAJjVAkBAmNkAgUCYkQFAmJFAwUCY1QJAAIBCQCsAgIJAKwCAgkArAICCQCsAgICBVBvb2wgBQJiRAIBLwUCYkUCHCBoYXMgYWxyZWFkeSBiZWVuIGFjdGl2YXRlZC4EAmNVCQEFdmFsdWUBCQCdCAIFBHRoaXMJAQJhaAIJAKQDAQUCY08JAKQDAQUCY1EEAmNWAwkAAAIFAmJEAgVXQVZFUwUBagkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJECGRlY2ltYWxzAAAAAAUERE9XTgQCY1cDCQAAAgUCYkUCBVdBVkVTBQFqCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCYkUIZGVjaW1hbHMAAAAABQRET1dOBAJjWAkAwggFBQJjSgUCY0sAAQAIBgQCYkMJALgIAQUCY1gEAmNZCQDYBAEFAmJDBAJjWgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJhYQIIYWN0aXZhdGUJAMwIAgUCYkQJAMwIAgUCYkUFA25pbAUDbmlsAwkAAAIFAmNaBQJjWgMJAQIhPQIFAmNaAgdzdWNjZXNzCQACAQIjUG9vbCBpbml0aWFsaXNhdGlvbiBlcnJvciBoYXBwZW5lZC4EAmN6CQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUcBCQEBVAAEAmRhCQD8BwQFAmN6Ag5jcmVhdGVPclVwZGF0ZQkAzAgCBQJjWQkAzAgCBQJjSgkAzAgCBwUDbmlsBQNuaWwDCQAAAgUCZGEFAmRhBAJkYgkA/AcEBQJjegIIYWRkTGFiZWwJAMwIAgUCY1kJAMwIAgUBZwUDbmlsBQNuaWwDCQAAAgUCZGIFAmRiBAJkYwkA/AcEBQJjegIHc2V0TG9nbwkAzAgCBQJjWQkAzAgCBQJjTQUDbmlsBQNuaWwDCQAAAgUCZGMFAmRjBAJkZAkA/AcEBQJjegINYWRkQXNzZXRzTGluawkAzAgCBQJiRAkAzAgCBQJiRQkAzAgCBQJjWQUDbmlsBQNuaWwDCQAAAgUCZGQFAmRkBAJkZQkA/AcEBQJjegIYaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVyCQDMCAIFAmJEBQNuaWwFA25pbAMJAAACBQJkZQUCZGUJAJQKAgkAzggCCQDOCAIIBQJjTgJfMggFAmNQAl8yCQDMCAIFAmNYCQDMCAIJAQRCdXJuAgUCYkMAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWgCCQCkAwEFAmNPCQCkAwEFAmNRCQECYkELBQJhYQkApAMBBQFtBQJjWQUCYkQFAmJFBQJjVgUCY1cFAmNPBQJjUQUBagUCYksJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFvAQUCY1kJAQJiTAIFAmNPBQJjUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXECCQCkAwEFAmNPCQCkAwEFAmNRCQCsAgICBCVzX18FAmNZCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdQEFAmFhCQECYkwCBQJjTwUCY1EJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AgUCY08FAmNRBQJhYQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXkBBQJjWQUCYWEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF4AQUCYWEFAmNZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWgEFAmFhBQJjTAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF0AQUCYWEFAWgFA25pbAUCY1kJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBCm1hbmFnZVBvb2wCAmFhAmRmBAJjdQkBAmJsAQUCYmsDCQAAAgUCY3UFAmN1BAJkZwkBAmJPAQUCYWEEAmJCCQCRAwIFAmRnBQF1BAJjWQkAkQMCBQJkZwUBdgQCYkQJAJEDAgUCZGcFAXcEAmJFCQCRAwIFAmRnBQF4BAJjVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQF5BAJjVwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQF6BAJjTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFBBAJjUQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFCBAJkaAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFDBAJiSwkAkQMCBQJkZwUBRAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWgCCQCkAwEFAmNPCQCkAwEFAmNRCQECYkELBQJhYQkApAMBBQJkZgUCY1kFAmJEBQJiRQUCY1YFAmNXBQJjTwUCY1EFAmRoBQJiSwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrAQRlbWl0AQJkaQQCZGoIBQJiawZjYWxsZXIEAmRrCAUCYmsMb3JpZ2luQ2FsbGVyBAJkbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJheAEJAKUIAQUCZGoCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkbQkA2QQBBQJkbAQCY3kJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBUAAFAWwFAWsEAmN4CQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAU8AAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCZGkFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJjeQkApQgBBQJkagkAlAoCBQNuaWwFAmN4CQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkbQUCZGkGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiawZjYWxsZXIFAmRpBQJkbQUDbmlsAgdzdWNjZXNzAmJrAQRidXJuAQJkbgQCZGoIBQJiawZjYWxsZXIEAmRrCAUCYmsMb3JpZ2luQ2FsbGVyBAJkbwkBBXZhbHVlAQkAkQMCCAUCYmsIcGF5bWVudHMAAAQCZHAJAQV2YWx1ZQEIBQJkbwZhbW91bnQEAmRxCQDYBAEJAQV2YWx1ZQEIBQJkbwdhc3NldElkBAJkcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJheAEJAKUIAQUCZGoCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZHEFAmRyCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUCZG4FAmRwCQACAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZG0JANkEAQUCZHIJAJQKAgkAzAgCCQEEQnVybgIFAmRtBQJkbgUDbmlsAgdzdWNjZXNzAmJrAQxtb2RpZnlXZWlnaHQCAmJDAmRzBAJjdQMJAAACCQDYBAEICAUCYmsGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFVAAIABgkBAmJsAQUCYmsDCQAAAgUCY3UFAmN1BAJhdgkBAmFHAQkBAmF5AQUCYkMEAmR0CQEBWgEFAmF2BAJkdQkBAVoBBQFmBAJkdgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkdQAABAJjTAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJkdAAABAJkdwUCZHMEAmFZCQC1CQIJAQJhRwEJAQFLAAUBawQCY3EJAQJiYQEFAmFZBAJkeAkA/AcEBQJjcQIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCYkMJAMwIAgUCYXYFA25pbAUDbmlsAwkAAAIFAmR4BQJkeAQCZHkDCQAAAgUCZHYAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkdQAABQNuaWwEAmR6CQECYWICBQJhdgAABAJkQQkAnwgBBQJkegQCZEIDCQAAAgUCZEEFBHVuaXQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQJkegUDbmlsCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHQFAmR3BQNuaWwFAmR5BQJkQgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiawENbW9kaWZ5V2VpZ2h0cwQCZEMCZEQCZEUCZEYEAmN1CQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmRHCQBpAgkAaAIABQUBZQBkBAJkSAkAaQIJAGgCAAUFAWUAZAQCZEkJAGkCCQBoAgAFBQFlAGQEAmFZCQC1CQIJAQJhRwEJAQFLAAUBawQCZEoJAQJiYQEFAmFZBAJkSwkBAmJiAQUCYVkEAmRMCQEBWgEFAmRDBAJkTQkBAVoBBQJkRAQCZE4JAQFaAQUCZEUEAmRPCQEBWgEFAmRGBAJkUAkBAmFKAQUCZEwEAmRRCQECYUoBBQJkTQQCZFIJAGUCBQJkUAUCZEkEAmRTCQBlAgUCZFEFAmRJAwkAZwIAAAUCZFIJAAIBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZFIDCQBnAgAABQJkUwkAAgEJAKwCAgIWaW52YWxpZCBldGhXZWlnaHROZXc6IAkApAMBBQJkUwQCZFQJAQJhRwEJAQJheAEFAmRDBAJkVQkBAmFHAQkBAmF4AQUCZEQEAmRWCQECYUcBCQECYXgBBQJkRQQCZFcJAQJhRwEJAQJheAEFAmRGBAJkWAkA/AcEBQJkSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFQJAMwIAgUCZEMFA25pbAUDbmlsAwkAAAIFAmRYBQJkWAQCZFkJAPwHBAUCZEoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRVCQDMCAIFAmREBQNuaWwFA25pbAMJAAACBQJkWQUCZFkEAmRaCQD8BwQFAmRKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkVgkAzAgCBQJkRQUDbmlsBQNuaWwDCQAAAgUCZFoFAmRaBAJlYQkA/AcEBQJkSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFcJAMwIAgUCZEYFA25pbAUDbmlsAwkAAAIFAmVhBQJlYQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZEwFAmRSCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTQUCZFMJAMwIAgkBDEludGVnZXJFbnRyeQIFAmROBQJkRwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZE8FAmRICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkQwAABQJkUAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEQAAAUCZFEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRFAAAFAmRHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkRgAABQJkSAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJrARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwCAmFBAmFCBAJlYgQCYmQJAKAIAQkBAmF6AgUCYUEFAmFCAwkAAQIFAmJkAgdCb29sZWFuBAJlYwUCYmQFAmVjBwkAlAoCBQNuaWwFAmViAmJrARZzZXRXeEVtaXNzaW9uUG9vbExhYmVsAgJhQQJhQgQCY3UJAQJiWAEFAmJrAwkAAAIFAmN1BQJjdQkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQECYXoCBQJhQQUCYUIGBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCAmFBAmFCBAJjdQMJAQJiagEFAmJrBgkBAmJYAQUCYmsDCQAAAgUCY3UFAmN1CQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF6AgUCYUEFAmFCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBEm9uVmVyaWZpY2F0aW9uTG9zcwECZWQEAmN1AwkAAAIJANgEAQgIBQJiawZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVQAAgAGCQECYmwBBQJiawMJAAACBQJjdQUCY3UEAmNCCQECYmMABAJlZQMJAGYCCQCQAwEFAmNCAAAGCQACAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZWUFAmVlCgECZWYCAmVnAmVoBAJlaQkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmVkCQDMCAIFAmVoBQNuaWwFA25pbAMJAAACBQJlaQUCZWkFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmVqCgACZWsFAmNCCgACZWwJAJADAQUCZWsKAAJlbQUEdW5pdAoBAmVuAgJlbwJlcAMJAGcCBQJlcAUCZWwFAmVvCQECZWYCBQJlbwkAkQMCBQJlawUCZXAKAQJlcQICZW8CZXADCQBnAgUCZXAFAmVsBQJlbwkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDIJAQJlcQIJAQJlbgIJAQJlbgIFAmVtAAAAAQACAwkAAAIFAmVqBQJlagkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmsBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFhBAJkZwkBAmJPAQUCYWEEAmFsCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkZwUBQQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRnBQFCBAJlcgkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYWsBBQJhbAcEAmVzCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhbgAHCQCUCgIFA25pbAMFAmVzBgUCZXICYmsBEGdldEluRmVlUkVBRE9OTFkBAmFhBAJldAkBAmNhAwkBAmFDAQUCYWEJAQJhRAAAAAkAlAoCBQNuaWwFAmV0AmJrARFnZXRPdXRGZWVSRUFET05MWQECYWEEAmV0CQECY2EDCQECYUUBBQJhYQkBAmFGAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmV0AmJrARBwb29sSW5mb1JFQURPTkxZAgJldQJldgQCZXcJAJoIAgUEdGhpcwkBAmFmAQUCZXUEAmV4CQCaCAIFBHRoaXMJAQJhZgEFAmV2BAJleQkAnQgCBQR0aGlzCQECYXcCCQEFdmFsdWUBBQJldwkBBXZhbHVlAQUCZXgEAmV6CQCdCAIFBHRoaXMJAQJheAEJAQV2YWx1ZQEFAmV5BAJjVAMDCQEJaXNEZWZpbmVkAQUCZXcJAQlpc0RlZmluZWQBBQJleAcJAQlpc0RlZmluZWQBBQJleQcEAmVBAwUCY1QJAJQKAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUCZXkJAQJhSwEJAQV2YWx1ZQEFAmV6BQR1bml0CQCUCgIFA25pbAUCZUECYmsBFWdldFBvb2xTdGF0dXNSRUFET05MWQECYWEEAmJQCQC1CQIJAQJhRwEJAQJhdQEFAmFhBQFrBAJhaQkAkQMCBQJiUAABBAJhagkAkQMCBQJiUAACBAJjZwkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsJAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2cFAXUCYmsBFWdldFBvb2xDb25maWdSRUFET05MWQECYWEEAmJQCQC1CQIJAQJhRwEJAQJhdQEFAmFhBQFrBAJhaQkAkQMCBQJiUAABBAJhagkAkQMCBQJiUAACBAJjZwkAtQkCCQECYUcBCQECYWgCBQJhaQUCYWoFAWsJAJQKAgUDbmlsBQJjZwJiawEScG9vbEV4aXN0c1JFQURPTkxZAgJhQQJhQgkAlAoCBQNuaWwJAQJjZAIFAmFBBQJhQgECZUIBAmVDAAQCZUQEAmJkCQECYmYAAwkAAQIFAmJkAgpCeXRlVmVjdG9yBAJibQUCYmQFAmJtAwkAAQIFAmJkAgRVbml0CAUCZUIPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVCCWJvZHlCeXRlcwkAkQMCCAUCZUIGcHJvb2ZzAAAFAmVE7TEwnQ==", "height": 2468123, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9oxY8A4RY66JpnUmMaSCpvwVkAex8gUDiYKkBDrnV5xa Next: 9hxUnoNDR4JTSnaj33niyLiBpaHfh4xMa3wF9PSpWazR Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
7474 func I () = "%s__allowedLpStableAddonScriptHash"
7575
7676
77-func J () = "%s__factoryConfig"
77+func J () = "%s__swapContract"
7878
7979
80-func K () = "%s__lpTokensList"
80+func K () = "%s__factoryConfig"
8181
8282
83-func L () = "%s%s__pool__scriptHash"
83+func L () = "%s__lpTokensList"
8484
8585
86-func M () = "%s%s__matcher__publicKey"
86+func M () = "%s%s__pool__scriptHash"
8787
8888
89-func N () = "%s__legacyFactoryContract"
89+func N () = "%s%s__matcher__publicKey"
9090
9191
92-func O () = "%s__legacyPools"
92+func O () = "%s__legacyFactoryContract"
9393
9494
95-func P () = "%s__managerPublicKey"
95+func P () = "%s__legacyPools"
9696
9797
98-func Q () = "%s__pendingManagerPublicKey"
98+func Q () = "%s__managerPublicKey"
9999
100100
101-func R () = "%s__adminPubKeys"
101+func R () = "%s__pendingManagerPublicKey"
102102
103103
104-func S () = "%s__assetsStoreContract"
104+func S () = "%s__adminPubKeys"
105105
106106
107-func T () = "%s__votingEmissionContract"
107+func T () = "%s__assetsStoreContract"
108108
109109
110-func U () = makeString(["%s", "priceAssets"], k)
110+func U () = "%s__votingEmissionContract"
111111
112112
113-func V () = "%s__priceDecimals"
113+func V () = makeString(["%s", "priceAssets"], k)
114114
115115
116-func W () = "%s__shutdown"
116+func W () = "%s__priceDecimals"
117117
118118
119-func X () = "%s__nextInternalAssetId"
119+func X () = "%s__shutdown"
120120
121121
122-func Y (Z) = ("%s%s__poolWeight__" + Z)
122+func Y () = "%s__nextInternalAssetId"
123123
124124
125-func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
125+func Z (aa) = ("%s%s__poolWeight__" + aa)
126126
127127
128-func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
128+func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129129
130130
131-func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
131+func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132132
133133
134-func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
134+func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135135
136136
137-func aj (ak) = {
138- let al = ak
139- let ah = al._1
140- let ai = al._2
141- makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], k)
137+func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+
139+
140+func ak (al) = {
141+ let am = al
142+ let ai = am._1
143+ let aj = am._2
144+ makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
142145 }
143146
144147
145-func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
148+func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
146149
147150
148-func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
151+func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
149152
150153
151-func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
154+func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
152155
153156
154-func as (Z) = ("%s%s__spread__" + Z)
157+func at (aa) = ("%s%s__spread__" + aa)
155158
156159
157-func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
160+func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
158161
159162
160-func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
163+func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
161164
162165
163-func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
166+func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
164167
165168
166-func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
169+func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
167170
168171
169-func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
172+func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
170173
171174
172-func aB (Z) = ("%s%s__inFee__" + Z)
175+func aC (aa) = ("%s%s__inFee__" + aa)
173176
174177
175-func aC () = "%s__inFeeDefault"
178+func aD () = "%s__inFeeDefault"
176179
177180
178-func aD (Z) = ("%s%s__outFee__" + Z)
181+func aE (aa) = ("%s%s__outFee__" + aa)
179182
180183
181-func aE () = "%s__outFeeDefault"
184+func aF () = "%s__outFeeDefault"
182185
183186
184-func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
187+func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
185188
186189
187-func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
190+func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
188191
189192
190-func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
193+func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
191194
192195
193-func aJ (aK) = if ((aK == i))
196+func aK (aL) = if ((aL == i))
194197 then unit
195- else fromBase58String(aK)
198+ else fromBase58String(aL)
196199
197200
198-let aL = 1
201+let aM = 1
199202
200-let aM = 2
203+let aN = 2
201204
202-let aN = 3
205+let aO = 3
203206
204-let aO = 4
207+let aP = 4
205208
206-let aP = 5
209+let aQ = 5
207210
208-let aQ = 6
211+let aR = 6
209212
210-let aR = 7
213+let aS = 7
211214
212-let aS = 8
215+let aT = 8
213216
214-let aT = 9
217+let aU = 9
215218
216-let aU = 10
219+let aV = 10
217220
218-let aV = 11
221+let aW = 11
219222
220-func aW (aX) = addressFromStringValue(aX[aM])
223+func aX (aY) = addressFromStringValue(aY[aN])
221224
222225
223-func aY (aX) = addressFromStringValue(aX[aP])
226+func aZ (aY) = addressFromStringValue(aY[aQ])
224227
225228
226-func aZ (aX) = addressFromStringValue(aX[aL])
229+func ba (aY) = addressFromStringValue(aY[aM])
227230
228231
229-func ba (aX) = addressFromStringValue(aX[aU])
232+func bb (aY) = addressFromStringValue(aY[aV])
230233
231234
232-func bb () = {
233- let bc = getString(U())
234- if ($isInstanceOf(bc, "String"))
235+func bc () = {
236+ let bd = getString(V())
237+ if ($isInstanceOf(bd, "String"))
235238 then {
236- let bd = bc
237- if ((size(bd) == 0))
239+ let be = bd
240+ if ((size(be) == 0))
238241 then nil
239- else split(bd, k)
242+ else split(be, k)
240243 }
241244 else nil
242245 }
243246
244247
245-func be () = {
246- let bc = getString(P())
247- if ($isInstanceOf(bc, "String"))
248+func bf () = {
249+ let bd = getString(Q())
250+ if ($isInstanceOf(bd, "String"))
248251 then {
249- let bd = bc
250- fromBase58String(bd)
252+ let be = bd
253+ fromBase58String(be)
251254 }
252- else if ($isInstanceOf(bc, "Unit"))
255+ else if ($isInstanceOf(bd, "Unit"))
253256 then unit
254257 else throw("Match error")
255258 }
256259
257260
258-func bf () = {
259- let bc = getString(Q())
260- if ($isInstanceOf(bc, "String"))
261+func bg () = {
262+ let bd = getString(R())
263+ if ($isInstanceOf(bd, "String"))
261264 then {
262- let bd = bc
263- fromBase58String(bd)
265+ let be = bd
266+ fromBase58String(be)
264267 }
265- else if ($isInstanceOf(bc, "Unit"))
268+ else if ($isInstanceOf(bd, "Unit"))
266269 then unit
267270 else throw("Match error")
268271 }
269272
270273
271-let bg = throw("Permission denied")
274+let bh = throw("Permission denied")
272275
273-func bh (bi) = if ((bi.caller == this))
276+let bi = throw("Test error here")
277+
278+func bj (bk) = if ((bk.caller == this))
274279 then true
275- else bg
280+ else bh
276281
277282
278-func bj (bi) = {
279- let bc = be()
280- if ($isInstanceOf(bc, "ByteVector"))
283+func bl (bk) = {
284+ let bd = bf()
285+ if ($isInstanceOf(bd, "ByteVector"))
281286 then {
282- let bk = bc
283- if ((bi.callerPublicKey == bk))
287+ let bm = bd
288+ if ((bk.callerPublicKey == bm))
284289 then true
285- else bg
290+ else bh
286291 }
287- else if ($isInstanceOf(bc, "Unit"))
288- then bh(bi)
292+ else if ($isInstanceOf(bd, "Unit"))
293+ then bj(bk)
289294 else throw("Match error")
290295 }
291296
292297
293-func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw], 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)
294299
295300
296-func bx (bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs], 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)
297302
298303
299-func by (Z,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bz, bA, bB, bC, toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), bI], 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)
300305
301306
302-func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
307+func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
303308
304309
305-func bM (Z) = {
306- let bN = split(aF(at(Z)), k)
307- let ah = bN[1]
308- let ai = bN[2]
309- split(aF(ag(ah, ai)), 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)
310315 }
311316
312317
313-func bO (bP,bQ) = {
314- let bR = valueOrElse(getInteger(this, ae(bP)), 0)
315- let bS = valueOrElse(getInteger(this, X()), 0)
316- let bT = if ((bR == 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))
317322 then {
318- let bU = (bS + bQ)
319- $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
323+ let bW = (bU + bS)
324+ $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
320325 }
321- else $Tuple3(bR, nil, false)
322- bT
326+ else $Tuple3(bT, nil, false)
327+ bV
323328 }
324329
325330
326-func bV (bi) = {
327- let bW = split(valueOrElse(getString(R()), l), k)
328- if (containsElement(bW, toBase58String(bi.callerPublicKey)))
331+func bX (bk) = {
332+ let bY = split(valueOrElse(getString(S()), l), k)
333+ if (containsElement(bY, toBase58String(bk.callerPublicKey)))
329334 then true
330335 else {
331- let bX = bj(bi)
332- if ((bX == bX))
336+ let bZ = bl(bk)
337+ if ((bZ == bZ))
333338 then true
334339 else throw("Strict value is not equal to itself.")
335340 }
336341 }
337342
338343
339-func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
344+func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
340345
341346
342-@Callable(bi)
343-func constructor (cb,cc,bo,bp,bq,br,cd,ce) = {
344- let cf = bj(bi)
345- if ((cf == cf))
346- then [StringEntry(J(), bx(cb, cc, bo, bp, bq, br, cd)), IntegerEntry(V(), ce)]
347+func cd (aA,aB) = {
348+ let ai = getInteger(af(aA))
349+ let aj = getInteger(af(aB))
350+ if (if ((ai == unit))
351+ then true
352+ else (aj == unit))
353+ then false
354+ else {
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))
360+ then true
361+ else (ch != unit)
362+ ci
363+ }
364+ }
365+
366+
367+@Callable(bk)
368+func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
369+
370+
371+
372+@Callable(bk)
373+func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374+ then (ck == "WAVES")
375+ else false)
376+ then $Tuple2(nil, unit)
377+ else {
378+ let cl = value(getInteger(this, af(cj)))
379+ let cm = value(getInteger(this, af(ck)))
380+ let cn = getString(this, aq(toString(cl), toString(cm)))
381+ let co = if ((cn == unit))
382+ then unit
383+ else drop(value(cn), 4)
384+ $Tuple2(nil, co)
385+ }
386+
387+
388+
389+@Callable(bk)
390+func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
391+
392+
393+
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)]
347399 else throw("Strict value is not equal to itself.")
348400 }
349401
350402
351403
352-@Callable(bi)
353-func constructorV2 (cg) = {
354- let cf = bj(bi)
355- if ((cf == cf))
404+@Callable(bk)
405+func constructorV2 (cv) = {
406+ let cu = bl(bk)
407+ if ((cu == cu))
356408 then {
357- let ch = addressFromPublicKey(fromBase58String(cg))
358- if ((ch == ch))
359- then [StringEntry(M(), cg)]
409+ let cw = addressFromPublicKey(fromBase58String(cv))
410+ if ((cw == cw))
411+ then [StringEntry(N(), cv)]
360412 else throw("Strict value is not equal to itself.")
361413 }
362414 else throw("Strict value is not equal to itself.")
364416
365417
366418
367-@Callable(bi)
368-func constructorV3 (bt,bu,bv,bw) = {
369- let cf = bj(bi)
370- if ((cf == cf))
419+@Callable(bk)
420+func constructorV3 (bv,bw,bx,by) = {
421+ let cu = bl(bk)
422+ if ((cu == cu))
371423 then {
372- let aX = split(aF(J()), k)
373-[StringEntry(J(), bl(aX[1], aX[2], aX[3], aX[4], aX[5], aX[6], aX[7], bt, bu, bv, bw))]
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))]
374426 }
375427 else throw("Strict value is not equal to itself.")
376428 }
377429
378430
379431
380-@Callable(bi)
381-func constructorV4 (ci,cj) = {
382- let cf = bj(bi)
383- if ((cf == cf))
384- then [StringEntry(N(), ci), StringEntry(O(), makeString(cj, 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))]
385437 else throw("Strict value is not equal to itself.")
386438 }
387439
388440
389441
390-@Callable(bi)
391-func constructorV5 (ck) = {
392- let cf = bj(bi)
393- if ((cf == cf))
394- then [StringEntry(S(), ck)]
442+@Callable(bk)
443+func constructorV5 (cz) = {
444+ let cu = bl(bk)
445+ if ((cu == cu))
446+ then [StringEntry(T(), cz)]
395447 else throw("Strict value is not equal to itself.")
396448 }
397449
398450
399451
400-@Callable(bi)
401-func constructorV6 (cl,cm) = {
402- let cn = [bj(bi), if ((addressFromString(cl) != unit))
452+@Callable(bk)
453+func constructorV6 (cA,cB) = {
454+ let cC = [bl(bk), if ((addressFromString(cA) != unit))
403455 then true
404456 else "invalid voting emission contract address"]
405- if ((cn == cn))
406- then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
457+ if ((cC == cC))
458+ then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
407459 else throw("Strict value is not equal to itself.")
408460 }
409461
410462
411463
412-@Callable(bi)
413-func setManager (co) = {
414- let cf = bj(bi)
415- if ((cf == cf))
464+@Callable(bk)
465+func setManager (cD) = {
466+ let cu = bl(bk)
467+ if ((cu == cu))
416468 then {
417- let cp = fromBase58String(co)
418- if ((cp == cp))
419- then [StringEntry(Q(), co)]
469+ let cE = fromBase58String(cD)
470+ if ((cE == cE))
471+ then [StringEntry(R(), cD)]
420472 else throw("Strict value is not equal to itself.")
421473 }
422474 else throw("Strict value is not equal to itself.")
424476
425477
426478
427-@Callable(bi)
479+@Callable(bk)
428480 func confirmManager () = {
429- let cq = bf()
430- let cr = if (isDefined(cq))
481+ let cF = bg()
482+ let cG = if (isDefined(cF))
431483 then true
432484 else throw("No pending manager")
433- if ((cr == cr))
485+ if ((cG == cG))
434486 then {
435- let cs = if ((bi.callerPublicKey == value(cq)))
487+ let cH = if ((bk.callerPublicKey == value(cF)))
436488 then true
437489 else throw("You are not pending manager")
438- if ((cs == cs))
439- then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
490+ if ((cH == cH))
491+ then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
440492 else throw("Strict value is not equal to itself.")
441493 }
442494 else throw("Strict value is not equal to itself.")
444496
445497
446498
447-@Callable(bi)
448-func setAdmins (ct) = {
449- let cf = bj(bi)
450- if ((cf == cf))
451- then [StringEntry(R(), makeString(ct, k))]
499+@Callable(bk)
500+func setAdmins (cI) = {
501+ let cu = bl(bk)
502+ if ((cu == cu))
503+ then [StringEntry(S(), makeString(cI, k))]
452504 else throw("Strict value is not equal to itself.")
453505 }
454506
455507
456508
457-@Callable(bi)
458-func activateNewPool (Z,bB,bC,cu,cv,cw,bI,cx) = {
459- let cf = bV(bi)
460- if ((cf == cf))
461- then if (isDefined(getString(at(Z))))
462- then throw((("Pool address " + Z) + " already registered."))
509+@Callable(bk)
510+func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511+ let cu = bX(bk)
512+ if ((cu == cu))
513+ then if (isDefined(getString(au(aa))))
514+ then throw((("Pool address " + aa) + " already registered."))
463515 else {
464- let cy = bO(bB, 1)
465- let cz = cy._1
466- let cA = bO(bC, if (cy._3)
516+ let cN = bQ(bD, 1)
517+ let cO = cN._1
518+ let cP = bQ(bE, if (cN._3)
467519 then 2
468520 else 1)
469- let cB = cA._1
470- let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
471- let cD = getBinaryValue(L())
472- let cE = getString(this, ag(toString(cz), toString(cB)))
473- if (isDefined(cE))
474- then throw((((("Pool " + bB) + "/") + bC) + " 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."))
475527 else {
476- let cF = value(getString(this, ag(toString(cz), toString(cB))))
477- let cG = if ((bB == "WAVES"))
528+ let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529+ let cV = if ((bD == "WAVES"))
478530 then j
479- else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
480- let cH = if ((bC == "WAVES"))
531+ else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532+ let cW = if ((bE == "WAVES"))
481533 then j
482- else pow(10, 0, value(assetInfo(fromBase58String(bC))).decimals, 0, 0, DOWN)
483- let cI = Issue(cu, cv, 1, 8, true)
484- let bA = calculateAssetId(cI)
485- let cJ = toBase58String(bA)
486- let cK = invoke(addressFromStringValue(Z), "activate", [bB, bC], nil)
487- if ((cK == cK))
488- then if ((cK != "success"))
534+ else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
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"))
489541 then throw("Pool initialisation error happened.")
490542 else {
491- let ck = addressFromStringValue(aF(S()))
492- let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493- if ((cL == cL))
543+ let cz = addressFromStringValue(aG(T()))
544+ let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545+ if ((da == da))
494546 then {
495- let cM = invoke(ck, "addLabel", [cJ, g], nil)
496- if ((cM == cM))
547+ let db = invoke(cz, "addLabel", [cY, g], nil)
548+ if ((db == db))
497549 then {
498- let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499- if ((cN == cN))
550+ let dc = invoke(cz, "setLogo", [cY, cM], nil)
551+ if ((dc == dc))
500552 then {
501- let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502- if ((cO == cO))
553+ let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554+ if ((dd == dd))
503555 then {
504- let cP = invoke(ck, "increaseAssetPoolsNumber", [bB], nil)
505- if ((cP == cP))
506- then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bA, 1), StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(m), cJ, bB, bC, cG, cH, cz, cB, j, bI)), StringEntry(an(cJ), bJ(cz, cB)), StringEntry(ap(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(at(Z), bJ(cz, cB)), StringEntry(av(cz, cB), Z), StringEntry(ax(cJ), Z), StringEntry(aw(Z), cJ), IntegerEntry(Y(Z), cw), IntegerEntry(as(Z), h)]), cJ)
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)
507559 else throw("Strict value is not equal to itself.")
508560 }
509561 else throw("Strict value is not equal to itself.")
522574
523575
524576
525-@Callable(bi)
526-func managePool (Z,cQ) = {
527- let cf = bj(bi)
528- if ((cf == cf))
577+@Callable(bk)
578+func managePool (aa,df) = {
579+ let cu = bl(bk)
580+ if ((cu == cu))
529581 then {
530- let cE = bM(Z)
531- let bz = cE[u]
532- let cJ = cE[v]
533- let bB = cE[w]
534- let bC = cE[x]
535- let cG = parseIntValue(cE[y])
536- let cH = parseIntValue(cE[z])
537- let cz = parseIntValue(cE[A])
538- let cB = parseIntValue(cE[B])
539- let cR = parseIntValue(cE[C])
540- let bI = cE[D]
541-[StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(cQ), cJ, bB, bC, cG, cH, cz, cB, cR, bI))]
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))]
542594 }
543595 else throw("Strict value is not equal to itself.")
544596 }
545597
546598
547599
548-@Callable(bi)
549-func emit (cS) = {
550- let cT = bi.caller
551- let cU = bi.originCaller
552- let cV = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
553- let cW = fromBase58String(cV)
554- let cj = split(valueOrElse(getString(O()), l), k)
555- let ci = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
556- if ((0 >= cS))
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))
557609 then nil
558- else if (containsElement(cj, toString(cT)))
559- then $Tuple2(nil, ci)
560- else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bi.caller, cS, cW)], "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")
561613 }
562614
563615
564616
565-@Callable(bi)
566-func burn (cX) = {
567- let cT = bi.caller
568- let cU = bi.originCaller
569- let cY = value(bi.payments[0])
570- let cZ = value(cY.amount)
571- let da = toBase58String(value(cY.assetId))
572- let db = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
573- if ((da != db))
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))
574626 then throw("Invalid asset passed.")
575- else if ((cX != cZ))
627+ else if ((dn != dp))
576628 then throw("Invalid amount passed.")
577629 else {
578- let cW = fromBase58String(db)
579- $Tuple2([Burn(cW, cX)], "success")
630+ let dm = fromBase58String(dr)
631+ $Tuple2([Burn(dm, dn)], "success")
580632 }
581633 }
582634
583635
584636
585-@Callable(bi)
586-func modifyWeight (bA,dc) = {
587- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
637+@Callable(bk)
638+func modifyWeight (bC,ds) = {
639+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
588640 then true
589- else bj(bi)
590- if ((cf == cf))
641+ else bl(bk)
642+ if ((cu == cu))
591643 then {
592- let au = aF(ax(bA))
593- let dd = Y(au)
594- let de = Y(f)
595- let df = valueOrElse(getInteger(de), 0)
596- let cw = valueOrElse(getInteger(dd), 0)
597- let dg = dc
598- let aX = split(aF(J()), k)
599- let cb = aZ(aX)
600- let dh = invoke(cb, "onModifyWeight", [bA, au], nil)
601- if ((dh == dh))
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))
602654 then {
603- let di = if ((df == 0))
655+ let dy = if ((dv == 0))
604656 then nil
605- else [IntegerEntry(de, 0)]
606- let dj = aa(au, 0)
607- let dk = getInteger(dj)
608- let dl = if ((dk == unit))
657+ else [IntegerEntry(du, 0)]
658+ let dz = ab(av, 0)
659+ let dA = getInteger(dz)
660+ let dB = if ((dA == unit))
609661 then nil
610- else [DeleteEntry(dj)]
611- (([IntegerEntry(dd, dg)] ++ di) ++ dl)
662+ else [DeleteEntry(dz)]
663+ (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
612664 }
613665 else throw("Strict value is not equal to itself.")
614666 }
617669
618670
619671
620-@Callable(bi)
621-func modifyWeights (dm,dn,do,dp) = {
622- let cf = bj(bi)
623- if ((cf == cf))
672+@Callable(bk)
673+func modifyWeights (dC,dD,dE,dF) = {
674+ let cu = bl(bk)
675+ if ((cu == cu))
624676 then {
625- let dq = ((5 * e) / 100)
626- let dr = ((5 * e) / 100)
627- let ds = ((5 * e) / 100)
628- let aX = split(aF(J()), k)
629- let dt = aZ(aX)
630- let du = ba(aX)
631- let dv = Y(dm)
632- let dw = Y(dn)
633- let dx = Y(do)
634- let dy = Y(dp)
635- let dz = aI(dv)
636- let dA = aI(dw)
637- let dB = (dz - ds)
638- let dC = (dA - ds)
639- if ((0 >= dB))
640- then throw(("invalid btcWeightNew: " + toString(dB)))
641- else if ((0 >= dC))
642- then throw(("invalid ethWeightNew: " + toString(dC)))
677+ let dG = ((5 * e) / 100)
678+ let dH = ((5 * e) / 100)
679+ let dI = ((5 * e) / 100)
680+ let aY = split(aG(K()), k)
681+ let dJ = ba(aY)
682+ let dK = bb(aY)
683+ let dL = Z(dC)
684+ let dM = Z(dD)
685+ let dN = Z(dE)
686+ let dO = Z(dF)
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)))
643695 else {
644- let dD = aF(aw(dm))
645- let dE = aF(aw(dn))
646- let dF = aF(aw(do))
647- let dG = aF(aw(dp))
648- let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
649- if ((dH == dH))
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))
650702 then {
651- let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652- if ((dI == dI))
703+ let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704+ if ((dY == dY))
653705 then {
654- let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655- if ((dJ == dJ))
706+ let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707+ if ((dZ == dZ))
656708 then {
657- let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
658- if ((dK == dK))
659- then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(aa(dm, 0), dz), IntegerEntry(aa(dn, 0), dA), IntegerEntry(aa(do, 0), dq), IntegerEntry(aa(dp, 0), dr)]
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)]
660712 else throw("Strict value is not equal to itself.")
661713 }
662714 else throw("Strict value is not equal to itself.")
671723
672724
673725
674-@Callable(bi)
675-func checkWxEmissionPoolLabel (az,aA) = {
676- let dL = {
677- let bc = getBoolean(ay(az, aA))
678- if ($isInstanceOf(bc, "Boolean"))
726+@Callable(bk)
727+func checkWxEmissionPoolLabel (aA,aB) = {
728+ let eb = {
729+ let bd = getBoolean(az(aA, aB))
730+ if ($isInstanceOf(bd, "Boolean"))
679731 then {
680- let dM = bc
681- dM
732+ let ec = bd
733+ ec
682734 }
683735 else false
684736 }
685- $Tuple2(nil, dL)
737+ $Tuple2(nil, eb)
686738 }
687739
688740
689741
690-@Callable(bi)
691-func setWxEmissionPoolLabel (az,aA) = {
692- let cf = bV(bi)
693- if ((cf == cf))
694- then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
742+@Callable(bk)
743+func setWxEmissionPoolLabel (aA,aB) = {
744+ let cu = bX(bk)
745+ if ((cu == cu))
746+ then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
695747 else throw("Strict value is not equal to itself.")
696748 }
697749
698750
699751
700-@Callable(bi)
701-func deleteWxEmissionPoolLabel (az,aA) = {
702- let cf = if (bh(bi))
752+@Callable(bk)
753+func deleteWxEmissionPoolLabel (aA,aB) = {
754+ let cu = if (bj(bk))
703755 then true
704- else bV(bi)
705- if ((cf == cf))
706- then $Tuple2([DeleteEntry(ay(az, aA))], unit)
756+ else bX(bk)
757+ if ((cu == cu))
758+ then $Tuple2([DeleteEntry(az(aA, aB))], unit)
707759 else throw("Strict value is not equal to itself.")
708760 }
709761
710762
711763
712-@Callable(bi)
713-func onVerificationLoss (dN) = {
714- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
764+@Callable(bk)
765+func onVerificationLoss (ed) = {
766+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
715767 then true
716- else bj(bi)
717- if ((cf == cf))
768+ else bl(bk)
769+ if ((cu == cu))
718770 then {
719- let cm = bb()
720- let dO = if ((size(cm) > 0))
771+ let cB = bc()
772+ let ee = if ((size(cB) > 0))
721773 then true
722774 else throw("invalid price assets")
723- if ((dO == dO))
775+ if ((ee == ee))
724776 then {
725- func dP (dQ,dR) = {
726- let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727- if ((dS == dS))
777+ func ef (eg,eh) = {
778+ let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779+ if ((ei == ei))
728780 then unit
729781 else throw("Strict value is not equal to itself.")
730782 }
731783
732- let dT = {
733- let dU = cm
734- let dV = size(dU)
735- let dW = unit
736- func dX (dY,dZ) = if ((dZ >= dV))
737- then dY
738- else dP(dY, dU[dZ])
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])
739791
740- func ea (dY,dZ) = if ((dZ >= dV))
741- then dY
742- else throw("List size exceeds 3")
792+ func eq (eo,ep) = if ((ep >= el))
793+ then eo
794+ else throw("List size exceeds 2")
743795
744- ea(dX(dX(dX(dW, 0), 1), 2), 3)
796+ eq(en(en(em, 0), 1), 2)
745797 }
746- if ((dT == dT))
798+ if ((ej == ej))
747799 then $Tuple2(nil, unit)
748800 else throw("Strict value is not equal to itself.")
749801 }
754806
755807
756808
757-@Callable(bi)
758-func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
759- let cE = bM(Z)
760- let ak = $Tuple2(parseIntValue(cE[A]), parseIntValue(cE[B]))
761- let eb = valueOrElse(getBoolean(aj(ak)), false)
762- let ec = valueOrElse(getBoolean(am()), false)
763- $Tuple2(nil, if (ec)
809+@Callable(bk)
810+func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
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)
764816 then true
765- else eb)
817+ else er)
766818 }
767819
768820
769821
770-@Callable(bi)
771-func getInFeeREADONLY (Z) = {
772- let ed = bY(aB(Z), aC(), 0)
773- $Tuple2(nil, ed)
822+@Callable(bk)
823+func getInFeeREADONLY (aa) = {
824+ let et = ca(aC(aa), aD(), 0)
825+ $Tuple2(nil, et)
774826 }
775827
776828
777829
778-@Callable(bi)
779-func getOutFeeREADONLY (Z) = {
780- let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781- $Tuple2(nil, ed)
830+@Callable(bk)
831+func getOutFeeREADONLY (aa) = {
832+ let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833+ $Tuple2(nil, et)
782834 }
783835
784836
785837
786-@Callable(bi)
787-func poolInfoREADONLY (ee,ef) = {
788- let eg = getInteger(this, ae(ee))
789- let eh = getInteger(this, ae(ef))
790- let ei = getString(this, av(value(eg), value(eh)))
791- let ej = getString(this, aw(value(ei)))
792- let ek = if (if (isDefined(eg))
793- then isDefined(eh)
838+@Callable(bk)
839+func poolInfoREADONLY (eu,ev) = {
840+ let ew = getInteger(this, af(eu))
841+ let ex = getInteger(this, af(ev))
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)
794846 else false)
795- then isDefined(ei)
847+ then isDefined(ey)
796848 else false
797- let el = if (ek)
798- then $Tuple2(addressFromStringValue(value(ei)), aJ(value(ej)))
849+ let eA = if (cT)
850+ then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
799851 else unit
800- $Tuple2(nil, el)
852+ $Tuple2(nil, eA)
801853 }
802854
803855
804856
805-@Callable(bi)
806-func getPoolStatusREADONLY (Z) = {
807- let bN = split(aF(at(Z)), k)
808- let ah = bN[1]
809- let ai = bN[2]
810- let em = split(aF(ag(ah, ai)), k)
811- $Tuple2(nil, parseIntValue(em[u]))
857+@Callable(bk)
858+func getPoolStatusREADONLY (aa) = {
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]))
812864 }
813865
814866
815-@Verifier(en)
816-func eo () = {
817- let ep = {
818- let bc = be()
819- if ($isInstanceOf(bc, "ByteVector"))
867+
868+@Callable(bk)
869+func getPoolConfigREADONLY (aa) = {
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)
875+ }
876+
877+
878+
879+@Callable(bk)
880+func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
881+
882+
883+@Verifier(eB)
884+func eC () = {
885+ let eD = {
886+ let bd = bf()
887+ if ($isInstanceOf(bd, "ByteVector"))
820888 then {
821- let bk = bc
822- bk
889+ let bm = bd
890+ bm
823891 }
824- else if ($isInstanceOf(bc, "Unit"))
825- then en.senderPublicKey
892+ else if ($isInstanceOf(bd, "Unit"))
893+ then eB.senderPublicKey
826894 else throw("Match error")
827895 }
828- sigVerify(en.bodyBytes, en.proofs[0], ep)
896+ sigVerify(eB.bodyBytes, eB.proofs[0], eD)
829897 }
830898
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# 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
77-func J () = "%s__factoryConfig"
77+func J () = "%s__swapContract"
7878
7979
80-func K () = "%s__lpTokensList"
80+func K () = "%s__factoryConfig"
8181
8282
83-func L () = "%s%s__pool__scriptHash"
83+func L () = "%s__lpTokensList"
8484
8585
86-func M () = "%s%s__matcher__publicKey"
86+func M () = "%s%s__pool__scriptHash"
8787
8888
89-func N () = "%s__legacyFactoryContract"
89+func N () = "%s%s__matcher__publicKey"
9090
9191
92-func O () = "%s__legacyPools"
92+func O () = "%s__legacyFactoryContract"
9393
9494
95-func P () = "%s__managerPublicKey"
95+func P () = "%s__legacyPools"
9696
9797
98-func Q () = "%s__pendingManagerPublicKey"
98+func Q () = "%s__managerPublicKey"
9999
100100
101-func R () = "%s__adminPubKeys"
101+func R () = "%s__pendingManagerPublicKey"
102102
103103
104-func S () = "%s__assetsStoreContract"
104+func S () = "%s__adminPubKeys"
105105
106106
107-func T () = "%s__votingEmissionContract"
107+func T () = "%s__assetsStoreContract"
108108
109109
110-func U () = makeString(["%s", "priceAssets"], k)
110+func U () = "%s__votingEmissionContract"
111111
112112
113-func V () = "%s__priceDecimals"
113+func V () = makeString(["%s", "priceAssets"], k)
114114
115115
116-func W () = "%s__shutdown"
116+func W () = "%s__priceDecimals"
117117
118118
119-func X () = "%s__nextInternalAssetId"
119+func X () = "%s__shutdown"
120120
121121
122-func Y (Z) = ("%s%s__poolWeight__" + Z)
122+func Y () = "%s__nextInternalAssetId"
123123
124124
125-func aa (Z,ab) = ((("%s%s__poolWeight__" + Z) + "__") + toString(ab))
125+func Z (aa) = ("%s%s__poolWeight__" + aa)
126126
127127
128-func ac (ad) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ad))
128+func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129129
130130
131-func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
131+func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132132
133133
134-func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
134+func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135135
136136
137-func aj (ak) = {
138- let al = ak
139- let ah = al._1
140- let ai = al._2
141- makeString(["%d%d%s", toString(ah), toString(ai), "oneTokenOperationsDisabled"], k)
137+func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+
139+
140+func ak (al) = {
141+ let am = al
142+ let ai = am._1
143+ let aj = am._2
144+ makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
142145 }
143146
144147
145-func am () = makeString(["%s", "oneTokenOperationsDisabled"], k)
148+func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
146149
147150
148-func an (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2Pool")
151+func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
149152
150153
151-func ap (aq,ar) = (((("%d%d%s%s__" + aq) + "__") + ar) + "__mappings__PoolAssets2LpAsset")
154+func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
152155
153156
154-func as (Z) = ("%s%s__spread__" + Z)
157+func at (aa) = ("%s%s__spread__" + aa)
155158
156159
157-func at (au) = (("%s%s%s__" + au) + "__mappings__poolContract2PoolAssets")
160+func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
158161
159162
160-func av (aq,ar) = (((("%d%d%s%s__" + toString(aq)) + "__") + toString(ar)) + "__mappings__poolAssets2PoolContract")
163+func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
161164
162165
163-func aw (au) = (("%s%s%s__" + au) + "__mappings__poolContract2LpAsset")
166+func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
164167
165168
166-func ax (ao) = (("%s%s%s__" + ao) + "__mappings__lpAsset2PoolContract")
169+func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
167170
168171
169-func ay (az,aA) = ((("%s%s%s__wxEmission__" + az) + "__") + aA)
172+func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
170173
171174
172-func aB (Z) = ("%s%s__inFee__" + Z)
175+func aC (aa) = ("%s%s__inFee__" + aa)
173176
174177
175-func aC () = "%s__inFeeDefault"
178+func aD () = "%s__inFeeDefault"
176179
177180
178-func aD (Z) = ("%s%s__outFee__" + Z)
181+func aE (aa) = ("%s%s__outFee__" + aa)
179182
180183
181-func aE () = "%s__outFeeDefault"
184+func aF () = "%s__outFeeDefault"
182185
183186
184-func aF (aG) = valueOrErrorMessage(getString(this, aG), ("No data for this.key=" + aG))
187+func aG (aH) = valueOrErrorMessage(getString(this, aH), ("No data for this.key=" + aH))
185188
186189
187-func aH (aG) = valueOrErrorMessage(getBoolean(this, aG), ("No data for this.key=" + aG))
190+func aI (aH) = valueOrErrorMessage(getBoolean(this, aH), ("No data for this.key=" + aH))
188191
189192
190-func aI (aG) = valueOrErrorMessage(getInteger(this, aG), ("No data for this.key=" + aG))
193+func aJ (aH) = valueOrErrorMessage(getInteger(this, aH), ("No data for this.key=" + aH))
191194
192195
193-func aJ (aK) = if ((aK == i))
196+func aK (aL) = if ((aL == i))
194197 then unit
195- else fromBase58String(aK)
198+ else fromBase58String(aL)
196199
197200
198-let aL = 1
201+let aM = 1
199202
200-let aM = 2
203+let aN = 2
201204
202-let aN = 3
205+let aO = 3
203206
204-let aO = 4
207+let aP = 4
205208
206-let aP = 5
209+let aQ = 5
207210
208-let aQ = 6
211+let aR = 6
209212
210-let aR = 7
213+let aS = 7
211214
212-let aS = 8
215+let aT = 8
213216
214-let aT = 9
217+let aU = 9
215218
216-let aU = 10
219+let aV = 10
217220
218-let aV = 11
221+let aW = 11
219222
220-func aW (aX) = addressFromStringValue(aX[aM])
223+func aX (aY) = addressFromStringValue(aY[aN])
221224
222225
223-func aY (aX) = addressFromStringValue(aX[aP])
226+func aZ (aY) = addressFromStringValue(aY[aQ])
224227
225228
226-func aZ (aX) = addressFromStringValue(aX[aL])
229+func ba (aY) = addressFromStringValue(aY[aM])
227230
228231
229-func ba (aX) = addressFromStringValue(aX[aU])
232+func bb (aY) = addressFromStringValue(aY[aV])
230233
231234
232-func bb () = {
233- let bc = getString(U())
234- if ($isInstanceOf(bc, "String"))
235+func bc () = {
236+ let bd = getString(V())
237+ if ($isInstanceOf(bd, "String"))
235238 then {
236- let bd = bc
237- if ((size(bd) == 0))
239+ let be = bd
240+ if ((size(be) == 0))
238241 then nil
239- else split(bd, k)
242+ else split(be, k)
240243 }
241244 else nil
242245 }
243246
244247
245-func be () = {
246- let bc = getString(P())
247- if ($isInstanceOf(bc, "String"))
248+func bf () = {
249+ let bd = getString(Q())
250+ if ($isInstanceOf(bd, "String"))
248251 then {
249- let bd = bc
250- fromBase58String(bd)
252+ let be = bd
253+ fromBase58String(be)
251254 }
252- else if ($isInstanceOf(bc, "Unit"))
255+ else if ($isInstanceOf(bd, "Unit"))
253256 then unit
254257 else throw("Match error")
255258 }
256259
257260
258-func bf () = {
259- let bc = getString(Q())
260- if ($isInstanceOf(bc, "String"))
261+func bg () = {
262+ let bd = getString(R())
263+ if ($isInstanceOf(bd, "String"))
261264 then {
262- let bd = bc
263- fromBase58String(bd)
265+ let be = bd
266+ fromBase58String(be)
264267 }
265- else if ($isInstanceOf(bc, "Unit"))
268+ else if ($isInstanceOf(bd, "Unit"))
266269 then unit
267270 else throw("Match error")
268271 }
269272
270273
271-let bg = throw("Permission denied")
274+let bh = throw("Permission denied")
272275
273-func bh (bi) = if ((bi.caller == this))
276+let bi = throw("Test error here")
277+
278+func bj (bk) = if ((bk.caller == this))
274279 then true
275- else bg
280+ else bh
276281
277282
278-func bj (bi) = {
279- let bc = be()
280- if ($isInstanceOf(bc, "ByteVector"))
283+func bl (bk) = {
284+ let bd = bf()
285+ if ($isInstanceOf(bd, "ByteVector"))
281286 then {
282- let bk = bc
283- if ((bi.callerPublicKey == bk))
287+ let bm = bd
288+ if ((bk.callerPublicKey == bm))
284289 then true
285- else bg
290+ else bh
286291 }
287- else if ($isInstanceOf(bc, "Unit"))
288- then bh(bi)
292+ else if ($isInstanceOf(bd, "Unit"))
293+ then bj(bk)
289294 else throw("Match error")
290295 }
291296
292297
293-func bl (bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw], 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)
294299
295300
296-func bx (bm,bn,bo,bp,bq,br,bs) = makeString(["%s%s%s%s%s%s", bm, bn, bo, bp, bq, br, bs], 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)
297302
298303
299-func by (Z,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Z, bz, bA, bB, bC, toString(bD), toString(bE), toString(bF), toString(bG), toString(bH), bI], 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)
300305
301306
302-func bJ (bK,bL) = makeString(["%d%d", toString(bK), toString(bL)], k)
307+func bL (bM,bN) = makeString(["%d%d", toString(bM), toString(bN)], k)
303308
304309
305-func bM (Z) = {
306- let bN = split(aF(at(Z)), k)
307- let ah = bN[1]
308- let ai = bN[2]
309- split(aF(ag(ah, ai)), 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)
310315 }
311316
312317
313-func bO (bP,bQ) = {
314- let bR = valueOrElse(getInteger(this, ae(bP)), 0)
315- let bS = valueOrElse(getInteger(this, X()), 0)
316- let bT = if ((bR == 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))
317322 then {
318- let bU = (bS + bQ)
319- $Tuple3(bU, [IntegerEntry(X(), bU), IntegerEntry(ae(bP), bU), StringEntry(ac(bU), bP)], true)
323+ let bW = (bU + bS)
324+ $Tuple3(bW, [IntegerEntry(Y(), bW), IntegerEntry(af(bR), bW), StringEntry(ad(bW), bR)], true)
320325 }
321- else $Tuple3(bR, nil, false)
322- bT
326+ else $Tuple3(bT, nil, false)
327+ bV
323328 }
324329
325330
326-func bV (bi) = {
327- let bW = split(valueOrElse(getString(R()), l), k)
328- if (containsElement(bW, toBase58String(bi.callerPublicKey)))
331+func bX (bk) = {
332+ let bY = split(valueOrElse(getString(S()), l), k)
333+ if (containsElement(bY, toBase58String(bk.callerPublicKey)))
329334 then true
330335 else {
331- let bX = bj(bi)
332- if ((bX == bX))
336+ let bZ = bl(bk)
337+ if ((bZ == bZ))
333338 then true
334339 else throw("Strict value is not equal to itself.")
335340 }
336341 }
337342
338343
339-func bY (aG,bZ,ca) = valueOrElse(getInteger(this, aG), valueOrElse(getInteger(this, bZ), ca))
344+func ca (aH,cb,cc) = valueOrElse(getInteger(this, aH), valueOrElse(getInteger(this, cb), cc))
340345
341346
342-@Callable(bi)
343-func constructor (cb,cc,bo,bp,bq,br,cd,ce) = {
344- let cf = bj(bi)
345- if ((cf == cf))
346- then [StringEntry(J(), bx(cb, cc, bo, bp, bq, br, cd)), IntegerEntry(V(), ce)]
347+func cd (aA,aB) = {
348+ let ai = getInteger(af(aA))
349+ let aj = getInteger(af(aB))
350+ if (if ((ai == unit))
351+ then true
352+ else (aj == unit))
353+ then false
354+ else {
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))
360+ then true
361+ else (ch != unit)
362+ ci
363+ }
364+ }
365+
366+
367+@Callable(bk)
368+func getSwapContractREADONLY () = $Tuple2(nil, aG(J()))
369+
370+
371+
372+@Callable(bk)
373+func getLpAssetFromPoolAssetsREADONLY (cj,ck) = if (if ((cj == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
374+ then (ck == "WAVES")
375+ else false)
376+ then $Tuple2(nil, unit)
377+ else {
378+ let cl = value(getInteger(this, af(cj)))
379+ let cm = value(getInteger(this, af(ck)))
380+ let cn = getString(this, aq(toString(cl), toString(cm)))
381+ let co = if ((cn == unit))
382+ then unit
383+ else drop(value(cn), 4)
384+ $Tuple2(nil, co)
385+ }
386+
387+
388+
389+@Callable(bk)
390+func getPoolAddressFromLpAssetREADONLY (cp) = $Tuple2(nil, valueOrElse(getString(this, ay(cp)), ""))
391+
392+
393+
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)]
347399 else throw("Strict value is not equal to itself.")
348400 }
349401
350402
351403
352-@Callable(bi)
353-func constructorV2 (cg) = {
354- let cf = bj(bi)
355- if ((cf == cf))
404+@Callable(bk)
405+func constructorV2 (cv) = {
406+ let cu = bl(bk)
407+ if ((cu == cu))
356408 then {
357- let ch = addressFromPublicKey(fromBase58String(cg))
358- if ((ch == ch))
359- then [StringEntry(M(), cg)]
409+ let cw = addressFromPublicKey(fromBase58String(cv))
410+ if ((cw == cw))
411+ then [StringEntry(N(), cv)]
360412 else throw("Strict value is not equal to itself.")
361413 }
362414 else throw("Strict value is not equal to itself.")
363415 }
364416
365417
366418
367-@Callable(bi)
368-func constructorV3 (bt,bu,bv,bw) = {
369- let cf = bj(bi)
370- if ((cf == cf))
419+@Callable(bk)
420+func constructorV3 (bv,bw,bx,by) = {
421+ let cu = bl(bk)
422+ if ((cu == cu))
371423 then {
372- let aX = split(aF(J()), k)
373-[StringEntry(J(), bl(aX[1], aX[2], aX[3], aX[4], aX[5], aX[6], aX[7], bt, bu, bv, bw))]
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))]
374426 }
375427 else throw("Strict value is not equal to itself.")
376428 }
377429
378430
379431
380-@Callable(bi)
381-func constructorV4 (ci,cj) = {
382- let cf = bj(bi)
383- if ((cf == cf))
384- then [StringEntry(N(), ci), StringEntry(O(), makeString(cj, 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))]
385437 else throw("Strict value is not equal to itself.")
386438 }
387439
388440
389441
390-@Callable(bi)
391-func constructorV5 (ck) = {
392- let cf = bj(bi)
393- if ((cf == cf))
394- then [StringEntry(S(), ck)]
442+@Callable(bk)
443+func constructorV5 (cz) = {
444+ let cu = bl(bk)
445+ if ((cu == cu))
446+ then [StringEntry(T(), cz)]
395447 else throw("Strict value is not equal to itself.")
396448 }
397449
398450
399451
400-@Callable(bi)
401-func constructorV6 (cl,cm) = {
402- let cn = [bj(bi), if ((addressFromString(cl) != unit))
452+@Callable(bk)
453+func constructorV6 (cA,cB) = {
454+ let cC = [bl(bk), if ((addressFromString(cA) != unit))
403455 then true
404456 else "invalid voting emission contract address"]
405- if ((cn == cn))
406- then [StringEntry(T(), cl), StringEntry(U(), makeString(cm, k))]
457+ if ((cC == cC))
458+ then [StringEntry(U(), cA), StringEntry(V(), makeString(cB, k))]
407459 else throw("Strict value is not equal to itself.")
408460 }
409461
410462
411463
412-@Callable(bi)
413-func setManager (co) = {
414- let cf = bj(bi)
415- if ((cf == cf))
464+@Callable(bk)
465+func setManager (cD) = {
466+ let cu = bl(bk)
467+ if ((cu == cu))
416468 then {
417- let cp = fromBase58String(co)
418- if ((cp == cp))
419- then [StringEntry(Q(), co)]
469+ let cE = fromBase58String(cD)
470+ if ((cE == cE))
471+ then [StringEntry(R(), cD)]
420472 else throw("Strict value is not equal to itself.")
421473 }
422474 else throw("Strict value is not equal to itself.")
423475 }
424476
425477
426478
427-@Callable(bi)
479+@Callable(bk)
428480 func confirmManager () = {
429- let cq = bf()
430- let cr = if (isDefined(cq))
481+ let cF = bg()
482+ let cG = if (isDefined(cF))
431483 then true
432484 else throw("No pending manager")
433- if ((cr == cr))
485+ if ((cG == cG))
434486 then {
435- let cs = if ((bi.callerPublicKey == value(cq)))
487+ let cH = if ((bk.callerPublicKey == value(cF)))
436488 then true
437489 else throw("You are not pending manager")
438- if ((cs == cs))
439- then [StringEntry(P(), toBase58String(value(cq))), DeleteEntry(Q())]
490+ if ((cH == cH))
491+ then [StringEntry(Q(), toBase58String(value(cF))), DeleteEntry(R())]
440492 else throw("Strict value is not equal to itself.")
441493 }
442494 else throw("Strict value is not equal to itself.")
443495 }
444496
445497
446498
447-@Callable(bi)
448-func setAdmins (ct) = {
449- let cf = bj(bi)
450- if ((cf == cf))
451- then [StringEntry(R(), makeString(ct, k))]
499+@Callable(bk)
500+func setAdmins (cI) = {
501+ let cu = bl(bk)
502+ if ((cu == cu))
503+ then [StringEntry(S(), makeString(cI, k))]
452504 else throw("Strict value is not equal to itself.")
453505 }
454506
455507
456508
457-@Callable(bi)
458-func activateNewPool (Z,bB,bC,cu,cv,cw,bI,cx) = {
459- let cf = bV(bi)
460- if ((cf == cf))
461- then if (isDefined(getString(at(Z))))
462- then throw((("Pool address " + Z) + " already registered."))
509+@Callable(bk)
510+func activateNewPool (aa,bD,bE,cJ,cK,cL,bK,cM) = {
511+ let cu = bX(bk)
512+ if ((cu == cu))
513+ then if (isDefined(getString(au(aa))))
514+ then throw((("Pool address " + aa) + " already registered."))
463515 else {
464- let cy = bO(bB, 1)
465- let cz = cy._1
466- let cA = bO(bC, if (cy._3)
516+ let cN = bQ(bD, 1)
517+ let cO = cN._1
518+ let cP = bQ(bE, if (cN._3)
467519 then 2
468520 else 1)
469- let cB = cA._1
470- let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Z)), ("No script has been found on pool account " + Z))
471- let cD = getBinaryValue(L())
472- let cE = getString(this, ag(toString(cz), toString(cB)))
473- if (isDefined(cE))
474- then throw((((("Pool " + bB) + "/") + bC) + " 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."))
475527 else {
476- let cF = value(getString(this, ag(toString(cz), toString(cB))))
477- let cG = if ((bB == "WAVES"))
528+ let cU = value(getString(this, ah(toString(cO), toString(cQ))))
529+ let cV = if ((bD == "WAVES"))
478530 then j
479- else pow(10, 0, value(assetInfo(fromBase58String(bB))).decimals, 0, 0, DOWN)
480- let cH = if ((bC == "WAVES"))
531+ else pow(10, 0, value(assetInfo(fromBase58String(bD))).decimals, 0, 0, DOWN)
532+ let cW = if ((bE == "WAVES"))
481533 then j
482- else pow(10, 0, value(assetInfo(fromBase58String(bC))).decimals, 0, 0, DOWN)
483- let cI = Issue(cu, cv, 1, 8, true)
484- let bA = calculateAssetId(cI)
485- let cJ = toBase58String(bA)
486- let cK = invoke(addressFromStringValue(Z), "activate", [bB, bC], nil)
487- if ((cK == cK))
488- then if ((cK != "success"))
534+ else pow(10, 0, value(assetInfo(fromBase58String(bE))).decimals, 0, 0, DOWN)
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"))
489541 then throw("Pool initialisation error happened.")
490542 else {
491- let ck = addressFromStringValue(aF(S()))
492- let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
493- if ((cL == cL))
543+ let cz = addressFromStringValue(aG(T()))
544+ let da = invoke(cz, "createOrUpdate", [cY, cJ, false], nil)
545+ if ((da == da))
494546 then {
495- let cM = invoke(ck, "addLabel", [cJ, g], nil)
496- if ((cM == cM))
547+ let db = invoke(cz, "addLabel", [cY, g], nil)
548+ if ((db == db))
497549 then {
498- let cN = invoke(ck, "setLogo", [cJ, cx], nil)
499- if ((cN == cN))
550+ let dc = invoke(cz, "setLogo", [cY, cM], nil)
551+ if ((dc == dc))
500552 then {
501- let cO = invoke(ck, "addAssetsLink", [bB, bC, cJ], nil)
502- if ((cO == cO))
553+ let dd = invoke(cz, "addAssetsLink", [bD, bE, cY], nil)
554+ if ((dd == dd))
503555 then {
504- let cP = invoke(ck, "increaseAssetPoolsNumber", [bB], nil)
505- if ((cP == cP))
506- then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bA, 1), StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(m), cJ, bB, bC, cG, cH, cz, cB, j, bI)), StringEntry(an(cJ), bJ(cz, cB)), StringEntry(ap(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(at(Z), bJ(cz, cB)), StringEntry(av(cz, cB), Z), StringEntry(ax(cJ), Z), StringEntry(aw(Z), cJ), IntegerEntry(Y(Z), cw), IntegerEntry(as(Z), h)]), cJ)
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)
507559 else throw("Strict value is not equal to itself.")
508560 }
509561 else throw("Strict value is not equal to itself.")
510562 }
511563 else throw("Strict value is not equal to itself.")
512564 }
513565 else throw("Strict value is not equal to itself.")
514566 }
515567 else throw("Strict value is not equal to itself.")
516568 }
517569 else throw("Strict value is not equal to itself.")
518570 }
519571 }
520572 else throw("Strict value is not equal to itself.")
521573 }
522574
523575
524576
525-@Callable(bi)
526-func managePool (Z,cQ) = {
527- let cf = bj(bi)
528- if ((cf == cf))
577+@Callable(bk)
578+func managePool (aa,df) = {
579+ let cu = bl(bk)
580+ if ((cu == cu))
529581 then {
530- let cE = bM(Z)
531- let bz = cE[u]
532- let cJ = cE[v]
533- let bB = cE[w]
534- let bC = cE[x]
535- let cG = parseIntValue(cE[y])
536- let cH = parseIntValue(cE[z])
537- let cz = parseIntValue(cE[A])
538- let cB = parseIntValue(cE[B])
539- let cR = parseIntValue(cE[C])
540- let bI = cE[D]
541-[StringEntry(ag(toString(cz), toString(cB)), by(Z, toString(cQ), cJ, bB, bC, cG, cH, cz, cB, cR, bI))]
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))]
542594 }
543595 else throw("Strict value is not equal to itself.")
544596 }
545597
546598
547599
548-@Callable(bi)
549-func emit (cS) = {
550- let cT = bi.caller
551- let cU = bi.originCaller
552- let cV = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
553- let cW = fromBase58String(cV)
554- let cj = split(valueOrElse(getString(O()), l), k)
555- let ci = addressFromStringValue(valueOrErrorMessage(getString(N()), "Legacy factory contract does not exists."))
556- if ((0 >= cS))
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))
557609 then nil
558- else if (containsElement(cj, toString(cT)))
559- then $Tuple2(nil, ci)
560- else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bi.caller, cS, cW)], "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")
561613 }
562614
563615
564616
565-@Callable(bi)
566-func burn (cX) = {
567- let cT = bi.caller
568- let cU = bi.originCaller
569- let cY = value(bi.payments[0])
570- let cZ = value(cY.amount)
571- let da = toBase58String(value(cY.assetId))
572- let db = valueOrErrorMessage(getString(aw(toString(cT))), "Invalid LP address called me.")
573- if ((da != db))
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))
574626 then throw("Invalid asset passed.")
575- else if ((cX != cZ))
627+ else if ((dn != dp))
576628 then throw("Invalid amount passed.")
577629 else {
578- let cW = fromBase58String(db)
579- $Tuple2([Burn(cW, cX)], "success")
630+ let dm = fromBase58String(dr)
631+ $Tuple2([Burn(dm, dn)], "success")
580632 }
581633 }
582634
583635
584636
585-@Callable(bi)
586-func modifyWeight (bA,dc) = {
587- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, T()), "")))
637+@Callable(bk)
638+func modifyWeight (bC,ds) = {
639+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, U()), "")))
588640 then true
589- else bj(bi)
590- if ((cf == cf))
641+ else bl(bk)
642+ if ((cu == cu))
591643 then {
592- let au = aF(ax(bA))
593- let dd = Y(au)
594- let de = Y(f)
595- let df = valueOrElse(getInteger(de), 0)
596- let cw = valueOrElse(getInteger(dd), 0)
597- let dg = dc
598- let aX = split(aF(J()), k)
599- let cb = aZ(aX)
600- let dh = invoke(cb, "onModifyWeight", [bA, au], nil)
601- if ((dh == dh))
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))
602654 then {
603- let di = if ((df == 0))
655+ let dy = if ((dv == 0))
604656 then nil
605- else [IntegerEntry(de, 0)]
606- let dj = aa(au, 0)
607- let dk = getInteger(dj)
608- let dl = if ((dk == unit))
657+ else [IntegerEntry(du, 0)]
658+ let dz = ab(av, 0)
659+ let dA = getInteger(dz)
660+ let dB = if ((dA == unit))
609661 then nil
610- else [DeleteEntry(dj)]
611- (([IntegerEntry(dd, dg)] ++ di) ++ dl)
662+ else [DeleteEntry(dz)]
663+ (([IntegerEntry(dt, dw)] ++ dy) ++ dB)
612664 }
613665 else throw("Strict value is not equal to itself.")
614666 }
615667 else throw("Strict value is not equal to itself.")
616668 }
617669
618670
619671
620-@Callable(bi)
621-func modifyWeights (dm,dn,do,dp) = {
622- let cf = bj(bi)
623- if ((cf == cf))
672+@Callable(bk)
673+func modifyWeights (dC,dD,dE,dF) = {
674+ let cu = bl(bk)
675+ if ((cu == cu))
624676 then {
625- let dq = ((5 * e) / 100)
626- let dr = ((5 * e) / 100)
627- let ds = ((5 * e) / 100)
628- let aX = split(aF(J()), k)
629- let dt = aZ(aX)
630- let du = ba(aX)
631- let dv = Y(dm)
632- let dw = Y(dn)
633- let dx = Y(do)
634- let dy = Y(dp)
635- let dz = aI(dv)
636- let dA = aI(dw)
637- let dB = (dz - ds)
638- let dC = (dA - ds)
639- if ((0 >= dB))
640- then throw(("invalid btcWeightNew: " + toString(dB)))
641- else if ((0 >= dC))
642- then throw(("invalid ethWeightNew: " + toString(dC)))
677+ let dG = ((5 * e) / 100)
678+ let dH = ((5 * e) / 100)
679+ let dI = ((5 * e) / 100)
680+ let aY = split(aG(K()), k)
681+ let dJ = ba(aY)
682+ let dK = bb(aY)
683+ let dL = Z(dC)
684+ let dM = Z(dD)
685+ let dN = Z(dE)
686+ let dO = Z(dF)
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)))
643695 else {
644- let dD = aF(aw(dm))
645- let dE = aF(aw(dn))
646- let dF = aF(aw(do))
647- let dG = aF(aw(dp))
648- let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
649- if ((dH == dH))
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))
650702 then {
651- let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
652- if ((dI == dI))
703+ let dY = invoke(dJ, "onModifyWeight", [dU, dD], nil)
704+ if ((dY == dY))
653705 then {
654- let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
655- if ((dJ == dJ))
706+ let dZ = invoke(dJ, "onModifyWeight", [dV, dE], nil)
707+ if ((dZ == dZ))
656708 then {
657- let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
658- if ((dK == dK))
659- then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(aa(dm, 0), dz), IntegerEntry(aa(dn, 0), dA), IntegerEntry(aa(do, 0), dq), IntegerEntry(aa(dp, 0), dr)]
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)]
660712 else throw("Strict value is not equal to itself.")
661713 }
662714 else throw("Strict value is not equal to itself.")
663715 }
664716 else throw("Strict value is not equal to itself.")
665717 }
666718 else throw("Strict value is not equal to itself.")
667719 }
668720 }
669721 else throw("Strict value is not equal to itself.")
670722 }
671723
672724
673725
674-@Callable(bi)
675-func checkWxEmissionPoolLabel (az,aA) = {
676- let dL = {
677- let bc = getBoolean(ay(az, aA))
678- if ($isInstanceOf(bc, "Boolean"))
726+@Callable(bk)
727+func checkWxEmissionPoolLabel (aA,aB) = {
728+ let eb = {
729+ let bd = getBoolean(az(aA, aB))
730+ if ($isInstanceOf(bd, "Boolean"))
679731 then {
680- let dM = bc
681- dM
732+ let ec = bd
733+ ec
682734 }
683735 else false
684736 }
685- $Tuple2(nil, dL)
737+ $Tuple2(nil, eb)
686738 }
687739
688740
689741
690-@Callable(bi)
691-func setWxEmissionPoolLabel (az,aA) = {
692- let cf = bV(bi)
693- if ((cf == cf))
694- then $Tuple2([BooleanEntry(ay(az, aA), true)], unit)
742+@Callable(bk)
743+func setWxEmissionPoolLabel (aA,aB) = {
744+ let cu = bX(bk)
745+ if ((cu == cu))
746+ then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
695747 else throw("Strict value is not equal to itself.")
696748 }
697749
698750
699751
700-@Callable(bi)
701-func deleteWxEmissionPoolLabel (az,aA) = {
702- let cf = if (bh(bi))
752+@Callable(bk)
753+func deleteWxEmissionPoolLabel (aA,aB) = {
754+ let cu = if (bj(bk))
703755 then true
704- else bV(bi)
705- if ((cf == cf))
706- then $Tuple2([DeleteEntry(ay(az, aA))], unit)
756+ else bX(bk)
757+ if ((cu == cu))
758+ then $Tuple2([DeleteEntry(az(aA, aB))], unit)
707759 else throw("Strict value is not equal to itself.")
708760 }
709761
710762
711763
712-@Callable(bi)
713-func onVerificationLoss (dN) = {
714- let cf = if ((toBase58String(bi.caller.bytes) == valueOrElse(getString(this, S()), "")))
764+@Callable(bk)
765+func onVerificationLoss (ed) = {
766+ let cu = if ((toBase58String(bk.caller.bytes) == valueOrElse(getString(this, T()), "")))
715767 then true
716- else bj(bi)
717- if ((cf == cf))
768+ else bl(bk)
769+ if ((cu == cu))
718770 then {
719- let cm = bb()
720- let dO = if ((size(cm) > 0))
771+ let cB = bc()
772+ let ee = if ((size(cB) > 0))
721773 then true
722774 else throw("invalid price assets")
723- if ((dO == dO))
775+ if ((ee == ee))
724776 then {
725- func dP (dQ,dR) = {
726- let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
727- if ((dS == dS))
777+ func ef (eg,eh) = {
778+ let ei = invoke(this, "deleteWxEmissionPoolLabel", [ed, eh], nil)
779+ if ((ei == ei))
728780 then unit
729781 else throw("Strict value is not equal to itself.")
730782 }
731783
732- let dT = {
733- let dU = cm
734- let dV = size(dU)
735- let dW = unit
736- func dX (dY,dZ) = if ((dZ >= dV))
737- then dY
738- else dP(dY, dU[dZ])
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])
739791
740- func ea (dY,dZ) = if ((dZ >= dV))
741- then dY
742- else throw("List size exceeds 3")
792+ func eq (eo,ep) = if ((ep >= el))
793+ then eo
794+ else throw("List size exceeds 2")
743795
744- ea(dX(dX(dX(dW, 0), 1), 2), 3)
796+ eq(en(en(em, 0), 1), 2)
745797 }
746- if ((dT == dT))
798+ if ((ej == ej))
747799 then $Tuple2(nil, unit)
748800 else throw("Strict value is not equal to itself.")
749801 }
750802 else throw("Strict value is not equal to itself.")
751803 }
752804 else throw("Strict value is not equal to itself.")
753805 }
754806
755807
756808
757-@Callable(bi)
758-func isPoolOneTokenOperationsDisabledREADONLY (Z) = {
759- let cE = bM(Z)
760- let ak = $Tuple2(parseIntValue(cE[A]), parseIntValue(cE[B]))
761- let eb = valueOrElse(getBoolean(aj(ak)), false)
762- let ec = valueOrElse(getBoolean(am()), false)
763- $Tuple2(nil, if (ec)
809+@Callable(bk)
810+func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
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)
764816 then true
765- else eb)
817+ else er)
766818 }
767819
768820
769821
770-@Callable(bi)
771-func getInFeeREADONLY (Z) = {
772- let ed = bY(aB(Z), aC(), 0)
773- $Tuple2(nil, ed)
822+@Callable(bk)
823+func getInFeeREADONLY (aa) = {
824+ let et = ca(aC(aa), aD(), 0)
825+ $Tuple2(nil, et)
774826 }
775827
776828
777829
778-@Callable(bi)
779-func getOutFeeREADONLY (Z) = {
780- let ed = bY(aD(Z), aE(), fraction(10, b, 10000))
781- $Tuple2(nil, ed)
830+@Callable(bk)
831+func getOutFeeREADONLY (aa) = {
832+ let et = ca(aE(aa), aF(), fraction(10, b, 10000))
833+ $Tuple2(nil, et)
782834 }
783835
784836
785837
786-@Callable(bi)
787-func poolInfoREADONLY (ee,ef) = {
788- let eg = getInteger(this, ae(ee))
789- let eh = getInteger(this, ae(ef))
790- let ei = getString(this, av(value(eg), value(eh)))
791- let ej = getString(this, aw(value(ei)))
792- let ek = if (if (isDefined(eg))
793- then isDefined(eh)
838+@Callable(bk)
839+func poolInfoREADONLY (eu,ev) = {
840+ let ew = getInteger(this, af(eu))
841+ let ex = getInteger(this, af(ev))
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)
794846 else false)
795- then isDefined(ei)
847+ then isDefined(ey)
796848 else false
797- let el = if (ek)
798- then $Tuple2(addressFromStringValue(value(ei)), aJ(value(ej)))
849+ let eA = if (cT)
850+ then $Tuple2(addressFromStringValue(value(ey)), aK(value(ez)))
799851 else unit
800- $Tuple2(nil, el)
852+ $Tuple2(nil, eA)
801853 }
802854
803855
804856
805-@Callable(bi)
806-func getPoolStatusREADONLY (Z) = {
807- let bN = split(aF(at(Z)), k)
808- let ah = bN[1]
809- let ai = bN[2]
810- let em = split(aF(ag(ah, ai)), k)
811- $Tuple2(nil, parseIntValue(em[u]))
857+@Callable(bk)
858+func getPoolStatusREADONLY (aa) = {
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]))
812864 }
813865
814866
815-@Verifier(en)
816-func eo () = {
817- let ep = {
818- let bc = be()
819- if ($isInstanceOf(bc, "ByteVector"))
867+
868+@Callable(bk)
869+func getPoolConfigREADONLY (aa) = {
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)
875+ }
876+
877+
878+
879+@Callable(bk)
880+func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cd(aA, aB))
881+
882+
883+@Verifier(eB)
884+func eC () = {
885+ let eD = {
886+ let bd = bf()
887+ if ($isInstanceOf(bd, "ByteVector"))
820888 then {
821- let bk = bc
822- bk
889+ let bm = bd
890+ bm
823891 }
824- else if ($isInstanceOf(bc, "Unit"))
825- then en.senderPublicKey
892+ else if ($isInstanceOf(bd, "Unit"))
893+ then eB.senderPublicKey
826894 else throw("Match error")
827895 }
828- sigVerify(en.bodyBytes, en.proofs[0], ep)
896+ sigVerify(eB.bodyBytes, eB.proofs[0], eD)
829897 }
830898

github/deemru/w8io/026f985 
277.83 ms