tx · h19vHNoDpEAJKhEV6g93cRRxzMiApBTufwoS8Fksqxz

3N8cKL8uHT2sFedwsSdD7u7zFPD7iM2WSo4:  -0.02800000 Waves

2022.10.13 16:42 [2270658] smart account 3N8cKL8uHT2sFedwsSdD7u7zFPD7iM2WSo4 > SELF 0.00000000 Waves

{ "type": 13, "id": "h19vHNoDpEAJKhEV6g93cRRxzMiApBTufwoS8Fksqxz", "fee": 2800000, "feeAssetId": null, "timestamp": 1665668582055, "version": 1, "sender": "3N8cKL8uHT2sFedwsSdD7u7zFPD7iM2WSo4", "senderPublicKey": "5uqTFe1tdb9qAXgGRerTFeiZvA8oaXqKKAHGzaHKAnwu", "proofs": [ "5Wh5MPv77KjyauHTL4HptfQzxHtjpqo6y3Pr6SD4StoRhruxWkMcxVsePEtTutzsa3g9evKqRNZ4sovas6mFTz6s" ], "script": "base64:BgLkJQgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgUKAwgBARIAEgQKAgEBEgMKAQESBAoCCAgSABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEGdldEZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIh1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlciIVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiEnNsaXBhZ2VBbXRBc3NldEFtdCIUc2xpcGFnZVByaWNlQXNzZXRBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSIHYXNzZXRJZCIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiD2NhbGN1bGF0ZVByaWNlcyIGcHJpY2VzIhRlc3RpbWF0ZUdldE9wZXJhdGlvbiIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCIJbHBBc3NldElkIglhbUFzc2V0SWQiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIKbHBFbWlzc2lvbiIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4Ig1scEVtaXNzaW9uWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiFGVzdGltYXRlUHV0T3BlcmF0aW9uIhFzbGlwcGFnZVRvbGVyYW5jZSIMaW5BbUFzc2V0QW10IgtpbkFtQXNzZXRJZCIMaW5QckFzc2V0QW10IgtpblByQXNzZXRJZCIKaXNFdmFsdWF0ZSIGZW1pdExwIgxhbUFzc2V0SWRTdHIiDHByQXNzZXRJZFN0ciILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiDmluQW1Bc3NldElkU3RyIg5pblByQXNzZXRJZFN0ciIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIDcmVzIgtzbGlwcGFnZVgxOCIUc2xpcHBhZ2VUb2xlcmFuY2VYMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiC2NvbW1vblN0YXRlIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiDW9yZGVyQW10QXNzZXQiEG9yZGVyQW10QXNzZXRTdHIiD29yZGVyUHJpY2VBc3NldCISb3JkZXJQcmljZUFzc2V0U3RyIgpvcmRlclByaWNlIghwcmljZURjbSIQY2FzdGVkT3JkZXJQcmljZSIRaXNPcmRlclByaWNlVmFsaWQiCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiDSR0MDIxOTQyMjIxMjAiC3Bvb2xBZGRyZXNzIg1hbW91bnRBc3NldElkIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDIyNDUwMjI3NDMiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjI3NDcyMjg5NiIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciEWFtb3VudEFzc2V0QW1vdW50IhBwcmljZUFzc2V0QW1vdW50Ig0kdDAyMzAxODIzMDc3Ig1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciDnBheW1lbnRCYWxhbmNlIhRwYXltZW50QmFsYW5jZUJpZ0ludCIMc3VwcGx5QmlnSW50IgtjaGVjaFN1cHBseSINZGVwb3NpdEJpZ0ludCILaXNzdWVBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIg9jYWxjR2V0T25lVG9rZW4iCm91dEFzc2V0SWQiDSR0MDI1MDI3MjUxODgiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiBmNoZWNrcyIQb3V0SW5BbW91bnRBc3NldCINYmFsYW5jZUJpZ0ludCIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDI2MjU1MjYzMDUiC3RvdGFsQW1vdW50Ig0kdDAyNjMwOTI2NTM1IgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IghjdXJQclgxOCIBciIOc3VtT2ZHZXRBc3NldHMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciICcGQiAnBrIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiILbWF4U2xpcHBhZ2UiDG1pbk91dEFtb3VudCIJYXV0b1N0YWtlIg0kdDAzMDQyNjMwNjA0Ig1pc1B1dERpc2FibGVkIgdwYXltZW50Ig0kdDAzMTA5MTMxMjE4IhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINdW5zdGFrZUFtb3VudCINJHQwMzE5NDIzMjEyMCINaXNHZXREaXNhYmxlZCINJHQwMzI1MzEzMjY3OCIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig1jaGVja1BheW1lbnRzIgp1bnN0YWtlSW52Ig9jaGVja1Bvb2xTdGF0dXMiC2FtdEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIg1wb29sTFBCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaFgAAWEACAABYgCAwtcvAAFjCQC2AgEAgMLXLwABZAkAtgIBAICAkLu61q3wDQABZQkAtgIBAAAAAWYJALYCAQAAAAFnCQC2AgEAAQABaAkAtgIBAAEAAWkCBVdBVkVTAAFqAgJfXwABawABAAFsAAIAAW0AAwABbgAEAAFvAAEAAXAAAgABcQADAAFyAAQAAXMABQABdAAGAAF1AAcAAXYACAABdwAJAAF4AAoAAXkAAQABegACAAFBAAMAAUIAAQABQwAHAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAUgBSQkAoAMBCQC8AgMFAUgJALYCAQUBSQUBZAEBSgMBSwFMAU0JAGsDBQFLBQFMBQFNAQFOAQFIAwkAvwICBQFlBQFICQC+AgEFAUgFAUgBAU8AAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFQAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVEAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVIAAhElcyVzX19wcmljZV9fbGFzdAEBUwIBVAFVCQC5CQIJAMwIAgIYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIJAKQDAQUBVAkAzAgCCQCkAwEFAVUFA25pbAUBagEBVgIBVwFYCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwUBVwICX18FAVgBAVkCAVcBWAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAVcCAl9fBQFYAQFaAAIPJXNfX2Ftb3VudEFzc2V0AQJhYQACDiVzX19wcmljZUFzc2V0AAJhYgIHJXNfX2ZlZQACYWMJAGsDAAUFAWIAkE4AAmFkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFiBQJhYwECYWUAAhElc19fZmFjdG9yeUNvbmZpZwECYWYAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmFnAQJhaAkArAICCQCsAgICCCVzJXMlc19fBQJhaAIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFpAgJhagJhawkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYWoCAl9fBQJhawIIX19jb25maWcBAmFsAQJhbQkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhbQECYW4AAgwlc19fc2h1dGRvd24BAmFvAQJhcAkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFwAQJhcQACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJhcgIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmFzAwJhdAJhdQJhdgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYXQCDSBzZW5kZXJWYWxpZD0JAKUDAQUCYXUCDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmF2AQJhdwICYXgCYXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJheAUCYXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYXgJAMwIAgIBLgkAzAgCBQJheQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhegICYXgCYXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJheAUCYXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYXgJAMwIAgIBLgkAzAgCBQJheQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhQQECYUIJAAIBCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYUIFA25pbAIBIAACYUMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhdwIFBHRoaXMJAQFPAAACYUQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhdwIFAmFDBQJhcgECYUUACQELdmFsdWVPckVsc2UCCQCbCAIFAmFDCQECYW4ABwECYUYACQDZBAEJAQJhdwIFAmFDCQECYWYAAQJhRwAEAmFICQECYXcCBQR0aGlzCQEBWgAEAmFJCQECYXcCBQR0aGlzCQECYWEABAJhawkBAmF6AgUCYUMJAQJhbAEFAmFJBAJhagkBAmF6AgUCYUMJAQJhbAEFAmFICQC1CQIJAQJhdwIFAmFDCQECYWkCCQCkAwEFAmFqCQCkAwEFAmFrBQFqAQJhSgECYUsDCQAAAgUCYUsFAWkFBHVuaXQJANkEAQUCYUsBAmFMAQJhSwMJAAACBQJhSwUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJhSwECYU0BAmFOCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYU4FAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBcAkA2QQBCQCRAwIFAmFOBQFxCQECYUoBCQCRAwIFAmFOBQFyCQECYUoBCQCRAwIFAmFOBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU4FAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBdQECYU8ACQC1CQIJAQJhdwIFAmFDCQECYWUABQFqAAJhUAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFPAAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYVEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJhTwAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmFSCgJhUwJhVAJhVQJhVgJhVwJhWAJhWQJhWgJiYQJiYgkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYVMJAMwIAgkApAMBBQJhVAkAzAgCCQCkAwEFAmFVCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJhVwkAzAgCCQCkAwEFAmFYCQDMCAIJAKQDAQUCYVkJAMwIAgkApAMBBQJhWgkAzAgCCQCkAwEFAmJhCQDMCAIJAKQDAQUCYmIFA25pbAUBagECYmMGAmJkAmJlAmJmAmFWAmFZAmFaCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYmQJAMwIAgkApAMBBQJiZQkAzAgCCQCkAwEFAmJmCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJhWQkAzAgCCQCkAwEFAmFaBQNuaWwFAWoBAmJnAQJiaAMJAAACBQJiaAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYmgBAmJpAgJiagJiawkAvAIDBQJiagUBZAUCYmsBAmJsBAJibQJibgJibwJicAQCYnEJAQFEAgUCYm8FAmJtBAJicgkBAUQCBQJicAUCYm4JAQJiaQIFAmJyBQJicQECYnMDAmJvAmJwAmJ0BAJidQkBAmFHAAQCYnYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidQUBdAQCYncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidQUBdQQCYngJAQJibAQFAmJ2BQJidwUCYm8FAmJwBAJiawkBAUQCBQJibwUCYnYEAmJqCQEBRAIFAmJwBQJidwQCYnkJAQFEAgUCYnQFAWIEAmJ6CQECYmkCBQJiawUCYnkEAmJBCQECYmkCBQJiagUCYnkJAMwIAgUCYngJAMwIAgUCYnoJAMwIAgUCYkEFA25pbAECYkIDAmJvAmJwAmJ0BAJiQwkBAmJzAwUCYm8FAmJwBQJidAkAzAgCCQEBRwIJAJEDAgUCYkMAAAUBYgkAzAgCCQEBRwIJAJEDAgUCYkMAAQUBYgkAzAgCCQEBRwIJAJEDAgUCYkMAAgUBYgUDbmlsAQJiRAQCYkUCYkYCYkcBVwQCYnUJAQJhRwAEAmJICQCRAwIFAmJ1BQFxBAJiSQkAkQMCBQJidQUBcgQCYkoJAJEDAgUCYnUFAXMEAmJtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXQEAmJuCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXUEAmJLCQCRAwIFAmJ1BQFwBAJiTAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJICQCsAgIJAKwCAgIGQXNzZXQgBQJiSAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJiSAUCYkYJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmJNCQECYmcBBQJiSQQCYk4JAQFEAgUCYk0FAmJtBAJiTwkBAmJnAQUCYkoEAmJQCQEBRAIFAmJPBQJibgQCYlEJAQJiaQIFAmJQBQJiTgQCYlIJAQFHAgUCYlEFAWIEAmJTCQEBRAIFAmJHBQFiBAJiVAkBAUQCBQJiTAUBYgQCYlUJALwCAwUCYk4FAmJTBQJiVAQCYlYJALwCAwUCYlAFAmJTBQJiVAQCYlcJAQFHAgUCYlUFAmJtBAJiWAkBAUcCBQJiVgUCYm4EAmJZAwkAAAIFAmJFAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFXBQJiVwMJAAACBQJiSQIFV0FWRVMFBHVuaXQJANkEAQUCYkkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBVwUCYlgDCQAAAgUCYkoCBVdBVkVTBQR1bml0CQDZBAEFAmJKCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAgkApQgBBQFXBQJiRQkBAmJjBgUCYlcFAmJYBQJiRwUCYlIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAAUCYlIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYlIFA25pbAkAnAoKBQJiVwUCYlgFAmJJBQJiSgUCYk0FAmJPBQJiTAUCYlEFAmJLBQJiWQECYloJAmJFAmNhAmNiAmNjAmNkAmNlAVcCY2YCY2cEAmJ1CQECYUcABAJiSAkA2QQBCQCRAwIFAmJ1BQFxBAJjaAkAkQMCBQJidQUBcgQCY2kJAJEDAgUCYnUFAXMEAmNqCQCRAwIFAmJ1BQF2BAJjawkAkQMCBQJidQUBdwQCYnYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidQUBdAQCYncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJidQUBdQQCYksJAJEDAgUCYnUFAXAEAmJMCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJICQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJIAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY2wJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY2MJANkEAQIFV0FWRVMEAmNtCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNlCQDZBAECBVdBVkVTAwMJAQIhPQIFAmNoBQJjbAYJAQIhPQIFAmNpBQJjbQkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmJNAwUCY2YJAQJiZwEFAmNoCQBlAgkBAmJnAQUCY2gFAmNiBAJiTwMFAmNmCQECYmcBBQJjaQkAZQIJAQJiZwEFAmNpBQJjZAQCY24JAQFEAgUCY2IFAmJ2BAJjbwkBAUQCBQJjZAUCYncEAmNwCQECYmkCBQJjbwUCY24EAmJOCQEBRAIFAmJNBQJidgQCYlAJAQFEAgUCYk8FAmJ3BAJjcQMJAAACBQJiTAAABAJiUQUBZQQCY3IFAWUEAmJ5CQB2BgkAuQICBQJjbgUCY28AAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFHAgUCYnkFAWIJAQFHAgUCY24FAmJ2CQEBRwIFAmNvBQJidwkBAmJpAgkAtwICBQJiUAUCY28JALcCAgUCYk4FAmNuBQJjcgQCYlEJAQJiaQIFAmJQBQJiTgQCY3IJALwCAwkBAU4BCQC4AgIFAmJRBQJjcAUBZAUCYlEEAmNzCQEBRAIFAmNhBQFiAwMJAQIhPQIFAmJRBQFlCQC/AgIFAmNyBQJjcwcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCY3ICHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJjcwQCYlQJAQFEAgUCYkwFAWIEAmN0CQC8AgMFAmNuBQJiUQUBZAQCY3UJALwCAwUCY28FAWQFAmJRBAJjdgMJAL8CAgUCY3QFAmNvCQCUCgIFAmN1BQJjbwkAlAoCBQJjbgUCY3QEAmN3CAUCY3YCXzEEAmN4CAUCY3YCXzIEAmJ5CQC8AgMFAmJUBQJjeAUCYlAJAJcKBQkBAUcCBQJieQUBYgkBAUcCBQJjdwUCYnYJAQFHAgUCY3gFAmJ3BQJiUQUCY3IEAmN5CAUCY3ECXzEEAmN6CAUCY3ECXzIEAmNBCAUCY3ECXzMEAmJSCQEBRwIIBQJjcQJfNAUBYgQCY0IJAQFHAggFAmNxAl81BQFiAwkAZwIAAAUCY3kJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNDAwkBASEBBQJjZwAABQJjeQQCY0QJAGUCBQJjYgUCY3oEAmNFCQBlAgUCY2QFAmNBBAJjRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVIABQJiUgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJiUgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVgIFAVcFAmJFCQECYVIKBQJjegUCY0EFAmNDBQJiUgUCY2EFAmNCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjRAUCY0UFA25pbAkAnwoNBQJjeQUCY0MFAmJSBQJiTQUCYk8FAmJMBQJiSAUCYksFAmNGBQJjRAUCY0UFAmNjBQJjZQECY0cBAmNIBAJidQkBAmFHAAQCY0kJAJEDAgUCYnUFAXIEAmNKCQCRAwIFAmJ1BQFzBAJiSwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQFwBAJidgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQF0BAJidwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQF1BAJjSwkBAmJnAQUCY0kEAmNMCQECYmcBBQJjSgQCYlEDCQAAAggFAmNICW9yZGVyVHlwZQUDQnV5CQECYmwEBQJidgUCYncJAGQCBQJjSwgFAmNIBmFtb3VudAUCY0wJAQJibAQFAmJ2BQJidwkAZQIFAmNLCAUCY0gGYW1vdW50BQJjTAQCYlIJAQFHAgUCYlEFAWIDAwMJAQJhRQAGCQAAAgUCYksFAW0GCQAAAgUCYksFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkBAJjTQgIBQJjSAlhc3NldFBhaXILYW1vdW50QXNzZXQEAmNOAwkAAAIFAmNNBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjTQQCY08ICAUCY0gJYXNzZXRQYWlyCnByaWNlQXNzZXQEAmNQAwkAAAIFAmNPBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjTwMDCQECIT0CBQJjTgUCY0kGCQECIT0CBQJjUAUCY0oJAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJjUQgFAmNIBXByaWNlBAJjUgkAawMFAWIFAmJ3BQJidgQCY1MJAQFKAwUCY1EFAWIFAmNSBAJjVAMJAAACCAUCY0gJb3JkZXJUeXBlBQNCdXkJAGcCBQJiUgUCY1MJAGcCBQJjUwUCYlIGAQJjVQECY1YDCQECIT0CCQCQAwEIBQJjVghwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmNXCQEFdmFsdWUBCQCRAwIIBQJjVghwYXltZW50cwAABAJiRgkBBXZhbHVlAQgFAmNXB2Fzc2V0SWQEAmNYCAUCY1cGYW1vdW50BAJjcQkBAmJEBAkA2AQBCAUCY1YNdHJhbnNhY3Rpb25JZAkA2AQBBQJiRgUCY1gIBQJjVgZjYWxsZXIEAmJXCAUCY3ECXzEEAmJYCAUCY3ECXzIEAmJLCQENcGFyc2VJbnRWYWx1ZQEIBQJjcQJfOQQCYlkIBQJjcQNfMTADAwkBAmFFAAYJAAACBQJiSwUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYksJAJcKBQUCYlcFAmJYBQJjWAUCYkYFAmJZAQJjWQMCY1YCY2ECY2cDCQECIT0CCQCQAwEIBQJjVghwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCY1oJAQV2YWx1ZQEJAJEDAggFAmNWCHBheW1lbnRzAAAEAmRhCQEFdmFsdWUBCQCRAwIIBQJjVghwYXltZW50cwABBAJkYgkBAmJaCQkA2AQBCAUCY1YNdHJhbnNhY3Rpb25JZAUCY2EIBQJjWgZhbW91bnQIBQJjWgdhc3NldElkCAUCZGEGYW1vdW50CAUCZGEHYXNzZXRJZAkApQgBCAUCY1YGY2FsbGVyBwUCY2cEAmJLCQENcGFyc2VJbnRWYWx1ZQEIBQJkYgJfOAMDAwkBAmFFAAYJAAACBQJiSwUBbAYJAAACBQJiSwUBbgkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYksFAmRiAQJkYwECZGQEAmRlCQD8BwQFAmFDAgRlbWl0CQDMCAIFAmRkBQNuaWwFA25pbAMJAAACBQJkZQUCZGUEAmRmBAJkZwUCZGUDCQABAgUCZGcCB0FkZHJlc3MEAmRoBQJkZwkA/AcEBQJkaAIEZW1pdAkAzAgCBQJkZAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZGYFAmRmBQJkZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZGkBAmRkBAJkagkAawMFAmRkBQJhZAUBYgkAlAoCCQBlAgUCZGQFAmRqBQJkagECZGsEAmRsAmRtAVcBWAQCZG4JAAACBQFYBQR1bml0BAJkbwkBAmFNAQkBAmFHAAQCZHAIBQJkbwJfMQQCYksIBQJkbwJfMgQCYkgIBQJkbwJfMwQCZHEIBQJkbwJfNAQCY0oIBQJkbwJfNQQCZHIIBQJkbwJfNgQCZHMIBQJkbwJfNwQCZHQJAQJiZwEJAQJhTAEFAmRxBAJkdQkBAmJnAQkBAmFMAQUCY0oEAmR2AwkAAAIFAmRtBQJkcQYDCQAAAgUCZG0FAmNKBwkBAmFBAQINaW52YWxpZCBhc3NldAQCZHcDBQJkbgkAlAoCBQJkdAUCZHUDBQJkdgkAlAoCCQBlAgUCZHQFAmRsBQJkdQkAlAoCBQJkdAkAZQIFAmR1BQJkbAQCZHgIBQJkdwJfMQQCZHkIBQJkdwJfMgQCZHoDBQJkdgkAlAoCBQJkbAAACQCUCgIAAAUCZGwEAmRBCAUCZHoCXzEEAmRCCAUCZHoCXzIEAmRDCAkBAmRpAQUCZEECXzEEAmRECAkBAmRpAQUCZEICXzEEAmRFCQECZGkBBQJkbAQCZEYIBQJkRQJfMQQCZGoIBQJkRQJfMgQCZEcJAGQCBQJkeAUCZEMEAmRICQBkAgUCZHkFAmREBAJiUgkBAUcCCQECYmkCCQEBRAIFAmRIBQJkcwkBAUQCBQJkRwUCZHIFAWIEAmRJAwUCZHYFAmR4BQJkeQQCZEoJALYCAQUCZEkEAmRLCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYkgJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYkgCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJkTAMJAL8CAgUCZEsFAWYGCQACAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJkTAUCZEwEAmRNCQC2AgEFAmRGBAJkTgkAoAMBCQC6AgIJALkCAgUCZEsJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWMJALoCAgkAuQICBQJkTQUBYwUCZEoACAAIBQRET1dOBQFjBQFjBAJjRgMFAmRuBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFSAAUCYlIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYlIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVYCCQClCAEJAQV2YWx1ZQEFAVcJANgEAQkBBXZhbHVlAQUBWAkBAmFSCgUCZEEFAmRCBQJkTgUCYlIAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJkTwkAawMFAmR5BQFiBQJkeAQCZFAJAGsDBQJkbAUBYgkAZAIFAmRPBQFiBAJkUQkAZQIFAmRsBQJkUAQCZFIJALwCAwUCZEsJALYCAQUCZFEJALYCAQUCZHkEAmRTCQCgAwEJALwCAwkAuAICCQC2AgEFAmROBQJkUgUBYwUCZFIJAJYKBAUCZE4FAmNGBQJkagUCZFMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmRUBQJkVQJkRgJkbQFXAVgEAmRuCQAAAgUBWAUEdW5pdAQCZFYJAQJhTQEJAQJhRwAEAmRwCAUCZFYCXzEEAmJLCAUCZFYCXzIEAmJICAUCZFYCXzMEAmRxCAUCZFYCXzQEAmNKCAUCZFYCXzUEAmRXCAUCZFYCXzYEAmRYCAUCZFYCXzcEAmRZCQDMCAIDCQAAAgUCZG0FAmJIBgkAAgECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJkWQUCZFkEAmRaAwkAAAIFAmRVBQJkcQYDCQAAAgUCZFUFAmNKBwkBAmFBAQINaW52YWxpZCBhc3NldAQCZWEDBQJkWgkAtgIBCQECYmcBCQECYUwBBQJkcQkAtgIBCQECYmcBCQECYUwBBQJjSgQCZWIJAQJiZwEJAQJhTAEFAmRxBAJlYwkBAmJnAQkBAmFMAQUCY0oEAmVkAwUCZFoFAmViBQJlYwQCZWUJALYCAQUCZWQEAmRLCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYkgJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYkgCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlZgkAtgIBBQJkRgQCZWcJAKADAQkAugICCQC5AgIFAmVhCQC4AgIFAWMJAHYGCQC4AgIFAWMJALoCAgkAuQICBQJlZgUBYwUCZEsACAUBaAAAAAgFBERPV04FAWMEAmVoCQECZGkBBQJlZwQCZWkIBQJlaAJfMQQCZGoIBQJlaAJfMgQCZWoDBQJkWgkAlgoEBQJlaQAACQBlAgUCZWIFAmVnBQJlYwkAlgoEAAAFAmVpBQJlYgkAZQIFAmVjBQJlZwQCZWsIBQJlagJfMQQCZWwIBQJlagJfMgQCZW0IBQJlagJfMwQCZW4IBQJlagJfNAQCZW8JAQJiaQIJAQFEAgUCZW4FAmRYCQEBRAIFAmVtBQJkVwQCYlIJAQFHAgUCZW8FAWIEAmNGAwUCZG4FA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIJAKUIAQkBBXZhbHVlAQUBVwkA2AQBCQEFdmFsdWUBBQFYCQECYmMGBQJlawUCZWwFAmRGBQJiUgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVIABQJiUgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJiUgUDbmlsBAJlcAkBAmJEBAIACQECYUwBBQJiSAUCZEYFBHRoaXMEAmVxCQBkAggFAmVwAl8xCAUCZXACXzIEAmRTCQBrAwkAZQIFAmVpBQJlcQUBYgUCZXEJAJYKBAUCZWkFAmNGBQJkagUCZFMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVyAAQCZGcJAKIIAQkBAVAAAwkAAQIFAmRnAgZTdHJpbmcEAmVzBQJkZwkA2QQBBQJlcwMJAAECBQJkZwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJldAAEAmRnCQCiCAEJAQFRAAMJAAECBQJkZwIGU3RyaW5nBAJlcwUCZGcJANkEAQUCZXMDCQABAgUCZGcCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZXUBAmNWBAJldgkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAJkZwkBAmVyAAMJAAECBQJkZwIKQnl0ZVZlY3RvcgQCZXcFAmRnAwkAAAIIBQJjVg9jYWxsZXJQdWJsaWNLZXkFAmV3BgUCZXYDCQABAgUCZGcCBFVuaXQDCQAAAggFAmNWBmNhbGxlcgUEdGhpcwYFAmV2CQACAQILTWF0Y2ggZXJyb3IWAmNWAQpzZXRNYW5hZ2VyAQJleAQCZXkJAQJldQEFAmNWAwkAAAIFAmV5BQJleQQCZXoJANkEAQUCZXgDCQAAAgUCZXoFAmV6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAAUCZXgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVgEOY29uZmlybU1hbmFnZXIABAJlQQkBAmV0AAQCZUIDCQEJaXNEZWZpbmVkAQUCZUEGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVCBQJlQgQCZUMDCQAAAggFAmNWD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZUEGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVDBQJlQwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUAAJANgEAQkBBXZhbHVlAQUCZUEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVEABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1YBA3B1dAICY2ECZUQDCQBmAgAABQJjYQkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJkYgkBAmNZAwUCY1YFAmNhBgQCY0MIBQJkYgJfMgQCYkgIBQJkYgJfNwQCYlkIBQJkYgJfOQQCY0QIBQJkYgNfMTAEAmNFCAUCZGIDXzExBAJlRQgFAmRiA18xMgQCZUYIBQJkYgNfMTMEAmRlCQD8BwQFAmFDAgRlbWl0CQDMCAIFAmNDBQNuaWwFA25pbAMJAAACBQJkZQUCZGUEAmRmBAJkZwUCZGUDCQABAgUCZGcCB0FkZHJlc3MEAmRoBQJkZwkA/AcEBQJkaAIEZW1pdAkAzAgCBQJjQwUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZGYFAmRmBAJlRwMJAGYCBQJjRAAACQD8BwQFAmFRAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZUUFAmNEBQNuaWwFA25pbAMJAAACBQJlRwUCZUcEAmVIAwkAZgIFAmNFAAAJAPwHBAUCYVECA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlRgUCY0UFA25pbAUDbmlsAwkAAAIFAmVIBQJlSAQCZUkDBQJlRAQCZUoJAPwHBAUCYVACBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJIBQJjQwUDbmlsAwkAAAIFAmVKBQJlSgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjVgZjYWxsZXIFAmNDBQJiSAUDbmlsCQDOCAIFAmJZBQJlSQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVgEKcHV0Rm9yRnJlZQECZUsDCQBmAgAABQJlSwkAAgECFEludmFsaWQgdmFsdWUgcGFzc2VkBAJkYgkBAmNZAwUCY1YFAmVLBwgFAmRiAl85AmNWAQlwdXRPbmVUa24CAmVMAmVNBAJlTgkBAmFNAQkBAmFHAAQCZHAIBQJlTgJfMQQCYksIBQJlTgJfMgQCYkgIBQJlTgJfMwQCZHEIBQJlTgJfNAQCY0oIBQJlTgJfNQQCZHIIBQJlTgJfNgQCZHMIBQJlTgJfNwQCZU8DAwkBAmFFAAYJAAACBQJiSwUBbAYJAAACBQJiSwUBbgQCZFkJAMwIAgMJAQEhAQUCZU8GCQECYUEBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjVghwYXltZW50cwABBgkBAmFBAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZFkFAmRZBAJlUAkAkQMCCAUCY1YIcGF5bWVudHMAAAQCZG0IBQJlUAdhc3NldElkBAJkbAgFAmVQBmFtb3VudAQCZEYFAmRsBAFXCAUCY1YGY2FsbGVyBAFYCAUCY1YNdHJhbnNhY3Rpb25JZAQCZVEJAQJkawQFAmRsBQJkbQUBVwUBWAQCZVIIBQJlUQJfMQQCY0YIBQJlUQJfMgQCZGoIBQJlUQJfMwQCZFMIBQJlUQJfNAQCZVMDAwkAZgIFAmVMAAAJAGYCBQJlTAUCZVIHCQACAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJlTAUDbmlsAgAFAmVSBAJkZQkBAmRjAQUCZVMDCQAAAgUCZGUFAmRlBAJlSQMFAmVNBAJlVAkA/AcEBQJhUAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYkgFAmVTBQNuaWwDCQAAAgUCZVQFAmVUBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmNWBmNhbGxlcgUCZVMFAmJIBQNuaWwEAmVVAwkAZgIFAmRqAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUQFAmRqBQJkbQUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNGBQJlSQUCZVUFAmVTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNWAQlnZXRPbmVUa24DAmRVAmVMAmVWBAJlVwkBAmFNAQkBAmFHAAQCZHAIBQJlVwJfMQQCYksIBQJlVwJfMgQCYkgIBQJlVwJfMwQCZHEIBQJlVwJfNAQCY0oIBQJlVwJfNQQCZHIIBQJlVwJfNgQCZHMIBQJlVwJfNwQCZVgDCQECYUUABgkAAAIFAmJLBQFuBAJkWQkAzAgCAwkBASEBBQJlWAYJAQJhQQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNWCHBheW1lbnRzAAEGCQECYUEBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJkWQUCZFkEAmVQCQCRAwIIBQJjVghwYXltZW50cwAABAJkbQgFAmVQB2Fzc2V0SWQEAmRGCAUCZVAGYW1vdW50BAFXCAUCY1YGY2FsbGVyBAFYCAUCY1YNdHJhbnNhY3Rpb25JZAQCZVkJAQJkVAUJAQJhSgEFAmRVBQJkRgUCZG0FAVcFAVgEAmVaCAUCZVkCXzEEAmNGCAUCZVkCXzIEAmRqCAUCZVkCXzMEAmRTCAUCZVkCXzQEAmRkAwMJAGYCBQJlTAAACQBmAgUCZUwFAmVaBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZUwFA25pbAIABQJlWgQCZmEJAPwHBAUCYUMCBGJ1cm4JAMwIAgUCZEYFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZG0FAmRGBQNuaWwDCQAAAgUCZmEFAmZhBAJmYgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFXBQJkZAkBAmFKAQUCZFUFA25pbAkAlAoCBQJmYgUCZGQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1YBA2dldAAEAmNxCQECY1UBBQJjVgQCZmMIBQJjcQJfMQQCYlgIBQJjcQJfMgQCY1gIBQJjcQJfMwQCYkYIBQJjcQJfNAQCYlkIBQJjcQJfNQQCZmQJAPwHBAUCYUMCBGJ1cm4JAMwIAgUCY1gFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYkYFAmNYBQNuaWwDCQAAAgUCZmQFAmZkBQJiWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVgEJZ2V0Tm9MZXNzAgJmZQJmZgQCY3EJAQJjVQEFAmNWBAJiVwgFAmNxAl8xBAJiWAgFAmNxAl8yBAJjWAgFAmNxAl8zBAJiRggFAmNxAl80BAJiWQgFAmNxAl81AwkAZgIFAmZlBQJiVwkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCYlcCAyA8IAkApAMBBQJmZQMJAGYCBQJmZgUCYlgJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJiWAIDIDwgCQCkAwEFAmZmBAJmZAkA/AcEBQJhQwIEYnVybgkAzAgCBQJjWAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiRgUCY1gFA25pbAMJAAACBQJmZAUCZmQFAmJZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNWAQ11bnN0YWtlQW5kR2V0AQJkZAQCZmcDCQECIT0CCQCQAwEIBQJjVghwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJmZwUCZmcEAmJ1CQECYUcABAJiSAkA2QQBCQCRAwIFAmJ1BQFxBAJmaAkA/AcEBQJhUAIHdW5zdGFrZQkAzAgCCQDYBAEFAmJICQDMCAIFAmRkBQNuaWwFA25pbAMJAAACBQJmaAUCZmgEAmNxCQECYkQECQDYBAEIBQJjVg10cmFuc2FjdGlvbklkCQDYBAEFAmJIBQJkZAgFAmNWBmNhbGxlcgQCYksJAQ1wYXJzZUludFZhbHVlAQgFAmNxAl85BAJiWQgFAmNxA18xMAQCZmkDAwkBAmFFAAYJAAACBQJiSwUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYksGAwkAAAIFAmZpBQJmaQQCZmQJAPwHBAUCYUMCBGJ1cm4JAMwIAgUCZGQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYkgFAmRkBQNuaWwDCQAAAgUCZmQFAmZkBQJiWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjVgEIYWN0aXZhdGUCAmZqAmZrAwkBAiE9AgkApQgBCAUCY1YGY2FsbGVyCQClCAEFAmFDCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoABQJmagkAzAgCCQELU3RyaW5nRW50cnkCCQECYWEABQJmawUDbmlsAgdzdWNjZXNzAmNWARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRwACY1YBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJoCQCUCgIFA25pbAkBAmJnAQUCYmgCY1YBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJvAmJwAmJ0BAJiQwkBAmJzAwUCYm8FAmJwBQJidAkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmJDAAAJAMwIAgkApgMBCQCRAwIFAmJDAAEJAMwIAgkApgMBCQCRAwIFAmJDAAIFA25pbAJjVgEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmNWARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFIAUkJAJQKAgUDbmlsCQEBRwIJAKcDAQUBSAUBSQJjVgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiagJiawkAlAoCBQNuaWwJAKYDAQkBAmJpAgkApwMBBQJiagkApwMBBQJiawJjVgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJFAmNhAmNiAmNjAmNkAmNlAVcCY2YCY2cJAJQKAgUDbmlsCQECYloJBQJiRQUCY2EFAmNiBQJjYwUCY2QFAmNlBQFXBQJjZgUCY2cCY1YBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiRQJiRgJiRwFXBAJjcQkBAmJEBAUCYkUFAmJGBQJiRwkBEUBleHRyTmF0aXZlKDEwNjIpAQUBVwkAlAoCBQNuaWwJAJwKCggFAmNxAl8xCAUCY3ECXzIIBQJjcQJfMwgFAmNxAl80CAUCY3ECXzUIBQJjcQJfNggFAmNxAl83CQCmAwEIBQJjcQJfOAgFAmNxAl85CAUCY3EDXzEwAmNWAQ1zdGF0c1JFQURPTkxZAAQCYnUJAQJhRwAEAmJICQDZBAEJAJEDAgUCYnUFAXEEAmNJCQCRAwIFAmJ1BQFyBAJjSgkAkQMCBQJidQUBcwQCY2oJAJEDAgUCYnUFAXYEAmNrCQCRAwIFAmJ1BQF3BAJidgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQF0BAJidwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJ1BQF1BAJmbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiSAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiSAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNLCQECYmcBBQJjSQQCY0wJAQJiZwEFAmNKBAJmbQMJAAACBQJmbAAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJicwMFAmNLBQJjTAUCZmwEAmJSAAAEAmZuCQEBRwIJAJEDAgUCZm0AAQUBYgQCZm8JAQFHAgkAkQMCBQJmbQACBQFiBAJmcAkBBXZhbHVlAQkAmggCBQJhQwkBAmFvAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY0sJAMwIAgkApAMBBQJjTAkAzAgCCQCkAwEFAmZsCQDMCAIJAKQDAQUCYlIJAMwIAgkApAMBBQJmbgkAzAgCCQCkAwEFAmZvCQDMCAIJAKQDAQUCZnAFA25pbAUBagJjVgEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmNiBAJidQkBAmFHAAQCYkgJANkEAQkAkQMCBQJidQUBcQQCY2gJAJEDAgUCYnUFAXIEAmJJCQDZBAEFAmNoBAJjaQkAkQMCBQJidQUBcwQCYkoJANkEAQUCY2kEAmJ2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXQEAmJ3CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXUEAmJLCQCRAwIFAmJ1BQFwBAJmbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiSAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiSAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNLCQECYmcBBQJjaAQCY0wJAQJiZwEFAmNpBAJicQkBAUQCBQJjSwUCYnYEAmJyCQEBRAIFAmNMBQJidwQCYlEDCQAAAgUCZmwAAAUBZQkBAmJpAgUCYnIFAmJxBAJjbgkBAUQCBQJjYgUCYnYEAmNvCQC8AgMFAmNuBQJiUQUBZAQCY2QJAQFHAgUCY28FAmJ3BAJkYgkBAmJaCQIAAKDCHgUCY2IFAmJJBQJjZAUCYkoCAAYHBAJjeQgFAmRiAl8xBAJmcQgFAmRiAl8zBAJiTQgFAmRiAl80BAJiTwgFAmRiAl81BAJiTAgFAmRiAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjeQkAzAgCCQCkAwEJAQFHAgUCYlEFAWIJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYkwJAMwIAgUCYksJAMwIAgkApAMBBQJjYgkAzAgCCQCkAwEFAmNkBQNuaWwFAWoCY1YBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmNkBAJidQkBAmFHAAQCYkgJANkEAQkAkQMCBQJidQUBcQQCY2gJAJEDAgUCYnUFAXIEAmJJCQDZBAEFAmNoBAJjaQkAkQMCBQJidQUBcwQCYkoJANkEAQUCY2kEAmJ2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXQEAmJ3CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnUFAXUEAmJLCQCRAwIFAmJ1BQFwBAJmbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiSAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiSAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZyCQECYmcBBQJjaAQCZnMJAQJiZwEFAmNpBAJmdAkBAUQCBQJmcgUCYnYEAmZ1CQEBRAIFAmZzBQJidwQCYlEDCQAAAgUCZmwAAAUBZQkBAmJpAgUCZnUFAmZ0BAJjbwkBAUQCBQJjZAUCYncEAmNuCQC8AgMFAmNvBQFkBQJiUQQCY2IJAQFHAgUCY24FAmJ2BAJkYgkBAmJaCQIAAKDCHgUCY2IFAmJJBQJjZAUCYkoCAAYHBAJjeQgFAmRiAl8xBAJmcQgFAmRiAl8zBAJiTQgFAmRiAl80BAJiTwgFAmRiAl81BAJiTAgFAmRiAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjeQkAzAgCCQCkAwEJAQFHAgUCYlEFAWIJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYkwJAMwIAgUCYksJAMwIAgkApAMBBQJjYgkAzAgCCQCkAwEFAmNkBQNuaWwFAWoCY1YBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmZ2AmZ3BAJjcQkBAmJEBAIABQJmdgUCZncFBHRoaXMEAmJXCAUCY3ECXzEEAmJYCAUCY3ECXzIEAmJNCAUCY3ECXzUEAmJPCAUCY3ECXzYEAmJMCAUCY3ECXzcEAmJSCAUCY3ECXzgEAmJLCQENcGFyc2VJbnRWYWx1ZQEIBQJjcQJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJXCQDMCAIJAKQDAQUCYlgJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYkwJAMwIAgkApgMBBQJiUgkAzAgCCQCkAwEFAmJLBQNuaWwFAWoBAmZ4AQJmeQAEAmZ6BAJkZwkBAmVyAAMJAAECBQJkZwIKQnl0ZVZlY3RvcgQCZXcFAmRnBQJldwMJAAECBQJkZwIEVW5pdAgFAmZ4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkZwUCZngDCQABAgUCZGcCBU9yZGVyBAJjSAUCZGcEAmZBCQECYUYABAJhdAkBAmNHAQUCY0gEAmF1CQD0AwMIBQJjSAlib2R5Qnl0ZXMJAJEDAggFAmNIBnByb29mcwAACAUCY0gPc2VuZGVyUHVibGljS2V5BAJhdgkA9AMDCAUCY0gJYm9keUJ5dGVzCQCRAwIIBQJjSAZwcm9vZnMAAQUCZkEDAwMFAmF0BQJhdQcFAmF2BwYJAQJhcwMFAmF0BQJhdQUCYXYDCQABAgUCZGcCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlcwUCZGcEAmZCCQD2AwEJAQV2YWx1ZQEIBQJlcwZzY3JpcHQEAmZDCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUMJAQJhcQAEAmZECQDxBwEFBHRoaXMDAwkAAAIFAmZDBQJmQgkBAiE9AgUCZkQFAmZCBwYJAPQDAwgFAmZ4CWJvZHlCeXRlcwkAkQMCCAUCZngGcHJvb2ZzAAAFAmZ6CQD0AwMIBQJmeAlib2R5Qnl0ZXMJAJEDAggFAmZ4BnByb29mcwAABQJmerlLhmU=", "chainId": 84, "height": 2270658, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CHA9KUPzAXon5zKJe7o5JZFXmNn7HLbMEas83V6rVcfW Next: 4PwzMKVXGhXTU9PEbKknYkn2AShiExw8Ja4L3K2qPd5y Diff:
OldNewDifferences
100100 func aa () = "%s__priceAsset"
101101
102102
103-func ab () = "%s__factoryConfig"
103+let ab = "%s__fee"
104+
105+let ac = fraction(5, b, 10000)
106+
107+let ad = valueOrElse(getInteger(this, ab), ac)
108+
109+func ae () = "%s__factoryConfig"
104110
105111
106-func ac () = "%s%s__matcher__publicKey"
112+func af () = "%s%s__matcher__publicKey"
107113
108114
109-func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
115+func ag (ah) = (("%s%s%s__" + ah) + "__mappings__poolContract2LpAsset")
110116
111117
112-func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
118+func ai (aj,ak) = (((("%d%d%s__" + aj) + "__") + ak) + "__config")
113119
114120
115-func ai (aj) = ("%s%s%s__mappings__baseAsset2internalId__" + aj)
121+func al (am) = ("%s%s%s__mappings__baseAsset2internalId__" + am)
116122
117123
118-func ak () = "%s__shutdown"
124+func an () = "%s__shutdown"
119125
120126
121-func al (am) = ("%s%s__poolWeight__" + am)
127+func ao (ap) = ("%s%s__poolWeight__" + ap)
122128
123129
124-func an () = "%s__allowedLpScriptHash"
130+func aq () = "%s__allowedLpScriptHash"
125131
126132
127-func ao (ap,aq,ar) = throw(((((("order validation failed: orderValid=" + toString(ap)) + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
133+let ar = "%s__feeCollectorAddress"
134+
135+func as (at,au,av) = throw(((((("order validation failed: orderValid=" + toString(at)) + " senderValid=") + toString(au)) + " matcherValid=") + toString(av)))
128136
129137
130-func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
138+func aw (ax,ay) = valueOrErrorMessage(getString(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
131139
132140
133-func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
141+func az (ax,ay) = valueOrErrorMessage(getInteger(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
134142
135143
136-func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
144+func aA (aB) = throw(makeString(["lp.ride:", aB], " "))
137145
138146
139-let ay = addressFromStringValue(as(this, O()))
147+let aC = addressFromStringValue(aw(this, O()))
140148
141-func az () = valueOrElse(getBoolean(ay, ak()), false)
149+let aD = addressFromStringValue(aw(aC, ar))
150+
151+func aE () = valueOrElse(getBoolean(aC, an()), false)
142152
143153
144-func aA () = fromBase58String(as(ay, ac()))
154+func aF () = fromBase58String(aw(aC, af()))
145155
146156
147-func aB () = {
148- let aC = as(this, Z())
149- let aD = as(this, aa())
150- let ah = av(ay, ai(aD))
151- let ag = av(ay, ai(aC))
152- split(as(ay, af(toString(ag), toString(ah))), j)
157+func aG () = {
158+ let aH = aw(this, Z())
159+ let aI = aw(this, aa())
160+ let ak = az(aC, al(aI))
161+ let aj = az(aC, al(aH))
162+ split(aw(aC, ai(toString(aj), toString(ak))), j)
153163 }
154164
155165
156-func aE (aF) = if ((aF == i))
166+func aJ (aK) = if ((aK == i))
157167 then unit
158- else fromBase58String(aF)
168+ else fromBase58String(aK)
159169
160170
161-func aG (aF) = if ((aF == unit))
171+func aL (aK) = if ((aK == unit))
162172 then i
163- else toBase58String(value(aF))
173+ else toBase58String(value(aK))
164174
165175
166-func aH (aI) = $Tuple7(addressFromStringValue(aI[o]), parseIntValue(aI[p]), fromBase58String(aI[q]), aE(aI[r]), aE(aI[s]), parseIntValue(aI[t]), parseIntValue(aI[u]))
176+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]))
167177
168178
169-func aJ () = split(as(ay, ab()), j)
179+func aO () = split(aw(aC, ae()), j)
170180
171181
172-let aK = valueOrErrorMessage(addressFromString(aJ()[B]), "incorrect staking address")
182+let aP = valueOrErrorMessage(addressFromString(aO()[B]), "incorrect staking address")
173183
174-let aL = valueOrErrorMessage(addressFromString(aJ()[C]), "incorrect staking address")
184+let aQ = valueOrErrorMessage(addressFromString(aO()[C]), "incorrect staking address")
175185
176-func aM (aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV), toString(aW)], j)
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)
177187
178188
179-func aX (aY,aZ,ba,aQ,aT,aU) = makeString(["%d%d%d%d%d%d", toString(aY), toString(aZ), toString(ba), toString(aQ), toString(aT), toString(aU)], j)
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)
180190
181191
182-func bb (bc) = if ((bc == "WAVES"))
192+func bg (bh) = if ((bh == "WAVES"))
183193 then wavesBalance(this).available
184- else assetBalance(this, fromBase58String(bc))
194+ else assetBalance(this, fromBase58String(bh))
185195
186196
187-func bd (be,bf) = fraction(be, d, bf)
197+func bi (bj,bk) = fraction(bj, d, bk)
188198
189199
190-func bg (bh,bi,bj,bk) = {
191- let bl = D(bj, bh)
192- let bm = D(bk, bi)
193- bd(bm, bl)
200+func bl (bm,bn,bo,bp) = {
201+ let bq = D(bo, bm)
202+ let br = D(bp, bn)
203+ bi(br, bq)
194204 }
195205
196206
197-func bn (bj,bk,bo) = {
198- let bp = aB()
199- let bq = parseIntValue(bp[t])
200- let br = parseIntValue(bp[u])
201- let bs = bg(bq, br, bj, bk)
202- let bf = D(bj, bq)
203- let be = D(bk, br)
204- let bt = D(bo, b)
205- let bu = bd(bf, bt)
206- let bv = bd(be, bt)
207-[bs, bu, bv]
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]
208218 }
209219
210220
211-func bw (bj,bk,bo) = {
212- let bx = bn(bj, bk, bo)
213-[G(bx[0], b), G(bx[1], b), G(bx[2], b)]
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)]
214224 }
215225
216226
217-func by (bz,bA,bB,W) = {
218- let bp = aB()
219- let bC = bp[q]
220- let bD = bp[r]
221- let bE = bp[s]
222- let bh = parseIntValue(bp[t])
223- let bi = parseIntValue(bp[u])
224- let bF = bp[p]
225- let bG = valueOrErrorMessage(assetInfo(fromBase58String(bC)), (("Asset " + bC) + " doesn't exist")).quantity
226- if ((bC != bA))
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))
227237 then throw("Invalid asset passed.")
228238 else {
229- let bH = bb(bD)
230- let bI = D(bH, bh)
231- let bJ = bb(bE)
232- let bK = D(bJ, bi)
233- let bL = bd(bK, bI)
234- let bM = G(bL, b)
235- let bN = D(bB, b)
236- let bO = D(bG, b)
237- let bP = fraction(bI, bN, bO)
238- let bQ = fraction(bK, bN, bO)
239- let bR = G(bP, bh)
240- let bS = G(bQ, bi)
241- let bT = if ((bz == ""))
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 == ""))
242252 then nil
243- else [ScriptTransfer(W, bR, if ((bD == "WAVES"))
253+ else [ScriptTransfer(W, bW, if ((bI == "WAVES"))
244254 then unit
245- else fromBase58String(bD)), ScriptTransfer(W, bS, if ((bE == "WAVES"))
255+ else fromBase58String(bI)), ScriptTransfer(W, bX, if ((bJ == "WAVES"))
246256 then unit
247- else fromBase58String(bE)), StringEntry(Y(toString(W), bz), aX(bR, bS, bB, bM, height, lastBlock.timestamp)), IntegerEntry(R(), bM), IntegerEntry(S(height, lastBlock.timestamp), bM)]
248- $Tuple10(bR, bS, bD, bE, bH, bJ, bG, bL, bF, bT)
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)
249259 }
250260 }
251261
252262
253-func bU (bz,bV,bW,bX,bY,bZ,W,ca,cb) = {
254- let bp = aB()
255- let bC = fromBase58String(bp[q])
256- let cc = bp[r]
257- let cd = bp[s]
258- let ce = bp[v]
259- let cf = bp[w]
260- let bq = parseIntValue(bp[t])
261- let br = parseIntValue(bp[u])
262- let bF = bp[p]
263- let bG = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
264- let cg = toBase58String(valueOrElse(bX, fromBase58String("WAVES")))
265- let ch = toBase58String(valueOrElse(bZ, fromBase58String("WAVES")))
266- if (if ((cc != cg))
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))
267277 then true
268- else (cd != ch))
278+ else (ci != cm))
269279 then throw("Invalid amt or price asset passed.")
270280 else {
271- let bH = if (ca)
272- then bb(cc)
273- else (bb(cc) - bW)
274- let bJ = if (ca)
275- then bb(cd)
276- else (bb(cd) - bY)
277- let ci = D(bW, bq)
278- let cj = D(bY, br)
279- let ck = bd(cj, ci)
280- let bI = D(bH, bq)
281- let bK = D(bJ, br)
282- let cl = if ((bG == 0))
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))
283293 then {
284- let bL = e
285- let cm = e
286- let bt = pow((ci * cj), 0, toBigInt(5), 1, 0, DOWN)
287- $Tuple5(G(bt, b), G(ci, bq), G(cj, br), bd((bK + cj), (bI + ci)), cm)
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)
288298 }
289299 else {
290- let bL = bd(bK, bI)
291- let cm = fraction(N((bL - ck)), d, bL)
292- let cn = D(bV, b)
293- if (if ((bL != e))
294- then (cm > cn)
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)
295305 else false)
296- then throw(((("Price slippage " + toString(cm)) + " exceeded the passed limit of ") + toString(cn)))
306+ then throw(((("Price slippage " + toString(cr)) + " exceeded the passed limit of ") + toString(cs)))
297307 else {
298- let bO = D(bG, b)
299- let co = fraction(ci, bL, d)
300- let cp = fraction(cj, d, bL)
301- let cq = if ((co > cj))
302- then $Tuple2(cp, cj)
303- else $Tuple2(ci, co)
304- let cr = cq._1
305- let cs = cq._2
306- let bt = fraction(bO, cs, bK)
307- $Tuple5(G(bt, b), G(cr, bq), G(cs, br), bL, cm)
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)
308318 }
309319 }
310- let ct = cl._1
311- let cu = cl._2
312- let cv = cl._3
313- let bM = G(cl._4, b)
314- let cw = G(cl._5, b)
315- if ((0 >= ct))
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))
316326 then throw("Invalid calculations. LP calculated is less than zero.")
317327 else {
318- let cx = if (!(cb))
328+ let cC = if (!(cg))
319329 then 0
320- else ct
321- let cy = (bW - cu)
322- let cz = (bY - cv)
323- let cA = [IntegerEntry(R(), bM), IntegerEntry(S(height, lastBlock.timestamp), bM), StringEntry(V(W, bz), aM(cu, cv, cx, bM, bV, cw, height, lastBlock.timestamp, cy, cz))]
324- $Tuple13(ct, cx, bM, bH, bJ, bG, bC, bF, cA, cy, cz, bX, bZ)
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)
325335 }
326336 }
327337 }
328338
329339
330-func cB (cC) = {
331- let bp = aB()
332- let cD = bp[r]
333- let cE = bp[s]
334- let bF = parseIntValue(bp[p])
335- let bq = parseIntValue(bp[t])
336- let br = parseIntValue(bp[u])
337- let cF = bb(cD)
338- let cG = bb(cE)
339- let bL = if ((cC.orderType == Buy))
340- then bg(bq, br, (cF + cC.amount), cG)
341- else bg(bq, br, (cF - cC.amount), cG)
342- let bM = G(bL, b)
343- if (if (if (az())
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)
353+ if (if (if (aE())
344354 then true
345- else (bF == m))
355+ else (bK == m))
346356 then true
347- else (bF == n))
357+ else (bK == n))
348358 then throw("Exchange operations disabled")
349359 else {
350- let cH = cC.assetPair.amountAsset
351- let cI = if ((cH == unit))
360+ let cM = cH.assetPair.amountAsset
361+ let cN = if ((cM == unit))
352362 then "WAVES"
353- else toBase58String(value(cH))
354- let cJ = cC.assetPair.priceAsset
355- let cK = if ((cJ == unit))
363+ else toBase58String(value(cM))
364+ let cO = cH.assetPair.priceAsset
365+ let cP = if ((cO == unit))
356366 then "WAVES"
357- else toBase58String(value(cJ))
358- if (if ((cI != cD))
367+ else toBase58String(value(cO))
368+ if (if ((cN != cI))
359369 then true
360- else (cK != cE))
370+ else (cP != cJ))
361371 then throw("Wrong order assets.")
362372 else {
363- let cL = cC.price
364- let cM = fraction(b, br, bq)
365- let cN = J(cL, b, cM)
366- let cO = if ((cC.orderType == Buy))
367- then (bM >= cN)
368- else (cN >= bM)
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)
369379 true
370380 }
371381 }
372382 }
373383
374384
375-func cP (cQ) = if ((size(cQ.payments) != 1))
385+func cU (cV) = if ((size(cV.payments) != 1))
376386 then throw("exactly 1 payment is expected")
377387 else {
378- let cR = value(cQ.payments[0])
379- let bA = value(cR.assetId)
380- let cS = cR.amount
381- let cl = by(toBase58String(cQ.transactionId), toBase58String(bA), cS, cQ.caller)
382- let bR = cl._1
383- let bS = cl._2
384- let bF = parseIntValue(cl._9)
385- let bT = cl._10
386- if (if (az())
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
396+ if (if (aE())
387397 then true
388- else (bF == n))
389- then throw(("Get operation is blocked by admin. Status = " + toString(bF)))
390- else $Tuple5(bR, bS, cS, bA, bT)
398+ else (bK == n))
399+ then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
400+ else $Tuple5(bW, bX, cX, bF, bY)
391401 }
392402
393403
394-func cT (cQ,bV,cb) = if ((size(cQ.payments) != 2))
404+func cY (cV,ca,cg) = if ((size(cV.payments) != 2))
395405 then throw("exactly 2 payments are expected")
396406 else {
397- let cU = value(cQ.payments[0])
398- let cV = value(cQ.payments[1])
399- let cW = bU(toBase58String(cQ.transactionId), bV, cU.amount, cU.assetId, cV.amount, cV.assetId, toString(cQ.caller), false, cb)
400- let bF = parseIntValue(cW._8)
401- if (if (if (az())
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)
411+ if (if (if (aE())
402412 then true
403- else (bF == l))
413+ else (bK == l))
404414 then true
405- else (bF == n))
406- then throw(("Put operation is blocked by admin. Status = " + toString(bF)))
407- else cW
415+ else (bK == n))
416+ then throw(("Put operation is blocked by admin. Status = " + toString(bK)))
417+ else db
408418 }
409419
410420
411-func cX (cY) = {
412- let cZ = invoke(ay, "emit", [cY], nil)
413- if ((cZ == cZ))
421+func dc (dd) = {
422+ let de = invoke(aC, "emit", [dd], nil)
423+ if ((de == de))
414424 then {
415- let da = {
416- let db = cZ
417- if ($isInstanceOf(db, "Address"))
425+ let df = {
426+ let dg = de
427+ if ($isInstanceOf(dg, "Address"))
418428 then {
419- let dc = db
420- invoke(dc, "emit", [cY], nil)
429+ let dh = dg
430+ invoke(dh, "emit", [dd], nil)
421431 }
422432 else unit
423433 }
424- if ((da == da))
425- then cY
434+ if ((df == df))
435+ then dd
426436 else throw("Strict value is not equal to itself.")
427437 }
428438 else throw("Strict value is not equal to itself.")
429439 }
430440
431441
432-func dd (de,df,W,X) = {
433- let dg = (X == unit)
434- let dh = aH(aB())
435- let di = dh._1
436- let bF = dh._2
437- let bC = dh._3
438- let dj = dh._4
439- let cE = dh._5
440- let dk = dh._6
441- let dl = dh._7
442- let dm = de
443- let dn = if ((df == dj))
444- then bb(aG(dj))
445- else if ((df == cE))
446- then bb(aG(cE))
447- else aw("invalid asset")
448- let do = if (dg)
449- then 0
450- else dm
451- let dp = (dn - do)
452- let dq = toBigInt(dp)
453- let dr = toBigInt(valueOrErrorMessage(assetInfo(bC), (("asset " + toBase58String(bC)) + " doesn't exist")).quantity)
454- let ds = toBigInt(dm)
455- let dt = ((dr * (sqrtBigInt((c + ((ds * c) / dq)), 8, 8, DOWN) - c)) / c)
456- toInt(dt)
442+func di (dd) = {
443+ let dj = fraction(dd, ad, b)
444+ $Tuple2((dd - dj), dj)
457445 }
458446
459447
460-func du (dv,dm,df,W,X) = {
461- let dg = (X == unit)
462- let dw = aH(aB())
463- let di = dw._1
464- let bF = dw._2
465- let bC = dw._3
466- let dj = dw._4
467- let cE = dw._5
468- let dk = dw._6
469- let dl = dw._7
470- let dx = [if ((df == bC))
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))
471461 then true
472- else throw("invalid lp asset")]
473- if ((dx == dx))
462+ else if ((dm == cJ))
463+ then false
464+ 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))
491+ then true
492+ else throw("initial deposit requires all coins")
493+ if ((dL == dL))
474494 then {
475- let dq = if ((dv == dj))
476- then toBigInt(bb(aG(dj)))
477- else if ((dv == cE))
478- then toBigInt(bb(aG(cE)))
479- else aw("invalid asset")
480- let dr = toBigInt(valueOrErrorMessage(assetInfo(bC), (("asset " + toBase58String(bC)) + " doesn't exist")).quantity)
481- let dy = toBigInt(dm)
482- let cY = ((dq * (c - pow((c - ((dy * c) / dr)), 8, h, 0, 8, DOWN))) / c)
483- toInt(cY)
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)
498+ 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)
484506 }
485507 else throw("Strict value is not equal to itself.")
486508 }
487509
488510
489-func dz () = {
490- let db = getString(P())
491- if ($isInstanceOf(db, "String"))
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))
522+ then true
523+ else throw("invalid lp asset")]
524+ if ((dY == dY))
492525 then {
493- let dA = db
494- fromBase58String(dA)
526+ let dZ = if ((dU == dq))
527+ then true
528+ else if ((dU == cJ))
529+ then false
530+ 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)
556+ 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)
495562 }
496- else if ($isInstanceOf(db, "Unit"))
563+ else throw("Strict value is not equal to itself.")
564+ }
565+
566+
567+func er () = {
568+ let dg = getString(P())
569+ if ($isInstanceOf(dg, "String"))
570+ then {
571+ let es = dg
572+ fromBase58String(es)
573+ }
574+ else if ($isInstanceOf(dg, "Unit"))
497575 then unit
498576 else throw("Match error")
499577 }
500578
501579
502-func dB () = {
503- let db = getString(Q())
504- if ($isInstanceOf(db, "String"))
580+func et () = {
581+ let dg = getString(Q())
582+ if ($isInstanceOf(dg, "String"))
505583 then {
506- let dA = db
507- fromBase58String(dA)
584+ let es = dg
585+ fromBase58String(es)
508586 }
509- else if ($isInstanceOf(db, "Unit"))
587+ else if ($isInstanceOf(dg, "Unit"))
510588 then unit
511589 else throw("Match error")
512590 }
513591
514592
515-func dC (cQ) = {
516- let dD = throw("Permission denied")
517- let db = dz()
518- if ($isInstanceOf(db, "ByteVector"))
593+func eu (cV) = {
594+ let ev = throw("Permission denied")
595+ let dg = er()
596+ if ($isInstanceOf(dg, "ByteVector"))
519597 then {
520- let dE = db
521- if ((cQ.callerPublicKey == dE))
598+ let ew = dg
599+ if ((cV.callerPublicKey == ew))
522600 then true
523- else dD
601+ else ev
524602 }
525- else if ($isInstanceOf(db, "Unit"))
526- then if ((cQ.caller == this))
603+ else if ($isInstanceOf(dg, "Unit"))
604+ then if ((cV.caller == this))
527605 then true
528- else dD
606+ else ev
529607 else throw("Match error")
530608 }
531609
532610
533-@Callable(cQ)
534-func setManager (dF) = {
535- let dG = dC(cQ)
536- if ((dG == dG))
611+@Callable(cV)
612+func setManager (ex) = {
613+ let ey = eu(cV)
614+ if ((ey == ey))
537615 then {
538- let dH = fromBase58String(dF)
539- if ((dH == dH))
540- then [StringEntry(Q(), dF)]
616+ let ez = fromBase58String(ex)
617+ if ((ez == ez))
618+ then [StringEntry(Q(), ex)]
541619 else throw("Strict value is not equal to itself.")
542620 }
543621 else throw("Strict value is not equal to itself.")
545623
546624
547625
548-@Callable(cQ)
626+@Callable(cV)
549627 func confirmManager () = {
550- let dI = dB()
551- let dJ = if (isDefined(dI))
628+ let eA = et()
629+ let eB = if (isDefined(eA))
552630 then true
553631 else throw("No pending manager")
554- if ((dJ == dJ))
632+ if ((eB == eB))
555633 then {
556- let dK = if ((cQ.callerPublicKey == value(dI)))
634+ let eC = if ((cV.callerPublicKey == value(eA)))
557635 then true
558636 else throw("You are not pending manager")
559- if ((dK == dK))
560- then [StringEntry(P(), toBase58String(value(dI))), DeleteEntry(Q())]
637+ if ((eC == eC))
638+ then [StringEntry(P(), toBase58String(value(eA))), DeleteEntry(Q())]
561639 else throw("Strict value is not equal to itself.")
562640 }
563641 else throw("Strict value is not equal to itself.")
565643
566644
567645
568-@Callable(cQ)
569-func put (bV,dL) = if ((0 > bV))
646+@Callable(cV)
647+func put (ca,eD) = if ((0 > ca))
570648 then throw("Invalid slippageTolerance passed")
571649 else {
572- let cW = cT(cQ, bV, true)
573- let cx = cW._2
574- let bC = cW._7
575- let bT = cW._9
576- let cy = cW._10
577- let cz = cW._11
578- let dM = cW._12
579- let dN = cW._13
580- let cZ = invoke(ay, "emit", [cx], nil)
581- if ((cZ == cZ))
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))
582660 then {
583- let da = {
584- let db = cZ
585- if ($isInstanceOf(db, "Address"))
661+ let df = {
662+ let dg = de
663+ if ($isInstanceOf(dg, "Address"))
586664 then {
587- let dc = db
588- invoke(dc, "emit", [cx], nil)
665+ let dh = dg
666+ invoke(dh, "emit", [cC], nil)
589667 }
590668 else unit
591669 }
592- if ((da == da))
670+ if ((df == df))
593671 then {
594- let dO = if ((cy > 0))
595- then invoke(aL, "put", nil, [AttachedPayment(dM, cy)])
672+ let eG = if ((cD > 0))
673+ then invoke(aQ, "put", nil, [AttachedPayment(eE, cD)])
596674 else nil
597- if ((dO == dO))
675+ if ((eG == eG))
598676 then {
599- let dP = if ((cz > 0))
600- then invoke(aL, "put", nil, [AttachedPayment(dN, cz)])
677+ let eH = if ((cE > 0))
678+ then invoke(aQ, "put", nil, [AttachedPayment(eF, cE)])
601679 else nil
602- if ((dP == dP))
680+ if ((eH == eH))
603681 then {
604- let dQ = if (dL)
682+ let eI = if (eD)
605683 then {
606- let dR = invoke(aK, "stake", nil, [AttachedPayment(bC, cx)])
607- if ((dR == dR))
684+ let eJ = invoke(aP, "stake", nil, [AttachedPayment(bH, cC)])
685+ if ((eJ == eJ))
608686 then nil
609687 else throw("Strict value is not equal to itself.")
610688 }
611- else [ScriptTransfer(cQ.caller, cx, bC)]
612- (bT ++ dQ)
689+ else [ScriptTransfer(cV.caller, cC, bH)]
690+ (bY ++ eI)
613691 }
614692 else throw("Strict value is not equal to itself.")
615693 }
622700
623701
624702
625-@Callable(cQ)
626-func putForFree (dS) = if ((0 > dS))
703+@Callable(cV)
704+func putForFree (eK) = if ((0 > eK))
627705 then throw("Invalid value passed")
628706 else {
629- let cW = cT(cQ, dS, false)
630- cW._9
707+ let db = cY(cV, eK, false)
708+ db._9
631709 }
632710
633711
634712
635-@Callable(cQ)
636-func putOneTkn (dT,dU) = {
637- let dV = aH(aB())
638- let di = dV._1
639- let bF = dV._2
640- let bC = dV._3
641- let dj = dV._4
642- let cE = dV._5
643- let dk = dV._6
644- let dl = dV._7
645- let dW = if (if (az())
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())
646724 then true
647- else (bF == l))
725+ else (bK == l))
648726 then true
649- else (bF == n)
650- let dx = [if (!(dW))
727+ else (bK == n)
728+ let dY = [if (!(eO))
651729 then true
652- else aw("put operation is blocked by admin"), if ((size(cQ.payments) == 1))
730+ else aA("put operation is blocked by admin"), if ((size(cV.payments) == 1))
653731 then true
654- else aw("exactly 1 payment are expected")]
655- if ((dx == dx))
732+ else aA("exactly 1 payment are expected")]
733+ if ((dY == dY))
656734 then {
657- let dX = cQ.payments[0]
658- let df = dX.assetId
659- let de = dX.amount
660- let dm = de
661- let W = cQ.caller
662- let X = cQ.transactionId
663- let dY = {
664- let dZ = dd(de, df, W, X)
665- if (if ((dT > 0))
666- then (dT > dZ)
667- else false)
668- then throw(makeString(["amount to receive is less than ", toString(dT)], ""))
669- else dZ
670- }
671- let cZ = cX(dY)
672- if ((cZ == cZ))
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)
748+ 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))
673753 then {
674- let dQ = if (dU)
754+ let eI = if (eM)
675755 then {
676- let ea = invoke(aK, "stake", nil, [AttachedPayment(bC, dY)])
677- if ((ea == ea))
756+ let eT = invoke(aP, "stake", nil, [AttachedPayment(bH, eS)])
757+ if ((eT == eT))
678758 then nil
679759 else throw("Strict value is not equal to itself.")
680760 }
681- else [ScriptTransfer(cQ.caller, dY, bC)]
682- $Tuple2(dQ, dY)
761+ else [ScriptTransfer(cV.caller, eS, bH)]
762+ let eU = if ((dj > 0))
763+ then [ScriptTransfer(aD, dj, dm)]
764+ else nil
765+ $Tuple2(((cF ++ eI) ++ eU), eS)
683766 }
684767 else throw("Strict value is not equal to itself.")
685768 }
688771
689772
690773
691-@Callable(cQ)
692-func getOneTkn (dv,dT,eb) = {
693- let ec = aH(aB())
694- let di = ec._1
695- let bF = ec._2
696- let bC = ec._3
697- let dj = ec._4
698- let cE = ec._5
699- let dk = ec._6
700- let dl = ec._7
701- let ed = if (az())
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())
702785 then true
703- else (bF == n)
704- let dx = [if (!(ed))
786+ else (bK == n)
787+ let dY = [if (!(eX))
705788 then true
706- else aw("get operation is blocked by admin"), if ((size(cQ.payments) == 1))
789+ else aA("get operation is blocked by admin"), if ((size(cV.payments) == 1))
707790 then true
708- else aw("exactly 1 payment are expected")]
709- if ((dx == dx))
791+ else aA("exactly 1 payment are expected")]
792+ if ((dY == dY))
710793 then {
711- let dX = cQ.payments[0]
712- let df = dX.assetId
713- let dm = dX.amount
714- let W = cQ.caller
715- let X = cQ.transactionId
716- let cY = {
717- let ee = du(aE(dv), dm, df, W, X)
718- if (if ((dT > 0))
719- then (dT > ee)
720- else false)
721- then throw(makeString(["amount to receive is less than ", toString(dT)], ""))
722- else ee
723- }
724- let ef = invoke(ay, "burn", [dm], [AttachedPayment(df, dm)])
725- if ((ef == ef))
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)
806+ 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))
726811 then {
727- let eg = [ScriptTransfer(W, cY, aE(dv))]
728- $Tuple2(eg, cY)
812+ let fb = [ScriptTransfer(W, dd, aJ(dU))]
813+ $Tuple2(fb, dd)
729814 }
730815 else throw("Strict value is not equal to itself.")
731816 }
734819
735820
736821
737-@Callable(cQ)
822+@Callable(cV)
738823 func get () = {
739- let cl = cP(cQ)
740- let eh = cl._1
741- let bS = cl._2
742- let cS = cl._3
743- let bA = cl._4
744- let bT = cl._5
745- let ei = invoke(ay, "burn", [cS], [AttachedPayment(bA, cS)])
746- if ((ei == ei))
747- then bT
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
748833 else throw("Strict value is not equal to itself.")
749834 }
750835
751836
752837
753-@Callable(cQ)
754-func getNoLess (ej,ek) = {
755- let cl = cP(cQ)
756- let bR = cl._1
757- let bS = cl._2
758- let cS = cl._3
759- let bA = cl._4
760- let bT = cl._5
761- if ((ej > bR))
762- then throw(((("noLessThenAmtAsset failed: " + toString(bR)) + " < ") + toString(ej)))
763- else if ((ek > bS))
764- then throw(((("noLessThenPriceAsset failed: " + toString(bS)) + " < ") + toString(ek)))
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)))
765850 else {
766- let ei = invoke(ay, "burn", [cS], [AttachedPayment(bA, cS)])
767- if ((ei == ei))
768- then bT
851+ let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
852+ if ((fd == fd))
853+ then bY
769854 else throw("Strict value is not equal to itself.")
770855 }
771856 }
772857
773858
774859
775-@Callable(cQ)
776-func unstakeAndGet (cY) = {
777- let el = if ((size(cQ.payments) != 0))
860+@Callable(cV)
861+func unstakeAndGet (dd) = {
862+ let fg = if ((size(cV.payments) != 0))
778863 then throw("No payments are expected")
779864 else true
780- if ((el == el))
865+ if ((fg == fg))
781866 then {
782- let bp = aB()
783- let bC = fromBase58String(bp[q])
784- let em = invoke(aK, "unstake", [toBase58String(bC), cY], nil)
785- if ((em == em))
867+ let bu = aG()
868+ let bH = fromBase58String(bu[q])
869+ let fh = invoke(aP, "unstake", [toBase58String(bH), dd], nil)
870+ if ((fh == fh))
786871 then {
787- let cl = by(toBase58String(cQ.transactionId), toBase58String(bC), cY, cQ.caller)
788- let bF = parseIntValue(cl._9)
789- let bT = cl._10
790- let en = if (if (az())
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())
791876 then true
792- else (bF == n))
793- then throw(("Get operation is blocked by admin. Status = " + toString(bF)))
877+ else (bK == n))
878+ then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
794879 else true
795- if ((en == en))
880+ if ((fi == fi))
796881 then {
797- let ei = invoke(ay, "burn", [cY], [AttachedPayment(bC, cY)])
798- if ((ei == ei))
799- then bT
882+ let fd = invoke(aC, "burn", [dd], [AttachedPayment(bH, dd)])
883+ if ((fd == fd))
884+ then bY
800885 else throw("Strict value is not equal to itself.")
801886 }
802887 else throw("Strict value is not equal to itself.")
808893
809894
810895
811-@Callable(cQ)
812-func activate (eo,ep) = if ((toString(cQ.caller) != toString(ay)))
896+@Callable(cV)
897+func activate (fj,fk) = if ((toString(cV.caller) != toString(aC)))
813898 then throw("permissions denied")
814- else $Tuple2([StringEntry(Z(), eo), StringEntry(aa(), ep)], "success")
899+ else $Tuple2([StringEntry(Z(), fj), StringEntry(aa(), fk)], "success")
815900
816901
817902
818-@Callable(cQ)
819-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
903+@Callable(cV)
904+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
820905
821906
822907
823-@Callable(cQ)
824-func getAccBalanceWrapperREADONLY (bc) = $Tuple2(nil, bb(bc))
908+@Callable(cV)
909+func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
825910
826911
827912
828-@Callable(cQ)
829-func calcPricesWrapperREADONLY (bj,bk,bo) = {
830- let bx = bn(bj, bk, bo)
831- $Tuple2(nil, [toString(bx[0]), toString(bx[1]), toString(bx[2])])
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])])
832917 }
833918
834919
835920
836-@Callable(cQ)
921+@Callable(cV)
837922 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
838923
839924
840925
841-@Callable(cQ)
926+@Callable(cV)
842927 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
843928
844929
845930
846-@Callable(cQ)
847-func calcPriceBigIntWrapperREADONLY (be,bf) = $Tuple2(nil, toString(bd(parseBigIntValue(be), parseBigIntValue(bf))))
931+@Callable(cV)
932+func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
848933
849934
850935
851-@Callable(cQ)
852-func estimatePutOperationWrapperREADONLY (bz,bV,bW,bX,bY,bZ,W,ca,cb) = $Tuple2(nil, bU(bz, bV, bW, bX, bY, bZ, W, ca, cb))
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))
853938
854939
855940
856-@Callable(cQ)
857-func estimateGetOperationWrapperREADONLY (bz,bA,bB,W) = {
858- let cl = by(bz, bA, bB, addressFromStringValue(W))
859- $Tuple2(nil, $Tuple10(cl._1, cl._2, cl._3, cl._4, cl._5, cl._6, cl._7, toString(cl._8), cl._9, cl._10))
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))
860945 }
861946
862947
863948
864-@Callable(cQ)
949+@Callable(cV)
865950 func statsREADONLY () = {
866- let bp = aB()
867- let bC = fromBase58String(bp[q])
868- let cD = bp[r]
869- let cE = bp[s]
870- let ce = bp[v]
871- let cf = bp[w]
872- let bq = parseIntValue(bp[t])
873- let br = parseIntValue(bp[u])
874- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
875- let cF = bb(cD)
876- let cG = bb(cE)
877- let er = if ((eq == 0))
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))
878963 then [e, e, e]
879- else bn(cF, cG, eq)
880- let bM = 0
881- let es = G(er[1], b)
882- let et = G(er[2], b)
883- let eu = value(getInteger(ay, al(toString(this))))
884- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cF), toString(cG), toString(eq), toString(bM), toString(es), toString(et), toString(eu)], j))
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))
885970 }
886971
887972
888973
889-@Callable(cQ)
890-func evaluatePutByAmountAssetREADONLY (bW) = {
891- let bp = aB()
892- let bC = fromBase58String(bp[q])
893- let cc = bp[r]
894- let bD = fromBase58String(cc)
895- let cd = bp[s]
896- let bE = fromBase58String(cd)
897- let bq = parseIntValue(bp[t])
898- let br = parseIntValue(bp[u])
899- let bF = bp[p]
900- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
901- let cF = bb(cc)
902- let cG = bb(cd)
903- let bl = D(cF, bq)
904- let bm = D(cG, br)
905- let bL = if ((eq == 0))
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))
906991 then e
907- else bd(bm, bl)
908- let ci = D(bW, bq)
909- let cj = fraction(ci, bL, d)
910- let bY = G(cj, br)
911- let cW = bU("", 500000, bW, bD, bY, bE, "", true, false)
912- let ct = cW._1
913- let ev = cW._3
914- let bH = cW._4
915- let bJ = cW._5
916- let bG = cW._6
917- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ct), toString(G(bL, b)), toString(bH), toString(bJ), toString(bG), bF, toString(bW), toString(bY)], j))
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))
9181003 }
9191004
9201005
9211006
922-@Callable(cQ)
923-func evaluatePutByPriceAssetREADONLY (bY) = {
924- let bp = aB()
925- let bC = fromBase58String(bp[q])
926- let cc = bp[r]
927- let bD = fromBase58String(cc)
928- let cd = bp[s]
929- let bE = fromBase58String(cd)
930- let bq = parseIntValue(bp[t])
931- let br = parseIntValue(bp[u])
932- let bF = bp[p]
933- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
934- let ew = bb(cc)
935- let ex = bb(cd)
936- let ey = D(ew, bq)
937- let ez = D(ex, br)
938- let bL = if ((eq == 0))
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))
9391024 then e
940- else bd(ez, ey)
941- let cj = D(bY, br)
942- let ci = fraction(cj, d, bL)
943- let bW = G(ci, bq)
944- let cW = bU("", 500000, bW, bD, bY, bE, "", true, false)
945- let ct = cW._1
946- let ev = cW._3
947- let bH = cW._4
948- let bJ = cW._5
949- let bG = cW._6
950- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ct), toString(G(bL, b)), toString(bH), toString(bJ), toString(bG), bF, toString(bW), toString(bY)], j))
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))
9511036 }
9521037
9531038
9541039
955-@Callable(cQ)
956-func evaluateGetREADONLY (eA,eB) = {
957- let cl = by("", eA, eB, this)
958- let bR = cl._1
959- let bS = cl._2
960- let bH = cl._5
961- let bJ = cl._6
962- let bG = cl._7
963- let bM = cl._8
964- let bF = parseIntValue(cl._9)
965- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bR), toString(bS), toString(bH), toString(bJ), toString(bG), toString(bM), toString(bF)], j))
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))
9661051 }
9671052
9681053
969-@Verifier(eC)
970-func eD () = {
971- let eE = {
972- let db = dz()
973- if ($isInstanceOf(db, "ByteVector"))
1054+@Verifier(fx)
1055+func fy () = {
1056+ let fz = {
1057+ let dg = er()
1058+ if ($isInstanceOf(dg, "ByteVector"))
9741059 then {
975- let dE = db
976- dE
1060+ let ew = dg
1061+ ew
9771062 }
978- else if ($isInstanceOf(db, "Unit"))
979- then eC.senderPublicKey
1063+ else if ($isInstanceOf(dg, "Unit"))
1064+ then fx.senderPublicKey
9801065 else throw("Match error")
9811066 }
982- let db = eC
983- if ($isInstanceOf(db, "Order"))
1067+ let dg = fx
1068+ if ($isInstanceOf(dg, "Order"))
9841069 then {
985- let cC = db
986- let eF = aA()
987- let ap = cB(cC)
988- let aq = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
989- let ar = sigVerify(cC.bodyBytes, cC.proofs[1], eF)
990- if (if (if (ap)
991- then aq
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)
1075+ if (if (if (at)
1076+ then au
9921077 else false)
993- then ar
1078+ then av
9941079 else false)
9951080 then true
996- else ao(ap, aq, ar)
1081+ else as(at, au, av)
9971082 }
998- else if ($isInstanceOf(db, "SetScriptTransaction"))
1083+ else if ($isInstanceOf(dg, "SetScriptTransaction"))
9991084 then {
1000- let dA = db
1001- let eG = blake2b256(value(dA.script))
1002- let eH = fromBase64String(value(getString(ay, an())))
1003- let eI = scriptHash(this)
1004- if (if ((eH == eG))
1005- then (eI != eG)
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)
10061091 else false)
10071092 then true
1008- else sigVerify(eC.bodyBytes, eC.proofs[0], eE)
1093+ else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
10091094 }
1010- else sigVerify(eC.bodyBytes, eC.proofs[0], eE)
1095+ else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
10111096 }
10121097
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(1)
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
103-func ab () = "%s__factoryConfig"
103+let ab = "%s__fee"
104+
105+let ac = fraction(5, b, 10000)
106+
107+let ad = valueOrElse(getInteger(this, ab), ac)
108+
109+func ae () = "%s__factoryConfig"
104110
105111
106-func ac () = "%s%s__matcher__publicKey"
112+func af () = "%s%s__matcher__publicKey"
107113
108114
109-func ad (ae) = (("%s%s%s__" + ae) + "__mappings__poolContract2LpAsset")
115+func ag (ah) = (("%s%s%s__" + ah) + "__mappings__poolContract2LpAsset")
110116
111117
112-func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
118+func ai (aj,ak) = (((("%d%d%s__" + aj) + "__") + ak) + "__config")
113119
114120
115-func ai (aj) = ("%s%s%s__mappings__baseAsset2internalId__" + aj)
121+func al (am) = ("%s%s%s__mappings__baseAsset2internalId__" + am)
116122
117123
118-func ak () = "%s__shutdown"
124+func an () = "%s__shutdown"
119125
120126
121-func al (am) = ("%s%s__poolWeight__" + am)
127+func ao (ap) = ("%s%s__poolWeight__" + ap)
122128
123129
124-func an () = "%s__allowedLpScriptHash"
130+func aq () = "%s__allowedLpScriptHash"
125131
126132
127-func ao (ap,aq,ar) = throw(((((("order validation failed: orderValid=" + toString(ap)) + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
133+let ar = "%s__feeCollectorAddress"
134+
135+func as (at,au,av) = throw(((((("order validation failed: orderValid=" + toString(at)) + " senderValid=") + toString(au)) + " matcherValid=") + toString(av)))
128136
129137
130-func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
138+func aw (ax,ay) = valueOrErrorMessage(getString(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
131139
132140
133-func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
141+func az (ax,ay) = valueOrErrorMessage(getInteger(ax, ay), makeString(["mandatory ", toString(ax), ".", ay, " is not defined"], ""))
134142
135143
136-func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
144+func aA (aB) = throw(makeString(["lp.ride:", aB], " "))
137145
138146
139-let ay = addressFromStringValue(as(this, O()))
147+let aC = addressFromStringValue(aw(this, O()))
140148
141-func az () = valueOrElse(getBoolean(ay, ak()), false)
149+let aD = addressFromStringValue(aw(aC, ar))
150+
151+func aE () = valueOrElse(getBoolean(aC, an()), false)
142152
143153
144-func aA () = fromBase58String(as(ay, ac()))
154+func aF () = fromBase58String(aw(aC, af()))
145155
146156
147-func aB () = {
148- let aC = as(this, Z())
149- let aD = as(this, aa())
150- let ah = av(ay, ai(aD))
151- let ag = av(ay, ai(aC))
152- split(as(ay, af(toString(ag), toString(ah))), j)
157+func aG () = {
158+ let aH = aw(this, Z())
159+ let aI = aw(this, aa())
160+ let ak = az(aC, al(aI))
161+ let aj = az(aC, al(aH))
162+ split(aw(aC, ai(toString(aj), toString(ak))), j)
153163 }
154164
155165
156-func aE (aF) = if ((aF == i))
166+func aJ (aK) = if ((aK == i))
157167 then unit
158- else fromBase58String(aF)
168+ else fromBase58String(aK)
159169
160170
161-func aG (aF) = if ((aF == unit))
171+func aL (aK) = if ((aK == unit))
162172 then i
163- else toBase58String(value(aF))
173+ else toBase58String(value(aK))
164174
165175
166-func aH (aI) = $Tuple7(addressFromStringValue(aI[o]), parseIntValue(aI[p]), fromBase58String(aI[q]), aE(aI[r]), aE(aI[s]), parseIntValue(aI[t]), parseIntValue(aI[u]))
176+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]))
167177
168178
169-func aJ () = split(as(ay, ab()), j)
179+func aO () = split(aw(aC, ae()), j)
170180
171181
172-let aK = valueOrErrorMessage(addressFromString(aJ()[B]), "incorrect staking address")
182+let aP = valueOrErrorMessage(addressFromString(aO()[B]), "incorrect staking address")
173183
174-let aL = valueOrErrorMessage(addressFromString(aJ()[C]), "incorrect staking address")
184+let aQ = valueOrErrorMessage(addressFromString(aO()[C]), "incorrect staking address")
175185
176-func aM (aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV), toString(aW)], j)
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)
177187
178188
179-func aX (aY,aZ,ba,aQ,aT,aU) = makeString(["%d%d%d%d%d%d", toString(aY), toString(aZ), toString(ba), toString(aQ), toString(aT), toString(aU)], j)
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)
180190
181191
182-func bb (bc) = if ((bc == "WAVES"))
192+func bg (bh) = if ((bh == "WAVES"))
183193 then wavesBalance(this).available
184- else assetBalance(this, fromBase58String(bc))
194+ else assetBalance(this, fromBase58String(bh))
185195
186196
187-func bd (be,bf) = fraction(be, d, bf)
197+func bi (bj,bk) = fraction(bj, d, bk)
188198
189199
190-func bg (bh,bi,bj,bk) = {
191- let bl = D(bj, bh)
192- let bm = D(bk, bi)
193- bd(bm, bl)
200+func bl (bm,bn,bo,bp) = {
201+ let bq = D(bo, bm)
202+ let br = D(bp, bn)
203+ bi(br, bq)
194204 }
195205
196206
197-func bn (bj,bk,bo) = {
198- let bp = aB()
199- let bq = parseIntValue(bp[t])
200- let br = parseIntValue(bp[u])
201- let bs = bg(bq, br, bj, bk)
202- let bf = D(bj, bq)
203- let be = D(bk, br)
204- let bt = D(bo, b)
205- let bu = bd(bf, bt)
206- let bv = bd(be, bt)
207-[bs, bu, bv]
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]
208218 }
209219
210220
211-func bw (bj,bk,bo) = {
212- let bx = bn(bj, bk, bo)
213-[G(bx[0], b), G(bx[1], b), G(bx[2], b)]
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)]
214224 }
215225
216226
217-func by (bz,bA,bB,W) = {
218- let bp = aB()
219- let bC = bp[q]
220- let bD = bp[r]
221- let bE = bp[s]
222- let bh = parseIntValue(bp[t])
223- let bi = parseIntValue(bp[u])
224- let bF = bp[p]
225- let bG = valueOrErrorMessage(assetInfo(fromBase58String(bC)), (("Asset " + bC) + " doesn't exist")).quantity
226- if ((bC != bA))
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))
227237 then throw("Invalid asset passed.")
228238 else {
229- let bH = bb(bD)
230- let bI = D(bH, bh)
231- let bJ = bb(bE)
232- let bK = D(bJ, bi)
233- let bL = bd(bK, bI)
234- let bM = G(bL, b)
235- let bN = D(bB, b)
236- let bO = D(bG, b)
237- let bP = fraction(bI, bN, bO)
238- let bQ = fraction(bK, bN, bO)
239- let bR = G(bP, bh)
240- let bS = G(bQ, bi)
241- let bT = if ((bz == ""))
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 == ""))
242252 then nil
243- else [ScriptTransfer(W, bR, if ((bD == "WAVES"))
253+ else [ScriptTransfer(W, bW, if ((bI == "WAVES"))
244254 then unit
245- else fromBase58String(bD)), ScriptTransfer(W, bS, if ((bE == "WAVES"))
255+ else fromBase58String(bI)), ScriptTransfer(W, bX, if ((bJ == "WAVES"))
246256 then unit
247- else fromBase58String(bE)), StringEntry(Y(toString(W), bz), aX(bR, bS, bB, bM, height, lastBlock.timestamp)), IntegerEntry(R(), bM), IntegerEntry(S(height, lastBlock.timestamp), bM)]
248- $Tuple10(bR, bS, bD, bE, bH, bJ, bG, bL, bF, bT)
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)
249259 }
250260 }
251261
252262
253-func bU (bz,bV,bW,bX,bY,bZ,W,ca,cb) = {
254- let bp = aB()
255- let bC = fromBase58String(bp[q])
256- let cc = bp[r]
257- let cd = bp[s]
258- let ce = bp[v]
259- let cf = bp[w]
260- let bq = parseIntValue(bp[t])
261- let br = parseIntValue(bp[u])
262- let bF = bp[p]
263- let bG = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
264- let cg = toBase58String(valueOrElse(bX, fromBase58String("WAVES")))
265- let ch = toBase58String(valueOrElse(bZ, fromBase58String("WAVES")))
266- if (if ((cc != cg))
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))
267277 then true
268- else (cd != ch))
278+ else (ci != cm))
269279 then throw("Invalid amt or price asset passed.")
270280 else {
271- let bH = if (ca)
272- then bb(cc)
273- else (bb(cc) - bW)
274- let bJ = if (ca)
275- then bb(cd)
276- else (bb(cd) - bY)
277- let ci = D(bW, bq)
278- let cj = D(bY, br)
279- let ck = bd(cj, ci)
280- let bI = D(bH, bq)
281- let bK = D(bJ, br)
282- let cl = if ((bG == 0))
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))
283293 then {
284- let bL = e
285- let cm = e
286- let bt = pow((ci * cj), 0, toBigInt(5), 1, 0, DOWN)
287- $Tuple5(G(bt, b), G(ci, bq), G(cj, br), bd((bK + cj), (bI + ci)), cm)
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)
288298 }
289299 else {
290- let bL = bd(bK, bI)
291- let cm = fraction(N((bL - ck)), d, bL)
292- let cn = D(bV, b)
293- if (if ((bL != e))
294- then (cm > cn)
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)
295305 else false)
296- then throw(((("Price slippage " + toString(cm)) + " exceeded the passed limit of ") + toString(cn)))
306+ then throw(((("Price slippage " + toString(cr)) + " exceeded the passed limit of ") + toString(cs)))
297307 else {
298- let bO = D(bG, b)
299- let co = fraction(ci, bL, d)
300- let cp = fraction(cj, d, bL)
301- let cq = if ((co > cj))
302- then $Tuple2(cp, cj)
303- else $Tuple2(ci, co)
304- let cr = cq._1
305- let cs = cq._2
306- let bt = fraction(bO, cs, bK)
307- $Tuple5(G(bt, b), G(cr, bq), G(cs, br), bL, cm)
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)
308318 }
309319 }
310- let ct = cl._1
311- let cu = cl._2
312- let cv = cl._3
313- let bM = G(cl._4, b)
314- let cw = G(cl._5, b)
315- if ((0 >= ct))
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))
316326 then throw("Invalid calculations. LP calculated is less than zero.")
317327 else {
318- let cx = if (!(cb))
328+ let cC = if (!(cg))
319329 then 0
320- else ct
321- let cy = (bW - cu)
322- let cz = (bY - cv)
323- let cA = [IntegerEntry(R(), bM), IntegerEntry(S(height, lastBlock.timestamp), bM), StringEntry(V(W, bz), aM(cu, cv, cx, bM, bV, cw, height, lastBlock.timestamp, cy, cz))]
324- $Tuple13(ct, cx, bM, bH, bJ, bG, bC, bF, cA, cy, cz, bX, bZ)
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)
325335 }
326336 }
327337 }
328338
329339
330-func cB (cC) = {
331- let bp = aB()
332- let cD = bp[r]
333- let cE = bp[s]
334- let bF = parseIntValue(bp[p])
335- let bq = parseIntValue(bp[t])
336- let br = parseIntValue(bp[u])
337- let cF = bb(cD)
338- let cG = bb(cE)
339- let bL = if ((cC.orderType == Buy))
340- then bg(bq, br, (cF + cC.amount), cG)
341- else bg(bq, br, (cF - cC.amount), cG)
342- let bM = G(bL, b)
343- if (if (if (az())
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)
353+ if (if (if (aE())
344354 then true
345- else (bF == m))
355+ else (bK == m))
346356 then true
347- else (bF == n))
357+ else (bK == n))
348358 then throw("Exchange operations disabled")
349359 else {
350- let cH = cC.assetPair.amountAsset
351- let cI = if ((cH == unit))
360+ let cM = cH.assetPair.amountAsset
361+ let cN = if ((cM == unit))
352362 then "WAVES"
353- else toBase58String(value(cH))
354- let cJ = cC.assetPair.priceAsset
355- let cK = if ((cJ == unit))
363+ else toBase58String(value(cM))
364+ let cO = cH.assetPair.priceAsset
365+ let cP = if ((cO == unit))
356366 then "WAVES"
357- else toBase58String(value(cJ))
358- if (if ((cI != cD))
367+ else toBase58String(value(cO))
368+ if (if ((cN != cI))
359369 then true
360- else (cK != cE))
370+ else (cP != cJ))
361371 then throw("Wrong order assets.")
362372 else {
363- let cL = cC.price
364- let cM = fraction(b, br, bq)
365- let cN = J(cL, b, cM)
366- let cO = if ((cC.orderType == Buy))
367- then (bM >= cN)
368- else (cN >= bM)
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)
369379 true
370380 }
371381 }
372382 }
373383
374384
375-func cP (cQ) = if ((size(cQ.payments) != 1))
385+func cU (cV) = if ((size(cV.payments) != 1))
376386 then throw("exactly 1 payment is expected")
377387 else {
378- let cR = value(cQ.payments[0])
379- let bA = value(cR.assetId)
380- let cS = cR.amount
381- let cl = by(toBase58String(cQ.transactionId), toBase58String(bA), cS, cQ.caller)
382- let bR = cl._1
383- let bS = cl._2
384- let bF = parseIntValue(cl._9)
385- let bT = cl._10
386- if (if (az())
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
396+ if (if (aE())
387397 then true
388- else (bF == n))
389- then throw(("Get operation is blocked by admin. Status = " + toString(bF)))
390- else $Tuple5(bR, bS, cS, bA, bT)
398+ else (bK == n))
399+ then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
400+ else $Tuple5(bW, bX, cX, bF, bY)
391401 }
392402
393403
394-func cT (cQ,bV,cb) = if ((size(cQ.payments) != 2))
404+func cY (cV,ca,cg) = if ((size(cV.payments) != 2))
395405 then throw("exactly 2 payments are expected")
396406 else {
397- let cU = value(cQ.payments[0])
398- let cV = value(cQ.payments[1])
399- let cW = bU(toBase58String(cQ.transactionId), bV, cU.amount, cU.assetId, cV.amount, cV.assetId, toString(cQ.caller), false, cb)
400- let bF = parseIntValue(cW._8)
401- if (if (if (az())
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)
411+ if (if (if (aE())
402412 then true
403- else (bF == l))
413+ else (bK == l))
404414 then true
405- else (bF == n))
406- then throw(("Put operation is blocked by admin. Status = " + toString(bF)))
407- else cW
415+ else (bK == n))
416+ then throw(("Put operation is blocked by admin. Status = " + toString(bK)))
417+ else db
408418 }
409419
410420
411-func cX (cY) = {
412- let cZ = invoke(ay, "emit", [cY], nil)
413- if ((cZ == cZ))
421+func dc (dd) = {
422+ let de = invoke(aC, "emit", [dd], nil)
423+ if ((de == de))
414424 then {
415- let da = {
416- let db = cZ
417- if ($isInstanceOf(db, "Address"))
425+ let df = {
426+ let dg = de
427+ if ($isInstanceOf(dg, "Address"))
418428 then {
419- let dc = db
420- invoke(dc, "emit", [cY], nil)
429+ let dh = dg
430+ invoke(dh, "emit", [dd], nil)
421431 }
422432 else unit
423433 }
424- if ((da == da))
425- then cY
434+ if ((df == df))
435+ then dd
426436 else throw("Strict value is not equal to itself.")
427437 }
428438 else throw("Strict value is not equal to itself.")
429439 }
430440
431441
432-func dd (de,df,W,X) = {
433- let dg = (X == unit)
434- let dh = aH(aB())
435- let di = dh._1
436- let bF = dh._2
437- let bC = dh._3
438- let dj = dh._4
439- let cE = dh._5
440- let dk = dh._6
441- let dl = dh._7
442- let dm = de
443- let dn = if ((df == dj))
444- then bb(aG(dj))
445- else if ((df == cE))
446- then bb(aG(cE))
447- else aw("invalid asset")
448- let do = if (dg)
449- then 0
450- else dm
451- let dp = (dn - do)
452- let dq = toBigInt(dp)
453- let dr = toBigInt(valueOrErrorMessage(assetInfo(bC), (("asset " + toBase58String(bC)) + " doesn't exist")).quantity)
454- let ds = toBigInt(dm)
455- let dt = ((dr * (sqrtBigInt((c + ((ds * c) / dq)), 8, 8, DOWN) - c)) / c)
456- toInt(dt)
442+func di (dd) = {
443+ let dj = fraction(dd, ad, b)
444+ $Tuple2((dd - dj), dj)
457445 }
458446
459447
460-func du (dv,dm,df,W,X) = {
461- let dg = (X == unit)
462- let dw = aH(aB())
463- let di = dw._1
464- let bF = dw._2
465- let bC = dw._3
466- let dj = dw._4
467- let cE = dw._5
468- let dk = dw._6
469- let dl = dw._7
470- let dx = [if ((df == bC))
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))
471461 then true
472- else throw("invalid lp asset")]
473- if ((dx == dx))
462+ else if ((dm == cJ))
463+ then false
464+ 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))
491+ then true
492+ else throw("initial deposit requires all coins")
493+ if ((dL == dL))
474494 then {
475- let dq = if ((dv == dj))
476- then toBigInt(bb(aG(dj)))
477- else if ((dv == cE))
478- then toBigInt(bb(aG(cE)))
479- else aw("invalid asset")
480- let dr = toBigInt(valueOrErrorMessage(assetInfo(bC), (("asset " + toBase58String(bC)) + " doesn't exist")).quantity)
481- let dy = toBigInt(dm)
482- let cY = ((dq * (c - pow((c - ((dy * c) / dr)), 8, h, 0, 8, DOWN))) / c)
483- toInt(cY)
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)
498+ 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)
484506 }
485507 else throw("Strict value is not equal to itself.")
486508 }
487509
488510
489-func dz () = {
490- let db = getString(P())
491- if ($isInstanceOf(db, "String"))
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))
522+ then true
523+ else throw("invalid lp asset")]
524+ if ((dY == dY))
492525 then {
493- let dA = db
494- fromBase58String(dA)
526+ let dZ = if ((dU == dq))
527+ then true
528+ else if ((dU == cJ))
529+ then false
530+ 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)
556+ 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)
495562 }
496- else if ($isInstanceOf(db, "Unit"))
563+ else throw("Strict value is not equal to itself.")
564+ }
565+
566+
567+func er () = {
568+ let dg = getString(P())
569+ if ($isInstanceOf(dg, "String"))
570+ then {
571+ let es = dg
572+ fromBase58String(es)
573+ }
574+ else if ($isInstanceOf(dg, "Unit"))
497575 then unit
498576 else throw("Match error")
499577 }
500578
501579
502-func dB () = {
503- let db = getString(Q())
504- if ($isInstanceOf(db, "String"))
580+func et () = {
581+ let dg = getString(Q())
582+ if ($isInstanceOf(dg, "String"))
505583 then {
506- let dA = db
507- fromBase58String(dA)
584+ let es = dg
585+ fromBase58String(es)
508586 }
509- else if ($isInstanceOf(db, "Unit"))
587+ else if ($isInstanceOf(dg, "Unit"))
510588 then unit
511589 else throw("Match error")
512590 }
513591
514592
515-func dC (cQ) = {
516- let dD = throw("Permission denied")
517- let db = dz()
518- if ($isInstanceOf(db, "ByteVector"))
593+func eu (cV) = {
594+ let ev = throw("Permission denied")
595+ let dg = er()
596+ if ($isInstanceOf(dg, "ByteVector"))
519597 then {
520- let dE = db
521- if ((cQ.callerPublicKey == dE))
598+ let ew = dg
599+ if ((cV.callerPublicKey == ew))
522600 then true
523- else dD
601+ else ev
524602 }
525- else if ($isInstanceOf(db, "Unit"))
526- then if ((cQ.caller == this))
603+ else if ($isInstanceOf(dg, "Unit"))
604+ then if ((cV.caller == this))
527605 then true
528- else dD
606+ else ev
529607 else throw("Match error")
530608 }
531609
532610
533-@Callable(cQ)
534-func setManager (dF) = {
535- let dG = dC(cQ)
536- if ((dG == dG))
611+@Callable(cV)
612+func setManager (ex) = {
613+ let ey = eu(cV)
614+ if ((ey == ey))
537615 then {
538- let dH = fromBase58String(dF)
539- if ((dH == dH))
540- then [StringEntry(Q(), dF)]
616+ let ez = fromBase58String(ex)
617+ if ((ez == ez))
618+ then [StringEntry(Q(), ex)]
541619 else throw("Strict value is not equal to itself.")
542620 }
543621 else throw("Strict value is not equal to itself.")
544622 }
545623
546624
547625
548-@Callable(cQ)
626+@Callable(cV)
549627 func confirmManager () = {
550- let dI = dB()
551- let dJ = if (isDefined(dI))
628+ let eA = et()
629+ let eB = if (isDefined(eA))
552630 then true
553631 else throw("No pending manager")
554- if ((dJ == dJ))
632+ if ((eB == eB))
555633 then {
556- let dK = if ((cQ.callerPublicKey == value(dI)))
634+ let eC = if ((cV.callerPublicKey == value(eA)))
557635 then true
558636 else throw("You are not pending manager")
559- if ((dK == dK))
560- then [StringEntry(P(), toBase58String(value(dI))), DeleteEntry(Q())]
637+ if ((eC == eC))
638+ then [StringEntry(P(), toBase58String(value(eA))), DeleteEntry(Q())]
561639 else throw("Strict value is not equal to itself.")
562640 }
563641 else throw("Strict value is not equal to itself.")
564642 }
565643
566644
567645
568-@Callable(cQ)
569-func put (bV,dL) = if ((0 > bV))
646+@Callable(cV)
647+func put (ca,eD) = if ((0 > ca))
570648 then throw("Invalid slippageTolerance passed")
571649 else {
572- let cW = cT(cQ, bV, true)
573- let cx = cW._2
574- let bC = cW._7
575- let bT = cW._9
576- let cy = cW._10
577- let cz = cW._11
578- let dM = cW._12
579- let dN = cW._13
580- let cZ = invoke(ay, "emit", [cx], nil)
581- if ((cZ == cZ))
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))
582660 then {
583- let da = {
584- let db = cZ
585- if ($isInstanceOf(db, "Address"))
661+ let df = {
662+ let dg = de
663+ if ($isInstanceOf(dg, "Address"))
586664 then {
587- let dc = db
588- invoke(dc, "emit", [cx], nil)
665+ let dh = dg
666+ invoke(dh, "emit", [cC], nil)
589667 }
590668 else unit
591669 }
592- if ((da == da))
670+ if ((df == df))
593671 then {
594- let dO = if ((cy > 0))
595- then invoke(aL, "put", nil, [AttachedPayment(dM, cy)])
672+ let eG = if ((cD > 0))
673+ then invoke(aQ, "put", nil, [AttachedPayment(eE, cD)])
596674 else nil
597- if ((dO == dO))
675+ if ((eG == eG))
598676 then {
599- let dP = if ((cz > 0))
600- then invoke(aL, "put", nil, [AttachedPayment(dN, cz)])
677+ let eH = if ((cE > 0))
678+ then invoke(aQ, "put", nil, [AttachedPayment(eF, cE)])
601679 else nil
602- if ((dP == dP))
680+ if ((eH == eH))
603681 then {
604- let dQ = if (dL)
682+ let eI = if (eD)
605683 then {
606- let dR = invoke(aK, "stake", nil, [AttachedPayment(bC, cx)])
607- if ((dR == dR))
684+ let eJ = invoke(aP, "stake", nil, [AttachedPayment(bH, cC)])
685+ if ((eJ == eJ))
608686 then nil
609687 else throw("Strict value is not equal to itself.")
610688 }
611- else [ScriptTransfer(cQ.caller, cx, bC)]
612- (bT ++ dQ)
689+ else [ScriptTransfer(cV.caller, cC, bH)]
690+ (bY ++ eI)
613691 }
614692 else throw("Strict value is not equal to itself.")
615693 }
616694 else throw("Strict value is not equal to itself.")
617695 }
618696 else throw("Strict value is not equal to itself.")
619697 }
620698 else throw("Strict value is not equal to itself.")
621699 }
622700
623701
624702
625-@Callable(cQ)
626-func putForFree (dS) = if ((0 > dS))
703+@Callable(cV)
704+func putForFree (eK) = if ((0 > eK))
627705 then throw("Invalid value passed")
628706 else {
629- let cW = cT(cQ, dS, false)
630- cW._9
707+ let db = cY(cV, eK, false)
708+ db._9
631709 }
632710
633711
634712
635-@Callable(cQ)
636-func putOneTkn (dT,dU) = {
637- let dV = aH(aB())
638- let di = dV._1
639- let bF = dV._2
640- let bC = dV._3
641- let dj = dV._4
642- let cE = dV._5
643- let dk = dV._6
644- let dl = dV._7
645- let dW = if (if (az())
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())
646724 then true
647- else (bF == l))
725+ else (bK == l))
648726 then true
649- else (bF == n)
650- let dx = [if (!(dW))
727+ else (bK == n)
728+ let dY = [if (!(eO))
651729 then true
652- else aw("put operation is blocked by admin"), if ((size(cQ.payments) == 1))
730+ else aA("put operation is blocked by admin"), if ((size(cV.payments) == 1))
653731 then true
654- else aw("exactly 1 payment are expected")]
655- if ((dx == dx))
732+ else aA("exactly 1 payment are expected")]
733+ if ((dY == dY))
656734 then {
657- let dX = cQ.payments[0]
658- let df = dX.assetId
659- let de = dX.amount
660- let dm = de
661- let W = cQ.caller
662- let X = cQ.transactionId
663- let dY = {
664- let dZ = dd(de, df, W, X)
665- if (if ((dT > 0))
666- then (dT > dZ)
667- else false)
668- then throw(makeString(["amount to receive is less than ", toString(dT)], ""))
669- else dZ
670- }
671- let cZ = cX(dY)
672- if ((cZ == cZ))
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)
748+ 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))
673753 then {
674- let dQ = if (dU)
754+ let eI = if (eM)
675755 then {
676- let ea = invoke(aK, "stake", nil, [AttachedPayment(bC, dY)])
677- if ((ea == ea))
756+ let eT = invoke(aP, "stake", nil, [AttachedPayment(bH, eS)])
757+ if ((eT == eT))
678758 then nil
679759 else throw("Strict value is not equal to itself.")
680760 }
681- else [ScriptTransfer(cQ.caller, dY, bC)]
682- $Tuple2(dQ, dY)
761+ else [ScriptTransfer(cV.caller, eS, bH)]
762+ let eU = if ((dj > 0))
763+ then [ScriptTransfer(aD, dj, dm)]
764+ else nil
765+ $Tuple2(((cF ++ eI) ++ eU), eS)
683766 }
684767 else throw("Strict value is not equal to itself.")
685768 }
686769 else throw("Strict value is not equal to itself.")
687770 }
688771
689772
690773
691-@Callable(cQ)
692-func getOneTkn (dv,dT,eb) = {
693- let ec = aH(aB())
694- let di = ec._1
695- let bF = ec._2
696- let bC = ec._3
697- let dj = ec._4
698- let cE = ec._5
699- let dk = ec._6
700- let dl = ec._7
701- let ed = if (az())
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())
702785 then true
703- else (bF == n)
704- let dx = [if (!(ed))
786+ else (bK == n)
787+ let dY = [if (!(eX))
705788 then true
706- else aw("get operation is blocked by admin"), if ((size(cQ.payments) == 1))
789+ else aA("get operation is blocked by admin"), if ((size(cV.payments) == 1))
707790 then true
708- else aw("exactly 1 payment are expected")]
709- if ((dx == dx))
791+ else aA("exactly 1 payment are expected")]
792+ if ((dY == dY))
710793 then {
711- let dX = cQ.payments[0]
712- let df = dX.assetId
713- let dm = dX.amount
714- let W = cQ.caller
715- let X = cQ.transactionId
716- let cY = {
717- let ee = du(aE(dv), dm, df, W, X)
718- if (if ((dT > 0))
719- then (dT > ee)
720- else false)
721- then throw(makeString(["amount to receive is less than ", toString(dT)], ""))
722- else ee
723- }
724- let ef = invoke(ay, "burn", [dm], [AttachedPayment(df, dm)])
725- if ((ef == ef))
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)
806+ 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))
726811 then {
727- let eg = [ScriptTransfer(W, cY, aE(dv))]
728- $Tuple2(eg, cY)
812+ let fb = [ScriptTransfer(W, dd, aJ(dU))]
813+ $Tuple2(fb, dd)
729814 }
730815 else throw("Strict value is not equal to itself.")
731816 }
732817 else throw("Strict value is not equal to itself.")
733818 }
734819
735820
736821
737-@Callable(cQ)
822+@Callable(cV)
738823 func get () = {
739- let cl = cP(cQ)
740- let eh = cl._1
741- let bS = cl._2
742- let cS = cl._3
743- let bA = cl._4
744- let bT = cl._5
745- let ei = invoke(ay, "burn", [cS], [AttachedPayment(bA, cS)])
746- if ((ei == ei))
747- then bT
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
748833 else throw("Strict value is not equal to itself.")
749834 }
750835
751836
752837
753-@Callable(cQ)
754-func getNoLess (ej,ek) = {
755- let cl = cP(cQ)
756- let bR = cl._1
757- let bS = cl._2
758- let cS = cl._3
759- let bA = cl._4
760- let bT = cl._5
761- if ((ej > bR))
762- then throw(((("noLessThenAmtAsset failed: " + toString(bR)) + " < ") + toString(ej)))
763- else if ((ek > bS))
764- then throw(((("noLessThenPriceAsset failed: " + toString(bS)) + " < ") + toString(ek)))
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)))
765850 else {
766- let ei = invoke(ay, "burn", [cS], [AttachedPayment(bA, cS)])
767- if ((ei == ei))
768- then bT
851+ let fd = invoke(aC, "burn", [cX], [AttachedPayment(bF, cX)])
852+ if ((fd == fd))
853+ then bY
769854 else throw("Strict value is not equal to itself.")
770855 }
771856 }
772857
773858
774859
775-@Callable(cQ)
776-func unstakeAndGet (cY) = {
777- let el = if ((size(cQ.payments) != 0))
860+@Callable(cV)
861+func unstakeAndGet (dd) = {
862+ let fg = if ((size(cV.payments) != 0))
778863 then throw("No payments are expected")
779864 else true
780- if ((el == el))
865+ if ((fg == fg))
781866 then {
782- let bp = aB()
783- let bC = fromBase58String(bp[q])
784- let em = invoke(aK, "unstake", [toBase58String(bC), cY], nil)
785- if ((em == em))
867+ let bu = aG()
868+ let bH = fromBase58String(bu[q])
869+ let fh = invoke(aP, "unstake", [toBase58String(bH), dd], nil)
870+ if ((fh == fh))
786871 then {
787- let cl = by(toBase58String(cQ.transactionId), toBase58String(bC), cY, cQ.caller)
788- let bF = parseIntValue(cl._9)
789- let bT = cl._10
790- let en = if (if (az())
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())
791876 then true
792- else (bF == n))
793- then throw(("Get operation is blocked by admin. Status = " + toString(bF)))
877+ else (bK == n))
878+ then throw(("Get operation is blocked by admin. Status = " + toString(bK)))
794879 else true
795- if ((en == en))
880+ if ((fi == fi))
796881 then {
797- let ei = invoke(ay, "burn", [cY], [AttachedPayment(bC, cY)])
798- if ((ei == ei))
799- then bT
882+ let fd = invoke(aC, "burn", [dd], [AttachedPayment(bH, dd)])
883+ if ((fd == fd))
884+ then bY
800885 else throw("Strict value is not equal to itself.")
801886 }
802887 else throw("Strict value is not equal to itself.")
803888 }
804889 else throw("Strict value is not equal to itself.")
805890 }
806891 else throw("Strict value is not equal to itself.")
807892 }
808893
809894
810895
811-@Callable(cQ)
812-func activate (eo,ep) = if ((toString(cQ.caller) != toString(ay)))
896+@Callable(cV)
897+func activate (fj,fk) = if ((toString(cV.caller) != toString(aC)))
813898 then throw("permissions denied")
814- else $Tuple2([StringEntry(Z(), eo), StringEntry(aa(), ep)], "success")
899+ else $Tuple2([StringEntry(Z(), fj), StringEntry(aa(), fk)], "success")
815900
816901
817902
818-@Callable(cQ)
819-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aB())
903+@Callable(cV)
904+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
820905
821906
822907
823-@Callable(cQ)
824-func getAccBalanceWrapperREADONLY (bc) = $Tuple2(nil, bb(bc))
908+@Callable(cV)
909+func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
825910
826911
827912
828-@Callable(cQ)
829-func calcPricesWrapperREADONLY (bj,bk,bo) = {
830- let bx = bn(bj, bk, bo)
831- $Tuple2(nil, [toString(bx[0]), toString(bx[1]), toString(bx[2])])
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])])
832917 }
833918
834919
835920
836-@Callable(cQ)
921+@Callable(cV)
837922 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
838923
839924
840925
841-@Callable(cQ)
926+@Callable(cV)
842927 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
843928
844929
845930
846-@Callable(cQ)
847-func calcPriceBigIntWrapperREADONLY (be,bf) = $Tuple2(nil, toString(bd(parseBigIntValue(be), parseBigIntValue(bf))))
931+@Callable(cV)
932+func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
848933
849934
850935
851-@Callable(cQ)
852-func estimatePutOperationWrapperREADONLY (bz,bV,bW,bX,bY,bZ,W,ca,cb) = $Tuple2(nil, bU(bz, bV, bW, bX, bY, bZ, W, ca, cb))
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))
853938
854939
855940
856-@Callable(cQ)
857-func estimateGetOperationWrapperREADONLY (bz,bA,bB,W) = {
858- let cl = by(bz, bA, bB, addressFromStringValue(W))
859- $Tuple2(nil, $Tuple10(cl._1, cl._2, cl._3, cl._4, cl._5, cl._6, cl._7, toString(cl._8), cl._9, cl._10))
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))
860945 }
861946
862947
863948
864-@Callable(cQ)
949+@Callable(cV)
865950 func statsREADONLY () = {
866- let bp = aB()
867- let bC = fromBase58String(bp[q])
868- let cD = bp[r]
869- let cE = bp[s]
870- let ce = bp[v]
871- let cf = bp[w]
872- let bq = parseIntValue(bp[t])
873- let br = parseIntValue(bp[u])
874- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
875- let cF = bb(cD)
876- let cG = bb(cE)
877- let er = if ((eq == 0))
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))
878963 then [e, e, e]
879- else bn(cF, cG, eq)
880- let bM = 0
881- let es = G(er[1], b)
882- let et = G(er[2], b)
883- let eu = value(getInteger(ay, al(toString(this))))
884- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cF), toString(cG), toString(eq), toString(bM), toString(es), toString(et), toString(eu)], j))
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))
885970 }
886971
887972
888973
889-@Callable(cQ)
890-func evaluatePutByAmountAssetREADONLY (bW) = {
891- let bp = aB()
892- let bC = fromBase58String(bp[q])
893- let cc = bp[r]
894- let bD = fromBase58String(cc)
895- let cd = bp[s]
896- let bE = fromBase58String(cd)
897- let bq = parseIntValue(bp[t])
898- let br = parseIntValue(bp[u])
899- let bF = bp[p]
900- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
901- let cF = bb(cc)
902- let cG = bb(cd)
903- let bl = D(cF, bq)
904- let bm = D(cG, br)
905- let bL = if ((eq == 0))
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))
906991 then e
907- else bd(bm, bl)
908- let ci = D(bW, bq)
909- let cj = fraction(ci, bL, d)
910- let bY = G(cj, br)
911- let cW = bU("", 500000, bW, bD, bY, bE, "", true, false)
912- let ct = cW._1
913- let ev = cW._3
914- let bH = cW._4
915- let bJ = cW._5
916- let bG = cW._6
917- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ct), toString(G(bL, b)), toString(bH), toString(bJ), toString(bG), bF, toString(bW), toString(bY)], j))
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))
9181003 }
9191004
9201005
9211006
922-@Callable(cQ)
923-func evaluatePutByPriceAssetREADONLY (bY) = {
924- let bp = aB()
925- let bC = fromBase58String(bp[q])
926- let cc = bp[r]
927- let bD = fromBase58String(cc)
928- let cd = bp[s]
929- let bE = fromBase58String(cd)
930- let bq = parseIntValue(bp[t])
931- let br = parseIntValue(bp[u])
932- let bF = bp[p]
933- let eq = valueOrErrorMessage(assetInfo(bC), (("Asset " + toBase58String(bC)) + " doesn't exist")).quantity
934- let ew = bb(cc)
935- let ex = bb(cd)
936- let ey = D(ew, bq)
937- let ez = D(ex, br)
938- let bL = if ((eq == 0))
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))
9391024 then e
940- else bd(ez, ey)
941- let cj = D(bY, br)
942- let ci = fraction(cj, d, bL)
943- let bW = G(ci, bq)
944- let cW = bU("", 500000, bW, bD, bY, bE, "", true, false)
945- let ct = cW._1
946- let ev = cW._3
947- let bH = cW._4
948- let bJ = cW._5
949- let bG = cW._6
950- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ct), toString(G(bL, b)), toString(bH), toString(bJ), toString(bG), bF, toString(bW), toString(bY)], j))
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))
9511036 }
9521037
9531038
9541039
955-@Callable(cQ)
956-func evaluateGetREADONLY (eA,eB) = {
957- let cl = by("", eA, eB, this)
958- let bR = cl._1
959- let bS = cl._2
960- let bH = cl._5
961- let bJ = cl._6
962- let bG = cl._7
963- let bM = cl._8
964- let bF = parseIntValue(cl._9)
965- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bR), toString(bS), toString(bH), toString(bJ), toString(bG), toString(bM), toString(bF)], j))
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))
9661051 }
9671052
9681053
969-@Verifier(eC)
970-func eD () = {
971- let eE = {
972- let db = dz()
973- if ($isInstanceOf(db, "ByteVector"))
1054+@Verifier(fx)
1055+func fy () = {
1056+ let fz = {
1057+ let dg = er()
1058+ if ($isInstanceOf(dg, "ByteVector"))
9741059 then {
975- let dE = db
976- dE
1060+ let ew = dg
1061+ ew
9771062 }
978- else if ($isInstanceOf(db, "Unit"))
979- then eC.senderPublicKey
1063+ else if ($isInstanceOf(dg, "Unit"))
1064+ then fx.senderPublicKey
9801065 else throw("Match error")
9811066 }
982- let db = eC
983- if ($isInstanceOf(db, "Order"))
1067+ let dg = fx
1068+ if ($isInstanceOf(dg, "Order"))
9841069 then {
985- let cC = db
986- let eF = aA()
987- let ap = cB(cC)
988- let aq = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
989- let ar = sigVerify(cC.bodyBytes, cC.proofs[1], eF)
990- if (if (if (ap)
991- then aq
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)
1075+ if (if (if (at)
1076+ then au
9921077 else false)
993- then ar
1078+ then av
9941079 else false)
9951080 then true
996- else ao(ap, aq, ar)
1081+ else as(at, au, av)
9971082 }
998- else if ($isInstanceOf(db, "SetScriptTransaction"))
1083+ else if ($isInstanceOf(dg, "SetScriptTransaction"))
9991084 then {
1000- let dA = db
1001- let eG = blake2b256(value(dA.script))
1002- let eH = fromBase64String(value(getString(ay, an())))
1003- let eI = scriptHash(this)
1004- if (if ((eH == eG))
1005- then (eI != eG)
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)
10061091 else false)
10071092 then true
1008- else sigVerify(eC.bodyBytes, eC.proofs[0], eE)
1093+ else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
10091094 }
1010- else sigVerify(eC.bodyBytes, eC.proofs[0], eE)
1095+ else sigVerify(fx.bodyBytes, fx.proofs[0], fz)
10111096 }
10121097

github/deemru/w8io/026f985 
291.79 ms