tx · EZNFSYbgohqpQ45C95hGygTi21AKPpukwGDFVVBYLwaU

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.02200000 Waves

2022.11.01 13:52 [2297955] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "EZNFSYbgohqpQ45C95hGygTi21AKPpukwGDFVVBYLwaU", "fee": 2200000, "feeAssetId": null, "timestamp": 1667299974151, "version": 1, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "41wvSowg57LBvVj3XXwYXnNXQCynuLmD856MgkC4NBcibgnJxgfATGK2g2TUMYDoKttm9By8CrG6wsk75pbxbY9N" ], "script": "base64:BgKpIQgCEgMKAQgSAwoBCBIECgIICBIJCgcBERERGAgYEgcKBRERERgIEgcKBQEBAQgIEgASAwoBCBIECgIIARIECgIIARIECgIIARIDCgEIEgYKBAgBCAESAwoBCBIAIgZTQ0FMRTgiBU1VTFQ4IgdTQ0FMRTE4IgZNVUxUMTgiA1NFUCIOUE9PTFdFSUdIVE1VTFQiCnplcm9CaWdJbnQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIHYWRkcmVzcyIMZ2V0SW50T3JaZXJvIgxnZXRJbnRPckZhaWwiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIhFrZXlGYWN0b3J5QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCINa2V5RmFjdG9yeUNmZyIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwiCnJlYWRMcExpc3QiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiBGZDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiC2tleUJvb3N0Q2ZnIh9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50IihrZXlCb29zdGluZ1N0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudCIaa2V5Qm9vc3RpbmdTdGF0c1VzZXJzQ291bnQiEmtleVVzZXIyTnVtTWFwcGluZyILdXNlckFkZHJlc3MiEmtleU51bTJVc2VyTWFwcGluZyIDbnVtIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50Igd1c2VyTnVtIhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiF2tleVVzZXJNYXhCb29zdElOVEVHUkFMIhhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwiIWtleVVzZXJCb29zdEF2YWxhaWJsZVRvQ2xhaW1Ub3RhbCITa2V5VXNlckJvb3N0Q2xhaW1lZCIRa2V5VG90YWxDYWNoZWRHd3giD2tleVN0YWtlZEJ5VXNlciIOdXNlckFkZHJlc3NTdHIiDGxwQXNzZXRJZFN0ciIOa2V5U3Rha2VkVG90YWwiEGtleUNsYWltZWRCeVVzZXIiGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQiG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZCIKcmVhZFN0YWtlZCILc3Rha2luZ0RhcHAiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIMa2V5QWRkb25BZGRyIgpnZXRQb29sRmVlIgtwb29sQWRkcmVzcyIKZmVlRGVmYXVsdCIGa2V5RmVlIgtmYWN0b3J5RGFwcCIKZmFjdG9yeUNmZyIMZW1pc3Npb25EYXBwIg1nd3hSZXdhcmREYXBwIgxib29zdGluZ0RhcHAiGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUiCWxwQXNzZXRJZCIOcG9vbEFkZHJlc3NTdHIiDnBvb2xXZWlnaHRNdWx0Igpwb29sV2VpZ2h0IhJ3eEVtaXNzaW9uUGVyQmxvY2siFXd4RW1pc3Npb25QZXJCbG9ja01heCINYm9vc3RNYXhDb2VmZiIWcG9vbFd4RW1pc3Npb25QZXJCbG9jayIZcG9vbFd4RW1pc3Npb25QZXJCbG9ja01heCIJbWF4RmFjdG9yIg10b3RhbExwU3Rha2VkIhpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWSIKbG9ja0Ftb3VudCIMbG9ja0R1cmF0aW9uIg9tYXhMb2NrRHVyYXRpb24iB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIOZmFjdG9yeUFkZHJlc3MiC2NoZWNrQ2FsbGVyIgpyZXdhcmREYXRhIg5scFN0YWtlZEJ5VXNlciINdXNlckNsYWltSW5mbyINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0IgVkZWJ1ZyINYm9vc3RpbmdQb3dlciILY3VycmVudEl0ZXIiEWRlbHRhV3hBbW91bnRCdWxrIhtkZWx0YUxvY2tQZXJpb2RJbkJsb2Nrc0J1bGsiEWRlbHRhTHBBbW91bnRCdWxrIhBscEFzc2V0SWRPcHRCdWxrIg51c2VyQWRkcmVzc09wdCIGcmVzQWNjIg1kZWx0YVd4QW1vdW50IhdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcyINZGVsdGFMcEFtb3VudCIMbHBBc3NldElkT3B0IgRpbmZvIgFAIgNyZXMiA2ludiIIbWF0aERhcHAiCEVNUFRZU1RSIhdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcyIKdXNlck51bVN0ciIKdXNlckFtb3VudCIJbG9ja1N0YXJ0Igdsb2NrRW5kIhFyZW1haW5pbmdEdXJhdGlvbiINdXNlckFtb3VudE5ldyIPbG9ja0R1cmF0aW9uTmV3IhF1c2VyQ3VycmdXeEFtb3VudCIRZ1d4QW1vdW50U3RhcnROZXciE2dXeFBhcmFtc1Jlc3VsdExpc3QiDWdXeEFtb3VudERpZmYiAWsiAWIiGHRvdGFsTWF4Qm9vc3RJbnRlZ3JhbEtFWSIRdG90YWxDYWNoZWRHd3hLRVkiEnVzZXJNYXhCb29zdEludE5ldyIQdG90YWxNYXhCb29zdEludCIOdG90YWxDYWNoZWRHd3giBU1VTFQzIhR3eEVtaXNzaW9uUGVyQmxvY2tYMyIPc3Rha2VkQnlVc2VyS0VZIg5zdGFrZWRUb3RhbEtFWSIMc3Rha2VkQnlVc2VyIgtzdGFrZWRUb3RhbCIPc3Rha2VkQnlVc2VyTmV3Ig5zdGFrZWRUb3RhbE5ldyIYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzIgl3eFBlckxwWDMiEHVzZXJXeFBlckJsb2NrWDMiF2Jvb3N0RW1pc3Npb25QZXJCbG9ja1gzIhZ0bXBVc2VyQm9vc3RQZXJCbG9ja1gzIhN1c2VyQm9vc3RQZXJCbG9ja1gzIgpib29zdENvZWZmIgdPTkVNVUxUIgNPTkUiEmVtaXNzaW9uU3RhcnRCbG9jayIMcGFzc2VkQmxvY2tzIg50ZWFtRW1EdXJhdGlvbiIJdGVhbUVtTWF4IgZ0ZWFtRW0iD3RvdGFsV3hSZWxlYXNlZCINdG90YWxXeExvY2tlZCIYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIgpsb2Nrc0NvdW50IgdscEFzc2V0IgNjZmciCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0IghjdXJQcmljZSIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIDZmVlIgxpbkFtQXNzZXRBbXQiDGFtQXNzZXRJZFN0ciIJYW1Bc3NldElkIgxwckFzc2V0SWRTdHIiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiC2N1clByaWNlWDE4Ig9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMaW5QckFzc2V0QW10Ig0kdDAyMjA3NTIyNDI4IgljYWxjTHBBbXQiDGN1clByaWNlQ2FsYyIJYW1CYWxhbmNlIglwckJhbGFuY2UiCmxwRW1pc3Npb24iDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCINJHQwMjUwMDEyNTM1NCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10Ig0kdDAyNjA0OTI2NDY2IghvdXRBbUFtdCIIb3V0UHJBbXQiD2d3eFVzZXJJbmZvTElTVCIJZ3d4QW1vdW50Ig11bnN0YWtlQW1vdW50IgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5WwABYQAIAAFiAIDC1y8AAWMAEgABZAkAtgIBAICAkLu61q3wDQABZQICX18AAWYFAWIAAWcJALYCAQAAAAFoAAEAAWkAAgABagADAAFrAAQAAWwABQABbQAGAAFuAAcAAW8ACAABcAAJAAFxAAoBAXIBAXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBBQFzCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFzAg8gaXMgbm90IGRlZmluZWQBAXQCAXUBcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAXUFAXMJAKwCAgkArAICCQCsAgIJAKwCAgIKbWFuZGF0b3J5IAkApQgBBQF1AgEuBQFzAg8gaXMgbm90IGRlZmluZWQBAXYCAXUBcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQF1BQFzAAABAXcCAXUBcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAXUFAXMJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAXMCDyBpcyBub3QgZGVmaW5lZAEBeAEBeQQBegUBeQMJAAECBQF6AglMaXN0W0FueV0EAUEFAXoFAUEJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BAUIBAXkEAXoFAXkDCQABAgUBegIDSW50BAFDBQF6BQFDCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQFEAQF5BAF6BQF5AwkAAQIFAXoCBlN0cmluZwQBRQUBegUBRQkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEBRgACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MBAUcAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBSAACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQABSQABAAFKAAIAAUsAAwABTAAEAAFNAAUAAU4ABgABTwAHAAFQAAgBAVEAAhElc19fZmFjdG9yeUNvbmZpZwEBUgEBUwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFTCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFUAAIQJXNfX2xwVG9rZW5zTGlzdAEBVQEBUwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFTCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFWAQFXCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgpwb29sV2VpZ2h0CQDMCAIFAVcFA25pbAUBZQEBWAAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFyAQkBAUYAAQFZAAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIJAQFYAAkBAVQAAgAFAWUBAVoBAmFhCQC1CQIJAQF0AgUCYWEJAQFRAAUBZQECYWIBAmFjCQER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ZG9uQWRkcgECYVQBAmFVBAJhVgkAawMABQUBYgCQTgQCYVcCByVzX19mZWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYVUFAmFXBQJhVgACYVgJAQFYAAACYVkJAQFaAQUCYVgAAmFaCQECYWQBBQJhWQACYU0JAQJhZQEFAmFZAAJiYQkBAmFmAQUCYVkAAmJiCQECYWIBBQJhWQECYmMBAmJkBAJiZQkBAXQCBQJhWAkBAVUBBQJiZAQCYmYFAWIEAmJnCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhWAkBAVYBBQJiZQQCYmgJAQF3AgUCYVoJAQJhTgAEAmJpCQEBdwIFAmFaCQECYU8ABAJiagADBAJiawkAaQIJAGsDBQJiaAUCYmcFAmJmBQJiagQCYmwJAGsDBQJiaQUCYmcFAmJmBAJibQkAaAIFAmJqBQFiBAJibgkBAXYCBQJhTQkBAmFIAQUCYmQJAMwIAgUCYmsJAMwIAgUCYm0JAMwIAgUCYm4FA25pbAECYm8DAmJwAmJxAmJyBAJicwkAawMFAmJxBQFiBQJicgQCYnQJAGsDBQJicAUCYnMFAWIJAMwIAgUCYnQFA25pbAECYnUABAF6CQCiCAEJAQFHAAMJAAECBQF6AgZTdHJpbmcEAmJ2BQF6CQDZBAEFAmJ2AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYncABAF6CQCiCAEJAQFIAAMJAAECBQF6AgZTdHJpbmcEAmJ2BQF6CQDZBAEFAmJ2AwkAAQIFAXoCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYngBAmJ5BAJiegkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAF6CQECYnUAAwkAAQIFAXoCCkJ5dGVWZWN0b3IEAmJBBQF6AwkAAAIIBQJieQ9jYWxsZXJQdWJsaWNLZXkFAmJBBgUCYnoDCQABAgUBegIEVW5pdAMJAAACCAUCYnkGY2FsbGVyBQR0aGlzBgUCYnoJAAIBAgtNYXRjaCBlcnJvcg8CYnkBC2NvbnN0cnVjdG9yAQJiQgQCYkMJAQJieAEFAmJ5AwkAAAIFAmJDBQJiQwkAzAgCCQELU3RyaW5nRW50cnkCCQEBRgAFAmJCBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnkBGWN1cnJlbnRSZXdhcmRSYXRlUkVBRE9OTFkBAmJkBAJiRAkBAmJjAQUCYmQEAmJoCQCRAwIFAmJEAAAEAmJtCQCRAwIFAmJEAAEEAmJuCQCRAwIFAmJEAAIJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuBQNuaWwFAWUCYnkBHWN1cnJlbnRVc2VyUmV3YXJkUmF0ZVJFQURPTkxZAgJiZAJhbQQCYkQJAQJiYwEFAmJkBAJiaAkAkQMCBQJiRAAABAJibQkAkQMCBQJiRAABBAJibgkAkQMCBQJiRAACBAJiRQkBAXYCBQJhTQkBAmFFAgUCYW0FAmJkBAJiRgkAtQkCCQEBRAEJAPwHBAUCYU0CD2NsYWltV3hSRUFET05MWQkAzAgCBQJiZAkAzAgCBQJhbQUDbmlsBQNuaWwFAWUEAmJHCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJiRgAFAhxjb3VsZG4ndCBwYXJzZSBtaW5SZXdhcmRQYXJ0BAJiSAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYkYABgIeY291bGRuJ3QgcGFyc2UgYm9vc3RSZXdhcmRQYXJ0BAJiSQkAkQMCBQJiRgAHBAJiSgMJAAACBQJiSAAACQBoAgABBQFiCQBrAwkAZAIFAmJHBQJiSAUBYgUCYkcJAJQKAgUDbmlsCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVzCQDMCAIJAKQDAQUCYmgJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiSgkAzAgCBQJiSQUDbmlsBQFlAmJ5AR1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQcCYksCYkwCYk0CYk4CYk8CYlACYlEDCQAAAgUCYksJAJADAQUCYkwJAJQKAgUDbmlsBQJiUQQCYlIJAJEDAgUCYkwFAmJLBAJiUwkAkQMCBQJiTQUCYksEAmJUCQCRAwIFAmJOBQJiSwQCYlUJAJEDAgUCYk8FAmJLBAJiVgoAAmJXCQD8BwQFBHRoaXMCEWNhbGNCb29zdFJFQURPTkxZCQDMCAIFAmJSCQDMCAIFAmJTCQDMCAIFAmJUCQDMCAIFAmJVCQDMCAIFAmJQBQNuaWwFA25pbAMJAAECBQJiVwIGU3RyaW5nBQJiVwkAAgEJAKwCAgkAAwEFAmJXAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmJYCQDNCAIFAmJRBQJiVgQCYlkKAAJiVwkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCCQBkAgUCYksAAQkAzAgCBQJiTAkAzAgCBQJiTQkAzAgCBQJiTgkAzAgCBQJiTwkAzAgCBQJiUAkAzAgCBQJiWAUDbmlsBQNuaWwDCQABAgUCYlcCCUxpc3RbQW55XQUCYlcJAAIBCQCsAgIJAAMBBQJiVwIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldAwkAAAIFAmJZBQJiWQkAlAoCBQNuaWwFAmJZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJ5ARVjYWxjQm9vc3RCdWxrUkVBRE9OTFkFAmJSAmJTAmJUAmJVAmJQBAJiWAkA/AcEBQR0aGlzAh1jYWxjQm9vc3RCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCYlIJAMwIAgUCYlMJAMwIAgUCYlQJAMwIAgUCYlUJAMwIAgUCYlAJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmJYAmJ5ARFjYWxjQm9vc3RSRUFET05MWQUCYlICYlMCYlQCYlUCYlAEAmJaBQJiYQQCY2ECBWVtcHR5BAJjYgkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBAXQCBQJiYgkBAmFnAAUBZQAEBAJhRwMJAAACBQJiVQIABQJjYQUCYlUEAmFGAwkAAAIFAmJQAgAFAmNhBQJiUAQCY2MJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYmIJAQJhbAEFAmJQBQJjYQQCY2QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYmIJAQJhcAEFAmNjAAAEAmNlCQELdmFsdWVPckVsc2UCCQCaCAIFAmJiCQECYXIBBQJjYwUGaGVpZ2h0BAJicQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiYgkBAmFzAQUCY2MAAAQCY2YJAGQCBQJjZQUCYnEEAmNnCQCWAwEJAMwIAgkAZQIFAmNmBQZoZWlnaHQJAMwIAgAABQNuaWwEAmNoCQBkAgUCY2QFAmJSBAJjaQkAlwMBCQDMCAIJAGQCBQJjZwUCYlMJAMwIAgUCY2IFA25pbAQCY2oJAQFCAQkAkQMCCQEBeAEJAPwHBAUCYmICE2d3eFVzZXJJbmZvUkVBRE9OTFkJAMwIAgUCYUYFA25pbAUDbmlsAAAEAmNrCQCRAwIJAQJibwMFAmNoBQJjaQUCY2IAAAQCY2wJAQF4AQkA/AcEBQJiWgIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmNrCQDMCAIFBmhlaWdodAkAzAgCBQJjaQUDbmlsBQNuaWwEAmNtCQBlAgUCY2sFAmNqBAJjbgkBAUIBCQCRAwIFAmNsAAAEAmNvCQEBQgEJAJEDAgUCY2wAAQQCYXcJAKQDAQkBAUIBCQCRAwIFAmNsAAIEAmNwCQECYUEABAJjcQkBAmFEAAQCY3IJAGkCCQBoAgUCY2sFAmNpAAIEAmNzCQEBdgIFAmJiBQJjcAQCY3QJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYmIFAmNxAAAEAmN1AOgHBAJjdgkAaAIJAQF3AgUCYVoJAQJhTgAFAmN1BAJjdwkBAmFFAgUCYUYFAmFHBAJjeAkBAmFIAQUCYUcEAmN5CQECYUwCBQJhTQUCY3cEAmN6CQECYUwCBQJhTQUCY3gEAmNBCQBkAgUCY3kFAmJUBAJjQgkAZAIFAmN6BQJiVAQCYmcDCQECIT0CBQJhRwUCY2EEAmJlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVgJAQFSAQUCYUcJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhRwkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVgJAQFWAQUCYmUAAAQCY0MJAGsDBQJjdgUCYmcJAGgCBQFmAAMEAmNEAwkBAiE9AgUCY0IAAAkAawMFAmNDBQFiBQJjQgAABAJjRQkAawMFAmNEBQJjQQUBYgQCY0YJAGgCBQJjQwACBAJjRwkAawMFAmNrBQJjRgkAZAIFAmN0BQJjbQQCY0gJAJcDAQkAzAgCBQJjRwkAzAgCCQBoAgUCY0UAAgUDbmlsBAJjSQMJAAACBQJjRQAACQBoAgABBQFiCQBrAwkAZAIFAmNIBQJjRQUBYgUCY0UJAJQKAgUDbmlsCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCY2sJAMwIAgkApAMBBQJjSQkAzAgCAgFkBQNuaWwFAWUCYnkBF3d4RW1pc3Npb25TdGF0c1JFQURPTkxZAAQCY0oJAKQDAQUBYgQCY0sCATEEAmJoCQEBdwIFAmFaCQECYU4ABAJjTAkBAXcCBQJhWgkBAmFQAAQCY00DCQBmAgUCY0wFBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJjTAQCY04JAGgCAKALAO0CBAJjTwkAaAIAwIjsXwUBYgQCY1ADCQBmAgUCY00FAmNOBQJjTwkAawMFAmNPBQJjTQUCY04EAmNRCQBkAgkAaAIFAmJoBQJjTQUCY1AEAmNSCQEBdgIFAmJiCQECYWgABAJjUwkBAXYCBQJiYgkBAmFpAAQCY1QJAQF2AgUCYmIJAQJhagAJAJQKAgUDbmlsCQC5CQIJAMwIAgIIJWQlZCVkJWQJAMwIAgkApAMBBQJjUQkAzAgCCQCkAwEFAmNSCQDMCAIJAKQDAQUCY1MJAMwIAgkApAMBBQJjVAUDbmlsBQFlAmJ5ARFwb29sU3RhdHNSRUFET05MWQECY1UEAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBdAIFAmFYCQEBVQEFAmNVBAJjVgkBAXgBCQD8BwQFAmFVAhxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZBQNuaWwFA25pbAQCYmQJANkEAQkBAUQBCQCRAwIFAmNWBQFqBAJjVwkBAUQBCQCRAwIFAmNWBQFrBAJjWAkBAUQBCQCRAwIFAmNWBQFsBAJjWQkBAUQBCQCRAwIFAmNWBQFvBAJjWgkBAUQBCQCRAwIFAmNWBQFwBAJkYQkBDXBhcnNlSW50VmFsdWUBCQEBRAEJAJEDAgUCY1YFAW0EAmRiCQENcGFyc2VJbnRWYWx1ZQEJAQFEAQkAkQMCBQJjVgUBbgQCZGMICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYmQJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYmQCDiBkb2Vzbid0IGV4aXN0CHF1YW50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AgkApAMBBQJkTAkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQgkAzAgCBQJkZwkAzAgCBQJkcAUDbmlsBQFlAmJ5ARNnd3hVc2VySW5mb1JFQURPTkxZAQJhbQQCZE0JAQF4AQkA/AcEBQJiYgITZ3d4VXNlckluZm9SRUFET05MWQkAzAgCBQJhbQUDbmlsBQNuaWwEAmROCQEBQgEJAJEDAgUCZE0AAAkAlAoCBQNuaWwJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFAmROBQNuaWwFAWUCYnkBFXVuc3Rha2VBbmRHZXRPbmVUa25WMgQCYVUCZE8CZFACZFEEAmJZCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFVAhV1bnN0YWtlQW5kR2V0T25lVGtuVjIJAMwIAgUCZE8JAMwIAgUCZFAJAMwIAgUCZFEFA25pbAUDbmlsAwkAAAIFAmJZBQJiWQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYnkBCnNldE1hbmFnZXIBAmRSBAJiQwkBAmJ4AQUCYnkDCQAAAgUCYkMFAmJDBAJkUwkA2QQBBQJkUgMJAAACBQJkUwUCZFMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUgABQJkUgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJ5AQ5jb25maXJtTWFuYWdlcgAEAmRUCQECYncABAJkVQMJAQlpc0RlZmluZWQBBQJkVAYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZFUFAmRVBAJkVgMJAAACCAUCYnkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJkVAYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZFYFAmRWCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFHAAkA2AQBCQEFdmFsdWUBBQJkVAkAzAgCCQELRGVsZXRlRW50cnkBCQEBSAAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZFcBAmRYAAQCZFkEAXoJAQJidQADCQABAgUBegIKQnl0ZVZlY3RvcgQCYkEFAXoFAmJBAwkAAQIFAXoCBFVuaXQIBQJkVw9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZFcJYm9keUJ5dGVzCQCRAwIIBQJkVwZwcm9vZnMAAAUCZFmzI+dp", "chainId": 84, "height": 2297955, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BDVfxpT1Ek6KKL2ChQFgUsLnkoYP7fEpooxhKK9ZGniV Next: oZphfpjiAh6XS7JGv64HBkSi5Zx1xfzAiYepE8CJrQP Diff:
OldNewDifferences
504504 let di = B(invoke(aU, "fromX18WrapperREADONLY", [df[2], b], nil))
505505 let bg = getIntegerValue(aX, V(toString(aU)))
506506 let dj = aT(aU)
507- let dk = {
508- let bW = invoke(aX, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aU)], nil)
509- if ($isInstanceOf(bW, "Boolean"))
510- then bW
511- else throw(($getType(bW) + " couldn't be cast to Boolean"))
512- }
513- let dl = !(dk)
514- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dd), toString(de), toString(dc), toString(dg), toString(dh), toString(di), toString(bg), toString(dj), toString(dl)], e))
507+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dd), toString(de), toString(dc), toString(dg), toString(dh), toString(di), toString(bg), toString(dj)], e))
515508 }
516509
517510
518511
519512 @Callable(by)
520-func poolEvaluatePutByAmountAssetREADONLY (cU,dm) = {
513+func poolEvaluatePutByAmountAssetREADONLY (cU,dk) = {
521514 let aU = addressFromStringValue(t(aX, U(cU)))
522515 let cV = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
523516 let bd = fromBase58String(D(cV[j]))
524- let dn = D(cV[k])
517+ let dl = D(cV[k])
518+ let dm = fromBase58String(dl)
519+ let dn = D(cV[l])
525520 let do = fromBase58String(dn)
526- let dp = D(cV[l])
527- let dq = fromBase58String(dp)
528521 let da = parseIntValue(D(cV[m]))
529522 let db = parseIntValue(D(cV[n]))
530- let dr = D(cV[i])
523+ let dp = D(cV[i])
531524 let dc = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
532- let dd = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
533- let de = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dp], nil))
534- let ds = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dd, da], nil)))
535- let dt = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [de, db], nil)))
536- let du = if ((dc == 0))
525+ let dd = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dl], nil))
526+ let de = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
527+ let dq = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dd, da], nil)))
528+ let dr = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [de, db], nil)))
529+ let ds = if ((dc == 0))
537530 then g
538- else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dt), toString(ds)], nil)))
539- let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), b], nil))
540- let dv = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dm, da], nil)))
541- let dw = fraction(dv, du, d)
542- let dx = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dw), db], nil))
543- let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dm, do, dx, dq, "", true, false], nil)
544- let dy = {
531+ else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dr), toString(dq)], nil)))
532+ let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(ds), b], nil))
533+ let dt = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dk, da], nil)))
534+ let du = fraction(dt, ds, d)
535+ let dv = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), db], nil))
536+ let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
537+ let dw = {
545538 let z = bX
546539 if (if (if ($isInstanceOf(z._1, "Int"))
547540 then if ($isInstanceOf(z._3, "Int"))
555548 then (size(z) == 13)
556549 else false)
557550 then {
558- let dz = z._1
559- let dA = z._3
560- let dB = z._4
561- let dC = z._5
562- let dD = z._6
563- $Tuple5(dz, dA, dB, dC, dD)
551+ let dx = z._1
552+ let dy = z._3
553+ let dz = z._4
554+ let dA = z._5
555+ let dB = z._6
556+ $Tuple5(dx, dy, dz, dA, dB)
564557 }
565558 else throw("Couldn't cast types")
566559 }
567- let dz = dy._1
568- let dA = dy._2
569- let dB = dy._3
570- let dC = dy._4
571- let dD = dy._5
572- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dz), toString(dg), toString(dB), toString(dC), toString(dD), dr, toString(dm), toString(dx)], e))
560+ let dx = dw._1
561+ let dy = dw._2
562+ let dz = dw._3
563+ let dA = dw._4
564+ let dB = dw._5
565+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dg), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
573566 }
574567
575568
576569
577570 @Callable(by)
578-func poolEvaluatePutByPriceAssetREADONLY (cU,dx) = {
571+func poolEvaluatePutByPriceAssetREADONLY (cU,dv) = {
579572 let aU = addressFromStringValue(t(aX, U(cU)))
580573 let cV = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
581574 let bd = fromBase58String(D(cV[j]))
582- let dn = D(cV[k])
575+ let dl = D(cV[k])
576+ let dm = fromBase58String(dl)
577+ let dn = D(cV[l])
583578 let do = fromBase58String(dn)
584- let dp = D(cV[l])
585- let dq = fromBase58String(dp)
586579 let da = parseIntValue(D(cV[m]))
587580 let db = parseIntValue(D(cV[n]))
588- let dr = D(cV[i])
581+ let dp = D(cV[i])
589582 let dc = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
590- let dE = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
591- let dF = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dp], nil))
592- let dG = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dE, da], nil)))
593- let dH = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dF, db], nil)))
594- let du = if ((dc == 0))
583+ let dC = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dl], nil))
584+ let dD = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
585+ let dE = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dC, da], nil)))
586+ let dF = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dD, db], nil)))
587+ let ds = if ((dc == 0))
595588 then g
596- else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dH), toString(dG)], nil)))
597- let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), b], nil))
598- let dw = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dx, db], nil)))
599- let dv = fraction(dw, d, du)
600- let dm = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dv), da], nil))
601- let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dm, do, dx, dq, "", true, false], nil)
602- let dI = {
589+ else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
590+ let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(ds), b], nil))
591+ let du = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dv, db], nil)))
592+ let dt = fraction(du, d, ds)
593+ let dk = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dt), da], nil))
594+ let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
595+ let dG = {
603596 let z = bX
604597 if (if (if ($isInstanceOf(z._1, "Int"))
605598 then if ($isInstanceOf(z._3, "Int"))
613606 then (size(z) == 13)
614607 else false)
615608 then {
616- let dz = z._1
617- let dA = z._3
618- let dB = z._4
619- let dC = z._5
620- let dD = z._6
621- $Tuple5(dz, dA, dB, dC, dD)
609+ let dx = z._1
610+ let dy = z._3
611+ let dz = z._4
612+ let dA = z._5
613+ let dB = z._6
614+ $Tuple5(dx, dy, dz, dA, dB)
622615 }
623616 else throw("Couldn't cast types")
624617 }
625- let dz = dI._1
626- let dA = dI._2
627- let dB = dI._3
628- let dC = dI._4
629- let dD = dI._5
630- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dz), toString(dg), toString(dB), toString(dC), toString(dD), dr, toString(dm), toString(dx)], e))
618+ let dx = dG._1
619+ let dy = dG._2
620+ let dz = dG._3
621+ let dA = dG._4
622+ let dB = dG._5
623+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dg), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
631624 }
632625
633626
634627
635628 @Callable(by)
636-func poolEvaluateGetREADONLY (dJ,dK) = {
637- let aU = addressFromStringValue(t(aX, U(dJ)))
638- let bX = invoke(aU, "estimateGetOperationWrapperREADONLY", ["", dJ, dK, toString(aU)], nil)
639- let dL = {
629+func poolEvaluateGetREADONLY (dH,dI) = {
630+ let aU = addressFromStringValue(t(aX, U(dH)))
631+ let bX = invoke(aU, "estimateGetOperationWrapperREADONLY", ["", dH, dI, toString(aU)], nil)
632+ let dJ = {
640633 let z = bX
641634 if (if (if ($isInstanceOf(z._1, "Int"))
642635 then if ($isInstanceOf(z._2, "Int"))
654647 then (size(z) == 10)
655648 else false)
656649 then {
657- let dM = z._1
658- let dN = z._2
659- let dB = z._5
660- let dC = z._6
661- let dD = z._7
650+ let dK = z._1
651+ let dL = z._2
652+ let dz = z._5
653+ let dA = z._6
654+ let dB = z._7
662655 let dg = z._8
663- let dr = z._9
664- $Tuple7(dM, dN, dB, dC, dD, dg, dr)
656+ let dp = z._9
657+ $Tuple7(dK, dL, dz, dA, dB, dg, dp)
665658 }
666659 else throw("Couldn't cast types")
667660 }
668- let dM = dL._1
669- let dN = dL._2
670- let dB = dL._3
671- let dC = dL._4
672- let dD = dL._5
673- let dg = dL._6
674- let dr = dL._7
675- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dM), toString(dN), toString(dB), toString(dC), toString(dD), dg, dr], e))
661+ let dK = dJ._1
662+ let dL = dJ._2
663+ let dz = dJ._3
664+ let dA = dJ._4
665+ let dB = dJ._5
666+ let dg = dJ._6
667+ let dp = dJ._7
668+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dz), toString(dA), toString(dB), dg, dp], e))
676669 }
677670
678671
679672
680673 @Callable(by)
681674 func gwxUserInfoREADONLY (am) = {
682- let dO = x(invoke(bb, "gwxUserInfoREADONLY", [am], nil))
683- let dP = B(dO[0])
684- $Tuple2(nil, makeString(["%d", toString(dP)], e))
675+ let dM = x(invoke(bb, "gwxUserInfoREADONLY", [am], nil))
676+ let dN = B(dM[0])
677+ $Tuple2(nil, makeString(["%d", toString(dN)], e))
685678 }
686679
687680
688681
689682 @Callable(by)
690-func setManager (dQ) = {
683+func unstakeAndGetOneTknV2 (aU,dO,dP,dQ) = {
684+ let bY = invoke(addressFromStringValue(aU), "unstakeAndGetOneTknV2", [dO, dP, dQ], nil)
685+ if ((bY == bY))
686+ then $Tuple2(nil, unit)
687+ else throw("Strict value is not equal to itself.")
688+ }
689+
690+
691+
692+@Callable(by)
693+func setManager (dR) = {
691694 let bC = bx(by)
692695 if ((bC == bC))
693696 then {
694- let dR = fromBase58String(dQ)
695- if ((dR == dR))
696- then [StringEntry(H(), dQ)]
697+ let dS = fromBase58String(dR)
698+ if ((dS == dS))
699+ then [StringEntry(H(), dR)]
697700 else throw("Strict value is not equal to itself.")
698701 }
699702 else throw("Strict value is not equal to itself.")
703706
704707 @Callable(by)
705708 func confirmManager () = {
706- let dS = bw()
707- let dT = if (isDefined(dS))
709+ let dT = bw()
710+ let dU = if (isDefined(dT))
708711 then true
709712 else throw("No pending manager")
710- if ((dT == dT))
713+ if ((dU == dU))
711714 then {
712- let dU = if ((by.callerPublicKey == value(dS)))
715+ let dV = if ((by.callerPublicKey == value(dT)))
713716 then true
714717 else throw("You are not pending manager")
715- if ((dU == dU))
716- then [StringEntry(G(), toBase58String(value(dS))), DeleteEntry(H())]
718+ if ((dV == dV))
719+ then [StringEntry(G(), toBase58String(value(dT))), DeleteEntry(H())]
717720 else throw("Strict value is not equal to itself.")
718721 }
719722 else throw("Strict value is not equal to itself.")
720723 }
721724
722725
723-@Verifier(dV)
724-func dW () = {
725- let dX = {
726+@Verifier(dW)
727+func dX () = {
728+ let dY = {
726729 let z = bu()
727730 if ($isInstanceOf(z, "ByteVector"))
728731 then {
730733 bA
731734 }
732735 else if ($isInstanceOf(z, "Unit"))
733- then dV.senderPublicKey
736+ then dW.senderPublicKey
734737 else throw("Match error")
735738 }
736- sigVerify(dV.bodyBytes, dV.proofs[0], dX)
739+ sigVerify(dW.bodyBytes, dW.proofs[0], dY)
737740 }
738741
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) = {
241241 let aV = fraction(5, 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 () = {
282282 let z = getString(G())
283283 if ($isInstanceOf(z, "String"))
284284 then {
285285 let bv = z
286286 fromBase58String(bv)
287287 }
288288 else if ($isInstanceOf(z, "Unit"))
289289 then unit
290290 else throw("Match error")
291291 }
292292
293293
294294 func bw () = {
295295 let z = getString(H())
296296 if ($isInstanceOf(z, "String"))
297297 then {
298298 let bv = z
299299 fromBase58String(bv)
300300 }
301301 else if ($isInstanceOf(z, "Unit"))
302302 then unit
303303 else throw("Match error")
304304 }
305305
306306
307307 func bx (by) = {
308308 let bz = throw("Permission denied")
309309 let z = bu()
310310 if ($isInstanceOf(z, "ByteVector"))
311311 then {
312312 let bA = z
313313 if ((by.callerPublicKey == bA))
314314 then true
315315 else bz
316316 }
317317 else if ($isInstanceOf(z, "Unit"))
318318 then if ((by.caller == this))
319319 then true
320320 else bz
321321 else throw("Match error")
322322 }
323323
324324
325325 @Callable(by)
326326 func constructor (bB) = {
327327 let bC = bx(by)
328328 if ((bC == bC))
329329 then [StringEntry(F(), bB)]
330330 else throw("Strict value is not equal to itself.")
331331 }
332332
333333
334334
335335 @Callable(by)
336336 func currentRewardRateREADONLY (bd) = {
337337 let bD = bc(bd)
338338 let bh = bD[0]
339339 let bm = bD[1]
340340 let bn = bD[2]
341341 $Tuple2(nil, makeString(["%d%d%d", toString(bh), toString(bm), toString(bn)], e))
342342 }
343343
344344
345345
346346 @Callable(by)
347347 func currentUserRewardRateREADONLY (bd,am) = {
348348 let bD = bc(bd)
349349 let bh = bD[0]
350350 let bm = bD[1]
351351 let bn = bD[2]
352352 let bE = v(aM, aE(am, bd))
353353 let bF = split(D(invoke(aM, "claimWxREADONLY", [bd, am], nil)), e)
354354 let bG = valueOrErrorMessage(parseInt(bF[5]), "couldn't parse minRewardPart")
355355 let bH = valueOrErrorMessage(parseInt(bF[6]), "couldn't parse boostRewardPart")
356356 let bI = bF[7]
357357 let bJ = if ((bH == 0))
358358 then (1 * b)
359359 else fraction((bG + bH), b, bG)
360360 $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(bh), toString(bm), toString(bn), toString(bE), toString(bJ), bI], e))
361361 }
362362
363363
364364
365365 @Callable(by)
366366 func calcBoostBulkInternalREADONLY (bK,bL,bM,bN,bO,bP,bQ) = if ((bK == size(bL)))
367367 then $Tuple2(nil, bQ)
368368 else {
369369 let bR = bL[bK]
370370 let bS = bM[bK]
371371 let bT = bN[bK]
372372 let bU = bO[bK]
373373 let bV = {
374374 let bW = invoke(this, "calcBoostREADONLY", [bR, bS, bT, bU, bP], nil)
375375 if ($isInstanceOf(bW, "String"))
376376 then bW
377377 else throw(($getType(bW) + " couldn't be cast to String"))
378378 }
379379 let bX = (bQ :+ bV)
380380 let bY = {
381381 let bW = invoke(this, "calcBoostBulkInternalREADONLY", [(bK + 1), bL, bM, bN, bO, bP, bX], nil)
382382 if ($isInstanceOf(bW, "List[Any]"))
383383 then bW
384384 else throw(($getType(bW) + " couldn't be cast to List[Any]"))
385385 }
386386 if ((bY == bY))
387387 then $Tuple2(nil, bY)
388388 else throw("Strict value is not equal to itself.")
389389 }
390390
391391
392392
393393 @Callable(by)
394394 func calcBoostBulkREADONLY (bR,bS,bT,bU,bP) = {
395395 let bX = invoke(this, "calcBoostBulkInternalREADONLY", [0, bR, bS, bT, bU, bP, nil], nil)
396396 $Tuple2(nil, bX)
397397 }
398398
399399
400400
401401 @Callable(by)
402402 func calcBoostREADONLY (bR,bS,bT,bU,bP) = {
403403 let bZ = ba
404404 let ca = "empty"
405405 let cb = parseIntValue(split(t(bb, ag()), e)[4])
406406 let aG = if ((bU == ""))
407407 then ca
408408 else bU
409409 let aF = if ((bP == ""))
410410 then ca
411411 else bP
412412 let cc = valueOrElse(getString(bb, al(bP)), ca)
413413 let cd = valueOrElse(getInteger(bb, ap(cc)), 0)
414414 let ce = valueOrElse(getInteger(bb, ar(cc)), height)
415415 let bq = valueOrElse(getInteger(bb, as(cc)), 0)
416416 let cf = (ce + bq)
417417 let cg = max([(cf - height), 0])
418418 let ch = (cd + bR)
419419 let ci = min([(cg + bS), cb])
420420 let cj = B(x(invoke(bb, "gwxUserInfoREADONLY", [aF], nil))[0])
421421 let ck = bo(ch, ci, cb)[0]
422422 let cl = x(invoke(bZ, "calcGwxParamsREADONLY", [ck, height, ci], nil))
423423 let cm = (ck - cj)
424424 let cn = B(cl[0])
425425 let co = B(cl[1])
426426 let aw = toString(B(cl[2]))
427427 let cp = aA()
428428 let cq = aD()
429429 let cr = ((ck * ci) / 2)
430430 let cs = v(bb, cp)
431431 let ct = valueOrElse(getInteger(bb, cq), 0)
432432 let cu = 1000
433433 let cv = (w(aZ, aN()) * cu)
434434 let cw = aE(aF, aG)
435435 let cx = aH(aG)
436436 let cy = aL(aM, cw)
437437 let cz = aL(aM, cx)
438438 let cA = (cy + bT)
439439 let cB = (cz + bT)
440440 let bg = if ((aG != ca))
441441 then {
442442 let be = valueOrErrorMessage(getString(aX, R(aG)), ("unsupported lp asset " + aG))
443443 getIntegerValue(aX, V(be))
444444 }
445445 else 0
446446 let cC = fraction(cv, bg, (f * 3))
447447 let cD = if ((cB != 0))
448448 then fraction(cC, b, cB)
449449 else 0
450450 let cE = fraction(cD, cA, b)
451451 let cF = (cC * 2)
452452 let cG = fraction(ck, cF, (ct + cm))
453453 let cH = min([cG, (cE * 2)])
454454 let cI = if ((cE == 0))
455455 then (1 * b)
456456 else fraction((cH + cE), b, cE)
457457 $Tuple2(nil, makeString(["%d%d%s", toString(ck), toString(cI), "d"], e))
458458 }
459459
460460
461461
462462 @Callable(by)
463463 func wxEmissionStatsREADONLY () = {
464464 let cJ = toString(b)
465465 let cK = "1"
466466 let bh = w(aZ, aN())
467467 let cL = w(aZ, aP())
468468 let cM = if ((cL > height))
469469 then 0
470470 else (height - cL)
471471 let cN = (1440 * 365)
472472 let cO = (201000000 * b)
473473 let cP = if ((cM > cN))
474474 then cO
475475 else fraction(cO, cM, cN)
476476 let cQ = ((bh * cM) + cP)
477477 let cR = v(bb, ah())
478478 let cS = v(bb, ai())
479479 let cT = v(bb, aj())
480480 $Tuple2(nil, makeString(["%d%d%d%d", toString(cQ), toString(cR), toString(cS), toString(cT)], e))
481481 }
482482
483483
484484
485485 @Callable(by)
486486 func poolStatsREADONLY (cU) = {
487487 let aU = addressFromStringValue(t(aX, U(cU)))
488488 let cV = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
489489 let bd = fromBase58String(D(cV[j]))
490490 let cW = D(cV[k])
491491 let cX = D(cV[l])
492492 let cY = D(cV[o])
493493 let cZ = D(cV[p])
494494 let da = parseIntValue(D(cV[m]))
495495 let db = parseIntValue(D(cV[n]))
496496 let dc = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
497497 let dd = B(invoke(aU, "getAccBalanceWrapperREADONLY", [cW], nil))
498498 let de = B(invoke(aU, "getAccBalanceWrapperREADONLY", [cX], nil))
499499 let df = if ((dc == 0))
500500 then [toString(g), toString(g), toString(g)]
501501 else x(invoke(aU, "calcPricesWrapperREADONLY", [dd, de, dc], nil))
502502 let dg = 0
503503 let dh = B(invoke(aU, "fromX18WrapperREADONLY", [df[1], b], nil))
504504 let di = B(invoke(aU, "fromX18WrapperREADONLY", [df[2], b], nil))
505505 let bg = getIntegerValue(aX, V(toString(aU)))
506506 let dj = aT(aU)
507- let dk = {
508- let bW = invoke(aX, "isPoolOneTokenOperationsDisabledREADONLY", [toString(aU)], nil)
509- if ($isInstanceOf(bW, "Boolean"))
510- then bW
511- else throw(($getType(bW) + " couldn't be cast to Boolean"))
512- }
513- let dl = !(dk)
514- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d%s", toString(dd), toString(de), toString(dc), toString(dg), toString(dh), toString(di), toString(bg), toString(dj), toString(dl)], e))
507+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dd), toString(de), toString(dc), toString(dg), toString(dh), toString(di), toString(bg), toString(dj)], e))
515508 }
516509
517510
518511
519512 @Callable(by)
520-func poolEvaluatePutByAmountAssetREADONLY (cU,dm) = {
513+func poolEvaluatePutByAmountAssetREADONLY (cU,dk) = {
521514 let aU = addressFromStringValue(t(aX, U(cU)))
522515 let cV = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
523516 let bd = fromBase58String(D(cV[j]))
524- let dn = D(cV[k])
517+ let dl = D(cV[k])
518+ let dm = fromBase58String(dl)
519+ let dn = D(cV[l])
525520 let do = fromBase58String(dn)
526- let dp = D(cV[l])
527- let dq = fromBase58String(dp)
528521 let da = parseIntValue(D(cV[m]))
529522 let db = parseIntValue(D(cV[n]))
530- let dr = D(cV[i])
523+ let dp = D(cV[i])
531524 let dc = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
532- let dd = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
533- let de = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dp], nil))
534- let ds = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dd, da], nil)))
535- let dt = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [de, db], nil)))
536- let du = if ((dc == 0))
525+ let dd = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dl], nil))
526+ let de = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
527+ let dq = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dd, da], nil)))
528+ let dr = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [de, db], nil)))
529+ let ds = if ((dc == 0))
537530 then g
538- else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dt), toString(ds)], nil)))
539- let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), b], nil))
540- let dv = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dm, da], nil)))
541- let dw = fraction(dv, du, d)
542- let dx = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dw), db], nil))
543- let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dm, do, dx, dq, "", true, false], nil)
544- let dy = {
531+ else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dr), toString(dq)], nil)))
532+ let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(ds), b], nil))
533+ let dt = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dk, da], nil)))
534+ let du = fraction(dt, ds, d)
535+ let dv = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), db], nil))
536+ let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
537+ let dw = {
545538 let z = bX
546539 if (if (if ($isInstanceOf(z._1, "Int"))
547540 then if ($isInstanceOf(z._3, "Int"))
548541 then if ($isInstanceOf(z._4, "Int"))
549542 then if ($isInstanceOf(z._5, "Int"))
550543 then $isInstanceOf(z._6, "Int")
551544 else false
552545 else false
553546 else false
554547 else false)
555548 then (size(z) == 13)
556549 else false)
557550 then {
558- let dz = z._1
559- let dA = z._3
560- let dB = z._4
561- let dC = z._5
562- let dD = z._6
563- $Tuple5(dz, dA, dB, dC, dD)
551+ let dx = z._1
552+ let dy = z._3
553+ let dz = z._4
554+ let dA = z._5
555+ let dB = z._6
556+ $Tuple5(dx, dy, dz, dA, dB)
564557 }
565558 else throw("Couldn't cast types")
566559 }
567- let dz = dy._1
568- let dA = dy._2
569- let dB = dy._3
570- let dC = dy._4
571- let dD = dy._5
572- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dz), toString(dg), toString(dB), toString(dC), toString(dD), dr, toString(dm), toString(dx)], e))
560+ let dx = dw._1
561+ let dy = dw._2
562+ let dz = dw._3
563+ let dA = dw._4
564+ let dB = dw._5
565+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dg), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
573566 }
574567
575568
576569
577570 @Callable(by)
578-func poolEvaluatePutByPriceAssetREADONLY (cU,dx) = {
571+func poolEvaluatePutByPriceAssetREADONLY (cU,dv) = {
579572 let aU = addressFromStringValue(t(aX, U(cU)))
580573 let cV = x(invoke(aU, "getPoolConfigWrapperREADONLY", nil, nil))
581574 let bd = fromBase58String(D(cV[j]))
582- let dn = D(cV[k])
575+ let dl = D(cV[k])
576+ let dm = fromBase58String(dl)
577+ let dn = D(cV[l])
583578 let do = fromBase58String(dn)
584- let dp = D(cV[l])
585- let dq = fromBase58String(dp)
586579 let da = parseIntValue(D(cV[m]))
587580 let db = parseIntValue(D(cV[n]))
588- let dr = D(cV[i])
581+ let dp = D(cV[i])
589582 let dc = valueOrErrorMessage(assetInfo(bd), (("Asset " + toBase58String(bd)) + " doesn't exist")).quantity
590- let dE = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
591- let dF = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dp], nil))
592- let dG = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dE, da], nil)))
593- let dH = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dF, db], nil)))
594- let du = if ((dc == 0))
583+ let dC = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dl], nil))
584+ let dD = B(invoke(aU, "getAccBalanceWrapperREADONLY", [dn], nil))
585+ let dE = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dC, da], nil)))
586+ let dF = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dD, db], nil)))
587+ let ds = if ((dc == 0))
595588 then g
596- else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dH), toString(dG)], nil)))
597- let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(du), b], nil))
598- let dw = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dx, db], nil)))
599- let dv = fraction(dw, d, du)
600- let dm = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dv), da], nil))
601- let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dm, do, dx, dq, "", true, false], nil)
602- let dI = {
589+ else parseBigIntValue(D(invoke(aU, "calcPriceBigIntWrapperREADONLY", [toString(dF), toString(dE)], nil)))
590+ let dg = B(invoke(aU, "fromX18WrapperREADONLY", [toString(ds), b], nil))
591+ let du = parseBigIntValue(D(invoke(aU, "toX18WrapperREADONLY", [dv, db], nil)))
592+ let dt = fraction(du, d, ds)
593+ let dk = B(invoke(aU, "fromX18WrapperREADONLY", [toString(dt), da], nil))
594+ let bX = invoke(aU, "estimatePutOperationWrapperREADONLY", ["", 500000, dk, dm, dv, do, "", true, false], nil)
595+ let dG = {
603596 let z = bX
604597 if (if (if ($isInstanceOf(z._1, "Int"))
605598 then if ($isInstanceOf(z._3, "Int"))
606599 then if ($isInstanceOf(z._4, "Int"))
607600 then if ($isInstanceOf(z._5, "Int"))
608601 then $isInstanceOf(z._6, "Int")
609602 else false
610603 else false
611604 else false
612605 else false)
613606 then (size(z) == 13)
614607 else false)
615608 then {
616- let dz = z._1
617- let dA = z._3
618- let dB = z._4
619- let dC = z._5
620- let dD = z._6
621- $Tuple5(dz, dA, dB, dC, dD)
609+ let dx = z._1
610+ let dy = z._3
611+ let dz = z._4
612+ let dA = z._5
613+ let dB = z._6
614+ $Tuple5(dx, dy, dz, dA, dB)
622615 }
623616 else throw("Couldn't cast types")
624617 }
625- let dz = dI._1
626- let dA = dI._2
627- let dB = dI._3
628- let dC = dI._4
629- let dD = dI._5
630- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dz), toString(dg), toString(dB), toString(dC), toString(dD), dr, toString(dm), toString(dx)], e))
618+ let dx = dG._1
619+ let dy = dG._2
620+ let dz = dG._3
621+ let dA = dG._4
622+ let dB = dG._5
623+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dx), toString(dg), toString(dz), toString(dA), toString(dB), dp, toString(dk), toString(dv)], e))
631624 }
632625
633626
634627
635628 @Callable(by)
636-func poolEvaluateGetREADONLY (dJ,dK) = {
637- let aU = addressFromStringValue(t(aX, U(dJ)))
638- let bX = invoke(aU, "estimateGetOperationWrapperREADONLY", ["", dJ, dK, toString(aU)], nil)
639- let dL = {
629+func poolEvaluateGetREADONLY (dH,dI) = {
630+ let aU = addressFromStringValue(t(aX, U(dH)))
631+ let bX = invoke(aU, "estimateGetOperationWrapperREADONLY", ["", dH, dI, toString(aU)], nil)
632+ let dJ = {
640633 let z = bX
641634 if (if (if ($isInstanceOf(z._1, "Int"))
642635 then if ($isInstanceOf(z._2, "Int"))
643636 then if ($isInstanceOf(z._5, "Int"))
644637 then if ($isInstanceOf(z._6, "Int"))
645638 then if ($isInstanceOf(z._7, "Int"))
646639 then if ($isInstanceOf(z._8, "String"))
647640 then $isInstanceOf(z._9, "String")
648641 else false
649642 else false
650643 else false
651644 else false
652645 else false
653646 else false)
654647 then (size(z) == 10)
655648 else false)
656649 then {
657- let dM = z._1
658- let dN = z._2
659- let dB = z._5
660- let dC = z._6
661- let dD = z._7
650+ let dK = z._1
651+ let dL = z._2
652+ let dz = z._5
653+ let dA = z._6
654+ let dB = z._7
662655 let dg = z._8
663- let dr = z._9
664- $Tuple7(dM, dN, dB, dC, dD, dg, dr)
656+ let dp = z._9
657+ $Tuple7(dK, dL, dz, dA, dB, dg, dp)
665658 }
666659 else throw("Couldn't cast types")
667660 }
668- let dM = dL._1
669- let dN = dL._2
670- let dB = dL._3
671- let dC = dL._4
672- let dD = dL._5
673- let dg = dL._6
674- let dr = dL._7
675- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dM), toString(dN), toString(dB), toString(dC), toString(dD), dg, dr], e))
661+ let dK = dJ._1
662+ let dL = dJ._2
663+ let dz = dJ._3
664+ let dA = dJ._4
665+ let dB = dJ._5
666+ let dg = dJ._6
667+ let dp = dJ._7
668+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dz), toString(dA), toString(dB), dg, dp], e))
676669 }
677670
678671
679672
680673 @Callable(by)
681674 func gwxUserInfoREADONLY (am) = {
682- let dO = x(invoke(bb, "gwxUserInfoREADONLY", [am], nil))
683- let dP = B(dO[0])
684- $Tuple2(nil, makeString(["%d", toString(dP)], e))
675+ let dM = x(invoke(bb, "gwxUserInfoREADONLY", [am], nil))
676+ let dN = B(dM[0])
677+ $Tuple2(nil, makeString(["%d", toString(dN)], e))
685678 }
686679
687680
688681
689682 @Callable(by)
690-func setManager (dQ) = {
683+func unstakeAndGetOneTknV2 (aU,dO,dP,dQ) = {
684+ let bY = invoke(addressFromStringValue(aU), "unstakeAndGetOneTknV2", [dO, dP, dQ], nil)
685+ if ((bY == bY))
686+ then $Tuple2(nil, unit)
687+ else throw("Strict value is not equal to itself.")
688+ }
689+
690+
691+
692+@Callable(by)
693+func setManager (dR) = {
691694 let bC = bx(by)
692695 if ((bC == bC))
693696 then {
694- let dR = fromBase58String(dQ)
695- if ((dR == dR))
696- then [StringEntry(H(), dQ)]
697+ let dS = fromBase58String(dR)
698+ if ((dS == dS))
699+ then [StringEntry(H(), dR)]
697700 else throw("Strict value is not equal to itself.")
698701 }
699702 else throw("Strict value is not equal to itself.")
700703 }
701704
702705
703706
704707 @Callable(by)
705708 func confirmManager () = {
706- let dS = bw()
707- let dT = if (isDefined(dS))
709+ let dT = bw()
710+ let dU = if (isDefined(dT))
708711 then true
709712 else throw("No pending manager")
710- if ((dT == dT))
713+ if ((dU == dU))
711714 then {
712- let dU = if ((by.callerPublicKey == value(dS)))
715+ let dV = if ((by.callerPublicKey == value(dT)))
713716 then true
714717 else throw("You are not pending manager")
715- if ((dU == dU))
716- then [StringEntry(G(), toBase58String(value(dS))), DeleteEntry(H())]
718+ if ((dV == dV))
719+ then [StringEntry(G(), toBase58String(value(dT))), DeleteEntry(H())]
717720 else throw("Strict value is not equal to itself.")
718721 }
719722 else throw("Strict value is not equal to itself.")
720723 }
721724
722725
723-@Verifier(dV)
724-func dW () = {
725- let dX = {
726+@Verifier(dW)
727+func dX () = {
728+ let dY = {
726729 let z = bu()
727730 if ($isInstanceOf(z, "ByteVector"))
728731 then {
729732 let bA = z
730733 bA
731734 }
732735 else if ($isInstanceOf(z, "Unit"))
733- then dV.senderPublicKey
736+ then dW.senderPublicKey
734737 else throw("Match error")
735738 }
736- sigVerify(dV.bodyBytes, dV.proofs[0], dX)
739+ sigVerify(dW.bodyBytes, dW.proofs[0], dY)
737740 }
738741

github/deemru/w8io/169f3d6 
131.92 ms