tx · BPuXPPbwKY25ygtVHUECy3c3MpvVYZsAy2BcUvzL5eyy

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02300000 Waves

2022.11.04 14:20 [2302302] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "BPuXPPbwKY25ygtVHUECy3c3MpvVYZsAy2BcUvzL5eyy", "fee": 2300000, "feeAssetId": null, "timestamp": 1667560823693, "version": 1, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "5jzXfhodQGK71cpRKjor8G8BA8bxoTSjNV7suGsdscFLwKF3N4c8KVrYhWFqX4wgQkVEixkT9gkuAUvr6XNAFDsd" ], "script": "base64:BgKOIggCEgMKAQgSAwoBCBIECgIICBIJCgcBERERGAgYEgcKBRERERgIEgcKBQEBAQgIEgASAwoBCBIECgIIARIECgIIARIECgIIARIDCgEIEgYKBAgBCAESBQoDARgYEgMKARgSAwoBCBIAIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiA1NFUCIOUE9PTFdFSUdIVE1VTFQiCnplcm9CaWdJbnQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIHYWRkcmVzcyIMZ2V0SW50T3JaZXJvIgxnZXRJbnRPckZhaWwiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIhFrZXlGYWN0b3J5QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCINa2V5RmFjdG9yeUNmZyIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwiCnJlYWRMcExpc3QiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiBGZDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiC2tleUJvb3N0Q2ZnIh9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50IihrZXlCb29zdGluZ1N0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudCIaa2V5Qm9vc3RpbmdTdGF0c1VzZXJzQ291bnQiEmtleVVzZXIyTnVtTWFwcGluZyILdXNlckFkZHJlc3MiEmtleU51bTJVc2VyTWFwcGluZyIDbnVtIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50Igd1c2VyTnVtIhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiF2tleVVzZXJNYXhCb29zdElOVEVHUkFMIhhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwiIWtleVVzZXJCb29zdEF2YWxhaWJsZVRvQ2xhaW1Ub3RhbCITa2V5VXNlckJvb3N0Q2xhaW1lZCIRa2V5VG90YWxDYWNoZWRHd3giD2tleVN0YWtlZEJ5VXNlciIOdXNlckFkZHJlc3NTdHIiDGxwQXNzZXRJZFN0ciIOa2V5U3Rha2VkVG90YWwiEGtleUNsYWltZWRCeVVzZXIiGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQiG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZCIKcmVhZFN0YWtlZCILc3Rha2luZ0RhcHAiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIMa2V5QWRkb25BZGRyIgpnZXRQb29sRmVlIgtwb29sQWRkcmVzcyIKZmVlRGVmYXVsdCIGa2V5RmVlIgtmYWN0b3J5RGFwcCIKZmFjdG9yeUNmZyIMZW1pc3Npb25EYXBwIg1nd3hSZXdhcmREYXBwIgxib29zdGluZ0RhcHAiGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUiCWxwQXNzZXRJZCIOcG9vbEFkZHJlc3NTdHIiDnBvb2xXZWlnaHRNdWx0Igpwb29sV2VpZ2h0IhJ3eEVtaXNzaW9uUGVyQmxvY2siFXd4RW1pc3Npb25QZXJCbG9ja01heCINYm9vc3RNYXhDb2VmZiIWcG9vbFd4RW1pc3Npb25QZXJCbG9jayIZcG9vbFd4RW1pc3Npb25QZXJCbG9ja01heCIJbWF4RmFjdG9yIg10b3RhbExwU3Rha2VkIhpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWSIKbG9ja0Ftb3VudCIMbG9ja0R1cmF0aW9uIg9tYXhMb2NrRHVyYXRpb24iB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IgZnZXRLZXkiBGFkZHIiBHR5cGUiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciIBaSICcGQiAnBrIg5mYWN0b3J5QWRkcmVzcyILY2hlY2tDYWxsZXIiCnJld2FyZERhdGEiDmxwU3Rha2VkQnlVc2VyIg11c2VyQ2xhaW1JbmZvIg1taW5SZXdhcmRQYXJ0Ig9ib29zdFJld2FyZFBhcnQiBWRlYnVnIg1ib29zdGluZ1Bvd2VyIgtjdXJyZW50SXRlciIRZGVsdGFXeEFtb3VudEJ1bGsiG2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzQnVsayIRZGVsdGFMcEFtb3VudEJ1bGsiEGxwQXNzZXRJZE9wdEJ1bGsiDnVzZXJBZGRyZXNzT3B0IgZyZXNBY2MiDWRlbHRhV3hBbW91bnQiF2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzIg1kZWx0YUxwQW1vdW50IgxscEFzc2V0SWRPcHQiBGluZm8iAUAiA3JlcyIDaW52IghtYXRoRGFwcCIIRU1QVFlTVFIiF21heExvY2tEdXJhdGlvbkluQmxvY2tzIgp1c2VyTnVtU3RyIgp1c2VyQW1vdW50Iglsb2NrU3RhcnQiB2xvY2tFbmQiEXJlbWFpbmluZ0R1cmF0aW9uIg11c2VyQW1vdW50TmV3Ig9sb2NrRHVyYXRpb25OZXciEXVzZXJDdXJyZ1d4QW1vdW50IhFnV3hBbW91bnRTdGFydE5ldyITZ1d4UGFyYW1zUmVzdWx0TGlzdCINZ1d4QW1vdW50RGlmZiIBayIBYiIYdG90YWxNYXhCb29zdEludGVncmFsS0VZIhF0b3RhbENhY2hlZEd3eEtFWSISdXNlck1heEJvb3N0SW50TmV3IhB0b3RhbE1heEJvb3N0SW50Ig50b3RhbENhY2hlZEd3eCIFTVVMVDMiFHd4RW1pc3Npb25QZXJCbG9ja1gzIg9zdGFrZWRCeVVzZXJLRVkiDnN0YWtlZFRvdGFsS0VZIgxzdGFrZWRCeVVzZXIiC3N0YWtlZFRvdGFsIg9zdGFrZWRCeVVzZXJOZXciDnN0YWtlZFRvdGFsTmV3Ihhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMiCXd4UGVyTHBYMyIQdXNlcld4UGVyQmxvY2tYMyIXYm9vc3RFbWlzc2lvblBlckJsb2NrWDMiFnRtcFVzZXJCb29zdFBlckJsb2NrWDMiE3VzZXJCb29zdFBlckJsb2NrWDMiCmJvb3N0Q29lZmYiB09ORU1VTFQiA09ORSISZW1pc3Npb25TdGFydEJsb2NrIgxwYXNzZWRCbG9ja3MiDnRlYW1FbUR1cmF0aW9uIgl0ZWFtRW1NYXgiBnRlYW1FbSIPdG90YWxXeFJlbGVhc2VkIg10b3RhbFd4TG9ja2VkIhhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiCmxvY2tzQ291bnQiB2xwQXNzZXQiA2NmZyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiCGN1clByaWNlIg9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgNmZWUiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIdcG9vbE9uZVRva2VuT3BlcmF0aW9uc0VuYWJsZWQiDGluQW1Bc3NldEFtdCIMYW1Bc3NldElkU3RyIglhbUFzc2V0SWQiDHByQXNzZXRJZFN0ciIJcHJBc3NldElkIgpwb29sU3RhdHVzIg5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCILY3VyUHJpY2VYMTgiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4IgxpblByQXNzZXRBbXQiDSR0MDIyNzAwMjMwNTMiCWNhbGNMcEFtdCIMY3VyUHJpY2VDYWxjIglhbUJhbGFuY2UiCXByQmFsYW5jZSIKbHBFbWlzc2lvbiIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4Ig0kdDAyNTYyNjI1OTc5IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiDSR0MDI2Njc0MjcwOTEiCG91dEFtQW10IghvdXRQckFtdCIPZ3d4VXNlckluZm9MSVNUIglnd3hBbW91bnQiDXVuc3Rha2VBbW91bnQiCm91dEFzc2V0SWQiDG1pbk91dEFtb3VudCIEa2V5cyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlcAAFhAAgAAWIAgMLXLwABYwASAAFkCQC2AgEAgICQu7rWrfANAAFlAgJfXwABZgUBYgABZwkAtgIBAAAAAWgAAQABaQACAAFqAAMAAWsABAABbAAFAAFtAAYAAW4ABwABbwAIAAFwAAkAAXEACgEBcgEBcwkBE3ZhbHVlT3JFcnJv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JXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFRAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhUgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYVMAAg0lc19fYWRkb25BZGRyAQJhVAECYVUEAmFWCQBrAwAyBQFiAJBOBAJhVwIHJXNfX2ZlZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhVQUCYVcFAmFWAAJhWAkBAVgAAAJhWQkBAVoBBQJhWAACYVoJAQJhZAEFAmFZAAJhTQkBAmFlAQUCYVkAAmJhCQECYWYBBQJhWQACYmIJAQJhYgEFAmFZAQJiYwECYmQEAmJlCQEBdAIFAmFYCQEBVQEFAmJkBAJiZgUBYgQCYmcJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFYCQEBVgEFAmJlBAJiaAkBAXcCBQJhWgkBAmFOAAQCYmkJAQF3AgUCYVoJAQJhTwAEAmJqAAMEAmJrCQBpAgkAawMFAmJoBQJiZwUCYmYFAmJqBAJibAkAawMFAmJpBQJiZwUCYmYEAmJtCQBoAgUCYmoFAWIEAmJuCQEBdgIFAmFNCQECYUgBBQJiZAkAzAgCBQJiawkAzAgCBQJibQkAzAgCBQJibgUDbmlsAQJibwMCYnACYnECYnIEAmJzCQBrAwUCYnEFAWIFAmJyBAJidAkAawMFAmJwBQJicwUBYgkAzAgCBQJidAUDbmlsAQJidQMCYnYBcwJidwMJAAACBQJidwIGc3RyaW5nCQERQGV4dHJOYXRpdmUoMTA1MykCBQJidgUBcwMJAAACBQJidwIHaW50ZWdlcgkApAMBCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJidgUBcwMJAAACBQJidwIHYm9vbGVhbgkApQMBCQERQGV4dHJOYXRpdmUoMTA1MSkCBQJidgUBcwkAAgECLXVua25vd24gdHlwZS4gZXhwZWN0ZWQgc3RyaW5nL2ludGVnZXIvYm9vbGVhbgECYngABAF6CQCiCAEJAQFHAAMJAAECBQF6AgZTdHJpbmcEAmJ5BQF6CQDZBAEFAmJ5AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYnoABAF6CQCiCAEJAQFIAAMJAAECBQF6AgZTdHJpbmcEAmJ5BQF6CQDZBAEFAmJ5AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYkEBAmJCBAJiQwkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAF6CQECYngAAwkAAQIFAXoCCkJ5dGVWZWN0b3IEAmJEBQF6AwkAAAIIBQJiQg9jYWxsZXJQdWJsaWNLZXkFAmJEBgUCYkMDCQABAgUBegIEVW5pdAMJAAACCAUCYkIGY2FsbGVyBQR0aGlzBgUCYkMJAAIBAgtNYXRjaCBlcnJvchECYkIBC2NvbnN0cnVjdG9yAQJiRQQCYkYJAQJiQQEFAmJCAwkAAAIFAmJGBQJiRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBRgAFAmJFBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkIBGWN1cnJlbnRSZXdhcmRSYXRlUkVBRE9OTFkBAmJkBAJiRwkBAmJjAQUCYmQEAmJoCQCRAwIFAmJHAAAEAmJtCQCRAwIFAmJHAAEEAmJuCQCRAwIFAmJHAAIJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuBQNuaWwFAWUCYkIBHWN1cnJlbnRVc2VyUmV3YXJkUmF0ZVJFQURPTkxZAgJiZAJhbQQCYkcJAQJiYwEFAmJkBAJiaAkAkQMCBQJiRwAABAJibQkAkQMCBQJiRwABBAJibgkAkQMCBQJiRwACBAJiSAkBAXYCBQJhTQkBAmFFAgUCYW0FAmJkBAJiSQkAtQkCCQEBRAEJAPwHBAUCYU0CD2NsYWltV3hSRUFET05MWQkAzAgCBQJiZAkAzAgCBQJhbQUDbmlsBQNuaWwFAWUEAmJKCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJiSQAFAhxjb3VsZG4ndCBwYXJzZSBtaW5SZXdhcmRQYXJ0BAJiSwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYkkABgIeY291bGRuJ3QgcGFyc2UgYm9vc3RSZXdhcmRQYXJ0BAJiTAkAkQMCBQJiSQAHBAJiTQMJAAACBQJiSwAACQBoAgABBQFiCQBrAwkAZAIFAmJKBQJiSwUBYgUCYkoJAJQKAgUDbmlsCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVzCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiTQkAzAgCBQJiTAUDbmlsBQFlAmJCAR1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQcCYk4CYk8CYlACYlECYlICYlMCYlQDCQAAAgUCYk4JAJADAQUCYk8JAJQKAgUDbmlsBQJiVAQCYlUJAJEDAgUCYk8FAmJOBAJiVgkAkQMCBQJiUAUCYk4EAmJXCQCRAwIFAmJRBQJiTgQCYlgJAJEDAgUCYlIFAmJOBAJiWQoAAmJaCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFAmJVCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJTBQNuaWwFA25pbAMJAAECBQJiWgIGU3RyaW5nBQJiWgkAAgEJAKwCAgkAAwEFAmJaAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmNhCQDNCAIFAmJUBQJiWQQCY2IKAAJiWgkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCCQBkAgUCYk4AAQkAzAgCBQJiTwkAzAgCBQJiUAkAzAgCBQJiUQkAzAgCBQJiUgkAzAgCBQJiUwkAzAgCBQJjYQUDbmlsBQNuaWwDCQABAgUCYloCCUxpc3RbQW55XQUCYloJAAIBCQCsAgIJAAMBBQJiWgIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAwkAAAIFAmNiBQJjYgkAlAoCBQNuaWwFAmNiCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFAmJVAmJWAmJXAmJYAmJTBAJjYQkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCYlUJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlMJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNhAmJCARFjYWxjQm9vc3RSRUFET05MWQUCYlUCYlYCYlcCYlgCYlMEAmNjBQJiYQQCY2QCBWVtcHR5BAJjZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBAXQCBQJiYgkBAmFnAAUBZQAEBAJhRwMJAAACBQJiWAIABQJjZAUCYlgEAmFGAwkAAAIFAmJTAgAFAmNkBQJiUwQCY2YJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYmIJAQJhbAEFAmJTBQJjZAQCY2cJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYmIJAQJhcAEFAmNmAAAEAmNoCQELdmFsdWVPckVsc2UCCQCaCAIFAmJiCQECYXIBBQJjZgUGaGVpZ2h0BAJicQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiYgkBAmFzAQUCY2YAAAQCY2kJAGQCBQJjaAUCYnEEAmNqCQCWAwEJAMwIAgkAZQIFAmNpBQZoZWlnaHQJAMwIAgAABQNuaWwEAmNrCQBkAgUCY2cFAmJVBAJjbAkAlwMBCQDMCAIJAGQCBQJjagUCYlYJAMwIAgUCY2UFA25pbAQCY20JAQFCAQkAkQMCCQEBeAEJAPwHBAUCYmICE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgUCYUYFA25pbAUDbmlsAAAEAmNuCQCRAwIJAQJibwMFAmNrBQJjbAUCY2UAAAQCY28JAQF4AQkA/AcEBQJjYwIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmNuCQDMCAIFBmhlaWdodAkAzAgCBQJjbAUDbmlsBQNuaWwEAmNwCQBlAgUCY24FAmNtBAJjcQkBAUIBCQCRAwIFAmNvAAAEAmNyCQEBQgEJAJEDAgUCY28AAQQCYXcJAKQDAQkBAUIBCQCRAwIFAmNvAAIEAmNzCQECYUEABAJjdAkBAmFEAAQCY3UJAGkCCQBoAgUCY24FAmNsAAIEAmN2CQEBdgIFAmJiBQJjcwQCY3cJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYmIFAmN0AAAEAmN4AOgHBAJjeQkAaAIJAQF3AgUCYVoJAQJhTgAFAmN4BAJjegkBAmFFAgUCYUYFAmFHBAJjQQkBAmFIAQUCYUcEAmNCCQECYUwCBQJhTQUCY3oEAmNDCQECYUwCBQJhTQUCY0EEAmNECQBkAgUCY0IFAmJXBAJjRQkAZAIFAmNDBQJiVwQCYmcDCQECIT0CBQJhRwUCY2QEAmJlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVgJAQFSAQUCYUcJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhRwkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVgJAQFWAQUCYmUAAAQCY0YJAGsDBQJjeQUCYmcJAGgCBQFmAAMEAmNHAwkBAiE9AgUCY0UAAAkAawMFAmNGBQFiBQJjRQAABAJjSAkAawMFAmNHBQJjRAUBYgQCY0kJAGgCBQJjRgACBAJjSgkAawMFAmNuBQJjSQkAZAIFAmN3BQJjcAQCY0sJAJcDAQkAzAgCBQJjSgkAzAgCCQBoAgUCY0gAAgUDbmlsBAJjTAMJAAACBQJjSAAACQBoAgABBQFiCQBrAwkAZAIFAmNLBQJjSAUBYgUCY0gJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjTAkAzAgCAgFkBQNuaWwFAWUCYkIBF3d4RW1pc3Npb25TdGF0c1JFQURPTkxZAAQCY00JAKQDAQUBYgQCY04CATEEAmJoCQEBdwIFAmFaCQECYU4ABAJjTwkBAXcCBQJhWgkBAmFQAAQCY1ADCQBmAgUCY08FBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJjTwQCY1EJAGgCAKALAO0CBAJjUgkAaAIAwIjsXwUBYgQCY1MDCQBmAgUCY1AFAmNRBQJjUgkAawMFAmNSBQJjUAUCY1EEAmNUCQBkAgkAaAIFAmJoBQJjUAUCY1MEAmNVCQEBdgIFAmJiCQECYWgABAJjVgkBAXYCBQJiYgkBAmFpAAQCY1cJAQF2AgUCYmIJAQJhagAJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQJjVAkAzAgCCQCkAwEFAmNVCQDMCAIJAKQDAQUCY1YJAMwIAgkApAMBBQJjVwUDbmlsBQFlAmJCARFwb29sU3RhdHNSRUFET05MWQECY1gEAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBdAIFAmFYCQEBVQEFAmNYBAJjWQkBAXgBCQD8BwQFAmFV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YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiQgETZ2V0S2V5c0J1bGtJbnRlcm5hbAMCYk4CZFcCYlQDCQAAAgUCYk4JAJADAQUCZFcJAJQKAgUDbmlsBQJiVAQCY3EJALUJAgkAkQMCBQJkVwUCYk4CAisrBAJidgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJjcQAABAFzCQCRAwIFAmNxAAEEAmJ3CQCRAwIFAmNxAAIEAXkJAQJidQMFAmJ2BQFzBQJidwQCY2EJAM0IAgUCYlQFAXkEAmNiCQD8BwQFBHRoaXMCE2dldEtleXNCdWxrSW50ZXJuYWwJAMwIAgkAZAIFAmJOAAEJAMwIAgUCZFcJAMwIAgUCY2EFA25pbAUDbmlsAwkAAAIFAmNiBQJjYgkAlAoCBQNuaWwFAmNiCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJCAQtnZXRLZXlzQnVsawECZFcEAmNhCQD8BwQFBHRoaXMCE2dldEtleXNCdWxrSW50ZXJuYWwJAMwIAgAACQDMCAIFAmRXCQDMCAIFA25pbAUDbmlsBQNuaWwJAJQKAgUDbmlsBQJjYQJiQgEKc2V0TWFuYWdlcgECZFgEAmJGCQECYkEBBQJiQgMJAAACBQJiRgUCYkYEAmRZCQDZBAEFAmRYAwkAAAIFAmRZBQJkWQkAzAgCCQELU3RyaW5nRW50cnkCCQEBSAAFAmRYBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkIBDmNvbmZpcm1NYW5hZ2VyAAQCZFoJAQJiegAEAmVhAwkBCWlzRGVmaW5lZAEFAmRaBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJlYQUCZWEEAmViAwkAAAIIBQJiQg9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmRaBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJlYgUCZWIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUcACQDYBAEJAQV2YWx1ZQEFAmRaCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFIAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlYwECZWQABAJlZQQBegkBAmJ4AAMJAAECBQF6AgpCeXRlVmVjdG9yBAJiRAUBegUCYkQDCQABAgUBegIEVW5pdAgFAmVjD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJlYwlib2R5Qnl0ZXMJAJEDAggFAmVjBnByb29mcwAABQJlZX74iNY=", "chainId": 84, "height": 2302302, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: byMgEgVgA9fYon6j6k1Ng6jpKzxHiZaWwApyQj4pgFv Next: DQqwwZr61yWN1U9y8noZSczCh5jN5hfH84asf14E5JEv Diff:
OldNewDifferences
238238
239239
240240 func aT (aU) = {
241- let aV = fraction(5, b, 10000)
241+ let aV = fraction(50, b, 10000)
242242 let aW = "%s__fee"
243243 valueOrElse(getInteger(aU, aW), aV)
244244 }
696696
697697
698698 @Callable(bB)
699-func getKeysBulkInternal (bN,dT,bT) = if ((bN == size(dT)))
699+func unstakeAndGetOneTknV2 (aU,dT,dU,dV) = {
700+ let cb = invoke(addressFromStringValue(aU), "unstakeAndGetOneTknV2", [dT, dU, dV], nil)
701+ if ((cb == cb))
702+ then $Tuple2(nil, unit)
703+ else throw("Strict value is not equal to itself.")
704+ }
705+
706+
707+
708+@Callable(bB)
709+func getKeysBulkInternal (bN,dW,bT) = if ((bN == size(dW)))
700710 then $Tuple2(nil, bT)
701711 else {
702- let cq = split(dT[bN], "++")
712+ let cq = split(dW[bN], "++")
703713 let bv = addressFromStringValue(cq[0])
704714 let s = cq[1]
705715 let bw = cq[2]
706716 let y = bu(bv, s, bw)
707717 let ca = (bT :+ y)
708- let cb = invoke(this, "getKeysBulkInternal", [(bN + 1), dT, ca], nil)
718+ let cb = invoke(this, "getKeysBulkInternal", [(bN + 1), dW, ca], nil)
709719 if ((cb == cb))
710720 then $Tuple2(nil, cb)
711721 else throw("Strict value is not equal to itself.")
714724
715725
716726 @Callable(bB)
717-func getKeysBulk (dT) = {
718- let ca = invoke(this, "getKeysBulkInternal", [0, dT, nil], nil)
727+func getKeysBulk (dW) = {
728+ let ca = invoke(this, "getKeysBulkInternal", [0, dW, nil], nil)
719729 $Tuple2(nil, ca)
720730 }
721731
722732
723733
724734 @Callable(bB)
725-func setManager (dU) = {
735+func setManager (dX) = {
726736 let bF = bA(bB)
727737 if ((bF == bF))
728738 then {
729- let dV = fromBase58String(dU)
730- if ((dV == dV))
731- then [StringEntry(H(), dU)]
739+ let dY = fromBase58String(dX)
740+ if ((dY == dY))
741+ then [StringEntry(H(), dX)]
732742 else throw("Strict value is not equal to itself.")
733743 }
734744 else throw("Strict value is not equal to itself.")
738748
739749 @Callable(bB)
740750 func confirmManager () = {
741- let dW = bz()
742- let dX = if (isDefined(dW))
751+ let dZ = bz()
752+ let ea = if (isDefined(dZ))
743753 then true
744754 else throw("No pending manager")
745- if ((dX == dX))
755+ if ((ea == ea))
746756 then {
747- let dY = if ((bB.callerPublicKey == value(dW)))
757+ let eb = if ((bB.callerPublicKey == value(dZ)))
748758 then true
749759 else throw("You are not pending manager")
750- if ((dY == dY))
751- then [StringEntry(G(), toBase58String(value(dW))), DeleteEntry(H())]
760+ if ((eb == eb))
761+ then [StringEntry(G(), toBase58String(value(dZ))), DeleteEntry(H())]
752762 else throw("Strict value is not equal to itself.")
753763 }
754764 else throw("Strict value is not equal to itself.")
755765 }
756766
757767
758-@Verifier(dZ)
759-func ea () = {
760- let eb = {
768+@Verifier(ec)
769+func ed () = {
770+ let ee = {
761771 let z = bx()
762772 if ($isInstanceOf(z, "ByteVector"))
763773 then {
765775 bD
766776 }
767777 else if ($isInstanceOf(z, "Unit"))
768- then dZ.senderPublicKey
778+ then ec.senderPublicKey
769779 else throw("Match error")
770780 }
771- sigVerify(dZ.bodyBytes, dZ.proofs[0], eb)
781+ sigVerify(ec.bodyBytes, ec.proofs[0], ee)
772782 }
773783
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 func aT (aU) = {
241- let aV = fraction(5, b, 10000)
241+ let aV = fraction(50, b, 10000)
242242 let aW = "%s__fee"
243243 valueOrElse(getInteger(aU, aW), aV)
244244 }
245245
246246
247247 let aX = X()
248248
249249 let aY = Z(aX)
250250
251251 let aZ = ad(aY)
252252
253253 let aM = ae(aY)
254254
255255 let ba = af(aY)
256256
257257 let bb = ab(aY)
258258
259259 func bc (bd) = {
260260 let be = t(aX, U(bd))
261261 let bf = b
262262 let bg = getIntegerValue(aX, V(be))
263263 let bh = w(aZ, aN())
264264 let bi = w(aZ, aO())
265265 let bj = 3
266266 let bk = (fraction(bh, bg, bf) / bj)
267267 let bl = fraction(bi, bg, bf)
268268 let bm = (bj * b)
269269 let bn = v(aM, aH(bd))
270270 [bk, bm, bn]
271271 }
272272
273273
274274 func bo (bp,bq,br) = {
275275 let bs = fraction(bq, b, br)
276276 let bt = fraction(bp, bs, b)
277277 [bt]
278278 }
279279
280280
281281 func bu (bv,s,bw) = if ((bw == "string"))
282282 then getStringValue(bv, s)
283283 else if ((bw == "integer"))
284284 then toString(getIntegerValue(bv, s))
285285 else if ((bw == "boolean"))
286286 then toString(getBooleanValue(bv, s))
287287 else throw("unknown type. expected string/integer/boolean")
288288
289289
290290 func bx () = {
291291 let z = getString(G())
292292 if ($isInstanceOf(z, "String"))
293293 then {
294294 let by = z
295295 fromBase58String(by)
296296 }
297297 else if ($isInstanceOf(z, "Unit"))
298298 then unit
299299 else throw("Match error")
300300 }
301301
302302
303303 func bz () = {
304304 let z = getString(H())
305305 if ($isInstanceOf(z, "String"))
306306 then {
307307 let by = z
308308 fromBase58String(by)
309309 }
310310 else if ($isInstanceOf(z, "Unit"))
311311 then unit
312312 else throw("Match error")
313313 }
314314
315315
316316 func bA (bB) = {
317317 let bC = throw("Permission denied")
318318 let z = bx()
319319 if ($isInstanceOf(z, "ByteVector"))
320320 then {
321321 let bD = z
322322 if ((bB.callerPublicKey == bD))
323323 then true
324324 else bC
325325 }
326326 else if ($isInstanceOf(z, "Unit"))
327327 then if ((bB.caller == this))
328328 then true
329329 else bC
330330 else throw("Match error")
331331 }
332332
333333
334334 @Callable(bB)
335335 func constructor (bE) = {
336336 let bF = bA(bB)
337337 if ((bF == bF))
338338 then [StringEntry(F(), bE)]
339339 else throw("Strict value is not equal to itself.")
340340 }
341341
342342
343343
344344 @Callable(bB)
345345 func currentRewardRateREADONLY (bd) = {
346346 let bG = bc(bd)
347347 let bh = bG[0]
348348 let bm = bG[1]
349349 let bn = bG[2]
350350 $Tuple2(nil, makeString(["%d%d%d", toString(bh), toString(bm), toString(bn)], e))
351351 }
352352
353353
354354
355355 @Callable(bB)
356356 func currentUserRewardRateREADONLY (bd,am) = {
357357 let bG = bc(bd)
358358 let bh = bG[0]
359359 let bm = bG[1]
360360 let bn = bG[2]
361361 let bH = v(aM, aE(am, bd))
362362 let bI = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
363363 let bJ = valueOrErrorMessage(parseInt(bI[5]), "couldn't parse minRewardPart")
364364 let bK = valueOrErrorMessage(parseInt(bI[6]), "couldn't parse boostRewardPart")
365365 let bL = bI[7]
366366 let bM = if ((bK == 0))
367367 then (1 * b)
368368 else fraction((bJ + bK), b, bJ)
369369 $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bH), toString(bM), bL], e))
370370 }
371371
372372
373373
374374 @Callable(bB)
375375 func calcBoostBulkInternalREADONLY (bN,bO,bP,bQ,bR,bS,bT) = if ((bN == size(bO)))
376376 then $Tuple2(nil, bT)
377377 else {
378378 let bU = bO[bN]
379379 let bV = bP[bN]
380380 let bW = bQ[bN]
381381 let bX = bR[bN]
382382 let bY = {
383383 let bZ = invoke(this, "calcBoostREADONLY", [bU, bV, bW, bX, bS], nil)
384384 if ($isInstanceOf(bZ, "String"))
385385 then bZ
386386 else throw(($getType(bZ) + " couldn't be cast to String"))
387387 }
388388 let ca = (bT :+ bY)
389389 let cb = {
390390 let bZ = invoke(this, "calcBoostBulkInternalREADONLY", [(bN + 1), bO, bP, bQ, bR, bS, ca], nil)
391391 if ($isInstanceOf(bZ, "List[Any]"))
392392 then bZ
393393 else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
394394 }
395395 if ((cb == cb))
396396 then $Tuple2(nil, cb)
397397 else throw("Strict value is not equal to itself.")
398398 }
399399
400400
401401
402402 @Callable(bB)
403403 func calcBoostBulkREADONLY (bU,bV,bW,bX,bS) = {
404404 let ca = invoke(this, "calcBoostBulkInternalREADONLY", [0, bU, bV, bW, bX, bS, nil], nil)
405405 $Tuple2(nil, ca)
406406 }
407407
408408
409409
410410 @Callable(bB)
411411 func calcBoostREADONLY (bU,bV,bW,bX,bS) = {
412412 let cc = ba
413413 let cd = "empty"
414414 let ce = parseIntValue(split(t(bb, ag()), e)[4])
415415 let aG = if ((bX == ""))
416416 then cd
417417 else bX
418418 let aF = if ((bS == ""))
419419 then cd
420420 else bS
421421 let cf = valueOrElse(getString(bb, al(bS)), cd)
422422 let cg = valueOrElse(getInteger(bb, ap(cf)), 0)
423423 let ch = valueOrElse(getInteger(bb, ar(cf)), height)
424424 let bq = valueOrElse(getInteger(bb, as(cf)), 0)
425425 let ci = (ch + bq)
426426 let cj = max([(ci - height), 0])
427427 let ck = (cg + bU)
428428 let cl = min([(cj + bV), ce])
429429 let cm = B(x(invoke(bb, "gwxUserInfoREADONLY", [aF], nil))[0])
430430 let cn = bo(ck, cl, ce)[0]
431431 let co = x(invoke(cc, "calcGwxParamsREADONLY", [cn, height, cl], nil))
432432 let cp = (cn - cm)
433433 let cq = B(co[0])
434434 let cr = B(co[1])
435435 let aw = toString(B(co[2]))
436436 let cs = aA()
437437 let ct = aD()
438438 let cu = ((cn * cl) / 2)
439439 let cv = v(bb, cs)
440440 let cw = valueOrElse(getInteger(bb, ct), 0)
441441 let cx = 1000
442442 let cy = (w(aZ, aN()) * cx)
443443 let cz = aE(aF, aG)
444444 let cA = aH(aG)
445445 let cB = aL(aM, cz)
446446 let cC = aL(aM, cA)
447447 let cD = (cB + bW)
448448 let cE = (cC + bW)
449449 let bg = if ((aG != cd))
450450 then {
451451 let be = valueOrErrorMessage(getString(aX, R(aG)), ("unsupported lp asset " + aG))
452452 getIntegerValue(aX, V(be))
453453 }
454454 else 0
455455 let cF = fraction(cy, bg, (f * 3))
456456 let cG = if ((cE != 0))
457457 then fraction(cF, b, cE)
458458 else 0
459459 let cH = fraction(cG, cD, b)
460460 let cI = (cF * 2)
461461 let cJ = fraction(cn, cI, (cw + cp))
462462 let cK = min([cJ, (cH * 2)])
463463 let cL = if ((cH == 0))
464464 then (1 * b)
465465 else fraction((cK + cH), b, cH)
466466 $Tuple2(nil, makeString(["%d%d%s", toString(cn), toString(cL), "d"], e))
467467 }
468468
469469
470470
471471 @Callable(bB)
472472 func wxEmissionStatsREADONLY () = {
473473 let cM = toString(b)
474474 let cN = "1"
475475 let bh = w(aZ, aN())
476476 let cO = w(aZ, aP())
477477 let cP = if ((cO > height))
478478 then 0
479479 else (height - cO)
480480 let cQ = (1440 * 365)
481481 let cR = (201000000 * b)
482482 let cS = if ((cP > cQ))
483483 then cR
484484 else fraction(cR, cP, cQ)
485485 let cT = ((bh * cP) + cS)
486486 let cU = v(bb, ah())
487487 let cV = v(bb, ai())
488488 let cW = v(bb, aj())
489489 $Tuple2(nil, makeString(["%d%d%d%d", toString(cT), toString(cU), toString(cV), toString(cW)], e))
490490 }
491491
492492
493493
494494 @Callable(bB)
495495 func poolStatsREADONLY (cX) = {
496496 let aU = addressFromStringValue(t(aX, U(cX)))
497497 let cY = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
498498 let bd = fromBase58String(D(cY[j]))
499499 let cZ = D(cY[k])
500500 let da = D(cY[l])
501501 let db = D(cY[o])
502502 let dc = D(cY[p])
503503 let dd = parseIntValue(D(cY[m]))
504504 let de = parseIntValue(D(cY[n]))
505505 let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
506506 let dg = B(invoke(aU, "getAccBalanceWrapperREADONLY", [cZ], nil))
507507 let dh = B(invoke(aU, "getAccBalanceWrapperREADONLY", [da], nil))
508508 let di = if ((df == 0))
509509 then [toString(g), toString(g), toString(g)]
510510 else x(invoke(aU, "calcPricesWrapperREADONLY", [dg, dh, df], nil))
511511 let dj = 0
512512 let dk = B(invoke(aU, "fromX18WrapperREADONLY", [di[1], b], nil))
513513 let dl = B(invoke(aU, "fromX18WrapperREADONLY", [di[2], b], nil))
514514 let bg = getIntegerValue(aX, V(toString(aU)))
515515 let dm = aT(aU)
516516 let dn = {
517517 let bZ = invoke(aX, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aU)], nil)
518518 if ($isInstanceOf(bZ, "Boolean"))
519519 then bZ
520520 else throw(($getType(bZ) + " couldn't be cast to Boolean"))
521521 }
522522 let do = !(dn)
523523 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dg), toString(dh), toString(df), toString(dj), toString(dk), toString(dl), toString(bg), toString(dm), toString(do)], e))
524524 }
525525
526526
527527
528528 @Callable(bB)
529529 func poolEvaluatePutByAmountAssetREADONLY (cX,dp) = {
530530 let aU = addressFromStringValue(t(aX, U(cX)))
531531 let cY = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
532532 let bd = fromBase58String(D(cY[j]))
533533 let dq = D(cY[k])
534534 let dr = fromBase58String(dq)
535535 let ds = D(cY[l])
536536 let dt = fromBase58String(ds)
537537 let dd = parseIntValue(D(cY[m]))
538538 let de = parseIntValue(D(cY[n]))
539539 let du = D(cY[i])
540540 let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
541541 let dg = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dq], nil))
542542 let dh = B(invoke(aU, "getAccBalanceWrapperREADONLY", [ds], nil))
543543 let dv = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dg, dd], nil)))
544544 let dw = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dh, de], nil)))
545545 let dx = if ((df == 0))
546546 then g
547547 else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dw), toString(dv)], nil)))
548548 let dj = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dx), b], nil))
549549 let dy = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dp, dd], nil)))
550550 let dz = fraction(dy, dx, d)
551551 let dA = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dz), de], nil))
552552 let ca = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dp, dr, dA, dt, "", true, false], nil)
553553 let dB = {
554554 let z = ca
555555 if (if (if ($isInstanceOf(z._1, "Int"))
556556 then if ($isInstanceOf(z._3, "Int"))
557557 then if ($isInstanceOf(z._4, "Int"))
558558 then if ($isInstanceOf(z._5, "Int"))
559559 then $isInstanceOf(z._6, "Int")
560560 else false
561561 else false
562562 else false
563563 else false)
564564 then (size(z) == 13)
565565 else false)
566566 then {
567567 let dC = z._1
568568 let dD = z._3
569569 let dE = z._4
570570 let dF = z._5
571571 let dG = z._6
572572 $Tuple5(dC, dD, dE, dF, dG)
573573 }
574574 else throw("Couldn't cast types")
575575 }
576576 let dC = dB._1
577577 let dD = dB._2
578578 let dE = dB._3
579579 let dF = dB._4
580580 let dG = dB._5
581581 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dC), toString(dj), toString(dE), toString(dF), toString(dG), du, toString(dp), toString(dA)], e))
582582 }
583583
584584
585585
586586 @Callable(bB)
587587 func poolEvaluatePutByPriceAssetREADONLY (cX,dA) = {
588588 let aU = addressFromStringValue(t(aX, U(cX)))
589589 let cY = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
590590 let bd = fromBase58String(D(cY[j]))
591591 let dq = D(cY[k])
592592 let dr = fromBase58String(dq)
593593 let ds = D(cY[l])
594594 let dt = fromBase58String(ds)
595595 let dd = parseIntValue(D(cY[m]))
596596 let de = parseIntValue(D(cY[n]))
597597 let du = D(cY[i])
598598 let df = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
599599 let dH = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dq], nil))
600600 let dI = B(invoke(aU, "getAccBalanceWrapperREADONLY", [ds], nil))
601601 let dJ = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dH, dd], nil)))
602602 let dK = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dI, de], nil)))
603603 let dx = if ((df == 0))
604604 then g
605605 else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dK), toString(dJ)], nil)))
606606 let dj = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dx), b], nil))
607607 let dz = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dA, de], nil)))
608608 let dy = fraction(dz, d, dx)
609609 let dp = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dy), dd], nil))
610610 let ca = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dp, dr, dA, dt, "", true, false], nil)
611611 let dL = {
612612 let z = ca
613613 if (if (if ($isInstanceOf(z._1, "Int"))
614614 then if ($isInstanceOf(z._3, "Int"))
615615 then if ($isInstanceOf(z._4, "Int"))
616616 then if ($isInstanceOf(z._5, "Int"))
617617 then $isInstanceOf(z._6, "Int")
618618 else false
619619 else false
620620 else false
621621 else false)
622622 then (size(z) == 13)
623623 else false)
624624 then {
625625 let dC = z._1
626626 let dD = z._3
627627 let dE = z._4
628628 let dF = z._5
629629 let dG = z._6
630630 $Tuple5(dC, dD, dE, dF, dG)
631631 }
632632 else throw("Couldn't cast types")
633633 }
634634 let dC = dL._1
635635 let dD = dL._2
636636 let dE = dL._3
637637 let dF = dL._4
638638 let dG = dL._5
639639 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dC), toString(dj), toString(dE), toString(dF), toString(dG), du, toString(dp), toString(dA)], e))
640640 }
641641
642642
643643
644644 @Callable(bB)
645645 func poolEvaluateGetREADONLY (dM,dN) = {
646646 let aU = addressFromStringValue(t(aX, U(dM)))
647647 let ca = invoke(aU, "estimateGetOperationWrapperREADONLY", ["", dM, dN, toString(aU)], nil)
648648 let dO = {
649649 let z = ca
650650 if (if (if ($isInstanceOf(z._1, "Int"))
651651 then if ($isInstanceOf(z._2, "Int"))
652652 then if ($isInstanceOf(z._5, "Int"))
653653 then if ($isInstanceOf(z._6, "Int"))
654654 then if ($isInstanceOf(z._7, "Int"))
655655 then if ($isInstanceOf(z._8, "String"))
656656 then $isInstanceOf(z._9, "String")
657657 else false
658658 else false
659659 else false
660660 else false
661661 else false
662662 else false)
663663 then (size(z) == 10)
664664 else false)
665665 then {
666666 let dP = z._1
667667 let dQ = z._2
668668 let dE = z._5
669669 let dF = z._6
670670 let dG = z._7
671671 let dj = z._8
672672 let du = z._9
673673 $Tuple7(dP, dQ, dE, dF, dG, dj, du)
674674 }
675675 else throw("Couldn't cast types")
676676 }
677677 let dP = dO._1
678678 let dQ = dO._2
679679 let dE = dO._3
680680 let dF = dO._4
681681 let dG = dO._5
682682 let dj = dO._6
683683 let du = dO._7
684684 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dP), toString(dQ), toString(dE), toString(dF), toString(dG), dj, du], e))
685685 }
686686
687687
688688
689689 @Callable(bB)
690690 func gwxUserInfoREADONLY (am) = {
691691 let dR = x(invoke(bb, "gwxUserInfoREADONLY", [am], nil))
692692 let dS = B(dR[0])
693693 $Tuple2(nil, makeString(["%d", toString(dS)], e))
694694 }
695695
696696
697697
698698 @Callable(bB)
699-func getKeysBulkInternal (bN,dT,bT) = if ((bN == size(dT)))
699+func unstakeAndGetOneTknV2 (aU,dT,dU,dV) = {
700+ let cb = invoke(addressFromStringValue(aU), "unstakeAndGetOneTknV2", [dT, dU, dV], nil)
701+ if ((cb == cb))
702+ then $Tuple2(nil, unit)
703+ else throw("Strict value is not equal to itself.")
704+ }
705+
706+
707+
708+@Callable(bB)
709+func getKeysBulkInternal (bN,dW,bT) = if ((bN == size(dW)))
700710 then $Tuple2(nil, bT)
701711 else {
702- let cq = split(dT[bN], "++")
712+ let cq = split(dW[bN], "++")
703713 let bv = addressFromStringValue(cq[0])
704714 let s = cq[1]
705715 let bw = cq[2]
706716 let y = bu(bv, s, bw)
707717 let ca = (bT :+ y)
708- let cb = invoke(this, "getKeysBulkInternal", [(bN + 1), dT, ca], nil)
718+ let cb = invoke(this, "getKeysBulkInternal", [(bN + 1), dW, ca], nil)
709719 if ((cb == cb))
710720 then $Tuple2(nil, cb)
711721 else throw("Strict value is not equal to itself.")
712722 }
713723
714724
715725
716726 @Callable(bB)
717-func getKeysBulk (dT) = {
718- let ca = invoke(this, "getKeysBulkInternal", [0, dT, nil], nil)
727+func getKeysBulk (dW) = {
728+ let ca = invoke(this, "getKeysBulkInternal", [0, dW, nil], nil)
719729 $Tuple2(nil, ca)
720730 }
721731
722732
723733
724734 @Callable(bB)
725-func setManager (dU) = {
735+func setManager (dX) = {
726736 let bF = bA(bB)
727737 if ((bF == bF))
728738 then {
729- let dV = fromBase58String(dU)
730- if ((dV == dV))
731- then [StringEntry(H(), dU)]
739+ let dY = fromBase58String(dX)
740+ if ((dY == dY))
741+ then [StringEntry(H(), dX)]
732742 else throw("Strict value is not equal to itself.")
733743 }
734744 else throw("Strict value is not equal to itself.")
735745 }
736746
737747
738748
739749 @Callable(bB)
740750 func confirmManager () = {
741- let dW = bz()
742- let dX = if (isDefined(dW))
751+ let dZ = bz()
752+ let ea = if (isDefined(dZ))
743753 then true
744754 else throw("No pending manager")
745- if ((dX == dX))
755+ if ((ea == ea))
746756 then {
747- let dY = if ((bB.callerPublicKey == value(dW)))
757+ let eb = if ((bB.callerPublicKey == value(dZ)))
748758 then true
749759 else throw("You are not pending manager")
750- if ((dY == dY))
751- then [StringEntry(G(), toBase58String(value(dW))), DeleteEntry(H())]
760+ if ((eb == eb))
761+ then [StringEntry(G(), toBase58String(value(dZ))), DeleteEntry(H())]
752762 else throw("Strict value is not equal to itself.")
753763 }
754764 else throw("Strict value is not equal to itself.")
755765 }
756766
757767
758-@Verifier(dZ)
759-func ea () = {
760- let eb = {
768+@Verifier(ec)
769+func ed () = {
770+ let ee = {
761771 let z = bx()
762772 if ($isInstanceOf(z, "ByteVector"))
763773 then {
764774 let bD = z
765775 bD
766776 }
767777 else if ($isInstanceOf(z, "Unit"))
768- then dZ.senderPublicKey
778+ then ec.senderPublicKey
769779 else throw("Match error")
770780 }
771- sigVerify(dZ.bodyBytes, dZ.proofs[0], eb)
781+ sigVerify(ec.bodyBytes, ec.proofs[0], ee)
772782 }
773783

github/deemru/w8io/026f985 
103.97 ms