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:
Old | New | Differences | |
---|---|---|---|
83 | 83 | func F () = "%s%s__config__factoryAddress" | |
84 | 84 | ||
85 | 85 | ||
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" | |
87 | 103 | ||
88 | 104 | ||
89 | - | func | |
105 | + | func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e) | |
90 | 106 | ||
91 | 107 | ||
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" | |
109 | 109 | ||
110 | 110 | ||
111 | - | func | |
111 | + | func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e) | |
112 | 112 | ||
113 | 113 | ||
114 | - | func T () = "%s | |
114 | + | func T (U) = makeString(["%s%s", "poolWeight", U], e) | |
115 | 115 | ||
116 | 116 | ||
117 | - | func | |
117 | + | func V () = "%s__managerVaultAddress" | |
118 | 118 | ||
119 | 119 | ||
120 | - | func | |
120 | + | func W () = "%s__managerPublicKey" | |
121 | 121 | ||
122 | 122 | ||
123 | 123 | func X () = addressFromStringValue(r(F())) | |
124 | 124 | ||
125 | 125 | ||
126 | - | func Y () = split(valueOrElse(getString(X(), | |
126 | + | func Y () = split(valueOrElse(getString(X(), R()), ""), e) | |
127 | 127 | ||
128 | 128 | ||
129 | - | func Z (aa) = split(t(aa, | |
129 | + | func Z (aa) = split(t(aa, O()), e) | |
130 | 130 | ||
131 | 131 | ||
132 | - | func ab (ac) = addressFromStringValue(ac[ | |
132 | + | func ab (ac) = addressFromStringValue(ac[H]) | |
133 | 133 | ||
134 | 134 | ||
135 | - | func ad (ac) = addressFromStringValue(ac[ | |
135 | + | func ad (ac) = addressFromStringValue(ac[K]) | |
136 | 136 | ||
137 | 137 | ||
138 | - | func ae (ac) = addressFromStringValue(ac[ | |
138 | + | func ae (ac) = addressFromStringValue(ac[G]) | |
139 | 139 | ||
140 | 140 | ||
141 | - | func af (ac) = addressFromStringValue(ac[ | |
141 | + | func af (ac) = addressFromStringValue(ac[N]) | |
142 | 142 | ||
143 | 143 | ||
144 | - | func ag () = | |
144 | + | func ag () = addressFromStringValue(getStringValue(V())) | |
145 | 145 | ||
146 | 146 | ||
147 | - | func ah () = "%s | |
147 | + | func ah () = "%s__config" | |
148 | 148 | ||
149 | 149 | ||
150 | - | func ai () = "%s%s__stats__ | |
150 | + | func ai () = "%s%s__stats__activeTotalLocked" | |
151 | 151 | ||
152 | 152 | ||
153 | - | func aj () = "%s%s__stats__ | |
153 | + | func aj () = "%s%s__stats__locksDurationSumInBlocks" | |
154 | 154 | ||
155 | 155 | ||
156 | - | func ak () = "%s%s__stats__ | |
156 | + | func ak () = "%s%s__stats__locksCount" | |
157 | 157 | ||
158 | 158 | ||
159 | - | func al ( | |
159 | + | func al () = "%s%s__stats__activeUsersCount" | |
160 | 160 | ||
161 | 161 | ||
162 | - | func | |
162 | + | func am (an) = makeString(["%s%s%s__mapping__user2num", an], e) | |
163 | 163 | ||
164 | 164 | ||
165 | - | func | |
165 | + | func ao (ap) = makeString(["%s%s%s__mapping__num2user", ap], e) | |
166 | 166 | ||
167 | 167 | ||
168 | - | func | |
168 | + | func aq (ar) = makeString(["%s%d%s__paramByUserNum", ar, "amount"], e) | |
169 | 169 | ||
170 | 170 | ||
171 | - | func as ( | |
171 | + | func as (ar) = makeString(["%s%d%s__paramByUserNum", ar, "start"], e) | |
172 | 172 | ||
173 | 173 | ||
174 | - | func at ( | |
174 | + | func at (ar) = makeString(["%s%d%s__paramByUserNum", ar, "duration"], e) | |
175 | 175 | ||
176 | 176 | ||
177 | - | func au ( | |
177 | + | func au (ar) = makeString(["%s%d%s__paramByUserNum", ar, "k"], e) | |
178 | 178 | ||
179 | 179 | ||
180 | - | func av ( | |
180 | + | func av (ar) = makeString(["%s%d%s__paramByUserNum", ar, "b"], e) | |
181 | 181 | ||
182 | 182 | ||
183 | - | func | |
183 | + | func aw (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "k", ax], e) | |
184 | 184 | ||
185 | 185 | ||
186 | - | func ay ( | |
186 | + | func ay (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "b", ax], e) | |
187 | 187 | ||
188 | 188 | ||
189 | - | func az ( | |
189 | + | func az (ar) = makeString(["%s%d__userBoostEmissionLastInt", ar], e) | |
190 | 190 | ||
191 | 191 | ||
192 | - | func aA () = "%s% | |
192 | + | func aA (ar) = makeString(["%s%d__maxBoostInt", ar], e) | |
193 | 193 | ||
194 | 194 | ||
195 | - | func aB ( | |
195 | + | func aB () = "%s%s__maxBoostInt__total" | |
196 | 196 | ||
197 | 197 | ||
198 | - | func aC ( | |
198 | + | func aC (ar) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ar], e) | |
199 | 199 | ||
200 | 200 | ||
201 | - | func aD () = "%s% | |
201 | + | func aD (ar) = makeString(["%s%d__userBoostClaimed", ar], e) | |
202 | 202 | ||
203 | 203 | ||
204 | - | func aE ( | |
204 | + | func aE () = "%s%s__gwxCached__total" | |
205 | 205 | ||
206 | 206 | ||
207 | - | func | |
207 | + | func aF (aG,aH) = makeString(["%s%s%s__staked", aG, aH], e) | |
208 | 208 | ||
209 | 209 | ||
210 | - | func aI ( | |
210 | + | func aI (aH) = ("%s%s%s__staked__total__" + aH) | |
211 | 211 | ||
212 | 212 | ||
213 | - | func aJ (aG | |
213 | + | func aJ (aH,aG) = makeString(["%s%s%s__claimed", aG, aH], e) | |
214 | 214 | ||
215 | 215 | ||
216 | - | func aK (aG | |
216 | + | func aK (aH,aG) = makeString(["%s%s%s__claimedMinReward", aG, aH], e) | |
217 | 217 | ||
218 | 218 | ||
219 | - | func aL ( | |
219 | + | func aL (aH,aG) = makeString(["%s%s%s__claimedBoostReward", aG, aH], e) | |
220 | 220 | ||
221 | 221 | ||
222 | - | func | |
222 | + | func aM (aN,s) = valueOrElse(getInteger(aN, s), 0) | |
223 | 223 | ||
224 | 224 | ||
225 | - | func aO () = "%s%s__ | |
225 | + | func aO () = "%s%s__ratePerBlock__current" | |
226 | 226 | ||
227 | 227 | ||
228 | - | func aP () = "%s%s__ | |
228 | + | func aP () = "%s%s__ratePerBlockMax__current" | |
229 | 229 | ||
230 | 230 | ||
231 | - | func aQ () = "%s%s__emission__ | |
231 | + | func aQ () = "%s%s__emission__startBlock" | |
232 | 232 | ||
233 | 233 | ||
234 | - | func aR () = "%s%s__emission__ | |
234 | + | func aR () = "%s%s__emission__duration" | |
235 | 235 | ||
236 | 236 | ||
237 | - | func aS () = "%s__ | |
237 | + | func aS () = "%s%s__emission__endBlock" | |
238 | 238 | ||
239 | 239 | ||
240 | - | ||
240 | + | func aT () = "%s__addonAddr" | |
241 | 241 | ||
242 | - | let aU = Z(aT) | |
243 | 242 | ||
244 | - | let | |
243 | + | let aU = X() | |
245 | 244 | ||
246 | - | let | |
245 | + | let aV = Z(aU) | |
247 | 246 | ||
248 | - | let aW = | |
247 | + | let aW = ad(aV) | |
249 | 248 | ||
250 | - | let | |
249 | + | let aN = ae(aV) | |
251 | 250 | ||
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")) | |
257 | 260 | } | |
258 | 261 | ||
259 | 262 | ||
260 | - | func | |
261 | - | let | |
262 | - | if ($isInstanceOf( | |
263 | - | then | |
264 | - | else throw(($getType( | |
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")) | |
265 | 268 | } | |
266 | 269 | ||
267 | 270 | ||
268 | - | func | |
269 | - | let | |
270 | - | let | |
271 | - | let | |
272 | - | let | |
273 | - | let | |
274 | - | let | |
275 | - | let | |
276 | - | if ($isInstanceOf( | |
277 | - | then | |
278 | - | else throw(($getType( | |
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")) | |
279 | 282 | } | |
280 | - | let | |
281 | - | let | |
282 | - | let | |
283 | - | let | |
284 | - | [ | |
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] | |
285 | 288 | } | |
286 | 289 | ||
287 | 290 | ||
288 | - | func | |
289 | - | let | |
290 | - | let | |
291 | - | [ | |
291 | + | func bp (bq,br,bs) = { | |
292 | + | let bt = fraction(br, b, bs) | |
293 | + | let bu = fraction(bq, bt, b) | |
294 | + | [bu] | |
292 | 295 | } | |
293 | 296 | ||
294 | 297 | ||
295 | - | func | |
296 | - | then getStringValue( | |
297 | - | else if (( | |
298 | - | then toString(getIntegerValue( | |
299 | - | else if (( | |
300 | - | then toString(getBooleanValue( | |
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)) | |
301 | 304 | else throw("unknown type. expected string/integer/boolean") | |
302 | 305 | ||
303 | 306 | ||
304 | - | func bx () = { | |
305 | - | let z = getString(G()) | |
307 | + | func by () = { | |
308 | + | let bz = ag() | |
309 | + | let z = getString(bz, W()) | |
306 | 310 | if ($isInstanceOf(z, "String")) | |
307 | 311 | then { | |
308 | - | let | |
309 | - | fromBase58String( | |
312 | + | let bA = z | |
313 | + | fromBase58String(bA) | |
310 | 314 | } | |
311 | 315 | else if ($isInstanceOf(z, "Unit")) | |
312 | 316 | then unit | |
314 | 318 | } | |
315 | 319 | ||
316 | 320 | ||
317 | - | func | |
318 | - | let z = | |
319 | - | if ($isInstanceOf(z, " | |
321 | + | func bB (bC) = { | |
322 | + | let z = by() | |
323 | + | if ($isInstanceOf(z, "ByteVector")) | |
320 | 324 | then { | |
321 | - | let | |
322 | - | | |
325 | + | let bD = z | |
326 | + | (bC.callerPublicKey == bD) | |
323 | 327 | } | |
324 | 328 | else if ($isInstanceOf(z, "Unit")) | |
325 | - | then | |
329 | + | then (bC.caller == this) | |
326 | 330 | else throw("Match error") | |
327 | 331 | } | |
328 | 332 | ||
329 | 333 | ||
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") | |
346 | 337 | ||
347 | 338 | ||
348 | - | @Callable( | |
349 | - | func constructor ( | |
350 | - | let | |
351 | - | if (( | |
352 | - | then [StringEntry(F(), | |
339 | + | @Callable(bC) | |
340 | + | func constructor (bF) = { | |
341 | + | let bG = bE(bC) | |
342 | + | if ((bG == bG)) | |
343 | + | then [StringEntry(F(), bF)] | |
353 | 344 | else throw("Strict value is not equal to itself.") | |
354 | 345 | } | |
355 | 346 | ||
356 | 347 | ||
357 | 348 | ||
358 | - | @Callable( | |
359 | - | func currentRewardRateREADONLY ( | |
360 | - | let | |
361 | - | let | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | if ($isInstanceOf( | |
367 | - | then | |
368 | - | else throw(($getType( | |
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")) | |
369 | 360 | } | |
370 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
361 | + | $Tuple2(nil, makeString(["%d%d%d%d", toString(bi), toString(bn), toString(bo), toString(bI)], e)) | |
371 | 362 | } | |
372 | 363 | ||
373 | 364 | ||
374 | 365 | ||
375 | - | @Callable( | |
376 | - | func currentUserRewardRateREADONLY ( | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | let | |
386 | - | let | |
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)) | |
387 | 378 | then (1 * b) | |
388 | - | else fraction(( | |
389 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString( | |
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)) | |
390 | 381 | } | |
391 | 382 | ||
392 | 383 | ||
393 | 384 | ||
394 | - | @Callable( | |
395 | - | func calcBoostBulkInternalREADONLY ( | |
396 | - | then $Tuple2(nil, | |
385 | + | @Callable(bC) | |
386 | + | func calcBoostBulkInternalREADONLY (bP,bQ,bR,bS,bT,bU,bV) = if ((bP == size(bQ))) | |
387 | + | then $Tuple2(nil, bV) | |
397 | 388 | else { | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | let | |
403 | - | let | |
404 | - | if ($isInstanceOf( | |
405 | - | then | |
406 | - | else throw(($getType( | |
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")) | |
407 | 398 | } | |
408 | - | let | |
409 | - | let | |
410 | - | let | |
411 | - | if ($isInstanceOf( | |
412 | - | then | |
413 | - | else throw(($getType( | |
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]")) | |
414 | 405 | } | |
415 | - | if (( | |
416 | - | then $Tuple2(nil, | |
406 | + | if ((cc == cc)) | |
407 | + | then $Tuple2(nil, cc) | |
417 | 408 | else throw("Strict value is not equal to itself.") | |
418 | 409 | } | |
419 | 410 | ||
420 | 411 | ||
421 | 412 | ||
422 | - | @Callable( | |
423 | - | func calcBoostBulkREADONLY ( | |
424 | - | let | |
425 | - | $Tuple2(nil, | |
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) | |
426 | 417 | } | |
427 | 418 | ||
428 | 419 | ||
429 | 420 | ||
430 | - | @Callable( | |
431 | - | func calcBoostREADONLY ( | |
432 | - | let | |
433 | - | let | |
434 | - | if ($isInstanceOf( | |
435 | - | then | |
436 | - | else throw(($getType( | |
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")) | |
437 | 428 | } | |
438 | - | let | |
439 | - | let | |
440 | - | let | |
441 | - | let | |
442 | - | then | |
443 | - | else | |
444 | - | let | |
445 | - | then | |
446 | - | else | |
447 | - | let | |
448 | - | let | |
449 | - | let | |
450 | - | let | |
451 | - | let | |
452 | - | let | |
453 | - | let | |
454 | - | let | |
455 | - | let | |
456 | - | let | |
457 | - | let | |
458 | - | let | |
459 | - | if ($isInstanceOf( | |
460 | - | then | |
461 | - | else throw(($getType( | |
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")) | |
462 | 453 | } | |
463 | - | let | |
464 | - | let | |
465 | - | let | |
466 | - | let | |
467 | - | let | |
468 | - | let | |
469 | - | let | |
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)) | |
470 | 461 | then { | |
471 | - | let | |
472 | - | getIntegerValue( | |
462 | + | let bf = valueOrErrorMessage(getString(aU, P(aH)), ("unsupported lp asset " + aH)) | |
463 | + | getIntegerValue(aU, T(bf)) | |
473 | 464 | } | |
474 | 465 | else 0 | |
475 | - | let | |
476 | - | let | |
477 | - | then fraction( | |
466 | + | let cx = fraction(cs, bh, (f * cd)) | |
467 | + | let cy = if ((cw != 0)) | |
468 | + | then fraction(cx, b, cw) | |
478 | 469 | else 0 | |
479 | - | let | |
480 | - | let | |
481 | - | let | |
482 | - | let | |
483 | - | let | |
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)) | |
484 | 475 | then (1 * b) | |
485 | - | else fraction(( | |
486 | - | $Tuple2(nil, makeString(["%d%d%s", toString( | |
476 | + | else fraction((cC + cz), b, cz) | |
477 | + | $Tuple2(nil, makeString(["%d%d%s", toString(cp), toString(cD), "d"], e)) | |
487 | 478 | } | |
488 | 479 | ||
489 | 480 | ||
490 | 481 | ||
491 | - | @Callable( | |
482 | + | @Callable(bC) | |
492 | 483 | func wxEmissionStatsREADONLY () = { | |
493 | - | let | |
494 | - | let | |
495 | - | let | |
496 | - | let | |
497 | - | let | |
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)) | |
498 | 489 | then 0 | |
499 | - | else (height - | |
500 | - | let | |
501 | - | let | |
502 | - | let | |
503 | - | then | |
504 | - | else fraction( | |
505 | - | let | |
506 | - | let | |
507 | - | let | |
508 | - | let | |
509 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
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)) | |
510 | 501 | } | |
511 | 502 | ||
512 | 503 | ||
513 | 504 | ||
514 | - | @Callable( | |
515 | - | func poolStatsREADONLY ( | |
516 | - | let | |
517 | - | let | |
518 | - | let | |
519 | - | if ($isInstanceOf( | |
520 | - | then | |
521 | - | else throw(($getType( | |
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")) | |
522 | 513 | } | |
523 | - | let | |
524 | - | if (( | |
525 | - | then $Tuple2(nil, makeString([ | |
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)) | |
526 | 517 | else { | |
527 | - | let | |
528 | - | let | |
529 | - | let | |
530 | - | let | |
531 | - | let | |
532 | - | let | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
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)) | |
539 | 530 | then [toString(g), toString(g), toString(g)] | |
540 | - | else x(invoke( | |
541 | - | let | |
542 | - | let | |
543 | - | let | |
544 | - | let | |
545 | - | let | |
546 | - | let | |
547 | - | let | |
548 | - | let | |
549 | - | if ($isInstanceOf( | |
550 | - | then | |
551 | - | else throw(($getType( | |
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")) | |
552 | 543 | } | |
553 | - | let | |
554 | - | $Tuple2(nil, makeString([ | |
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)) | |
555 | 546 | } | |
556 | 547 | } | |
557 | 548 | ||
558 | 549 | ||
559 | 550 | ||
560 | - | @Callable( | |
561 | - | func poolEvaluatePutByAmountAssetREADONLY ( | |
562 | - | let | |
563 | - | let | |
564 | - | let | |
565 | - | let | |
566 | - | let | |
567 | - | let | |
568 | - | let | |
569 | - | let | |
570 | - | let | |
571 | - | let | |
572 | - | let | |
573 | - | let | |
574 | - | let | |
575 | - | let | |
576 | - | let | |
577 | - | let | |
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)) | |
578 | 569 | then g | |
579 | - | else parseBigIntValue(D(invoke( | |
580 | - | let | |
581 | - | let | |
582 | - | let | |
583 | - | let | |
584 | - | let | |
585 | - | let | |
586 | - | let z = | |
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 | |
587 | 578 | if (if (if ($isInstanceOf(z._1, "Int")) | |
588 | 579 | then if ($isInstanceOf(z._3, "Int")) | |
589 | 580 | then if ($isInstanceOf(z._4, "Int")) | |
596 | 587 | then (size(z) == 13) | |
597 | 588 | else false) | |
598 | 589 | then { | |
599 | - | let | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | let | |
604 | - | $Tuple5( | |
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) | |
605 | 596 | } | |
606 | 597 | else throw("Couldn't cast types") | |
607 | 598 | } | |
608 | - | let | |
609 | - | let | |
610 | - | let | |
611 | - | let | |
612 | - | let | |
613 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString( | |
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)) | |
614 | 605 | } | |
615 | 606 | ||
616 | 607 | ||
617 | 608 | ||
618 | - | @Callable( | |
619 | - | func poolEvaluatePutByPriceAssetREADONLY ( | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | let | |
625 | - | let | |
626 | - | let | |
627 | - | let | |
628 | - | let | |
629 | - | let | |
630 | - | let | |
631 | - | let | |
632 | - | let | |
633 | - | let | |
634 | - | let | |
635 | - | let | |
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)) | |
636 | 627 | then g | |
637 | - | else parseBigIntValue(D(invoke( | |
638 | - | let | |
639 | - | let | |
640 | - | let | |
641 | - | let | |
642 | - | let | |
643 | - | let | |
644 | - | let z = | |
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 | |
645 | 636 | if (if (if ($isInstanceOf(z._1, "Int")) | |
646 | 637 | then if ($isInstanceOf(z._3, "Int")) | |
647 | 638 | then if ($isInstanceOf(z._4, "Int")) | |
654 | 645 | then (size(z) == 13) | |
655 | 646 | else false) | |
656 | 647 | then { | |
657 | - | let | |
658 | - | let | |
659 | - | let | |
660 | - | let | |
661 | - | let | |
662 | - | $Tuple5( | |
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) | |
663 | 654 | } | |
664 | 655 | else throw("Couldn't cast types") | |
665 | 656 | } | |
666 | - | let | |
667 | - | let | |
668 | - | let | |
669 | - | let | |
670 | - | let | |
671 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString( | |
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)) | |
672 | 663 | } | |
673 | 664 | ||
674 | 665 | ||
675 | 666 | ||
676 | - | @Callable( | |
677 | - | func poolEvaluateGetREADONLY ( | |
678 | - | let | |
679 | - | let | |
680 | - | let | |
681 | - | let z = | |
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 | |
682 | 673 | if (if (if ($isInstanceOf(z._1, "Int")) | |
683 | 674 | then if ($isInstanceOf(z._2, "Int")) | |
684 | 675 | then if ($isInstanceOf(z._5, "Int")) | |
695 | 686 | then (size(z) == 10) | |
696 | 687 | else false) | |
697 | 688 | then { | |
698 | - | let | |
699 | - | let | |
700 | - | let | |
701 | - | let | |
702 | - | let | |
703 | - | let | |
704 | - | let | |
705 | - | $Tuple7( | |
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) | |
706 | 697 | } | |
707 | 698 | else throw("Couldn't cast types") | |
708 | 699 | } | |
709 | - | let | |
710 | - | let | |
711 | - | let | |
712 | - | let | |
713 | - | let | |
714 | - | let | |
715 | - | let | |
716 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString( | |
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)) | |
717 | 708 | } | |
718 | 709 | ||
719 | 710 | ||
720 | 711 | ||
721 | - | @Callable( | |
722 | - | func gwxUserInfoREADONLY ( | |
723 | - | let | |
724 | - | let | |
725 | - | $Tuple2(nil, makeString(["%d", toString( | |
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)) | |
726 | 717 | } | |
727 | 718 | ||
728 | 719 | ||
729 | 720 | ||
730 | - | @Callable( | |
731 | - | func unstakeAndGetOneTknV2 ( | |
732 | - | let | |
733 | - | if (( | |
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)) | |
734 | 725 | then $Tuple2(nil, unit) | |
735 | 726 | else throw("Strict value is not equal to itself.") | |
736 | 727 | } | |
737 | 728 | ||
738 | 729 | ||
739 | 730 | ||
740 | - | @Callable( | |
741 | - | func getKeysBulkInternal ( | |
742 | - | then $Tuple2(nil, | |
731 | + | @Callable(bC) | |
732 | + | func getKeysBulkInternal (bP,dR,bV) = if ((bP == size(dR))) | |
733 | + | then $Tuple2(nil, bV) | |
743 | 734 | else { | |
744 | - | let | |
745 | - | let | |
746 | - | let s = | |
747 | - | let | |
748 | - | let y = | |
749 | - | let | |
750 | - | let | |
751 | - | if (( | |
752 | - | then $Tuple2(nil, | |
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) | |
753 | 744 | else throw("Strict value is not equal to itself.") | |
754 | 745 | } | |
755 | 746 | ||
756 | 747 | ||
757 | 748 | ||
758 | - | @Callable( | |
759 | - | func getKeysBulk ( | |
760 | - | let | |
761 | - | $Tuple2(nil, | |
749 | + | @Callable(bC) | |
750 | + | func getKeysBulk (dR) = { | |
751 | + | let cb = invoke(this, "getKeysBulkInternal", [0, dR, nil], nil) | |
752 | + | $Tuple2(nil, cb) | |
762 | 753 | } | |
763 | 754 | ||
764 | 755 | ||
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() | |
804 | 760 | if ($isInstanceOf(z, "ByteVector")) | |
805 | 761 | then { | |
806 | 762 | let bD = z | |
807 | 763 | bD | |
808 | 764 | } | |
809 | 765 | else if ($isInstanceOf(z, "Unit")) | |
810 | - | then | |
766 | + | then dT.senderPublicKey | |
811 | 767 | else throw("Match error") | |
812 | 768 | } | |
813 | - | sigVerify( | |
769 | + | sigVerify(dT.bodyBytes, dT.proofs[0], dV) | |
814 | 770 | } | |
815 | 771 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 8 | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | let c = 18 | |
9 | 9 | ||
10 | 10 | let d = toBigInt(1000000000000000000) | |
11 | 11 | ||
12 | 12 | let e = "__" | |
13 | 13 | ||
14 | 14 | let f = b | |
15 | 15 | ||
16 | 16 | let g = toBigInt(0) | |
17 | 17 | ||
18 | 18 | let h = 1 | |
19 | 19 | ||
20 | 20 | let i = 2 | |
21 | 21 | ||
22 | 22 | let j = 3 | |
23 | 23 | ||
24 | 24 | let k = 4 | |
25 | 25 | ||
26 | 26 | let l = 5 | |
27 | 27 | ||
28 | 28 | let m = 6 | |
29 | 29 | ||
30 | 30 | let n = 7 | |
31 | 31 | ||
32 | 32 | let o = 8 | |
33 | 33 | ||
34 | 34 | let p = 9 | |
35 | 35 | ||
36 | 36 | let q = 10 | |
37 | 37 | ||
38 | 38 | func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined")) | |
39 | 39 | ||
40 | 40 | ||
41 | 41 | func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined")) | |
42 | 42 | ||
43 | 43 | ||
44 | 44 | func v (u,s) = valueOrElse(getInteger(u, s), 0) | |
45 | 45 | ||
46 | 46 | ||
47 | 47 | func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined")) | |
48 | 48 | ||
49 | 49 | ||
50 | 50 | func x (y) = { | |
51 | 51 | let z = y | |
52 | 52 | if ($isInstanceOf(z, "List[Any]")) | |
53 | 53 | then { | |
54 | 54 | let A = z | |
55 | 55 | A | |
56 | 56 | } | |
57 | 57 | else throw("fail to cast into List[Any]") | |
58 | 58 | } | |
59 | 59 | ||
60 | 60 | ||
61 | 61 | func B (y) = { | |
62 | 62 | let z = y | |
63 | 63 | if ($isInstanceOf(z, "Int")) | |
64 | 64 | then { | |
65 | 65 | let C = z | |
66 | 66 | C | |
67 | 67 | } | |
68 | 68 | else throw("fail to cast into Int") | |
69 | 69 | } | |
70 | 70 | ||
71 | 71 | ||
72 | 72 | func D (y) = { | |
73 | 73 | let z = y | |
74 | 74 | if ($isInstanceOf(z, "String")) | |
75 | 75 | then { | |
76 | 76 | let E = z | |
77 | 77 | E | |
78 | 78 | } | |
79 | 79 | else throw("fail to cast into String") | |
80 | 80 | } | |
81 | 81 | ||
82 | 82 | ||
83 | 83 | func F () = "%s%s__config__factoryAddress" | |
84 | 84 | ||
85 | 85 | ||
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" | |
87 | 103 | ||
88 | 104 | ||
89 | - | func | |
105 | + | func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e) | |
90 | 106 | ||
91 | 107 | ||
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" | |
109 | 109 | ||
110 | 110 | ||
111 | - | func | |
111 | + | func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e) | |
112 | 112 | ||
113 | 113 | ||
114 | - | func T () = "%s | |
114 | + | func T (U) = makeString(["%s%s", "poolWeight", U], e) | |
115 | 115 | ||
116 | 116 | ||
117 | - | func | |
117 | + | func V () = "%s__managerVaultAddress" | |
118 | 118 | ||
119 | 119 | ||
120 | - | func | |
120 | + | func W () = "%s__managerPublicKey" | |
121 | 121 | ||
122 | 122 | ||
123 | 123 | func X () = addressFromStringValue(r(F())) | |
124 | 124 | ||
125 | 125 | ||
126 | - | func Y () = split(valueOrElse(getString(X(), | |
126 | + | func Y () = split(valueOrElse(getString(X(), R()), ""), e) | |
127 | 127 | ||
128 | 128 | ||
129 | - | func Z (aa) = split(t(aa, | |
129 | + | func Z (aa) = split(t(aa, O()), e) | |
130 | 130 | ||
131 | 131 | ||
132 | - | func ab (ac) = addressFromStringValue(ac[ | |
132 | + | func ab (ac) = addressFromStringValue(ac[H]) | |
133 | 133 | ||
134 | 134 | ||
135 | - | func ad (ac) = addressFromStringValue(ac[ | |
135 | + | func ad (ac) = addressFromStringValue(ac[K]) | |
136 | 136 | ||
137 | 137 | ||
138 | - | func ae (ac) = addressFromStringValue(ac[ | |
138 | + | func ae (ac) = addressFromStringValue(ac[G]) | |
139 | 139 | ||
140 | 140 | ||
141 | - | func af (ac) = addressFromStringValue(ac[ | |
141 | + | func af (ac) = addressFromStringValue(ac[N]) | |
142 | 142 | ||
143 | 143 | ||
144 | - | func ag () = | |
144 | + | func ag () = addressFromStringValue(getStringValue(V())) | |
145 | 145 | ||
146 | 146 | ||
147 | - | func ah () = "%s | |
147 | + | func ah () = "%s__config" | |
148 | 148 | ||
149 | 149 | ||
150 | - | func ai () = "%s%s__stats__ | |
150 | + | func ai () = "%s%s__stats__activeTotalLocked" | |
151 | 151 | ||
152 | 152 | ||
153 | - | func aj () = "%s%s__stats__ | |
153 | + | func aj () = "%s%s__stats__locksDurationSumInBlocks" | |
154 | 154 | ||
155 | 155 | ||
156 | - | func ak () = "%s%s__stats__ | |
156 | + | func ak () = "%s%s__stats__locksCount" | |
157 | 157 | ||
158 | 158 | ||
159 | - | func al ( | |
159 | + | func al () = "%s%s__stats__activeUsersCount" | |
160 | 160 | ||
161 | 161 | ||
162 | - | func | |
162 | + | func am (an) = makeString(["%s%s%s__mapping__user2num", an], e) | |
163 | 163 | ||
164 | 164 | ||
165 | - | func | |
165 | + | func ao (ap) = makeString(["%s%s%s__mapping__num2user", ap], e) | |
166 | 166 | ||
167 | 167 | ||
168 | - | func | |
168 | + | func aq (ar) = makeString(["%s%d%s__paramByUserNum", ar, "amount"], e) | |
169 | 169 | ||
170 | 170 | ||
171 | - | func as ( | |
171 | + | func as (ar) = makeString(["%s%d%s__paramByUserNum", ar, "start"], e) | |
172 | 172 | ||
173 | 173 | ||
174 | - | func at ( | |
174 | + | func at (ar) = makeString(["%s%d%s__paramByUserNum", ar, "duration"], e) | |
175 | 175 | ||
176 | 176 | ||
177 | - | func au ( | |
177 | + | func au (ar) = makeString(["%s%d%s__paramByUserNum", ar, "k"], e) | |
178 | 178 | ||
179 | 179 | ||
180 | - | func av ( | |
180 | + | func av (ar) = makeString(["%s%d%s__paramByUserNum", ar, "b"], e) | |
181 | 181 | ||
182 | 182 | ||
183 | - | func | |
183 | + | func aw (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "k", ax], e) | |
184 | 184 | ||
185 | 185 | ||
186 | - | func ay ( | |
186 | + | func ay (ar,ax) = makeString(["%s%d%s%d__paramByPeriod", ar, "b", ax], e) | |
187 | 187 | ||
188 | 188 | ||
189 | - | func az ( | |
189 | + | func az (ar) = makeString(["%s%d__userBoostEmissionLastInt", ar], e) | |
190 | 190 | ||
191 | 191 | ||
192 | - | func aA () = "%s% | |
192 | + | func aA (ar) = makeString(["%s%d__maxBoostInt", ar], e) | |
193 | 193 | ||
194 | 194 | ||
195 | - | func aB ( | |
195 | + | func aB () = "%s%s__maxBoostInt__total" | |
196 | 196 | ||
197 | 197 | ||
198 | - | func aC ( | |
198 | + | func aC (ar) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ar], e) | |
199 | 199 | ||
200 | 200 | ||
201 | - | func aD () = "%s% | |
201 | + | func aD (ar) = makeString(["%s%d__userBoostClaimed", ar], e) | |
202 | 202 | ||
203 | 203 | ||
204 | - | func aE ( | |
204 | + | func aE () = "%s%s__gwxCached__total" | |
205 | 205 | ||
206 | 206 | ||
207 | - | func | |
207 | + | func aF (aG,aH) = makeString(["%s%s%s__staked", aG, aH], e) | |
208 | 208 | ||
209 | 209 | ||
210 | - | func aI ( | |
210 | + | func aI (aH) = ("%s%s%s__staked__total__" + aH) | |
211 | 211 | ||
212 | 212 | ||
213 | - | func aJ (aG | |
213 | + | func aJ (aH,aG) = makeString(["%s%s%s__claimed", aG, aH], e) | |
214 | 214 | ||
215 | 215 | ||
216 | - | func aK (aG | |
216 | + | func aK (aH,aG) = makeString(["%s%s%s__claimedMinReward", aG, aH], e) | |
217 | 217 | ||
218 | 218 | ||
219 | - | func aL ( | |
219 | + | func aL (aH,aG) = makeString(["%s%s%s__claimedBoostReward", aG, aH], e) | |
220 | 220 | ||
221 | 221 | ||
222 | - | func | |
222 | + | func aM (aN,s) = valueOrElse(getInteger(aN, s), 0) | |
223 | 223 | ||
224 | 224 | ||
225 | - | func aO () = "%s%s__ | |
225 | + | func aO () = "%s%s__ratePerBlock__current" | |
226 | 226 | ||
227 | 227 | ||
228 | - | func aP () = "%s%s__ | |
228 | + | func aP () = "%s%s__ratePerBlockMax__current" | |
229 | 229 | ||
230 | 230 | ||
231 | - | func aQ () = "%s%s__emission__ | |
231 | + | func aQ () = "%s%s__emission__startBlock" | |
232 | 232 | ||
233 | 233 | ||
234 | - | func aR () = "%s%s__emission__ | |
234 | + | func aR () = "%s%s__emission__duration" | |
235 | 235 | ||
236 | 236 | ||
237 | - | func aS () = "%s__ | |
237 | + | func aS () = "%s%s__emission__endBlock" | |
238 | 238 | ||
239 | 239 | ||
240 | - | ||
240 | + | func aT () = "%s__addonAddr" | |
241 | 241 | ||
242 | - | let aU = Z(aT) | |
243 | 242 | ||
244 | - | let | |
243 | + | let aU = X() | |
245 | 244 | ||
246 | - | let | |
245 | + | let aV = Z(aU) | |
247 | 246 | ||
248 | - | let aW = | |
247 | + | let aW = ad(aV) | |
249 | 248 | ||
250 | - | let | |
249 | + | let aN = ae(aV) | |
251 | 250 | ||
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")) | |
257 | 260 | } | |
258 | 261 | ||
259 | 262 | ||
260 | - | func | |
261 | - | let | |
262 | - | if ($isInstanceOf( | |
263 | - | then | |
264 | - | else throw(($getType( | |
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")) | |
265 | 268 | } | |
266 | 269 | ||
267 | 270 | ||
268 | - | func | |
269 | - | let | |
270 | - | let | |
271 | - | let | |
272 | - | let | |
273 | - | let | |
274 | - | let | |
275 | - | let | |
276 | - | if ($isInstanceOf( | |
277 | - | then | |
278 | - | else throw(($getType( | |
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")) | |
279 | 282 | } | |
280 | - | let | |
281 | - | let | |
282 | - | let | |
283 | - | let | |
284 | - | [ | |
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] | |
285 | 288 | } | |
286 | 289 | ||
287 | 290 | ||
288 | - | func | |
289 | - | let | |
290 | - | let | |
291 | - | [ | |
291 | + | func bp (bq,br,bs) = { | |
292 | + | let bt = fraction(br, b, bs) | |
293 | + | let bu = fraction(bq, bt, b) | |
294 | + | [bu] | |
292 | 295 | } | |
293 | 296 | ||
294 | 297 | ||
295 | - | func | |
296 | - | then getStringValue( | |
297 | - | else if (( | |
298 | - | then toString(getIntegerValue( | |
299 | - | else if (( | |
300 | - | then toString(getBooleanValue( | |
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)) | |
301 | 304 | else throw("unknown type. expected string/integer/boolean") | |
302 | 305 | ||
303 | 306 | ||
304 | - | func bx () = { | |
305 | - | let z = getString(G()) | |
307 | + | func by () = { | |
308 | + | let bz = ag() | |
309 | + | let z = getString(bz, W()) | |
306 | 310 | if ($isInstanceOf(z, "String")) | |
307 | 311 | then { | |
308 | - | let | |
309 | - | fromBase58String( | |
312 | + | let bA = z | |
313 | + | fromBase58String(bA) | |
310 | 314 | } | |
311 | 315 | else if ($isInstanceOf(z, "Unit")) | |
312 | 316 | then unit | |
313 | 317 | else throw("Match error") | |
314 | 318 | } | |
315 | 319 | ||
316 | 320 | ||
317 | - | func | |
318 | - | let z = | |
319 | - | if ($isInstanceOf(z, " | |
321 | + | func bB (bC) = { | |
322 | + | let z = by() | |
323 | + | if ($isInstanceOf(z, "ByteVector")) | |
320 | 324 | then { | |
321 | - | let | |
322 | - | | |
325 | + | let bD = z | |
326 | + | (bC.callerPublicKey == bD) | |
323 | 327 | } | |
324 | 328 | else if ($isInstanceOf(z, "Unit")) | |
325 | - | then | |
329 | + | then (bC.caller == this) | |
326 | 330 | else throw("Match error") | |
327 | 331 | } | |
328 | 332 | ||
329 | 333 | ||
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") | |
346 | 337 | ||
347 | 338 | ||
348 | - | @Callable( | |
349 | - | func constructor ( | |
350 | - | let | |
351 | - | if (( | |
352 | - | then [StringEntry(F(), | |
339 | + | @Callable(bC) | |
340 | + | func constructor (bF) = { | |
341 | + | let bG = bE(bC) | |
342 | + | if ((bG == bG)) | |
343 | + | then [StringEntry(F(), bF)] | |
353 | 344 | else throw("Strict value is not equal to itself.") | |
354 | 345 | } | |
355 | 346 | ||
356 | 347 | ||
357 | 348 | ||
358 | - | @Callable( | |
359 | - | func currentRewardRateREADONLY ( | |
360 | - | let | |
361 | - | let | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | if ($isInstanceOf( | |
367 | - | then | |
368 | - | else throw(($getType( | |
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")) | |
369 | 360 | } | |
370 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
361 | + | $Tuple2(nil, makeString(["%d%d%d%d", toString(bi), toString(bn), toString(bo), toString(bI)], e)) | |
371 | 362 | } | |
372 | 363 | ||
373 | 364 | ||
374 | 365 | ||
375 | - | @Callable( | |
376 | - | func currentUserRewardRateREADONLY ( | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | let | |
386 | - | let | |
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)) | |
387 | 378 | then (1 * b) | |
388 | - | else fraction(( | |
389 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString( | |
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)) | |
390 | 381 | } | |
391 | 382 | ||
392 | 383 | ||
393 | 384 | ||
394 | - | @Callable( | |
395 | - | func calcBoostBulkInternalREADONLY ( | |
396 | - | then $Tuple2(nil, | |
385 | + | @Callable(bC) | |
386 | + | func calcBoostBulkInternalREADONLY (bP,bQ,bR,bS,bT,bU,bV) = if ((bP == size(bQ))) | |
387 | + | then $Tuple2(nil, bV) | |
397 | 388 | else { | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | let | |
403 | - | let | |
404 | - | if ($isInstanceOf( | |
405 | - | then | |
406 | - | else throw(($getType( | |
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")) | |
407 | 398 | } | |
408 | - | let | |
409 | - | let | |
410 | - | let | |
411 | - | if ($isInstanceOf( | |
412 | - | then | |
413 | - | else throw(($getType( | |
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]")) | |
414 | 405 | } | |
415 | - | if (( | |
416 | - | then $Tuple2(nil, | |
406 | + | if ((cc == cc)) | |
407 | + | then $Tuple2(nil, cc) | |
417 | 408 | else throw("Strict value is not equal to itself.") | |
418 | 409 | } | |
419 | 410 | ||
420 | 411 | ||
421 | 412 | ||
422 | - | @Callable( | |
423 | - | func calcBoostBulkREADONLY ( | |
424 | - | let | |
425 | - | $Tuple2(nil, | |
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) | |
426 | 417 | } | |
427 | 418 | ||
428 | 419 | ||
429 | 420 | ||
430 | - | @Callable( | |
431 | - | func calcBoostREADONLY ( | |
432 | - | let | |
433 | - | let | |
434 | - | if ($isInstanceOf( | |
435 | - | then | |
436 | - | else throw(($getType( | |
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")) | |
437 | 428 | } | |
438 | - | let | |
439 | - | let | |
440 | - | let | |
441 | - | let | |
442 | - | then | |
443 | - | else | |
444 | - | let | |
445 | - | then | |
446 | - | else | |
447 | - | let | |
448 | - | let | |
449 | - | let | |
450 | - | let | |
451 | - | let | |
452 | - | let | |
453 | - | let | |
454 | - | let | |
455 | - | let | |
456 | - | let | |
457 | - | let | |
458 | - | let | |
459 | - | if ($isInstanceOf( | |
460 | - | then | |
461 | - | else throw(($getType( | |
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")) | |
462 | 453 | } | |
463 | - | let | |
464 | - | let | |
465 | - | let | |
466 | - | let | |
467 | - | let | |
468 | - | let | |
469 | - | let | |
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)) | |
470 | 461 | then { | |
471 | - | let | |
472 | - | getIntegerValue( | |
462 | + | let bf = valueOrErrorMessage(getString(aU, P(aH)), ("unsupported lp asset " + aH)) | |
463 | + | getIntegerValue(aU, T(bf)) | |
473 | 464 | } | |
474 | 465 | else 0 | |
475 | - | let | |
476 | - | let | |
477 | - | then fraction( | |
466 | + | let cx = fraction(cs, bh, (f * cd)) | |
467 | + | let cy = if ((cw != 0)) | |
468 | + | then fraction(cx, b, cw) | |
478 | 469 | else 0 | |
479 | - | let | |
480 | - | let | |
481 | - | let | |
482 | - | let | |
483 | - | let | |
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)) | |
484 | 475 | then (1 * b) | |
485 | - | else fraction(( | |
486 | - | $Tuple2(nil, makeString(["%d%d%s", toString( | |
476 | + | else fraction((cC + cz), b, cz) | |
477 | + | $Tuple2(nil, makeString(["%d%d%s", toString(cp), toString(cD), "d"], e)) | |
487 | 478 | } | |
488 | 479 | ||
489 | 480 | ||
490 | 481 | ||
491 | - | @Callable( | |
482 | + | @Callable(bC) | |
492 | 483 | func wxEmissionStatsREADONLY () = { | |
493 | - | let | |
494 | - | let | |
495 | - | let | |
496 | - | let | |
497 | - | let | |
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)) | |
498 | 489 | then 0 | |
499 | - | else (height - | |
500 | - | let | |
501 | - | let | |
502 | - | let | |
503 | - | then | |
504 | - | else fraction( | |
505 | - | let | |
506 | - | let | |
507 | - | let | |
508 | - | let | |
509 | - | $Tuple2(nil, makeString(["%d%d%d%d", toString( | |
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)) | |
510 | 501 | } | |
511 | 502 | ||
512 | 503 | ||
513 | 504 | ||
514 | - | @Callable( | |
515 | - | func poolStatsREADONLY ( | |
516 | - | let | |
517 | - | let | |
518 | - | let | |
519 | - | if ($isInstanceOf( | |
520 | - | then | |
521 | - | else throw(($getType( | |
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")) | |
522 | 513 | } | |
523 | - | let | |
524 | - | if (( | |
525 | - | then $Tuple2(nil, makeString([ | |
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)) | |
526 | 517 | else { | |
527 | - | let | |
528 | - | let | |
529 | - | let | |
530 | - | let | |
531 | - | let | |
532 | - | let | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | let | |
537 | - | let | |
538 | - | let | |
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)) | |
539 | 530 | then [toString(g), toString(g), toString(g)] | |
540 | - | else x(invoke( | |
541 | - | let | |
542 | - | let | |
543 | - | let | |
544 | - | let | |
545 | - | let | |
546 | - | let | |
547 | - | let | |
548 | - | let | |
549 | - | if ($isInstanceOf( | |
550 | - | then | |
551 | - | else throw(($getType( | |
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")) | |
552 | 543 | } | |
553 | - | let | |
554 | - | $Tuple2(nil, makeString([ | |
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)) | |
555 | 546 | } | |
556 | 547 | } | |
557 | 548 | ||
558 | 549 | ||
559 | 550 | ||
560 | - | @Callable( | |
561 | - | func poolEvaluatePutByAmountAssetREADONLY ( | |
562 | - | let | |
563 | - | let | |
564 | - | let | |
565 | - | let | |
566 | - | let | |
567 | - | let | |
568 | - | let | |
569 | - | let | |
570 | - | let | |
571 | - | let | |
572 | - | let | |
573 | - | let | |
574 | - | let | |
575 | - | let | |
576 | - | let | |
577 | - | let | |
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)) | |
578 | 569 | then g | |
579 | - | else parseBigIntValue(D(invoke( | |
580 | - | let | |
581 | - | let | |
582 | - | let | |
583 | - | let | |
584 | - | let | |
585 | - | let | |
586 | - | let z = | |
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 | |
587 | 578 | if (if (if ($isInstanceOf(z._1, "Int")) | |
588 | 579 | then if ($isInstanceOf(z._3, "Int")) | |
589 | 580 | then if ($isInstanceOf(z._4, "Int")) | |
590 | 581 | then if ($isInstanceOf(z._5, "Int")) | |
591 | 582 | then $isInstanceOf(z._6, "Int") | |
592 | 583 | else false | |
593 | 584 | else false | |
594 | 585 | else false | |
595 | 586 | else false) | |
596 | 587 | then (size(z) == 13) | |
597 | 588 | else false) | |
598 | 589 | then { | |
599 | - | let | |
600 | - | let | |
601 | - | let | |
602 | - | let | |
603 | - | let | |
604 | - | $Tuple5( | |
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) | |
605 | 596 | } | |
606 | 597 | else throw("Couldn't cast types") | |
607 | 598 | } | |
608 | - | let | |
609 | - | let | |
610 | - | let | |
611 | - | let | |
612 | - | let | |
613 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString( | |
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)) | |
614 | 605 | } | |
615 | 606 | ||
616 | 607 | ||
617 | 608 | ||
618 | - | @Callable( | |
619 | - | func poolEvaluatePutByPriceAssetREADONLY ( | |
620 | - | let | |
621 | - | let | |
622 | - | let | |
623 | - | let | |
624 | - | let | |
625 | - | let | |
626 | - | let | |
627 | - | let | |
628 | - | let | |
629 | - | let | |
630 | - | let | |
631 | - | let | |
632 | - | let | |
633 | - | let | |
634 | - | let | |
635 | - | let | |
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)) | |
636 | 627 | then g | |
637 | - | else parseBigIntValue(D(invoke( | |
638 | - | let | |
639 | - | let | |
640 | - | let | |
641 | - | let | |
642 | - | let | |
643 | - | let | |
644 | - | let z = | |
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 | |
645 | 636 | if (if (if ($isInstanceOf(z._1, "Int")) | |
646 | 637 | then if ($isInstanceOf(z._3, "Int")) | |
647 | 638 | then if ($isInstanceOf(z._4, "Int")) | |
648 | 639 | then if ($isInstanceOf(z._5, "Int")) | |
649 | 640 | then $isInstanceOf(z._6, "Int") | |
650 | 641 | else false | |
651 | 642 | else false | |
652 | 643 | else false | |
653 | 644 | else false) | |
654 | 645 | then (size(z) == 13) | |
655 | 646 | else false) | |
656 | 647 | then { | |
657 | - | let | |
658 | - | let | |
659 | - | let | |
660 | - | let | |
661 | - | let | |
662 | - | $Tuple5( | |
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) | |
663 | 654 | } | |
664 | 655 | else throw("Couldn't cast types") | |
665 | 656 | } | |
666 | - | let | |
667 | - | let | |
668 | - | let | |
669 | - | let | |
670 | - | let | |
671 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString( | |
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)) | |
672 | 663 | } | |
673 | 664 | ||
674 | 665 | ||
675 | 666 | ||
676 | - | @Callable( | |
677 | - | func poolEvaluateGetREADONLY ( | |
678 | - | let | |
679 | - | let | |
680 | - | let | |
681 | - | let z = | |
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 | |
682 | 673 | if (if (if ($isInstanceOf(z._1, "Int")) | |
683 | 674 | then if ($isInstanceOf(z._2, "Int")) | |
684 | 675 | then if ($isInstanceOf(z._5, "Int")) | |
685 | 676 | then if ($isInstanceOf(z._6, "Int")) | |
686 | 677 | then if ($isInstanceOf(z._7, "Int")) | |
687 | 678 | then if ($isInstanceOf(z._8, "String")) | |
688 | 679 | then $isInstanceOf(z._9, "String") | |
689 | 680 | else false | |
690 | 681 | else false | |
691 | 682 | else false | |
692 | 683 | else false | |
693 | 684 | else false | |
694 | 685 | else false) | |
695 | 686 | then (size(z) == 10) | |
696 | 687 | else false) | |
697 | 688 | then { | |
698 | - | let | |
699 | - | let | |
700 | - | let | |
701 | - | let | |
702 | - | let | |
703 | - | let | |
704 | - | let | |
705 | - | $Tuple7( | |
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) | |
706 | 697 | } | |
707 | 698 | else throw("Couldn't cast types") | |
708 | 699 | } | |
709 | - | let | |
710 | - | let | |
711 | - | let | |
712 | - | let | |
713 | - | let | |
714 | - | let | |
715 | - | let | |
716 | - | $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString( | |
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)) | |
717 | 708 | } | |
718 | 709 | ||
719 | 710 | ||
720 | 711 | ||
721 | - | @Callable( | |
722 | - | func gwxUserInfoREADONLY ( | |
723 | - | let | |
724 | - | let | |
725 | - | $Tuple2(nil, makeString(["%d", toString( | |
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)) | |
726 | 717 | } | |
727 | 718 | ||
728 | 719 | ||
729 | 720 | ||
730 | - | @Callable( | |
731 | - | func unstakeAndGetOneTknV2 ( | |
732 | - | let | |
733 | - | if (( | |
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)) | |
734 | 725 | then $Tuple2(nil, unit) | |
735 | 726 | else throw("Strict value is not equal to itself.") | |
736 | 727 | } | |
737 | 728 | ||
738 | 729 | ||
739 | 730 | ||
740 | - | @Callable( | |
741 | - | func getKeysBulkInternal ( | |
742 | - | then $Tuple2(nil, | |
731 | + | @Callable(bC) | |
732 | + | func getKeysBulkInternal (bP,dR,bV) = if ((bP == size(dR))) | |
733 | + | then $Tuple2(nil, bV) | |
743 | 734 | else { | |
744 | - | let | |
745 | - | let | |
746 | - | let s = | |
747 | - | let | |
748 | - | let y = | |
749 | - | let | |
750 | - | let | |
751 | - | if (( | |
752 | - | then $Tuple2(nil, | |
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) | |
753 | 744 | else throw("Strict value is not equal to itself.") | |
754 | 745 | } | |
755 | 746 | ||
756 | 747 | ||
757 | 748 | ||
758 | - | @Callable( | |
759 | - | func getKeysBulk ( | |
760 | - | let | |
761 | - | $Tuple2(nil, | |
749 | + | @Callable(bC) | |
750 | + | func getKeysBulk (dR) = { | |
751 | + | let cb = invoke(this, "getKeysBulkInternal", [0, dR, nil], nil) | |
752 | + | $Tuple2(nil, cb) | |
762 | 753 | } | |
763 | 754 | ||
764 | 755 | ||
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() | |
804 | 760 | if ($isInstanceOf(z, "ByteVector")) | |
805 | 761 | then { | |
806 | 762 | let bD = z | |
807 | 763 | bD | |
808 | 764 | } | |
809 | 765 | else if ($isInstanceOf(z, "Unit")) | |
810 | - | then | |
766 | + | then dT.senderPublicKey | |
811 | 767 | else throw("Match error") | |
812 | 768 | } | |
813 | - | sigVerify( | |
769 | + | sigVerify(dT.bodyBytes, dT.proofs[0], dV) | |
814 | 770 | } | |
815 | 771 |
github/deemru/w8io/169f3d6 261.79 ms ◑