tx · BMMqky43XN1xe4eQYJAmZqYu5cJsnUtqggSBDNB4DLqA

3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx:  -0.02800000 Waves

2022.10.14 09:11 [2271649] smart account 3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx > SELF 0.00000000 Waves

{ "type": 13, "id": "BMMqky43XN1xe4eQYJAmZqYu5cJsnUtqggSBDNB4DLqA", "fee": 2800000, "feeAssetId": null, "timestamp": 1665727859380, "version": 1, "sender": "3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx", "senderPublicKey": "G4Ha5wvhDpHGy5koVJsmfWC2zwF89jXDUmWBb28mRyrr", "proofs": [ "jYnvECccrGkyLP2gjY2QrgVnyDj7vgv27eNoaK1gAa4sSQJrzQwev2dTfQAzJNxpPLxy6ffAV69HGvNCJ1s1DBx" ], "script": "base64:BgKOJwgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAgEIEgUKAwgBARIECgIIARIAEgQKAgEBEgMKAQESBAoCCAgSABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDc0ODQ3NjUwIg5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSINb3JkZXJBbXRBc3NldCIQb3JkZXJBbXRBc3NldFN0ciIPb3JkZXJQcmljZUFzc2V0IhJvcmRlclByaWNlQXNzZXRTdHIiCm9yZGVyUHJpY2UiCHByaWNlRGNtIhBjYXN0ZWRPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCIJY29tbW9uR2V0IgFpIgNwbXQiBnBtdEFtdCIJY29tbW9uUHV0IgphbUFzc2V0UG10IgpwckFzc2V0UG10IgZlc3RQdXQiBGVtaXQiBmFtb3VudCIHZW1pdEludiINZW1pdEludkxlZ2FjeSIHJG1hdGNoMCIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0Igd0YWtlRmVlIglmZWVBbW91bnQiD2NhbGNQdXRPbmVUb2tlbiIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiBmlzRXZhbCINJHQwMjIxNjcyMjM0NSILcG9vbEFkZHJlc3MiDWFtb3VudEFzc2V0SWQiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIQYW1vdW50QmFsYW5jZVJhdyIPcHJpY2VCYWxhbmNlUmF3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMjI2NzUyMjk2OCIQYW1vdW50QmFsYW5jZU9sZCIPcHJpY2VCYWxhbmNlT2xkIg0kdDAyMjk3MjIzMTIxIhRhbW91bnRBc3NldEFtb3VudFJhdyITcHJpY2VBc3NldEFtb3VudFJhdyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIzMjQzMjMzMDIiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCIOcG9vbFByb3BvcnRpb24iD2Ftb3VudEFzc2V0UGFydCIOcHJpY2VBc3NldFBhcnQiCWxwQW10Qm90aCIFYm9udXMiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCINJHQwMjUyNTIyNTQxMyIKYW1EZWNpbWFscyIKcHJEZWNpbWFscyIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCIKb3V0QmFsYW5jZSIQb3V0QmFsYW5jZUJpZ0ludCIOcmVkZWVtZWRCaWdJbnQiCWFtb3VudFJhdyINJHQwMjY0ODAyNjUzMCILdG90YWxBbW91bnQiDSR0MDI2NTM0MjY3NjAiC291dEFtQW1vdW50IgtvdXRQckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciCGN1clByWDE4IgFyIg5zdW1PZkdldEFzc2V0cyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgJwZCICcGsiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52IgttYXhTbGlwcGFnZSIMbWluT3V0QW1vdW50IglhdXRvU3Rha2UiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDMxMTAxMzEyMjgiE2VtaXRBbW91bnRFc3RpbWF0ZWQiCmVtaXRBbW91bnQiCHN0YWtlSW52IgdzZW5kRmVlIg0kdDAzMTk1NDMyMDg5Ig11bnN0YWtlQW1vdW50Ig1pc0dldERpc2FibGVkIg0kdDAzMjY0NTMyNzkyIg9hbW91bnRFc3RpbWF0ZWQiB2J1cm5JbnYiDWFzc2V0VHJhbnNmZXIiDSR0MDMzMzAzMzM0NDEiCW91dEFtdEFtdCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiDWNoZWNrUGF5bWVudHMiCnVuc3Rha2VJbnYiD2NoZWNrUG9vbFN0YXR1cyILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiDXBvb2xMUEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNoYQABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBSAFJCQCgAwEJALwCAwUBSAkAtgIBBQFJBQFkAQFKAwFLAUwBTQkAawMFAUsFAUwFAU0BAU4BAUgDCQC/AgIFAWUFAUgJAL4CAQUBSAUBSAEBTwACEyVzX19mYWN0b3J5Q29udHJhY3QBAVAAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUgACESVzJXNfX3ByaWNlX19sYXN0AQFTAgFUAVUJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFUCQDMCAIJAKQDAQUBVQUDbmlsBQFqAQFWAgFXAVgJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQFXAgJfXwUBWAEBWQIBVwFYCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUBVwICX18FAVgBAVoAAg8lc19fYW1vdW50QXNzZXQBAmFhAAIOJXNfX3ByaWNlQXNzZXQAAmFiAgclc19fZmVlAAJhYwkAawMABQUBYgCQTgACYWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWIFAmFjAQJhZQACESVzX19mYWN0b3J5Q29uZmlnAQJhZgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYWcBAmFoCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFoAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYWkCAmFqAmFrCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhagICX18FAmFrAghfX2NvbmZpZwECYWwBAmFtCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFtAQJhbgACDCVzX19zaHV0ZG93bgECYW8BAmFwCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYXABAmFxAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFyAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYXMDAmF0AmF1AmF2CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhdAINIHNlbmRlclZhbGlkPQkApQMBBQJhdQIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYXYBAmF3AgJheAJheQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmF4BQJheQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJheAkAzAgCAgEuCQDMCAIFAmF5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmF6AgJheAJheQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmF4BQJheQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJheAkAzAgCAgEuCQDMCAIFAmF5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFBAQJhQgkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhQgUDbmlsAgEgAAJhQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF3AgUEdGhpcwkBAU8AAAJhRAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF3AgUCYUMFAmFyAQJhRQAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYUMJAQJhbgAHAQJhRgAJANkEAQkBAmF3AgUCYUMJAQJhZgABAmFHAAQCYUgJAQJhdwIFBHRoaXMJAQFaAAQCYUkJAQJhdwIFBHRoaXMJAQJhYQAEAmFrCQECYXoCBQJhQwkBAmFsAQUCYUkEAmFqCQECYXoCBQJhQwkBAmFsAQUCYUgJALUJAgkBAmF3AgUCYUMJAQJhaQIJAKQDAQUCYWoJAKQDAQUCYWsFAWoBAmFKAQJhSwMJAAACBQJhSwUBaQUEdW5pdAkA2QQBBQJhSwECYUwBAmFLAwkAAAIFAmFLBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmFLAQJhTQECYU4JAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhTgUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQFwCQDZBAEJAJEDAgUCYU4FAXEJAQJhSgEJAJEDAgUCYU4FAXIJAQJhSgEJAJEDAgUCYU4FAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQF1AAJhTwkBAmFNAQkBAmFHAAACYVAFAmFPAAJhUQgFAmFQAl8xAAJhUggFAmFQAl8yAAJhUwgFAmFQAl8zAAJhVAgFAmFQAl80AAJhVQgFAmFQAl81AAJhVggFAmFQAl82AAJhVwgFAmFQAl83AQJhWAAJALUJAgkBAmF3AgUCYUMJAQJhZQAFAWoAAmFZCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYVgABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFYAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYmEKAmJiAmJjAmJkAmJlAmJmAmJnAmJoAmJpAmJqAmJrCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiYgkAzAgCCQCkAwEFAmJjCQDMCAIJAKQDAQUCYmQJAMwIAgkApAMBBQJiZQkAzAgCCQCkAwEFAmJmCQDMCAIJAKQDAQUCYmcJAMwIAgkApAMBBQJiaAkAzAgCCQCkAwEFAmJpCQDMCAIJAKQDAQUCYmoJAMwIAgkApAMBBQJiawUDbmlsBQFqAQJibAYCYm0CYm4CYm8CYmUCYmgCYmkJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYm8JAMwIAgkApAMBBQJiZQkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkFA25pbAUBagECYnABAmJxAwkAAAIFAmJxAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJicQECYnICAmJzAmJ0CQC8AgMFAmJzBQFkBQJidAECYnUEAmJ2AmJ3AmJ4AmJ5BAJiegkBAUQCBQJieAUCYnYEAmJBCQEBRAIFAmJ5BQJidwkBAmJyAgUCYkEFAmJ6AQJiQgMCYngCYnkCYkMEAmJECQECYUcABAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF0BAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF1BAJiRwkBAmJ1BAUCYkUFAmJGBQJieAUCYnkEAmJ0CQEBRAIFAmJ4BQJiRQQCYnMJAQFEAgUCYnkFAmJGBAJiSAkBAUQCBQJiQwUBYgQCYkkJAQJicgIFAmJ0BQJiSAQCYkoJAQJicgIFAmJzBQJiSAkAzAgCBQJiRwkAzAgCBQJiSQkAzAgCBQJiSgUDbmlsAQJiSwMCYngCYnkCYkMEAmJMCQECYkIDBQJieAUCYnkFAmJDCQDMCAIJAQFHAgkAkQMCBQJiTAAABQFiCQDMCAIJAQFHAgkAkQMCBQJiTAABBQFiCQDMCAIJAQFHAgkAkQMCBQJiTAACBQFiBQNuaWwBAmJNBAJiTgJiTwJiUAFXBAJiRAkBAmFHAAQCYlEJAJEDAgUCYkQFAXEEAmJSCQCRAwIFAmJEBQFyBAJiUwkAkQMCBQJiRAUBcwQCYnYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBdAQCYncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBdQQCYlQJAJEDAgUCYkQFAXAEAmJVCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlEJAKwCAgkArAICAgZBc3NldCAFAmJRAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJRBQJiTwkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCYlYJAQJicAEFAmJSBAJiVwkBAUQCBQJiVgUCYnYEAmJYCQECYnABBQJiUwQCYlkJAQFEAgUCYlgFAmJ3BAJiWgkBAmJyAgUCYlkFAmJXBAJjYQkBAUcCBQJiWgUBYgQCY2IJAQFEAgUCYlAFAWIEAmNjCQEBRAIFAmJVBQFiBAJjZAkAvAIDBQJiVwUCY2IFAmNjBAJjZQkAvAIDBQJiWQUCY2IFAmNjBAJjZgkBAUcCBQJjZAUCYnYEAmNnCQEBRwIFAmNlBQJidwQCY2gDCQAAAgUCYk4CAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVcFAmNmAwkAAAIFAmJSAgVXQVZFUwUEdW5pdAkA2QQBBQJiUgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFXBQJjZwMJAAACBQJiUwIFV0FWRVMFBHVuaXQJANkEAQUCYlMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkCCQClCAEFAVcFAmJOCQECYmwGBQJjZgUCY2cFAmJQBQJjYQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVIABQJjYQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjYQUDbmlsCQCcCgoFAmNmBQJjZwUCYlIFAmJTBQJiVgUCYlgFAmJVBQJiWgUCYlQFAmNoAQJjaQkCYk4CY2oCY2sCY2wCY20CY24BVwJjbwJjcAQCYkQJAQJhRwAEAmJRCQDZBAEJAJEDAgUCYkQFAXEEAmNxCQCRAwIFAmJEBQFyBAJjcgkAkQMCBQJiRAUBcwQCY3MJAJEDAgUCYkQFAXYEAmN0CQCRAwIFAmJEBQF3BAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF0BAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF1BAJiVAkAkQMCBQJiRAUBcAQCYlUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlEJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlECDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjdQkA2AQBCQELdmFsdWVPckVsc2UCBQJjbAkA2QQBAgVXQVZFUwQCY3YJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY24JANkEAQIFV0FWRVMDAwkBAiE9AgUCY3EFAmN1BgkBAiE9AgUCY3IFAmN2CQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCYlYDBQJjbwkBAmJwAQUCY3EJAGUCCQECYnABBQJjcQUCY2sEAmJYAwUCY28JAQJicAEFAmNyCQBlAgkBAmJwAQUCY3IFAmNtBAJjdwkBAUQCBQJjawUCYkUEAmN4CQEBRAIFAmNtBQJiRgQCY3kJAQJicgIFAmN4BQJjdwQCYlcJAQFEAgUCYlYFAmJFBAJiWQkBAUQCBQJiWAUCYkYEAmN6AwkAAAIFAmJVAAAEAmJaBQFlBAJjQQUBZQQCYkgJAHYGCQC5AgIFAmN3BQJjeAAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUcCBQJiSAUBYgkBAUcCBQJjdwUCYkUJAQFHAgUCY3gFAmJGCQECYnICCQC3AgIFAmJZBQJjeAkAtwICBQJiVwUCY3cFAmNBBAJiWgkBAmJyAgUCYlkFAmJXBAJjQQkAvAIDCQEBTgEJALgCAgUCYloFAmN5BQFkBQJiWgQCY0IJAQFEAgUCY2oFAWIDAwkBAiE9AgUCYloFAWUJAL8CAgUCY0EFAmNCBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJjQQIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmNCBAJjYwkBAUQCBQJiVQUBYgQCY0MJALwCAwUCY3cFAmJaBQFkBAJjRAkAvAIDBQJjeAUBZAUCYloEAmNFAwkAvwICBQJjQwUCY3gJAJQKAgUCY0QFAmN4CQCUCgIFAmN3BQJjQwQCY0YIBQJjRQJfMQQCY0cIBQJjRQJfMgQCYkgJALwCAwUCY2MFAmNHBQJiWQkAlwoFCQEBRwIFAmJIBQFiCQEBRwIFAmNGBQJiRQkBAUcCBQJjRwUCYkYFAmJaBQJjQQQCY0gIBQJjegJfMQQCY0kIBQJjegJfMgQCY0oIBQJjegJfMwQCY2EJAQFHAggFAmN6Al80BQFiBAJjSwkBAUcCCAUCY3oCXzUFAWIDCQBnAgAABQJjSAkAAgECNkludmFsaWQgY2FsY3VsYXRpb25zLiBMUCBjYWxjdWxhdGVkIGlzIGxlc3MgdGhhbiB6ZXJvLgQCY0wDCQEBIQEFAmNwAAAFAmNIBAJjTQkAZQIFAmNrBQJjSQQCY04JAGUCBQJjbQUCY0oEAmNPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUgAFAmNhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAgUBVwUCYk4JAQJiYQoFAmNJBQJjSgUCY0wFAmNhBQJjagUCY0sFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNNBQJjTgUDbmlsCQCfCg0FAmNIBQJjTAUCY2EFAmJWBQJiWAUCYlUFAmJRBQJiVAUCY08FAmNNBQJjTgUCY2wFAmNuAQJjUAECY1EEAmJECQECYUcABAJjUgkAkQMCBQJiRAUBcgQCY1MJAJEDAgUCYkQFAXMEAmJUCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXAEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXQEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXUEAmNUCQECYnABBQJjUgQCY1UJAQJicAEFAmNTBAJiWgMJAAACCAUCY1EJb3JkZXJUeXBlBQNCdXkJAQJidQQFAmJFBQJiRgkAZAIFAmNUCAUCY1EGYW1vdW50BQJjVQkBAmJ1BAUCYkUFAmJGCQBlAgUCY1QIBQJjUQZhbW91bnQFAmNVBAJjYQkBAUcCBQJiWgUBYgMDAwkBAmFFAAYJAAACBQJiVAUBbQYJAAACBQJiVAUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQEAmNWCAgFAmNRCWFzc2V0UGFpcgthbW91bnRBc3NldAQCY1cDCQAAAgUCY1YFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmNWBAJjWAgIBQJjUQlhc3NldFBhaXIKcHJpY2VBc3NldAQCY1kDCQAAAgUCY1gFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmNYAwMJAQIhPQIFAmNXBQJjUgYJAQIhPQIFAmNZBQJjUwkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmNaCAUCY1EFcHJpY2UEAmRhCQBrAwUBYgUCYkYFAmJFBAJkYgkBAUoDBQJjWgUBYgUCZGEEAmRjAwkAAAIIBQJjUQlvcmRlclR5cGUFA0J1eQkAZwIFAmNhBQJkYgkAZwIFAmRiBQJjYQYBAmRkAQJkZQMJAQIhPQIJAJADAQgFAmRlCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZGYJAQV2YWx1ZQEJAJEDAggFAmRlCHBheW1lbnRzAAAEAmJPCQEFdmFsdWUBCAUCZGYHYXNzZXRJZAQCZGcIBQJkZgZhbW91bnQEAmN6CQECYk0ECQDYBAEIBQJkZQ10cmFuc2FjdGlvbklkCQDYBAEFAmJPBQJkZwgFAmRlBmNhbGxlcgQCY2YIBQJjegJfMQQCY2cIBQJjegJfMgQCYlQJAQ1wYXJzZUludFZhbHVlAQgFAmN6Al85BAJjaAgFAmN6A18xMAMDCQECYUUABgkAAAIFAmJUBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJiVAkAlwoFBQJjZgUCY2cFAmRnBQJiTwUCY2gBAmRoAwJkZQJjagJjcAMJAQIhPQIJAJADAQgFAmRlCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJkaQkBBXZhbHVlAQkAkQMCCAUCZGUIcGF5bWVudHMAAAQCZGoJAQV2YWx1ZQEJAJEDAggFAmRlCHBheW1lbnRzAAEEAmRrCQECY2kJCQDYBAEIBQJkZQ10cmFuc2FjdGlvbklkBQJjaggFAmRpBmFtb3VudAgFAmRpB2Fzc2V0SWQIBQJkagZhbW91bnQIBQJkagdhc3NldElkCQClCAEIBQJkZQZjYWxsZXIHBQJjcAQCYlQJAQ1wYXJzZUludFZhbHVlAQgFAmRrAl84AwMDCQECYUUABgkAAAIFAmJUBQFsBgkAAAIFAmJUBQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJiVAUCZGsBAmRsAQJkbQQCZG4JAPwHBAUCYUMCBGVtaXQJAMwIAgUCZG0FA25pbAUDbmlsAwkAAAIFAmRuBQJkbgQCZG8EAmRwBQJkbgMJAAECBQJkcAIHQWRkcmVzcwQCZHEFAmRwCQD8BwQFAmRxAgRlbWl0CQDMCAIFAmRtBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkbwUCZG8FAmRtCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkcgECZG0EAmRzCQBrAwUCZG0FAmFkBQFiCQCUCgIJAGUCBQJkbQUCZHMFAmRzAQJkdAQCZHUCZHYBVwFYBAJkdwkAAAIFAVgFBHVuaXQEAmR4CQECYU0BCQECYUcABAJkeQgFAmR4Al8xBAJiVAgFAmR4Al8yBAJiUQgFAmR4Al8zBAJkeggFAmR4Al80BAJjUwgFAmR4Al81BAJkQQgFAmR4Al82BAJkQggFAmR4Al83BAJkQwkBAmJwAQkBAmFMAQUCZHoEAmRECQECYnABCQECYUwBBQJjUwQCZEUDCQAAAgUCZHYFAmR6BgMJAAACBQJkdgUCY1MHCQECYUEBAg1pbnZhbGlkIGFzc2V0BAJkRgMFAmR3CQCUCgIFAmRDBQJkRAMFAmRFCQCUCgIJAGUCBQJkQwUCZHUFAmRECQCUCgIFAmRDCQBlAgUCZEQFAmR1BAJkRwgFAmRGAl8xBAJkSAgFAmRGAl8yBAJkSQMFAmRFCQCUCgIFAmR1AAAJAJQKAgAABQJkdQQCZEoIBQJkSQJfMQQCZEsIBQJkSQJfMgQCZEwICQECZHIBBQJkSgJfMQQCZE0ICQECZHIBBQJkSwJfMQQCZE4JAQJkcgEFAmR1BAJkTwgFAmROAl8xBAJkcwgFAmROAl8yBAJkUAkAZAIFAmRHBQJkTAQCZFEJAGQCBQJkSAUCZE0EAmNhCQEBRwIJAQJicgIJAQFEAgUCZFEFAmRCCQEBRAIFAmRQBQJkQQUBYgQCZFIDBQJkRQUCZEcFAmRIBAJkUwkAtgIBBQJkUgQCZFQJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiUQkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJiUQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRVAwkAvwICBQJkVAUBZgYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmRVBQJkVQQCZFYJALYCAQUCZE8EAmRXCQCgAwEJALoCAgkAuQICBQJkVAkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBYwkAugICCQC5AgIFAmRWBQFjBQJkUwAIAAgFBERPV04FAWMFAWMEAmNPAwUCZHcFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVIABQJjYQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjYQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVgIJAKUIAQkBBXZhbHVlAQUBVwkA2AQBCQEFdmFsdWUBBQFYCQECYmEKBQJkSgUCZEsFAmRXBQJjYQAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmRYCQBrAwUCZEgFAWIFAmRHBAJkWQkAawMFAmR1BQFiCQBkAgUCZFgFAWIEAmRaCQBlAgUCZHUFAmRZBAJlYQkAvAIDBQJkVAkAtgIBBQJkWgkAtgIBBQJkSAQCZWIJAKADAQkAvAIDCQC4AgIJALYCAQUCZFcFAmVhBQFjBQJlYQkAlgoEBQJkVwUCY08FAmRzBQJlYgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZWMFAmVkAmRPAmR2AVcBWAQCZHcJAAACBQFYBQR1bml0BAJlZQkBAmFNAQkBAmFHAAQCZHkIBQJlZQJfMQQCYlQIBQJlZQJfMgQCYlEIBQJlZQJfMwQCZHoIBQJlZQJfNAQCY1MIBQJlZQJfNQQCZWYIBQJlZQJfNgQCZWcIBQJlZQJfNwQCZWgJAMwIAgMJAAACBQJkdgUCYlEGCQACAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmVoBQJlaAQCZWkDCQAAAgUCZWQFAmR6BgMJAAACBQJlZAUCY1MHCQECYUEBAg1pbnZhbGlkIGFzc2V0BAJlagMFAmVpCQC2AgEJAQJicAEJAQJhTAEFAmR6CQC2AgEJAQJicAEJAQJhTAEFAmNTBAJlawkBAmJwAQkBAmFMAQUCZHoEAmVsCQECYnABCQECYUwBBQJjUwQCZW0DBQJlaQUCZWsFAmVsBAJlbgkAtgIBBQJlbQQCZFQJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiUQkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJiUQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVvCQC2AgEFAmRPBAJlcAkAoAMBCQC6AgIJALkCAgUCZWoJALgCAgUBYwkAdgYJALgCAgUBYwkAugICCQC5AgIFAmVvBQFjBQJkVAAIBQFoAAAACAUERE9XTgUBYwQCZXEJAQJkcgEFAmVwBAJlcggFAmVxAl8xBAJkcwgFAmVxAl8yBAJlcwMFAmVpCQCWCgQFAmVyAAAJAGUCBQJlawUCZXAFAmVsCQCWCgQAAAUCZXIFAmVrCQBlAgUCZWwFAmVwBAJldAgFAmVzAl8xBAJldQgFAmVzAl8yBAJldggFAmVzAl8zBAJldwgFAmVzAl80BAJleAkBAmJyAgkBAUQCBQJldwUCZWcJAQFEAgUCZXYFAmVmBAJjYQkBAUcCBQJleAUBYgQCY08DBQJkdwUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAgkApQgBCQEFdmFsdWUBBQFXCQDYBAEJAQV2YWx1ZQEFAVgJAQJibAYFAmV0BQJldQUCZE8FAmNhBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUgAFAmNhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNhBQNuaWwEAmV5CQECYk0EAgAJAQJhTAEFAmJRBQJkTwUEdGhpcwQCZXoJAGQCCAUCZXkCXzEIBQJleQJfMgQCZWIJAGsDCQBlAgUCZXIFAmV6BQFiBQJlegkAlgoEBQJlcgUCY08FAmRzBQJlYgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZUEABAJkcAkAoggBCQEBUAADCQABAgUCZHACBlN0cmluZwQCZUIFAmRwCQDZBAEFAmVCAwkAAQIFAmRwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmVDAAQCZHAJAKIIAQkBAVEAAwkAAQIFAmRwAgZTdHJpbmcEAmVCBQJkcAkA2QQBBQJlQgMJAAECBQJkcAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJlRAECZGUEAmVFCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmRwCQECZUEAAwkAAQIFAmRwAgpCeXRlVmVjdG9yBAJlRgUCZHADCQAAAggFAmRlD2NhbGxlclB1YmxpY0tleQUCZUYGBQJlRQMJAAECBQJkcAIEVW5pdAMJAAACCAUCZGUGY2FsbGVyBQR0aGlzBgUCZUUJAAIBAgtNYXRjaCBlcnJvchgCZGUBCnNldE1hbmFnZXIBAmVHBAJlSAkBAmVEAQUCZGUDCQAAAgUCZUgFAmVIBAJlSQkA2QQBBQJlRwMJAAACBQJlSQUCZUkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVEABQJlRwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRlAQ5jb25maXJtTWFuYWdlcgAEAmVKCQECZUMABAJlSwMJAQlpc0RlZmluZWQBBQJlSgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUsFAmVLBAJlTAMJAAACCAUCZGUPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlSgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUwFAmVMCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAAkA2AQBCQEFdmFsdWUBBQJlSgkAzAgCCQELRGVsZXRlRW50cnkBCQEBUQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZQEDcHV0AgJjagJlTQMJAGYCAAAFAmNqCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRrCQECZGgDBQJkZQUCY2oGBAJjTAgFAmRrAl8yBAJiUQgFAmRrAl83BAJjaAgFAmRrAl85BAJjTQgFAmRrA18xMAQCY04IBQJkawNfMTEEAmVOCAUCZGsDXzEyBAJlTwgFAmRrA18xMwQCZG4JAPwHBAUCYUMCBGVtaXQJAMwIAgUCY0wFA25pbAUDbmlsAwkAAAIFAmRuBQJkbgQCZG8EAmRwBQJkbgMJAAECBQJkcAIHQWRkcmVzcwQCZHEFAmRwCQD8BwQFAmRxAgRlbWl0CQDMCAIFAmNMBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkbwUCZG8EAmVQAwkAZgIFAmNNAAAJAPwHBAUCYVoCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlTgUCY00FA25pbAUDbmlsAwkAAAIFAmVQBQJlUAQCZVEDCQBmAgUCY04AAAkA/AcEBQJhWgIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmVPBQJjTgUDbmlsBQNuaWwDCQAAAgUCZVEFAmVRBAJlUgMFAmVNBAJlUwkA/AcEBQJhWQIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlEFAmNMBQNuaWwDCQAAAgUCZVMFAmVTBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRlBmNhbGxlcgUCY0wFAmJRBQNuaWwJAM4IAgUCY2gFAmVSCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRlAQpwdXRGb3JGcmVlAQJlVAMJAGYCAAAFAmVUCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRrCQECZGgDBQJkZQUCZVQHCAUCZGsCXzkCZGUBCXB1dE9uZVRrbgICZVUCZVYEAmVXAwMJAQJhRQAGCQAAAgUCYVIFAWwGCQAAAgUCYVIFAW4EAmVoCQDMCAIDCQEBIQEFAmVXBgkBAmFBAQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZGUIcGF5bWVudHMAAQYJAQJhQQECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVoBQJlaAQCZVgJAJEDAggFAmRlCHBheW1lbnRzAAAEAmR2CAUCZVgHYXNzZXRJZAQCZHUIBQJlWAZhbW91bnQEAVcIBQJkZQZjYWxsZXIEAVgIBQJkZQ10cmFuc2FjdGlvbklkBAJlWQkBAmR0BAUCZHUFAmR2BQFXBQFYBAJlWggFAmVZAl8xBAJjTwgFAmVZAl8yBAJkcwgFAmVZAl8zBAJlYggFAmVZAl80BAJmYQMDCQBmAgUCZVUAAAkAZgIFAmVVBQJlWgcJAAIBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmVVBQNuaWwCAAUCZVoEAmRuCQECZGwBBQJmYQMJAAACBQJkbgUCZG4EAmVSAwUCZVYEAmZiCQD8BwQFAmFZAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhUwUCZmEFA25pbAMJAAACBQJmYgUCZmIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZGUGY2FsbGVyBQJmYQUCYVMFA25pbAQCZmMDCQBmAgUCZHMAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhRAUCZHMFAmR2BQNuaWwFA25pbAkAlAoCCQDOCAIJAM4IAgUCY08FAmVSBQJmYwUCZmEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGUBEXB1dE9uZVRrblJFQURPTkxZAgJkdQJkdgQCZmQJAQJkdAQFAmR1CQECYUoBBQJkdgUEdW5pdAUEdW5pdAQCZVoIBQJmZAJfMQQCY08IBQJmZAJfMgQCZHMIBQJmZAJfMwQCZWIIBQJmZAJfNAkAlAoCBQNuaWwJAJUKAwUCZVoFAmRzBQJlYgJkZQEJZ2V0T25lVGtuAwJlZAJlVQJmZQQCZmYDCQECYUUABgkAAAIFAmFSBQFuBAJlaAkAzAgCAwkBASEBBQJmZgYJAQJhQQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRlCHBheW1lbnRzAAEGCQECYUEBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlaAUCZWgEAmVYCQCRAwIIBQJkZQhwYXltZW50cwAABAJkdggFAmVYB2Fzc2V0SWQEAmRPCAUCZVgGYW1vdW50BAFXCAUCZGUGY2FsbGVyBAFYCAUCZGUNdHJhbnNhY3Rpb25JZAQCZmcJAQJlYwUJAQJhSgEFAmVkBQJkTwUCZHYFAVcFAVgEAmZoCAUCZmcCXzEEAmNPCAUCZmcCXzIEAmRzCAUCZmcCXzMEAmViCAUCZmcCXzQEAmRtAwMJAGYCBQJlVQAACQBmAgUCZVUFAmZoBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZVUFA25pbAIABQJmaAQCZmkJAPwHBAUCYUMCBGJ1cm4JAMwIAgUCZE8FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHYFAmRPBQNuaWwDCQAAAgUCZmkFAmZpBAJmagkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFXBQJkbQkBAmFKAQUCZWQFA25pbAkAlAoCBQJmagUCZG0JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGUBEWdldE9uZVRrblJFQURPTkxZAgJlZAJkTwQCZmsJAQJlYwUJAQJhSgEFAmVkBQJkTwUCYVMFBHVuaXQFBHVuaXQEAmZoCAUCZmsCXzEEAmNPCAUCZmsCXzIEAmRzCAUCZmsCXzMEAmViCAUCZmsCXzQJAJQKAgUDbmlsCQCVCgMFAmZoBQJkcwUCZWICZGUBA2dldAAEAmN6CQECZGQBBQJkZQQCZmwIBQJjegJfMQQCY2cIBQJjegJfMgQCZGcIBQJjegJfMwQCYk8IBQJjegJfNAQCY2gIBQJjegJfNQQCZm0JAPwHBAUCYUMCBGJ1cm4JAMwIAgUCZGcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk8FAmRnBQNuaWwDCQAAAgUCZm0FAmZtBQJjaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZQEJZ2V0Tm9MZXNzAgJmbgJmbwQCY3oJAQJkZAEFAmRlBAJjZggFAmN6Al8xBAJjZwgFAmN6Al8yBAJkZwgFAmN6Al8zBAJiTwgFAmN6Al80BAJjaAgFAmN6Al81AwkAZgIFAmZuBQJjZgkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCY2YCAyA8IAkApAMBBQJmbgMJAGYCBQJmbwUCY2cJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJjZwIDIDwgCQCkAwEFAmZvBAJmbQkA/AcEBQJhQwIEYnVybgkAzAgCBQJkZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCZGcFA25pbAMJAAACBQJmbQUCZm0FAmNoCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRlAQ11bnN0YWtlQW5kR2V0AQJkbQQCZnADCQECIT0CCQCQAwEIBQJkZQhwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJmcAUCZnAEAmJECQECYUcABAJiUQkA2QQBCQCRAwIFAmJEBQFxBAJmcQkA/AcEBQJhWQIHdW5zdGFrZQkAzAgCCQDYBAEFAmJRCQDMCAIFAmRtBQNuaWwFA25pbAMJAAACBQJmcQUCZnEEAmN6CQECYk0ECQDYBAEIBQJkZQ10cmFuc2FjdGlvbklkCQDYBAEFAmJRBQJkbQgFAmRlBmNhbGxlcgQCYlQJAQ1wYXJzZUludFZhbHVlAQgFAmN6Al85BAJjaAgFAmN6A18xMAQCZnIDAwkBAmFFAAYJAAACBQJiVAUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlQGAwkAAAIFAmZyBQJmcgQCZm0JAPwHBAUCYUMCBGJ1cm4JAMwIAgUCZG0FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlEFAmRtBQNuaWwDCQAAAgUCZm0FAmZtBQJjaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZQEIYWN0aXZhdGUCAmZzAmZ0AwkBAiE9AgkApQgBCAUCZGUGY2FsbGVyCQClCAEFAmFDCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoABQJmcwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWEABQJmdAUDbmlsAgdzdWNjZXNzAmRlARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRwACZGUBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJxCQCUCgIFA25pbAkBAmJwAQUCYnECZGUBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ4AmJ5AmJDBAJiTAkBAmJCAwUCYngFAmJ5BQJiQwkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmJMAAAJAMwIAgkApgMBCQCRAwIFAmJMAAEJAMwIAgkApgMBCQCRAwIFAmJMAAIFA25pbAJkZQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmRlARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFIAUkJAJQKAgUDbmlsCQEBRwIJAKcDAQUBSAUBSQJkZQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJicwJidAkAlAoCBQNuaWwJAKYDAQkBAmJyAgkApwMBBQJicwkApwMBBQJidAJkZQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJOAmNqAmNrAmNsAmNtAmNuAVcCY28CY3AJAJQKAgUDbmlsCQECY2kJBQJiTgUCY2oFAmNrBQJjbAUCY20FAmNuBQFXBQJjbwUCY3ACZGUBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiTgJiTwJiUAFXBAJjegkBAmJNBAUCYk4FAmJPBQJiUAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBVwkAlAoCBQNuaWwJAJwKCggFAmN6Al8xCAUCY3oCXzIIBQJjegJfMwgFAmN6Al80CAUCY3oCXzUIBQJjegJfNggFAmN6Al83CQCmAwEIBQJjegJfOAgFAmN6Al85CAUCY3oDXzEwAmRlAQ1zdGF0c1JFQURPTkxZAAQCYkQJAQJhRwAEAmJRCQDZBAEJAJEDAgUCYkQFAXEEAmNSCQCRAwIFAmJEBQFyBAJjUwkAkQMCBQJiRAUBcwQCY3MJAJEDAgUCYkQFAXYEAmN0CQCRAwIFAmJEBQF3BAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF0BAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQF1BAJmdQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiUQkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiUQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNUCQECYnABBQJjUgQCY1UJAQJicAEFAmNTBAJmdgMJAAACBQJmdQAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJiQgMFAmNUBQJjVQUCZnUEAmNhAAAEAmZ3CQEBRwIJAJEDAgUCZnYAAQUBYgQCZngJAQFHAgkAkQMCBQJmdgACBQFiBAJmeQkBBXZhbHVlAQkAmggCBQJhQwkBAmFvAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY1QJAMwIAgkApAMBBQJjVQkAzAgCCQCkAwEFAmZ1CQDMCAIJAKQDAQUCY2EJAMwIAgkApAMBBQJmdwkAzAgCCQCkAwEFAmZ4CQDMCAIJAKQDAQUCZnkFA25pbAUBagJkZQEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmNrBAJiRAkBAmFHAAQCYlEJANkEAQkAkQMCBQJiRAUBcQQCY3EJAJEDAgUCYkQFAXIEAmJSCQDZBAEFAmNxBAJjcgkAkQMCBQJiRAUBcwQCYlMJANkEAQUCY3IEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXQEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXUEAmJUCQCRAwIFAmJEBQFwBAJmdQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiUQkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiUQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNUCQECYnABBQJjcQQCY1UJAQJicAEFAmNyBAJiegkBAUQCBQJjVAUCYkUEAmJBCQEBRAIFAmNVBQJiRgQCYloDCQAAAgUCZnUAAAUBZQkBAmJyAgUCYkEFAmJ6BAJjdwkBAUQCBQJjawUCYkUEAmN4CQC8AgMFAmN3BQJiWgUBZAQCY20JAQFHAgUCY3gFAmJGBAJkawkBAmNpCQIAAKDCHgUCY2sFAmJSBQJjbQUCYlMCAAYHBAJjSAgFAmRrAl8xBAJmeggFAmRrAl8zBAJiVggFAmRrAl80BAJiWAgFAmRrAl81BAJiVQgFAmRrAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjSAkAzAgCCQCkAwEJAQFHAgUCYloFAWIJAMwIAgkApAMBBQJiVgkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYlUJAMwIAgUCYlQJAMwIAgkApAMBBQJjawkAzAgCCQCkAwEFAmNtBQNuaWwFAWoCZGUBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmNtBAJiRAkBAmFHAAQCYlEJANkEAQkAkQMCBQJiRAUBcQQCY3EJAJEDAgUCYkQFAXIEAmJSCQDZBAEFAmNxBAJjcgkAkQMCBQJiRAUBcwQCYlMJANkEAQUCY3IEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXQEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXUEAmJUCQCRAwIFAmJEBQFwBAJmdQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiUQkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiUQIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZBCQECYnABBQJjcQQCZkIJAQJicAEFAmNyBAJmQwkBAUQCBQJmQQUCYkUEAmZECQEBRAIFAmZCBQJiRgQCYloDCQAAAgUCZnUAAAUBZQkBAmJyAgUCZkQFAmZDBAJjeAkBAUQCBQJjbQUCYkYEAmN3CQC8AgMFAmN4BQFkBQJiWgQCY2sJAQFHAgUCY3cFAmJFBAJkawkBAmNpCQIAAKDCHgUCY2sFAmJSBQJjbQUCYlMCAAYHBAJjSAgFAmRrAl8xBAJmeggFAmRrAl8zBAJiVggFAmRrAl80BAJiWAgFAmRrAl81BAJiVQgFAmRrAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjSAkAzAgCCQCkAwEJAQFHAgUCYloFAWIJAMwIAgkApAMBBQJiVgkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYlUJAMwIAgUCYlQJAMwIAgkApAMBBQJjawkAzAgCCQCkAwEFAmNtBQNuaWwFAWoCZGUBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmZFAmZGBAJjegkBAmJNBAIABQJmRQUCZkYFBHRoaXMEAmNmCAUCY3oCXzEEAmNnCAUCY3oCXzIEAmJWCAUCY3oCXzUEAmJYCAUCY3oCXzYEAmJVCAUCY3oCXzcEAmNhCAUCY3oCXzgEAmJUCQENcGFyc2VJbnRWYWx1ZQEIBQJjegJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNmCQDMCAIJAKQDAQUCY2cJAMwIAgkApAMBBQJiVgkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYlUJAMwIAgkApgMBBQJjYQkAzAgCCQCkAwEFAmJUBQNuaWwFAWoBAmZHAQJmSAAEAmZJBAJkcAkBAmVBAAMJAAECBQJkcAIKQnl0ZVZlY3RvcgQCZUYFAmRwBQJlRgMJAAECBQJkcAIEVW5pdAgFAmZHD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkcAUCZkcDCQABAgUCZHACBU9yZGVyBAJjUQUCZHAEAmZKCQECYUYABAJhdAkBAmNQAQUCY1EEAmF1CQD0AwMIBQJjUQlib2R5Qnl0ZXMJAJEDAggFAmNRBnByb29mcwAACAUCY1EPc2VuZGVyUHVibGljS2V5BAJhdgkA9AMDCAUCY1EJYm9keUJ5dGVzCQCRAwIIBQJjUQZwcm9vZnMAAQUCZkoDAwMFAmF0BQJhdQcFAmF2BwYJAQJhcwMFAmF0BQJhdQUCYXYDCQABAgUCZHACFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlQgUCZHAEAmZLCQD2AwEJAQV2YWx1ZQEIBQJlQgZzY3JpcHQEAmZMCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUMJAQJhcQAEAmZNCQDxBwEFBHRoaXMDAwkAAAIFAmZMBQJmSwkBAiE9AgUCZk0FAmZLBwYJAPQDAwgFAmZHCWJvZHlCeXRlcwkAkQMCCAUCZkcGcHJvb2ZzAAAFAmZJCQD0AwMIBQJmRwlib2R5Qnl0ZXMJAJEDAggFAmZHBnByb29mcwAABQJmSdC3Loo=", "chainId": 84, "height": 2271649, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EBKuFR45juc6kPcFZmfN3ipMbTco6kg5RZQq6niKwoDB Next: AEd7EP96MyVp5hbnnKVkKog9X9mS47CAncKyJrrGJoAz Diff:
OldNewDifferences
176176 func aM (aN) = $Tuple7(addressFromStringValue(aN[o]), parseIntValue(aN[p]), fromBase58String(aN[q]), aJ(aN[r]), aJ(aN[s]), parseIntValue(aN[t]), parseIntValue(aN[u]))
177177
178178
179-func aO () = split(aw(aC, ae()), j)
179+let aO = aM(aG())
180+
181+let aP = aO
182+
183+let aQ = aP._1
184+
185+let aR = aP._2
186+
187+let aS = aP._3
188+
189+let aT = aP._4
190+
191+let aU = aP._5
192+
193+let aV = aP._6
194+
195+let aW = aP._7
196+
197+func aX () = split(aw(aC, ae()), j)
180198
181199
182-let aP = valueOrErrorMessage(addressFromString(aO()[B]), "incorrect staking address")
200+let aY = valueOrErrorMessage(addressFromString(aX()[B]), "incorrect staking address")
183201
184-let aQ = valueOrErrorMessage(addressFromString(aO()[C]), "incorrect staking address")
202+let aZ = valueOrErrorMessage(addressFromString(aX()[C]), "incorrect staking address")
185203
186-func aR (aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(bb)], j)
204+func ba (bb,bc,bd,be,bf,bg,bh,bi,bj,bk) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk)], j)
187205
188206
189-func bc (bd,be,bf,aV,aY,aZ) = makeString(["%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(aV), toString(aY), toString(aZ)], j)
207+func bl (bm,bn,bo,be,bh,bi) = makeString(["%d%d%d%d%d%d", toString(bm), toString(bn), toString(bo), toString(be), toString(bh), toString(bi)], j)
190208
191209
192-func bg (bh) = if ((bh == "WAVES"))
210+func bp (bq) = if ((bq == "WAVES"))
193211 then wavesBalance(this).available
194- else assetBalance(this, fromBase58String(bh))
212+ else assetBalance(this, fromBase58String(bq))
195213
196214
197-func bi (bj,bk) = fraction(bj, d, bk)
215+func br (bs,bt) = fraction(bs, d, bt)
198216
199217
200-func bl (bm,bn,bo,bp) = {
201- let bq = D(bo, bm)
202- let br = D(bp, bn)
203- bi(br, bq)
218+func bu (bv,bw,bx,by) = {
219+ let bz = D(bx, bv)
220+ let bA = D(by, bw)
221+ br(bA, bz)
204222 }
205223
206224
207-func bs (bo,bp,bt) = {
208- let bu = aG()
209- let bv = parseIntValue(bu[t])
210- let bw = parseIntValue(bu[u])
211- let bx = bl(bv, bw, bo, bp)
212- let bk = D(bo, bv)
213- let bj = D(bp, bw)
214- let by = D(bt, b)
215- let bz = bi(bk, by)
216- let bA = bi(bj, by)
217-[bx, bz, bA]
225+func bB (bx,by,bC) = {
226+ let bD = aG()
227+ let bE = parseIntValue(bD[t])
228+ let bF = parseIntValue(bD[u])
229+ let bG = bu(bE, bF, bx, by)
230+ let bt = D(bx, bE)
231+ let bs = D(by, bF)
232+ let bH = D(bC, b)
233+ let bI = br(bt, bH)
234+ let bJ = br(bs, bH)
235+[bG, bI, bJ]
218236 }
219237
220238
221-func bB (bo,bp,bt) = {
222- let bC = bs(bo, bp, bt)
223-[G(bC[0], b), G(bC[1], b), G(bC[2], b)]
239+func bK (bx,by,bC) = {
240+ let bL = bB(bx, by, bC)
241+[G(bL[0], b), G(bL[1], b), G(bL[2], b)]
224242 }
225243
226244
227-func bD (bE,bF,bG,W) = {
228- let bu = aG()
229- let bH = bu[q]
230- let bI = bu[r]
231- let bJ = bu[s]
232- let bm = parseIntValue(bu[t])
233- let bn = parseIntValue(bu[u])
234- let bK = bu[p]
235- let bL = valueOrErrorMessage(assetInfo(fromBase58String(bH)), (("Asset " + bH) + " doesn't exist")).quantity
236- if ((bH != bF))
245+func bM (bN,bO,bP,W) = {
246+ let bD = aG()
247+ let bQ = bD[q]
248+ let bR = bD[r]
249+ let bS = bD[s]
250+ let bv = parseIntValue(bD[t])
251+ let bw = parseIntValue(bD[u])
252+ let bT = bD[p]
253+ let bU = valueOrErrorMessage(assetInfo(fromBase58String(bQ)), (("Asset " + bQ) + " doesn't exist")).quantity
254+ if ((bQ != bO))
237255 then throw("Invalid asset passed.")
238256 else {
239- let bM = bg(bI)
240- let bN = D(bM, bm)
241- let bO = bg(bJ)
242- let bP = D(bO, bn)
243- let bQ = bi(bP, bN)
244- let bR = G(bQ, b)
245- let bS = D(bG, b)
246- let bT = D(bL, b)
247- let bU = fraction(bN, bS, bT)
248- let bV = fraction(bP, bS, bT)
249- let bW = G(bU, bm)
250- let bX = G(bV, bn)
251- let bY = if ((bE == ""))
257+ let bV = bp(bR)
258+ let bW = D(bV, bv)
259+ let bX = bp(bS)
260+ let bY = D(bX, bw)
261+ let bZ = br(bY, bW)
262+ let ca = G(bZ, b)
263+ let cb = D(bP, b)
264+ let cc = D(bU, b)
265+ let cd = fraction(bW, cb, cc)
266+ let ce = fraction(bY, cb, cc)
267+ let cf = G(cd, bv)
268+ let cg = G(ce, bw)
269+ let ch = if ((bN == ""))
252270 then nil
253- else [ScriptTransfer(W, bW, if ((bI == "WAVES"))
271+ else [ScriptTransfer(W, cf, if ((bR == "WAVES"))
254272 then unit
255- else fromBase58String(bI)), ScriptTransfer(W, bX, if ((bJ == "WAVES"))
273+ else fromBase58String(bR)), ScriptTransfer(W, cg, if ((bS == "WAVES"))
256274 then unit
257- else fromBase58String(bJ)), StringEntry(Y(toString(W), bE), bc(bW, bX, bG, bR, height, lastBlock.timestamp)), IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR)]
258- $Tuple10(bW, bX, bI, bJ, bM, bO, bL, bQ, bK, bY)
275+ else fromBase58String(bS)), StringEntry(Y(toString(W), bN), bl(cf, cg, bP, ca, height, lastBlock.timestamp)), IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca)]
276+ $Tuple10(cf, cg, bR, bS, bV, bX, bU, bZ, bT, ch)
259277 }
260278 }
261279
262280
263-func bZ (bE,ca,cb,cc,cd,ce,W,cf,cg) = {
264- let bu = aG()
265- let bH = fromBase58String(bu[q])
266- let ch = bu[r]
267- let ci = bu[s]
268- let cj = bu[v]
269- let ck = bu[w]
270- let bv = parseIntValue(bu[t])
271- let bw = parseIntValue(bu[u])
272- let bK = bu[p]
273- let bL = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
274- let cl = toBase58String(valueOrElse(cc, fromBase58String("WAVES")))
275- let cm = toBase58String(valueOrElse(ce, fromBase58String("WAVES")))
276- if (if ((ch != cl))
281+func ci (bN,cj,ck,cl,cm,cn,W,co,cp) = {
282+ let bD = aG()
283+ let bQ = fromBase58String(bD[q])
284+ let cq = bD[r]
285+ let cr = bD[s]
286+ let cs = bD[v]
287+ let ct = bD[w]
288+ let bE = parseIntValue(bD[t])
289+ let bF = parseIntValue(bD[u])
290+ let bT = bD[p]
291+ let bU = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
292+ let cu = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
293+ let cv = toBase58String(valueOrElse(cn, fromBase58String("WAVES")))
294+ if (if ((cq != cu))
277295 then true
278- else (ci != cm))
296+ else (cr != cv))
279297 then throw("Invalid amt or price asset passed.")
280298 else {
281- let bM = if (cf)
282- then bg(ch)
283- else (bg(ch) - cb)
284- let bO = if (cf)
285- then bg(ci)
286- else (bg(ci) - cd)
287- let cn = D(cb, bv)
288- let co = D(cd, bw)
289- let cp = bi(co, cn)
290- let bN = D(bM, bv)
291- let bP = D(bO, bw)
292- let cq = if ((bL == 0))
299+ let bV = if (co)
300+ then bp(cq)
301+ else (bp(cq) - ck)
302+ let bX = if (co)
303+ then bp(cr)
304+ else (bp(cr) - cm)
305+ let cw = D(ck, bE)
306+ let cx = D(cm, bF)
307+ let cy = br(cx, cw)
308+ let bW = D(bV, bE)
309+ let bY = D(bX, bF)
310+ let cz = if ((bU == 0))
293311 then {
294- let bQ = e
295- let cr = e
296- let by = pow((cn * co), 0, toBigInt(5), 1, 0, DOWN)
297- $Tuple5(G(by, b), G(cn, bv), G(co, bw), bi((bP + co), (bN + cn)), cr)
312+ let bZ = e
313+ let cA = e
314+ let bH = pow((cw * cx), 0, toBigInt(5), 1, 0, DOWN)
315+ $Tuple5(G(bH, b), G(cw, bE), G(cx, bF), br((bY + cx), (bW + cw)), cA)
298316 }
299317 else {
300- let bQ = bi(bP, bN)
301- let cr = fraction(N((bQ - cp)), d, bQ)
302- let cs = D(ca, b)
303- if (if ((bQ != e))
304- then (cr > cs)
318+ let bZ = br(bY, bW)
319+ let cA = fraction(N((bZ - cy)), d, bZ)
320+ let cB = D(cj, b)
321+ if (if ((bZ != e))
322+ then (cA > cB)
305323 else false)
306- then throw(((("Price slippage " + toString(cr)) + " exceeded the passed limit of ") + toString(cs)))
324+ then throw(((("Price slippage " + toString(cA)) + " exceeded the passed limit of ") + toString(cB)))
307325 else {
308- let bT = D(bL, b)
309- let ct = fraction(cn, bQ, d)
310- let cu = fraction(co, d, bQ)
311- let cv = if ((ct > co))
312- then $Tuple2(cu, co)
313- else $Tuple2(cn, ct)
314- let cw = cv._1
315- let cx = cv._2
316- let by = fraction(bT, cx, bP)
317- $Tuple5(G(by, b), G(cw, bv), G(cx, bw), bQ, cr)
326+ let cc = D(bU, b)
327+ let cC = fraction(cw, bZ, d)
328+ let cD = fraction(cx, d, bZ)
329+ let cE = if ((cC > cx))
330+ then $Tuple2(cD, cx)
331+ else $Tuple2(cw, cC)
332+ let cF = cE._1
333+ let cG = cE._2
334+ let bH = fraction(cc, cG, bY)
335+ $Tuple5(G(bH, b), G(cF, bE), G(cG, bF), bZ, cA)
318336 }
319337 }
320- let cy = cq._1
321- let cz = cq._2
322- let cA = cq._3
323- let bR = G(cq._4, b)
324- let cB = G(cq._5, b)
325- if ((0 >= cy))
338+ let cH = cz._1
339+ let cI = cz._2
340+ let cJ = cz._3
341+ let ca = G(cz._4, b)
342+ let cK = G(cz._5, b)
343+ if ((0 >= cH))
326344 then throw("Invalid calculations. LP calculated is less than zero.")
327345 else {
328- let cC = if (!(cg))
346+ let cL = if (!(cp))
329347 then 0
330- else cy
331- let cD = (cb - cz)
332- let cE = (cd - cA)
333- let cF = [IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR), StringEntry(V(W, bE), aR(cz, cA, cC, bR, ca, cB, height, lastBlock.timestamp, cD, cE))]
334- $Tuple13(cy, cC, bR, bM, bO, bL, bH, bK, cF, cD, cE, cc, ce)
348+ else cH
349+ let cM = (ck - cI)
350+ let cN = (cm - cJ)
351+ let cO = [IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca), StringEntry(V(W, bN), ba(cI, cJ, cL, ca, cj, cK, height, lastBlock.timestamp, cM, cN))]
352+ $Tuple13(cH, cL, ca, bV, bX, bU, bQ, bT, cO, cM, cN, cl, cn)
335353 }
336354 }
337355 }
338356
339357
340-func cG (cH) = {
341- let bu = aG()
342- let cI = bu[r]
343- let cJ = bu[s]
344- let bK = parseIntValue(bu[p])
345- let bv = parseIntValue(bu[t])
346- let bw = parseIntValue(bu[u])
347- let cK = bg(cI)
348- let cL = bg(cJ)
349- let bQ = if ((cH.orderType == Buy))
350- then bl(bv, bw, (cK + cH.amount), cL)
351- else bl(bv, bw, (cK - cH.amount), cL)
352- let bR = G(bQ, b)
358+func cP (cQ) = {
359+ let bD = aG()
360+ let cR = bD[r]
361+ let cS = bD[s]
362+ let bT = parseIntValue(bD[p])
363+ let bE = parseIntValue(bD[t])
364+ let bF = parseIntValue(bD[u])
365+ let cT = bp(cR)
366+ let cU = bp(cS)
367+ let bZ = if ((cQ.orderType == Buy))
368+ then bu(bE, bF, (cT + cQ.amount), cU)
369+ else bu(bE, bF, (cT - cQ.amount), cU)
370+ let ca = G(bZ, b)
353371 if (if (if (aE())
354372 then true
355- else (bK == m))
373+ else (bT == m))
356374 then true
357- else (bK == n))
375+ else (bT == n))
358376 then throw("Exchange operations disabled")
359377 else {
360- let cM = cH.assetPair.amountAsset
361- let cN = if ((cM == unit))
378+ let cV = cQ.assetPair.amountAsset
379+ let cW = if ((cV == unit))
362380 then "WAVES"
363- else toBase58String(value(cM))
364- let cO = cH.assetPair.priceAsset
365- let cP = if ((cO == unit))
381+ else toBase58String(value(cV))
382+ let cX = cQ.assetPair.priceAsset
383+ let cY = if ((cX == unit))
366384 then "WAVES"
367- else toBase58String(value(cO))
368- if (if ((cN != cI))
385+ else toBase58String(value(cX))
386+ if (if ((cW != cR))
369387 then true
370- else (cP != cJ))
388+ else (cY != cS))
371389 then throw("Wrong order assets.")
372390 else {
373- let cQ = cH.price
374- let cR = fraction(b, bw, bv)
375- let cS = J(cQ, b, cR)
376- let cT = if ((cH.orderType == Buy))
377- then (bR >= cS)
378- else (cS >= bR)
391+ let cZ = cQ.price
392+ let da = fraction(b, bF, bE)
393+ let db = J(cZ, b, da)
394+ let dc = if ((cQ.orderType == Buy))
395+ then (ca >= db)
396+ else (db >= ca)
379397 true
380398 }
381399 }
382400 }
383401
384402
385-func cU (cV) = if ((size(cV.payments) != 1))
403+func dd (de) = if ((size(de.payments) != 1))
386404 then throw("exactly 1 payment is expected")
387405 else {
388- let cW = value(cV.payments[0])
389- let bF = value(cW.assetId)
390- let cX = cW.amount
391- let cq = bD(toBase58String(cV.transactionId), toBase58String(bF), cX, cV.caller)
392- let bW = cq._1
393- let bX = cq._2
394- let bK = parseIntValue(cq._9)
395- let bY = cq._10
406+ let df = value(de.payments[0])
407+ let bO = value(df.assetId)
408+ let dg = df.amount
409+ let cz = bM(toBase58String(de.transactionId), toBase58String(bO), dg, de.caller)
410+ let cf = cz._1
411+ let cg = cz._2
412+ let bT = parseIntValue(cz._9)
413+ let ch = cz._10
396414 if (if (aE())
397415 then true
398- else (bK == n))
399- then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
400- else $Tuple5(bW, bX, cX, bF, bY)
416+ else (bT == n))
417+ then throw(("Get operation is blocked by admin. Status = " + toString(bT)))
418+ else $Tuple5(cf, cg, dg, bO, ch)
401419 }
402420
403421
404-func cY (cV,ca,cg) = if ((size(cV.payments) != 2))
422+func dh (de,cj,cp) = if ((size(de.payments) != 2))
405423 then throw("exactly 2 payments are expected")
406424 else {
407- let cZ = value(cV.payments[0])
408- let da = value(cV.payments[1])
409- let db = bZ(toBase58String(cV.transactionId), ca, cZ.amount, cZ.assetId, da.amount, da.assetId, toString(cV.caller), false, cg)
410- let bK = parseIntValue(db._8)
425+ let di = value(de.payments[0])
426+ let dj = value(de.payments[1])
427+ let dk = ci(toBase58String(de.transactionId), cj, di.amount, di.assetId, dj.amount, dj.assetId, toString(de.caller), false, cp)
428+ let bT = parseIntValue(dk._8)
411429 if (if (if (aE())
412430 then true
413- else (bK == l))
431+ else (bT == l))
414432 then true
415- else (bK == n))
416- then throw(("Put operation is blocked by admin. Status = " + toString(bK)))
417- else db
433+ else (bT == n))
434+ then throw(("Put operation is blocked by admin. Status = " + toString(bT)))
435+ else dk
418436 }
419437
420438
421-func dc (dd) = {
422- let de = invoke(aC, "emit", [dd], nil)
423- if ((de == de))
439+func dl (dm) = {
440+ let dn = invoke(aC, "emit", [dm], nil)
441+ if ((dn == dn))
424442 then {
425- let df = {
426- let dg = de
427- if ($isInstanceOf(dg, "Address"))
443+ let do = {
444+ let dp = dn
445+ if ($isInstanceOf(dp, "Address"))
428446 then {
429- let dh = dg
430- invoke(dh, "emit", [dd], nil)
447+ let dq = dp
448+ invoke(dq, "emit", [dm], nil)
431449 }
432450 else unit
433451 }
434- if ((df == df))
435- then dd
452+ if ((do == do))
453+ then dm
436454 else throw("Strict value is not equal to itself.")
437455 }
438456 else throw("Strict value is not equal to itself.")
439457 }
440458
441459
442-func di (dd) = {
443- let dj = fraction(dd, ad, b)
444- $Tuple2((dd - dj), dj)
460+func dr (dm) = {
461+ let ds = fraction(dm, ad, b)
462+ $Tuple2((dm - ds), ds)
445463 }
446464
447465
448-func dk (dl,dm,W,X) = {
449- let dn = (X == unit)
450- let do = aM(aG())
451- let dp = do._1
452- let bK = do._2
453- let bH = do._3
454- let dq = do._4
455- let cJ = do._5
456- let dr = do._6
457- let ds = do._7
458- let dt = bg(aL(dq))
459- let du = bg(aL(cJ))
460- let dv = if ((dm == dq))
466+func dt (du,dv,W,X) = {
467+ let dw = (X == unit)
468+ let dx = aM(aG())
469+ let dy = dx._1
470+ let bT = dx._2
471+ let bQ = dx._3
472+ let dz = dx._4
473+ let cS = dx._5
474+ let dA = dx._6
475+ let dB = dx._7
476+ let dC = bp(aL(dz))
477+ let dD = bp(aL(cS))
478+ let dE = if ((dv == dz))
461479 then true
462- else if ((dm == cJ))
480+ else if ((dv == cS))
463481 then false
464482 else aA("invalid asset")
465- let dw = if (dn)
466- then $Tuple2(dt, du)
467- else if (dv)
468- then $Tuple2((dt - dl), du)
469- else $Tuple2(dt, (du - dl))
470- let dx = dw._1
471- let dy = dw._2
472- let dz = if (dv)
473- then $Tuple2(dl, 0)
474- else $Tuple2(0, dl)
475- let dA = dz._1
476- let dB = dz._2
477- let dC = di(dA)._1
478- let dD = di(dB)._1
479- let dE = di(dl)
480- let dF = dE._1
481- let dj = dE._2
482- let dG = (dx + dC)
483- let dH = (dy + dD)
484- let bR = G(bi(D(dH, ds), D(dG, dr)), b)
485- let dI = if (dv)
486- then dx
487- else dy
488- let dJ = toBigInt(dI)
489- let dK = toBigInt(valueOrErrorMessage(assetInfo(bH), (("asset " + toBase58String(bH)) + " doesn't exist")).quantity)
490- let dL = if ((dK > f))
483+ let dF = if (dw)
484+ then $Tuple2(dC, dD)
485+ else if (dE)
486+ then $Tuple2((dC - du), dD)
487+ else $Tuple2(dC, (dD - du))
488+ let dG = dF._1
489+ let dH = dF._2
490+ let dI = if (dE)
491+ then $Tuple2(du, 0)
492+ else $Tuple2(0, du)
493+ let dJ = dI._1
494+ let dK = dI._2
495+ let dL = dr(dJ)._1
496+ let dM = dr(dK)._1
497+ let dN = dr(du)
498+ let dO = dN._1
499+ let ds = dN._2
500+ let dP = (dG + dL)
501+ let dQ = (dH + dM)
502+ let ca = G(br(D(dQ, dB), D(dP, dA)), b)
503+ let dR = if (dE)
504+ then dG
505+ else dH
506+ let dS = toBigInt(dR)
507+ let dT = toBigInt(valueOrErrorMessage(assetInfo(bQ), (("asset " + toBase58String(bQ)) + " doesn't exist")).quantity)
508+ let dU = if ((dT > f))
491509 then true
492510 else throw("initial deposit requires all coins")
493- if ((dL == dL))
511+ if ((dU == dU))
494512 then {
495- let dM = toBigInt(dF)
496- let dN = toInt(((dK * (sqrtBigInt((c + ((dM * c) / dJ)), 8, 8, DOWN) - c)) / c))
497- let cF = if (dn)
513+ let dV = toBigInt(dO)
514+ let dW = toInt(((dT * (sqrtBigInt((c + ((dV * c) / dS)), 8, 8, DOWN) - c)) / c))
515+ let cO = if (dw)
498516 then nil
499- else [IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR), StringEntry(V(toString(value(W)), toBase58String(value(X))), aR(dA, dB, dN, bR, 0, 0, height, lastBlock.timestamp, 0, 0))]
500- let dO = fraction(dy, b, dx)
501- let dP = fraction(dl, b, (dO + b))
502- let dQ = (dl - dP)
503- let dR = fraction(dK, toBigInt(dQ), toBigInt(dy))
504- let dS = toInt(fraction((toBigInt(dN) - dR), c, dR))
505- $Tuple4(dN, cF, dj, dS)
517+ else [IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca), StringEntry(V(toString(value(W)), toBase58String(value(X))), ba(dJ, dK, dW, ca, 0, 0, height, lastBlock.timestamp, 0, 0))]
518+ let dX = fraction(dH, b, dG)
519+ let dY = fraction(du, b, (dX + b))
520+ let dZ = (du - dY)
521+ let ea = fraction(dT, toBigInt(dZ), toBigInt(dH))
522+ let eb = toInt(fraction((toBigInt(dW) - ea), c, ea))
523+ $Tuple4(dW, cO, ds, eb)
506524 }
507525 else throw("Strict value is not equal to itself.")
508526 }
509527
510528
511-func dT (dU,dF,dm,W,X) = {
512- let dn = (X == unit)
513- let dV = aM(aG())
514- let dp = dV._1
515- let bK = dV._2
516- let bH = dV._3
517- let dq = dV._4
518- let cJ = dV._5
519- let dW = dV._6
520- let dX = dV._7
521- let dY = [if ((dm == bH))
529+func ec (ed,dO,dv,W,X) = {
530+ let dw = (X == unit)
531+ let ee = aM(aG())
532+ let dy = ee._1
533+ let bT = ee._2
534+ let bQ = ee._3
535+ let dz = ee._4
536+ let cS = ee._5
537+ let ef = ee._6
538+ let eg = ee._7
539+ let eh = [if ((dv == bQ))
522540 then true
523541 else throw("invalid lp asset")]
524- if ((dY == dY))
542+ if ((eh == eh))
525543 then {
526- let dZ = if ((dU == dq))
544+ let ei = if ((ed == dz))
527545 then true
528- else if ((dU == cJ))
546+ else if ((ed == cS))
529547 then false
530548 else aA("invalid asset")
531- let ea = if (dZ)
532- then toBigInt(bg(aL(dq)))
533- else toBigInt(bg(aL(cJ)))
534- let eb = bg(aL(dq))
535- let ec = bg(aL(cJ))
536- let ed = if (dZ)
537- then eb
538- else ec
539- let ee = toBigInt(ed)
540- let dK = toBigInt(valueOrErrorMessage(assetInfo(bH), (("asset " + toBase58String(bH)) + " doesn't exist")).quantity)
541- let ef = toBigInt(dF)
542- let eg = toInt(((ea * (c - pow((c - ((ef * c) / dK)), 8, h, 0, 8, DOWN))) / c))
543- let eh = di(eg)
544- let ei = eh._1
545- let dj = eh._2
546- let ej = if (dZ)
547- then $Tuple4(ei, 0, (eb - eg), ec)
548- else $Tuple4(0, ei, eb, (ec - eg))
549- let ek = ej._1
550- let el = ej._2
551- let em = ej._3
552- let en = ej._4
553- let eo = bi(D(en, dX), D(em, dW))
554- let bR = G(eo, b)
555- let cF = if (dn)
549+ let ej = if (ei)
550+ then toBigInt(bp(aL(dz)))
551+ else toBigInt(bp(aL(cS)))
552+ let ek = bp(aL(dz))
553+ let el = bp(aL(cS))
554+ let em = if (ei)
555+ then ek
556+ else el
557+ let en = toBigInt(em)
558+ let dT = toBigInt(valueOrErrorMessage(assetInfo(bQ), (("asset " + toBase58String(bQ)) + " doesn't exist")).quantity)
559+ let eo = toBigInt(dO)
560+ let ep = toInt(((ej * (c - pow((c - ((eo * c) / dT)), 8, h, 0, 8, DOWN))) / c))
561+ let eq = dr(ep)
562+ let er = eq._1
563+ let ds = eq._2
564+ let es = if (ei)
565+ then $Tuple4(er, 0, (ek - ep), el)
566+ else $Tuple4(0, er, ek, (el - ep))
567+ let et = es._1
568+ let eu = es._2
569+ let ev = es._3
570+ let ew = es._4
571+ let ex = br(D(ew, eg), D(ev, ef))
572+ let ca = G(ex, b)
573+ let cO = if (dw)
556574 then nil
557- else [StringEntry(Y(toString(value(W)), toBase58String(value(X))), bc(ek, el, dF, bR, height, lastBlock.timestamp)), IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR)]
558- let ep = bD("", aL(bH), dF, this)
559- let eq = (ep._1 + ep._2)
560- let dS = fraction((ei - eq), b, eq)
561- $Tuple4(ei, cF, dj, dS)
575+ else [StringEntry(Y(toString(value(W)), toBase58String(value(X))), bl(et, eu, dO, ca, height, lastBlock.timestamp)), IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca)]
576+ let ey = bM("", aL(bQ), dO, this)
577+ let ez = (ey._1 + ey._2)
578+ let eb = fraction((er - ez), b, ez)
579+ $Tuple4(er, cO, ds, eb)
562580 }
563581 else throw("Strict value is not equal to itself.")
564582 }
565583
566584
567-func er () = {
568- let dg = getString(P())
569- if ($isInstanceOf(dg, "String"))
585+func eA () = {
586+ let dp = getString(P())
587+ if ($isInstanceOf(dp, "String"))
570588 then {
571- let es = dg
572- fromBase58String(es)
589+ let eB = dp
590+ fromBase58String(eB)
573591 }
574- else if ($isInstanceOf(dg, "Unit"))
592+ else if ($isInstanceOf(dp, "Unit"))
575593 then unit
576594 else throw("Match error")
577595 }
578596
579597
580-func et () = {
581- let dg = getString(Q())
582- if ($isInstanceOf(dg, "String"))
598+func eC () = {
599+ let dp = getString(Q())
600+ if ($isInstanceOf(dp, "String"))
583601 then {
584- let es = dg
585- fromBase58String(es)
602+ let eB = dp
603+ fromBase58String(eB)
586604 }
587- else if ($isInstanceOf(dg, "Unit"))
605+ else if ($isInstanceOf(dp, "Unit"))
588606 then unit
589607 else throw("Match error")
590608 }
591609
592610
593-func eu (cV) = {
594- let ev = throw("Permission denied")
595- let dg = er()
596- if ($isInstanceOf(dg, "ByteVector"))
611+func eD (de) = {
612+ let eE = throw("Permission denied")
613+ let dp = eA()
614+ if ($isInstanceOf(dp, "ByteVector"))
597615 then {
598- let ew = dg
599- if ((cV.callerPublicKey == ew))
616+ let eF = dp
617+ if ((de.callerPublicKey == eF))
600618 then true
601- else ev
619+ else eE
602620 }
603- else if ($isInstanceOf(dg, "Unit"))
604- then if ((cV.caller == this))
621+ else if ($isInstanceOf(dp, "Unit"))
622+ then if ((de.caller == this))
605623 then true
606- else ev
624+ else eE
607625 else throw("Match error")
608626 }
609627
610628
611-@Callable(cV)
612-func setManager (ex) = {
613- let ey = eu(cV)
614- if ((ey == ey))
629+@Callable(de)
630+func setManager (eG) = {
631+ let eH = eD(de)
632+ if ((eH == eH))
615633 then {
616- let ez = fromBase58String(ex)
617- if ((ez == ez))
618- then [StringEntry(Q(), ex)]
634+ let eI = fromBase58String(eG)
635+ if ((eI == eI))
636+ then [StringEntry(Q(), eG)]
619637 else throw("Strict value is not equal to itself.")
620638 }
621639 else throw("Strict value is not equal to itself.")
623641
624642
625643
626-@Callable(cV)
644+@Callable(de)
627645 func confirmManager () = {
628- let eA = et()
629- let eB = if (isDefined(eA))
646+ let eJ = eC()
647+ let eK = if (isDefined(eJ))
630648 then true
631649 else throw("No pending manager")
632- if ((eB == eB))
650+ if ((eK == eK))
633651 then {
634- let eC = if ((cV.callerPublicKey == value(eA)))
652+ let eL = if ((de.callerPublicKey == value(eJ)))
635653 then true
636654 else throw("You are not pending manager")
637- if ((eC == eC))
638- then [StringEntry(P(), toBase58String(value(eA))), DeleteEntry(Q())]
655+ if ((eL == eL))
656+ then [StringEntry(P(), toBase58String(value(eJ))), DeleteEntry(Q())]
639657 else throw("Strict value is not equal to itself.")
640658 }
641659 else throw("Strict value is not equal to itself.")
643661
644662
645663
646-@Callable(cV)
647-func put (ca,eD) = if ((0 > ca))
664+@Callable(de)
665+func put (cj,eM) = if ((0 > cj))
648666 then throw("Invalid slippageTolerance passed")
649667 else {
650- let db = cY(cV, ca, true)
651- let cC = db._2
652- let bH = db._7
653- let bY = db._9
654- let cD = db._10
655- let cE = db._11
656- let eE = db._12
657- let eF = db._13
658- let de = invoke(aC, "emit", [cC], nil)
659- if ((de == de))
668+ let dk = dh(de, cj, true)
669+ let cL = dk._2
670+ let bQ = dk._7
671+ let ch = dk._9
672+ let cM = dk._10
673+ let cN = dk._11
674+ let eN = dk._12
675+ let eO = dk._13
676+ let dn = invoke(aC, "emit", [cL], nil)
677+ if ((dn == dn))
660678 then {
661- let df = {
662- let dg = de
663- if ($isInstanceOf(dg, "Address"))
679+ let do = {
680+ let dp = dn
681+ if ($isInstanceOf(dp, "Address"))
664682 then {
665- let dh = dg
666- invoke(dh, "emit", [cC], nil)
683+ let dq = dp
684+ invoke(dq, "emit", [cL], nil)
667685 }
668686 else unit
669687 }
670- if ((df == df))
688+ if ((do == do))
671689 then {
672- let eG = if ((cD > 0))
673- then invoke(aQ, "put", nil, [AttachedPayment(eE, cD)])
690+ let eP = if ((cM > 0))
691+ then invoke(aZ, "put", nil, [AttachedPayment(eN, cM)])
674692 else nil
675- if ((eG == eG))
693+ if ((eP == eP))
676694 then {
677- let eH = if ((cE > 0))
678- then invoke(aQ, "put", nil, [AttachedPayment(eF, cE)])
695+ let eQ = if ((cN > 0))
696+ then invoke(aZ, "put", nil, [AttachedPayment(eO, cN)])
679697 else nil
680- if ((eH == eH))
698+ if ((eQ == eQ))
681699 then {
682- let eI = if (eD)
700+ let eR = if (eM)
683701 then {
684- let eJ = invoke(aP, "stake", nil, [AttachedPayment(bH, cC)])
685- if ((eJ == eJ))
702+ let eS = invoke(aY, "stake", nil, [AttachedPayment(bQ, cL)])
703+ if ((eS == eS))
686704 then nil
687705 else throw("Strict value is not equal to itself.")
688706 }
689- else [ScriptTransfer(cV.caller, cC, bH)]
690- (bY ++ eI)
707+ else [ScriptTransfer(de.caller, cL, bQ)]
708+ (ch ++ eR)
691709 }
692710 else throw("Strict value is not equal to itself.")
693711 }
700718
701719
702720
703-@Callable(cV)
704-func putForFree (eK) = if ((0 > eK))
721+@Callable(de)
722+func putForFree (eT) = if ((0 > eT))
705723 then throw("Invalid value passed")
706724 else {
707- let db = cY(cV, eK, false)
708- db._9
725+ let dk = dh(de, eT, false)
726+ dk._9
709727 }
710728
711729
712730
713-@Callable(cV)
714-func putOneTkn (eL,eM) = {
715- let eN = aM(aG())
716- let dp = eN._1
717- let bK = eN._2
718- let bH = eN._3
719- let dq = eN._4
720- let cJ = eN._5
721- let dr = eN._6
722- let ds = eN._7
723- let eO = if (if (aE())
731+@Callable(de)
732+func putOneTkn (eU,eV) = {
733+ let eW = if (if (aE())
724734 then true
725- else (bK == l))
735+ else (aR == l))
726736 then true
727- else (bK == n)
728- let dY = [if (!(eO))
737+ else (aR == n)
738+ let eh = [if (!(eW))
729739 then true
730- else aA("put operation is blocked by admin"), if ((size(cV.payments) == 1))
740+ else aA("put operation is blocked by admin"), if ((size(de.payments) == 1))
731741 then true
732742 else aA("exactly 1 payment are expected")]
733- if ((dY == dY))
743+ if ((eh == eh))
734744 then {
735- let eP = cV.payments[0]
736- let dm = eP.assetId
737- let dl = eP.amount
738- let dF = dl
739- let W = cV.caller
740- let X = cV.transactionId
741- let eQ = dk(dl, dm, W, X)
742- let eR = eQ._1
743- let cF = eQ._2
744- let dj = eQ._3
745- let dS = eQ._4
746- let eS = if (if ((eL > 0))
747- then (eL > eR)
745+ let eX = de.payments[0]
746+ let dv = eX.assetId
747+ let du = eX.amount
748+ let W = de.caller
749+ let X = de.transactionId
750+ let eY = dt(du, dv, W, X)
751+ let eZ = eY._1
752+ let cO = eY._2
753+ let ds = eY._3
754+ let eb = eY._4
755+ let fa = if (if ((eU > 0))
756+ then (eU > eZ)
748757 else false)
749- then throw(makeString(["amount to receive is less than ", toString(eL)], ""))
750- else eR
751- let de = dc(eS)
752- if ((de == de))
758+ then throw(makeString(["amount to receive is less than ", toString(eU)], ""))
759+ else eZ
760+ let dn = dl(fa)
761+ if ((dn == dn))
753762 then {
754- let eI = if (eM)
763+ let eR = if (eV)
755764 then {
756- let eT = invoke(aP, "stake", nil, [AttachedPayment(bH, eS)])
757- if ((eT == eT))
765+ let fb = invoke(aY, "stake", nil, [AttachedPayment(aS, fa)])
766+ if ((fb == fb))
758767 then nil
759768 else throw("Strict value is not equal to itself.")
760769 }
761- else [ScriptTransfer(cV.caller, eS, bH)]
762- let eU = if ((dj > 0))
763- then [ScriptTransfer(aD, dj, dm)]
770+ else [ScriptTransfer(de.caller, fa, aS)]
771+ let fc = if ((ds > 0))
772+ then [ScriptTransfer(aD, ds, dv)]
764773 else nil
765- $Tuple2(((cF ++ eI) ++ eU), eS)
774+ $Tuple2(((cO ++ eR) ++ fc), fa)
766775 }
767776 else throw("Strict value is not equal to itself.")
768777 }
771780
772781
773782
774-@Callable(cV)
775-func getOneTkn (dU,eL,eV) = {
776- let eW = aM(aG())
777- let dp = eW._1
778- let bK = eW._2
779- let bH = eW._3
780- let dq = eW._4
781- let cJ = eW._5
782- let dr = eW._6
783- let ds = eW._7
784- let eX = if (aE())
783+@Callable(de)
784+func putOneTknREADONLY (du,dv) = {
785+ let fd = dt(du, aJ(dv), unit, unit)
786+ let eZ = fd._1
787+ let cO = fd._2
788+ let ds = fd._3
789+ let eb = fd._4
790+ $Tuple2(nil, $Tuple3(eZ, ds, eb))
791+ }
792+
793+
794+
795+@Callable(de)
796+func getOneTkn (ed,eU,fe) = {
797+ let ff = if (aE())
785798 then true
786- else (bK == n)
787- let dY = [if (!(eX))
799+ else (aR == n)
800+ let eh = [if (!(ff))
788801 then true
789- else aA("get operation is blocked by admin"), if ((size(cV.payments) == 1))
802+ else aA("get operation is blocked by admin"), if ((size(de.payments) == 1))
790803 then true
791804 else aA("exactly 1 payment are expected")]
792- if ((dY == dY))
805+ if ((eh == eh))
793806 then {
794- let eP = cV.payments[0]
795- let dm = eP.assetId
796- let dF = eP.amount
797- let W = cV.caller
798- let X = cV.transactionId
799- let eY = dT(aJ(dU), dF, dm, W, X)
800- let eZ = eY._1
801- let cF = eY._2
802- let dj = eY._3
803- let dS = eY._4
804- let dd = if (if ((eL > 0))
805- then (eL > eZ)
807+ let eX = de.payments[0]
808+ let dv = eX.assetId
809+ let dO = eX.amount
810+ let W = de.caller
811+ let X = de.transactionId
812+ let fg = ec(aJ(ed), dO, dv, W, X)
813+ let fh = fg._1
814+ let cO = fg._2
815+ let ds = fg._3
816+ let eb = fg._4
817+ let dm = if (if ((eU > 0))
818+ then (eU > fh)
806819 else false)
807- then throw(makeString(["amount to receive is less than ", toString(eL)], ""))
808- else eZ
809- let fa = invoke(aC, "burn", [dF], [AttachedPayment(dm, dF)])
810- if ((fa == fa))
820+ then throw(makeString(["amount to receive is less than ", toString(eU)], ""))
821+ else fh
822+ let fi = invoke(aC, "burn", [dO], [AttachedPayment(dv, dO)])
823+ if ((fi == fi))
811824 then {
812- let fb = [ScriptTransfer(W, dd, aJ(dU))]
813- $Tuple2(fb, dd)
825+ let fj = [ScriptTransfer(W, dm, aJ(ed))]
826+ $Tuple2(fj, dm)
814827 }
815828 else throw("Strict value is not equal to itself.")
816829 }
819832
820833
821834
822-@Callable(cV)
835+@Callable(de)
836+func getOneTknREADONLY (ed,dO) = {
837+ let fk = ec(aJ(ed), dO, aS, unit, unit)
838+ let fh = fk._1
839+ let cO = fk._2
840+ let ds = fk._3
841+ let eb = fk._4
842+ $Tuple2(nil, $Tuple3(fh, ds, eb))
843+ }
844+
845+
846+
847+@Callable(de)
823848 func get () = {
824- let cq = cU(cV)
825- let fc = cq._1
826- let bX = cq._2
827- let cX = cq._3
828- let bF = cq._4
829- let bY = cq._5
830- let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
831- if ((fd == fd))
832- then bY
849+ let cz = dd(de)
850+ let fl = cz._1
851+ let cg = cz._2
852+ let dg = cz._3
853+ let bO = cz._4
854+ let ch = cz._5
855+ let fm = invoke(aC, "burn", [dg], [AttachedPayment(bO, dg)])
856+ if ((fm == fm))
857+ then ch
833858 else throw("Strict value is not equal to itself.")
834859 }
835860
836861
837862
838-@Callable(cV)
839-func getNoLess (fe,ff) = {
840- let cq = cU(cV)
841- let bW = cq._1
842- let bX = cq._2
843- let cX = cq._3
844- let bF = cq._4
845- let bY = cq._5
846- if ((fe > bW))
847- then throw(((("noLessThenAmtAsset failed: " + toString(bW)) + " < ") + toString(fe)))
848- else if ((ff > bX))
849- then throw(((("noLessThenPriceAsset failed: " + toString(bX)) + " < ") + toString(ff)))
863+@Callable(de)
864+func getNoLess (fn,fo) = {
865+ let cz = dd(de)
866+ let cf = cz._1
867+ let cg = cz._2
868+ let dg = cz._3
869+ let bO = cz._4
870+ let ch = cz._5
871+ if ((fn > cf))
872+ then throw(((("noLessThenAmtAsset failed: " + toString(cf)) + " < ") + toString(fn)))
873+ else if ((fo > cg))
874+ then throw(((("noLessThenPriceAsset failed: " + toString(cg)) + " < ") + toString(fo)))
850875 else {
851- let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
852- if ((fd == fd))
853- then bY
876+ let fm = invoke(aC, "burn", [dg], [AttachedPayment(bO, dg)])
877+ if ((fm == fm))
878+ then ch
854879 else throw("Strict value is not equal to itself.")
855880 }
856881 }
857882
858883
859884
860-@Callable(cV)
861-func unstakeAndGet (dd) = {
862- let fg = if ((size(cV.payments) != 0))
885+@Callable(de)
886+func unstakeAndGet (dm) = {
887+ let fp = if ((size(de.payments) != 0))
863888 then throw("No payments are expected")
864889 else true
865- if ((fg == fg))
890+ if ((fp == fp))
866891 then {
867- let bu = aG()
868- let bH = fromBase58String(bu[q])
869- let fh = invoke(aP, "unstake", [toBase58String(bH), dd], nil)
870- if ((fh == fh))
892+ let bD = aG()
893+ let bQ = fromBase58String(bD[q])
894+ let fq = invoke(aY, "unstake", [toBase58String(bQ), dm], nil)
895+ if ((fq == fq))
871896 then {
872- let cq = bD(toBase58String(cV.transactionId), toBase58String(bH), dd, cV.caller)
873- let bK = parseIntValue(cq._9)
874- let bY = cq._10
875- let fi = if (if (aE())
897+ let cz = bM(toBase58String(de.transactionId), toBase58String(bQ), dm, de.caller)
898+ let bT = parseIntValue(cz._9)
899+ let ch = cz._10
900+ let fr = if (if (aE())
876901 then true
877- else (bK == n))
878- then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
902+ else (bT == n))
903+ then throw(("Get operation is blocked by admin. Status = " + toString(bT)))
879904 else true
880- if ((fi == fi))
905+ if ((fr == fr))
881906 then {
882- let fd = invoke(aC, "burn", [dd], [AttachedPayment(bH, dd)])
883- if ((fd == fd))
884- then bY
907+ let fm = invoke(aC, "burn", [dm], [AttachedPayment(bQ, dm)])
908+ if ((fm == fm))
909+ then ch
885910 else throw("Strict value is not equal to itself.")
886911 }
887912 else throw("Strict value is not equal to itself.")
893918
894919
895920
896-@Callable(cV)
897-func activate (fj,fk) = if ((toString(cV.caller) != toString(aC)))
921+@Callable(de)
922+func activate (fs,ft) = if ((toString(de.caller) != toString(aC)))
898923 then throw("permissions denied")
899- else $Tuple2([StringEntry(Z(), fj), StringEntry(aa(), fk)], "success")
924+ else $Tuple2([StringEntry(Z(), fs), StringEntry(aa(), ft)], "success")
900925
901926
902927
903-@Callable(cV)
928+@Callable(de)
904929 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
905930
906931
907932
908-@Callable(cV)
909-func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
933+@Callable(de)
934+func getAccBalanceWrapperREADONLY (bq) = $Tuple2(nil, bp(bq))
910935
911936
912937
913-@Callable(cV)
914-func calcPricesWrapperREADONLY (bo,bp,bt) = {
915- let bC = bs(bo, bp, bt)
916- $Tuple2(nil, [toString(bC[0]), toString(bC[1]), toString(bC[2])])
938+@Callable(de)
939+func calcPricesWrapperREADONLY (bx,by,bC) = {
940+ let bL = bB(bx, by, bC)
941+ $Tuple2(nil, [toString(bL[0]), toString(bL[1]), toString(bL[2])])
917942 }
918943
919944
920945
921-@Callable(cV)
946+@Callable(de)
922947 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
923948
924949
925950
926-@Callable(cV)
951+@Callable(de)
927952 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
928953
929954
930955
931-@Callable(cV)
932-func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
956+@Callable(de)
957+func calcPriceBigIntWrapperREADONLY (bs,bt) = $Tuple2(nil, toString(br(parseBigIntValue(bs), parseBigIntValue(bt))))
933958
934959
935960
936-@Callable(cV)
937-func estimatePutOperationWrapperREADONLY (bE,ca,cb,cc,cd,ce,W,cf,cg) = $Tuple2(nil, bZ(bE, ca, cb, cc, cd, ce, W, cf, cg))
961+@Callable(de)
962+func estimatePutOperationWrapperREADONLY (bN,cj,ck,cl,cm,cn,W,co,cp) = $Tuple2(nil, ci(bN, cj, ck, cl, cm, cn, W, co, cp))
938963
939964
940965
941-@Callable(cV)
942-func estimateGetOperationWrapperREADONLY (bE,bF,bG,W) = {
943- let cq = bD(bE, bF, bG, addressFromStringValue(W))
944- $Tuple2(nil, $Tuple10(cq._1, cq._2, cq._3, cq._4, cq._5, cq._6, cq._7, toString(cq._8), cq._9, cq._10))
966+@Callable(de)
967+func estimateGetOperationWrapperREADONLY (bN,bO,bP,W) = {
968+ let cz = bM(bN, bO, bP, addressFromStringValue(W))
969+ $Tuple2(nil, $Tuple10(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, toString(cz._8), cz._9, cz._10))
945970 }
946971
947972
948973
949-@Callable(cV)
974+@Callable(de)
950975 func statsREADONLY () = {
951- let bu = aG()
952- let bH = fromBase58String(bu[q])
953- let cI = bu[r]
954- let cJ = bu[s]
955- let cj = bu[v]
956- let ck = bu[w]
957- let bv = parseIntValue(bu[t])
958- let bw = parseIntValue(bu[u])
959- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
960- let cK = bg(cI)
961- let cL = bg(cJ)
962- let fm = if ((fl == 0))
976+ let bD = aG()
977+ let bQ = fromBase58String(bD[q])
978+ let cR = bD[r]
979+ let cS = bD[s]
980+ let cs = bD[v]
981+ let ct = bD[w]
982+ let bE = parseIntValue(bD[t])
983+ let bF = parseIntValue(bD[u])
984+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
985+ let cT = bp(cR)
986+ let cU = bp(cS)
987+ let fv = if ((fu == 0))
963988 then [e, e, e]
964- else bs(cK, cL, fl)
965- let bR = 0
966- let fn = G(fm[1], b)
967- let fo = G(fm[2], b)
968- let fp = value(getInteger(aC, ao(toString(this))))
969- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cK), toString(cL), toString(fl), toString(bR), toString(fn), toString(fo), toString(fp)], j))
989+ else bB(cT, cU, fu)
990+ let ca = 0
991+ let fw = G(fv[1], b)
992+ let fx = G(fv[2], b)
993+ let fy = value(getInteger(aC, ao(toString(this))))
994+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cT), toString(cU), toString(fu), toString(ca), toString(fw), toString(fx), toString(fy)], j))
970995 }
971996
972997
973998
974-@Callable(cV)
975-func evaluatePutByAmountAssetREADONLY (cb) = {
976- let bu = aG()
977- let bH = fromBase58String(bu[q])
978- let ch = bu[r]
979- let bI = fromBase58String(ch)
980- let ci = bu[s]
981- let bJ = fromBase58String(ci)
982- let bv = parseIntValue(bu[t])
983- let bw = parseIntValue(bu[u])
984- let bK = bu[p]
985- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
986- let cK = bg(ch)
987- let cL = bg(ci)
988- let bq = D(cK, bv)
989- let br = D(cL, bw)
990- let bQ = if ((fl == 0))
999+@Callable(de)
1000+func evaluatePutByAmountAssetREADONLY (ck) = {
1001+ let bD = aG()
1002+ let bQ = fromBase58String(bD[q])
1003+ let cq = bD[r]
1004+ let bR = fromBase58String(cq)
1005+ let cr = bD[s]
1006+ let bS = fromBase58String(cr)
1007+ let bE = parseIntValue(bD[t])
1008+ let bF = parseIntValue(bD[u])
1009+ let bT = bD[p]
1010+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
1011+ let cT = bp(cq)
1012+ let cU = bp(cr)
1013+ let bz = D(cT, bE)
1014+ let bA = D(cU, bF)
1015+ let bZ = if ((fu == 0))
9911016 then e
992- else bi(br, bq)
993- let cn = D(cb, bv)
994- let co = fraction(cn, bQ, d)
995- let cd = G(co, bw)
996- let db = bZ("", 500000, cb, bI, cd, bJ, "", true, false)
997- let cy = db._1
998- let fq = db._3
999- let bM = db._4
1000- let bO = db._5
1001- let bL = db._6
1002- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cy), toString(G(bQ, b)), toString(bM), toString(bO), toString(bL), bK, toString(cb), toString(cd)], j))
1017+ else br(bA, bz)
1018+ let cw = D(ck, bE)
1019+ let cx = fraction(cw, bZ, d)
1020+ let cm = G(cx, bF)
1021+ let dk = ci("", 500000, ck, bR, cm, bS, "", true, false)
1022+ let cH = dk._1
1023+ let fz = dk._3
1024+ let bV = dk._4
1025+ let bX = dk._5
1026+ let bU = dk._6
1027+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cH), toString(G(bZ, b)), toString(bV), toString(bX), toString(bU), bT, toString(ck), toString(cm)], j))
10031028 }
10041029
10051030
10061031
1007-@Callable(cV)
1008-func evaluatePutByPriceAssetREADONLY (cd) = {
1009- let bu = aG()
1010- let bH = fromBase58String(bu[q])
1011- let ch = bu[r]
1012- let bI = fromBase58String(ch)
1013- let ci = bu[s]
1014- let bJ = fromBase58String(ci)
1015- let bv = parseIntValue(bu[t])
1016- let bw = parseIntValue(bu[u])
1017- let bK = bu[p]
1018- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
1019- let fr = bg(ch)
1020- let fs = bg(ci)
1021- let ft = D(fr, bv)
1022- let fu = D(fs, bw)
1023- let bQ = if ((fl == 0))
1032+@Callable(de)
1033+func evaluatePutByPriceAssetREADONLY (cm) = {
1034+ let bD = aG()
1035+ let bQ = fromBase58String(bD[q])
1036+ let cq = bD[r]
1037+ let bR = fromBase58String(cq)
1038+ let cr = bD[s]
1039+ let bS = fromBase58String(cr)
1040+ let bE = parseIntValue(bD[t])
1041+ let bF = parseIntValue(bD[u])
1042+ let bT = bD[p]
1043+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
1044+ let fA = bp(cq)
1045+ let fB = bp(cr)
1046+ let fC = D(fA, bE)
1047+ let fD = D(fB, bF)
1048+ let bZ = if ((fu == 0))
10241049 then e
1025- else bi(fu, ft)
1026- let co = D(cd, bw)
1027- let cn = fraction(co, d, bQ)
1028- let cb = G(cn, bv)
1029- let db = bZ("", 500000, cb, bI, cd, bJ, "", true, false)
1030- let cy = db._1
1031- let fq = db._3
1032- let bM = db._4
1033- let bO = db._5
1034- let bL = db._6
1035- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cy), toString(G(bQ, b)), toString(bM), toString(bO), toString(bL), bK, toString(cb), toString(cd)], j))
1050+ else br(fD, fC)
1051+ let cx = D(cm, bF)
1052+ let cw = fraction(cx, d, bZ)
1053+ let ck = G(cw, bE)
1054+ let dk = ci("", 500000, ck, bR, cm, bS, "", true, false)
1055+ let cH = dk._1
1056+ let fz = dk._3
1057+ let bV = dk._4
1058+ let bX = dk._5
1059+ let bU = dk._6
1060+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cH), toString(G(bZ, b)), toString(bV), toString(bX), toString(bU), bT, toString(ck), toString(cm)], j))
10361061 }
10371062
10381063
10391064
1040-@Callable(cV)
1041-func evaluateGetREADONLY (fv,fw) = {
1042- let cq = bD("", fv, fw, this)
1043- let bW = cq._1
1044- let bX = cq._2
1045- let bM = cq._5
1046- let bO = cq._6
1047- let bL = cq._7
1048- let bR = cq._8
1049- let bK = parseIntValue(cq._9)
1050- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bW), toString(bX), toString(bM), toString(bO), toString(bL), toString(bR), toString(bK)], j))
1065+@Callable(de)
1066+func evaluateGetREADONLY (fE,fF) = {
1067+ let cz = bM("", fE, fF, this)
1068+ let cf = cz._1
1069+ let cg = cz._2
1070+ let bV = cz._5
1071+ let bX = cz._6
1072+ let bU = cz._7
1073+ let ca = cz._8
1074+ let bT = parseIntValue(cz._9)
1075+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cf), toString(cg), toString(bV), toString(bX), toString(bU), toString(ca), toString(bT)], j))
10511076 }
10521077
10531078
1054-@Verifier(fx)
1055-func fy () = {
1056- let fz = {
1057- let dg = er()
1058- if ($isInstanceOf(dg, "ByteVector"))
1079+@Verifier(fG)
1080+func fH () = {
1081+ let fI = {
1082+ let dp = eA()
1083+ if ($isInstanceOf(dp, "ByteVector"))
10591084 then {
1060- let ew = dg
1061- ew
1085+ let eF = dp
1086+ eF
10621087 }
1063- else if ($isInstanceOf(dg, "Unit"))
1064- then fx.senderPublicKey
1088+ else if ($isInstanceOf(dp, "Unit"))
1089+ then fG.senderPublicKey
10651090 else throw("Match error")
10661091 }
1067- let dg = fx
1068- if ($isInstanceOf(dg, "Order"))
1092+ let dp = fG
1093+ if ($isInstanceOf(dp, "Order"))
10691094 then {
1070- let cH = dg
1071- let fA = aF()
1072- let at = cG(cH)
1073- let au = sigVerify(cH.bodyBytes, cH.proofs[0], cH.senderPublicKey)
1074- let av = sigVerify(cH.bodyBytes, cH.proofs[1], fA)
1095+ let cQ = dp
1096+ let fJ = aF()
1097+ let at = cP(cQ)
1098+ let au = sigVerify(cQ.bodyBytes, cQ.proofs[0], cQ.senderPublicKey)
1099+ let av = sigVerify(cQ.bodyBytes, cQ.proofs[1], fJ)
10751100 if (if (if (at)
10761101 then au
10771102 else false)
10801105 then true
10811106 else as(at, au, av)
10821107 }
1083- else if ($isInstanceOf(dg, "SetScriptTransaction"))
1108+ else if ($isInstanceOf(dp, "SetScriptTransaction"))
10841109 then {
1085- let es = dg
1086- let fB = blake2b256(value(es.script))
1087- let fC = fromBase64String(value(getString(aC, aq())))
1088- let fD = scriptHash(this)
1089- if (if ((fC == fB))
1090- then (fD != fB)
1110+ let eB = dp
1111+ let fK = blake2b256(value(eB.script))
1112+ let fL = fromBase64String(value(getString(aC, aq())))
1113+ let fM = scriptHash(this)
1114+ if (if ((fL == fK))
1115+ then (fM != fK)
10911116 else false)
10921117 then true
1093- else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
1118+ else sigVerify(fG.bodyBytes, fG.proofs[0], fI)
10941119 }
1095- else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
1120+ else sigVerify(fG.bodyBytes, fG.proofs[0], fI)
10961121 }
10971122
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (H,I) = toInt(fraction(H, toBigInt(I), d))
6666
6767
6868 func J (K,L,M) = fraction(K, L, M)
6969
7070
7171 func N (H) = if ((e > H))
7272 then -(H)
7373 else H
7474
7575
7676 func O () = "%s__factoryContract"
7777
7878
7979 func P () = "%s__managerPublicKey"
8080
8181
8282 func Q () = "%s__pendingManagerPublicKey"
8383
8484
8585 func R () = "%s%s__price__last"
8686
8787
8888 func S (T,U) = makeString(["%s%s%d%d__price__history", toString(T), toString(U)], j)
8989
9090
9191 func V (W,X) = ((("%s%s%s__P__" + W) + "__") + X)
9292
9393
9494 func Y (W,X) = ((("%s%s%s__G__" + W) + "__") + X)
9595
9696
9797 func Z () = "%s__amountAsset"
9898
9999
100100 func aa () = "%s__priceAsset"
101101
102102
103103 let ab = "%s__fee"
104104
105105 let ac = fraction(5, b, 10000)
106106
107107 let ad = valueOrElse(getInteger(this, ab), ac)
108108
109109 func ae () = "%s__factoryConfig"
110110
111111
112112 func af () = "%s%s__matcher__publicKey"
113113
114114
115115 func ag (ah) = (("%s%s%s__" + ah) + "__mappings__poolContract2LpAsset")
116116
117117
118118 func ai (aj,ak) = (((("%d%d%s__" + aj) + "__") + ak) + "__config")
119119
120120
121121 func al (am) = ("%s%s%s__mappings__baseAsset2internalId__" + am)
122122
123123
124124 func an () = "%s__shutdown"
125125
126126
127127 func ao (ap) = ("%s%s__poolWeight__" + ap)
128128
129129
130130 func aq () = "%s__allowedLpScriptHash"
131131
132132
133133 let ar = "%s__feeCollectorAddress"
134134
135135 func as (at,au,av) = throw(((((("order validation failed: orderValid=" + toString(at)) + " senderValid=") + toString(au)) + " matcherValid=") + toString(av)))
136136
137137
138138 func aw (ax,ay) = valueOrErrorMessage(getString(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
139139
140140
141141 func az (ax,ay) = valueOrErrorMessage(getInteger(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
142142
143143
144144 func aA (aB) = throw(makeString(["lp.ride:", aB], " "))
145145
146146
147147 let aC = addressFromStringValue(aw(this, O()))
148148
149149 let aD = addressFromStringValue(aw(aC, ar))
150150
151151 func aE () = valueOrElse(getBoolean(aC, an()), false)
152152
153153
154154 func aF () = fromBase58String(aw(aC, af()))
155155
156156
157157 func aG () = {
158158 let aH = aw(this, Z())
159159 let aI = aw(this, aa())
160160 let ak = az(aC, al(aI))
161161 let aj = az(aC, al(aH))
162162 split(aw(aC, ai(toString(aj), toString(ak))), j)
163163 }
164164
165165
166166 func aJ (aK) = if ((aK == i))
167167 then unit
168168 else fromBase58String(aK)
169169
170170
171171 func aL (aK) = if ((aK == unit))
172172 then i
173173 else toBase58String(value(aK))
174174
175175
176176 func aM (aN) = $Tuple7(addressFromStringValue(aN[o]), parseIntValue(aN[p]), fromBase58String(aN[q]), aJ(aN[r]), aJ(aN[s]), parseIntValue(aN[t]), parseIntValue(aN[u]))
177177
178178
179-func aO () = split(aw(aC, ae()), j)
179+let aO = aM(aG())
180+
181+let aP = aO
182+
183+let aQ = aP._1
184+
185+let aR = aP._2
186+
187+let aS = aP._3
188+
189+let aT = aP._4
190+
191+let aU = aP._5
192+
193+let aV = aP._6
194+
195+let aW = aP._7
196+
197+func aX () = split(aw(aC, ae()), j)
180198
181199
182-let aP = valueOrErrorMessage(addressFromString(aO()[B]), "incorrect staking address")
200+let aY = valueOrErrorMessage(addressFromString(aX()[B]), "incorrect staking address")
183201
184-let aQ = valueOrErrorMessage(addressFromString(aO()[C]), "incorrect staking address")
202+let aZ = valueOrErrorMessage(addressFromString(aX()[C]), "incorrect staking address")
185203
186-func aR (aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(bb)], j)
204+func ba (bb,bc,bd,be,bf,bg,bh,bi,bj,bk) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk)], j)
187205
188206
189-func bc (bd,be,bf,aV,aY,aZ) = makeString(["%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(aV), toString(aY), toString(aZ)], j)
207+func bl (bm,bn,bo,be,bh,bi) = makeString(["%d%d%d%d%d%d", toString(bm), toString(bn), toString(bo), toString(be), toString(bh), toString(bi)], j)
190208
191209
192-func bg (bh) = if ((bh == "WAVES"))
210+func bp (bq) = if ((bq == "WAVES"))
193211 then wavesBalance(this).available
194- else assetBalance(this, fromBase58String(bh))
212+ else assetBalance(this, fromBase58String(bq))
195213
196214
197-func bi (bj,bk) = fraction(bj, d, bk)
215+func br (bs,bt) = fraction(bs, d, bt)
198216
199217
200-func bl (bm,bn,bo,bp) = {
201- let bq = D(bo, bm)
202- let br = D(bp, bn)
203- bi(br, bq)
218+func bu (bv,bw,bx,by) = {
219+ let bz = D(bx, bv)
220+ let bA = D(by, bw)
221+ br(bA, bz)
204222 }
205223
206224
207-func bs (bo,bp,bt) = {
208- let bu = aG()
209- let bv = parseIntValue(bu[t])
210- let bw = parseIntValue(bu[u])
211- let bx = bl(bv, bw, bo, bp)
212- let bk = D(bo, bv)
213- let bj = D(bp, bw)
214- let by = D(bt, b)
215- let bz = bi(bk, by)
216- let bA = bi(bj, by)
217-[bx, bz, bA]
225+func bB (bx,by,bC) = {
226+ let bD = aG()
227+ let bE = parseIntValue(bD[t])
228+ let bF = parseIntValue(bD[u])
229+ let bG = bu(bE, bF, bx, by)
230+ let bt = D(bx, bE)
231+ let bs = D(by, bF)
232+ let bH = D(bC, b)
233+ let bI = br(bt, bH)
234+ let bJ = br(bs, bH)
235+[bG, bI, bJ]
218236 }
219237
220238
221-func bB (bo,bp,bt) = {
222- let bC = bs(bo, bp, bt)
223-[G(bC[0], b), G(bC[1], b), G(bC[2], b)]
239+func bK (bx,by,bC) = {
240+ let bL = bB(bx, by, bC)
241+[G(bL[0], b), G(bL[1], b), G(bL[2], b)]
224242 }
225243
226244
227-func bD (bE,bF,bG,W) = {
228- let bu = aG()
229- let bH = bu[q]
230- let bI = bu[r]
231- let bJ = bu[s]
232- let bm = parseIntValue(bu[t])
233- let bn = parseIntValue(bu[u])
234- let bK = bu[p]
235- let bL = valueOrErrorMessage(assetInfo(fromBase58String(bH)), (("Asset " + bH) + " doesn't exist")).quantity
236- if ((bH != bF))
245+func bM (bN,bO,bP,W) = {
246+ let bD = aG()
247+ let bQ = bD[q]
248+ let bR = bD[r]
249+ let bS = bD[s]
250+ let bv = parseIntValue(bD[t])
251+ let bw = parseIntValue(bD[u])
252+ let bT = bD[p]
253+ let bU = valueOrErrorMessage(assetInfo(fromBase58String(bQ)), (("Asset " + bQ) + " doesn't exist")).quantity
254+ if ((bQ != bO))
237255 then throw("Invalid asset passed.")
238256 else {
239- let bM = bg(bI)
240- let bN = D(bM, bm)
241- let bO = bg(bJ)
242- let bP = D(bO, bn)
243- let bQ = bi(bP, bN)
244- let bR = G(bQ, b)
245- let bS = D(bG, b)
246- let bT = D(bL, b)
247- let bU = fraction(bN, bS, bT)
248- let bV = fraction(bP, bS, bT)
249- let bW = G(bU, bm)
250- let bX = G(bV, bn)
251- let bY = if ((bE == ""))
257+ let bV = bp(bR)
258+ let bW = D(bV, bv)
259+ let bX = bp(bS)
260+ let bY = D(bX, bw)
261+ let bZ = br(bY, bW)
262+ let ca = G(bZ, b)
263+ let cb = D(bP, b)
264+ let cc = D(bU, b)
265+ let cd = fraction(bW, cb, cc)
266+ let ce = fraction(bY, cb, cc)
267+ let cf = G(cd, bv)
268+ let cg = G(ce, bw)
269+ let ch = if ((bN == ""))
252270 then nil
253- else [ScriptTransfer(W, bW, if ((bI == "WAVES"))
271+ else [ScriptTransfer(W, cf, if ((bR == "WAVES"))
254272 then unit
255- else fromBase58String(bI)), ScriptTransfer(W, bX, if ((bJ == "WAVES"))
273+ else fromBase58String(bR)), ScriptTransfer(W, cg, if ((bS == "WAVES"))
256274 then unit
257- else fromBase58String(bJ)), StringEntry(Y(toString(W), bE), bc(bW, bX, bG, bR, height, lastBlock.timestamp)), IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR)]
258- $Tuple10(bW, bX, bI, bJ, bM, bO, bL, bQ, bK, bY)
275+ else fromBase58String(bS)), StringEntry(Y(toString(W), bN), bl(cf, cg, bP, ca, height, lastBlock.timestamp)), IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca)]
276+ $Tuple10(cf, cg, bR, bS, bV, bX, bU, bZ, bT, ch)
259277 }
260278 }
261279
262280
263-func bZ (bE,ca,cb,cc,cd,ce,W,cf,cg) = {
264- let bu = aG()
265- let bH = fromBase58String(bu[q])
266- let ch = bu[r]
267- let ci = bu[s]
268- let cj = bu[v]
269- let ck = bu[w]
270- let bv = parseIntValue(bu[t])
271- let bw = parseIntValue(bu[u])
272- let bK = bu[p]
273- let bL = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
274- let cl = toBase58String(valueOrElse(cc, fromBase58String("WAVES")))
275- let cm = toBase58String(valueOrElse(ce, fromBase58String("WAVES")))
276- if (if ((ch != cl))
281+func ci (bN,cj,ck,cl,cm,cn,W,co,cp) = {
282+ let bD = aG()
283+ let bQ = fromBase58String(bD[q])
284+ let cq = bD[r]
285+ let cr = bD[s]
286+ let cs = bD[v]
287+ let ct = bD[w]
288+ let bE = parseIntValue(bD[t])
289+ let bF = parseIntValue(bD[u])
290+ let bT = bD[p]
291+ let bU = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
292+ let cu = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
293+ let cv = toBase58String(valueOrElse(cn, fromBase58String("WAVES")))
294+ if (if ((cq != cu))
277295 then true
278- else (ci != cm))
296+ else (cr != cv))
279297 then throw("Invalid amt or price asset passed.")
280298 else {
281- let bM = if (cf)
282- then bg(ch)
283- else (bg(ch) - cb)
284- let bO = if (cf)
285- then bg(ci)
286- else (bg(ci) - cd)
287- let cn = D(cb, bv)
288- let co = D(cd, bw)
289- let cp = bi(co, cn)
290- let bN = D(bM, bv)
291- let bP = D(bO, bw)
292- let cq = if ((bL == 0))
299+ let bV = if (co)
300+ then bp(cq)
301+ else (bp(cq) - ck)
302+ let bX = if (co)
303+ then bp(cr)
304+ else (bp(cr) - cm)
305+ let cw = D(ck, bE)
306+ let cx = D(cm, bF)
307+ let cy = br(cx, cw)
308+ let bW = D(bV, bE)
309+ let bY = D(bX, bF)
310+ let cz = if ((bU == 0))
293311 then {
294- let bQ = e
295- let cr = e
296- let by = pow((cn * co), 0, toBigInt(5), 1, 0, DOWN)
297- $Tuple5(G(by, b), G(cn, bv), G(co, bw), bi((bP + co), (bN + cn)), cr)
312+ let bZ = e
313+ let cA = e
314+ let bH = pow((cw * cx), 0, toBigInt(5), 1, 0, DOWN)
315+ $Tuple5(G(bH, b), G(cw, bE), G(cx, bF), br((bY + cx), (bW + cw)), cA)
298316 }
299317 else {
300- let bQ = bi(bP, bN)
301- let cr = fraction(N((bQ - cp)), d, bQ)
302- let cs = D(ca, b)
303- if (if ((bQ != e))
304- then (cr > cs)
318+ let bZ = br(bY, bW)
319+ let cA = fraction(N((bZ - cy)), d, bZ)
320+ let cB = D(cj, b)
321+ if (if ((bZ != e))
322+ then (cA > cB)
305323 else false)
306- then throw(((("Price slippage " + toString(cr)) + " exceeded the passed limit of ") + toString(cs)))
324+ then throw(((("Price slippage " + toString(cA)) + " exceeded the passed limit of ") + toString(cB)))
307325 else {
308- let bT = D(bL, b)
309- let ct = fraction(cn, bQ, d)
310- let cu = fraction(co, d, bQ)
311- let cv = if ((ct > co))
312- then $Tuple2(cu, co)
313- else $Tuple2(cn, ct)
314- let cw = cv._1
315- let cx = cv._2
316- let by = fraction(bT, cx, bP)
317- $Tuple5(G(by, b), G(cw, bv), G(cx, bw), bQ, cr)
326+ let cc = D(bU, b)
327+ let cC = fraction(cw, bZ, d)
328+ let cD = fraction(cx, d, bZ)
329+ let cE = if ((cC > cx))
330+ then $Tuple2(cD, cx)
331+ else $Tuple2(cw, cC)
332+ let cF = cE._1
333+ let cG = cE._2
334+ let bH = fraction(cc, cG, bY)
335+ $Tuple5(G(bH, b), G(cF, bE), G(cG, bF), bZ, cA)
318336 }
319337 }
320- let cy = cq._1
321- let cz = cq._2
322- let cA = cq._3
323- let bR = G(cq._4, b)
324- let cB = G(cq._5, b)
325- if ((0 >= cy))
338+ let cH = cz._1
339+ let cI = cz._2
340+ let cJ = cz._3
341+ let ca = G(cz._4, b)
342+ let cK = G(cz._5, b)
343+ if ((0 >= cH))
326344 then throw("Invalid calculations. LP calculated is less than zero.")
327345 else {
328- let cC = if (!(cg))
346+ let cL = if (!(cp))
329347 then 0
330- else cy
331- let cD = (cb - cz)
332- let cE = (cd - cA)
333- let cF = [IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR), StringEntry(V(W, bE), aR(cz, cA, cC, bR, ca, cB, height, lastBlock.timestamp, cD, cE))]
334- $Tuple13(cy, cC, bR, bM, bO, bL, bH, bK, cF, cD, cE, cc, ce)
348+ else cH
349+ let cM = (ck - cI)
350+ let cN = (cm - cJ)
351+ let cO = [IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca), StringEntry(V(W, bN), ba(cI, cJ, cL, ca, cj, cK, height, lastBlock.timestamp, cM, cN))]
352+ $Tuple13(cH, cL, ca, bV, bX, bU, bQ, bT, cO, cM, cN, cl, cn)
335353 }
336354 }
337355 }
338356
339357
340-func cG (cH) = {
341- let bu = aG()
342- let cI = bu[r]
343- let cJ = bu[s]
344- let bK = parseIntValue(bu[p])
345- let bv = parseIntValue(bu[t])
346- let bw = parseIntValue(bu[u])
347- let cK = bg(cI)
348- let cL = bg(cJ)
349- let bQ = if ((cH.orderType == Buy))
350- then bl(bv, bw, (cK + cH.amount), cL)
351- else bl(bv, bw, (cK - cH.amount), cL)
352- let bR = G(bQ, b)
358+func cP (cQ) = {
359+ let bD = aG()
360+ let cR = bD[r]
361+ let cS = bD[s]
362+ let bT = parseIntValue(bD[p])
363+ let bE = parseIntValue(bD[t])
364+ let bF = parseIntValue(bD[u])
365+ let cT = bp(cR)
366+ let cU = bp(cS)
367+ let bZ = if ((cQ.orderType == Buy))
368+ then bu(bE, bF, (cT + cQ.amount), cU)
369+ else bu(bE, bF, (cT - cQ.amount), cU)
370+ let ca = G(bZ, b)
353371 if (if (if (aE())
354372 then true
355- else (bK == m))
373+ else (bT == m))
356374 then true
357- else (bK == n))
375+ else (bT == n))
358376 then throw("Exchange operations disabled")
359377 else {
360- let cM = cH.assetPair.amountAsset
361- let cN = if ((cM == unit))
378+ let cV = cQ.assetPair.amountAsset
379+ let cW = if ((cV == unit))
362380 then "WAVES"
363- else toBase58String(value(cM))
364- let cO = cH.assetPair.priceAsset
365- let cP = if ((cO == unit))
381+ else toBase58String(value(cV))
382+ let cX = cQ.assetPair.priceAsset
383+ let cY = if ((cX == unit))
366384 then "WAVES"
367- else toBase58String(value(cO))
368- if (if ((cN != cI))
385+ else toBase58String(value(cX))
386+ if (if ((cW != cR))
369387 then true
370- else (cP != cJ))
388+ else (cY != cS))
371389 then throw("Wrong order assets.")
372390 else {
373- let cQ = cH.price
374- let cR = fraction(b, bw, bv)
375- let cS = J(cQ, b, cR)
376- let cT = if ((cH.orderType == Buy))
377- then (bR >= cS)
378- else (cS >= bR)
391+ let cZ = cQ.price
392+ let da = fraction(b, bF, bE)
393+ let db = J(cZ, b, da)
394+ let dc = if ((cQ.orderType == Buy))
395+ then (ca >= db)
396+ else (db >= ca)
379397 true
380398 }
381399 }
382400 }
383401
384402
385-func cU (cV) = if ((size(cV.payments) != 1))
403+func dd (de) = if ((size(de.payments) != 1))
386404 then throw("exactly 1 payment is expected")
387405 else {
388- let cW = value(cV.payments[0])
389- let bF = value(cW.assetId)
390- let cX = cW.amount
391- let cq = bD(toBase58String(cV.transactionId), toBase58String(bF), cX, cV.caller)
392- let bW = cq._1
393- let bX = cq._2
394- let bK = parseIntValue(cq._9)
395- let bY = cq._10
406+ let df = value(de.payments[0])
407+ let bO = value(df.assetId)
408+ let dg = df.amount
409+ let cz = bM(toBase58String(de.transactionId), toBase58String(bO), dg, de.caller)
410+ let cf = cz._1
411+ let cg = cz._2
412+ let bT = parseIntValue(cz._9)
413+ let ch = cz._10
396414 if (if (aE())
397415 then true
398- else (bK == n))
399- then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
400- else $Tuple5(bW, bX, cX, bF, bY)
416+ else (bT == n))
417+ then throw(("Get operation is blocked by admin. Status = " + toString(bT)))
418+ else $Tuple5(cf, cg, dg, bO, ch)
401419 }
402420
403421
404-func cY (cV,ca,cg) = if ((size(cV.payments) != 2))
422+func dh (de,cj,cp) = if ((size(de.payments) != 2))
405423 then throw("exactly 2 payments are expected")
406424 else {
407- let cZ = value(cV.payments[0])
408- let da = value(cV.payments[1])
409- let db = bZ(toBase58String(cV.transactionId), ca, cZ.amount, cZ.assetId, da.amount, da.assetId, toString(cV.caller), false, cg)
410- let bK = parseIntValue(db._8)
425+ let di = value(de.payments[0])
426+ let dj = value(de.payments[1])
427+ let dk = ci(toBase58String(de.transactionId), cj, di.amount, di.assetId, dj.amount, dj.assetId, toString(de.caller), false, cp)
428+ let bT = parseIntValue(dk._8)
411429 if (if (if (aE())
412430 then true
413- else (bK == l))
431+ else (bT == l))
414432 then true
415- else (bK == n))
416- then throw(("Put operation is blocked by admin. Status = " + toString(bK)))
417- else db
433+ else (bT == n))
434+ then throw(("Put operation is blocked by admin. Status = " + toString(bT)))
435+ else dk
418436 }
419437
420438
421-func dc (dd) = {
422- let de = invoke(aC, "emit", [dd], nil)
423- if ((de == de))
439+func dl (dm) = {
440+ let dn = invoke(aC, "emit", [dm], nil)
441+ if ((dn == dn))
424442 then {
425- let df = {
426- let dg = de
427- if ($isInstanceOf(dg, "Address"))
443+ let do = {
444+ let dp = dn
445+ if ($isInstanceOf(dp, "Address"))
428446 then {
429- let dh = dg
430- invoke(dh, "emit", [dd], nil)
447+ let dq = dp
448+ invoke(dq, "emit", [dm], nil)
431449 }
432450 else unit
433451 }
434- if ((df == df))
435- then dd
452+ if ((do == do))
453+ then dm
436454 else throw("Strict value is not equal to itself.")
437455 }
438456 else throw("Strict value is not equal to itself.")
439457 }
440458
441459
442-func di (dd) = {
443- let dj = fraction(dd, ad, b)
444- $Tuple2((dd - dj), dj)
460+func dr (dm) = {
461+ let ds = fraction(dm, ad, b)
462+ $Tuple2((dm - ds), ds)
445463 }
446464
447465
448-func dk (dl,dm,W,X) = {
449- let dn = (X == unit)
450- let do = aM(aG())
451- let dp = do._1
452- let bK = do._2
453- let bH = do._3
454- let dq = do._4
455- let cJ = do._5
456- let dr = do._6
457- let ds = do._7
458- let dt = bg(aL(dq))
459- let du = bg(aL(cJ))
460- let dv = if ((dm == dq))
466+func dt (du,dv,W,X) = {
467+ let dw = (X == unit)
468+ let dx = aM(aG())
469+ let dy = dx._1
470+ let bT = dx._2
471+ let bQ = dx._3
472+ let dz = dx._4
473+ let cS = dx._5
474+ let dA = dx._6
475+ let dB = dx._7
476+ let dC = bp(aL(dz))
477+ let dD = bp(aL(cS))
478+ let dE = if ((dv == dz))
461479 then true
462- else if ((dm == cJ))
480+ else if ((dv == cS))
463481 then false
464482 else aA("invalid asset")
465- let dw = if (dn)
466- then $Tuple2(dt, du)
467- else if (dv)
468- then $Tuple2((dt - dl), du)
469- else $Tuple2(dt, (du - dl))
470- let dx = dw._1
471- let dy = dw._2
472- let dz = if (dv)
473- then $Tuple2(dl, 0)
474- else $Tuple2(0, dl)
475- let dA = dz._1
476- let dB = dz._2
477- let dC = di(dA)._1
478- let dD = di(dB)._1
479- let dE = di(dl)
480- let dF = dE._1
481- let dj = dE._2
482- let dG = (dx + dC)
483- let dH = (dy + dD)
484- let bR = G(bi(D(dH, ds), D(dG, dr)), b)
485- let dI = if (dv)
486- then dx
487- else dy
488- let dJ = toBigInt(dI)
489- let dK = toBigInt(valueOrErrorMessage(assetInfo(bH), (("asset " + toBase58String(bH)) + " doesn't exist")).quantity)
490- let dL = if ((dK > f))
483+ let dF = if (dw)
484+ then $Tuple2(dC, dD)
485+ else if (dE)
486+ then $Tuple2((dC - du), dD)
487+ else $Tuple2(dC, (dD - du))
488+ let dG = dF._1
489+ let dH = dF._2
490+ let dI = if (dE)
491+ then $Tuple2(du, 0)
492+ else $Tuple2(0, du)
493+ let dJ = dI._1
494+ let dK = dI._2
495+ let dL = dr(dJ)._1
496+ let dM = dr(dK)._1
497+ let dN = dr(du)
498+ let dO = dN._1
499+ let ds = dN._2
500+ let dP = (dG + dL)
501+ let dQ = (dH + dM)
502+ let ca = G(br(D(dQ, dB), D(dP, dA)), b)
503+ let dR = if (dE)
504+ then dG
505+ else dH
506+ let dS = toBigInt(dR)
507+ let dT = toBigInt(valueOrErrorMessage(assetInfo(bQ), (("asset " + toBase58String(bQ)) + " doesn't exist")).quantity)
508+ let dU = if ((dT > f))
491509 then true
492510 else throw("initial deposit requires all coins")
493- if ((dL == dL))
511+ if ((dU == dU))
494512 then {
495- let dM = toBigInt(dF)
496- let dN = toInt(((dK * (sqrtBigInt((c + ((dM * c) / dJ)), 8, 8, DOWN) - c)) / c))
497- let cF = if (dn)
513+ let dV = toBigInt(dO)
514+ let dW = toInt(((dT * (sqrtBigInt((c + ((dV * c) / dS)), 8, 8, DOWN) - c)) / c))
515+ let cO = if (dw)
498516 then nil
499- else [IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR), StringEntry(V(toString(value(W)), toBase58String(value(X))), aR(dA, dB, dN, bR, 0, 0, height, lastBlock.timestamp, 0, 0))]
500- let dO = fraction(dy, b, dx)
501- let dP = fraction(dl, b, (dO + b))
502- let dQ = (dl - dP)
503- let dR = fraction(dK, toBigInt(dQ), toBigInt(dy))
504- let dS = toInt(fraction((toBigInt(dN) - dR), c, dR))
505- $Tuple4(dN, cF, dj, dS)
517+ else [IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca), StringEntry(V(toString(value(W)), toBase58String(value(X))), ba(dJ, dK, dW, ca, 0, 0, height, lastBlock.timestamp, 0, 0))]
518+ let dX = fraction(dH, b, dG)
519+ let dY = fraction(du, b, (dX + b))
520+ let dZ = (du - dY)
521+ let ea = fraction(dT, toBigInt(dZ), toBigInt(dH))
522+ let eb = toInt(fraction((toBigInt(dW) - ea), c, ea))
523+ $Tuple4(dW, cO, ds, eb)
506524 }
507525 else throw("Strict value is not equal to itself.")
508526 }
509527
510528
511-func dT (dU,dF,dm,W,X) = {
512- let dn = (X == unit)
513- let dV = aM(aG())
514- let dp = dV._1
515- let bK = dV._2
516- let bH = dV._3
517- let dq = dV._4
518- let cJ = dV._5
519- let dW = dV._6
520- let dX = dV._7
521- let dY = [if ((dm == bH))
529+func ec (ed,dO,dv,W,X) = {
530+ let dw = (X == unit)
531+ let ee = aM(aG())
532+ let dy = ee._1
533+ let bT = ee._2
534+ let bQ = ee._3
535+ let dz = ee._4
536+ let cS = ee._5
537+ let ef = ee._6
538+ let eg = ee._7
539+ let eh = [if ((dv == bQ))
522540 then true
523541 else throw("invalid lp asset")]
524- if ((dY == dY))
542+ if ((eh == eh))
525543 then {
526- let dZ = if ((dU == dq))
544+ let ei = if ((ed == dz))
527545 then true
528- else if ((dU == cJ))
546+ else if ((ed == cS))
529547 then false
530548 else aA("invalid asset")
531- let ea = if (dZ)
532- then toBigInt(bg(aL(dq)))
533- else toBigInt(bg(aL(cJ)))
534- let eb = bg(aL(dq))
535- let ec = bg(aL(cJ))
536- let ed = if (dZ)
537- then eb
538- else ec
539- let ee = toBigInt(ed)
540- let dK = toBigInt(valueOrErrorMessage(assetInfo(bH), (("asset " + toBase58String(bH)) + " doesn't exist")).quantity)
541- let ef = toBigInt(dF)
542- let eg = toInt(((ea * (c - pow((c - ((ef * c) / dK)), 8, h, 0, 8, DOWN))) / c))
543- let eh = di(eg)
544- let ei = eh._1
545- let dj = eh._2
546- let ej = if (dZ)
547- then $Tuple4(ei, 0, (eb - eg), ec)
548- else $Tuple4(0, ei, eb, (ec - eg))
549- let ek = ej._1
550- let el = ej._2
551- let em = ej._3
552- let en = ej._4
553- let eo = bi(D(en, dX), D(em, dW))
554- let bR = G(eo, b)
555- let cF = if (dn)
549+ let ej = if (ei)
550+ then toBigInt(bp(aL(dz)))
551+ else toBigInt(bp(aL(cS)))
552+ let ek = bp(aL(dz))
553+ let el = bp(aL(cS))
554+ let em = if (ei)
555+ then ek
556+ else el
557+ let en = toBigInt(em)
558+ let dT = toBigInt(valueOrErrorMessage(assetInfo(bQ), (("asset " + toBase58String(bQ)) + " doesn't exist")).quantity)
559+ let eo = toBigInt(dO)
560+ let ep = toInt(((ej * (c - pow((c - ((eo * c) / dT)), 8, h, 0, 8, DOWN))) / c))
561+ let eq = dr(ep)
562+ let er = eq._1
563+ let ds = eq._2
564+ let es = if (ei)
565+ then $Tuple4(er, 0, (ek - ep), el)
566+ else $Tuple4(0, er, ek, (el - ep))
567+ let et = es._1
568+ let eu = es._2
569+ let ev = es._3
570+ let ew = es._4
571+ let ex = br(D(ew, eg), D(ev, ef))
572+ let ca = G(ex, b)
573+ let cO = if (dw)
556574 then nil
557- else [StringEntry(Y(toString(value(W)), toBase58String(value(X))), bc(ek, el, dF, bR, height, lastBlock.timestamp)), IntegerEntry(R(), bR), IntegerEntry(S(height, lastBlock.timestamp), bR)]
558- let ep = bD("", aL(bH), dF, this)
559- let eq = (ep._1 + ep._2)
560- let dS = fraction((ei - eq), b, eq)
561- $Tuple4(ei, cF, dj, dS)
575+ else [StringEntry(Y(toString(value(W)), toBase58String(value(X))), bl(et, eu, dO, ca, height, lastBlock.timestamp)), IntegerEntry(R(), ca), IntegerEntry(S(height, lastBlock.timestamp), ca)]
576+ let ey = bM("", aL(bQ), dO, this)
577+ let ez = (ey._1 + ey._2)
578+ let eb = fraction((er - ez), b, ez)
579+ $Tuple4(er, cO, ds, eb)
562580 }
563581 else throw("Strict value is not equal to itself.")
564582 }
565583
566584
567-func er () = {
568- let dg = getString(P())
569- if ($isInstanceOf(dg, "String"))
585+func eA () = {
586+ let dp = getString(P())
587+ if ($isInstanceOf(dp, "String"))
570588 then {
571- let es = dg
572- fromBase58String(es)
589+ let eB = dp
590+ fromBase58String(eB)
573591 }
574- else if ($isInstanceOf(dg, "Unit"))
592+ else if ($isInstanceOf(dp, "Unit"))
575593 then unit
576594 else throw("Match error")
577595 }
578596
579597
580-func et () = {
581- let dg = getString(Q())
582- if ($isInstanceOf(dg, "String"))
598+func eC () = {
599+ let dp = getString(Q())
600+ if ($isInstanceOf(dp, "String"))
583601 then {
584- let es = dg
585- fromBase58String(es)
602+ let eB = dp
603+ fromBase58String(eB)
586604 }
587- else if ($isInstanceOf(dg, "Unit"))
605+ else if ($isInstanceOf(dp, "Unit"))
588606 then unit
589607 else throw("Match error")
590608 }
591609
592610
593-func eu (cV) = {
594- let ev = throw("Permission denied")
595- let dg = er()
596- if ($isInstanceOf(dg, "ByteVector"))
611+func eD (de) = {
612+ let eE = throw("Permission denied")
613+ let dp = eA()
614+ if ($isInstanceOf(dp, "ByteVector"))
597615 then {
598- let ew = dg
599- if ((cV.callerPublicKey == ew))
616+ let eF = dp
617+ if ((de.callerPublicKey == eF))
600618 then true
601- else ev
619+ else eE
602620 }
603- else if ($isInstanceOf(dg, "Unit"))
604- then if ((cV.caller == this))
621+ else if ($isInstanceOf(dp, "Unit"))
622+ then if ((de.caller == this))
605623 then true
606- else ev
624+ else eE
607625 else throw("Match error")
608626 }
609627
610628
611-@Callable(cV)
612-func setManager (ex) = {
613- let ey = eu(cV)
614- if ((ey == ey))
629+@Callable(de)
630+func setManager (eG) = {
631+ let eH = eD(de)
632+ if ((eH == eH))
615633 then {
616- let ez = fromBase58String(ex)
617- if ((ez == ez))
618- then [StringEntry(Q(), ex)]
634+ let eI = fromBase58String(eG)
635+ if ((eI == eI))
636+ then [StringEntry(Q(), eG)]
619637 else throw("Strict value is not equal to itself.")
620638 }
621639 else throw("Strict value is not equal to itself.")
622640 }
623641
624642
625643
626-@Callable(cV)
644+@Callable(de)
627645 func confirmManager () = {
628- let eA = et()
629- let eB = if (isDefined(eA))
646+ let eJ = eC()
647+ let eK = if (isDefined(eJ))
630648 then true
631649 else throw("No pending manager")
632- if ((eB == eB))
650+ if ((eK == eK))
633651 then {
634- let eC = if ((cV.callerPublicKey == value(eA)))
652+ let eL = if ((de.callerPublicKey == value(eJ)))
635653 then true
636654 else throw("You are not pending manager")
637- if ((eC == eC))
638- then [StringEntry(P(), toBase58String(value(eA))), DeleteEntry(Q())]
655+ if ((eL == eL))
656+ then [StringEntry(P(), toBase58String(value(eJ))), DeleteEntry(Q())]
639657 else throw("Strict value is not equal to itself.")
640658 }
641659 else throw("Strict value is not equal to itself.")
642660 }
643661
644662
645663
646-@Callable(cV)
647-func put (ca,eD) = if ((0 > ca))
664+@Callable(de)
665+func put (cj,eM) = if ((0 > cj))
648666 then throw("Invalid slippageTolerance passed")
649667 else {
650- let db = cY(cV, ca, true)
651- let cC = db._2
652- let bH = db._7
653- let bY = db._9
654- let cD = db._10
655- let cE = db._11
656- let eE = db._12
657- let eF = db._13
658- let de = invoke(aC, "emit", [cC], nil)
659- if ((de == de))
668+ let dk = dh(de, cj, true)
669+ let cL = dk._2
670+ let bQ = dk._7
671+ let ch = dk._9
672+ let cM = dk._10
673+ let cN = dk._11
674+ let eN = dk._12
675+ let eO = dk._13
676+ let dn = invoke(aC, "emit", [cL], nil)
677+ if ((dn == dn))
660678 then {
661- let df = {
662- let dg = de
663- if ($isInstanceOf(dg, "Address"))
679+ let do = {
680+ let dp = dn
681+ if ($isInstanceOf(dp, "Address"))
664682 then {
665- let dh = dg
666- invoke(dh, "emit", [cC], nil)
683+ let dq = dp
684+ invoke(dq, "emit", [cL], nil)
667685 }
668686 else unit
669687 }
670- if ((df == df))
688+ if ((do == do))
671689 then {
672- let eG = if ((cD > 0))
673- then invoke(aQ, "put", nil, [AttachedPayment(eE, cD)])
690+ let eP = if ((cM > 0))
691+ then invoke(aZ, "put", nil, [AttachedPayment(eN, cM)])
674692 else nil
675- if ((eG == eG))
693+ if ((eP == eP))
676694 then {
677- let eH = if ((cE > 0))
678- then invoke(aQ, "put", nil, [AttachedPayment(eF, cE)])
695+ let eQ = if ((cN > 0))
696+ then invoke(aZ, "put", nil, [AttachedPayment(eO, cN)])
679697 else nil
680- if ((eH == eH))
698+ if ((eQ == eQ))
681699 then {
682- let eI = if (eD)
700+ let eR = if (eM)
683701 then {
684- let eJ = invoke(aP, "stake", nil, [AttachedPayment(bH, cC)])
685- if ((eJ == eJ))
702+ let eS = invoke(aY, "stake", nil, [AttachedPayment(bQ, cL)])
703+ if ((eS == eS))
686704 then nil
687705 else throw("Strict value is not equal to itself.")
688706 }
689- else [ScriptTransfer(cV.caller, cC, bH)]
690- (bY ++ eI)
707+ else [ScriptTransfer(de.caller, cL, bQ)]
708+ (ch ++ eR)
691709 }
692710 else throw("Strict value is not equal to itself.")
693711 }
694712 else throw("Strict value is not equal to itself.")
695713 }
696714 else throw("Strict value is not equal to itself.")
697715 }
698716 else throw("Strict value is not equal to itself.")
699717 }
700718
701719
702720
703-@Callable(cV)
704-func putForFree (eK) = if ((0 > eK))
721+@Callable(de)
722+func putForFree (eT) = if ((0 > eT))
705723 then throw("Invalid value passed")
706724 else {
707- let db = cY(cV, eK, false)
708- db._9
725+ let dk = dh(de, eT, false)
726+ dk._9
709727 }
710728
711729
712730
713-@Callable(cV)
714-func putOneTkn (eL,eM) = {
715- let eN = aM(aG())
716- let dp = eN._1
717- let bK = eN._2
718- let bH = eN._3
719- let dq = eN._4
720- let cJ = eN._5
721- let dr = eN._6
722- let ds = eN._7
723- let eO = if (if (aE())
731+@Callable(de)
732+func putOneTkn (eU,eV) = {
733+ let eW = if (if (aE())
724734 then true
725- else (bK == l))
735+ else (aR == l))
726736 then true
727- else (bK == n)
728- let dY = [if (!(eO))
737+ else (aR == n)
738+ let eh = [if (!(eW))
729739 then true
730- else aA("put operation is blocked by admin"), if ((size(cV.payments) == 1))
740+ else aA("put operation is blocked by admin"), if ((size(de.payments) == 1))
731741 then true
732742 else aA("exactly 1 payment are expected")]
733- if ((dY == dY))
743+ if ((eh == eh))
734744 then {
735- let eP = cV.payments[0]
736- let dm = eP.assetId
737- let dl = eP.amount
738- let dF = dl
739- let W = cV.caller
740- let X = cV.transactionId
741- let eQ = dk(dl, dm, W, X)
742- let eR = eQ._1
743- let cF = eQ._2
744- let dj = eQ._3
745- let dS = eQ._4
746- let eS = if (if ((eL > 0))
747- then (eL > eR)
745+ let eX = de.payments[0]
746+ let dv = eX.assetId
747+ let du = eX.amount
748+ let W = de.caller
749+ let X = de.transactionId
750+ let eY = dt(du, dv, W, X)
751+ let eZ = eY._1
752+ let cO = eY._2
753+ let ds = eY._3
754+ let eb = eY._4
755+ let fa = if (if ((eU > 0))
756+ then (eU > eZ)
748757 else false)
749- then throw(makeString(["amount to receive is less than ", toString(eL)], ""))
750- else eR
751- let de = dc(eS)
752- if ((de == de))
758+ then throw(makeString(["amount to receive is less than ", toString(eU)], ""))
759+ else eZ
760+ let dn = dl(fa)
761+ if ((dn == dn))
753762 then {
754- let eI = if (eM)
763+ let eR = if (eV)
755764 then {
756- let eT = invoke(aP, "stake", nil, [AttachedPayment(bH, eS)])
757- if ((eT == eT))
765+ let fb = invoke(aY, "stake", nil, [AttachedPayment(aS, fa)])
766+ if ((fb == fb))
758767 then nil
759768 else throw("Strict value is not equal to itself.")
760769 }
761- else [ScriptTransfer(cV.caller, eS, bH)]
762- let eU = if ((dj > 0))
763- then [ScriptTransfer(aD, dj, dm)]
770+ else [ScriptTransfer(de.caller, fa, aS)]
771+ let fc = if ((ds > 0))
772+ then [ScriptTransfer(aD, ds, dv)]
764773 else nil
765- $Tuple2(((cF ++ eI) ++ eU), eS)
774+ $Tuple2(((cO ++ eR) ++ fc), fa)
766775 }
767776 else throw("Strict value is not equal to itself.")
768777 }
769778 else throw("Strict value is not equal to itself.")
770779 }
771780
772781
773782
774-@Callable(cV)
775-func getOneTkn (dU,eL,eV) = {
776- let eW = aM(aG())
777- let dp = eW._1
778- let bK = eW._2
779- let bH = eW._3
780- let dq = eW._4
781- let cJ = eW._5
782- let dr = eW._6
783- let ds = eW._7
784- let eX = if (aE())
783+@Callable(de)
784+func putOneTknREADONLY (du,dv) = {
785+ let fd = dt(du, aJ(dv), unit, unit)
786+ let eZ = fd._1
787+ let cO = fd._2
788+ let ds = fd._3
789+ let eb = fd._4
790+ $Tuple2(nil, $Tuple3(eZ, ds, eb))
791+ }
792+
793+
794+
795+@Callable(de)
796+func getOneTkn (ed,eU,fe) = {
797+ let ff = if (aE())
785798 then true
786- else (bK == n)
787- let dY = [if (!(eX))
799+ else (aR == n)
800+ let eh = [if (!(ff))
788801 then true
789- else aA("get operation is blocked by admin"), if ((size(cV.payments) == 1))
802+ else aA("get operation is blocked by admin"), if ((size(de.payments) == 1))
790803 then true
791804 else aA("exactly 1 payment are expected")]
792- if ((dY == dY))
805+ if ((eh == eh))
793806 then {
794- let eP = cV.payments[0]
795- let dm = eP.assetId
796- let dF = eP.amount
797- let W = cV.caller
798- let X = cV.transactionId
799- let eY = dT(aJ(dU), dF, dm, W, X)
800- let eZ = eY._1
801- let cF = eY._2
802- let dj = eY._3
803- let dS = eY._4
804- let dd = if (if ((eL > 0))
805- then (eL > eZ)
807+ let eX = de.payments[0]
808+ let dv = eX.assetId
809+ let dO = eX.amount
810+ let W = de.caller
811+ let X = de.transactionId
812+ let fg = ec(aJ(ed), dO, dv, W, X)
813+ let fh = fg._1
814+ let cO = fg._2
815+ let ds = fg._3
816+ let eb = fg._4
817+ let dm = if (if ((eU > 0))
818+ then (eU > fh)
806819 else false)
807- then throw(makeString(["amount to receive is less than ", toString(eL)], ""))
808- else eZ
809- let fa = invoke(aC, "burn", [dF], [AttachedPayment(dm, dF)])
810- if ((fa == fa))
820+ then throw(makeString(["amount to receive is less than ", toString(eU)], ""))
821+ else fh
822+ let fi = invoke(aC, "burn", [dO], [AttachedPayment(dv, dO)])
823+ if ((fi == fi))
811824 then {
812- let fb = [ScriptTransfer(W, dd, aJ(dU))]
813- $Tuple2(fb, dd)
825+ let fj = [ScriptTransfer(W, dm, aJ(ed))]
826+ $Tuple2(fj, dm)
814827 }
815828 else throw("Strict value is not equal to itself.")
816829 }
817830 else throw("Strict value is not equal to itself.")
818831 }
819832
820833
821834
822-@Callable(cV)
835+@Callable(de)
836+func getOneTknREADONLY (ed,dO) = {
837+ let fk = ec(aJ(ed), dO, aS, unit, unit)
838+ let fh = fk._1
839+ let cO = fk._2
840+ let ds = fk._3
841+ let eb = fk._4
842+ $Tuple2(nil, $Tuple3(fh, ds, eb))
843+ }
844+
845+
846+
847+@Callable(de)
823848 func get () = {
824- let cq = cU(cV)
825- let fc = cq._1
826- let bX = cq._2
827- let cX = cq._3
828- let bF = cq._4
829- let bY = cq._5
830- let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
831- if ((fd == fd))
832- then bY
849+ let cz = dd(de)
850+ let fl = cz._1
851+ let cg = cz._2
852+ let dg = cz._3
853+ let bO = cz._4
854+ let ch = cz._5
855+ let fm = invoke(aC, "burn", [dg], [AttachedPayment(bO, dg)])
856+ if ((fm == fm))
857+ then ch
833858 else throw("Strict value is not equal to itself.")
834859 }
835860
836861
837862
838-@Callable(cV)
839-func getNoLess (fe,ff) = {
840- let cq = cU(cV)
841- let bW = cq._1
842- let bX = cq._2
843- let cX = cq._3
844- let bF = cq._4
845- let bY = cq._5
846- if ((fe > bW))
847- then throw(((("noLessThenAmtAsset failed: " + toString(bW)) + " < ") + toString(fe)))
848- else if ((ff > bX))
849- then throw(((("noLessThenPriceAsset failed: " + toString(bX)) + " < ") + toString(ff)))
863+@Callable(de)
864+func getNoLess (fn,fo) = {
865+ let cz = dd(de)
866+ let cf = cz._1
867+ let cg = cz._2
868+ let dg = cz._3
869+ let bO = cz._4
870+ let ch = cz._5
871+ if ((fn > cf))
872+ then throw(((("noLessThenAmtAsset failed: " + toString(cf)) + " < ") + toString(fn)))
873+ else if ((fo > cg))
874+ then throw(((("noLessThenPriceAsset failed: " + toString(cg)) + " < ") + toString(fo)))
850875 else {
851- let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
852- if ((fd == fd))
853- then bY
876+ let fm = invoke(aC, "burn", [dg], [AttachedPayment(bO, dg)])
877+ if ((fm == fm))
878+ then ch
854879 else throw("Strict value is not equal to itself.")
855880 }
856881 }
857882
858883
859884
860-@Callable(cV)
861-func unstakeAndGet (dd) = {
862- let fg = if ((size(cV.payments) != 0))
885+@Callable(de)
886+func unstakeAndGet (dm) = {
887+ let fp = if ((size(de.payments) != 0))
863888 then throw("No payments are expected")
864889 else true
865- if ((fg == fg))
890+ if ((fp == fp))
866891 then {
867- let bu = aG()
868- let bH = fromBase58String(bu[q])
869- let fh = invoke(aP, "unstake", [toBase58String(bH), dd], nil)
870- if ((fh == fh))
892+ let bD = aG()
893+ let bQ = fromBase58String(bD[q])
894+ let fq = invoke(aY, "unstake", [toBase58String(bQ), dm], nil)
895+ if ((fq == fq))
871896 then {
872- let cq = bD(toBase58String(cV.transactionId), toBase58String(bH), dd, cV.caller)
873- let bK = parseIntValue(cq._9)
874- let bY = cq._10
875- let fi = if (if (aE())
897+ let cz = bM(toBase58String(de.transactionId), toBase58String(bQ), dm, de.caller)
898+ let bT = parseIntValue(cz._9)
899+ let ch = cz._10
900+ let fr = if (if (aE())
876901 then true
877- else (bK == n))
878- then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
902+ else (bT == n))
903+ then throw(("Get operation is blocked by admin. Status = " + toString(bT)))
879904 else true
880- if ((fi == fi))
905+ if ((fr == fr))
881906 then {
882- let fd = invoke(aC, "burn", [dd], [AttachedPayment(bH, dd)])
883- if ((fd == fd))
884- then bY
907+ let fm = invoke(aC, "burn", [dm], [AttachedPayment(bQ, dm)])
908+ if ((fm == fm))
909+ then ch
885910 else throw("Strict value is not equal to itself.")
886911 }
887912 else throw("Strict value is not equal to itself.")
888913 }
889914 else throw("Strict value is not equal to itself.")
890915 }
891916 else throw("Strict value is not equal to itself.")
892917 }
893918
894919
895920
896-@Callable(cV)
897-func activate (fj,fk) = if ((toString(cV.caller) != toString(aC)))
921+@Callable(de)
922+func activate (fs,ft) = if ((toString(de.caller) != toString(aC)))
898923 then throw("permissions denied")
899- else $Tuple2([StringEntry(Z(), fj), StringEntry(aa(), fk)], "success")
924+ else $Tuple2([StringEntry(Z(), fs), StringEntry(aa(), ft)], "success")
900925
901926
902927
903-@Callable(cV)
928+@Callable(de)
904929 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
905930
906931
907932
908-@Callable(cV)
909-func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
933+@Callable(de)
934+func getAccBalanceWrapperREADONLY (bq) = $Tuple2(nil, bp(bq))
910935
911936
912937
913-@Callable(cV)
914-func calcPricesWrapperREADONLY (bo,bp,bt) = {
915- let bC = bs(bo, bp, bt)
916- $Tuple2(nil, [toString(bC[0]), toString(bC[1]), toString(bC[2])])
938+@Callable(de)
939+func calcPricesWrapperREADONLY (bx,by,bC) = {
940+ let bL = bB(bx, by, bC)
941+ $Tuple2(nil, [toString(bL[0]), toString(bL[1]), toString(bL[2])])
917942 }
918943
919944
920945
921-@Callable(cV)
946+@Callable(de)
922947 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
923948
924949
925950
926-@Callable(cV)
951+@Callable(de)
927952 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
928953
929954
930955
931-@Callable(cV)
932-func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
956+@Callable(de)
957+func calcPriceBigIntWrapperREADONLY (bs,bt) = $Tuple2(nil, toString(br(parseBigIntValue(bs), parseBigIntValue(bt))))
933958
934959
935960
936-@Callable(cV)
937-func estimatePutOperationWrapperREADONLY (bE,ca,cb,cc,cd,ce,W,cf,cg) = $Tuple2(nil, bZ(bE, ca, cb, cc, cd, ce, W, cf, cg))
961+@Callable(de)
962+func estimatePutOperationWrapperREADONLY (bN,cj,ck,cl,cm,cn,W,co,cp) = $Tuple2(nil, ci(bN, cj, ck, cl, cm, cn, W, co, cp))
938963
939964
940965
941-@Callable(cV)
942-func estimateGetOperationWrapperREADONLY (bE,bF,bG,W) = {
943- let cq = bD(bE, bF, bG, addressFromStringValue(W))
944- $Tuple2(nil, $Tuple10(cq._1, cq._2, cq._3, cq._4, cq._5, cq._6, cq._7, toString(cq._8), cq._9, cq._10))
966+@Callable(de)
967+func estimateGetOperationWrapperREADONLY (bN,bO,bP,W) = {
968+ let cz = bM(bN, bO, bP, addressFromStringValue(W))
969+ $Tuple2(nil, $Tuple10(cz._1, cz._2, cz._3, cz._4, cz._5, cz._6, cz._7, toString(cz._8), cz._9, cz._10))
945970 }
946971
947972
948973
949-@Callable(cV)
974+@Callable(de)
950975 func statsREADONLY () = {
951- let bu = aG()
952- let bH = fromBase58String(bu[q])
953- let cI = bu[r]
954- let cJ = bu[s]
955- let cj = bu[v]
956- let ck = bu[w]
957- let bv = parseIntValue(bu[t])
958- let bw = parseIntValue(bu[u])
959- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
960- let cK = bg(cI)
961- let cL = bg(cJ)
962- let fm = if ((fl == 0))
976+ let bD = aG()
977+ let bQ = fromBase58String(bD[q])
978+ let cR = bD[r]
979+ let cS = bD[s]
980+ let cs = bD[v]
981+ let ct = bD[w]
982+ let bE = parseIntValue(bD[t])
983+ let bF = parseIntValue(bD[u])
984+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
985+ let cT = bp(cR)
986+ let cU = bp(cS)
987+ let fv = if ((fu == 0))
963988 then [e, e, e]
964- else bs(cK, cL, fl)
965- let bR = 0
966- let fn = G(fm[1], b)
967- let fo = G(fm[2], b)
968- let fp = value(getInteger(aC, ao(toString(this))))
969- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cK), toString(cL), toString(fl), toString(bR), toString(fn), toString(fo), toString(fp)], j))
989+ else bB(cT, cU, fu)
990+ let ca = 0
991+ let fw = G(fv[1], b)
992+ let fx = G(fv[2], b)
993+ let fy = value(getInteger(aC, ao(toString(this))))
994+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cT), toString(cU), toString(fu), toString(ca), toString(fw), toString(fx), toString(fy)], j))
970995 }
971996
972997
973998
974-@Callable(cV)
975-func evaluatePutByAmountAssetREADONLY (cb) = {
976- let bu = aG()
977- let bH = fromBase58String(bu[q])
978- let ch = bu[r]
979- let bI = fromBase58String(ch)
980- let ci = bu[s]
981- let bJ = fromBase58String(ci)
982- let bv = parseIntValue(bu[t])
983- let bw = parseIntValue(bu[u])
984- let bK = bu[p]
985- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
986- let cK = bg(ch)
987- let cL = bg(ci)
988- let bq = D(cK, bv)
989- let br = D(cL, bw)
990- let bQ = if ((fl == 0))
999+@Callable(de)
1000+func evaluatePutByAmountAssetREADONLY (ck) = {
1001+ let bD = aG()
1002+ let bQ = fromBase58String(bD[q])
1003+ let cq = bD[r]
1004+ let bR = fromBase58String(cq)
1005+ let cr = bD[s]
1006+ let bS = fromBase58String(cr)
1007+ let bE = parseIntValue(bD[t])
1008+ let bF = parseIntValue(bD[u])
1009+ let bT = bD[p]
1010+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
1011+ let cT = bp(cq)
1012+ let cU = bp(cr)
1013+ let bz = D(cT, bE)
1014+ let bA = D(cU, bF)
1015+ let bZ = if ((fu == 0))
9911016 then e
992- else bi(br, bq)
993- let cn = D(cb, bv)
994- let co = fraction(cn, bQ, d)
995- let cd = G(co, bw)
996- let db = bZ("", 500000, cb, bI, cd, bJ, "", true, false)
997- let cy = db._1
998- let fq = db._3
999- let bM = db._4
1000- let bO = db._5
1001- let bL = db._6
1002- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cy), toString(G(bQ, b)), toString(bM), toString(bO), toString(bL), bK, toString(cb), toString(cd)], j))
1017+ else br(bA, bz)
1018+ let cw = D(ck, bE)
1019+ let cx = fraction(cw, bZ, d)
1020+ let cm = G(cx, bF)
1021+ let dk = ci("", 500000, ck, bR, cm, bS, "", true, false)
1022+ let cH = dk._1
1023+ let fz = dk._3
1024+ let bV = dk._4
1025+ let bX = dk._5
1026+ let bU = dk._6
1027+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cH), toString(G(bZ, b)), toString(bV), toString(bX), toString(bU), bT, toString(ck), toString(cm)], j))
10031028 }
10041029
10051030
10061031
1007-@Callable(cV)
1008-func evaluatePutByPriceAssetREADONLY (cd) = {
1009- let bu = aG()
1010- let bH = fromBase58String(bu[q])
1011- let ch = bu[r]
1012- let bI = fromBase58String(ch)
1013- let ci = bu[s]
1014- let bJ = fromBase58String(ci)
1015- let bv = parseIntValue(bu[t])
1016- let bw = parseIntValue(bu[u])
1017- let bK = bu[p]
1018- let fl = valueOrErrorMessage(assetInfo(bH), (("Asset " + toBase58String(bH)) + " doesn't exist")).quantity
1019- let fr = bg(ch)
1020- let fs = bg(ci)
1021- let ft = D(fr, bv)
1022- let fu = D(fs, bw)
1023- let bQ = if ((fl == 0))
1032+@Callable(de)
1033+func evaluatePutByPriceAssetREADONLY (cm) = {
1034+ let bD = aG()
1035+ let bQ = fromBase58String(bD[q])
1036+ let cq = bD[r]
1037+ let bR = fromBase58String(cq)
1038+ let cr = bD[s]
1039+ let bS = fromBase58String(cr)
1040+ let bE = parseIntValue(bD[t])
1041+ let bF = parseIntValue(bD[u])
1042+ let bT = bD[p]
1043+ let fu = valueOrErrorMessage(assetInfo(bQ), (("Asset " + toBase58String(bQ)) + " doesn't exist")).quantity
1044+ let fA = bp(cq)
1045+ let fB = bp(cr)
1046+ let fC = D(fA, bE)
1047+ let fD = D(fB, bF)
1048+ let bZ = if ((fu == 0))
10241049 then e
1025- else bi(fu, ft)
1026- let co = D(cd, bw)
1027- let cn = fraction(co, d, bQ)
1028- let cb = G(cn, bv)
1029- let db = bZ("", 500000, cb, bI, cd, bJ, "", true, false)
1030- let cy = db._1
1031- let fq = db._3
1032- let bM = db._4
1033- let bO = db._5
1034- let bL = db._6
1035- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cy), toString(G(bQ, b)), toString(bM), toString(bO), toString(bL), bK, toString(cb), toString(cd)], j))
1050+ else br(fD, fC)
1051+ let cx = D(cm, bF)
1052+ let cw = fraction(cx, d, bZ)
1053+ let ck = G(cw, bE)
1054+ let dk = ci("", 500000, ck, bR, cm, bS, "", true, false)
1055+ let cH = dk._1
1056+ let fz = dk._3
1057+ let bV = dk._4
1058+ let bX = dk._5
1059+ let bU = dk._6
1060+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cH), toString(G(bZ, b)), toString(bV), toString(bX), toString(bU), bT, toString(ck), toString(cm)], j))
10361061 }
10371062
10381063
10391064
1040-@Callable(cV)
1041-func evaluateGetREADONLY (fv,fw) = {
1042- let cq = bD("", fv, fw, this)
1043- let bW = cq._1
1044- let bX = cq._2
1045- let bM = cq._5
1046- let bO = cq._6
1047- let bL = cq._7
1048- let bR = cq._8
1049- let bK = parseIntValue(cq._9)
1050- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bW), toString(bX), toString(bM), toString(bO), toString(bL), toString(bR), toString(bK)], j))
1065+@Callable(de)
1066+func evaluateGetREADONLY (fE,fF) = {
1067+ let cz = bM("", fE, fF, this)
1068+ let cf = cz._1
1069+ let cg = cz._2
1070+ let bV = cz._5
1071+ let bX = cz._6
1072+ let bU = cz._7
1073+ let ca = cz._8
1074+ let bT = parseIntValue(cz._9)
1075+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cf), toString(cg), toString(bV), toString(bX), toString(bU), toString(ca), toString(bT)], j))
10511076 }
10521077
10531078
1054-@Verifier(fx)
1055-func fy () = {
1056- let fz = {
1057- let dg = er()
1058- if ($isInstanceOf(dg, "ByteVector"))
1079+@Verifier(fG)
1080+func fH () = {
1081+ let fI = {
1082+ let dp = eA()
1083+ if ($isInstanceOf(dp, "ByteVector"))
10591084 then {
1060- let ew = dg
1061- ew
1085+ let eF = dp
1086+ eF
10621087 }
1063- else if ($isInstanceOf(dg, "Unit"))
1064- then fx.senderPublicKey
1088+ else if ($isInstanceOf(dp, "Unit"))
1089+ then fG.senderPublicKey
10651090 else throw("Match error")
10661091 }
1067- let dg = fx
1068- if ($isInstanceOf(dg, "Order"))
1092+ let dp = fG
1093+ if ($isInstanceOf(dp, "Order"))
10691094 then {
1070- let cH = dg
1071- let fA = aF()
1072- let at = cG(cH)
1073- let au = sigVerify(cH.bodyBytes, cH.proofs[0], cH.senderPublicKey)
1074- let av = sigVerify(cH.bodyBytes, cH.proofs[1], fA)
1095+ let cQ = dp
1096+ let fJ = aF()
1097+ let at = cP(cQ)
1098+ let au = sigVerify(cQ.bodyBytes, cQ.proofs[0], cQ.senderPublicKey)
1099+ let av = sigVerify(cQ.bodyBytes, cQ.proofs[1], fJ)
10751100 if (if (if (at)
10761101 then au
10771102 else false)
10781103 then av
10791104 else false)
10801105 then true
10811106 else as(at, au, av)
10821107 }
1083- else if ($isInstanceOf(dg, "SetScriptTransaction"))
1108+ else if ($isInstanceOf(dp, "SetScriptTransaction"))
10841109 then {
1085- let es = dg
1086- let fB = blake2b256(value(es.script))
1087- let fC = fromBase64String(value(getString(aC, aq())))
1088- let fD = scriptHash(this)
1089- if (if ((fC == fB))
1090- then (fD != fB)
1110+ let eB = dp
1111+ let fK = blake2b256(value(eB.script))
1112+ let fL = fromBase64String(value(getString(aC, aq())))
1113+ let fM = scriptHash(this)
1114+ if (if ((fL == fK))
1115+ then (fM != fK)
10911116 else false)
10921117 then true
1093- else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
1118+ else sigVerify(fG.bodyBytes, fG.proofs[0], fI)
10941119 }
1095- else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
1120+ else sigVerify(fG.bodyBytes, fG.proofs[0], fI)
10961121 }
10971122

github/deemru/w8io/169f3d6 
446.40 ms