tx · GJr8kxQmLRBougbSbE5RzR9nmnSZHXaVmRSXNBhiY9Jv

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02300000 Waves

2023.03.14 17:27 [2489836] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "GJr8kxQmLRBougbSbE5RzR9nmnSZHXaVmRSXNBhiY9Jv", "fee": 2300000, "feeAssetId": null, "timestamp": 1678804089825, "version": 2, "chainId": 84, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "3kRiyzXboffreXK5JN6PWC5LTaouoYW7ohv1EzYJMSRqqE4r6xjFkPC8sjX2vsVJM36ZtTTHY6BeRQR2VZYFQoy8" ], "script": "base64:BgKPIggCEgMKAQgSAwoBCBIECgIICBIJCgcBERERGAgYEgcKBRERERgIEgcKBQEBAQgIEgASAwoBCBIECgIIARIECgIIARIECgIIARIDCgEIEgYKBAgBCAESBQoDARgYEgMKARgSAwoBCBIAIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiA1NFUCIOUE9PTFdFSUdIVE1VTFQiCnplcm9CaWdJbnQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIHYWRkcmVzcyIMZ2V0SW50T3JaZXJvIgxnZXRJbnRPckZhaWwiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIhFrZXlGYWN0b3J5QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCINa2V5RmFjdG9yeUNmZyIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwiCnJlYWRMcExpc3QiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiBGZDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiC2tleUJvb3N0Q2ZnIh9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50IihrZXlCb29zdGluZ1N0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudCIaa2V5Qm9vc3RpbmdTdGF0c1VzZXJzQ291bnQiEmtleVVzZXIyTnVtTWFwcGluZyILdXNlckFkZHJlc3MiEmtleU51bTJVc2VyTWFwcGluZyIDbnVtIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50Igd1c2VyTnVtIhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiF2tleVVzZXJNYXhCb29zdElOVEVHUkFMIhhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwiIWtleVVzZXJCb29zdEF2YWxhaWJsZVRvQ2xhaW1Ub3RhbCITa2V5VXNlckJvb3N0Q2xhaW1lZCIRa2V5VG90YWxDYWNoZWRHd3giD2tleVN0YWtlZEJ5VXNlciIOdXNlckFkZHJlc3NTdHIiDGxwQXNzZXRJZFN0ciIOa2V5U3Rha2VkVG90YWwiEGtleUNsYWltZWRCeVVzZXIiGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQiG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZCIKcmVhZFN0YWtlZCILc3Rha2luZ0RhcHAiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIMa2V5QWRkb25BZGRyIgtmYWN0b3J5RGFwcCIKZmFjdG9yeUNmZyIMZW1pc3Npb25EYXBwIg1nd3hSZXdhcmREYXBwIgxib29zdGluZ0RhcHAiDGdldFBvb2xJbkZlZSILcG9vbEFkZHJlc3MiAUAiDWdldFBvb2xPdXRGZWUiGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUiCWxwQXNzZXRJZCIOcG9vbEFkZHJlc3NTdHIiDnBvb2xXZWlnaHRNdWx0Igpwb29sV2VpZ2h0IhJ3eEVtaXNzaW9uUGVyQmxvY2siFXd4RW1pc3Npb25QZXJCbG9ja01heCINYm9vc3RNYXhDb2VmZiIWcG9vbFd4RW1pc3Npb25QZXJCbG9jayIZcG9vbFd4RW1pc3Npb25QZXJCbG9ja01heCIJbWF4RmFjdG9yIg10b3RhbExwU3Rha2VkIhpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWSIKbG9ja0Ftb3VudCIMbG9ja0R1cmF0aW9uIg9tYXhMb2NrRHVyYXRpb24iB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IgZnZXRLZXkiBGFkZHIiBHR5cGUiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciIBaSICcGQiAnBrIg5mYWN0b3J5QWRkcmVzcyILY2hlY2tDYWxsZXIiCnJld2FyZERhdGEiDmxwU3Rha2VkQnlVc2VyIg11c2VyQ2xhaW1JbmZvIg1taW5SZXdhcmRQYXJ0Ig9ib29zdFJld2FyZFBhcnQiBWRlYnVnIg1ib29zdGluZ1Bvd2VyIgtjdXJyZW50SXRlciIRZGVsdGFXeEFtb3VudEJ1bGsiG2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzQnVsayIRZGVsdGFMcEFtb3VudEJ1bGsiEGxwQXNzZXRJZE9wdEJ1bGsiDnVzZXJBZGRyZXNzT3B0IgZyZXNBY2MiDWRlbHRhV3hBbW91bnQiF2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzIg1kZWx0YUxwQW1vdW50IgxscEFzc2V0SWRPcHQiBGluZm8iA3JlcyIDaW52IghtYXRoRGFwcCIIRU1QVFlTVFIiF21heExvY2tEdXJhdGlvbkluQmxvY2tzIgp1c2VyTnVtU3RyIgp1c2VyQW1vdW50Iglsb2NrU3RhcnQiB2xvY2tFbmQiEXJlbWFpbmluZ0R1cmF0aW9uIg11c2VyQW1vdW50TmV3Ig9sb2NrRHVyYXRpb25OZXciEXVzZXJDdXJyZ1d4QW1vdW50IhFnV3hBbW91bnRTdGFydE5ldyITZ1d4UGFyYW1zUmVzdWx0TGlzdCINZ1d4QW1vdW50RGlmZiIBayIBYiIYdG90YWxNYXhCb29zdEludGVncmFsS0VZIhJ1c2VyTWF4Qm9vc3RJbnROZXciEHRvdGFsTWF4Qm9vc3RJbnQiDnRvdGFsQ2FjaGVkR3d4IgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiD3N0YWtlZEJ5VXNlcktFWSIOc3Rha2VkVG90YWxLRVkiDHN0YWtlZEJ5VXNlciILc3Rha2VkVG90YWwiD3N0YWtlZEJ5VXNlck5ldyIOc3Rha2VkVG90YWxOZXciGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyIJd3hQZXJMcFgzIhB1c2VyV3hQZXJCbG9ja1gzIhdib29zdEVtaXNzaW9uUGVyQmxvY2tYMyIWdG1wVXNlckJvb3N0UGVyQmxvY2tYMyITdXNlckJvb3N0UGVyQmxvY2tYMyIKYm9vc3RDb2VmZiIHT05FTVVMVCIDT05FIhJlbWlzc2lvblN0YXJ0QmxvY2siDHBhc3NlZEJsb2NrcyIOdGVhbUVtRHVyYXRpb24iCXRlYW1FbU1heCIGdGVhbUVtIg90b3RhbFd4UmVsZWFzZWQiDXRvdGFsV3hMb2NrZWQiGGxvY2tzRHVyYXRpb25TdW1JbkJsb2NrcyIKbG9ja3NDb3VudCIHbHBBc3NldCIGc3RhdHVzIgN0cGwiA2NmZyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiCGN1clByaWNlIg9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgVpbkZlZSIGb3V0RmVlIh5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHXBvb2xPbmVUb2tlbk9wZXJhdGlvbnNFbmFibGVkIgxpbkFtQXNzZXRBbXQiDGFtQXNzZXRJZFN0ciIJYW1Bc3NldElkIgxwckFzc2V0SWRTdHIiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiC2N1clByaWNlWDE4Ig9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMaW5QckFzc2V0QW10Ig0kdDAyMzM2NDIzNzE3IgljYWxjTHBBbXQiDGN1clByaWNlQ2FsYyIJYW1CYWxhbmNlIglwckJhbGFuY2UiCmxwRW1pc3Npb24iDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCINJHQwMjYyOTAyNjY0MyIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10Ig0kdDAyNzMzODI3NzU1IghvdXRBbUFtdCIIb3V0UHJBbXQiD2d3eFVzZXJJbmZvTElTVCIJZ3d4QW1vdW50Ig11bnN0YWtlQW1vdW50IgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiBGtleXMiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5XQABYQAIAAFiAIDC1y8AAWMAEgABZAkAtgIBAICAkLu61q3wDQABZQICX18AAWYFAWIAAWcJALYCAQAAAAFoAAEAAWkAAgABagADAAFrAAQAAWwABQABbQAGAAFuAAcAAW8ACAABcAAJAAFxAAoBAXIBAXMJARN2YWx1ZU9yRXJy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GiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhUQACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYVIAAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFTAAINJXNfX2FkZG9uQWRkcgACYVQJAQFYAAACYVUJAQFaAQUCYVQAAmFWCQECYWQBBQJhVQACYU0JAQJhZQEFAmFVAAJhVwkBAmFmAQUCYVUAAmFYCQECYWIBBQJhVQECYVkBAmFaCgACYmEJAPwHBAUCYVQCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQJhWgUDbmlsBQNuaWwDCQABAgUCYmECA0ludAUCYmEJAAIBCQCsAgIJAAMBBQJiYQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiYgECYVoKAAJiYQkA/AcEBQJhVAIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQJhWgUDbmlsBQNuaWwDCQABAgUCYmECA0ludAUCYmEJAAIBCQCsAgIJAAMBBQJiYQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiYwECYmQEAmJlCQEBdAIFAmFUCQEBVQEFAmJkBAJiZgUBYgQCYmcJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFUCQEBVgEFAmJlBAJiaAkBAXcCBQJhVgkBAmFOAAQCYmkJAQF3AgUCYVYJAQJhTwAEAmJqAAMEAmJrCQBpAgkAawMFAmJoBQJiZwUCYmYFAmJqBAJibAkAawMFAmJpBQJiZwUCYmYEAmJtCQBoAgUCYmoFAWIEAmJuCQEBdgIFAmFNCQECYUgBBQJiZAkAzAgCBQJiawkAzAgCBQJibQkAzAgCBQJibgUDbmlsAQJibwMCYnACYnECYnIEAmJzCQBrAwUCYnEFAWIFAmJyBAJidAkAawMFAmJwBQJicwUBYgkAzAgCBQJidAUDbmlsAQJidQMCYnYBcwJidwMJAAACBQJidwIGc3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQJidgUBcwMJAAACBQJidwIHaW50ZWdlcgkApAMBCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJidgUBcwMJAAACBQJidwIHYm9vbGVhbgkApQMBCQERQGV4dHJOYXRpdmUoMTA1MSkCBQJidgUBcwkAAgECLXVua25vd24gdHlwZS4gZXhwZWN0ZWQgc3RyaW5nL2ludGVnZXIvYm9vbGVhbgECYngABAF6CQCiCAEJAQFHAAMJAAECBQF6AgZTdHJpbmcEAmJ5BQF6CQDZBAEFAmJ5AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYnoABAF6CQCiCAEJAQFIAAMJAAECBQF6AgZTdHJpbmcEAmJ5BQF6CQDZBAEFAmJ5AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYkEBAmJCBAJiQwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAF6CQECYngAAwkAAQIFAXoCCkJ5dGVWZWN0b3IEAmJEBQF6AwkAAAIIBQJiQg9jYWxsZXJQdWJsaWNLZXkFAmJEBgUCYkMDCQABAgUBegIEVW5pdAMJAAACCAUCYkIGY2FsbGVyBQR0aGlzBgUCYkMJAAIBAgtNYXRjaCBlcnJvchECYkIBC2NvbnN0cnVjdG9yAQJiRQQCYkYJAQJiQQEFAmJCAwkAAAIFAmJGBQJiRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRgAFAmJFBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkIBGWN1cnJlbnRSZXdhcmRSYXRlUkVBRE9OTFkBAmJkBAJiRwkBAmJjAQUCYmQEAmJoCQCRAwIFAmJHAAAEAmJtCQCRAwIFAmJHAAEEAmJuCQCRAwIFAmJHAAIJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuBQNuaWwFAWUCYkIBHWN1cnJlbnRVc2VyUmV3YXJkUmF0ZVJFQURPTkxZAgJiZAJhbQQCYkcJAQJiYwEFAmJkBAJiaAkAkQMCBQJiRwAABAJibQkAkQMCBQJiRwABBAJibgkAkQMCBQJiRwACBAJiSAkBAXYCBQJhTQkBAmFFAgUCYW0FAmJkBAJiSQkAtQkCCQEBRAEJAPwHBAUCYU0CD2NsYWltV3hSRUFET05MWQkAzAgCBQJiZAkAzAgCBQJhbQUDbmlsBQNuaWwFAWUEAmJKCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJiSQAFAhxjb3VsZG4ndCBwYXJzZSBtaW5SZXdhcmRQYXJ0BAJiSwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYkkABgIeY291bGRuJ3QgcGFyc2UgYm9vc3RSZXdhcmRQYXJ0BAJiTAkAkQMCBQJiSQAHBAJiTQMJAAACBQJiSwAACQBoAgABBQFiCQBrAwkAZAIFAmJKBQJiSwUBYgUCYkoJAJQKAgUDbmlsCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVzCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiTQkAzAgCBQJiTAUDbmlsBQFlAmJCAR1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQcCYk4CYk8CYlACYlECYlICYlMCYlQDCQAAAgUCYk4JAJADAQUCYk8JAJQKAgUDbmlsBQJiVAQCYlUJAJEDAgUCYk8FAmJOBAJiVgkAkQMCBQJiUAUCYk4EAmJXCQCRAwIFAmJRBQJiTgQCYlgJAJEDAgUCYlIFAmJOBAJiWQoAAmJhCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFAmJVCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJTBQNuaWwFA25pbAMJAAECBQJiYQIGU3RyaW5nBQJiYQkAAgEJAKwCAgkAAwEFAmJhAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmJaCQDNCAIFAmJUBQJiWQQCY2EKAAJiYQkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCCQBkAgUCYk4AAQkAzAgCBQJiTwkAzAgCBQJiUAkAzAgCBQJiUQkAzAgCBQJiUgkAzAgCBQJiUwkAzAgCBQJiWgUDbmlsBQNuaWwDCQABAgUCYmECCUxpc3RbQW55XQUCYmEJAAIBCQCsAgIJAAMBBQJiYQIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAwkAAAIFAmNhBQJjYQkAlAoCBQNuaWwFAmNhCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFAmJVAmJWAmJXAmJYAmJTBAJiWgkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCYlUJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlMJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmJaAmJCARFjYWxjQm9vc3RSRUFET05MWQUCYlUCYlYCYlcCYlgCYlMEAmNiBQJhVwQCY2MCBWVtcHR5BAJjZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBAXQCBQJhWAkBAmFnAAUBZQAEBAJhRwMJAAACBQJiWAIABQJjYwUCYlgEAmFGAwkAAAIFAmJTAgAFAmNjBQJiUwQCY2UJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYVgJAQJhbAEFAmJTBQJjYwQCY2YJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYVgJAQJhcAEFAmNlAAAEAmNnCQELdmFsdWVPckVsc2UCCQCaCAIFAmFYCQECYXIBBQJjZQUGaGVpZ2h0BAJicQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhWAkBAmFzAQUCY2UAAAQCY2gJAGQCBQJjZwUCYnEEAmNpCQCWAwEJAMwIAgkAZQIFAmNoBQZoZWlnaHQJAMwIAgAABQNuaWwEAmNqCQBkAgUCY2YFAmJVBAJjawkAlwMBCQDMCAIJAGQCBQJjaQUCYlYJAMwIAgUCY2QFA25pbAQCY2wJAQFCAQkAkQMCCQEBeAEJAPwHBAUCYVgCE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgUCYUYFA25pbAUDbmlsAAAEAmNtCQCRAwIJAQJibwMFAmNqBQJjawUCY2QAAAQCY24JAQF4AQkA/AcEBQJjYgIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmNtCQDMCAIFBmhlaWdodAkAzAgCBQJjawUDbmlsBQNuaWwEAmNvCQBlAgUCY20FAmNsBAJjcAkBAUIBCQCRAwIFAmNuAAAEAmNxCQEBQgEJAJEDAgUCY24AAQQCYXcJAKQDAQkBAUIBCQCRAwIFAmNuAAIEAmNyCQECYUEABAJjcwkAaQIJAGgCBQJjbQUCY2sAAgQCY3QJAQF2AgUCYVgFAmNyBAJjdQoAAmJhCQD8BwQFAmFYAhlnZXRUb3RhbENhY2hlZEd3eFJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiYQIDSW50BQJiYQkAAgEJAKwCAgkAAwEFAmJhAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmN2AOgHBAJjdwkAaAIJAQF3AgUCYVYJAQJhTgAFAmN2BAJjeAkBAmFFAgUCYUYFAmFHBAJjeQkBAmFIAQUCYUcEAmN6CQECYUwCBQJhTQUCY3gEAmNBCQECYUwCBQJhTQUCY3kEAmNCCQBkAgUCY3oFAmJXBAJjQwkAZAIFAmNBBQJiVwQCYmcDCQECIT0CBQJhRwUCY2MEAmJlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVQJAQFSAQUCYUcJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhRwkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVQJAQFWAQUCYmUAAAQCY0QJAGsDBQJjdwUCYmcJAGgCBQFmAAMEAmNFAwkBAiE9AgUCY0MAAAkAawMFAmNEBQFiBQJjQwAABAJjRgkAawMFAmNFBQJjQgUBYgQCY0cJAGgCBQJjRAACBAJjSAkAawMFAmNtBQJjRwkAZAIFAmN1BQJjbwQCY0kJAJcDAQkAzAgCBQJjSAkAzAgCCQBoAgUCY0YAAgUDbmlsBAJjSgMJAAACBQJjRgAACQBoAgABBQFiCQBrAwkAZAIFAmNJBQJjRgUBYgUCY0YJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCY20JAMwIAgkApAMBBQJjSgkAzAgCAgFkBQNuaWwFAWUCYkIBF3d4RW1pc3Npb25TdGF0c1JFQURPTkxZAAQCY0sJAKQDAQUBYgQCY0wCATEEAmJoCQEBdwIFAmFWCQECYU4ABAJjTQkBAXcCBQJhVgkBAmFQAAQCY04DCQBmAgUCY00FBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJjTQQCY08JAGgCAKALAO0CBAJjUAkAaAIAwIjsXwUBYgQCY1EDCQBmAgUCY04FAmNPBQJjUAkAawMFAmNQBQJjTgUCY08EAmNSCQBkAgkAaAIFAmJoBQJjTgUCY1EEAmNTCQEBdgIFAmFYCQECYWgABAJjVAkBAXYCBQJhWAkBAmFpAAQCY1UJAQF2AgUCYVgJAQJhagAJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQJjUgkAzAgCCQCkAwEFAmNTCQDMCAIJAKQDAQUCY1QJAMwIAgkApAMBBQJjVQUDbmlsBQFlAmJCARFwb29sU3RhdHNSRUFET05MWQECY1YEAmFaCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBdAIFAmFUCQEBVQEFAmNWBAJjVwoAAmJhCQD8BwQFAmFUAhVnZXRQb29sU3RhdHVzUkVBRE9OTFkJAMwIAgkApQgBBQJhWgUDbmlsBQNuaWwDCQABAgUCYmECA0ludAUCYmEJAAIBCQCsAgIJAAMBBQJiYQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJjWAIUJWQlZCVkJWQlZCVkJWQlZCVkJXMDCQAAAgUCY1cABAkAlAoCBQNuaWwJALkJAgkAzAgCBQJjWAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQCkAwEAAAkAzAgCCQClAwEHBQNuaWwFAWUEAmNZCQEBeAEJAPwHBAUCYVoCHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkFA25pbAUDbmlsBAJiZAkA2QQBCQEBRAEJAJEDAgUCY1kFAWoEAmNaCQEBRAEJAJEDAgUCY1kFAWsEAmRhCQEBRAEJAJEDAgUCY1kFAWwEAmRiCQEBRAEJAJEDAgUCY1kFAW8EAmRjCQEBRAEJAJEDAgUCY1kFAXAEAmRkCQENcGFyc2VJbnRWYWx1ZQEJAQFEAQkAkQMCBQJjWQUBbQQCZGUJAQ1wYXJzZUludFZhbHVlAQkBAUQBCQCRAwIFAmNZBQFuBAJkZggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiZAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiZAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRnCQEBQgEJAPwHBAUCYVoCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCY1oFA25pbAUDbmlsBAJkaAkBAUIBCQD8BwQFAmFaAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmRhBQNuaWwFA25pbAQCZGkDCQAAAgUCZGYAAAkAzAgCCQCmAwEFAWcJAMwIAgkApgMBBQFnCQDMCAIJAKYDAQUBZwUDbmlsCQEBeAEJAPwHBAUCYVoCGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZGcJAMwIAgUCZGgJAMwIAgUCZGYFA25pbAUDbmlsBAJkagAABAJkawkBAUIBCQD8BwQFAmFaAhZmcm9tWDE4V3JhcHBlclJFQURPTkxZCQDMCAIJAJEDAgUCZGkAAQkAzAgCBQFiBQNuaWwFA25pbAQCZGwJAQFCAQkA/AcEBQJhWgIWZnJvbVgxOFdyYXBwZXJSRUFET05MWQkAzAgCCQCRAwIFAmRpAAIJAMwIAgUBYgUDbmlsBQNuaWwEAmJnCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhVAkBAVYBCQClCAEFAmFaBAJkbQkBAmFZAQUCYVoEAmRuCQECYmIBBQJhWgQCZG8KAAJiYQkA/AcEBQJhVAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFAmFaBQNuaWwFA25pbAMJAAECBQJiYQIHQm9vbGVhbgUCYmEJAAIBCQCsAgIJAAMBBQJiYQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZHAJAQEhAQUCZG8JAJQKAgUDbmlsCQC5CQIJAMwIAgUCY1gJAMwIAgkApAMBBQJkZwkAzAgCCQCkAwEFAmRoCQDMCAIJAKQDAQUCZGYJAMwIAgkApAMBBQJkagkAzAgCCQCkAwEFAmRrCQDMCAIJAKQDAQUCZGwJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmRtCQDMCAIJAKQDAQUCZG4JAMwIAgkApQMBBQJkcAUDbmlsBQFlAmJCASRwb29sRXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkCAmNWAmRxBAJhWgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAXQC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BQJkSAUCZGoFAmR2CQACAQITQ291bGRuJ3QgY2FzdCB0eXBlcwQCZFEIBQJkUAJfMQQCZFIIBQJkUAJfMgQCZEYIBQJkUAJfMwQCZEcIBQJkUAJfNAQCZEgIBQJkUAJfNQQCZGoIBQJkUAJfNgQCZHYIBQJkUAJfNwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmRRCQDMCAIJAKQDAQUCZFIJAMwIAgkApAMBBQJkRgkAzAgCCQCkAwEFAmRHCQDMCAIJAKQDAQUCZEgJAMwIAgUCZGoJAMwIAgUCZHYFA25pbAUBZQJiQgETZ3d4VXNlckluZm9SRUFET05MWQECYW0EAmRTCQEBeAEJAPwHBAUCYVgCE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgUCYW0FA25pbAUDbmlsBAJkVAkBAUIBCQCRAwIFAmRTAAAJAJQKAgUDbmlsCQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQJkVAUDbmlsBQFlAmJCARV1bnN0YWtlQW5kR2V0T25lVGtuVjIEAmFaAmRVAmRWAmRXBAJjYQkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJhWgIVdW5zdGFrZUFuZEdldE9uZVRrblYyCQDMCAIFAmRVCQDMCAIFAmRWCQDMCAIFAmRXBQNuaWwFA25pbAMJAAACBQJjYQUCY2EJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCARNnZXRLZXlzQnVsa0ludGVybmFsAwJiTgJkWAJiVAMJAAACBQJiTgkAkAMBBQJkWAkAlAoCBQNuaWwFAmJUBAJjcAkAtQkCCQCRAwIFAmRYBQJiTgICKysEAmJ2CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmNwAAAEAXMJAJEDAgUCY3AAAQQCYncJAJEDAgUCY3AAAgQBeQkBAmJ1AwUCYnYFAXMFAmJ3BAJiWgkAzQgCBQJiVAUBeQQCY2EJAPwHBAUEdGhpcwITZ2V0S2V5c0J1bGtJbnRlcm5hbAkAzAgCCQBkAgUCYk4AAQkAzAgCBQJkWAkAzAgCBQJiWgUDbmlsBQNuaWwDCQAAAgUCY2EFAmNhCQCUCgIFA25pbAUCY2EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkIBC2dldEtleXNCdWxrAQJkWAQCYloJAPwHBAUEdGhpcwITZ2V0S2V5c0J1bGtJbnRlcm5hbAkAzAgCAAAJAMwIAgUCZFgJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmJaAmJCAQpzZXRNYW5hZ2VyAQJkWQQCYkYJAQJiQQEFAmJCAwkAAAIFAmJGBQJiRgQCZFoJANkEAQUCZFkDCQAAAgUCZFoFAmRaCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFIAAUCZFkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiQgEOY29uZmlybU1hbmFnZXIABAJlYQkBAmJ6AAQCZWIDCQEJaXNEZWZpbmVkAQUCZWEGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmViBQJlYgQCZWMDCQAAAggFAmJCD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZWEGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVjBQJlYwkAzAgCCQELU3RyaW5nRW50cnkCCQEBRwAJANgEAQkBBXZhbHVlAQUCZWEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAUgABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVkAQJlZQAEAmVmBAF6CQECYngAAwkAAQIFAXoCCkJ5dGVWZWN0b3IEAmJEBQF6BQJiRAMJAAECBQF6AgRVbml0CAUCZWQPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVkCWJvZHlCeXRlcwkAkQMCCAUCZWQGcHJvb2ZzAAAFAmVm12kILA==", "height": 2489836, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3sP46B82SrCe9y5ADGbDhpeoJatM1cZjBPFad6VaupFm Next: EVcVsJWuA7KEW2zX8bVVzU7NGM1QE8sg5VaJQox3Kvoy Diff:
OldNewDifferences
271271 let bg = getIntegerValue(aT, V(be))
272272 let bh = w(aV, aN())
273273 let bi = w(aV, aO())
274- let bj = {
275- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
276- if ($isInstanceOf(ba, "Int"))
277- then ba
278- else throw(($getType(ba) + " couldn't be cast to Int"))
279- }
274+ let bj = 3
280275 let bk = (fraction(bh, bg, bf) / bj)
281276 let bl = fraction(bi, bg, bf)
282277 let bm = (bj * b)
361356 let bh = bG[0]
362357 let bm = bG[1]
363358 let bn = bG[2]
364- let bH = {
365- let ba = invoke(aX, "getVotingResultStakedREADONLY", [bd], nil)
366- if ($isInstanceOf(ba, "Int"))
367- then ba
368- else throw(($getType(ba) + " couldn't be cast to Int"))
369- }
370- $Tuple2(nil, makeString(["%d%d%d%d", toString(bh), toString(bm), toString(bn), toString(bH)], e))
359+ $Tuple2(nil, makeString(["%d%d%d", toString(bh), toString(bm), toString(bn)], e))
371360 }
372361
373362
378367 let bh = bG[0]
379368 let bm = bG[1]
380369 let bn = bG[2]
381- let bI = v(aM, aE(am, bd))
382- let bJ = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
383- let bK = valueOrErrorMessage(parseInt(bJ[5]), "couldn't parse minRewardPart")
384- let bL = valueOrErrorMessage(parseInt(bJ[6]), "couldn't parse boostRewardPart")
385- let bM = bJ[7]
386- let bN = if ((bL == 0))
370+ let bH = v(aM, aE(am, bd))
371+ let bI = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
372+ let bJ = valueOrErrorMessage(parseInt(bI[5]), "couldn't parse minRewardPart")
373+ let bK = valueOrErrorMessage(parseInt(bI[6]), "couldn't parse boostRewardPart")
374+ let bL = bI[7]
375+ let bM = if ((bK == 0))
387376 then (1 * b)
388- else fraction((bK + bL), b, bK)
389- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bI), toString(bN), bM], e))
377+ else fraction((bJ + bK), b, bJ)
378+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bH), toString(bM), bL], e))
390379 }
391380
392381
393382
394383 @Callable(bB)
395-func calcBoostBulkInternalREADONLY (bO,bP,bQ,bR,bS,bT,bU) = if ((bO == size(bP)))
396- then $Tuple2(nil, bU)
384+func calcBoostBulkInternalREADONLY (bN,bO,bP,bQ,bR,bS,bT) = if ((bN == size(bO)))
385+ then $Tuple2(nil, bT)
397386 else {
398- let bV = bP[bO]
399- let bW = bQ[bO]
400- let bX = bR[bO]
401- let bY = bS[bO]
402- let bZ = {
403- let ba = invoke(this, "calcBoostREADONLY", [bV, bW, bX, bY, bT], nil)
387+ let bU = bO[bN]
388+ let bV = bP[bN]
389+ let bW = bQ[bN]
390+ let bX = bR[bN]
391+ let bY = {
392+ let ba = invoke(this, "calcBoostREADONLY", [bU, bV, bW, bX, bS], nil)
404393 if ($isInstanceOf(ba, "String"))
405394 then ba
406395 else throw(($getType(ba) + " couldn't be cast to String"))
407396 }
408- let ca = (bU :+ bZ)
409- let cb = {
410- let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bO + 1), bP, bQ, bR, bS, bT, ca], nil)
397+ let bZ = (bT :+ bY)
398+ let ca = {
399+ let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bN + 1), bO, bP, bQ, bR, bS, bZ], nil)
411400 if ($isInstanceOf(ba, "List[Any]"))
412401 then ba
413402 else throw(($getType(ba) + " couldn't be cast to List[Any]"))
414403 }
415- if ((cb == cb))
416- then $Tuple2(nil, cb)
404+ if ((ca == ca))
405+ then $Tuple2(nil, ca)
417406 else throw("Strict value is not equal to itself.")
418407 }
419408
420409
421410
422411 @Callable(bB)
423-func calcBoostBulkREADONLY (bV,bW,bX,bY,bT) = {
424- let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bV, bW, bX, bY, bT, nil], nil)
425- $Tuple2(nil, ca)
412+func calcBoostBulkREADONLY (bU,bV,bW,bX,bS) = {
413+ let bZ = invoke(this, "calcBoostBulkInternalREADONLY", [0, bU, bV, bW, bX, bS, nil], nil)
414+ $Tuple2(nil, bZ)
426415 }
427416
428417
429418
430419 @Callable(bB)
431-func calcBoostREADONLY (bV,bW,bX,bY,bT) = {
432- let cc = {
433- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
434- if ($isInstanceOf(ba, "Int"))
435- then ba
436- else throw(($getType(ba) + " couldn't be cast to Int"))
437- }
438- let cd = aW
439- let ce = "empty"
440- let cf = parseIntValue(split(t(aX, ag()), e)[4])
441- let aG = if ((bY == ""))
442- then ce
443- else bY
444- let aF = if ((bT == ""))
445- then ce
446- else bT
447- let cg = valueOrElse(getString(aX, al(bT)), ce)
448- let ch = valueOrElse(getInteger(aX, ap(cg)), 0)
449- let ci = valueOrElse(getInteger(aX, ar(cg)), height)
450- let bq = valueOrElse(getInteger(aX, as(cg)), 0)
451- let cj = (ci + bq)
452- let ck = max([(cj - height), 0])
453- let cl = (ch + bV)
454- let cm = min([(ck + bW), cf])
455- let cn = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
456- let co = bo(cl, cm, cf)[0]
457- let cp = {
420+func calcBoostREADONLY (bU,bV,bW,bX,bS) = {
421+ let cb = aW
422+ let cc = "empty"
423+ let cd = parseIntValue(split(t(aX, ag()), e)[4])
424+ let aG = if ((bX == ""))
425+ then cc
426+ else bX
427+ let aF = if ((bS == ""))
428+ then cc
429+ else bS
430+ let ce = valueOrElse(getString(aX, al(bS)), cc)
431+ let cf = valueOrElse(getInteger(aX, ap(ce)), 0)
432+ let cg = valueOrElse(getInteger(aX, ar(ce)), height)
433+ let bq = valueOrElse(getInteger(aX, as(ce)), 0)
434+ let ch = (cg + bq)
435+ let ci = max([(ch - height), 0])
436+ let cj = (cf + bU)
437+ let ck = min([(ci + bV), cd])
438+ let cl = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
439+ let cm = bo(cj, ck, cd)[0]
440+ let cn = x(invoke(cb, "calcGwxParamsREADONLY", [cm, height, ck], nil))
441+ let co = (cm - cl)
442+ let cp = B(cn[0])
443+ let cq = B(cn[1])
444+ let aw = toString(B(cn[2]))
445+ let cr = aA()
446+ let cs = ((cm * ck) / 2)
447+ let ct = v(aX, cr)
448+ let cu = {
458449 let ba = invoke(aX, "getTotalCachedGwxREADONLY", nil, nil)
459450 if ($isInstanceOf(ba, "Int"))
460451 then ba
461452 else throw(($getType(ba) + " couldn't be cast to Int"))
462453 }
463- let cq = 1000
464- let cr = (w(aV, aN()) * cq)
465- let cs = aE(aF, aG)
466- let ct = aH(aG)
467- let cu = aL(aM, cs)
468- let cv = aL(aM, ct)
469- let bg = if ((aG != ce))
454+ let cv = 1000
455+ let cw = (w(aV, aN()) * cv)
456+ let cx = aE(aF, aG)
457+ let cy = aH(aG)
458+ let cz = aL(aM, cx)
459+ let cA = aL(aM, cy)
460+ let cB = (cz + bW)
461+ let cC = (cA + bW)
462+ let bg = if ((aG != cc))
470463 then {
471464 let be = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
472465 getIntegerValue(aT, V(be))
473466 }
474467 else 0
475- let cw = fraction(cr, bg, (f * cc))
476- let cx = if ((cv != 0))
477- then fraction(cw, b, cv)
468+ let cD = fraction(cw, bg, (f * 3))
469+ let cE = if ((cC != 0))
470+ then fraction(cD, b, cC)
478471 else 0
479- let cy = fraction(cx, cu, b)
480- let cz = (cw * (cc - 1))
481- let cA = fraction(cn, cz, cp)
482- let cB = min([cA, (cy * (cc - 1))])
483- let cC = if ((cy == 0))
472+ let cF = fraction(cE, cB, b)
473+ let cG = (cD * 2)
474+ let cH = fraction(cm, cG, (cu + co))
475+ let cI = min([cH, (cF * 2)])
476+ let cJ = if ((cF == 0))
484477 then (1 * b)
485- else fraction((cB + cy), b, cy)
486- $Tuple2(nil, makeString(["%d%d%s", toString(co), toString(cC), "d"], e))
478+ else fraction((cI + cF), b, cF)
479+ $Tuple2(nil, makeString(["%d%d%s", toString(cm), toString(cJ), "d"], e))
487480 }
488481
489482
490483
491484 @Callable(bB)
492485 func wxEmissionStatsREADONLY () = {
493- let cD = toString(b)
494- let cE = "1"
486+ let cK = toString(b)
487+ let cL = "1"
495488 let bh = w(aV, aN())
496- let cF = w(aV, aP())
497- let cG = if ((cF > height))
489+ let cM = w(aV, aP())
490+ let cN = if ((cM > height))
498491 then 0
499- else (height - cF)
500- let cH = (1440 * 365)
501- let cI = (201000000 * b)
502- let cJ = if ((cG > cH))
503- then cI
504- else fraction(cI, cG, cH)
505- let cK = ((bh * cG) + cJ)
506- let cL = v(aX, ah())
507- let cM = v(aX, ai())
508- let cN = v(aX, aj())
509- $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
492+ else (height - cM)
493+ let cO = (1440 * 365)
494+ let cP = (201000000 * b)
495+ let cQ = if ((cN > cO))
496+ then cP
497+ else fraction(cP, cN, cO)
498+ let cR = ((bh * cN) + cQ)
499+ let cS = v(aX, ah())
500+ let cT = v(aX, ai())
501+ let cU = v(aX, aj())
502+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cR), toString(cS), toString(cT), toString(cU)], e))
510503 }
511504
512505
513506
514507 @Callable(bB)
515-func poolStatsREADONLY (cO) = {
516- let aZ = addressFromStringValue(t(aT, U(cO)))
517- let cP = {
508+func poolStatsREADONLY (cV) = {
509+ let aZ = addressFromStringValue(t(aT, U(cV)))
510+ let cW = {
518511 let ba = invoke(aT, "getPoolStatusREADONLY", [toString(aZ)], nil)
519512 if ($isInstanceOf(ba, "Int"))
520513 then ba
521514 else throw(($getType(ba) + " couldn't be cast to Int"))
522515 }
523- let cQ = "%d%d%d%d%d%d%d%d%d%s"
524- if ((cP == 4))
525- then $Tuple2(nil, makeString([cQ, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
516+ let cX = "%d%d%d%d%d%d%d%d%d%s"
517+ if ((cW == 4))
518+ then $Tuple2(nil, makeString([cX, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
526519 else {
527- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
528- let bd = fromBase58String(D(cR[j]))
529- let cS = D(cR[k])
530- let cT = D(cR[l])
531- let cU = D(cR[o])
532- let cV = D(cR[p])
533- let cW = parseIntValue(D(cR[m]))
534- let cX = parseIntValue(D(cR[n]))
535- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
536- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cS], nil))
537- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cT], nil))
538- let db = if ((cY == 0))
520+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
521+ let bd = fromBase58String(D(cY[j]))
522+ let cZ = D(cY[k])
523+ let da = D(cY[l])
524+ let db = D(cY[o])
525+ let dc = D(cY[p])
526+ let dd = parseIntValue(D(cY[m]))
527+ let de = parseIntValue(D(cY[n]))
528+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
529+ let dg = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cZ], nil))
530+ let dh = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [da], nil))
531+ let di = if ((df == 0))
539532 then [toString(g), toString(g), toString(g)]
540- else x(invoke(aZ, "calcPricesWrapperREADONLY", [cZ, da, cY], nil))
541- let dc = 0
542- let dd = B(invoke(aZ, "fromX18WrapperREADONLY", [db[1], b], nil))
543- let de = B(invoke(aZ, "fromX18WrapperREADONLY", [db[2], b], nil))
533+ else x(invoke(aZ, "calcPricesWrapperREADONLY", [dg, dh, df], nil))
534+ let dj = 0
535+ let dk = B(invoke(aZ, "fromX18WrapperREADONLY", [di[1], b], nil))
536+ let dl = B(invoke(aZ, "fromX18WrapperREADONLY", [di[2], b], nil))
544537 let bg = getIntegerValue(aT, V(toString(aZ)))
545- let df = aY(aZ)
546- let dg = bb(aZ)
547- let dh = {
538+ let dm = aY(aZ)
539+ let dn = bb(aZ)
540+ let do = {
548541 let ba = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aZ)], nil)
549542 if ($isInstanceOf(ba, "Boolean"))
550543 then ba
551544 else throw(($getType(ba) + " couldn't be cast to Boolean"))
552545 }
553- let di = !(dh)
554- $Tuple2(nil, makeString([cQ, toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(bg), toString(df), toString(dg), toString(di)], e))
546+ let dp = !(do)
547+ $Tuple2(nil, makeString([cX, toString(dg), toString(dh), toString(df), toString(dj), toString(dk), toString(dl), toString(bg), toString(dm), toString(dn), toString(dp)], e))
555548 }
556549 }
557550
558551
559552
560553 @Callable(bB)
561-func poolEvaluatePutByAmountAssetREADONLY (cO,dj) = {
562- let aZ = addressFromStringValue(t(aT, U(cO)))
563- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
564- let bd = fromBase58String(D(cR[j]))
565- let dk = D(cR[k])
566- let dl = fromBase58String(dk)
567- let dm = D(cR[l])
568- let dn = fromBase58String(dm)
569- let cW = parseIntValue(D(cR[m]))
570- let cX = parseIntValue(D(cR[n]))
571- let do = D(cR[i])
572- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
573- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
574- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
575- let dp = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [cZ, cW], nil)))
576- let dq = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [da, cX], nil)))
577- let dr = if ((cY == 0))
554+func poolEvaluatePutByAmountAssetREADONLY (cV,dq) = {
555+ let aZ = addressFromStringValue(t(aT, U(cV)))
556+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
557+ let bd = fromBase58String(D(cY[j]))
558+ let dr = D(cY[k])
559+ let ds = fromBase58String(dr)
560+ let dt = D(cY[l])
561+ let du = fromBase58String(dt)
562+ let dd = parseIntValue(D(cY[m]))
563+ let de = parseIntValue(D(cY[n]))
564+ let dv = D(cY[i])
565+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
566+ let dg = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dr], nil))
567+ let dh = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dt], nil))
568+ let dw = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dg, dd], nil)))
569+ let dx = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dh, de], nil)))
570+ let dy = if ((df == 0))
578571 then g
579- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
580- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
581- let ds = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dj, cW], nil)))
582- let dt = fraction(ds, dr, d)
583- let du = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
584- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
585- let dv = {
586- let z = ca
572+ else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dx), toString(dw)], nil)))
573+ let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dy), b], nil))
574+ let dz = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dq, dd], nil)))
575+ let dA = fraction(dz, dy, d)
576+ let dB = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dA), de], nil))
577+ let bZ = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dq, ds, dB, du, "", true, false], nil)
578+ let dC = {
579+ let z = bZ
587580 if (if (if ($isInstanceOf(z._1, "Int"))
588581 then if ($isInstanceOf(z._3, "Int"))
589582 then if ($isInstanceOf(z._4, "Int"))
596589 then (size(z) == 13)
597590 else false)
598591 then {
599- let dw = z._1
600- let dx = z._3
601- let dy = z._4
602- let dz = z._5
603- let dA = z._6
604- $Tuple5(dw, dx, dy, dz, dA)
592+ let dD = z._1
593+ let dE = z._3
594+ let dF = z._4
595+ let dG = z._5
596+ let dH = z._6
597+ $Tuple5(dD, dE, dF, dG, dH)
605598 }
606599 else throw("Couldn't cast types")
607600 }
608- let dw = dv._1
609- let dx = dv._2
610- let dy = dv._3
611- let dz = dv._4
612- let dA = dv._5
613- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
601+ let dD = dC._1
602+ let dE = dC._2
603+ let dF = dC._3
604+ let dG = dC._4
605+ let dH = dC._5
606+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dD), toString(dj), toString(dF), toString(dG), toString(dH), dv, toString(dq), toString(dB)], e))
614607 }
615608
616609
617610
618611 @Callable(bB)
619-func poolEvaluatePutByPriceAssetREADONLY (cO,du) = {
620- let aZ = addressFromStringValue(t(aT, U(cO)))
621- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
622- let bd = fromBase58String(D(cR[j]))
623- let dk = D(cR[k])
624- let dl = fromBase58String(dk)
625- let dm = D(cR[l])
626- let dn = fromBase58String(dm)
627- let cW = parseIntValue(D(cR[m]))
628- let cX = parseIntValue(D(cR[n]))
629- let do = D(cR[i])
630- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
631- let dB = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
632- let dC = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
633- let dD = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, cW], nil)))
634- let dE = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dC, cX], nil)))
635- let dr = if ((cY == 0))
612+func poolEvaluatePutByPriceAssetREADONLY (cV,dB) = {
613+ let aZ = addressFromStringValue(t(aT, U(cV)))
614+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
615+ let bd = fromBase58String(D(cY[j]))
616+ let dr = D(cY[k])
617+ let ds = fromBase58String(dr)
618+ let dt = D(cY[l])
619+ let du = fromBase58String(dt)
620+ let dd = parseIntValue(D(cY[m]))
621+ let de = parseIntValue(D(cY[n]))
622+ let dv = D(cY[i])
623+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
624+ let dI = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dr], nil))
625+ let dJ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dt], nil))
626+ let dK = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dI, dd], nil)))
627+ let dL = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dJ, de], nil)))
628+ let dy = if ((df == 0))
636629 then g
637- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
638- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
639- let dt = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [du, cX], nil)))
640- let ds = fraction(dt, d, dr)
641- let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(ds), cW], nil))
642- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
643- let dF = {
644- let z = ca
630+ else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dL), toString(dK)], nil)))
631+ let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dy), b], nil))
632+ let dA = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, de], nil)))
633+ let dz = fraction(dA, d, dy)
634+ let dq = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dz), dd], nil))
635+ let bZ = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dq, ds, dB, du, "", true, false], nil)
636+ let dM = {
637+ let z = bZ
645638 if (if (if ($isInstanceOf(z._1, "Int"))
646639 then if ($isInstanceOf(z._3, "Int"))
647640 then if ($isInstanceOf(z._4, "Int"))
654647 then (size(z) == 13)
655648 else false)
656649 then {
657- let dw = z._1
658- let dx = z._3
659- let dy = z._4
660- let dz = z._5
661- let dA = z._6
662- $Tuple5(dw, dx, dy, dz, dA)
650+ let dD = z._1
651+ let dE = z._3
652+ let dF = z._4
653+ let dG = z._5
654+ let dH = z._6
655+ $Tuple5(dD, dE, dF, dG, dH)
663656 }
664657 else throw("Couldn't cast types")
665658 }
666- let dw = dF._1
667- let dx = dF._2
668- let dy = dF._3
669- let dz = dF._4
670- let dA = dF._5
671- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
659+ let dD = dM._1
660+ let dE = dM._2
661+ let dF = dM._3
662+ let dG = dM._4
663+ let dH = dM._5
664+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dD), toString(dj), toString(dF), toString(dG), toString(dH), dv, toString(dq), toString(dB)], e))
672665 }
673666
674667
675668
676669 @Callable(bB)
677-func poolEvaluateGetREADONLY (dG,dH) = {
678- let aZ = addressFromStringValue(t(aT, U(dG)))
679- let ca = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(aZ)], nil)
680- let dI = {
681- let z = ca
670+func poolEvaluateGetREADONLY (dN,dO) = {
671+ let aZ = addressFromStringValue(t(aT, U(dN)))
672+ let bZ = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dN, dO, toString(aZ)], nil)
673+ let dP = {
674+ let z = bZ
682675 if (if (if ($isInstanceOf(z._1, "Int"))
683676 then if ($isInstanceOf(z._2, "Int"))
684677 then if ($isInstanceOf(z._5, "Int"))
695688 then (size(z) == 10)
696689 else false)
697690 then {
698- let dJ = z._1
699- let dK = z._2
700- let dy = z._5
701- let dz = z._6
702- let dA = z._7
703- let dc = z._8
704- let do = z._9
705- $Tuple7(dJ, dK, dy, dz, dA, dc, do)
691+ let dQ = z._1
692+ let dR = z._2
693+ let dF = z._5
694+ let dG = z._6
695+ let dH = z._7
696+ let dj = z._8
697+ let dv = z._9
698+ $Tuple7(dQ, dR, dF, dG, dH, dj, dv)
706699 }
707700 else throw("Couldn't cast types")
708701 }
709- let dJ = dI._1
710- let dK = dI._2
711- let dy = dI._3
712- let dz = dI._4
713- let dA = dI._5
714- let dc = dI._6
715- let do = dI._7
716- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), dc, do], e))
702+ let dQ = dP._1
703+ let dR = dP._2
704+ let dF = dP._3
705+ let dG = dP._4
706+ let dH = dP._5
707+ let dj = dP._6
708+ let dv = dP._7
709+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dQ), toString(dR), toString(dF), toString(dG), toString(dH), dj, dv], e))
717710 }
718711
719712
720713
721714 @Callable(bB)
722715 func gwxUserInfoREADONLY (am) = {
723- let dL = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
724- let dM = B(dL[0])
725- $Tuple2(nil, makeString(["%d", toString(dM)], e))
716+ let dS = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
717+ let dT = B(dS[0])
718+ $Tuple2(nil, makeString(["%d", toString(dT)], e))
726719 }
727720
728721
729722
730723 @Callable(bB)
731-func unstakeAndGetOneTknV2 (aZ,dN,dO,dP) = {
732- let cb = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dN, dO, dP], nil)
733- if ((cb == cb))
724+func unstakeAndGetOneTknV2 (aZ,dU,dV,dW) = {
725+ let ca = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dU, dV, dW], nil)
726+ if ((ca == ca))
734727 then $Tuple2(nil, unit)
735728 else throw("Strict value is not equal to itself.")
736729 }
738731
739732
740733 @Callable(bB)
741-func getKeysBulkInternal (bO,dQ,bU) = if ((bO == size(dQ)))
742- then $Tuple2(nil, bU)
734+func getKeysBulkInternal (bN,dX,bT) = if ((bN == size(dX)))
735+ then $Tuple2(nil, bT)
743736 else {
744- let dR = split(dQ[bO], "++")
745- let bv = addressFromStringValue(dR[0])
746- let s = dR[1]
747- let bw = dR[2]
737+ let cp = split(dX[bN], "++")
738+ let bv = addressFromStringValue(cp[0])
739+ let s = cp[1]
740+ let bw = cp[2]
748741 let y = bu(bv, s, bw)
749- let ca = (bU :+ y)
750- let cb = invoke(this, "getKeysBulkInternal", [(bO + 1), dQ, ca], nil)
751- if ((cb == cb))
752- then $Tuple2(nil, cb)
742+ let bZ = (bT :+ y)
743+ let ca = invoke(this, "getKeysBulkInternal", [(bN + 1), dX, bZ], nil)
744+ if ((ca == ca))
745+ then $Tuple2(nil, ca)
753746 else throw("Strict value is not equal to itself.")
754747 }
755748
756749
757750
758751 @Callable(bB)
759-func getKeysBulk (dQ) = {
760- let ca = invoke(this, "getKeysBulkInternal", [0, dQ, nil], nil)
761- $Tuple2(nil, ca)
752+func getKeysBulk (dX) = {
753+ let bZ = invoke(this, "getKeysBulkInternal", [0, dX, nil], nil)
754+ $Tuple2(nil, bZ)
762755 }
763756
764757
765758
766759 @Callable(bB)
767-func setManager (dS) = {
760+func setManager (dY) = {
768761 let bF = bA(bB)
769762 if ((bF == bF))
770763 then {
771- let dT = fromBase58String(dS)
772- if ((dT == dT))
773- then [StringEntry(H(), dS)]
764+ let dZ = fromBase58String(dY)
765+ if ((dZ == dZ))
766+ then [StringEntry(H(), dY)]
774767 else throw("Strict value is not equal to itself.")
775768 }
776769 else throw("Strict value is not equal to itself.")
780773
781774 @Callable(bB)
782775 func confirmManager () = {
783- let dU = bz()
784- let dV = if (isDefined(dU))
776+ let ea = bz()
777+ let eb = if (isDefined(ea))
785778 then true
786779 else throw("No pending manager")
787- if ((dV == dV))
780+ if ((eb == eb))
788781 then {
789- let dW = if ((bB.callerPublicKey == value(dU)))
782+ let ec = if ((bB.callerPublicKey == value(ea)))
790783 then true
791784 else throw("You are not pending manager")
792- if ((dW == dW))
793- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
785+ if ((ec == ec))
786+ then [StringEntry(G(), toBase58String(value(ea))), DeleteEntry(H())]
794787 else throw("Strict value is not equal to itself.")
795788 }
796789 else throw("Strict value is not equal to itself.")
797790 }
798791
799792
800-@Verifier(dX)
801-func dY () = {
802- let dZ = {
793+@Verifier(ed)
794+func ee () = {
795+ let ef = {
803796 let z = bx()
804797 if ($isInstanceOf(z, "ByteVector"))
805798 then {
807800 bD
808801 }
809802 else if ($isInstanceOf(z, "Unit"))
810- then dX.senderPublicKey
803+ then ed.senderPublicKey
811804 else throw("Match error")
812805 }
813- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
806+ sigVerify(ed.bodyBytes, ed.proofs[0], ef)
814807 }
815808
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 5
2727
2828 let m = 6
2929
3030 let n = 7
3131
3232 let o = 8
3333
3434 let p = 9
3535
3636 let q = 10
3737
3838 func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3939
4040
4141 func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4242
4343
4444 func v (u,s) = valueOrElse(getInteger(u, s), 0)
4545
4646
4747 func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4848
4949
5050 func x (y) = {
5151 let z = y
5252 if ($isInstanceOf(z, "List[Any]"))
5353 then {
5454 let A = z
5555 A
5656 }
5757 else throw("fail to cast into List[Any]")
5858 }
5959
6060
6161 func B (y) = {
6262 let z = y
6363 if ($isInstanceOf(z, "Int"))
6464 then {
6565 let C = z
6666 C
6767 }
6868 else throw("fail to cast into Int")
6969 }
7070
7171
7272 func D (y) = {
7373 let z = y
7474 if ($isInstanceOf(z, "String"))
7575 then {
7676 let E = z
7777 E
7878 }
7979 else throw("fail to cast into String")
8080 }
8181
8282
8383 func F () = "%s%s__config__factoryAddress"
8484
8585
8686 func G () = "%s__managerPublicKey"
8787
8888
8989 func H () = "%s__pendingManagerPublicKey"
9090
9191
9292 let I = 1
9393
9494 let J = 2
9595
9696 let K = 3
9797
9898 let L = 4
9999
100100 let M = 5
101101
102102 let N = 6
103103
104104 let O = 7
105105
106106 let P = 8
107107
108108 func Q () = "%s__factoryConfig"
109109
110110
111111 func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
112112
113113
114114 func T () = "%s__lpTokensList"
115115
116116
117117 func U (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], e)
118118
119119
120120 func V (W) = makeString(["%s%s", "poolWeight", W], e)
121121
122122
123123 func X () = addressFromStringValue(r(F()))
124124
125125
126126 func Y () = split(valueOrElse(getString(X(), T()), ""), e)
127127
128128
129129 func Z (aa) = split(t(aa, Q()), e)
130130
131131
132132 func ab (ac) = addressFromStringValue(ac[J])
133133
134134
135135 func ad (ac) = addressFromStringValue(ac[M])
136136
137137
138138 func ae (ac) = addressFromStringValue(ac[I])
139139
140140
141141 func af (ac) = addressFromStringValue(ac[P])
142142
143143
144144 func ag () = "%s__config"
145145
146146
147147 func ah () = "%s%s__stats__activeTotalLocked"
148148
149149
150150 func ai () = "%s%s__stats__locksDurationSumInBlocks"
151151
152152
153153 func aj () = "%s%s__stats__locksCount"
154154
155155
156156 func ak () = "%s%s__stats__activeUsersCount"
157157
158158
159159 func al (am) = makeString(["%s%s%s__mapping__user2num", am], e)
160160
161161
162162 func an (ao) = makeString(["%s%s%s__mapping__num2user", ao], e)
163163
164164
165165 func ap (aq) = makeString(["%s%d%s__paramByUserNum", aq, "amount"], e)
166166
167167
168168 func ar (aq) = makeString(["%s%d%s__paramByUserNum", aq, "start"], e)
169169
170170
171171 func as (aq) = makeString(["%s%d%s__paramByUserNum", aq, "duration"], e)
172172
173173
174174 func at (aq) = makeString(["%s%d%s__paramByUserNum", aq, "k"], e)
175175
176176
177177 func au (aq) = makeString(["%s%d%s__paramByUserNum", aq, "b"], e)
178178
179179
180180 func av (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "k", aw], e)
181181
182182
183183 func ax (aq,aw) = makeString(["%s%d%s%d__paramByPeriod", aq, "b", aw], e)
184184
185185
186186 func ay (aq) = makeString(["%s%d__userBoostEmissionLastInt", aq], e)
187187
188188
189189 func az (aq) = makeString(["%s%d__maxBoostInt", aq], e)
190190
191191
192192 func aA () = "%s%s__maxBoostInt__total"
193193
194194
195195 func aB (aq) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aq], e)
196196
197197
198198 func aC (aq) = makeString(["%s%d__userBoostClaimed", aq], e)
199199
200200
201201 func aD () = "%s%s__gwxCached__total"
202202
203203
204204 func aE (aF,aG) = makeString(["%s%s%s__staked", aF, aG], e)
205205
206206
207207 func aH (aG) = ("%s%s%s__staked__total__" + aG)
208208
209209
210210 func aI (aG,aF) = makeString(["%s%s%s__claimed", aF, aG], e)
211211
212212
213213 func aJ (aG,aF) = makeString(["%s%s%s__claimedMinReward", aF, aG], e)
214214
215215
216216 func aK (aG,aF) = makeString(["%s%s%s__claimedBoostReward", aF, aG], e)
217217
218218
219219 func aL (aM,s) = valueOrElse(getInteger(aM, s), 0)
220220
221221
222222 func aN () = "%s%s__ratePerBlock__current"
223223
224224
225225 func aO () = "%s%s__ratePerBlockMax__current"
226226
227227
228228 func aP () = "%s%s__emission__startBlock"
229229
230230
231231 func aQ () = "%s%s__emission__duration"
232232
233233
234234 func aR () = "%s%s__emission__endBlock"
235235
236236
237237 func aS () = "%s__addonAddr"
238238
239239
240240 let aT = X()
241241
242242 let aU = Z(aT)
243243
244244 let aV = ad(aU)
245245
246246 let aM = ae(aU)
247247
248248 let aW = af(aU)
249249
250250 let aX = ab(aU)
251251
252252 func aY (aZ) = {
253253 let ba = invoke(aT, "getInFeeREADONLY", [toString(aZ)], nil)
254254 if ($isInstanceOf(ba, "Int"))
255255 then ba
256256 else throw(($getType(ba) + " couldn't be cast to Int"))
257257 }
258258
259259
260260 func bb (aZ) = {
261261 let ba = invoke(aT, "getOutFeeREADONLY", [toString(aZ)], nil)
262262 if ($isInstanceOf(ba, "Int"))
263263 then ba
264264 else throw(($getType(ba) + " couldn't be cast to Int"))
265265 }
266266
267267
268268 func bc (bd) = {
269269 let be = t(aT, U(bd))
270270 let bf = b
271271 let bg = getIntegerValue(aT, V(be))
272272 let bh = w(aV, aN())
273273 let bi = w(aV, aO())
274- let bj = {
275- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
276- if ($isInstanceOf(ba, "Int"))
277- then ba
278- else throw(($getType(ba) + " couldn't be cast to Int"))
279- }
274+ let bj = 3
280275 let bk = (fraction(bh, bg, bf) / bj)
281276 let bl = fraction(bi, bg, bf)
282277 let bm = (bj * b)
283278 let bn = v(aM, aH(bd))
284279 [bk, bm, bn]
285280 }
286281
287282
288283 func bo (bp,bq,br) = {
289284 let bs = fraction(bq, b, br)
290285 let bt = fraction(bp, bs, b)
291286 [bt]
292287 }
293288
294289
295290 func bu (bv,s,bw) = if ((bw == "string"))
296291 then getStringValue(bv, s)
297292 else if ((bw == "integer"))
298293 then toString(getIntegerValue(bv, s))
299294 else if ((bw == "boolean"))
300295 then toString(getBooleanValue(bv, s))
301296 else throw("unknown type. expected string/integer/boolean")
302297
303298
304299 func bx () = {
305300 let z = getString(G())
306301 if ($isInstanceOf(z, "String"))
307302 then {
308303 let by = z
309304 fromBase58String(by)
310305 }
311306 else if ($isInstanceOf(z, "Unit"))
312307 then unit
313308 else throw("Match error")
314309 }
315310
316311
317312 func bz () = {
318313 let z = getString(H())
319314 if ($isInstanceOf(z, "String"))
320315 then {
321316 let by = z
322317 fromBase58String(by)
323318 }
324319 else if ($isInstanceOf(z, "Unit"))
325320 then unit
326321 else throw("Match error")
327322 }
328323
329324
330325 func bA (bB) = {
331326 let bC = throw("Permission denied")
332327 let z = bx()
333328 if ($isInstanceOf(z, "ByteVector"))
334329 then {
335330 let bD = z
336331 if ((bB.callerPublicKey == bD))
337332 then true
338333 else bC
339334 }
340335 else if ($isInstanceOf(z, "Unit"))
341336 then if ((bB.caller == this))
342337 then true
343338 else bC
344339 else throw("Match error")
345340 }
346341
347342
348343 @Callable(bB)
349344 func constructor (bE) = {
350345 let bF = bA(bB)
351346 if ((bF == bF))
352347 then [StringEntry(F(), bE)]
353348 else throw("Strict value is not equal to itself.")
354349 }
355350
356351
357352
358353 @Callable(bB)
359354 func currentRewardRateREADONLY (bd) = {
360355 let bG = bc(bd)
361356 let bh = bG[0]
362357 let bm = bG[1]
363358 let bn = bG[2]
364- let bH = {
365- let ba = invoke(aX, "getVotingResultStakedREADONLY", [bd], nil)
366- if ($isInstanceOf(ba, "Int"))
367- then ba
368- else throw(($getType(ba) + " couldn't be cast to Int"))
369- }
370- $Tuple2(nil, makeString(["%d%d%d%d", toString(bh), toString(bm), toString(bn), toString(bH)], e))
359+ $Tuple2(nil, makeString(["%d%d%d", toString(bh), toString(bm), toString(bn)], e))
371360 }
372361
373362
374363
375364 @Callable(bB)
376365 func currentUserRewardRateREADONLY (bd,am) = {
377366 let bG = bc(bd)
378367 let bh = bG[0]
379368 let bm = bG[1]
380369 let bn = bG[2]
381- let bI = v(aM, aE(am, bd))
382- let bJ = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
383- let bK = valueOrErrorMessage(parseInt(bJ[5]), "couldn't parse minRewardPart")
384- let bL = valueOrErrorMessage(parseInt(bJ[6]), "couldn't parse boostRewardPart")
385- let bM = bJ[7]
386- let bN = if ((bL == 0))
370+ let bH = v(aM, aE(am, bd))
371+ let bI = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
372+ let bJ = valueOrErrorMessage(parseInt(bI[5]), "couldn't parse minRewardPart")
373+ let bK = valueOrErrorMessage(parseInt(bI[6]), "couldn't parse boostRewardPart")
374+ let bL = bI[7]
375+ let bM = if ((bK == 0))
387376 then (1 * b)
388- else fraction((bK + bL), b, bK)
389- $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bI), toString(bN), bM], e))
377+ else fraction((bJ + bK), b, bJ)
378+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bH), toString(bM), bL], e))
390379 }
391380
392381
393382
394383 @Callable(bB)
395-func calcBoostBulkInternalREADONLY (bO,bP,bQ,bR,bS,bT,bU) = if ((bO == size(bP)))
396- then $Tuple2(nil, bU)
384+func calcBoostBulkInternalREADONLY (bN,bO,bP,bQ,bR,bS,bT) = if ((bN == size(bO)))
385+ then $Tuple2(nil, bT)
397386 else {
398- let bV = bP[bO]
399- let bW = bQ[bO]
400- let bX = bR[bO]
401- let bY = bS[bO]
402- let bZ = {
403- let ba = invoke(this, "calcBoostREADONLY", [bV, bW, bX, bY, bT], nil)
387+ let bU = bO[bN]
388+ let bV = bP[bN]
389+ let bW = bQ[bN]
390+ let bX = bR[bN]
391+ let bY = {
392+ let ba = invoke(this, "calcBoostREADONLY", [bU, bV, bW, bX, bS], nil)
404393 if ($isInstanceOf(ba, "String"))
405394 then ba
406395 else throw(($getType(ba) + " couldn't be cast to String"))
407396 }
408- let ca = (bU :+ bZ)
409- let cb = {
410- let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bO + 1), bP, bQ, bR, bS, bT, ca], nil)
397+ let bZ = (bT :+ bY)
398+ let ca = {
399+ let ba = invoke(this, "calcBoostBulkInternalREADONLY", [(bN + 1), bO, bP, bQ, bR, bS, bZ], nil)
411400 if ($isInstanceOf(ba, "List[Any]"))
412401 then ba
413402 else throw(($getType(ba) + " couldn't be cast to List[Any]"))
414403 }
415- if ((cb == cb))
416- then $Tuple2(nil, cb)
404+ if ((ca == ca))
405+ then $Tuple2(nil, ca)
417406 else throw("Strict value is not equal to itself.")
418407 }
419408
420409
421410
422411 @Callable(bB)
423-func calcBoostBulkREADONLY (bV,bW,bX,bY,bT) = {
424- let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bV, bW, bX, bY, bT, nil], nil)
425- $Tuple2(nil, ca)
412+func calcBoostBulkREADONLY (bU,bV,bW,bX,bS) = {
413+ let bZ = invoke(this, "calcBoostBulkInternalREADONLY", [0, bU, bV, bW, bX, bS, nil], nil)
414+ $Tuple2(nil, bZ)
426415 }
427416
428417
429418
430419 @Callable(bB)
431-func calcBoostREADONLY (bV,bW,bX,bY,bT) = {
432- let cc = {
433- let ba = invoke(aV, "getBoostCoeffREADONLY", nil, nil)
434- if ($isInstanceOf(ba, "Int"))
435- then ba
436- else throw(($getType(ba) + " couldn't be cast to Int"))
437- }
438- let cd = aW
439- let ce = "empty"
440- let cf = parseIntValue(split(t(aX, ag()), e)[4])
441- let aG = if ((bY == ""))
442- then ce
443- else bY
444- let aF = if ((bT == ""))
445- then ce
446- else bT
447- let cg = valueOrElse(getString(aX, al(bT)), ce)
448- let ch = valueOrElse(getInteger(aX, ap(cg)), 0)
449- let ci = valueOrElse(getInteger(aX, ar(cg)), height)
450- let bq = valueOrElse(getInteger(aX, as(cg)), 0)
451- let cj = (ci + bq)
452- let ck = max([(cj - height), 0])
453- let cl = (ch + bV)
454- let cm = min([(ck + bW), cf])
455- let cn = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
456- let co = bo(cl, cm, cf)[0]
457- let cp = {
420+func calcBoostREADONLY (bU,bV,bW,bX,bS) = {
421+ let cb = aW
422+ let cc = "empty"
423+ let cd = parseIntValue(split(t(aX, ag()), e)[4])
424+ let aG = if ((bX == ""))
425+ then cc
426+ else bX
427+ let aF = if ((bS == ""))
428+ then cc
429+ else bS
430+ let ce = valueOrElse(getString(aX, al(bS)), cc)
431+ let cf = valueOrElse(getInteger(aX, ap(ce)), 0)
432+ let cg = valueOrElse(getInteger(aX, ar(ce)), height)
433+ let bq = valueOrElse(getInteger(aX, as(ce)), 0)
434+ let ch = (cg + bq)
435+ let ci = max([(ch - height), 0])
436+ let cj = (cf + bU)
437+ let ck = min([(ci + bV), cd])
438+ let cl = B(x(invoke(aX, "gwxUserInfoREADONLY", [aF], nil))[0])
439+ let cm = bo(cj, ck, cd)[0]
440+ let cn = x(invoke(cb, "calcGwxParamsREADONLY", [cm, height, ck], nil))
441+ let co = (cm - cl)
442+ let cp = B(cn[0])
443+ let cq = B(cn[1])
444+ let aw = toString(B(cn[2]))
445+ let cr = aA()
446+ let cs = ((cm * ck) / 2)
447+ let ct = v(aX, cr)
448+ let cu = {
458449 let ba = invoke(aX, "getTotalCachedGwxREADONLY", nil, nil)
459450 if ($isInstanceOf(ba, "Int"))
460451 then ba
461452 else throw(($getType(ba) + " couldn't be cast to Int"))
462453 }
463- let cq = 1000
464- let cr = (w(aV, aN()) * cq)
465- let cs = aE(aF, aG)
466- let ct = aH(aG)
467- let cu = aL(aM, cs)
468- let cv = aL(aM, ct)
469- let bg = if ((aG != ce))
454+ let cv = 1000
455+ let cw = (w(aV, aN()) * cv)
456+ let cx = aE(aF, aG)
457+ let cy = aH(aG)
458+ let cz = aL(aM, cx)
459+ let cA = aL(aM, cy)
460+ let cB = (cz + bW)
461+ let cC = (cA + bW)
462+ let bg = if ((aG != cc))
470463 then {
471464 let be = valueOrErrorMessage(getString(aT, R(aG)), ("unsupported lp asset " + aG))
472465 getIntegerValue(aT, V(be))
473466 }
474467 else 0
475- let cw = fraction(cr, bg, (f * cc))
476- let cx = if ((cv != 0))
477- then fraction(cw, b, cv)
468+ let cD = fraction(cw, bg, (f * 3))
469+ let cE = if ((cC != 0))
470+ then fraction(cD, b, cC)
478471 else 0
479- let cy = fraction(cx, cu, b)
480- let cz = (cw * (cc - 1))
481- let cA = fraction(cn, cz, cp)
482- let cB = min([cA, (cy * (cc - 1))])
483- let cC = if ((cy == 0))
472+ let cF = fraction(cE, cB, b)
473+ let cG = (cD * 2)
474+ let cH = fraction(cm, cG, (cu + co))
475+ let cI = min([cH, (cF * 2)])
476+ let cJ = if ((cF == 0))
484477 then (1 * b)
485- else fraction((cB + cy), b, cy)
486- $Tuple2(nil, makeString(["%d%d%s", toString(co), toString(cC), "d"], e))
478+ else fraction((cI + cF), b, cF)
479+ $Tuple2(nil, makeString(["%d%d%s", toString(cm), toString(cJ), "d"], e))
487480 }
488481
489482
490483
491484 @Callable(bB)
492485 func wxEmissionStatsREADONLY () = {
493- let cD = toString(b)
494- let cE = "1"
486+ let cK = toString(b)
487+ let cL = "1"
495488 let bh = w(aV, aN())
496- let cF = w(aV, aP())
497- let cG = if ((cF > height))
489+ let cM = w(aV, aP())
490+ let cN = if ((cM > height))
498491 then 0
499- else (height - cF)
500- let cH = (1440 * 365)
501- let cI = (201000000 * b)
502- let cJ = if ((cG > cH))
503- then cI
504- else fraction(cI, cG, cH)
505- let cK = ((bh * cG) + cJ)
506- let cL = v(aX, ah())
507- let cM = v(aX, ai())
508- let cN = v(aX, aj())
509- $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
492+ else (height - cM)
493+ let cO = (1440 * 365)
494+ let cP = (201000000 * b)
495+ let cQ = if ((cN > cO))
496+ then cP
497+ else fraction(cP, cN, cO)
498+ let cR = ((bh * cN) + cQ)
499+ let cS = v(aX, ah())
500+ let cT = v(aX, ai())
501+ let cU = v(aX, aj())
502+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cR), toString(cS), toString(cT), toString(cU)], e))
510503 }
511504
512505
513506
514507 @Callable(bB)
515-func poolStatsREADONLY (cO) = {
516- let aZ = addressFromStringValue(t(aT, U(cO)))
517- let cP = {
508+func poolStatsREADONLY (cV) = {
509+ let aZ = addressFromStringValue(t(aT, U(cV)))
510+ let cW = {
518511 let ba = invoke(aT, "getPoolStatusREADONLY", [toString(aZ)], nil)
519512 if ($isInstanceOf(ba, "Int"))
520513 then ba
521514 else throw(($getType(ba) + " couldn't be cast to Int"))
522515 }
523- let cQ = "%d%d%d%d%d%d%d%d%d%s"
524- if ((cP == 4))
525- then $Tuple2(nil, makeString([cQ, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
516+ let cX = "%d%d%d%d%d%d%d%d%d%s"
517+ if ((cW == 4))
518+ then $Tuple2(nil, makeString([cX, toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(0), toString(false)], e))
526519 else {
527- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
528- let bd = fromBase58String(D(cR[j]))
529- let cS = D(cR[k])
530- let cT = D(cR[l])
531- let cU = D(cR[o])
532- let cV = D(cR[p])
533- let cW = parseIntValue(D(cR[m]))
534- let cX = parseIntValue(D(cR[n]))
535- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
536- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cS], nil))
537- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cT], nil))
538- let db = if ((cY == 0))
520+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
521+ let bd = fromBase58String(D(cY[j]))
522+ let cZ = D(cY[k])
523+ let da = D(cY[l])
524+ let db = D(cY[o])
525+ let dc = D(cY[p])
526+ let dd = parseIntValue(D(cY[m]))
527+ let de = parseIntValue(D(cY[n]))
528+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
529+ let dg = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [cZ], nil))
530+ let dh = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [da], nil))
531+ let di = if ((df == 0))
539532 then [toString(g), toString(g), toString(g)]
540- else x(invoke(aZ, "calcPricesWrapperREADONLY", [cZ, da, cY], nil))
541- let dc = 0
542- let dd = B(invoke(aZ, "fromX18WrapperREADONLY", [db[1], b], nil))
543- let de = B(invoke(aZ, "fromX18WrapperREADONLY", [db[2], b], nil))
533+ else x(invoke(aZ, "calcPricesWrapperREADONLY", [dg, dh, df], nil))
534+ let dj = 0
535+ let dk = B(invoke(aZ, "fromX18WrapperREADONLY", [di[1], b], nil))
536+ let dl = B(invoke(aZ, "fromX18WrapperREADONLY", [di[2], b], nil))
544537 let bg = getIntegerValue(aT, V(toString(aZ)))
545- let df = aY(aZ)
546- let dg = bb(aZ)
547- let dh = {
538+ let dm = aY(aZ)
539+ let dn = bb(aZ)
540+ let do = {
548541 let ba = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aZ)], nil)
549542 if ($isInstanceOf(ba, "Boolean"))
550543 then ba
551544 else throw(($getType(ba) + " couldn't be cast to Boolean"))
552545 }
553- let di = !(dh)
554- $Tuple2(nil, makeString([cQ, toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(bg), toString(df), toString(dg), toString(di)], e))
546+ let dp = !(do)
547+ $Tuple2(nil, makeString([cX, toString(dg), toString(dh), toString(df), toString(dj), toString(dk), toString(dl), toString(bg), toString(dm), toString(dn), toString(dp)], e))
555548 }
556549 }
557550
558551
559552
560553 @Callable(bB)
561-func poolEvaluatePutByAmountAssetREADONLY (cO,dj) = {
562- let aZ = addressFromStringValue(t(aT, U(cO)))
563- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
564- let bd = fromBase58String(D(cR[j]))
565- let dk = D(cR[k])
566- let dl = fromBase58String(dk)
567- let dm = D(cR[l])
568- let dn = fromBase58String(dm)
569- let cW = parseIntValue(D(cR[m]))
570- let cX = parseIntValue(D(cR[n]))
571- let do = D(cR[i])
572- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
573- let cZ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
574- let da = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
575- let dp = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [cZ, cW], nil)))
576- let dq = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [da, cX], nil)))
577- let dr = if ((cY == 0))
554+func poolEvaluatePutByAmountAssetREADONLY (cV,dq) = {
555+ let aZ = addressFromStringValue(t(aT, U(cV)))
556+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
557+ let bd = fromBase58String(D(cY[j]))
558+ let dr = D(cY[k])
559+ let ds = fromBase58String(dr)
560+ let dt = D(cY[l])
561+ let du = fromBase58String(dt)
562+ let dd = parseIntValue(D(cY[m]))
563+ let de = parseIntValue(D(cY[n]))
564+ let dv = D(cY[i])
565+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
566+ let dg = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dr], nil))
567+ let dh = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dt], nil))
568+ let dw = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dg, dd], nil)))
569+ let dx = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dh, de], nil)))
570+ let dy = if ((df == 0))
578571 then g
579- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dq), toString(dp)], nil)))
580- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
581- let ds = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dj, cW], nil)))
582- let dt = fraction(ds, dr, d)
583- let du = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dt), cX], nil))
584- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
585- let dv = {
586- let z = ca
572+ else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dx), toString(dw)], nil)))
573+ let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dy), b], nil))
574+ let dz = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dq, dd], nil)))
575+ let dA = fraction(dz, dy, d)
576+ let dB = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dA), de], nil))
577+ let bZ = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dq, ds, dB, du, "", true, false], nil)
578+ let dC = {
579+ let z = bZ
587580 if (if (if ($isInstanceOf(z._1, "Int"))
588581 then if ($isInstanceOf(z._3, "Int"))
589582 then if ($isInstanceOf(z._4, "Int"))
590583 then if ($isInstanceOf(z._5, "Int"))
591584 then $isInstanceOf(z._6, "Int")
592585 else false
593586 else false
594587 else false
595588 else false)
596589 then (size(z) == 13)
597590 else false)
598591 then {
599- let dw = z._1
600- let dx = z._3
601- let dy = z._4
602- let dz = z._5
603- let dA = z._6
604- $Tuple5(dw, dx, dy, dz, dA)
592+ let dD = z._1
593+ let dE = z._3
594+ let dF = z._4
595+ let dG = z._5
596+ let dH = z._6
597+ $Tuple5(dD, dE, dF, dG, dH)
605598 }
606599 else throw("Couldn't cast types")
607600 }
608- let dw = dv._1
609- let dx = dv._2
610- let dy = dv._3
611- let dz = dv._4
612- let dA = dv._5
613- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
601+ let dD = dC._1
602+ let dE = dC._2
603+ let dF = dC._3
604+ let dG = dC._4
605+ let dH = dC._5
606+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dD), toString(dj), toString(dF), toString(dG), toString(dH), dv, toString(dq), toString(dB)], e))
614607 }
615608
616609
617610
618611 @Callable(bB)
619-func poolEvaluatePutByPriceAssetREADONLY (cO,du) = {
620- let aZ = addressFromStringValue(t(aT, U(cO)))
621- let cR = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
622- let bd = fromBase58String(D(cR[j]))
623- let dk = D(cR[k])
624- let dl = fromBase58String(dk)
625- let dm = D(cR[l])
626- let dn = fromBase58String(dm)
627- let cW = parseIntValue(D(cR[m]))
628- let cX = parseIntValue(D(cR[n]))
629- let do = D(cR[i])
630- let cY = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
631- let dB = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dk], nil))
632- let dC = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dm], nil))
633- let dD = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, cW], nil)))
634- let dE = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dC, cX], nil)))
635- let dr = if ((cY == 0))
612+func poolEvaluatePutByPriceAssetREADONLY (cV,dB) = {
613+ let aZ = addressFromStringValue(t(aT, U(cV)))
614+ let cY = x(invoke(aZ, "getPoolConfigWrapperREADONLY", nil, nil))
615+ let bd = fromBase58String(D(cY[j]))
616+ let dr = D(cY[k])
617+ let ds = fromBase58String(dr)
618+ let dt = D(cY[l])
619+ let du = fromBase58String(dt)
620+ let dd = parseIntValue(D(cY[m]))
621+ let de = parseIntValue(D(cY[n]))
622+ let dv = D(cY[i])
623+ let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
624+ let dI = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dr], nil))
625+ let dJ = B(invoke(aZ, "getAccBalanceWrapperREADONLY", [dt], nil))
626+ let dK = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dI, dd], nil)))
627+ let dL = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dJ, de], nil)))
628+ let dy = if ((df == 0))
636629 then g
637- else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dE), toString(dD)], nil)))
638- let dc = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dr), b], nil))
639- let dt = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [du, cX], nil)))
640- let ds = fraction(dt, d, dr)
641- let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(ds), cW], nil))
642- let ca = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dj, dl, du, dn, "", true, false], nil)
643- let dF = {
644- let z = ca
630+ else parseBigIntValue(D(invoke(aZ, "calcPriceBigIntWrapperREADONLY", [toString(dL), toString(dK)], nil)))
631+ let dj = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dy), b], nil))
632+ let dA = parseBigIntValue(D(invoke(aZ, "toX18WrapperREADONLY", [dB, de], nil)))
633+ let dz = fraction(dA, d, dy)
634+ let dq = B(invoke(aZ, "fromX18WrapperREADONLY", [toString(dz), dd], nil))
635+ let bZ = invoke(aZ, "estimatePutOperationWrapperREADONLY", ["", 500000, dq, ds, dB, du, "", true, false], nil)
636+ let dM = {
637+ let z = bZ
645638 if (if (if ($isInstanceOf(z._1, "Int"))
646639 then if ($isInstanceOf(z._3, "Int"))
647640 then if ($isInstanceOf(z._4, "Int"))
648641 then if ($isInstanceOf(z._5, "Int"))
649642 then $isInstanceOf(z._6, "Int")
650643 else false
651644 else false
652645 else false
653646 else false)
654647 then (size(z) == 13)
655648 else false)
656649 then {
657- let dw = z._1
658- let dx = z._3
659- let dy = z._4
660- let dz = z._5
661- let dA = z._6
662- $Tuple5(dw, dx, dy, dz, dA)
650+ let dD = z._1
651+ let dE = z._3
652+ let dF = z._4
653+ let dG = z._5
654+ let dH = z._6
655+ $Tuple5(dD, dE, dF, dG, dH)
663656 }
664657 else throw("Couldn't cast types")
665658 }
666- let dw = dF._1
667- let dx = dF._2
668- let dy = dF._3
669- let dz = dF._4
670- let dA = dF._5
671- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dw), toString(dc), toString(dy), toString(dz), toString(dA), do, toString(dj), toString(du)], e))
659+ let dD = dM._1
660+ let dE = dM._2
661+ let dF = dM._3
662+ let dG = dM._4
663+ let dH = dM._5
664+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dD), toString(dj), toString(dF), toString(dG), toString(dH), dv, toString(dq), toString(dB)], e))
672665 }
673666
674667
675668
676669 @Callable(bB)
677-func poolEvaluateGetREADONLY (dG,dH) = {
678- let aZ = addressFromStringValue(t(aT, U(dG)))
679- let ca = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dG, dH, toString(aZ)], nil)
680- let dI = {
681- let z = ca
670+func poolEvaluateGetREADONLY (dN,dO) = {
671+ let aZ = addressFromStringValue(t(aT, U(dN)))
672+ let bZ = invoke(aZ, "estimateGetOperationWrapperREADONLY", ["", dN, dO, toString(aZ)], nil)
673+ let dP = {
674+ let z = bZ
682675 if (if (if ($isInstanceOf(z._1, "Int"))
683676 then if ($isInstanceOf(z._2, "Int"))
684677 then if ($isInstanceOf(z._5, "Int"))
685678 then if ($isInstanceOf(z._6, "Int"))
686679 then if ($isInstanceOf(z._7, "Int"))
687680 then if ($isInstanceOf(z._8, "String"))
688681 then $isInstanceOf(z._9, "String")
689682 else false
690683 else false
691684 else false
692685 else false
693686 else false
694687 else false)
695688 then (size(z) == 10)
696689 else false)
697690 then {
698- let dJ = z._1
699- let dK = z._2
700- let dy = z._5
701- let dz = z._6
702- let dA = z._7
703- let dc = z._8
704- let do = z._9
705- $Tuple7(dJ, dK, dy, dz, dA, dc, do)
691+ let dQ = z._1
692+ let dR = z._2
693+ let dF = z._5
694+ let dG = z._6
695+ let dH = z._7
696+ let dj = z._8
697+ let dv = z._9
698+ $Tuple7(dQ, dR, dF, dG, dH, dj, dv)
706699 }
707700 else throw("Couldn't cast types")
708701 }
709- let dJ = dI._1
710- let dK = dI._2
711- let dy = dI._3
712- let dz = dI._4
713- let dA = dI._5
714- let dc = dI._6
715- let do = dI._7
716- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dJ), toString(dK), toString(dy), toString(dz), toString(dA), dc, do], e))
702+ let dQ = dP._1
703+ let dR = dP._2
704+ let dF = dP._3
705+ let dG = dP._4
706+ let dH = dP._5
707+ let dj = dP._6
708+ let dv = dP._7
709+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dQ), toString(dR), toString(dF), toString(dG), toString(dH), dj, dv], e))
717710 }
718711
719712
720713
721714 @Callable(bB)
722715 func gwxUserInfoREADONLY (am) = {
723- let dL = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
724- let dM = B(dL[0])
725- $Tuple2(nil, makeString(["%d", toString(dM)], e))
716+ let dS = x(invoke(aX, "gwxUserInfoREADONLY", [am], nil))
717+ let dT = B(dS[0])
718+ $Tuple2(nil, makeString(["%d", toString(dT)], e))
726719 }
727720
728721
729722
730723 @Callable(bB)
731-func unstakeAndGetOneTknV2 (aZ,dN,dO,dP) = {
732- let cb = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dN, dO, dP], nil)
733- if ((cb == cb))
724+func unstakeAndGetOneTknV2 (aZ,dU,dV,dW) = {
725+ let ca = invoke(addressFromStringValue(aZ), "unstakeAndGetOneTknV2", [dU, dV, dW], nil)
726+ if ((ca == ca))
734727 then $Tuple2(nil, unit)
735728 else throw("Strict value is not equal to itself.")
736729 }
737730
738731
739732
740733 @Callable(bB)
741-func getKeysBulkInternal (bO,dQ,bU) = if ((bO == size(dQ)))
742- then $Tuple2(nil, bU)
734+func getKeysBulkInternal (bN,dX,bT) = if ((bN == size(dX)))
735+ then $Tuple2(nil, bT)
743736 else {
744- let dR = split(dQ[bO], "++")
745- let bv = addressFromStringValue(dR[0])
746- let s = dR[1]
747- let bw = dR[2]
737+ let cp = split(dX[bN], "++")
738+ let bv = addressFromStringValue(cp[0])
739+ let s = cp[1]
740+ let bw = cp[2]
748741 let y = bu(bv, s, bw)
749- let ca = (bU :+ y)
750- let cb = invoke(this, "getKeysBulkInternal", [(bO + 1), dQ, ca], nil)
751- if ((cb == cb))
752- then $Tuple2(nil, cb)
742+ let bZ = (bT :+ y)
743+ let ca = invoke(this, "getKeysBulkInternal", [(bN + 1), dX, bZ], nil)
744+ if ((ca == ca))
745+ then $Tuple2(nil, ca)
753746 else throw("Strict value is not equal to itself.")
754747 }
755748
756749
757750
758751 @Callable(bB)
759-func getKeysBulk (dQ) = {
760- let ca = invoke(this, "getKeysBulkInternal", [0, dQ, nil], nil)
761- $Tuple2(nil, ca)
752+func getKeysBulk (dX) = {
753+ let bZ = invoke(this, "getKeysBulkInternal", [0, dX, nil], nil)
754+ $Tuple2(nil, bZ)
762755 }
763756
764757
765758
766759 @Callable(bB)
767-func setManager (dS) = {
760+func setManager (dY) = {
768761 let bF = bA(bB)
769762 if ((bF == bF))
770763 then {
771- let dT = fromBase58String(dS)
772- if ((dT == dT))
773- then [StringEntry(H(), dS)]
764+ let dZ = fromBase58String(dY)
765+ if ((dZ == dZ))
766+ then [StringEntry(H(), dY)]
774767 else throw("Strict value is not equal to itself.")
775768 }
776769 else throw("Strict value is not equal to itself.")
777770 }
778771
779772
780773
781774 @Callable(bB)
782775 func confirmManager () = {
783- let dU = bz()
784- let dV = if (isDefined(dU))
776+ let ea = bz()
777+ let eb = if (isDefined(ea))
785778 then true
786779 else throw("No pending manager")
787- if ((dV == dV))
780+ if ((eb == eb))
788781 then {
789- let dW = if ((bB.callerPublicKey == value(dU)))
782+ let ec = if ((bB.callerPublicKey == value(ea)))
790783 then true
791784 else throw("You are not pending manager")
792- if ((dW == dW))
793- then [StringEntry(G(), toBase58String(value(dU))), DeleteEntry(H())]
785+ if ((ec == ec))
786+ then [StringEntry(G(), toBase58String(value(ea))), DeleteEntry(H())]
794787 else throw("Strict value is not equal to itself.")
795788 }
796789 else throw("Strict value is not equal to itself.")
797790 }
798791
799792
800-@Verifier(dX)
801-func dY () = {
802- let dZ = {
793+@Verifier(ed)
794+func ee () = {
795+ let ef = {
803796 let z = bx()
804797 if ($isInstanceOf(z, "ByteVector"))
805798 then {
806799 let bD = z
807800 bD
808801 }
809802 else if ($isInstanceOf(z, "Unit"))
810- then dX.senderPublicKey
803+ then ed.senderPublicKey
811804 else throw("Match error")
812805 }
813- sigVerify(dX.bodyBytes, dX.proofs[0], dZ)
806+ sigVerify(ed.bodyBytes, ed.proofs[0], ef)
814807 }
815808

github/deemru/w8io/873ac7e 
181.87 ms