tx · 617TnknFNAwzizwCivsmUUzV6gsPn5JUdC7pZg7jrRtZ

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02300000 Waves

2023.05.02 09:54 [2559810] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "617TnknFNAwzizwCivsmUUzV6gsPn5JUdC7pZg7jrRtZ", "fee": 2300000, "feeAssetId": null, "timestamp": 1683010485139, "version": 2, "chainId": 84, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "4HjPk7Pdty2C4yTZrQDeACzsmcYfpoAvSAEAuSPLqusyR9sh2D7r2bipLGSTx3wyzsLcURtHgYKGmPGZy8cDADt1" ], "script": "base64:BgLyIAgCEgMKAQgSAwoBCBIECgIICBIJCgcBERERGAgYEgcKBRERERgIEgcKBQEBAQgIEgASAwoBCBIECgIIARIECgIIARIECgIIARIDCgEIEgYKBAgBCAESBQoDARgYEgMKARgiBlNDQUxFOCIFTVVMVDgiB1NDQUxFMTgiBk1VTFQxOCIDU0VQIg5QT09MV0VJR0hUTVVMVCIKemVyb0JpZ0ludCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIg9nZXRTdHJpbmdPckZhaWwiA2tleSIYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsIgdhZGRyZXNzIgxnZXRJbnRPclplcm8iDGdldEludE9yRmFpbCIJYXNBbnlMaXN0IgN2YWwiByRtYXRjaDAiCnZhbEFueUx5c3QiBWFzSW50IgZ2YWxJbnQiCGFzU3RyaW5nIgZ2YWxTdHIiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiDWtleUZhY3RvcnlDZmciGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nIgpscEFzc2V0U3RyIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsIgpyZWFkTHBMaXN0IhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgRmQ2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIhdnZXRNYW5hZ2VyQWRkcmVzc09yRmFpbCILa2V5Qm9vc3RDZmciH2tleUJvb3N0aW5nTG9ja1BhcmFtVG90YWxBbW91bnQiKGtleUJvb3N0aW5nU3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiGmtleUJvb3N0aW5nU3RhdHNMb2Nrc0NvdW50IhprZXlCb29zdGluZ1N0YXRzVXNlcnNDb3VudCISa2V5VXNlcjJOdW1NYXBwaW5nIgt1c2VyQWRkcmVzcyISa2V5TnVtMlVzZXJNYXBwaW5nIgNudW0iFmtleUxvY2tQYXJhbVVzZXJBbW91bnQiB3VzZXJOdW0iFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2siFGtleUxvY2tQYXJhbUR1cmF0aW9uIg1rZXlMb2NrUGFyYW1LIg1rZXlMb2NrUGFyYW1CIhVrZXlMb2NrUGFyYW1CeVBlcmlvZEsiBnBlcmlvZCIVa2V5TG9ja1BhcmFtQnlQZXJpb2RCIiBrZXlVc2VyQm9vc3RFbWlzc2lvbkxhc3RJTlRFR1JBTCIXa2V5VXNlck1heEJvb3N0SU5URUdSQUwiGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTCIha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsIhNrZXlVc2VyQm9vc3RDbGFpbWVkIhFrZXlUb3RhbENhY2hlZEd3eCIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIMbHBBc3NldElkU3RyIg5rZXlTdGFrZWRUb3RhbCIQa2V5Q2xhaW1lZEJ5VXNlciIZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZCIba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgpyZWFkU3Rha2VkIgtzdGFraW5nRGFwcCIea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50IiFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQiFWtleUVtaXNzaW9uU3RhcnRCbG9jayIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIgxrZXlBZGRvbkFkZHIiC2ZhY3RvcnlEYXBwIgpmYWN0b3J5Q2ZnIgxlbWlzc2lvbkRhcHAiDWd3eFJld2FyZERhcHAiDGJvb3N0aW5nRGFwcCIMZ2V0UG9vbEluRmVlIgtwb29sQWRkcmVzcyIBQCINZ2V0UG9vbE91dEZlZSIZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZSIJbHBBc3NldElkIg5wb29sQWRkcmVzc1N0ciIOcG9vbFdlaWdodE11bHQiCnBvb2xXZWlnaHQiEnd4RW1pc3Npb25QZXJCbG9jayIVd3hFbWlzc2lvblBlckJsb2NrTWF4Ig1ib29zdE1heENvZWZmIhZwb29sV3hFbWlzc2lvblBlckJsb2NrIhlwb29sV3hFbWlzc2lvblBlckJsb2NrTWF4IgltYXhGYWN0b3IiDXRvdGFsTHBTdGFrZWQiGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZIgpsb2NrQW1vdW50Igxsb2NrRHVyYXRpb24iD21heExvY2tEdXJhdGlvbiIHY29lZmZYOCIOZ1d4QW1vdW50U3RhcnQiBmdldEtleSIEYWRkciIEdHlwZSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIBcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiDmZhY3RvcnlBZGRyZXNzIgtjaGVja0NhbGxlciIKcmV3YXJkRGF0YSISdm90aW5nUmVzdWx0U3Rha2VkIg5scFN0YWtlZEJ5VXNlciINdXNlckNsYWltSW5mbyINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0IgVkZWJ1ZyINYm9vc3RpbmdQb3dlciILY3VycmVudEl0ZXIiEWRlbHRhV3hBbW91bnRCdWxrIhtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsiEWRlbHRhTHBBbW91bnRCdWxrIhBscEFzc2V0SWRPcHRCdWxrIg51c2VyQWRkcmVzc09wdCIGcmVzQWNjIg1kZWx0YVd4QW1vdW50IhdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcyINZGVsdGFMcEFtb3VudCIMbHBBc3NldElkT3B0IgRpbmZvIgNyZXMiA2ludiIKYm9vc3RDb2VmZiIIbWF0aERhcHAiCEVNUFRZU1RSIhdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcyIKdXNlck51bVN0ciIKdXNlckFtb3VudCIJbG9ja1N0YXJ0Igdsb2NrRW5kIhFyZW1haW5pbmdEdXJhdGlvbiINdXNlckFtb3VudE5ldyIPbG9ja0R1cmF0aW9uTmV3IhF1c2VyQ3VycmdXeEFtb3VudCIRZ1d4QW1vdW50U3RhcnROZXciDnRvdGFsQ2FjaGVkR3d4IgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiD3N0YWtlZEJ5VXNlcktFWSIOc3Rha2VkVG90YWxLRVkiDHN0YWtlZEJ5VXNlciILc3Rha2VkVG90YWwiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyIJd3hQZXJMcFgzIhB1c2VyV3hQZXJCbG9ja1gzIhdib29zdEVtaXNzaW9uUGVyQmxvY2tYMyIWdG1wVXNlckJvb3N0UGVyQmxvY2tYMyITdXNlckJvb3N0UGVyQmxvY2tYMyIOdXNlckJvb3N0Q29lZmYiB09ORU1VTFQiA09ORSISZW1pc3Npb25TdGFydEJsb2NrIgxwYXNzZWRCbG9ja3MiDnRlYW1FbUR1cmF0aW9uIgl0ZWFtRW1NYXgiBnRlYW1FbSIPdG90YWxXeFJlbGVhc2VkIg10b3RhbFd4TG9ja2VkIhhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiCmxvY2tzQ291bnQiB2xwQXNzZXQiBnN0YXR1cyIDdHBsIgNjZmciCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0IghjdXJQcmljZSIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIFaW5GZWUiBm91dEZlZSIecG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1wb29sT25lVG9rZW5PcGVyYXRpb25zRW5hYmxlZCIMaW5BbUFzc2V0QW10IgxhbUFzc2V0SWRTdHIiCWFtQXNzZXRJZCIMcHJBc3NldElkU3RyIglwckFzc2V0SWQiCnBvb2xTdGF0dXMiDmFtdEFzc2V0QW10WDE4IhBwcmljZUFzc2V0QW10WDE4IgtjdXJQcmljZVgxOCIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDGluUHJBc3NldEFtdCINJHQwMjI2ODQyMzAzNyIJY2FsY0xwQW10IgxjdXJQcmljZUNhbGMiCWFtQmFsYW5jZSIJcHJCYWxhbmNlIgpscEVtaXNzaW9uIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiDSR0MDI1NjEwMjU5NjMiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCINJHQwMjY2NTgyNzA3NSIIb3V0QW1BbXQiCG91dFByQW10Ig9nd3hVc2VySW5mb0xJU1QiCWd3eEFtb3VudCINdW5zdGFrZUFtb3VudCIKb3V0QXNzZXRJZCIMbWluT3V0QW1vdW50IgRrZXlzIgFrIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXleAAFhAAgAAWIAgMLXLwABYwASAAFkCQC2AgEAgICQu7rWrfANAAFlAgJfXwABZgUBYgABZwkAtgIBAAAAAWgAAQABaQACAAFqAAMAAWsABAABbAAFAAFtAAYAAW4ABwABbwAIAAFwAAkAAXEACgEBcgEBcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEFAXMJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAXMCDyBpcyBub3QgZGVmaW5lZAEBdAIBdQFzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdQUBcwkArAICCQCsAgIJAKwCAgkArAICAgptYW5kYXRvcnkgCQClCAEFAXUCAS4FAXMCDyBpcyBub3QgZGVmaW5lZAEBdgIBdQFzCQELdmFsdWVPckVsc2UCCQCaCAIFAXUFAXMAAAEBdwIBdQFzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBdQUBcwkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBcwIPIGlzIG5vdCBkZWZpbmVkAQF4AQF5BAF6BQF5AwkAAQIFAXoCCUxpc3RbQW55XQQBQQUBegUBQQkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEBQgEBeQQBegUBeQMJAAECBQF6AgNJbnQEAUMFAXoFAUMJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAUQBAXkEAXoFAXkDCQABAgUBegIGU3RyaW5nBAFFBQF6BQFFCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQFGAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwABRwABAAFIAAIAAUkAAwABSgAEAAFLAAUAAUwABgABTQAHAAFOAAgBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAEBUQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFRCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFSAAIQJXNfX2xwVG9rZW5zTGlzdAEBUwEBUQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFRCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFUAQFVCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgpwb29sV2VpZ2h0CQDMCAIFAVUFA25pbAUBZQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVgACQERQGV4dHJOYXRpdmUoMTA2MikBCQEBcgEJAQFGAAEBWQAJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEBWAAJAQFSAAIABQFlAQFaAQJhYQkAtQkCCQEBdAIFAmFhCQEBTwAFAWUBAmFiAQJhYwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYwUBSAECYWQBAmFjCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFjBQFLAQJhZQECYWMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWMFAUcBAmFmAQJhYwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYwUBTgECYWcACQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQEBVgABAmFoAAIKJXNfX2NvbmZpZwECYWkAAh4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAmFqAAIlJXMlc19fc3RhdHNfX2xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwECYWsAAhclcyVzX19zdGF0c19fbG9ja3NDb3VudAECYWwAAh0lcyVzX19zdGF0c19fYWN0aXZlVXNlcnNDb3VudAECYW0BAmFuCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkAzAgCBQJhbgUDbmlsBQFlAQJhbwECYXAJALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX251bTJ1c2VyCQDMCAIFAmFwBQNuaWwFAWUBAmFxAQJhcgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYXIJAMwIAgIGYW1vdW50BQNuaWwFAWUBAmFzAQJhcgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYXIJAMwIAgIFc3RhcnQFA25pbAUBZQECYXQBAmFyCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhcgkAzAgCAghkdXJhdGlvbgUDbmlsBQFlAQJhdQECYXIJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFyCQDMCAICAWsFA25pbAUBZQECYXYBAmFyCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhcgkAzAgCAgFiBQNuaWwFAWUBAmF3AgJhcgJheAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFyCQDMCAICAWsJAMwIAgUCYXgFA25pbAUBZQECYXkCAmFyAmF4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUCYXIJAMwIAgIBYgkAzAgCBQJheAUDbmlsBQFlAQJhegECYXIJALkJAgkAzAgCAh4lcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnQJAMwIAgUCYXIFA25pbAUBZQECYUEBAmFyCQC5CQIJAMwIAgIRJXMlZF9fbWF4Qm9vc3RJbnQJAMwIAgUCYXIFA25pbAUBZQECYUIAAhglcyVzX19tYXhCb29zdEludF9fdG90YWwBAmFDAQJhcgkAuQkCCQDMCAICJCVzJWRfX3VzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbAkAzAgCBQJhcgUDbmlsBQFlAQJhRAECYXIJALkJAgkAzAgCAhYlcyVkX191c2VyQm9vc3RDbGFpbWVkCQDMCAIFAmFyBQNuaWwFAWUBAmFFAAIWJXMlc19fZ3d4Q2FjaGVkX190b3RhbAECYUYCAmFHAmFICQC5CQIJAMwIAgIOJXMlcyVzX19zdGFrZWQJAMwIAgUCYUcJAMwIAgUCYUgFA25pbAUBZQECYUkBAmFICQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQJhSAECYUoCAmFIAmFHCQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFAmFHCQDMCAIFAmFIBQNuaWwFAWUBAmFLAgJhSAJhRwkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQJhRwkAzAgCBQJhSAUDbmlsBQFlAQJhTAICYUgCYUcJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkAzAgCBQJhRwkAzAgCBQJhSAUDbmlsBQFlAQJhTQICYU4BcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhTgUBcwAAAQJhTwACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYVAAAh4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAmFRAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFSAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhUwACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYVQAAg0lc19fYWRkb25BZGRyAAJhVQkBAVgAAAJhVgkBAVoBBQJhVQACYVcJAQJhZAEFAmFWAAJhTgkBAmFlAQUCYVYAAmFYCQECYWYBBQJhVgACYVkJAQJhYgEFAmFWAQJhWgECYmEKAAJiYgkA/AcEBQJhVQIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFAmJhBQNuaWwFA25pbAMJAAECBQJiYgIDSW50BQJiYgkAAgEJAKwCAgkAAwEFAmJiAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmJjAQJiYQoAAmJiCQD8BwQFAmFVAhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFAmJhBQNuaWwFA25pbAMJAAECBQJiYgIDSW50BQJiYgkAAgEJAKwCAgkAAwEFAmJiAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmJkAQJiZQQCYmYJAQF0AgUCYVUJAQFTAQUCYmUEAmJnBQFiBAJiaAkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVUJAQFUAQUCYmYEAmJpCQEBdwIFAmFXCQECYU8ABAJiagkBAXcCBQJhVwkBAmFQAAQCYmsKAAJiYgkA/AcEBQJhVwIVZ2V0Qm9vc3RDb2VmZlJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiYgIDSW50BQJiYgkAAgEJAKwCAgkAAwEFAmJiAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmJsCQBpAgkAawMFAmJpBQJiaAUCYmcFAmJrBAJibQkAawMFAmJqBQJiaAUCYmcEAmJuCQBoAgUCYmsFAWIEAmJvCQEBdgIFAmFOCQECYUkBBQJiZQkAzAgCBQJibAkAzAgCBQJibgkAzAgCBQJibwUDbmlsAQJicAMCYnECYnICYnMEAmJ0CQBrAwUCYnIFAWIFAmJzBAJidQkAawMFAmJxBQJidAUBYgkAzAgCBQJidQUDbmlsAQJidgMCYncBcwJieAMJAAACBQJieAIGc3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQJidwUBcwMJAAACBQJieAIHaW50ZWdlcgkApAMBCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJidwUBcwMJAAACBQJieAIHYm9vbGVhbgkApQMBCQERQGV4dHJOYXRpdmUoMTA1MSkCBQJidwUBcwkAAgECLXVua25vd24gdHlwZS4gZXhwZWN0ZWQgc3RyaW5nL2ludGVnZXIvYm9vbGVhbgECYnkABAJiegkBAmFnAAQBegkAnQgCBQJiegkBAVcAAwkAAQIFAXoCBlN0cmluZwQCYkEFAXoJANkEAQUCYkEDCQABAgUBegIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJiQgECYkMEAXoJAQJieQADCQABAgUBegIKQnl0ZVZlY3RvcgQCYkQFAXoJAAACCAUCYkMPY2FsbGVyUHVibGljS2V5BQJiRAMJAAECBQF6AgRVbml0CQAAAggFAmJDBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJiRQECYkMDCQECYkIBBQJiQwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZA8CYkMBC2NvbnN0cnVjdG9yAQJiRgQCYkcJAQJiRQEFAmJDAwkAAAIFAmJHBQJiRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBRgAFAmJGBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkMBGWN1cnJlbnRSZXdhcmRSYXRlUkVBRE9OTFkBAmJlBAJiSAkBAmJkAQUCYmUEAmJpCQCRAwIFAmJIAAAEAmJuCQCRAwIFAmJIAAEEAmJvCQCRAwIFAmJIAAIEAmJJCgACYmIJAPwHBAUCYVkCHWdldFZvdGluZ1Jlc3VsdFN0YWtlZFJFQURPTkxZCQDMCAIFAmJlBQNuaWwFA25pbAMJAAECBQJiYgIDSW50BQJiYgkAAgEJAKwCAgkAAwEFAmJiAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQJiaQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYm8JAMwIAgkApAMBBQJiSQUDbmlsBQFlAmJDAR1jdXJyZW50VXNlclJld2FyZFJhdGVSRUFET05MWQICYmUCYW4EAmJICQECYmQBBQJiZQQCYmkJAJEDAgUCYkgAAAQCYm4JAJEDAgUCYkgAAQQCYm8JAJEDAgUCYkgAAgQCYkoJAQF2AgUCYU4JAQJhRgIFAmFuBQJiZQQCYksJALUJAgkBAUQBCQD8BwQFAmFOAg9jbGFpbVd4UkVBRE9OTFkJAMwIAgUCYmUJAMwIAgUCYW4FA25pbAUDbmlsBQFlBAJiTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYksABQIcY291bGRuJ3QgcGFyc2UgbWluUmV3YXJkUGFydAQCYk0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFAmJLAAYCHmNvdWxkbid0IHBhcnNlIGJvb3N0UmV3YXJkUGFydAQCYk4JAJEDAgUCYksABwQCYk8DCQAAAgUCYk0AAAkAaAIAAQUBYgkAawMJAGQCBQJiTAUCYk0FAWIFAmJMCQCUCgIFA25pbAkAuQkCCQDMCAICDCVkJWQlZCVkJWQlcwkAzAgCCQCkAwEFAmJpCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYk8JAMwIAgUCYk4FA25pbAUBZQJiQwEdY2FsY0Jvb3N0QnVsa0ludGVybmFsUkVBRE9OTFkHAmJQAmJRAmJSAmJTAmJUAmJVAmJWAwkAAAIFAmJQCQCQAwEFAmJRCQCUCgIFA25pbAUCYlYEAmJXCQCRAwIFAmJRBQJiUAQCYlgJAJEDAgUCYlIFAmJQBAJiWQkAkQMCBQJiUwUCYlAEAmJaCQCRAwIFAmJUBQJiUAQCY2EKAAJiYgkA/AcEBQR0aGlzAhFjYWxjQm9vc3RSRUFET05MWQkAzAgCBQJiVwkAzAgCBQJiWAkAzAgCBQJiWQkAzAgCBQJiWgkAzAgCBQJiVQUDbmlsBQNuaWwDCQABAgUCYmICBlN0cmluZwUCYmIJAAIBCQCsAgIJAAMBBQJiYgIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJjYgkAzQgCBQJiVgUCY2EEAmNjCgACYmIJAPwHBAUEdGhpcwIdY2FsY0Jvb3N0QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmJQAAEJAMwIAgUCYlEJAMwIAgUCYlIJAMwIAgUCYlMJAMwIAgUCYlQJAMwIAgUCYlUJAMwIAgUCY2IFA25pbAUDbmlsAwkAAQIFAmJiAglMaXN0W0FueV0FAmJiCQACAQkArAICCQADAQUCYmICHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJjYwUCY2MJAJQKAgUDbmlsBQJjYwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiQwEVY2FsY0Jvb3N0QnVsa1JFQURPTkxZBQJiVwJiWAJiWQJiWgJiVQQCY2IJAPwHBAUEdGhpcwIdY2FsY0Jvb3N0QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgAACQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIFAmJaCQDMCAIFAmJVCQDMCAIFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQJjYgJiQwERY2FsY0Jvb3N0UkVBRE9OTFkFAmJXAmJYAmJZAmJaAmJVBAJjZAoAAmJiCQD8BwQFAmFXAhVnZXRCb29zdENvZWZmUkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJiAgNJbnQFAmJiCQACAQkArAICCQADAQUCYmICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY2UFAmFYBAJjZgIFZW1wdHkEAmNnCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCCQEBdAIFAmFZCQECYWgABQFlAAQEAmFIAwkAAAIFAmJaAgAFAmNmBQJiWgQCYUcDCQAAAgUCYlUCAAUCY2YFAmJVBAJjaAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQJhWQkBAmFtAQUCYlUFAmNmBAJjaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhWQkBAmFxAQUCY2gAAAQCY2oJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYVkJAQJhcwEFAmNoBQZoZWlnaHQEAmJyCQELdmFsdWVPckVsc2UCCQCaCAIFAmFZCQECYXQBBQJjaAAABAJjawkAZAIFAmNqBQJicgQCY2wJAJYDAQkAzAgCCQBlAgUCY2sFBmhlaWdodAkAzAgCAAAFA25pbAQCY20JAGQCBQJjaQUCYlcEAmNuCQCXAwEJAMwIAgkAZAIFAmNsBQJiWAkAzAgCBQJjZwUDbmlsBAJjbwkBAUIBCQCRAwIJAQF4AQkA/AcEBQJhWQITZ3d4VXNlckluZm9SRUFET05MWQkAzAgCBQJhRwUDbmlsBQNuaWwAAAQCY3AJAJEDAgkBAmJwAwUCY20FAmNuBQJjZwAABAJjcQoAAmJiCQD8BwQFAmFZAhlnZXRUb3RhbENhY2hlZEd3eFJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiYgIDSW50BQJiYgkAAgEJAKwCAgkAAwEFAmJiAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmNyAOgHBAJjcwkAaAIJAQF3AgUCYVcJAQJhTwAFAmNyBAJjdAkBAmFGAgUCYUcFAmFIBAJjdQkBAmFJAQUCYUgEAmN2CQECYU0CBQJhTgUCY3QEAmN3CQECYU0CBQJhTgUCY3UEAmJoAwkBAiE9AgUCYUgFAmNmBAJiZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFVCQEBUAEFAmFICQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYUgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFVCQEBVAEFAmJmAAAEAmN4CQBrAwUCY3MFAmJoCQBoAgUBZgUCY2QEAmN5AwkBAiE9AgUCY3cAAAkAawMFAmN4BQFiBQJjdwAABAJjegkAawMFAmN5BQJjdgUBYgQCY0EJAGgCBQJjeAkAZQIFAmNkAAEEAmNCCQBrAwUCY28FAmNBBQJjcQQCY0MJAJcDAQkAzAgCBQJjQgkAzAgCCQBoAgUCY3oJAGUCBQJjZAABBQNuaWwEAmNEAwkAAAIFAmN6AAAJAGgCAAEFAWIJAGsDCQBkAgUCY0MFAmN6BQFiBQJjegkAlAoCBQNuaWwJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJjcAkAzAgCCQCkAwEFAmNECQDMCAICAWQFA25pbAUBZQJiQwEXd3hFbWlzc2lvblN0YXRzUkVBRE9OTFkABAJjRQkApAMBBQFiBAJjRgIBMQQCYmkJAQF3AgUCYVcJAQJhTwAEAmNHCQEBdwIFAmFXCQECYVEABAJjSAMJAGYCBQJjRwUGaGVpZ2h0AAAJAGUCBQZoZWlnaHQFAmNHBAJjSQkAaAIAoAsA7QIEAmNKCQBoAgDAiOxfBQFiBAJjSwMJAGYCBQJjSAUCY0kFAmNKCQBrAwUCY0oFAmNIBQJjSQQCY0wJAGQCCQBoAgUCYmkFAmNIBQJjSwQCY00JAQF2AgUCYVkJAQJhaQAEAmNOCQEBdgIFAmFZ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BAJkTAgFAmRKAl8yBAJkeggFAmRKAl8zBAJkQQgFAmRKAl80BAJkQggFAmRKAl81BAJkZAgFAmRKAl82BAJkcAgFAmRKAl83CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZEsJAMwIAgkApAMBBQJkTAkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQgkAzAgCBQJkZAkAzAgCBQJkcAUDbmlsBQFlAmJDARNnd3hVc2VySW5mb1JFQURPTkxZAQJhbgQCZE0JAQF4AQkA/AcEBQJhWQITZ3d4VXNlckluZm9SRUFET05MWQkAzAgCBQJhbgUDbmlsBQNuaWwEAmROCQEBQgEJAJEDAgUCZE0AAAkAlAoCBQNuaWwJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFAmROBQNuaWwFAWUCYkMBFXVuc3Rha2VBbmRHZXRPbmVUa25WMgQCYmECZE8CZFACZFEEAmNjCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJhAhV1bnN0YWtlQW5kR2V0T25lVGtuVjIJAMwIAgUCZE8JAMwIAgUCZFAJAMwIAgUCZFEFA25pbAUDbmlsAwkAAAIFAmNjBQJjYwkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkMBE2dldEtleXNCdWxrSW50ZXJuYWwDAmJQAmRSAmJWAwkAAAIFAmJQCQCQAwEFAmRSCQCUCgIFA25pbAUCYlYEAmRTCQC1CQIJAJEDAgUCZFIFAmJQAgIrKwQCYncJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCZFMAAAQBcwkAkQMCBQJkUwABBAJieAkAkQMCBQJkUwACBAF5CQECYnYDBQJidwUBcwUCYngEAmNiCQDNCAIFAmJWBQF5BAJjYwkA/AcEBQR0aGlzAhNnZXRLZXlzQnVsa0ludGVybmFsCQDMCAIJAGQCBQJiUAABCQDMCAIFAmRSCQDMCAIFAmNiBQNuaWwFA25pbAMJAAACBQJjYwUCY2MJAJQKAgUDbmlsBQJjYwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiQwELZ2V0S2V5c0J1bGsBAmRSBAJjYgkA/AcEBQR0aGlzAhNnZXRLZXlzQnVsa0ludGVybmFsCQDMCAIAAAkAzAgCBQJkUgkAzAgCBQNuaWwFA25pbAUDbmlsCQCUCgIFA25pbAUCY2IBAmRUAQJkVQAEAmRWBAF6CQECYnkAAwkAAQIFAXoCCkJ5dGVWZWN0b3IEAmJEBQF6BQJiRAMJAAECBQF6AgRVbml0CAUCZFQPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmRUCWJvZHlCeXRlcwkAkQMCCAUCZFQGcHJvb2ZzAAAFAmRWLDV5sg==", "height": 2559810, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EXTGNy5Fr5SyrRygF4rQ9pwrcGmJWv5Saq1sAgx6d9qA Next: FYMgaBisNouzjQoPkZXzt89ineHNvhD7b7Q3ZBhh71aZ Diff:
OldNewDifferences
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
86-func G () = "%s__managerPublicKey"
86+let G = 1
87+
88+let H = 2
89+
90+let I = 3
91+
92+let J = 4
93+
94+let K = 5
95+
96+let L = 6
97+
98+let M = 7
99+
100+let N = 8
101+
102+func O () = "%s__factoryConfig"
87103
88104
89-func H () = "%s__pendingManagerPublicKey"
105+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
90106
91107
92-let I = 1
93-
94-let J = 2
95-
96-let K = 3
97-
98-let L = 4
99-
100-let M = 5
101-
102-let N = 6
103-
104-let O = 7
105-
106-let P = 8
107-
108-func Q () = "%s__factoryConfig"
108+func R () = "%s__lpTokensList"
109109
110110
111-func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
111+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
112112
113113
114-func T () = "%s__lpTokensList"
114+func T (U) = makeString(["%s%s", "poolWeight", U], e)
115115
116116
117-func U (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
117+func V () = "%s__managerVaultAddress"
118118
119119
120-func V (W) = makeString(["%s%s", "poolWeight", W], e)
120+func W () = "%s__managerPublicKey"
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126-func Y () = split(valueOrElse(getString(X(), T()), ""), e)
126+func Y () = split(valueOrElse(getString(X(), R()), ""), e)
127127
128128
129-func Z (aa) = split(t(aa, Q()), e)
129+func Z (aa) = split(t(aa, O()), e)
130130
131131
132-func ab (ac) = addressFromStringValue(ac[J])
132+func ab (ac) = addressFromStringValue(ac[H])
133133
134134
135-func ad (ac) = addressFromStringValue(ac[M])
135+func ad (ac) = addressFromStringValue(ac[K])
136136
137137
138-func ae (ac) = addressFromStringValue(ac[I])
138+func ae (ac) = addressFromStringValue(ac[G])
139139
140140
141-func af (ac) = addressFromStringValue(ac[P])
141+func af (ac) = addressFromStringValue(ac[N])
142142
143143
144-func ag () = "%s__config"
144+func ag () = addressFromStringValue(getStringValue(V()))
145145
146146
147-func ah () = "%s%s__stats__activeTotalLocked"
147+func ah () = "%s__config"
148148
149149
150-func ai () = "%s%s__stats__locksDurationSumInBlocks"
150+func ai () = "%s%s__stats__activeTotalLocked"
151151
152152
153-func aj () = "%s%s__stats__locksCount"
153+func aj () = "%s%s__stats__locksDurationSumInBlocks"
154154
155155
156-func ak () = "%s%s__stats__activeUsersCount"
156+func ak () = "%s%s__stats__locksCount"
157157
158158
159-func al (am) = makeString(["%s%s%s__mapping__user2num", am], e)
159+func al () = "%s%s__stats__activeUsersCount"
160160
161161
162-func an (ao) = makeString(["%s%s%s__mapping__num2user", ao], e)
162+func am (an) = makeString(["%s%s%s__mapping__user2num", an], e)
163163
164164
165-func ap (aq) = makeString(["%s%d%s__paramByUserNum", aq, "amount"], e)
165+func ao (ap) = makeString(["%s%s%s__mapping__num2user", ap], e)
166166
167167
168-func ar (aq) = makeString(["%s%d%s__paramByUserNum", aq, "start"], e)
168+func aq (ar) = makeString(["%s%d%s__paramByUserNum", ar, "amount"], e)
169169
170170
171-func as (aq) = makeString(["%s%d%s__paramByUserNum", aq, "duration"], e)
171+func as (ar) = makeString(["%s%d%s__paramByUserNum", ar, "start"], e)
172172
173173
174-func at (aq) = makeString(["%s%d%s__paramByUserNum", aq, "k"], e)
174+func at (ar) = makeString(["%s%d%s__paramByUserNum", ar, "duration"], e)
175175
176176
177-func au (aq) = makeString(["%s%d%s__paramByUserNum", aq, "b"], e)
177+func au (ar) = makeString(["%s%d%s__paramByUserNum", ar, "k"], e)
178178
179179
180-func av (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "k", aw], e)
180+func av (ar) = makeString(["%s%d%s__paramByUserNum", ar, "b"], e)
181181
182182
183-func ax (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "b", aw], e)
183+func aw (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "k", ax], e)
184184
185185
186-func ay (aq) = makeString(["%s%d__userBoostEmissionLastInt", aq], e)
186+func ay (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "b", ax], e)
187187
188188
189-func az (aq) = makeString(["%s%d__maxBoostInt", aq], e)
189+func az (ar) = makeString(["%s%d__userBoostEmissionLastInt", ar], e)
190190
191191
192-func aA () = "%s%s__maxBoostInt__total"
192+func aA (ar) = makeString(["%s%d__maxBoostInt", ar], e)
193193
194194
195-func aB (aq) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aq], e)
195+func aB () = "%s%s__maxBoostInt__total"
196196
197197
198-func aC (aq) = makeString(["%s%d__userBoostClaimed", aq], e)
198+func aC (ar) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ar], e)
199199
200200
201-func aD () = "%s%s__gwxCached__total"
201+func aD (ar) = makeString(["%s%d__userBoostClaimed", ar], e)
202202
203203
204-func aE (aF,aG) = makeString(["%s%s%s__staked", aF, aG], e)
204+func aE () = "%s%s__gwxCached__total"
205205
206206
207-func aH (aG) = ("%s%s%s__staked__total__" + aG)
207+func aF (aG,aH) = makeString(["%s%s%s__staked", aG, aH], e)
208208
209209
210-func aI (aG,aF) = makeString(["%s%s%s__claimed", aF, aG], e)
210+func aI (aH) = ("%s%s%s__staked__total__" + aH)
211211
212212
213-func aJ (aG,aF) = makeString(["%s%s%s__claimedMinReward", aF, aG], e)
213+func aJ (aH,aG) = makeString(["%s%s%s__claimed", aG, aH], e)
214214
215215
216-func aK (aG,aF) = makeString(["%s%s%s__claimedBoostReward", aF, aG], e)
216+func aK (aH,aG) = makeString(["%s%s%s__claimedMinReward", aG, aH], e)
217217
218218
219-func aL (aM,s) = valueOrElse(getInteger(aM, s), 0)
219+func aL (aH,aG) = makeString(["%s%s%s__claimedBoostReward", aG, aH], e)
220220
221221
222-func aN () = "%s%s__ratePerBlock__current"
222+func aM (aN,s) = valueOrElse(getInteger(aN, s), 0)
223223
224224
225-func aO () = "%s%s__ratePerBlockMax__current"
225+func aO () = "%s%s__ratePerBlock__current"
226226
227227
228-func aP () = "%s%s__emission__startBlock"
228+func aP () = "%s%s__ratePerBlockMax__current"
229229
230230
231-func aQ () = "%s%s__emission__duration"
231+func aQ () = "%s%s__emission__startBlock"
232232
233233
234-func aR () = "%s%s__emission__endBlock"
234+func aR () = "%s%s__emission__duration"
235235
236236
237-func aS () = "%s__addonAddr"
237+func aS () = "%s%s__emission__endBlock"
238238
239239
240-let aT = X()
240+func aT () = "%s__addonAddr"
241241
242-let aU = Z(aT)
243242
244-let aV = ad(aU)
243+let aU = X()
245244
246-let aM = ae(aU)
245+let aV = Z(aU)
247246
248-let aW = af(aU)
247+let aW = ad(aV)
249248
250-let aX = ab(aU)
249+let aN = ae(aV)
251250
252-func aY (aZ) = {
253- let ba = invoke(aT, "getInFeeREADONLY", [toString(aZ)], nil)
254- if ($isInstanceOf(ba, "Int"))
255- then ba
256- else throw(($getType(ba) + " couldn't be cast to Int"))
251+let aX = af(aV)
252+
253+let aY = ab(aV)
254+
255+func aZ (ba) = {
256+ let bb = invoke(aU, "getInFeeREADONLY", [toString(ba)], nil)
257+ if ($isInstanceOf(bb, "Int"))
258+ then bb
259+ else throw(($getType(bb) + " couldn't be cast to Int"))
257260 }
258261
259262
260-func bb (aZ) = {
261- let ba = invoke(aT, "getOutFeeREADONLY", [toString(aZ)], nil)
262- if ($isInstanceOf(ba, "Int"))
263- then ba
264- else throw(($getType(ba) + " couldn't be cast to Int"))
263+func bc (ba) = {
264+ let bb = invoke(aU, "getOutFeeREADONLY", [toString(ba)], nil)
265+ if ($isInstanceOf(bb, "Int"))
266+ then bb
267+ else throw(($getType(bb) + " couldn't be cast to Int"))
265268 }
266269
267270
268-func bc (bd) = {
269- let be = t(aT, U(bd))
270- let bf = b
271- let bg = getIntegerValue(aT, V(be))
272- let bh = w(aV, aN())
273- let bi = w(aV, aO())
274- let bj = {
275- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
276- if ($isInstanceOf(ba, "Int"))
277- then ba
278- else throw(($getType(ba) + " couldn't be cast to Int"))
271+func bd (be) = {
272+ let bf = t(aU, S(be))
273+ let bg = b
274+ let bh = getIntegerValue(aU, T(bf))
275+ let bi = w(aW, aO())
276+ let bj = w(aW, aP())
277+ let bk = {
278+ let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
279+ if ($isInstanceOf(bb, "Int"))
280+ then bb
281+ else throw(($getType(bb) + " couldn't be cast to Int"))
279282 }
280- let bk = (fraction(bh, bg, bf) / bj)
281- let bl = fraction(bi, bg, bf)
282- let bm = (bj * b)
283- let bn = v(aM, aH(bd))
284-[bk, bm, bn]
283+ let bl = (fraction(bi, bh, bg) / bk)
284+ let bm = fraction(bj, bh, bg)
285+ let bn = (bk * b)
286+ let bo = v(aN, aI(be))
287+[bl, bn, bo]
285288 }
286289
287290
288-func bo (bp,bq,br) = {
289- let bs = fraction(bq, b, br)
290- let bt = fraction(bp, bs, b)
291-[bt]
291+func bp (bq,br,bs) = {
292+ let bt = fraction(br, b, bs)
293+ let bu = fraction(bq, bt, b)
294+[bu]
292295 }
293296
294297
295-func bu (bv,s,bw) = if ((bw == "string"))
296- then getStringValue(bv, s)
297- else if ((bw == "integer"))
298- then toString(getIntegerValue(bv, s))
299- else if ((bw == "boolean"))
300- then toString(getBooleanValue(bv, s))
298+func bv (bw,s,bx) = if ((bx == "string"))
299+ then getStringValue(bw, s)
300+ else if ((bx == "integer"))
301+ then toString(getIntegerValue(bw, s))
302+ else if ((bx == "boolean"))
303+ then toString(getBooleanValue(bw, s))
301304 else throw("unknown type. expected string/integer/boolean")
302305
303306
304-func bx () = {
305- let z = getString(G())
307+func by () = {
308+ let bz = ag()
309+ let z = getString(bz, W())
306310 if ($isInstanceOf(z, "String"))
307311 then {
308- let by = z
309- fromBase58String(by)
312+ let bA = z
313+ fromBase58String(bA)
310314 }
311315 else if ($isInstanceOf(z, "Unit"))
312316 then unit
314318 }
315319
316320
317-func bz () = {
318- let z = getString(H())
319- if ($isInstanceOf(z, "String"))
321+func bB (bC) = {
322+ let z = by()
323+ if ($isInstanceOf(z, "ByteVector"))
320324 then {
321- let by = z
322- fromBase58String(by)
325+ let bD = z
326+ (bC.callerPublicKey == bD)
323327 }
324328 else if ($isInstanceOf(z, "Unit"))
325- then unit
329+ then (bC.caller == this)
326330 else throw("Match error")
327331 }
328332
329333
330-func bA (bB) = {
331- let bC = throw("Permission denied")
332- let z = bx()
333- if ($isInstanceOf(z, "ByteVector"))
334- then {
335- let bD = z
336- if ((bB.callerPublicKey == bD))
337- then true
338- else bC
339- }
340- else if ($isInstanceOf(z, "Unit"))
341- then if ((bB.caller == this))
342- then true
343- else bC
344- else throw("Match error")
345- }
334+func bE (bC) = if (bB(bC))
335+ then true
336+ else throw("permission denied")
346337
347338
348-@Callable(bB)
349-func constructor (bE) = {
350- let bF = bA(bB)
351- if ((bF == bF))
352- then [StringEntry(F(), bE)]
339+@Callable(bC)
340+func constructor (bF) = {
341+ let bG = bE(bC)
342+ if ((bG == bG))
343+ then [StringEntry(F(), bF)]
353344 else throw("Strict value is not equal to itself.")
354345 }
355346
356347
357348
358-@Callable(bB)
359-func currentRewardRateREADONLY (bd) = {
360- let bG = bc(bd)
361- let bh = bG[0]
362- let bm = bG[1]
363- let bn = bG[2]
364- let bH = {
365- let ba = invoke(aX, "getVotingResultStakedREADONLY", [bd], nil)
366- if ($isInstanceOf(ba, "Int"))
367- then ba
368- else throw(($getType(ba) + " couldn't be cast to Int"))
349+@Callable(bC)
350+func currentRewardRateREADONLY (be) = {
351+ let bH = bd(be)
352+ let bi = bH[0]
353+ let bn = bH[1]
354+ let bo = bH[2]
355+ let bI = {
356+ let bb = invoke(aY, "getVotingResultStakedREADONLY", [be], nil)
357+ if ($isInstanceOf(bb, "Int"))
358+ then bb
359+ else throw(($getType(bb) + " couldn't be cast to Int"))
369360 }
370- $Tuple2(nil, makeString(["%d%d%d%d", toString(bh), toString(bm), toString(bn), toString(bH)], e))
361+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bi), toString(bn), toString(bo), toString(bI)], e))
371362 }
372363
373364
374365
375-@Callable(bB)
376-func currentUserRewardRateREADONLY (bd,am) = {
377- let bG = bc(bd)
378- let bh = bG[0]
379- let bm = bG[1]
380- let bn = bG[2]
381- let bI = v(aM, aE(am, bd))
382- let bJ = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
383- let bK = valueOrErrorMessage(parseInt(bJ[5]), "couldn't parse minRewardPart")
384- let bL = valueOrErrorMessage(parseInt(bJ[6]), "couldn't parse boostRewardPart")
385- let bM = bJ[7]
386- let bN = if ((bL == 0))
366+@Callable(bC)
367+func currentUserRewardRateREADONLY (be,an) = {
368+ let bH = bd(be)
369+ let bi = bH[0]
370+ let bn = bH[1]
371+ let bo = bH[2]
372+ let bJ = v(aN, aF(an, be))
373+ let bK = split(D(invoke(aN, "claimWxREADONLY", [be, an], nil)), e)
374+ let bL = valueOrErrorMessage(parseInt(bK[5]), "couldn't parse minRewardPart")
375+ let bM = valueOrErrorMessage(parseInt(bK[6]), "couldn't parse boostRewardPart")
376+ let bN = bK[7]
377+ let bO = if ((bM == 0))
387378 then (1 * b)
388- else fraction((bK + bL), b, bK)
389- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bI), toString(bN), bM], e))
379+ else fraction((bL + bM), b, bL)
380+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bi), toString(bn), toString(bo), toString(bJ), toString(bO), bN], e))
390381 }
391382
392383
393384
394-@Callable(bB)
395-func calcBoostBulkInternalREADONLY (bO,bP,bQ,bR,bS,bT,bU) = if ((bO == size(bP)))
396- then $Tuple2(nil, bU)
385+@Callable(bC)
386+func calcBoostBulkInternalREADONLY (bP,bQ,bR,bS,bT,bU,bV) = if ((bP == size(bQ)))
387+ then $Tuple2(nil, bV)
397388 else {
398- let bV = bP[bO]
399- let bW = bQ[bO]
400- let bX = bR[bO]
401- let bY = bS[bO]
402- let bZ = {
403- let ba = invoke(this, "calcBoostREADONLY", [bV, bW, bX, bY, bT], nil)
404- if ($isInstanceOf(ba, "String"))
405- then ba
406- else throw(($getType(ba) + " couldn't be cast to String"))
389+ let bW = bQ[bP]
390+ let bX = bR[bP]
391+ let bY = bS[bP]
392+ let bZ = bT[bP]
393+ let ca = {
394+ let bb = invoke(this, "calcBoostREADONLY", [bW, bX, bY, bZ, bU], nil)
395+ if ($isInstanceOf(bb, "String"))
396+ then bb
397+ else throw(($getType(bb) + " couldn't be cast to String"))
407398 }
408- let ca = (bU :+ bZ)
409- let cb = {
410- let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bO + 1), bP, bQ, bR, bS, bT, ca], nil)
411- if ($isInstanceOf(ba, "List[Any]"))
412- then ba
413- else throw(($getType(ba) + " couldn't be cast to List[Any]"))
399+ let cb = (bV :+ ca)
400+ let cc = {
401+ let bb = invoke(this, "calcBoostBulkInternalREADONLY", [(bP + 1), bQ, bR, bS, bT, bU, cb], nil)
402+ if ($isInstanceOf(bb, "List[Any]"))
403+ then bb
404+ else throw(($getType(bb) + " couldn't be cast to List[Any]"))
414405 }
415- if ((cb == cb))
416- then $Tuple2(nil, cb)
406+ if ((cc == cc))
407+ then $Tuple2(nil, cc)
417408 else throw("Strict value is not equal to itself.")
418409 }
419410
420411
421412
422-@Callable(bB)
423-func calcBoostBulkREADONLY (bV,bW,bX,bY,bT) = {
424- let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bV, bW, bX, bY, bT, nil], nil)
425- $Tuple2(nil, ca)
413+@Callable(bC)
414+func calcBoostBulkREADONLY (bW,bX,bY,bZ,bU) = {
415+ let cb = invoke(this, "calcBoostBulkInternalREADONLY", [0, bW, bX, bY, bZ, bU, nil], nil)
416+ $Tuple2(nil, cb)
426417 }
427418
428419
429420
430-@Callable(bB)
431-func calcBoostREADONLY (bV,bW,bX,bY,bT) = {
432- let cc = {
433- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
434- if ($isInstanceOf(ba, "Int"))
435- then ba
436- else throw(($getType(ba) + " couldn't be cast to Int"))
421+@Callable(bC)
422+func calcBoostREADONLY (bW,bX,bY,bZ,bU) = {
423+ let cd = {
424+ let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
425+ if ($isInstanceOf(bb, "Int"))
426+ then bb
427+ else throw(($getType(bb) + " couldn't be cast to Int"))
437428 }
438- let cd = aW
439- let ce = "empty"
440- let cf = parseIntValue(split(t(aX, ag()), e)[4])
441- let aG = if ((bY == ""))
442- then ce
443- else bY
444- let aF = if ((bT == ""))
445- then ce
446- else bT
447- let cg = valueOrElse(getString(aX, al(bT)), ce)
448- let ch = valueOrElse(getInteger(aX, ap(cg)), 0)
449- let ci = valueOrElse(getInteger(aX, ar(cg)), height)
450- let bq = valueOrElse(getInteger(aX, as(cg)), 0)
451- let cj = (ci + bq)
452- let ck = max([(cj - height), 0])
453- let cl = (ch + bV)
454- let cm = min([(ck + bW), cf])
455- let cn = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
456- let co = bo(cl, cm, cf)[0]
457- let cp = {
458- let ba = invoke(aX, "getTotalCachedGwxREADONLY", nil, nil)
459- if ($isInstanceOf(ba, "Int"))
460- then ba
461- else throw(($getType(ba) + " couldn't be cast to Int"))
429+ let ce = aX
430+ let cf = "empty"
431+ let cg = parseIntValue(split(t(aY, ah()), e)[4])
432+ let aH = if ((bZ == ""))
433+ then cf
434+ else bZ
435+ let aG = if ((bU == ""))
436+ then cf
437+ else bU
438+ let ch = valueOrElse(getString(aY, am(bU)), cf)
439+ let ci = valueOrElse(getInteger(aY, aq(ch)), 0)
440+ let cj = valueOrElse(getInteger(aY, as(ch)), height)
441+ let br = valueOrElse(getInteger(aY, at(ch)), 0)
442+ let ck = (cj + br)
443+ let cl = max([(ck - height), 0])
444+ let cm = (ci + bW)
445+ let cn = min([(cl + bX), cg])
446+ let co = B(x(invoke(aY, "gwxUserInfoREADONLY", [aG], nil))[0])
447+ let cp = bp(cm, cn, cg)[0]
448+ let cq = {
449+ let bb = invoke(aY, "getTotalCachedGwxREADONLY", nil, nil)
450+ if ($isInstanceOf(bb, "Int"))
451+ then bb
452+ else throw(($getType(bb) + " couldn't be cast to Int"))
462453 }
463- let cq = 1000
464- let cr = (w(aV, aN()) * cq)
465- let cs = aE(aF, aG)
466- let ct = aH(aG)
467- let cu = aL(aM, cs)
468- let cv = aL(aM, ct)
469- let bg = if ((aG != ce))
454+ let cr = 1000
455+ let cs = (w(aW, aO()) * cr)
456+ let ct = aF(aG, aH)
457+ let cu = aI(aH)
458+ let cv = aM(aN, ct)
459+ let cw = aM(aN, cu)
460+ let bh = if ((aH != cf))
470461 then {
471- let be = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
472- getIntegerValue(aT, V(be))
462+ let bf = valueOrErrorMessage(getString(aU, P(aH)), ("unsupported lp asset " + aH))
463+ getIntegerValue(aU, T(bf))
473464 }
474465 else 0
475- let cw = fraction(cr, bg, (f * cc))
476- let cx = if ((cv != 0))
477- then fraction(cw, b, cv)
466+ let cx = fraction(cs, bh, (f * cd))
467+ let cy = if ((cw != 0))
468+ then fraction(cx, b, cw)
478469 else 0
479- let cy = fraction(cx, cu, b)
480- let cz = (cw * (cc - 1))
481- let cA = fraction(cn, cz, cp)
482- let cB = min([cA, (cy * (cc - 1))])
483- let cC = if ((cy == 0))
470+ let cz = fraction(cy, cv, b)
471+ let cA = (cx * (cd - 1))
472+ let cB = fraction(co, cA, cq)
473+ let cC = min([cB, (cz * (cd - 1))])
474+ let cD = if ((cz == 0))
484475 then (1 * b)
485- else fraction((cB + cy), b, cy)
486- $Tuple2(nil, makeString(["%d%d%s", toString(co), toString(cC), "d"], e))
476+ else fraction((cC + cz), b, cz)
477+ $Tuple2(nil, makeString(["%d%d%s", toString(cp), toString(cD), "d"], e))
487478 }
488479
489480
490481
491-@Callable(bB)
482+@Callable(bC)
492483 func wxEmissionStatsREADONLY () = {
493- let cD = toString(b)
494- let cE = "1"
495- let bh = w(aV, aN())
496- let cF = w(aV, aP())
497- let cG = if ((cF > height))
484+ let cE = toString(b)
485+ let cF = "1"
486+ let bi = w(aW, aO())
487+ let cG = w(aW, aQ())
488+ let cH = if ((cG > height))
498489 then 0
499- else (height - cF)
500- let cH = (1440 * 365)
501- let cI = (201000000 * b)
502- let cJ = if ((cG > cH))
503- then cI
504- else fraction(cI, cG, cH)
505- let cK = ((bh * cG) + cJ)
506- let cL = v(aX, ah())
507- let cM = v(aX, ai())
508- let cN = v(aX, aj())
509- $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
490+ else (height - cG)
491+ let cI = (1440 * 365)
492+ let cJ = (201000000 * b)
493+ let cK = if ((cH > cI))
494+ then cJ
495+ else fraction(cJ, cH, cI)
496+ let cL = ((bi * cH) + cK)
497+ let cM = v(aY, ai())
498+ let cN = v(aY, aj())
499+ let cO = v(aY, ak())
500+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cL), toString(cM), toString(cN), toString(cO)], e))
510501 }
511502
512503
513504
514-@Callable(bB)
515-func poolStatsREADONLY (cO) = {
516- let aZ = addressFromStringValue(t(aT, U(cO)))
517- let cP = {
518- let ba = invoke(aT, "getPoolStatusREADONLY", [toString(aZ)], nil)
519- if ($isInstanceOf(ba, "Int"))
520- then ba
521- else throw(($getType(ba) + " couldn't be cast to Int"))
505+@Callable(bC)
506+func poolStatsREADONLY (cP) = {
507+ let ba = addressFromStringValue(t(aU, S(cP)))
508+ let cQ = {
509+ let bb = invoke(aU, "getPoolStatusREADONLY", [toString(ba)], nil)
510+ if ($isInstanceOf(bb, "Int"))
511+ then bb
512+ else throw(($getType(bb) + " couldn't be cast to Int"))
522513 }
523- let cQ = "%d%d%d%d%d%d%d%d%d%s"
524- if ((cP == 4))
525- then $Tuple2(nil, makeString([cQ, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
514+ let cR = "%d%d%d%d%d%d%d%d%d%s"
515+ if ((cQ == 4))
516+ then $Tuple2(nil, makeString([cR, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
526517 else {
527- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
528- let bd = fromBase58String(D(cR[j]))
529- let cS = D(cR[k])
530- let cT = D(cR[l])
531- let cU = D(cR[o])
532- let cV = D(cR[p])
533- let cW = parseIntValue(D(cR[m]))
534- let cX = parseIntValue(D(cR[n]))
535- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
536- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cS], nil))
537- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cT], nil))
538- let db = if ((cY == 0))
518+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
519+ let be = fromBase58String(D(cS[j]))
520+ let cT = D(cS[k])
521+ let cU = D(cS[l])
522+ let cV = D(cS[o])
523+ let cW = D(cS[p])
524+ let cX = parseIntValue(D(cS[m]))
525+ let cY = parseIntValue(D(cS[n]))
526+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
527+ let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cT], nil))
528+ let db = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cU], nil))
529+ let dc = if ((cZ == 0))
539530 then [toString(g), toString(g), toString(g)]
540- else x(invoke(aZ, "calcPricesWrapperREADONLY", [cZ, da, cY], nil))
541- let dc = 0
542- let dd = B(invoke(aZ, "fromX18WrapperREADONLY", [db[1], b], nil))
543- let de = B(invoke(aZ, "fromX18WrapperREADONLY", [db[2], b], nil))
544- let bg = getIntegerValue(aT, V(toString(aZ)))
545- let df = aY(aZ)
546- let dg = bb(aZ)
547- let dh = {
548- let ba = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aZ)], nil)
549- if ($isInstanceOf(ba, "Boolean"))
550- then ba
551- else throw(($getType(ba) + " couldn't be cast to Boolean"))
531+ else x(invoke(ba, "calcPricesWrapperREADONLY", [da, db, cZ], nil))
532+ let dd = 0
533+ let de = B(invoke(ba, "fromX18WrapperREADONLY", [dc[1], b], nil))
534+ let df = B(invoke(ba, "fromX18WrapperREADONLY", [dc[2], b], nil))
535+ let bh = getIntegerValue(aU, T(toString(ba)))
536+ let dg = aZ(ba)
537+ let dh = bc(ba)
538+ let di = {
539+ let bb = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(ba)], nil)
540+ if ($isInstanceOf(bb, "Boolean"))
541+ then bb
542+ else throw(($getType(bb) + " couldn't be cast to Boolean"))
552543 }
553- let di = !(dh)
554- $Tuple2(nil, makeString([cQ, toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(bg), toString(df), toString(dg), toString(di)], e))
544+ let dj = !(di)
545+ $Tuple2(nil, makeString([cR, toString(da), toString(db), toString(cZ), toString(dd), toString(de), toString(df), toString(bh), toString(dg), toString(dh), toString(dj)], e))
555546 }
556547 }
557548
558549
559550
560-@Callable(bB)
561-func poolEvaluatePutByAmountAssetREADONLY (cO,dj) = {
562- let aZ = addressFromStringValue(t(aT, U(cO)))
563- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
564- let bd = fromBase58String(D(cR[j]))
565- let dk = D(cR[k])
566- let dl = fromBase58String(dk)
567- let dm = D(cR[l])
568- let dn = fromBase58String(dm)
569- let cW = parseIntValue(D(cR[m]))
570- let cX = parseIntValue(D(cR[n]))
571- let do = D(cR[i])
572- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
573- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
574- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
575- let dp = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [cZ, cW], nil)))
576- let dq = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [da, cX], nil)))
577- let dr = if ((cY == 0))
551+@Callable(bC)
552+func poolEvaluatePutByAmountAssetREADONLY (cP,dk) = {
553+ let ba = addressFromStringValue(t(aU, S(cP)))
554+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
555+ let be = fromBase58String(D(cS[j]))
556+ let dl = D(cS[k])
557+ let dm = fromBase58String(dl)
558+ let dn = D(cS[l])
559+ let do = fromBase58String(dn)
560+ let cX = parseIntValue(D(cS[m]))
561+ let cY = parseIntValue(D(cS[n]))
562+ let dp = D(cS[i])
563+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
564+ let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
565+ let db = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
566+ let dq = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [da, cX], nil)))
567+ let dr = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [db, cY], nil)))
568+ let ds = if ((cZ == 0))
578569 then g
579- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
580- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
581- let ds = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dj, cW], nil)))
582- let dt = fraction(ds, dr, d)
583- let du = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
584- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
585- let dv = {
586- let z = ca
570+ else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dr), toString(dq)], nil)))
571+ let dd = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
572+ let dt = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dk, cX], nil)))
573+ let du = fraction(dt, ds, d)
574+ let dv = B(invoke(ba, "fromX18WrapperREADONLY", [toString(du), cY], nil))
575+ let cb = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
576+ let dw = {
577+ let z = cb
587578 if (if (if ($isInstanceOf(z._1, "Int"))
588579 then if ($isInstanceOf(z._3, "Int"))
589580 then if ($isInstanceOf(z._4, "Int"))
596587 then (size(z) == 13)
597588 else false)
598589 then {
599- let dw = z._1
600- let dx = z._3
601- let dy = z._4
602- let dz = z._5
603- let dA = z._6
604- $Tuple5(dw, dx, dy, dz, dA)
590+ let dx = z._1
591+ let dy = z._3
592+ let dz = z._4
593+ let dA = z._5
594+ let dB = z._6
595+ $Tuple5(dx, dy, dz, dA, dB)
605596 }
606597 else throw("Couldn't cast types")
607598 }
608- let dw = dv._1
609- let dx = dv._2
610- let dy = dv._3
611- let dz = dv._4
612- let dA = dv._5
613- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
599+ let dx = dw._1
600+ let dy = dw._2
601+ let dz = dw._3
602+ let dA = dw._4
603+ let dB = dw._5
604+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dd), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
614605 }
615606
616607
617608
618-@Callable(bB)
619-func poolEvaluatePutByPriceAssetREADONLY (cO,du) = {
620- let aZ = addressFromStringValue(t(aT, U(cO)))
621- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
622- let bd = fromBase58String(D(cR[j]))
623- let dk = D(cR[k])
624- let dl = fromBase58String(dk)
625- let dm = D(cR[l])
626- let dn = fromBase58String(dm)
627- let cW = parseIntValue(D(cR[m]))
628- let cX = parseIntValue(D(cR[n]))
629- let do = D(cR[i])
630- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
631- let dB = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
632- let dC = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
633- let dD = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, cW], nil)))
634- let dE = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dC, cX], nil)))
635- let dr = if ((cY == 0))
609+@Callable(bC)
610+func poolEvaluatePutByPriceAssetREADONLY (cP,dv) = {
611+ let ba = addressFromStringValue(t(aU, S(cP)))
612+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
613+ let be = fromBase58String(D(cS[j]))
614+ let dl = D(cS[k])
615+ let dm = fromBase58String(dl)
616+ let dn = D(cS[l])
617+ let do = fromBase58String(dn)
618+ let cX = parseIntValue(D(cS[m]))
619+ let cY = parseIntValue(D(cS[n]))
620+ let dp = D(cS[i])
621+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
622+ let dC = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
623+ let dD = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
624+ let dE = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dC, cX], nil)))
625+ let dF = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dD, cY], nil)))
626+ let ds = if ((cZ == 0))
636627 then g
637- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
638- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
639- let dt = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [du, cX], nil)))
640- let ds = fraction(dt, d, dr)
641- let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(ds), cW], nil))
642- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
643- let dF = {
644- let z = ca
628+ else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
629+ let dd = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
630+ let du = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dv, cY], nil)))
631+ let dt = fraction(du, d, ds)
632+ let dk = B(invoke(ba, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
633+ let cb = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
634+ let dG = {
635+ let z = cb
645636 if (if (if ($isInstanceOf(z._1, "Int"))
646637 then if ($isInstanceOf(z._3, "Int"))
647638 then if ($isInstanceOf(z._4, "Int"))
654645 then (size(z) == 13)
655646 else false)
656647 then {
657- let dw = z._1
658- let dx = z._3
659- let dy = z._4
660- let dz = z._5
661- let dA = z._6
662- $Tuple5(dw, dx, dy, dz, dA)
648+ let dx = z._1
649+ let dy = z._3
650+ let dz = z._4
651+ let dA = z._5
652+ let dB = z._6
653+ $Tuple5(dx, dy, dz, dA, dB)
663654 }
664655 else throw("Couldn't cast types")
665656 }
666- let dw = dF._1
667- let dx = dF._2
668- let dy = dF._3
669- let dz = dF._4
670- let dA = dF._5
671- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
657+ let dx = dG._1
658+ let dy = dG._2
659+ let dz = dG._3
660+ let dA = dG._4
661+ let dB = dG._5
662+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dd), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
672663 }
673664
674665
675666
676-@Callable(bB)
677-func poolEvaluateGetREADONLY (dG,dH) = {
678- let aZ = addressFromStringValue(t(aT, U(dG)))
679- let ca = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(aZ)], nil)
680- let dI = {
681- let z = ca
667+@Callable(bC)
668+func poolEvaluateGetREADONLY (dH,dI) = {
669+ let ba = addressFromStringValue(t(aU, S(dH)))
670+ let cb = invoke(ba, "estimateGetOperationWrapperREADONLY", ["", dH, dI, toString(ba)], nil)
671+ let dJ = {
672+ let z = cb
682673 if (if (if ($isInstanceOf(z._1, "Int"))
683674 then if ($isInstanceOf(z._2, "Int"))
684675 then if ($isInstanceOf(z._5, "Int"))
695686 then (size(z) == 10)
696687 else false)
697688 then {
698- let dJ = z._1
699- let dK = z._2
700- let dy = z._5
701- let dz = z._6
702- let dA = z._7
703- let dc = z._8
704- let do = z._9
705- $Tuple7(dJ, dK, dy, dz, dA, dc, do)
689+ let dK = z._1
690+ let dL = z._2
691+ let dz = z._5
692+ let dA = z._6
693+ let dB = z._7
694+ let dd = z._8
695+ let dp = z._9
696+ $Tuple7(dK, dL, dz, dA, dB, dd, dp)
706697 }
707698 else throw("Couldn't cast types")
708699 }
709- let dJ = dI._1
710- let dK = dI._2
711- let dy = dI._3
712- let dz = dI._4
713- let dA = dI._5
714- let dc = dI._6
715- let do = dI._7
716- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), dc, do], e))
700+ let dK = dJ._1
701+ let dL = dJ._2
702+ let dz = dJ._3
703+ let dA = dJ._4
704+ let dB = dJ._5
705+ let dd = dJ._6
706+ let dp = dJ._7
707+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dz), toString(dA), toString(dB), dd, dp], e))
717708 }
718709
719710
720711
721-@Callable(bB)
722-func gwxUserInfoREADONLY (am) = {
723- let dL = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
724- let dM = B(dL[0])
725- $Tuple2(nil, makeString(["%d", toString(dM)], e))
712+@Callable(bC)
713+func gwxUserInfoREADONLY (an) = {
714+ let dM = x(invoke(aY, "gwxUserInfoREADONLY", [an], nil))
715+ let dN = B(dM[0])
716+ $Tuple2(nil, makeString(["%d", toString(dN)], e))
726717 }
727718
728719
729720
730-@Callable(bB)
731-func unstakeAndGetOneTknV2 (aZ,dN,dO,dP) = {
732- let cb = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dN, dO, dP], nil)
733- if ((cb == cb))
721+@Callable(bC)
722+func unstakeAndGetOneTknV2 (ba,dO,dP,dQ) = {
723+ let cc = invoke(addressFromStringValue(ba), "unstakeAndGetOneTknV2", [dO, dP, dQ], nil)
724+ if ((cc == cc))
734725 then $Tuple2(nil, unit)
735726 else throw("Strict value is not equal to itself.")
736727 }
737728
738729
739730
740-@Callable(bB)
741-func getKeysBulkInternal (bO,dQ,bU) = if ((bO == size(dQ)))
742- then $Tuple2(nil, bU)
731+@Callable(bC)
732+func getKeysBulkInternal (bP,dR,bV) = if ((bP == size(dR)))
733+ then $Tuple2(nil, bV)
743734 else {
744- let dR = split(dQ[bO], "++")
745- let bv = addressFromStringValue(dR[0])
746- let s = dR[1]
747- let bw = dR[2]
748- let y = bu(bv, s, bw)
749- let ca = (bU :+ y)
750- let cb = invoke(this, "getKeysBulkInternal", [(bO + 1), dQ, ca], nil)
751- if ((cb == cb))
752- then $Tuple2(nil, cb)
735+ let dS = split(dR[bP], "++")
736+ let bw = addressFromStringValue(dS[0])
737+ let s = dS[1]
738+ let bx = dS[2]
739+ let y = bv(bw, s, bx)
740+ let cb = (bV :+ y)
741+ let cc = invoke(this, "getKeysBulkInternal", [(bP + 1), dR, cb], nil)
742+ if ((cc == cc))
743+ then $Tuple2(nil, cc)
753744 else throw("Strict value is not equal to itself.")
754745 }
755746
756747
757748
758-@Callable(bB)
759-func getKeysBulk (dQ) = {
760- let ca = invoke(this, "getKeysBulkInternal", [0, dQ, nil], nil)
761- $Tuple2(nil, ca)
749+@Callable(bC)
750+func getKeysBulk (dR) = {
751+ let cb = invoke(this, "getKeysBulkInternal", [0, dR, nil], nil)
752+ $Tuple2(nil, cb)
762753 }
763754
764755
765-
766-@Callable(bB)
767-func setManager (dS) = {
768- let bF = bA(bB)
769- if ((bF == bF))
770- then {
771- let dT = fromBase58String(dS)
772- if ((dT == dT))
773- then [StringEntry(H(), dS)]
774- else throw("Strict value is not equal to itself.")
775- }
776- else throw("Strict value is not equal to itself.")
777- }
778-
779-
780-
781-@Callable(bB)
782-func confirmManager () = {
783- let dU = bz()
784- let dV = if (isDefined(dU))
785- then true
786- else throw("No pending manager")
787- if ((dV == dV))
788- then {
789- let dW = if ((bB.callerPublicKey == value(dU)))
790- then true
791- else throw("You are not pending manager")
792- if ((dW == dW))
793- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
794- else throw("Strict value is not equal to itself.")
795- }
796- else throw("Strict value is not equal to itself.")
797- }
798-
799-
800-@Verifier(dX)
801-func dY () = {
802- let dZ = {
803- let z = bx()
756+@Verifier(dT)
757+func dU () = {
758+ let dV = {
759+ let z = by()
804760 if ($isInstanceOf(z, "ByteVector"))
805761 then {
806762 let bD = z
807763 bD
808764 }
809765 else if ($isInstanceOf(z, "Unit"))
810- then dX.senderPublicKey
766+ then dT.senderPublicKey
811767 else throw("Match error")
812768 }
813- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
769+ sigVerify(dT.bodyBytes, dT.proofs[0], dV)
814770 }
815771
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 5
2727
2828 let m = 6
2929
3030 let n = 7
3131
3232 let o = 8
3333
3434 let p = 9
3535
3636 let q = 10
3737
3838 func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3939
4040
4141 func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4242
4343
4444 func v (u,s) = valueOrElse(getInteger(u, s), 0)
4545
4646
4747 func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4848
4949
5050 func x (y) = {
5151 let z = y
5252 if ($isInstanceOf(z, "List[Any]"))
5353 then {
5454 let A = z
5555 A
5656 }
5757 else throw("fail to cast into List[Any]")
5858 }
5959
6060
6161 func B (y) = {
6262 let z = y
6363 if ($isInstanceOf(z, "Int"))
6464 then {
6565 let C = z
6666 C
6767 }
6868 else throw("fail to cast into Int")
6969 }
7070
7171
7272 func D (y) = {
7373 let z = y
7474 if ($isInstanceOf(z, "String"))
7575 then {
7676 let E = z
7777 E
7878 }
7979 else throw("fail to cast into String")
8080 }
8181
8282
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
86-func G () = "%s__managerPublicKey"
86+let G = 1
87+
88+let H = 2
89+
90+let I = 3
91+
92+let J = 4
93+
94+let K = 5
95+
96+let L = 6
97+
98+let M = 7
99+
100+let N = 8
101+
102+func O () = "%s__factoryConfig"
87103
88104
89-func H () = "%s__pendingManagerPublicKey"
105+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
90106
91107
92-let I = 1
93-
94-let J = 2
95-
96-let K = 3
97-
98-let L = 4
99-
100-let M = 5
101-
102-let N = 6
103-
104-let O = 7
105-
106-let P = 8
107-
108-func Q () = "%s__factoryConfig"
108+func R () = "%s__lpTokensList"
109109
110110
111-func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
111+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
112112
113113
114-func T () = "%s__lpTokensList"
114+func T (U) = makeString(["%s%s", "poolWeight", U], e)
115115
116116
117-func U (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
117+func V () = "%s__managerVaultAddress"
118118
119119
120-func V (W) = makeString(["%s%s", "poolWeight", W], e)
120+func W () = "%s__managerPublicKey"
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126-func Y () = split(valueOrElse(getString(X(), T()), ""), e)
126+func Y () = split(valueOrElse(getString(X(), R()), ""), e)
127127
128128
129-func Z (aa) = split(t(aa, Q()), e)
129+func Z (aa) = split(t(aa, O()), e)
130130
131131
132-func ab (ac) = addressFromStringValue(ac[J])
132+func ab (ac) = addressFromStringValue(ac[H])
133133
134134
135-func ad (ac) = addressFromStringValue(ac[M])
135+func ad (ac) = addressFromStringValue(ac[K])
136136
137137
138-func ae (ac) = addressFromStringValue(ac[I])
138+func ae (ac) = addressFromStringValue(ac[G])
139139
140140
141-func af (ac) = addressFromStringValue(ac[P])
141+func af (ac) = addressFromStringValue(ac[N])
142142
143143
144-func ag () = "%s__config"
144+func ag () = addressFromStringValue(getStringValue(V()))
145145
146146
147-func ah () = "%s%s__stats__activeTotalLocked"
147+func ah () = "%s__config"
148148
149149
150-func ai () = "%s%s__stats__locksDurationSumInBlocks"
150+func ai () = "%s%s__stats__activeTotalLocked"
151151
152152
153-func aj () = "%s%s__stats__locksCount"
153+func aj () = "%s%s__stats__locksDurationSumInBlocks"
154154
155155
156-func ak () = "%s%s__stats__activeUsersCount"
156+func ak () = "%s%s__stats__locksCount"
157157
158158
159-func al (am) = makeString(["%s%s%s__mapping__user2num", am], e)
159+func al () = "%s%s__stats__activeUsersCount"
160160
161161
162-func an (ao) = makeString(["%s%s%s__mapping__num2user", ao], e)
162+func am (an) = makeString(["%s%s%s__mapping__user2num", an], e)
163163
164164
165-func ap (aq) = makeString(["%s%d%s__paramByUserNum", aq, "amount"], e)
165+func ao (ap) = makeString(["%s%s%s__mapping__num2user", ap], e)
166166
167167
168-func ar (aq) = makeString(["%s%d%s__paramByUserNum", aq, "start"], e)
168+func aq (ar) = makeString(["%s%d%s__paramByUserNum", ar, "amount"], e)
169169
170170
171-func as (aq) = makeString(["%s%d%s__paramByUserNum", aq, "duration"], e)
171+func as (ar) = makeString(["%s%d%s__paramByUserNum", ar, "start"], e)
172172
173173
174-func at (aq) = makeString(["%s%d%s__paramByUserNum", aq, "k"], e)
174+func at (ar) = makeString(["%s%d%s__paramByUserNum", ar, "duration"], e)
175175
176176
177-func au (aq) = makeString(["%s%d%s__paramByUserNum", aq, "b"], e)
177+func au (ar) = makeString(["%s%d%s__paramByUserNum", ar, "k"], e)
178178
179179
180-func av (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "k", aw], e)
180+func av (ar) = makeString(["%s%d%s__paramByUserNum", ar, "b"], e)
181181
182182
183-func ax (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "b", aw], e)
183+func aw (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "k", ax], e)
184184
185185
186-func ay (aq) = makeString(["%s%d__userBoostEmissionLastInt", aq], e)
186+func ay (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "b", ax], e)
187187
188188
189-func az (aq) = makeString(["%s%d__maxBoostInt", aq], e)
189+func az (ar) = makeString(["%s%d__userBoostEmissionLastInt", ar], e)
190190
191191
192-func aA () = "%s%s__maxBoostInt__total"
192+func aA (ar) = makeString(["%s%d__maxBoostInt", ar], e)
193193
194194
195-func aB (aq) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aq], e)
195+func aB () = "%s%s__maxBoostInt__total"
196196
197197
198-func aC (aq) = makeString(["%s%d__userBoostClaimed", aq], e)
198+func aC (ar) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ar], e)
199199
200200
201-func aD () = "%s%s__gwxCached__total"
201+func aD (ar) = makeString(["%s%d__userBoostClaimed", ar], e)
202202
203203
204-func aE (aF,aG) = makeString(["%s%s%s__staked", aF, aG], e)
204+func aE () = "%s%s__gwxCached__total"
205205
206206
207-func aH (aG) = ("%s%s%s__staked__total__" + aG)
207+func aF (aG,aH) = makeString(["%s%s%s__staked", aG, aH], e)
208208
209209
210-func aI (aG,aF) = makeString(["%s%s%s__claimed", aF, aG], e)
210+func aI (aH) = ("%s%s%s__staked__total__" + aH)
211211
212212
213-func aJ (aG,aF) = makeString(["%s%s%s__claimedMinReward", aF, aG], e)
213+func aJ (aH,aG) = makeString(["%s%s%s__claimed", aG, aH], e)
214214
215215
216-func aK (aG,aF) = makeString(["%s%s%s__claimedBoostReward", aF, aG], e)
216+func aK (aH,aG) = makeString(["%s%s%s__claimedMinReward", aG, aH], e)
217217
218218
219-func aL (aM,s) = valueOrElse(getInteger(aM, s), 0)
219+func aL (aH,aG) = makeString(["%s%s%s__claimedBoostReward", aG, aH], e)
220220
221221
222-func aN () = "%s%s__ratePerBlock__current"
222+func aM (aN,s) = valueOrElse(getInteger(aN, s), 0)
223223
224224
225-func aO () = "%s%s__ratePerBlockMax__current"
225+func aO () = "%s%s__ratePerBlock__current"
226226
227227
228-func aP () = "%s%s__emission__startBlock"
228+func aP () = "%s%s__ratePerBlockMax__current"
229229
230230
231-func aQ () = "%s%s__emission__duration"
231+func aQ () = "%s%s__emission__startBlock"
232232
233233
234-func aR () = "%s%s__emission__endBlock"
234+func aR () = "%s%s__emission__duration"
235235
236236
237-func aS () = "%s__addonAddr"
237+func aS () = "%s%s__emission__endBlock"
238238
239239
240-let aT = X()
240+func aT () = "%s__addonAddr"
241241
242-let aU = Z(aT)
243242
244-let aV = ad(aU)
243+let aU = X()
245244
246-let aM = ae(aU)
245+let aV = Z(aU)
247246
248-let aW = af(aU)
247+let aW = ad(aV)
249248
250-let aX = ab(aU)
249+let aN = ae(aV)
251250
252-func aY (aZ) = {
253- let ba = invoke(aT, "getInFeeREADONLY", [toString(aZ)], nil)
254- if ($isInstanceOf(ba, "Int"))
255- then ba
256- else throw(($getType(ba) + " couldn't be cast to Int"))
251+let aX = af(aV)
252+
253+let aY = ab(aV)
254+
255+func aZ (ba) = {
256+ let bb = invoke(aU, "getInFeeREADONLY", [toString(ba)], nil)
257+ if ($isInstanceOf(bb, "Int"))
258+ then bb
259+ else throw(($getType(bb) + " couldn't be cast to Int"))
257260 }
258261
259262
260-func bb (aZ) = {
261- let ba = invoke(aT, "getOutFeeREADONLY", [toString(aZ)], nil)
262- if ($isInstanceOf(ba, "Int"))
263- then ba
264- else throw(($getType(ba) + " couldn't be cast to Int"))
263+func bc (ba) = {
264+ let bb = invoke(aU, "getOutFeeREADONLY", [toString(ba)], nil)
265+ if ($isInstanceOf(bb, "Int"))
266+ then bb
267+ else throw(($getType(bb) + " couldn't be cast to Int"))
265268 }
266269
267270
268-func bc (bd) = {
269- let be = t(aT, U(bd))
270- let bf = b
271- let bg = getIntegerValue(aT, V(be))
272- let bh = w(aV, aN())
273- let bi = w(aV, aO())
274- let bj = {
275- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
276- if ($isInstanceOf(ba, "Int"))
277- then ba
278- else throw(($getType(ba) + " couldn't be cast to Int"))
271+func bd (be) = {
272+ let bf = t(aU, S(be))
273+ let bg = b
274+ let bh = getIntegerValue(aU, T(bf))
275+ let bi = w(aW, aO())
276+ let bj = w(aW, aP())
277+ let bk = {
278+ let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
279+ if ($isInstanceOf(bb, "Int"))
280+ then bb
281+ else throw(($getType(bb) + " couldn't be cast to Int"))
279282 }
280- let bk = (fraction(bh, bg, bf) / bj)
281- let bl = fraction(bi, bg, bf)
282- let bm = (bj * b)
283- let bn = v(aM, aH(bd))
284-[bk, bm, bn]
283+ let bl = (fraction(bi, bh, bg) / bk)
284+ let bm = fraction(bj, bh, bg)
285+ let bn = (bk * b)
286+ let bo = v(aN, aI(be))
287+[bl, bn, bo]
285288 }
286289
287290
288-func bo (bp,bq,br) = {
289- let bs = fraction(bq, b, br)
290- let bt = fraction(bp, bs, b)
291-[bt]
291+func bp (bq,br,bs) = {
292+ let bt = fraction(br, b, bs)
293+ let bu = fraction(bq, bt, b)
294+[bu]
292295 }
293296
294297
295-func bu (bv,s,bw) = if ((bw == "string"))
296- then getStringValue(bv, s)
297- else if ((bw == "integer"))
298- then toString(getIntegerValue(bv, s))
299- else if ((bw == "boolean"))
300- then toString(getBooleanValue(bv, s))
298+func bv (bw,s,bx) = if ((bx == "string"))
299+ then getStringValue(bw, s)
300+ else if ((bx == "integer"))
301+ then toString(getIntegerValue(bw, s))
302+ else if ((bx == "boolean"))
303+ then toString(getBooleanValue(bw, s))
301304 else throw("unknown type. expected string/integer/boolean")
302305
303306
304-func bx () = {
305- let z = getString(G())
307+func by () = {
308+ let bz = ag()
309+ let z = getString(bz, W())
306310 if ($isInstanceOf(z, "String"))
307311 then {
308- let by = z
309- fromBase58String(by)
312+ let bA = z
313+ fromBase58String(bA)
310314 }
311315 else if ($isInstanceOf(z, "Unit"))
312316 then unit
313317 else throw("Match error")
314318 }
315319
316320
317-func bz () = {
318- let z = getString(H())
319- if ($isInstanceOf(z, "String"))
321+func bB (bC) = {
322+ let z = by()
323+ if ($isInstanceOf(z, "ByteVector"))
320324 then {
321- let by = z
322- fromBase58String(by)
325+ let bD = z
326+ (bC.callerPublicKey == bD)
323327 }
324328 else if ($isInstanceOf(z, "Unit"))
325- then unit
329+ then (bC.caller == this)
326330 else throw("Match error")
327331 }
328332
329333
330-func bA (bB) = {
331- let bC = throw("Permission denied")
332- let z = bx()
333- if ($isInstanceOf(z, "ByteVector"))
334- then {
335- let bD = z
336- if ((bB.callerPublicKey == bD))
337- then true
338- else bC
339- }
340- else if ($isInstanceOf(z, "Unit"))
341- then if ((bB.caller == this))
342- then true
343- else bC
344- else throw("Match error")
345- }
334+func bE (bC) = if (bB(bC))
335+ then true
336+ else throw("permission denied")
346337
347338
348-@Callable(bB)
349-func constructor (bE) = {
350- let bF = bA(bB)
351- if ((bF == bF))
352- then [StringEntry(F(), bE)]
339+@Callable(bC)
340+func constructor (bF) = {
341+ let bG = bE(bC)
342+ if ((bG == bG))
343+ then [StringEntry(F(), bF)]
353344 else throw("Strict value is not equal to itself.")
354345 }
355346
356347
357348
358-@Callable(bB)
359-func currentRewardRateREADONLY (bd) = {
360- let bG = bc(bd)
361- let bh = bG[0]
362- let bm = bG[1]
363- let bn = bG[2]
364- let bH = {
365- let ba = invoke(aX, "getVotingResultStakedREADONLY", [bd], nil)
366- if ($isInstanceOf(ba, "Int"))
367- then ba
368- else throw(($getType(ba) + " couldn't be cast to Int"))
349+@Callable(bC)
350+func currentRewardRateREADONLY (be) = {
351+ let bH = bd(be)
352+ let bi = bH[0]
353+ let bn = bH[1]
354+ let bo = bH[2]
355+ let bI = {
356+ let bb = invoke(aY, "getVotingResultStakedREADONLY", [be], nil)
357+ if ($isInstanceOf(bb, "Int"))
358+ then bb
359+ else throw(($getType(bb) + " couldn't be cast to Int"))
369360 }
370- $Tuple2(nil, makeString(["%d%d%d%d", toString(bh), toString(bm), toString(bn), toString(bH)], e))
361+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bi), toString(bn), toString(bo), toString(bI)], e))
371362 }
372363
373364
374365
375-@Callable(bB)
376-func currentUserRewardRateREADONLY (bd,am) = {
377- let bG = bc(bd)
378- let bh = bG[0]
379- let bm = bG[1]
380- let bn = bG[2]
381- let bI = v(aM, aE(am, bd))
382- let bJ = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
383- let bK = valueOrErrorMessage(parseInt(bJ[5]), "couldn't parse minRewardPart")
384- let bL = valueOrErrorMessage(parseInt(bJ[6]), "couldn't parse boostRewardPart")
385- let bM = bJ[7]
386- let bN = if ((bL == 0))
366+@Callable(bC)
367+func currentUserRewardRateREADONLY (be,an) = {
368+ let bH = bd(be)
369+ let bi = bH[0]
370+ let bn = bH[1]
371+ let bo = bH[2]
372+ let bJ = v(aN, aF(an, be))
373+ let bK = split(D(invoke(aN, "claimWxREADONLY", [be, an], nil)), e)
374+ let bL = valueOrErrorMessage(parseInt(bK[5]), "couldn't parse minRewardPart")
375+ let bM = valueOrErrorMessage(parseInt(bK[6]), "couldn't parse boostRewardPart")
376+ let bN = bK[7]
377+ let bO = if ((bM == 0))
387378 then (1 * b)
388- else fraction((bK + bL), b, bK)
389- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bI), toString(bN), bM], e))
379+ else fraction((bL + bM), b, bL)
380+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bi), toString(bn), toString(bo), toString(bJ), toString(bO), bN], e))
390381 }
391382
392383
393384
394-@Callable(bB)
395-func calcBoostBulkInternalREADONLY (bO,bP,bQ,bR,bS,bT,bU) = if ((bO == size(bP)))
396- then $Tuple2(nil, bU)
385+@Callable(bC)
386+func calcBoostBulkInternalREADONLY (bP,bQ,bR,bS,bT,bU,bV) = if ((bP == size(bQ)))
387+ then $Tuple2(nil, bV)
397388 else {
398- let bV = bP[bO]
399- let bW = bQ[bO]
400- let bX = bR[bO]
401- let bY = bS[bO]
402- let bZ = {
403- let ba = invoke(this, "calcBoostREADONLY", [bV, bW, bX, bY, bT], nil)
404- if ($isInstanceOf(ba, "String"))
405- then ba
406- else throw(($getType(ba) + " couldn't be cast to String"))
389+ let bW = bQ[bP]
390+ let bX = bR[bP]
391+ let bY = bS[bP]
392+ let bZ = bT[bP]
393+ let ca = {
394+ let bb = invoke(this, "calcBoostREADONLY", [bW, bX, bY, bZ, bU], nil)
395+ if ($isInstanceOf(bb, "String"))
396+ then bb
397+ else throw(($getType(bb) + " couldn't be cast to String"))
407398 }
408- let ca = (bU :+ bZ)
409- let cb = {
410- let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bO + 1), bP, bQ, bR, bS, bT, ca], nil)
411- if ($isInstanceOf(ba, "List[Any]"))
412- then ba
413- else throw(($getType(ba) + " couldn't be cast to List[Any]"))
399+ let cb = (bV :+ ca)
400+ let cc = {
401+ let bb = invoke(this, "calcBoostBulkInternalREADONLY", [(bP + 1), bQ, bR, bS, bT, bU, cb], nil)
402+ if ($isInstanceOf(bb, "List[Any]"))
403+ then bb
404+ else throw(($getType(bb) + " couldn't be cast to List[Any]"))
414405 }
415- if ((cb == cb))
416- then $Tuple2(nil, cb)
406+ if ((cc == cc))
407+ then $Tuple2(nil, cc)
417408 else throw("Strict value is not equal to itself.")
418409 }
419410
420411
421412
422-@Callable(bB)
423-func calcBoostBulkREADONLY (bV,bW,bX,bY,bT) = {
424- let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bV, bW, bX, bY, bT, nil], nil)
425- $Tuple2(nil, ca)
413+@Callable(bC)
414+func calcBoostBulkREADONLY (bW,bX,bY,bZ,bU) = {
415+ let cb = invoke(this, "calcBoostBulkInternalREADONLY", [0, bW, bX, bY, bZ, bU, nil], nil)
416+ $Tuple2(nil, cb)
426417 }
427418
428419
429420
430-@Callable(bB)
431-func calcBoostREADONLY (bV,bW,bX,bY,bT) = {
432- let cc = {
433- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
434- if ($isInstanceOf(ba, "Int"))
435- then ba
436- else throw(($getType(ba) + " couldn't be cast to Int"))
421+@Callable(bC)
422+func calcBoostREADONLY (bW,bX,bY,bZ,bU) = {
423+ let cd = {
424+ let bb = invoke(aW, "getBoostCoeffREADONLY", nil, nil)
425+ if ($isInstanceOf(bb, "Int"))
426+ then bb
427+ else throw(($getType(bb) + " couldn't be cast to Int"))
437428 }
438- let cd = aW
439- let ce = "empty"
440- let cf = parseIntValue(split(t(aX, ag()), e)[4])
441- let aG = if ((bY == ""))
442- then ce
443- else bY
444- let aF = if ((bT == ""))
445- then ce
446- else bT
447- let cg = valueOrElse(getString(aX, al(bT)), ce)
448- let ch = valueOrElse(getInteger(aX, ap(cg)), 0)
449- let ci = valueOrElse(getInteger(aX, ar(cg)), height)
450- let bq = valueOrElse(getInteger(aX, as(cg)), 0)
451- let cj = (ci + bq)
452- let ck = max([(cj - height), 0])
453- let cl = (ch + bV)
454- let cm = min([(ck + bW), cf])
455- let cn = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
456- let co = bo(cl, cm, cf)[0]
457- let cp = {
458- let ba = invoke(aX, "getTotalCachedGwxREADONLY", nil, nil)
459- if ($isInstanceOf(ba, "Int"))
460- then ba
461- else throw(($getType(ba) + " couldn't be cast to Int"))
429+ let ce = aX
430+ let cf = "empty"
431+ let cg = parseIntValue(split(t(aY, ah()), e)[4])
432+ let aH = if ((bZ == ""))
433+ then cf
434+ else bZ
435+ let aG = if ((bU == ""))
436+ then cf
437+ else bU
438+ let ch = valueOrElse(getString(aY, am(bU)), cf)
439+ let ci = valueOrElse(getInteger(aY, aq(ch)), 0)
440+ let cj = valueOrElse(getInteger(aY, as(ch)), height)
441+ let br = valueOrElse(getInteger(aY, at(ch)), 0)
442+ let ck = (cj + br)
443+ let cl = max([(ck - height), 0])
444+ let cm = (ci + bW)
445+ let cn = min([(cl + bX), cg])
446+ let co = B(x(invoke(aY, "gwxUserInfoREADONLY", [aG], nil))[0])
447+ let cp = bp(cm, cn, cg)[0]
448+ let cq = {
449+ let bb = invoke(aY, "getTotalCachedGwxREADONLY", nil, nil)
450+ if ($isInstanceOf(bb, "Int"))
451+ then bb
452+ else throw(($getType(bb) + " couldn't be cast to Int"))
462453 }
463- let cq = 1000
464- let cr = (w(aV, aN()) * cq)
465- let cs = aE(aF, aG)
466- let ct = aH(aG)
467- let cu = aL(aM, cs)
468- let cv = aL(aM, ct)
469- let bg = if ((aG != ce))
454+ let cr = 1000
455+ let cs = (w(aW, aO()) * cr)
456+ let ct = aF(aG, aH)
457+ let cu = aI(aH)
458+ let cv = aM(aN, ct)
459+ let cw = aM(aN, cu)
460+ let bh = if ((aH != cf))
470461 then {
471- let be = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
472- getIntegerValue(aT, V(be))
462+ let bf = valueOrErrorMessage(getString(aU, P(aH)), ("unsupported lp asset " + aH))
463+ getIntegerValue(aU, T(bf))
473464 }
474465 else 0
475- let cw = fraction(cr, bg, (f * cc))
476- let cx = if ((cv != 0))
477- then fraction(cw, b, cv)
466+ let cx = fraction(cs, bh, (f * cd))
467+ let cy = if ((cw != 0))
468+ then fraction(cx, b, cw)
478469 else 0
479- let cy = fraction(cx, cu, b)
480- let cz = (cw * (cc - 1))
481- let cA = fraction(cn, cz, cp)
482- let cB = min([cA, (cy * (cc - 1))])
483- let cC = if ((cy == 0))
470+ let cz = fraction(cy, cv, b)
471+ let cA = (cx * (cd - 1))
472+ let cB = fraction(co, cA, cq)
473+ let cC = min([cB, (cz * (cd - 1))])
474+ let cD = if ((cz == 0))
484475 then (1 * b)
485- else fraction((cB + cy), b, cy)
486- $Tuple2(nil, makeString(["%d%d%s", toString(co), toString(cC), "d"], e))
476+ else fraction((cC + cz), b, cz)
477+ $Tuple2(nil, makeString(["%d%d%s", toString(cp), toString(cD), "d"], e))
487478 }
488479
489480
490481
491-@Callable(bB)
482+@Callable(bC)
492483 func wxEmissionStatsREADONLY () = {
493- let cD = toString(b)
494- let cE = "1"
495- let bh = w(aV, aN())
496- let cF = w(aV, aP())
497- let cG = if ((cF > height))
484+ let cE = toString(b)
485+ let cF = "1"
486+ let bi = w(aW, aO())
487+ let cG = w(aW, aQ())
488+ let cH = if ((cG > height))
498489 then 0
499- else (height - cF)
500- let cH = (1440 * 365)
501- let cI = (201000000 * b)
502- let cJ = if ((cG > cH))
503- then cI
504- else fraction(cI, cG, cH)
505- let cK = ((bh * cG) + cJ)
506- let cL = v(aX, ah())
507- let cM = v(aX, ai())
508- let cN = v(aX, aj())
509- $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
490+ else (height - cG)
491+ let cI = (1440 * 365)
492+ let cJ = (201000000 * b)
493+ let cK = if ((cH > cI))
494+ then cJ
495+ else fraction(cJ, cH, cI)
496+ let cL = ((bi * cH) + cK)
497+ let cM = v(aY, ai())
498+ let cN = v(aY, aj())
499+ let cO = v(aY, ak())
500+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cL), toString(cM), toString(cN), toString(cO)], e))
510501 }
511502
512503
513504
514-@Callable(bB)
515-func poolStatsREADONLY (cO) = {
516- let aZ = addressFromStringValue(t(aT, U(cO)))
517- let cP = {
518- let ba = invoke(aT, "getPoolStatusREADONLY", [toString(aZ)], nil)
519- if ($isInstanceOf(ba, "Int"))
520- then ba
521- else throw(($getType(ba) + " couldn't be cast to Int"))
505+@Callable(bC)
506+func poolStatsREADONLY (cP) = {
507+ let ba = addressFromStringValue(t(aU, S(cP)))
508+ let cQ = {
509+ let bb = invoke(aU, "getPoolStatusREADONLY", [toString(ba)], nil)
510+ if ($isInstanceOf(bb, "Int"))
511+ then bb
512+ else throw(($getType(bb) + " couldn't be cast to Int"))
522513 }
523- let cQ = "%d%d%d%d%d%d%d%d%d%s"
524- if ((cP == 4))
525- then $Tuple2(nil, makeString([cQ, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
514+ let cR = "%d%d%d%d%d%d%d%d%d%s"
515+ if ((cQ == 4))
516+ then $Tuple2(nil, makeString([cR, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
526517 else {
527- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
528- let bd = fromBase58String(D(cR[j]))
529- let cS = D(cR[k])
530- let cT = D(cR[l])
531- let cU = D(cR[o])
532- let cV = D(cR[p])
533- let cW = parseIntValue(D(cR[m]))
534- let cX = parseIntValue(D(cR[n]))
535- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
536- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cS], nil))
537- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cT], nil))
538- let db = if ((cY == 0))
518+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
519+ let be = fromBase58String(D(cS[j]))
520+ let cT = D(cS[k])
521+ let cU = D(cS[l])
522+ let cV = D(cS[o])
523+ let cW = D(cS[p])
524+ let cX = parseIntValue(D(cS[m]))
525+ let cY = parseIntValue(D(cS[n]))
526+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
527+ let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cT], nil))
528+ let db = B(invoke(ba, "getAccBalanceWrapperREADONLY", [cU], nil))
529+ let dc = if ((cZ == 0))
539530 then [toString(g), toString(g), toString(g)]
540- else x(invoke(aZ, "calcPricesWrapperREADONLY", [cZ, da, cY], nil))
541- let dc = 0
542- let dd = B(invoke(aZ, "fromX18WrapperREADONLY", [db[1], b], nil))
543- let de = B(invoke(aZ, "fromX18WrapperREADONLY", [db[2], b], nil))
544- let bg = getIntegerValue(aT, V(toString(aZ)))
545- let df = aY(aZ)
546- let dg = bb(aZ)
547- let dh = {
548- let ba = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aZ)], nil)
549- if ($isInstanceOf(ba, "Boolean"))
550- then ba
551- else throw(($getType(ba) + " couldn't be cast to Boolean"))
531+ else x(invoke(ba, "calcPricesWrapperREADONLY", [da, db, cZ], nil))
532+ let dd = 0
533+ let de = B(invoke(ba, "fromX18WrapperREADONLY", [dc[1], b], nil))
534+ let df = B(invoke(ba, "fromX18WrapperREADONLY", [dc[2], b], nil))
535+ let bh = getIntegerValue(aU, T(toString(ba)))
536+ let dg = aZ(ba)
537+ let dh = bc(ba)
538+ let di = {
539+ let bb = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(ba)], nil)
540+ if ($isInstanceOf(bb, "Boolean"))
541+ then bb
542+ else throw(($getType(bb) + " couldn't be cast to Boolean"))
552543 }
553- let di = !(dh)
554- $Tuple2(nil, makeString([cQ, toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(bg), toString(df), toString(dg), toString(di)], e))
544+ let dj = !(di)
545+ $Tuple2(nil, makeString([cR, toString(da), toString(db), toString(cZ), toString(dd), toString(de), toString(df), toString(bh), toString(dg), toString(dh), toString(dj)], e))
555546 }
556547 }
557548
558549
559550
560-@Callable(bB)
561-func poolEvaluatePutByAmountAssetREADONLY (cO,dj) = {
562- let aZ = addressFromStringValue(t(aT, U(cO)))
563- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
564- let bd = fromBase58String(D(cR[j]))
565- let dk = D(cR[k])
566- let dl = fromBase58String(dk)
567- let dm = D(cR[l])
568- let dn = fromBase58String(dm)
569- let cW = parseIntValue(D(cR[m]))
570- let cX = parseIntValue(D(cR[n]))
571- let do = D(cR[i])
572- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
573- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
574- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
575- let dp = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [cZ, cW], nil)))
576- let dq = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [da, cX], nil)))
577- let dr = if ((cY == 0))
551+@Callable(bC)
552+func poolEvaluatePutByAmountAssetREADONLY (cP,dk) = {
553+ let ba = addressFromStringValue(t(aU, S(cP)))
554+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
555+ let be = fromBase58String(D(cS[j]))
556+ let dl = D(cS[k])
557+ let dm = fromBase58String(dl)
558+ let dn = D(cS[l])
559+ let do = fromBase58String(dn)
560+ let cX = parseIntValue(D(cS[m]))
561+ let cY = parseIntValue(D(cS[n]))
562+ let dp = D(cS[i])
563+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
564+ let da = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
565+ let db = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
566+ let dq = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [da, cX], nil)))
567+ let dr = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [db, cY], nil)))
568+ let ds = if ((cZ == 0))
578569 then g
579- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
580- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
581- let ds = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dj, cW], nil)))
582- let dt = fraction(ds, dr, d)
583- let du = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
584- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
585- let dv = {
586- let z = ca
570+ else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dr), toString(dq)], nil)))
571+ let dd = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
572+ let dt = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dk, cX], nil)))
573+ let du = fraction(dt, ds, d)
574+ let dv = B(invoke(ba, "fromX18WrapperREADONLY", [toString(du), cY], nil))
575+ let cb = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
576+ let dw = {
577+ let z = cb
587578 if (if (if ($isInstanceOf(z._1, "Int"))
588579 then if ($isInstanceOf(z._3, "Int"))
589580 then if ($isInstanceOf(z._4, "Int"))
590581 then if ($isInstanceOf(z._5, "Int"))
591582 then $isInstanceOf(z._6, "Int")
592583 else false
593584 else false
594585 else false
595586 else false)
596587 then (size(z) == 13)
597588 else false)
598589 then {
599- let dw = z._1
600- let dx = z._3
601- let dy = z._4
602- let dz = z._5
603- let dA = z._6
604- $Tuple5(dw, dx, dy, dz, dA)
590+ let dx = z._1
591+ let dy = z._3
592+ let dz = z._4
593+ let dA = z._5
594+ let dB = z._6
595+ $Tuple5(dx, dy, dz, dA, dB)
605596 }
606597 else throw("Couldn't cast types")
607598 }
608- let dw = dv._1
609- let dx = dv._2
610- let dy = dv._3
611- let dz = dv._4
612- let dA = dv._5
613- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
599+ let dx = dw._1
600+ let dy = dw._2
601+ let dz = dw._3
602+ let dA = dw._4
603+ let dB = dw._5
604+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dd), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
614605 }
615606
616607
617608
618-@Callable(bB)
619-func poolEvaluatePutByPriceAssetREADONLY (cO,du) = {
620- let aZ = addressFromStringValue(t(aT, U(cO)))
621- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
622- let bd = fromBase58String(D(cR[j]))
623- let dk = D(cR[k])
624- let dl = fromBase58String(dk)
625- let dm = D(cR[l])
626- let dn = fromBase58String(dm)
627- let cW = parseIntValue(D(cR[m]))
628- let cX = parseIntValue(D(cR[n]))
629- let do = D(cR[i])
630- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
631- let dB = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
632- let dC = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
633- let dD = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, cW], nil)))
634- let dE = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dC, cX], nil)))
635- let dr = if ((cY == 0))
609+@Callable(bC)
610+func poolEvaluatePutByPriceAssetREADONLY (cP,dv) = {
611+ let ba = addressFromStringValue(t(aU, S(cP)))
612+ let cS = x(invoke(ba, "getPoolConfigWrapperREADONLY", nil, nil))
613+ let be = fromBase58String(D(cS[j]))
614+ let dl = D(cS[k])
615+ let dm = fromBase58String(dl)
616+ let dn = D(cS[l])
617+ let do = fromBase58String(dn)
618+ let cX = parseIntValue(D(cS[m]))
619+ let cY = parseIntValue(D(cS[n]))
620+ let dp = D(cS[i])
621+ let cZ = valueOrErrorMessage(assetInfo(be), (("Asset " + toBase58String(be)) + " doesn't exist")).quantity
622+ let dC = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dl], nil))
623+ let dD = B(invoke(ba, "getAccBalanceWrapperREADONLY", [dn], nil))
624+ let dE = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dC, cX], nil)))
625+ let dF = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dD, cY], nil)))
626+ let ds = if ((cZ == 0))
636627 then g
637- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
638- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
639- let dt = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [du, cX], nil)))
640- let ds = fraction(dt, d, dr)
641- let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(ds), cW], nil))
642- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
643- let dF = {
644- let z = ca
628+ else parseBigIntValue(D(invoke(ba, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
629+ let dd = B(invoke(ba, "fromX18WrapperREADONLY", [toString(ds), b], nil))
630+ let du = parseBigIntValue(D(invoke(ba, "toX18WrapperREADONLY", [dv, cY], nil)))
631+ let dt = fraction(du, d, ds)
632+ let dk = B(invoke(ba, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
633+ let cb = invoke(ba, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
634+ let dG = {
635+ let z = cb
645636 if (if (if ($isInstanceOf(z._1, "Int"))
646637 then if ($isInstanceOf(z._3, "Int"))
647638 then if ($isInstanceOf(z._4, "Int"))
648639 then if ($isInstanceOf(z._5, "Int"))
649640 then $isInstanceOf(z._6, "Int")
650641 else false
651642 else false
652643 else false
653644 else false)
654645 then (size(z) == 13)
655646 else false)
656647 then {
657- let dw = z._1
658- let dx = z._3
659- let dy = z._4
660- let dz = z._5
661- let dA = z._6
662- $Tuple5(dw, dx, dy, dz, dA)
648+ let dx = z._1
649+ let dy = z._3
650+ let dz = z._4
651+ let dA = z._5
652+ let dB = z._6
653+ $Tuple5(dx, dy, dz, dA, dB)
663654 }
664655 else throw("Couldn't cast types")
665656 }
666- let dw = dF._1
667- let dx = dF._2
668- let dy = dF._3
669- let dz = dF._4
670- let dA = dF._5
671- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
657+ let dx = dG._1
658+ let dy = dG._2
659+ let dz = dG._3
660+ let dA = dG._4
661+ let dB = dG._5
662+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dd), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
672663 }
673664
674665
675666
676-@Callable(bB)
677-func poolEvaluateGetREADONLY (dG,dH) = {
678- let aZ = addressFromStringValue(t(aT, U(dG)))
679- let ca = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(aZ)], nil)
680- let dI = {
681- let z = ca
667+@Callable(bC)
668+func poolEvaluateGetREADONLY (dH,dI) = {
669+ let ba = addressFromStringValue(t(aU, S(dH)))
670+ let cb = invoke(ba, "estimateGetOperationWrapperREADONLY", ["", dH, dI, toString(ba)], nil)
671+ let dJ = {
672+ let z = cb
682673 if (if (if ($isInstanceOf(z._1, "Int"))
683674 then if ($isInstanceOf(z._2, "Int"))
684675 then if ($isInstanceOf(z._5, "Int"))
685676 then if ($isInstanceOf(z._6, "Int"))
686677 then if ($isInstanceOf(z._7, "Int"))
687678 then if ($isInstanceOf(z._8, "String"))
688679 then $isInstanceOf(z._9, "String")
689680 else false
690681 else false
691682 else false
692683 else false
693684 else false
694685 else false)
695686 then (size(z) == 10)
696687 else false)
697688 then {
698- let dJ = z._1
699- let dK = z._2
700- let dy = z._5
701- let dz = z._6
702- let dA = z._7
703- let dc = z._8
704- let do = z._9
705- $Tuple7(dJ, dK, dy, dz, dA, dc, do)
689+ let dK = z._1
690+ let dL = z._2
691+ let dz = z._5
692+ let dA = z._6
693+ let dB = z._7
694+ let dd = z._8
695+ let dp = z._9
696+ $Tuple7(dK, dL, dz, dA, dB, dd, dp)
706697 }
707698 else throw("Couldn't cast types")
708699 }
709- let dJ = dI._1
710- let dK = dI._2
711- let dy = dI._3
712- let dz = dI._4
713- let dA = dI._5
714- let dc = dI._6
715- let do = dI._7
716- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), dc, do], e))
700+ let dK = dJ._1
701+ let dL = dJ._2
702+ let dz = dJ._3
703+ let dA = dJ._4
704+ let dB = dJ._5
705+ let dd = dJ._6
706+ let dp = dJ._7
707+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dz), toString(dA), toString(dB), dd, dp], e))
717708 }
718709
719710
720711
721-@Callable(bB)
722-func gwxUserInfoREADONLY (am) = {
723- let dL = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
724- let dM = B(dL[0])
725- $Tuple2(nil, makeString(["%d", toString(dM)], e))
712+@Callable(bC)
713+func gwxUserInfoREADONLY (an) = {
714+ let dM = x(invoke(aY, "gwxUserInfoREADONLY", [an], nil))
715+ let dN = B(dM[0])
716+ $Tuple2(nil, makeString(["%d", toString(dN)], e))
726717 }
727718
728719
729720
730-@Callable(bB)
731-func unstakeAndGetOneTknV2 (aZ,dN,dO,dP) = {
732- let cb = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dN, dO, dP], nil)
733- if ((cb == cb))
721+@Callable(bC)
722+func unstakeAndGetOneTknV2 (ba,dO,dP,dQ) = {
723+ let cc = invoke(addressFromStringValue(ba), "unstakeAndGetOneTknV2", [dO, dP, dQ], nil)
724+ if ((cc == cc))
734725 then $Tuple2(nil, unit)
735726 else throw("Strict value is not equal to itself.")
736727 }
737728
738729
739730
740-@Callable(bB)
741-func getKeysBulkInternal (bO,dQ,bU) = if ((bO == size(dQ)))
742- then $Tuple2(nil, bU)
731+@Callable(bC)
732+func getKeysBulkInternal (bP,dR,bV) = if ((bP == size(dR)))
733+ then $Tuple2(nil, bV)
743734 else {
744- let dR = split(dQ[bO], "++")
745- let bv = addressFromStringValue(dR[0])
746- let s = dR[1]
747- let bw = dR[2]
748- let y = bu(bv, s, bw)
749- let ca = (bU :+ y)
750- let cb = invoke(this, "getKeysBulkInternal", [(bO + 1), dQ, ca], nil)
751- if ((cb == cb))
752- then $Tuple2(nil, cb)
735+ let dS = split(dR[bP], "++")
736+ let bw = addressFromStringValue(dS[0])
737+ let s = dS[1]
738+ let bx = dS[2]
739+ let y = bv(bw, s, bx)
740+ let cb = (bV :+ y)
741+ let cc = invoke(this, "getKeysBulkInternal", [(bP + 1), dR, cb], nil)
742+ if ((cc == cc))
743+ then $Tuple2(nil, cc)
753744 else throw("Strict value is not equal to itself.")
754745 }
755746
756747
757748
758-@Callable(bB)
759-func getKeysBulk (dQ) = {
760- let ca = invoke(this, "getKeysBulkInternal", [0, dQ, nil], nil)
761- $Tuple2(nil, ca)
749+@Callable(bC)
750+func getKeysBulk (dR) = {
751+ let cb = invoke(this, "getKeysBulkInternal", [0, dR, nil], nil)
752+ $Tuple2(nil, cb)
762753 }
763754
764755
765-
766-@Callable(bB)
767-func setManager (dS) = {
768- let bF = bA(bB)
769- if ((bF == bF))
770- then {
771- let dT = fromBase58String(dS)
772- if ((dT == dT))
773- then [StringEntry(H(), dS)]
774- else throw("Strict value is not equal to itself.")
775- }
776- else throw("Strict value is not equal to itself.")
777- }
778-
779-
780-
781-@Callable(bB)
782-func confirmManager () = {
783- let dU = bz()
784- let dV = if (isDefined(dU))
785- then true
786- else throw("No pending manager")
787- if ((dV == dV))
788- then {
789- let dW = if ((bB.callerPublicKey == value(dU)))
790- then true
791- else throw("You are not pending manager")
792- if ((dW == dW))
793- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
794- else throw("Strict value is not equal to itself.")
795- }
796- else throw("Strict value is not equal to itself.")
797- }
798-
799-
800-@Verifier(dX)
801-func dY () = {
802- let dZ = {
803- let z = bx()
756+@Verifier(dT)
757+func dU () = {
758+ let dV = {
759+ let z = by()
804760 if ($isInstanceOf(z, "ByteVector"))
805761 then {
806762 let bD = z
807763 bD
808764 }
809765 else if ($isInstanceOf(z, "Unit"))
810- then dX.senderPublicKey
766+ then dT.senderPublicKey
811767 else throw("Match error")
812768 }
813- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
769+ sigVerify(dT.bodyBytes, dT.proofs[0], dV)
814770 }
815771

github/deemru/w8io/169f3d6 
261.79 ms