tx · HVoxBJz4wP62UuToXH3PDuMN2vgfcisuLwzWy5n5Vzf

3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp:  -0.01400000 Waves

2021.12.16 19:22 [1837045] smart account 3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp > SELF 0.00000000 Waves

{ "type": 13, "id": "HVoxBJz4wP62UuToXH3PDuMN2vgfcisuLwzWy5n5Vzf", "fee": 1400000, "feeAssetId": null, "timestamp": 1639671750575, "version": 1, "sender": "3MsNhK6uve98J6DeqbuwGFBRh9GoHPGUFgp", "senderPublicKey": "86RHVxKovtU7yKnepY8wKsd8niDxGAsiwuA1XA1DNqrS", "proofs": [ "447Qz4GPNLypMdxSZeKm5hmWkvAKehEJxb3DU9VyMuKPSyTCnF8DVXdabsqdnPQESxdUntUMG3dnEFa6wAhHtKND" ], "script": "base64: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Z0VtaXNzaW9uRGFwcAAAAAAAAAAABQAAAAAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAAAAAAAAAAGAAAAABlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwAAAAAAAAAAAHAAAAABpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcAAAAAAAAAAACAEAAAANa2V5RmFjdG9yeUNmZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEAAAAKbHBBc3NldFN0cgkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACBQAAAApscEFzc2V0U3RyCQAETAAAAAICAAAAHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAABAlc19fbHBUb2tlbnNMaXN0AQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEAAAAKbHBBc3NldFN0cgkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACBQAAAApscEFzc2V0U3RyCQAETAAAAAICAAAAHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQAAAA9jb250cmFjdEFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAACnBvb2xXZWlnaHQJAARMAAAAAgUAAAAPY29udHJhY3RBZGRyZXNzBQAAAANuaWwFAAAAA1NFUAEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAABAAAACnJlYWRMcExpc3QAAAAACQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAJAQAAABBrZXlGYWN0b3J5THBMaXN0AAAAAAIAAAAABQAAAANTRVABAAAAFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAAAAAQAAAAdmYWN0b3J5CQAEtQAAAAIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAAdmYWN0b3J5CQEAAAANa2V5RmFjdG9yeUNmZwAAAAAFAAAAA1NFUAEAAAAYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAARmQ2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAABGZDZmcFAAAAGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHABAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEAAAAEZkNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAARmQ2ZnBQAAABlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwAQAAABdnZXRTdGFraW5nQWRkcmVzc09yRmFpbAAAAAEAAAAEZkNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAARmQ2ZnBQAAABhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHABAAAAGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwAAAABAAAABGZDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAEZkNmZwUAAAAaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHABAAAAC2tleUJvb3N0Q2ZnAAAAAAIAAAAKJXNfX2NvbmZpZwEAAAAfa2V5Qm9vc3RpbmdMb2NrUGFyYW1Ub3RhbEFtb3VudAAAAAACAAAAHiVzJXNfX3N0YXRzX19hY3RpdmVUb3RhbExvY2tlZAEAAAAoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwAAAAACAAAAJSVzJXNfX3N0YXRzX19sb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MBAAAAGmtleUJvb3N0aW5nU3RhdHNMb2Nrc0NvdW50AAAAAAIAAAAXJXMlc19fc3RhdHNfX2xvY2tzQ291bnQBAAAAGmtleUJvb3N0aW5n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AAACCQAETAAAAAICAAAAFiVzJWRfX3VzZXJCb29zdENsYWltZWQJAARMAAAAAgUAAAAHdXNlck51bQUAAAADbmlsBQAAAANTRVABAAAAEWtleVRvdGFsQ2FjaGVkR3d4AAAAAAIAAAAWJXMlc19fZ3d4Q2FjaGVkX190b3RhbAEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgAAAA51c2VyQWRkcmVzc1N0cgAAAAxscEFzc2V0SWRTdHIJAAS5AAAAAgkABEwAAAACAgAAAA4lcyVzJXNfX3N0YWtlZAkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAAA25pbAUAAAADU0VQAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEAAAAMbHBBc3NldElkU3RyCQABLAAAAAICAAAAFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQAAAAxscEFzc2V0SWRTdHIBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgkABLkAAAACCQAETAAAAAICAAAADyVzJXMlc19fY2xhaW1lZAkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAAA25pbAUAAAADU0VQAQAAABlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIJAAS5AAAAAgkABEwAAAACAgAAABglcyVzJXNfX2NsYWltZWRNaW5SZXdhcmQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEAAAAba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIJAAS5AAAAAgkABEwAAAACAgAAABolcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAAA25pbAUAAAADU0VQAQAAAApyZWFkU3Rha2VkAAAAAgAAAAtzdGFraW5nRGFwcAAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAALc3Rha2luZ0RhcHAFAAAAA2tleQAAAAAAAAAAAAEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sAAAAAC2ZhY3RvcnlEYXBwCQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAAAAAAKZmFjdG9yeUNmZwkBAAAAFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAAAAAQUAAAALZmFjdG9yeURhcHAAAAAADGVtaXNzaW9uRGFwcAkBAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcAAAAAC3N0YWtpbmdEYXBwCQEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnAAAAAA1nd3hSZXdhcmREYXBwCQEAAAAZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcAAAAADGJvb3N0aW5nRGFwcAkBAAAAGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcBAAAAGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUAAAABAAAACWxwQXNzZXRJZAQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAAtmYWN0b3J5RGFwcAkBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQUAAAAJbHBBc3NldElkBAAAAA5wb29sV2VpZ2h0TXVsdAUAAAAFTVVMVDgEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAC2ZhY3RvcnlEYXBwCQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAMZW1pc3Npb25EYXBwCQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAQAAAAVd3hFbWlzc2lvblBlckJsb2NrTWF4CQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAMZW1pc3Npb25EYXBwCQEAAAAha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50AAAAAAQAAAANYm9vc3RNYXhDb2VmZgAAAAAAAAAAAwQAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkAAGkAAAACCQAAawAAAAMFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAKcG9vbFdlaWdodAUAAAAOcG9vbFdlaWdodE11bHQFAAAADWJvb3N0TWF4Q29lZmYEAAAAGXBvb2xXeEVtaXNzaW9uUGVyQmxvY2tNYXgJAABrAAAAAwUAAAAVd3hFbWlzc2lvblBlckJsb2NrTWF4BQAAAApwb29sV2VpZ2h0BQAAAA5wb29sV2VpZ2h0TXVsdAQAAAAJbWF4RmFjdG9yCQAAaAAAAAIFAAAADWJvb3N0TWF4Q29lZmYFAAAABU1VTFQ4BAAAAA10b3RhbExwU3Rha2VkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAALc3Rha2luZ0RhcHAJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAACWxwQXNzZXRJZAkABEwAAAACBQAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrCQAETAAAAAIFAAAACW1heEZhY3RvcgkABEwAAAACBQAAAA10b3RhbExwU3Rha2VkBQAAAANuaWwBAAAAGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAAAAAwAAAApsb2NrQW1vdW50AAAADGxvY2tEdXJhdGlvbgAAAA9tYXhMb2NrRHVyYXRpb24EAAAAB2NvZWZmWDgJAABrAAAAAwUAAAAMbG9ja0R1cmF0aW9uBQAAAAVNVUxUOAUAAAAPbWF4TG9ja0R1cmF0aW9uBAAAAA5nV3hBbW91bnRTdGFydAkAAGsAAAADBQAAAApsb2NrQW1vdW50BQAAAAdjb2VmZlg4BQAAAAVNVUxUOAkABEwAAAACBQAAAA5nV3hBbW91bnRTdGFydAUAAAADbmlsAAAACwAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAEAAAAOZmFjdG9yeUFkZHJlc3MDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAObm90IGF1dGhvcml6ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAUAAAAOZmFjdG9yeUFkZHJlc3MFAAAAA25pbAAAAAFpAQAAABljdXJyZW50UmV3YXJkUmF0ZVJFQURPTkxZAAAAAQAAAAlscEFzc2V0SWQEAAAACnJld2FyZERhdGEJAQAAABlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAAAAAQUAAAAJbHBBc3NldElkBAAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAAGRAAAAAgUAAAAKcmV3YXJkRGF0YQAAAAAAAAAAAAQAAAAJbWF4RmFjdG9yCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAEEAAAADXRvdGFsTHBTdGFrZWQJAAGRAAAAAgUAAAAKcmV3YXJkRGF0YQAAAAAAAAAAAgkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAAYlZCVkJWQJAARMAAAAAgkAAaQAAAABBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAARMAAAAAgkAAaQAAAABBQAAAAltYXhGYWN0b3IJAARMAAAAAgkAAaQAAAABBQAAAA10b3RhbExwU3Rha2VkBQAAAANuaWwFAAAAA1NFUAAAAAFpAQAAAB1jdXJyZW50VXNlclJld2FyZFJhdGVSRUFET05MWQAAAAIAAAAJbHBBc3NldElkAAAAC3VzZXJBZGRyZXNzBAAAAApyZXdhcmREYXRhCQEAAAAZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZQAAAAEFAAAACWxwQXNzZXRJZAQAAAASd3hFbWlzc2lvblBlckJsb2NrCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAAEAAAACW1heEZhY3RvcgkAAZEAAAACBQAAAApyZXdhcmREYXRhAAAAAAAAAAABBAAAAA10b3RhbExwU3Rha2VkCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAIEAAAADmxwU3Rha2VkQnlVc2VyCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAALc3Rha2luZ0RhcHAJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAJbHBBc3NldElkBAAAAA11c2VyQ2xhaW1JbmZvCQAEtQAAAAIJAQAAAAhhc1N0cmluZwAAAAEJAAP8AAAABAUAAAALc3Rha2luZ0RhcHACAAAAD2NsYWltV3hSRUFET05MWQkABEwAAAACBQAAAAlscEFzc2V0SWQJAARMAAAAAgUAAAALdXNlckFkZHJlc3MFAAAAA25pbAUAAAADbmlsBQAAAANTRVAEAAAADW1pblJld2FyZFBhcnQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABLYAAAABCQABkQAAAAIFAAAADXVzZXJDbGFpbUluZm8AAAAAAAAAAAUCAAAAHGNvdWxkbid0IHBhcnNlIG1pblJld2FyZFBhcnQEAAAAD2Jvb3N0UmV3YXJkUGFydAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEtgAAAAEJAAGRAAAAAgUAAAANdXNlckNsYWltSW5mbwAAAAAAAAAABgIAAAAeY291bGRuJ3QgcGFyc2UgYm9vc3RSZXdhcmRQYXJ0BAAAAAVkZWJ1ZwkAAZEAAAACBQAAAA11c2VyQ2xhaW1JbmZvAAAAAAAAAAAHBAAAAA1ib29zdGluZ1Bvd2VyAwkAAAAAAAACBQAAAA9ib29zdFJld2FyZFBhcnQAAAAAAAAAAAAJAABoAAAAAgAAAAAAAAAAAQUAAAAFTVVMVDgJAABrAAAAAwkAAGQAAAACBQAAAA1taW5SZXdhcmRQYXJ0BQAAAA9ib29zdFJld2FyZFBhcnQFAAAABU1VTFQ4BQAAAA1taW5SZXdhcmRQYXJ0CQAFFAAAAAIFAAAAA25pbAkABLkAAAACCQAETAAAAAICAAAADCVkJWQlZCVkJWQlcwkABEwAAAACCQABpAAAAAEFAAAAEnd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAACW1heEZhY3RvcgkABEwAAAACCQABpAAAAAEFAAAADXRvdGFsTHBTdGFrZWQJAARMAAAAAgkAAaQAAAABBQAAAA5scFN0YWtlZEJ5VXNlcgkABEwAAAACCQABpAAAAAEFAAAADWJvb3N0aW5nUG93ZXIJAARMAAAAAgUAAAAFZGVidWcFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAFWNsYWltZWRSZXdhcmRSRUFET05MWQAAAAEAAAALdXNlckFkZHJlc3MEAAAABmxwTGlzdAkBAAAACnJlYWRMcExpc3QAAAAABAAAAAZwcmVmaXgCAAAACiVzJWQlZCVkJXMKAQAAABtjbGFpbWVkUmV3YXJkQnlMcEFnZ3JlZ2F0b3IAAAACAAAACXJlc3VsdFN0cgAAAAZuZXh0THAEAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAQAAABlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAAAAAgUAAAAGbmV4dExwBQAAAAt1c2VyQWRkcmVzcwQAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQEAAAAba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAAAAAgUAAAAGbmV4dExwBQAAAAt1c2VyQWRkcmVzcwQAAAAQbWluUmV3YXJkQ2xhaW1lZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAtzdGFraW5nRGFwcAUAAAAZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWQAAAAAAAAAAAAQAAAASYm9vc3RSZXdhcmRDbGFpbWVkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAC3N0YWtpbmdEYXBwBQAAABtjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRLRVkAAAAAAAAAAAAEAAAAC2dGZWVDbGFpbWVkAAAAAAAAAAAACQAEuQAAAAIJAARMAAAAAgkAASwAAAACBQAAAAZwcmVmaXgFAAAACXJlc3VsdFN0cgkABEwAAAACBQAAAAZuZXh0THAJAARMAAAAAgkAAaQAAAABBQAAABBtaW5SZXdhcmRDbGFpbWVkCQAETAAAAAIJAAGkAAAAAQUAAAASYm9vc3RSZXdhcmRDbGFpbWVkCQAETAAAAAIJAAGkAAAAAQUAAAALZ0ZlZUNsYWltZWQJAARMAAAAAgIAAAADZW5kBQAAAANuaWwFAAAAA1NFUAQAAAAGcmVzdWx0CgAAAAACJGwFAAAABmxwTGlzdAoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzACAAAAAiVzCgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAbY2xhaW1lZFJld2FyZEJ5THBBZ2dyZWdhdG9yAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgkABRQAAAACBQAAAANuaWwJAAEsAAAAAgkAASwAAAACBQAAAAZyZXN1bHQFAAAAA1NFUAUAAAALdXNlckFkZHJlc3MAAAABaQEAAAARY2FsY0Jvb3N0UkVBRE9OTFkAAAAFAAAADWRlbHRhV3hBbW91bnQAAAAXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MAAAANZGVsdGFMcEFtb3VudAAAAAxscEFzc2V0SWRPcHQAAAAOdXNlckFkZHJlc3NPcHQEAAAACG1hdGhEYXBwBQAAAA1nd3hSZXdhcmREYXBwBAAAAAhFTVBUWVNUUgIAAAAFZW1wdHkEAAAAF21heExvY2tEdXJhdGlvbkluQmxvY2tzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgkABLUAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAMYm9vc3RpbmdEYXBwCQEAAAALa2V5Qm9vc3RDZmcAAAAABQAAAANTRVAAAAAAAAAAAAQEAAAADGxwQXNzZXRJZFN0cgMJAAAAAAAAAgUAAAAMbHBBc3NldElkT3B0AgAAAAAFAAAACEVNUFRZU1RSBQAAAAxscEFzc2V0SWRPcHQEAAAADnVzZXJBZGRyZXNzU3RyAwkAAAAAAAACBQAAAA51c2VyQWRkcmVzc09wdAIAAAAABQAAAAhFTVBUWVNUUgUAAAAOdXNlckFkZHJlc3NPcHQEAAAACnVzZXJOdW1TdHIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAMYm9vc3RpbmdEYXBwCQEAAAASa2V5VXNlcjJOdW1NYXBwaW5nAAAAAQUAAAAOdXNlckFkZHJlc3NPcHQFAAAACEVNUFRZU1RSBAAAAAp1c2VyQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAADGJvb3N0aW5nRGFwcAkBAAAAFmtleUxvY2tQYXJhbVVzZXJBbW91bnQAAAABBQAAAAp1c2VyTnVtU3RyAAAAAAAAAAAABAAAAAlsb2NrU3RhcnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAMYm9vc3RpbmdEYXBwCQEAAAAWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawAAAAEFAAAACnVzZXJOdW1TdHIFAAAABmhlaWdodAQAAAAMbG9ja0R1cmF0aW9uCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAADGJvb3N0aW5nRGFwcAkBAAAAFGtleUxvY2tQYXJhbUR1cmF0aW9uAAAAAQUAAAAKdXNlck51bVN0cgAAAAAAAAAAAAQAAAAHbG9ja0VuZAkAAGQAAAACBQAAAAlsb2NrU3RhcnQFAAAADGxvY2tEdXJhdGlvbgQAAAARcmVtYWluaW5nRHVyYXRpb24JAAGWAAAAAQkABEwAAAACCQAAZQAAAAIFAAAAB2xvY2tFbmQFAAAABmhlaWdodAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwEAAAADXVzZXJBbW91bnROZXcJAABkAAAAAgUAAAAKdXNlckFtb3VudAUAAAANZGVsdGFXeEFtb3VudAQAAAAPbG9ja0R1cmF0aW9uTmV3CQABlwAAAAEJAARMAAAAAgkAAGQAAAACBQAAABFyZW1haW5pbmdEdXJhdGlvbgUAAAAXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAARMAAAAAgUAAAAXbWF4TG9ja0R1cmF0aW9uSW5CbG9ja3MFAAAAA25pbAQAAAARdXNlckN1cnJnV3hBbW91bnQJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAMYm9vc3RpbmdEYXBwAgAAABNnd3hVc2VySW5mb1JFQURPTkxZCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAANuaWwFAAAAA25pbAAAAAAAAAAAAAQAAAARZ1d4QW1vdW50U3RhcnROZXcJAAGRAAAAAgkBAAAAGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAAAAAwUAAAANdXNlckFtb3VudE5ldwUAAAAPbG9ja0R1cmF0aW9uTmV3BQAAABdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcwAAAAAAAAAAAAQAAAATZ1d4UGFyYW1zUmVzdWx0TGlzdAkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAIbWF0aERhcHACAAAAFWNhbGNHd3hQYXJhbXNSRUFET05MWQkABEwAAAACBQAAABFnV3hBbW91bnRTdGFydE5ldwkABEwAAAACBQAAAAZoZWlnaHQJAARMAAAAAgUAAAAPbG9ja0R1cmF0aW9uTmV3BQAAAANuaWwFAAAAA25pbAQAAAANZ1d4QW1vdW50RGlmZgkAAGUAAAACBQAAABFnV3hBbW91bnRTdGFydE5ldwUAAAARdXNlckN1cnJnV3hBbW91bnQEAAAAAWsJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAATZ1d4UGFyYW1zUmVzdWx0TGlzdAAAAAAAAAAAAAQAAAABYgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAABNnV3hQYXJhbXNSZXN1bHRMaXN0AAAAAAAAAAABBAAAAAZwZXJpb2QJAAGkAAAAAQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAABNnV3hQYXJhbXNSZXN1bHRMaXN0AAAAAAAAAAACBAAAABh0b3RhbE1heEJvb3N0SW50ZWdyYWxLRVkJAQAAABhrZXlUb3RhbE1heEJvb3N0SU5URUdSQUwAAAAABAAAABF0b3RhbENhY2hlZEd3eEtFWQkBAAAAEWtleVRvdGFsQ2FjaGVkR3d4AAAAAAQAAAASdXNlck1heEJvb3N0SW50TmV3CQAAaQAAAAIJAABoAAAAAgUAAAARZ1d4QW1vdW50U3RhcnROZXcFAAAAD2xvY2tEdXJhdGlvbk5ldwAAAAAAAAAAAgQAAAAQdG90YWxNYXhCb29zdEludAkBAAAADGdldEludE9yWmVybwAAAAIFAAAADGJvb3N0aW5nRGFwcAUAAAAYdG90YWxNYXhCb29zdEludGVncmFsS0VZBAAAAA50b3RhbENhY2hlZEd3eAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAxib29zdGluZ0RhcHAFAAAAEXRvdGFsQ2FjaGVkR3d4S0VZAAAAAAAAAAAABAAAAAVNVUxUMwAAAAAAAAAD6AQAAAAUd3hFbWlzc2lvblBlckJsb2NrWDMJAABoAAAAAgkBAAAADGdldEludE9yRmFpbAAAAAIFAAAADGVtaXNzaW9uRGFwcAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAFAAAABU1VTFQzBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAgUAAAALc3Rha2luZ0RhcHAFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAgUAAAALc3Rha2luZ0RhcHAFAAAADnN0YWtlZFRvdGFsS0VZBAAAAA9zdGFrZWRCeVVzZXJOZXcJAABkAAAAAgUAAAAMc3Rha2VkQnlVc2VyBQAAAA1kZWx0YUxwQW1vdW50BAAAAA5zdGFrZWRUb3RhbE5ldwkAAGQAAAACBQAAAAtzdGFrZWRUb3RhbAUAAAANZGVsdGFMcEFtb3VudAQAAAAKcG9vbFdlaWdodAMJAQAAAAIhPQAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAIRU1QVFlTVFIEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAALZmFjdG9yeURhcHAJAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEFAAAADGxwQXNzZXRJZFN0cgkAASwAAAACAgAAABV1bnN1cHBvcnRlZCBscCBhc3NldCAFAAAADGxwQXNzZXRJZFN0cgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAALZmFjdG9yeURhcHAJAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEFAAAADnBvb2xBZGRyZXNzU3RyAAAAAAAAAAAABAAAABhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMJAABrAAAAAwUAAAAUd3hFbWlzc2lvblBlckJsb2NrWDMFAAAACnBvb2xXZWlnaHQJAABoAAAAAgUAAAAOUE9PTFdFSUdIVE1VTFQAAAAAAAAAAAMEAAAACXd4UGVyTHBYMwMJAQAAAAIhPQAAAAIFAAAADnN0YWtlZFRvdGFsTmV3AAAAAAAAAAAACQAAawAAAAMFAAAAGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMwUAAAAFTVVMVDgFAAAADnN0YWtlZFRvdGFsTmV3AAAAAAAAAAAABAAAABB1c2VyV3hQZXJCbG9ja1gzCQAAawAAAAMFAAAACXd4UGVyTHBYMwUAAAAPc3Rha2VkQnlVc2VyTmV3BQAAAAVNVUxUOAQAAAAXYm9vc3RFbWlzc2lvblBlckJsb2NrWDMJAABoAAAAAgUAAAAYcG9vbFd4RW1pc3Npb25QZXJCbG9ja1gzAAAAAAAAAAACBAAAABZ0bXBVc2VyQm9vc3RQZXJCbG9ja1gzCQAAawAAAAMFAAAAEWdXeEFtb3VudFN0YXJ0TmV3BQAAABdib29zdEVtaXNzaW9uUGVyQmxvY2tYMwkAAGQAAAACBQAAAA50b3RhbENhY2hlZEd3eAUAAAANZ1d4QW1vdW50RGlmZgQAAAATdXNlckJvb3N0UGVyQmxvY2tYMwkAAZcAAAABCQAETAAAAAIFAAAAFnRtcFVzZXJCb29zdFBlckJsb2NrWDMJAARMAAAAAgkAAGgAAAACBQAAABB1c2VyV3hQZXJCbG9ja1gzAAAAAAAAAAACBQAAAANuaWwEAAAACmJvb3N0Q29lZmYDCQAAAAAAAAIFAAAAEHVzZXJXeFBlckJsb2NrWDMAAAAAAAAAAAAJAABoAAAAAgAAAAAAAAAAAQUAAAAFTVVMVDgJAABrAAAAAwkAAGQAAAACBQAAABN1c2VyQm9vc3RQZXJCbG9ja1gzBQAAABB1c2VyV3hQZXJCbG9ja1gzBQAAAAVNVUxUOAUAAAAQdXNlcld4UGVyQmxvY2tYMwQAAAAFZGVidWcJAAS5AAAAAgkABEwAAAACCQABLAAAAAICAAAADWxwQXNzZXRJZFN0cj0FAAAADGxwQXNzZXRJZFN0cgkABEwAAAACCQABLAAAAAICAAAAD3VzZXJBZGRyZXNzU3RyPQUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgkAASwAAAACAgAAAAt1c2VyTnVtU3RyPQUAAAAKdXNlck51bVN0cgkABEwAAAACCQABLAAAAAICAAAAC3VzZXJBbW91bnQ9CQABpAAAAAEFAAAACnVzZXJBbW91bnQJAARMAAAAAgkAASwAAAACAgAAAA51c2VyQW1vdW50TmV3PQkAAaQAAAABBQAAAA11c2VyQW1vdW50TmV3CQAETAAAAAIJAAEsAAAAAgIAAAAQbG9ja0R1cmF0aW9uTmV3PQkAAaQAAAABBQAAAA9sb2NrRHVyYXRpb25OZXcJAARMAAAAAgkAASwAAAACAgAAAA9nV3hBbW91bnRTdGFydD0JAAGkAAAAAQUAAAARZ1d4QW1vdW50U3RhcnROZXcJAARMAAAAAgkAASwAAAACAgAAABd0bXBVc2VyQm9vc3RQZXJCbG9ja1gzPQkAAaQAAAABBQAAABZ0bXBVc2VyQm9vc3RQZXJCbG9ja1gzCQAETAAAAAIJAAEsAAAAAgIAAAAQc3Rha2VkQnlVc2VyTmV3PQkAAaQAAAABBQAAAA9zdGFrZWRCeVVzZXJOZXcJAARMAAAAAgkAASwAAAACAgAAAA9zdGFrZWRUb3RhbE5ldz0JAAGkAAAAAQUAAAAOc3Rha2VkVG90YWxOZXcJAARMAAAAAgkAASwAAAACAgAAAAtwb29sV2VpZ2h0PQkAAaQAAAABBQAAAApwb29sV2VpZ2h0CQAETAAAAAIJAAEsAAAAAgIAAAAKd3hQZXJMcFgzPQkAAaQAAAABBQAAAAl3eFBlckxwWDMJAARMAAAAAgkAASwAAAACAgAAABlwb29sV3hFbWlzc2lvblBlckJsb2NrWDM9CQABpAAAAAEFAAAAGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMwkABEwAAAACCQABLAAAAAICAAAAEXVzZXJXeFBlckJsb2NrWDM9CQABpAAAAAEFAAAAEHVzZXJXeFBlckJsb2NrWDMJAARMAAAAAgkAASwAAAACAgAAAA5nV3hBbW91bnREaWZmPQkAAaQAAAABBQAAAA1nV3hBbW91bnREaWZmCQAETAAAAAIJAAEsAAAAAgIAAAAPdG90YWxDYWNoZWRHd3g9CQABpAAAAAEFAAAADnRvdGFsQ2FjaGVkR3d4CQAETAAAAAIJAAEsAAAAAgIAAAASdXNlckN1cnJnV3hBbW91bnQ9CQABpAAAAAEFAAAAEXVzZXJDdXJyZ1d4QW1vdW50BQAAAANuaWwCAAAAAjo6CQAFFAAAAAIFAAAAA25pbAkABLkAAAACCQAETAAAAAICAAAABiVkJWQlcwkABEwAAAACCQABpAAAAAEFAAAAEWdXeEFtb3VudFN0YXJ0TmV3CQAETAAAAAIJAAGkAAAAAQUAAAAKYm9vc3RDb2VmZgkABEwAAAACBQAAAAVkZWJ1ZwUAAAADbmlsBQAAAANTRVAAAAABaQEAAAAXd3hFbWlzc2lvblN0YXRzUkVBRE9OTFkAAAAABAAAAAdPTkVNVUxUCQABpAAAAAEFAAAABU1VTFQ4BAAAAANPTkUCAAAAATEEAAAAEnd4RW1pc3Npb25QZXJCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAADGVtaXNzaW9uRGFwcAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAADGVtaXNzaW9uRGFwcAkBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAAEAAAADHBhc3NlZEJsb2NrcwMJAABmAAAAAgUAAAASZW1pc3Npb25TdGFydEJsb2NrBQAAAAZoZWlnaHQAAAAAAAAAAAAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABJlbWlzc2lvblN0YXJ0QmxvY2sEAAAADnRlYW1FbUR1cmF0aW9uCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAW0EAAAACXRlYW1FbU1heAkAAGgAAAACAAAAAAAL+wRABQAAAAVNVUxUOAQAAAAGdGVhbUVtAwkAAGYAAAACBQAAAAxwYXNzZWRCbG9ja3MFAAAADnRlYW1FbUR1cmF0aW9uBQAAAAl0ZWFtRW1NYXgJAABrAAAAAwUAAAAJdGVhbUVtTWF4BQAAAAxwYXNzZWRCbG9ja3MFAAAADnRlYW1FbUR1cmF0aW9uBAAAAA90b3RhbFd4UmVsZWFzZWQJAABkAAAAAgkAAGgAAAACBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sFAAAADHBhc3NlZEJsb2NrcwUAAAAGdGVhbUVtBAAAAA10b3RhbFd4TG9ja2VkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAMYm9vc3RpbmdEYXBwCQEAAAAfa2V5Qm9vc3RpbmdMb2NrUGFyYW1Ub3RhbEFtb3VudAAAAAAEAAAAGGxvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwkBAAAADGdldEludE9yWmVybwAAAAIFAAAADGJvb3N0aW5nRGFwcAkBAAAAKGtleUJvb3N0aW5nU3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MAAAAABAAAAApsb2Nr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", "chainId": 84, "height": 1837045, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6xLAqyPd79dCCuRwDkENhSLPJTFUxUAN54Eo1QEe2GWe Next: 6Z5wHDjCVNAxK8Vt1D83warf5GpCoSznW7wiqQCxuvMN Diff:
OldNewDifferences
1111
1212 let e = "__"
1313
14-let f = toBigInt(0)
14+let f = b
1515
16-let g = 1
16+let g = toBigInt(0)
1717
18-let h = 2
18+let h = 1
1919
20-let i = 3
20+let i = 2
2121
22-let j = 4
22+let j = 3
2323
24-let k = 5
24+let k = 4
2525
26-let l = 6
26+let l = 5
2727
28-let m = 7
28+let m = 6
2929
30-let n = 8
30+let n = 7
3131
32-let o = 9
32+let o = 8
3333
34-let p = 10
34+let p = 9
3535
36-func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
36+let q = 10
37+
38+func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3739
3840
39-func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
41+func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4042
4143
42-func u (t,r) = valueOrElse(getInteger(t, r), 0)
44+func v (u,s) = valueOrElse(getInteger(u, s), 0)
4345
4446
45-func v (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
47+func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4648
4749
48-func w () = "%s%s__config__factoryAddress"
49-
50-
51-func x (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], e)
52-
53-
54-func z () = "%s__lpTokensList"
55-
56-
57-func A () = "%s__factoryConfig"
58-
59-
60-func B () = addressFromStringValue(q(w()))
61-
62-
63-func C () = split(valueOrElse(getString(B(), z()), ""), e)
64-
65-
66-func D () = split(s(B(), A()), e)
67-
68-
69-func E (F,G) = makeString(["%s%s%s__staked", F, G], e)
70-
71-
72-func H (G) = ("%s%s%s__staked__total__" + G)
73-
74-
75-func I (J) = makeString(["%s%s", "poolWeight", J], e)
76-
77-
78-func K (L) = addressFromStringValue(L[1])
79-
80-
81-func M (N,O) = {
82- let P = 0
83- let Q = (1 * b)
84- let R = u(N, H(O))
85-[P, Q, R]
50+func x (y) = {
51+ let z = y
52+ if ($isInstanceOf(z, "List[Any]"))
53+ then {
54+ let A = z
55+ A
56+ }
57+ else throw("fail to cast into List[Any]")
8658 }
8759
8860
89-@Callable(S)
90-func constructor (T) = if ((S.caller != this))
61+func B (y) = {
62+ let z = y
63+ if ($isInstanceOf(z, "Int"))
64+ then {
65+ let C = z
66+ C
67+ }
68+ else throw("fail to cast into Int")
69+ }
70+
71+
72+func D (y) = {
73+ let z = y
74+ if ($isInstanceOf(z, "String"))
75+ then {
76+ let E = z
77+ E
78+ }
79+ else throw("fail to cast into String")
80+ }
81+
82+
83+func F () = "%s%s__config__factoryAddress"
84+
85+
86+let G = 1
87+
88+let H = 2
89+
90+let I = 3
91+
92+let J = 4
93+
94+let K = 5
95+
96+let L = 6
97+
98+let M = 7
99+
100+let N = 8
101+
102+func O () = "%s__factoryConfig"
103+
104+
105+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
106+
107+
108+func R () = "%s__lpTokensList"
109+
110+
111+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
112+
113+
114+func T (U) = makeString(["%s%s", "poolWeight", U], e)
115+
116+
117+func V () = addressFromStringValue(r(F()))
118+
119+
120+func W () = split(valueOrElse(getString(V(), R()), ""), e)
121+
122+
123+func X (Y) = split(t(Y, O()), e)
124+
125+
126+func Z (aa) = addressFromStringValue(aa[H])
127+
128+
129+func ab (aa) = addressFromStringValue(aa[K])
130+
131+
132+func ac (aa) = addressFromStringValue(aa[G])
133+
134+
135+func ad (aa) = addressFromStringValue(aa[N])
136+
137+
138+func ae () = "%s__config"
139+
140+
141+func af () = "%s%s__stats__activeTotalLocked"
142+
143+
144+func ag () = "%s%s__stats__locksDurationSumInBlocks"
145+
146+
147+func ah () = "%s%s__stats__locksCount"
148+
149+
150+func ai () = "%s%s__stats__activeUsersCount"
151+
152+
153+func aj (ak) = makeString(["%s%s%s__mapping__user2num", ak], e)
154+
155+
156+func al (am) = makeString(["%s%s%s__mapping__num2user", am], e)
157+
158+
159+func an (ao) = makeString(["%s%d%s__paramByUserNum", ao, "amount"], e)
160+
161+
162+func ap (ao) = makeString(["%s%d%s__paramByUserNum", ao, "start"], e)
163+
164+
165+func aq (ao) = makeString(["%s%d%s__paramByUserNum", ao, "duration"], e)
166+
167+
168+func ar (ao) = makeString(["%s%d%s__paramByUserNum", ao, "k"], e)
169+
170+
171+func as (ao) = makeString(["%s%d%s__paramByUserNum", ao, "b"], e)
172+
173+
174+func at (ao,au) = makeString(["%s%d%s%d__paramByPeriod", ao, "k", au], e)
175+
176+
177+func av (ao,au) = makeString(["%s%d%s%d__paramByPeriod", ao, "b", au], e)
178+
179+
180+func aw (ao) = makeString(["%s%d__userBoostEmissionLastInt", ao], e)
181+
182+
183+func ax (ao) = makeString(["%s%d__maxBoostInt", ao], e)
184+
185+
186+func ay () = "%s%s__maxBoostInt__total"
187+
188+
189+func az (ao) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ao], e)
190+
191+
192+func aA (ao) = makeString(["%s%d__userBoostClaimed", ao], e)
193+
194+
195+func aB () = "%s%s__gwxCached__total"
196+
197+
198+func aC (aD,aE) = makeString(["%s%s%s__staked", aD, aE], e)
199+
200+
201+func aF (aE) = ("%s%s%s__staked__total__" + aE)
202+
203+
204+func aG (aE,aD) = makeString(["%s%s%s__claimed", aD, aE], e)
205+
206+
207+func aH (aE,aD) = makeString(["%s%s%s__claimedMinReward", aD, aE], e)
208+
209+
210+func aI (aE,aD) = makeString(["%s%s%s__claimedBoostReward", aD, aE], e)
211+
212+
213+func aJ (aK,s) = valueOrElse(getInteger(aK, s), 0)
214+
215+
216+func aL () = "%s%s__ratePerBlock__current"
217+
218+
219+func aM () = "%s%s__ratePerBlockMax__current"
220+
221+
222+func aN () = "%s%s__emission__startBlock"
223+
224+
225+func aO () = "%s%s__emission__duration"
226+
227+
228+func aP () = "%s%s__emission__endBlock"
229+
230+
231+let aQ = V()
232+
233+let aR = X(aQ)
234+
235+let aS = ab(aR)
236+
237+let aK = ac(aR)
238+
239+let aT = ad(aR)
240+
241+let aU = Z(aR)
242+
243+func aV (aW) = {
244+ let aX = t(aQ, S(aW))
245+ let aY = b
246+ let aZ = getIntegerValue(aQ, T(aX))
247+ let ba = w(aS, aL())
248+ let bb = w(aS, aM())
249+ let bc = 3
250+ let bd = (fraction(ba, aZ, aY) / bc)
251+ let be = fraction(bb, aZ, aY)
252+ let bf = (bc * b)
253+ let bg = v(aK, aF(aW))
254+[bd, bf, bg]
255+ }
256+
257+
258+func bh (bi,bj,bk) = {
259+ let bl = fraction(bj, b, bk)
260+ let bm = fraction(bi, bl, b)
261+[bm]
262+ }
263+
264+
265+@Callable(bn)
266+func constructor (bo) = if ((bn.caller != this))
91267 then throw("not authorized")
92- else [StringEntry(w(), T)]
268+ else [StringEntry(F(), bo)]
93269
94270
95271
96-@Callable(S)
97-func currentRewardRateREADONLY (O) = {
98- let U = D()
99- let N = K(U)
100- let V = M(N, O)
101- let P = V[0]
102- let Q = V[1]
103- let R = V[2]
104- $Tuple2(nil, makeString(["%d%d%d", toString(P), toString(Q), toString(R)], e))
272+@Callable(bn)
273+func currentRewardRateREADONLY (aW) = {
274+ let bp = aV(aW)
275+ let ba = bp[0]
276+ let bf = bp[1]
277+ let bg = bp[2]
278+ $Tuple2(nil, makeString(["%d%d%d", toString(ba), toString(bf), toString(bg)], e))
105279 }
106280
107281
108282
109-@Callable(S)
110-func currentUserRewardRateREADONLY (O,W) = {
111- let U = D()
112- let N = K(U)
113- let V = M(N, O)
114- let P = V[0]
115- let Q = V[1]
116- let R = V[2]
117- let X = u(N, E(W, O))
118- let Y = (1 * b)
119- $Tuple2(nil, makeString(["%d%d%d", toString(P), toString(Q), toString(R), toString(X), toString(Y)], e))
283+@Callable(bn)
284+func currentUserRewardRateREADONLY (aW,ak) = {
285+ let bp = aV(aW)
286+ let ba = bp[0]
287+ let bf = bp[1]
288+ let bg = bp[2]
289+ let bq = v(aK, aC(ak, aW))
290+ let br = split(D(invoke(aK, "claimWxREADONLY", [aW, ak], nil)), e)
291+ let bs = valueOrErrorMessage(parseInt(br[5]), "couldn't parse minRewardPart")
292+ let bt = valueOrErrorMessage(parseInt(br[6]), "couldn't parse boostRewardPart")
293+ let bu = br[7]
294+ let bv = if ((bt == 0))
295+ then (1 * b)
296+ else fraction((bs + bt), b, bs)
297+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(ba), toString(bf), toString(bg), toString(bq), toString(bv), bu], e))
120298 }
121299
122300
123301
124-@Callable(S)
125-func claimedRewardREADONLY (W) = {
126- let Z = C()
127- let aa = "%s%d%d%d%s"
128- func ab (ac,ad) = {
129- let ae = ((toInt(fromBase58String(ad)) % 100000) + (toInt(toBytes(W)) % 100000))
130- let af = if ((0 > ae))
131- then -(ae)
132- else ae
133- let ag = (((af % 100) * b) + (af * (b / 100000)))
134- let ah = 0
135- let ai = 0
136- let aj = 0
137- makeString([(aa + ac), ad, toString(ah), toString(ai), toString(aj), "end"], e)
302+@Callable(bn)
303+func claimedRewardREADONLY (ak) = {
304+ let bw = W()
305+ let bx = "%s%d%d%d%s"
306+ func by (bz,bA) = {
307+ let bB = aH(bA, ak)
308+ let bC = aI(bA, ak)
309+ let bD = valueOrElse(getInteger(aK, bB), 0)
310+ let bE = valueOrElse(getInteger(aK, bC), 0)
311+ let bF = 0
312+ makeString([(bx + bz), bA, toString(bD), toString(bE), toString(bF), "end"], e)
138313 }
139314
140- let ak = {
141- let al = Z
142- let am = size(al)
143- let an = "%s"
144- func ao (ap,aq) = if ((aq >= am))
145- then ap
146- else ab(ap, al[aq])
315+ let bG = {
316+ let bH = bw
317+ let bI = size(bH)
318+ let bJ = "%s"
319+ func bK (bL,bM) = if ((bM >= bI))
320+ then bL
321+ else by(bL, bH[bM])
147322
148- func ar (ap,aq) = if ((aq >= am))
149- then ap
323+ func bN (bL,bM) = if ((bM >= bI))
324+ then bL
150325 else throw("List size exceeds 10")
151326
152- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
327+ bN(bK(bK(bK(bK(bK(bK(bK(bK(bK(bK(bJ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
153328 }
154- $Tuple2(nil, ((ak + e) + W))
329+ $Tuple2(nil, ((bG + e) + ak))
155330 }
156331
157332
158333
159-@Callable(S)
160-func calcBoostREADONLY (as,at,au,av,aw) = {
161- let ax = if ((aw != ""))
162- then (3 * b)
163- else (1 * b)
164- let ay = fraction(toBigInt(at), d, toBigInt((30 * 1440)))
165- let az = (pow(ay, c, toBigInt(2), 0, c, HALFUP) / toBigInt(100))
166- let aA = fraction(toBigInt(as), az, d)
167- $Tuple2(nil, makeString(["%d%d", toString(toInt(aA)), toString(ax)], e))
334+@Callable(bn)
335+func calcBoostREADONLY (bO,bP,bQ,bR,bS) = {
336+ let bT = aT
337+ let bU = "empty"
338+ let bV = parseIntValue(split(t(aU, ae()), e)[4])
339+ let aE = if ((bR == ""))
340+ then bU
341+ else bR
342+ let aD = if ((bS == ""))
343+ then bU
344+ else bS
345+ let bW = valueOrElse(getString(aU, aj(bS)), bU)
346+ let bX = valueOrElse(getInteger(aU, an(bW)), 0)
347+ let bY = valueOrElse(getInteger(aU, ap(bW)), height)
348+ let bj = valueOrElse(getInteger(aU, aq(bW)), 0)
349+ let bZ = (bY + bj)
350+ let ca = max([(bZ - height), 0])
351+ let cb = (bX + bO)
352+ let cc = min([(ca + bP), bV])
353+ let cd = B(x(invoke(aU, "gwxUserInfoREADONLY", [aD], nil))[0])
354+ let ce = bh(cb, cc, bV)[0]
355+ let cf = x(invoke(bT, "calcGwxParamsREADONLY", [ce, height, cc], nil))
356+ let cg = (ce - cd)
357+ let ch = B(cf[0])
358+ let ci = B(cf[1])
359+ let au = toString(B(cf[2]))
360+ let cj = ay()
361+ let ck = aB()
362+ let cl = ((ce * cc) / 2)
363+ let cm = v(aU, cj)
364+ let cn = valueOrElse(getInteger(aU, ck), 0)
365+ let co = 1000
366+ let cp = (w(aS, aL()) * co)
367+ let cq = aC(aD, aE)
368+ let cr = aF(aE)
369+ let cs = aJ(aK, cq)
370+ let ct = aJ(aK, cr)
371+ let cu = (cs + bQ)
372+ let cv = (ct + bQ)
373+ let aZ = if ((aE != bU))
374+ then {
375+ let aX = valueOrErrorMessage(getString(aQ, P(aE)), ("unsupported lp asset " + aE))
376+ getIntegerValue(aQ, T(aX))
377+ }
378+ else 0
379+ let cw = fraction(cp, aZ, (f * 3))
380+ let cx = if ((cv != 0))
381+ then fraction(cw, b, cv)
382+ else 0
383+ let cy = fraction(cx, cu, b)
384+ let cz = (cw * 2)
385+ let cA = fraction(ce, cz, (cn + cg))
386+ let cB = min([cA, (cy * 2)])
387+ let cC = if ((cy == 0))
388+ then (1 * b)
389+ else fraction((cB + cy), b, cy)
390+ let bu = makeString([("lpAssetIdStr=" + aE), ("userAddressStr=" + aD), ("userNumStr=" + bW), ("userAmount=" + toString(bX)), ("userAmountNew=" + toString(cb)), ("lockDurationNew=" + toString(cc)), ("gWxAmountStart=" + toString(ce)), ("tmpUserBoostPerBlockX3=" + toString(cA)), ("stakedByUserNew=" + toString(cu)), ("stakedTotalNew=" + toString(cv)), ("poolWeight=" + toString(aZ)), ("wxPerLpX3=" + toString(cx)), ("poolWxEmissionPerBlockX3=" + toString(cw)), ("userWxPerBlockX3=" + toString(cy)), ("gWxAmountDiff=" + toString(cg)), ("totalCachedGwx=" + toString(cn)), ("userCurrgWxAmount=" + toString(cd))], "::")
391+ $Tuple2(nil, makeString(["%d%d%s", toString(ce), toString(cC), bu], e))
168392 }
169393
170394
171395
172-@Callable(S)
396+@Callable(bn)
173397 func wxEmissionStatsREADONLY () = {
174- let aB = toString(b)
175- let aC = "1"
176- let aD = 0
177- let aE = 0
178- let aF = 0
179- let aG = 0
180- $Tuple2(nil, makeString(["%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG)], e))
398+ let cD = toString(b)
399+ let cE = "1"
400+ let ba = w(aS, aL())
401+ let cF = w(aS, aN())
402+ let cG = if ((cF > height))
403+ then 0
404+ else (height - cF)
405+ let cH = (1440 * 365)
406+ let cI = (201000000 * b)
407+ let cJ = if ((cG > cH))
408+ then cI
409+ else fraction(cI, cG, cH)
410+ let cK = ((ba * cG) + cJ)
411+ let cL = v(aU, af())
412+ let cM = v(aU, ag())
413+ let cN = v(aU, ah())
414+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
181415 }
182416
183417
184418
185-@Callable(S)
186-func poolStatsREADONLY (aH) = {
187- let T = B()
188- let aI = addressFromStringValue(s(T, x(aH)))
189- let aJ = {
190- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
191- if ($isInstanceOf(aK, "List[Any]"))
192- then aK
419+@Callable(bn)
420+func poolStatsREADONLY (cO) = {
421+ let cP = addressFromStringValue(t(aQ, S(cO)))
422+ let cQ = {
423+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
424+ if ($isInstanceOf(cR, "List[Any]"))
425+ then cR
193426 else throw("Couldn't cast Any to List[Any]")
194427 }
195- let O = fromBase58String({
196- let aK = aJ[i]
197- if ($isInstanceOf(aK, "String"))
198- then aK
428+ let aW = fromBase58String({
429+ let cR = cQ[j]
430+ if ($isInstanceOf(cR, "String"))
431+ then cR
199432 else throw("Couldn't cast Any to String")
200433 })
201- let aL = {
202- let aK = aJ[j]
203- if ($isInstanceOf(aK, "String"))
204- then aK
434+ let cS = {
435+ let cR = cQ[k]
436+ if ($isInstanceOf(cR, "String"))
437+ then cR
205438 else throw("Couldn't cast Any to String")
206439 }
207- let aM = {
208- let aK = aJ[k]
209- if ($isInstanceOf(aK, "String"))
210- then aK
440+ let cT = {
441+ let cR = cQ[l]
442+ if ($isInstanceOf(cR, "String"))
443+ then cR
211444 else throw("Couldn't cast Any to String")
212445 }
213- let aN = {
214- let aK = aJ[n]
215- if ($isInstanceOf(aK, "String"))
216- then aK
446+ let cU = {
447+ let cR = cQ[o]
448+ if ($isInstanceOf(cR, "String"))
449+ then cR
217450 else throw("Couldn't cast Any to String")
218451 }
219- let aO = {
220- let aK = aJ[o]
221- if ($isInstanceOf(aK, "String"))
222- then aK
452+ let cV = {
453+ let cR = cQ[p]
454+ if ($isInstanceOf(cR, "String"))
455+ then cR
223456 else throw("Couldn't cast Any to String")
224457 }
225- let aP = parseIntValue({
226- let aK = aJ[l]
227- if ($isInstanceOf(aK, "String"))
228- then aK
458+ let cW = parseIntValue({
459+ let cR = cQ[m]
460+ if ($isInstanceOf(cR, "String"))
461+ then cR
229462 else throw("Couldn't cast Any to String")
230463 })
231- let aQ = parseIntValue({
232- let aK = aJ[m]
233- if ($isInstanceOf(aK, "String"))
234- then aK
464+ let cX = parseIntValue({
465+ let cR = cQ[n]
466+ if ($isInstanceOf(cR, "String"))
467+ then cR
235468 else throw("Couldn't cast Any to String")
236469 })
237- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
238- let aS = {
239- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [aL], nil)
240- if ($isInstanceOf(aK, "Int"))
241- then aK
470+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
471+ let cZ = {
472+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [cS], nil)
473+ if ($isInstanceOf(cR, "Int"))
474+ then cR
242475 else throw("Couldn't cast Any to Int")
243476 }
244- let aT = {
245- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [aM], nil)
246- if ($isInstanceOf(aK, "Int"))
247- then aK
477+ let da = {
478+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [cT], nil)
479+ if ($isInstanceOf(cR, "Int"))
480+ then cR
248481 else throw("Couldn't cast Any to Int")
249482 }
250- let aU = {
251- let aK = invoke(aI, "calcPricesWrapperREADONLY", [aS, aT, aR], nil)
252- if ($isInstanceOf(aK, "List[Any]"))
253- then aK
483+ let db = {
484+ let cR = invoke(cP, "calcPricesWrapperREADONLY", [cZ, da, cY], nil)
485+ if ($isInstanceOf(cR, "List[Any]"))
486+ then cR
254487 else throw("Couldn't cast Any to List[Any]")
255488 }
256- let aV = 0
257- let aW = {
258- let aK = invoke(aI, "fromX18WrapperREADONLY", [aU[1], b], nil)
259- if ($isInstanceOf(aK, "Int"))
260- then aK
489+ let dc = 0
490+ let dd = {
491+ let cR = invoke(cP, "fromX18WrapperREADONLY", [db[1], b], nil)
492+ if ($isInstanceOf(cR, "Int"))
493+ then cR
261494 else throw("Couldn't cast Any to Int")
262495 }
263- let aX = {
264- let aK = invoke(aI, "fromX18WrapperREADONLY", [aU[2], b], nil)
265- if ($isInstanceOf(aK, "Int"))
266- then aK
496+ let de = {
497+ let cR = invoke(cP, "fromX18WrapperREADONLY", [db[2], b], nil)
498+ if ($isInstanceOf(cR, "Int"))
499+ then cR
267500 else throw("Couldn't cast Any to Int")
268501 }
269- let aY = getIntegerValue(B(), I(toString(aI)))
270- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aR), toString(aV), toString(aW), toString(aX), toString(aY)], e))
502+ let aZ = getIntegerValue(aQ, T(toString(cP)))
503+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(aZ)], e))
271504 }
272505
273506
274507
275-@Callable(S)
276-func poolEvaluatePutByAmountAssetREADONLY (aH,aZ) = {
277- let T = B()
278- let aI = addressFromStringValue(s(T, x(aH)))
279- let aJ = {
280- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
281- if ($isInstanceOf(aK, "List[Any]"))
282- then aK
508+@Callable(bn)
509+func poolEvaluatePutByAmountAssetREADONLY (cO,df) = {
510+ let cP = addressFromStringValue(t(aQ, S(cO)))
511+ let cQ = {
512+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
513+ if ($isInstanceOf(cR, "List[Any]"))
514+ then cR
283515 else throw("Couldn't cast Any to List[Any]")
284516 }
285- let O = fromBase58String({
286- let aK = aJ[i]
287- if ($isInstanceOf(aK, "String"))
288- then aK
517+ let aW = fromBase58String({
518+ let cR = cQ[j]
519+ if ($isInstanceOf(cR, "String"))
520+ then cR
289521 else throw("Couldn't cast Any to String")
290522 })
291- let ba = {
292- let aK = aJ[j]
293- if ($isInstanceOf(aK, "String"))
294- then aK
523+ let dg = {
524+ let cR = cQ[k]
525+ if ($isInstanceOf(cR, "String"))
526+ then cR
295527 else throw("Couldn't cast Any to String")
296528 }
297- let bb = fromBase58String(ba)
298- let bc = {
299- let aK = aJ[k]
300- if ($isInstanceOf(aK, "String"))
301- then aK
529+ let dh = fromBase58String(dg)
530+ let di = {
531+ let cR = cQ[l]
532+ if ($isInstanceOf(cR, "String"))
533+ then cR
302534 else throw("Couldn't cast Any to String")
303535 }
304- let bd = fromBase58String(bc)
305- let aP = parseIntValue({
306- let aK = aJ[l]
307- if ($isInstanceOf(aK, "String"))
308- then aK
536+ let dj = fromBase58String(di)
537+ let cW = parseIntValue({
538+ let cR = cQ[m]
539+ if ($isInstanceOf(cR, "String"))
540+ then cR
309541 else throw("Couldn't cast Any to String")
310542 })
311- let aQ = parseIntValue({
312- let aK = aJ[m]
313- if ($isInstanceOf(aK, "String"))
314- then aK
543+ let cX = parseIntValue({
544+ let cR = cQ[n]
545+ if ($isInstanceOf(cR, "String"))
546+ then cR
315547 else throw("Couldn't cast Any to String")
316548 })
317- let be = {
318- let aK = aJ[h]
319- if ($isInstanceOf(aK, "String"))
320- then aK
549+ let dk = {
550+ let cR = cQ[i]
551+ if ($isInstanceOf(cR, "String"))
552+ then cR
321553 else throw("Couldn't cast Any to String")
322554 }
323- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
324- let aS = {
325- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [ba], nil)
326- if ($isInstanceOf(aK, "Int"))
327- then aK
555+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
556+ let cZ = {
557+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [dg], nil)
558+ if ($isInstanceOf(cR, "Int"))
559+ then cR
328560 else throw("Couldn't cast Any to Int")
329561 }
330- let aT = {
331- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [bc], nil)
332- if ($isInstanceOf(aK, "Int"))
333- then aK
562+ let da = {
563+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [di], nil)
564+ if ($isInstanceOf(cR, "Int"))
565+ then cR
334566 else throw("Couldn't cast Any to Int")
335567 }
336- let bf = parseBigIntValue({
337- let aK = invoke(aI, "toX18WrapperREADONLY", [aS, aP], nil)
338- if ($isInstanceOf(aK, "String"))
339- then aK
568+ let dl = parseBigIntValue({
569+ let cR = invoke(cP, "toX18WrapperREADONLY", [cZ, cW], nil)
570+ if ($isInstanceOf(cR, "String"))
571+ then cR
340572 else throw("Couldn't cast Any to String")
341573 })
342- let bg = parseBigIntValue({
343- let aK = invoke(aI, "toX18WrapperREADONLY", [aT, aQ], nil)
344- if ($isInstanceOf(aK, "String"))
345- then aK
574+ let dm = parseBigIntValue({
575+ let cR = invoke(cP, "toX18WrapperREADONLY", [da, cX], nil)
576+ if ($isInstanceOf(cR, "String"))
577+ then cR
346578 else throw("Couldn't cast Any to String")
347579 })
348- let bh = if ((aR == 0))
349- then f
580+ let dn = if ((cY == 0))
581+ then g
350582 else parseBigIntValue({
351- let aK = invoke(aI, "calcPriceBigIntWrapperREADONLY", [toString(bg), toString(bf)], nil)
352- if ($isInstanceOf(aK, "String"))
353- then aK
583+ let cR = invoke(cP, "calcPriceBigIntWrapperREADONLY", [toString(dm), toString(dl)], nil)
584+ if ($isInstanceOf(cR, "String"))
585+ then cR
354586 else throw("Couldn't cast Any to String")
355587 })
356- let aV = {
357- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bh), b], nil)
358- if ($isInstanceOf(aK, "Int"))
359- then aK
588+ let dc = {
589+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dn), b], nil)
590+ if ($isInstanceOf(cR, "Int"))
591+ then cR
360592 else throw("Couldn't cast Any to Int")
361593 }
362- let bi = parseBigIntValue({
363- let aK = invoke(aI, "toX18WrapperREADONLY", [aZ, aP], nil)
364- if ($isInstanceOf(aK, "String"))
365- then aK
594+ let do = parseBigIntValue({
595+ let cR = invoke(cP, "toX18WrapperREADONLY", [df, cW], nil)
596+ if ($isInstanceOf(cR, "String"))
597+ then cR
366598 else throw("Couldn't cast Any to String")
367599 })
368- let bj = fraction(bi, bh, d)
369- let bk = {
370- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bj), aQ], nil)
371- if ($isInstanceOf(aK, "Int"))
372- then aK
600+ let dp = fraction(do, dn, d)
601+ let dq = {
602+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dp), cX], nil)
603+ if ($isInstanceOf(cR, "Int"))
604+ then cR
373605 else throw("Couldn't cast Any to Int")
374606 }
375- let bl = invoke(aI, "estimatePutOperationWrapperREADONLY", ["", 500000, aZ, bb, bk, bd, "", true, false], nil)
376- let bm = {
377- let bn = bl
378- if (if ($isInstanceOf(bn._1, "Int"))
379- then if ($isInstanceOf(bn._3, "Int"))
380- then if ($isInstanceOf(bn._4, "Int"))
381- then if ($isInstanceOf(bn._5, "Int"))
382- then $isInstanceOf(bn._6, "Int")
607+ let dr = invoke(cP, "estimatePutOperationWrapperREADONLY", ["", 500000, df, dh, dq, dj, "", true, false], nil)
608+ let ds = {
609+ let z = dr
610+ if (if ($isInstanceOf(z._1, "Int"))
611+ then if ($isInstanceOf(z._3, "Int"))
612+ then if ($isInstanceOf(z._4, "Int"))
613+ then if ($isInstanceOf(z._5, "Int"))
614+ then $isInstanceOf(z._6, "Int")
383615 else false
384616 else false
385617 else false
386618 else false)
387619 then {
388- let bo = bn._1
389- let bp = bn._3
390- let bq = bn._4
391- let br = bn._5
392- let bs = bn._6
393- $Tuple5(bo, bp, bq, br, bs)
620+ let dt = z._1
621+ let du = z._3
622+ let dv = z._4
623+ let dw = z._5
624+ let dx = z._6
625+ $Tuple5(dt, du, dv, dw, dx)
394626 }
395627 else throw("Couldn't cast types")
396628 }
397- let bo = bm._1
398- let bp = bm._2
399- let bq = bm._3
400- let br = bm._4
401- let bs = bm._5
402- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(bo), toString(aV), toString(bq), toString(br), toString(bs), be, toString(aZ), toString(bk)], e))
629+ let dt = ds._1
630+ let du = ds._2
631+ let dv = ds._3
632+ let dw = ds._4
633+ let dx = ds._5
634+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(dc), toString(dv), toString(dw), toString(dx), dk, toString(df), toString(dq)], e))
403635 }
404636
405637
406638
407-@Callable(S)
408-func poolEvaluatePutByPriceAssetREADONLY (aH,bk) = {
409- let T = B()
410- let aI = addressFromStringValue(s(T, x(aH)))
411- let aJ = {
412- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
413- if ($isInstanceOf(aK, "List[Any]"))
414- then aK
639+@Callable(bn)
640+func poolEvaluatePutByPriceAssetREADONLY (cO,dq) = {
641+ let cP = addressFromStringValue(t(aQ, S(cO)))
642+ let cQ = {
643+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
644+ if ($isInstanceOf(cR, "List[Any]"))
645+ then cR
415646 else throw("Couldn't cast Any to List[Any]")
416647 }
417- let O = fromBase58String({
418- let aK = aJ[i]
419- if ($isInstanceOf(aK, "String"))
420- then aK
648+ let aW = fromBase58String({
649+ let cR = cQ[j]
650+ if ($isInstanceOf(cR, "String"))
651+ then cR
421652 else throw("Couldn't cast Any to String")
422653 })
423- let ba = {
424- let aK = aJ[j]
425- if ($isInstanceOf(aK, "String"))
426- then aK
654+ let dg = {
655+ let cR = cQ[k]
656+ if ($isInstanceOf(cR, "String"))
657+ then cR
427658 else throw("Couldn't cast Any to String")
428659 }
429- let bb = fromBase58String(ba)
430- let bc = {
431- let aK = aJ[k]
432- if ($isInstanceOf(aK, "String"))
433- then aK
660+ let dh = fromBase58String(dg)
661+ let di = {
662+ let cR = cQ[l]
663+ if ($isInstanceOf(cR, "String"))
664+ then cR
434665 else throw("Couldn't cast Any to String")
435666 }
436- let bd = fromBase58String(bc)
437- let aP = parseIntValue({
438- let aK = aJ[l]
439- if ($isInstanceOf(aK, "String"))
440- then aK
667+ let dj = fromBase58String(di)
668+ let cW = parseIntValue({
669+ let cR = cQ[m]
670+ if ($isInstanceOf(cR, "String"))
671+ then cR
441672 else throw("Couldn't cast Any to String")
442673 })
443- let aQ = parseIntValue({
444- let aK = aJ[m]
445- if ($isInstanceOf(aK, "String"))
446- then aK
674+ let cX = parseIntValue({
675+ let cR = cQ[n]
676+ if ($isInstanceOf(cR, "String"))
677+ then cR
447678 else throw("Couldn't cast Any to String")
448679 })
449- let be = {
450- let aK = aJ[h]
451- if ($isInstanceOf(aK, "String"))
452- then aK
680+ let dk = {
681+ let cR = cQ[i]
682+ if ($isInstanceOf(cR, "String"))
683+ then cR
453684 else throw("Couldn't cast Any to String")
454685 }
455- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
456- let bt = {
457- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [ba], nil)
458- if ($isInstanceOf(aK, "Int"))
459- then aK
686+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
687+ let dy = {
688+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [dg], nil)
689+ if ($isInstanceOf(cR, "Int"))
690+ then cR
460691 else throw("Couldn't cast Any to Int")
461692 }
462- let bu = {
463- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [bc], nil)
464- if ($isInstanceOf(aK, "Int"))
465- then aK
693+ let dz = {
694+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [di], nil)
695+ if ($isInstanceOf(cR, "Int"))
696+ then cR
466697 else throw("Couldn't cast Any to Int")
467698 }
468- let bv = parseBigIntValue({
469- let aK = invoke(aI, "toX18WrapperREADONLY", [bt, aP], nil)
470- if ($isInstanceOf(aK, "String"))
471- then aK
699+ let dA = parseBigIntValue({
700+ let cR = invoke(cP, "toX18WrapperREADONLY", [dy, cW], nil)
701+ if ($isInstanceOf(cR, "String"))
702+ then cR
472703 else throw("Couldn't cast Any to String")
473704 })
474- let bw = parseBigIntValue({
475- let aK = invoke(aI, "toX18WrapperREADONLY", [bu, aQ], nil)
476- if ($isInstanceOf(aK, "String"))
477- then aK
705+ let dB = parseBigIntValue({
706+ let cR = invoke(cP, "toX18WrapperREADONLY", [dz, cX], nil)
707+ if ($isInstanceOf(cR, "String"))
708+ then cR
478709 else throw("Couldn't cast Any to String")
479710 })
480- let bh = if ((aR == 0))
481- then f
711+ let dn = if ((cY == 0))
712+ then g
482713 else parseBigIntValue({
483- let aK = invoke(aI, "calcPriceBigIntWrapperREADONLY", [toString(bw), toString(bv)], nil)
484- if ($isInstanceOf(aK, "String"))
485- then aK
714+ let cR = invoke(cP, "calcPriceBigIntWrapperREADONLY", [toString(dB), toString(dA)], nil)
715+ if ($isInstanceOf(cR, "String"))
716+ then cR
486717 else throw("Couldn't cast Any to String")
487718 })
488- let aV = {
489- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bh), b], nil)
490- if ($isInstanceOf(aK, "Int"))
491- then aK
719+ let dc = {
720+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dn), b], nil)
721+ if ($isInstanceOf(cR, "Int"))
722+ then cR
492723 else throw("Couldn't cast Any to Int")
493724 }
494- let bj = parseBigIntValue({
495- let aK = invoke(aI, "toX18WrapperREADONLY", [bk, aQ], nil)
496- if ($isInstanceOf(aK, "String"))
497- then aK
725+ let dp = parseBigIntValue({
726+ let cR = invoke(cP, "toX18WrapperREADONLY", [dq, cX], nil)
727+ if ($isInstanceOf(cR, "String"))
728+ then cR
498729 else throw("Couldn't cast Any to String")
499730 })
500- let bi = fraction(bj, d, bh)
501- let aZ = {
502- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bi), aP], nil)
503- if ($isInstanceOf(aK, "Int"))
504- then aK
731+ let do = fraction(dp, d, dn)
732+ let df = {
733+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(do), cW], nil)
734+ if ($isInstanceOf(cR, "Int"))
735+ then cR
505736 else throw("Couldn't cast Any to Int")
506737 }
507- let bl = invoke(aI, "estimatePutOperationWrapperREADONLY", ["", 500000, aZ, bb, bk, bd, "", true, false], nil)
508- let bx = {
509- let bn = bl
510- if (if ($isInstanceOf(bn._1, "Int"))
511- then if ($isInstanceOf(bn._3, "Int"))
512- then if ($isInstanceOf(bn._4, "Int"))
513- then if ($isInstanceOf(bn._5, "Int"))
514- then $isInstanceOf(bn._6, "Int")
738+ let dr = invoke(cP, "estimatePutOperationWrapperREADONLY", ["", 500000, df, dh, dq, dj, "", true, false], nil)
739+ let dC = {
740+ let z = dr
741+ if (if ($isInstanceOf(z._1, "Int"))
742+ then if ($isInstanceOf(z._3, "Int"))
743+ then if ($isInstanceOf(z._4, "Int"))
744+ then if ($isInstanceOf(z._5, "Int"))
745+ then $isInstanceOf(z._6, "Int")
515746 else false
516747 else false
517748 else false
518749 else false)
519750 then {
520- let bo = bn._1
521- let bp = bn._3
522- let bq = bn._4
523- let br = bn._5
524- let bs = bn._6
525- $Tuple5(bo, bp, bq, br, bs)
751+ let dt = z._1
752+ let du = z._3
753+ let dv = z._4
754+ let dw = z._5
755+ let dx = z._6
756+ $Tuple5(dt, du, dv, dw, dx)
526757 }
527758 else throw("Couldn't cast types")
528759 }
529- let bo = bx._1
530- let bp = bx._2
531- let bq = bx._3
532- let br = bx._4
533- let bs = bx._5
534- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(bo), toString(aV), toString(bq), toString(br), toString(bs), be, toString(aZ), toString(bk)], e))
760+ let dt = dC._1
761+ let du = dC._2
762+ let dv = dC._3
763+ let dw = dC._4
764+ let dx = dC._5
765+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(dc), toString(dv), toString(dw), toString(dx), dk, toString(df), toString(dq)], e))
535766 }
536767
537768
538769
539-@Callable(S)
540-func poolEvaluateGetREADONLY (by,bz) = {
541- let T = B()
542- let aI = addressFromStringValue(s(T, x(by)))
543- let bl = invoke(aI, "estimateGetOperationWrapperREADONLY", ["", by, bz, toString(aI)], nil)
544- let bA = {
545- let bn = bl
546- if (if ($isInstanceOf(bn._1, "Int"))
547- then if ($isInstanceOf(bn._2, "Int"))
548- then if ($isInstanceOf(bn._5, "Int"))
549- then if ($isInstanceOf(bn._6, "Int"))
550- then if ($isInstanceOf(bn._7, "Int"))
551- then if ($isInstanceOf(bn._8, "String"))
552- then $isInstanceOf(bn._9, "String")
770+@Callable(bn)
771+func poolEvaluateGetREADONLY (dD,dE) = {
772+ let cP = addressFromStringValue(t(aQ, S(dD)))
773+ let dr = invoke(cP, "estimateGetOperationWrapperREADONLY", ["", dD, dE, toString(cP)], nil)
774+ let dF = {
775+ let z = dr
776+ if (if ($isInstanceOf(z._1, "Int"))
777+ then if ($isInstanceOf(z._2, "Int"))
778+ then if ($isInstanceOf(z._5, "Int"))
779+ then if ($isInstanceOf(z._6, "Int"))
780+ then if ($isInstanceOf(z._7, "Int"))
781+ then if ($isInstanceOf(z._8, "String"))
782+ then $isInstanceOf(z._9, "String")
553783 else false
554784 else false
555785 else false
557787 else false
558788 else false)
559789 then {
560- let bB = bn._1
561- let bC = bn._2
562- let bq = bn._5
563- let br = bn._6
564- let bs = bn._7
565- let aV = bn._8
566- let be = bn._9
567- $Tuple7(bB, bC, bq, br, bs, aV, be)
790+ let dG = z._1
791+ let dH = z._2
792+ let dv = z._5
793+ let dw = z._6
794+ let dx = z._7
795+ let dc = z._8
796+ let dk = z._9
797+ $Tuple7(dG, dH, dv, dw, dx, dc, dk)
568798 }
569799 else throw("Couldn't cast types")
570800 }
571- let bB = bA._1
572- let bC = bA._2
573- let bq = bA._3
574- let br = bA._4
575- let bs = bA._5
576- let aV = bA._6
577- let be = bA._7
578- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bB), toString(bC), toString(bq), toString(br), toString(bs), aV, be], e))
801+ let dG = dF._1
802+ let dH = dF._2
803+ let dv = dF._3
804+ let dw = dF._4
805+ let dx = dF._5
806+ let dc = dF._6
807+ let dk = dF._7
808+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dG), toString(dH), toString(dv), toString(dw), toString(dx), dc, dk], e))
809+ }
810+
811+
812+
813+@Callable(bn)
814+func gwxUserInfoREADONLY (ak) = {
815+ let dI = {
816+ let cR = invoke(aU, "gwxUserInfoREADONLY", [ak], nil)
817+ if ($isInstanceOf(cR, "List[Any]"))
818+ then cR
819+ else throw("Couldn't cast Any to List[Any]")
820+ }
821+ let dJ = {
822+ let cR = dI[0]
823+ if ($isInstanceOf(cR, "Int"))
824+ then cR
825+ else throw("Couldn't cast Any to Int")
826+ }
827+ $Tuple2(nil, makeString(["%d", toString(dJ)], e))
579828 }
580829
581830
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
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
14-let f = toBigInt(0)
14+let f = b
1515
16-let g = 1
16+let g = toBigInt(0)
1717
18-let h = 2
18+let h = 1
1919
20-let i = 3
20+let i = 2
2121
22-let j = 4
22+let j = 3
2323
24-let k = 5
24+let k = 4
2525
26-let l = 6
26+let l = 5
2727
28-let m = 7
28+let m = 6
2929
30-let n = 8
30+let n = 7
3131
32-let o = 9
32+let o = 8
3333
34-let p = 10
34+let p = 9
3535
36-func q (r) = valueOrErrorMessage(getString(r), (("mandatory this." + r) + " is not defined"))
36+let q = 10
37+
38+func r (s) = valueOrErrorMessage(getString(s), (("mandatory this." + s) + " is not defined"))
3739
3840
39-func s (t,r) = valueOrErrorMessage(getString(t, r), (((("mandatory " + toString(t)) + ".") + r) + " is not defined"))
41+func t (u,s) = valueOrErrorMessage(getString(u, s), (((("mandatory " + toString(u)) + ".") + s) + " is not defined"))
4042
4143
42-func u (t,r) = valueOrElse(getInteger(t, r), 0)
44+func v (u,s) = valueOrElse(getInteger(u, s), 0)
4345
4446
45-func v (t,r) = valueOrErrorMessage(getInteger(t, r), (("mandatory this." + r) + " is not defined"))
47+func w (u,s) = valueOrErrorMessage(getInteger(u, s), (("mandatory this." + s) + " is not defined"))
4648
4749
48-func w () = "%s%s__config__factoryAddress"
49-
50-
51-func x (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], e)
52-
53-
54-func z () = "%s__lpTokensList"
55-
56-
57-func A () = "%s__factoryConfig"
58-
59-
60-func B () = addressFromStringValue(q(w()))
61-
62-
63-func C () = split(valueOrElse(getString(B(), z()), ""), e)
64-
65-
66-func D () = split(s(B(), A()), e)
67-
68-
69-func E (F,G) = makeString(["%s%s%s__staked", F, G], e)
70-
71-
72-func H (G) = ("%s%s%s__staked__total__" + G)
73-
74-
75-func I (J) = makeString(["%s%s", "poolWeight", J], e)
76-
77-
78-func K (L) = addressFromStringValue(L[1])
79-
80-
81-func M (N,O) = {
82- let P = 0
83- let Q = (1 * b)
84- let R = u(N, H(O))
85-[P, Q, R]
50+func x (y) = {
51+ let z = y
52+ if ($isInstanceOf(z, "List[Any]"))
53+ then {
54+ let A = z
55+ A
56+ }
57+ else throw("fail to cast into List[Any]")
8658 }
8759
8860
89-@Callable(S)
90-func constructor (T) = if ((S.caller != this))
61+func B (y) = {
62+ let z = y
63+ if ($isInstanceOf(z, "Int"))
64+ then {
65+ let C = z
66+ C
67+ }
68+ else throw("fail to cast into Int")
69+ }
70+
71+
72+func D (y) = {
73+ let z = y
74+ if ($isInstanceOf(z, "String"))
75+ then {
76+ let E = z
77+ E
78+ }
79+ else throw("fail to cast into String")
80+ }
81+
82+
83+func F () = "%s%s__config__factoryAddress"
84+
85+
86+let G = 1
87+
88+let H = 2
89+
90+let I = 3
91+
92+let J = 4
93+
94+let K = 5
95+
96+let L = 6
97+
98+let M = 7
99+
100+let N = 8
101+
102+func O () = "%s__factoryConfig"
103+
104+
105+func P (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
106+
107+
108+func R () = "%s__lpTokensList"
109+
110+
111+func S (Q) = makeString(["%s%s%s", Q, "mappings__lpAsset2PoolContract"], e)
112+
113+
114+func T (U) = makeString(["%s%s", "poolWeight", U], e)
115+
116+
117+func V () = addressFromStringValue(r(F()))
118+
119+
120+func W () = split(valueOrElse(getString(V(), R()), ""), e)
121+
122+
123+func X (Y) = split(t(Y, O()), e)
124+
125+
126+func Z (aa) = addressFromStringValue(aa[H])
127+
128+
129+func ab (aa) = addressFromStringValue(aa[K])
130+
131+
132+func ac (aa) = addressFromStringValue(aa[G])
133+
134+
135+func ad (aa) = addressFromStringValue(aa[N])
136+
137+
138+func ae () = "%s__config"
139+
140+
141+func af () = "%s%s__stats__activeTotalLocked"
142+
143+
144+func ag () = "%s%s__stats__locksDurationSumInBlocks"
145+
146+
147+func ah () = "%s%s__stats__locksCount"
148+
149+
150+func ai () = "%s%s__stats__activeUsersCount"
151+
152+
153+func aj (ak) = makeString(["%s%s%s__mapping__user2num", ak], e)
154+
155+
156+func al (am) = makeString(["%s%s%s__mapping__num2user", am], e)
157+
158+
159+func an (ao) = makeString(["%s%d%s__paramByUserNum", ao, "amount"], e)
160+
161+
162+func ap (ao) = makeString(["%s%d%s__paramByUserNum", ao, "start"], e)
163+
164+
165+func aq (ao) = makeString(["%s%d%s__paramByUserNum", ao, "duration"], e)
166+
167+
168+func ar (ao) = makeString(["%s%d%s__paramByUserNum", ao, "k"], e)
169+
170+
171+func as (ao) = makeString(["%s%d%s__paramByUserNum", ao, "b"], e)
172+
173+
174+func at (ao,au) = makeString(["%s%d%s%d__paramByPeriod", ao, "k", au], e)
175+
176+
177+func av (ao,au) = makeString(["%s%d%s%d__paramByPeriod", ao, "b", au], e)
178+
179+
180+func aw (ao) = makeString(["%s%d__userBoostEmissionLastInt", ao], e)
181+
182+
183+func ax (ao) = makeString(["%s%d__maxBoostInt", ao], e)
184+
185+
186+func ay () = "%s%s__maxBoostInt__total"
187+
188+
189+func az (ao) = makeString(["%s%d__userBoostAvaliableToClaimTotal", ao], e)
190+
191+
192+func aA (ao) = makeString(["%s%d__userBoostClaimed", ao], e)
193+
194+
195+func aB () = "%s%s__gwxCached__total"
196+
197+
198+func aC (aD,aE) = makeString(["%s%s%s__staked", aD, aE], e)
199+
200+
201+func aF (aE) = ("%s%s%s__staked__total__" + aE)
202+
203+
204+func aG (aE,aD) = makeString(["%s%s%s__claimed", aD, aE], e)
205+
206+
207+func aH (aE,aD) = makeString(["%s%s%s__claimedMinReward", aD, aE], e)
208+
209+
210+func aI (aE,aD) = makeString(["%s%s%s__claimedBoostReward", aD, aE], e)
211+
212+
213+func aJ (aK,s) = valueOrElse(getInteger(aK, s), 0)
214+
215+
216+func aL () = "%s%s__ratePerBlock__current"
217+
218+
219+func aM () = "%s%s__ratePerBlockMax__current"
220+
221+
222+func aN () = "%s%s__emission__startBlock"
223+
224+
225+func aO () = "%s%s__emission__duration"
226+
227+
228+func aP () = "%s%s__emission__endBlock"
229+
230+
231+let aQ = V()
232+
233+let aR = X(aQ)
234+
235+let aS = ab(aR)
236+
237+let aK = ac(aR)
238+
239+let aT = ad(aR)
240+
241+let aU = Z(aR)
242+
243+func aV (aW) = {
244+ let aX = t(aQ, S(aW))
245+ let aY = b
246+ let aZ = getIntegerValue(aQ, T(aX))
247+ let ba = w(aS, aL())
248+ let bb = w(aS, aM())
249+ let bc = 3
250+ let bd = (fraction(ba, aZ, aY) / bc)
251+ let be = fraction(bb, aZ, aY)
252+ let bf = (bc * b)
253+ let bg = v(aK, aF(aW))
254+[bd, bf, bg]
255+ }
256+
257+
258+func bh (bi,bj,bk) = {
259+ let bl = fraction(bj, b, bk)
260+ let bm = fraction(bi, bl, b)
261+[bm]
262+ }
263+
264+
265+@Callable(bn)
266+func constructor (bo) = if ((bn.caller != this))
91267 then throw("not authorized")
92- else [StringEntry(w(), T)]
268+ else [StringEntry(F(), bo)]
93269
94270
95271
96-@Callable(S)
97-func currentRewardRateREADONLY (O) = {
98- let U = D()
99- let N = K(U)
100- let V = M(N, O)
101- let P = V[0]
102- let Q = V[1]
103- let R = V[2]
104- $Tuple2(nil, makeString(["%d%d%d", toString(P), toString(Q), toString(R)], e))
272+@Callable(bn)
273+func currentRewardRateREADONLY (aW) = {
274+ let bp = aV(aW)
275+ let ba = bp[0]
276+ let bf = bp[1]
277+ let bg = bp[2]
278+ $Tuple2(nil, makeString(["%d%d%d", toString(ba), toString(bf), toString(bg)], e))
105279 }
106280
107281
108282
109-@Callable(S)
110-func currentUserRewardRateREADONLY (O,W) = {
111- let U = D()
112- let N = K(U)
113- let V = M(N, O)
114- let P = V[0]
115- let Q = V[1]
116- let R = V[2]
117- let X = u(N, E(W, O))
118- let Y = (1 * b)
119- $Tuple2(nil, makeString(["%d%d%d", toString(P), toString(Q), toString(R), toString(X), toString(Y)], e))
283+@Callable(bn)
284+func currentUserRewardRateREADONLY (aW,ak) = {
285+ let bp = aV(aW)
286+ let ba = bp[0]
287+ let bf = bp[1]
288+ let bg = bp[2]
289+ let bq = v(aK, aC(ak, aW))
290+ let br = split(D(invoke(aK, "claimWxREADONLY", [aW, ak], nil)), e)
291+ let bs = valueOrErrorMessage(parseInt(br[5]), "couldn't parse minRewardPart")
292+ let bt = valueOrErrorMessage(parseInt(br[6]), "couldn't parse boostRewardPart")
293+ let bu = br[7]
294+ let bv = if ((bt == 0))
295+ then (1 * b)
296+ else fraction((bs + bt), b, bs)
297+ $Tuple2(nil, makeString(["%d%d%d%d%d%s", toString(ba), toString(bf), toString(bg), toString(bq), toString(bv), bu], e))
120298 }
121299
122300
123301
124-@Callable(S)
125-func claimedRewardREADONLY (W) = {
126- let Z = C()
127- let aa = "%s%d%d%d%s"
128- func ab (ac,ad) = {
129- let ae = ((toInt(fromBase58String(ad)) % 100000) + (toInt(toBytes(W)) % 100000))
130- let af = if ((0 > ae))
131- then -(ae)
132- else ae
133- let ag = (((af % 100) * b) + (af * (b / 100000)))
134- let ah = 0
135- let ai = 0
136- let aj = 0
137- makeString([(aa + ac), ad, toString(ah), toString(ai), toString(aj), "end"], e)
302+@Callable(bn)
303+func claimedRewardREADONLY (ak) = {
304+ let bw = W()
305+ let bx = "%s%d%d%d%s"
306+ func by (bz,bA) = {
307+ let bB = aH(bA, ak)
308+ let bC = aI(bA, ak)
309+ let bD = valueOrElse(getInteger(aK, bB), 0)
310+ let bE = valueOrElse(getInteger(aK, bC), 0)
311+ let bF = 0
312+ makeString([(bx + bz), bA, toString(bD), toString(bE), toString(bF), "end"], e)
138313 }
139314
140- let ak = {
141- let al = Z
142- let am = size(al)
143- let an = "%s"
144- func ao (ap,aq) = if ((aq >= am))
145- then ap
146- else ab(ap, al[aq])
315+ let bG = {
316+ let bH = bw
317+ let bI = size(bH)
318+ let bJ = "%s"
319+ func bK (bL,bM) = if ((bM >= bI))
320+ then bL
321+ else by(bL, bH[bM])
147322
148- func ar (ap,aq) = if ((aq >= am))
149- then ap
323+ func bN (bL,bM) = if ((bM >= bI))
324+ then bL
150325 else throw("List size exceeds 10")
151326
152- ar(ao(ao(ao(ao(ao(ao(ao(ao(ao(ao(an, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
327+ bN(bK(bK(bK(bK(bK(bK(bK(bK(bK(bK(bJ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
153328 }
154- $Tuple2(nil, ((ak + e) + W))
329+ $Tuple2(nil, ((bG + e) + ak))
155330 }
156331
157332
158333
159-@Callable(S)
160-func calcBoostREADONLY (as,at,au,av,aw) = {
161- let ax = if ((aw != ""))
162- then (3 * b)
163- else (1 * b)
164- let ay = fraction(toBigInt(at), d, toBigInt((30 * 1440)))
165- let az = (pow(ay, c, toBigInt(2), 0, c, HALFUP) / toBigInt(100))
166- let aA = fraction(toBigInt(as), az, d)
167- $Tuple2(nil, makeString(["%d%d", toString(toInt(aA)), toString(ax)], e))
334+@Callable(bn)
335+func calcBoostREADONLY (bO,bP,bQ,bR,bS) = {
336+ let bT = aT
337+ let bU = "empty"
338+ let bV = parseIntValue(split(t(aU, ae()), e)[4])
339+ let aE = if ((bR == ""))
340+ then bU
341+ else bR
342+ let aD = if ((bS == ""))
343+ then bU
344+ else bS
345+ let bW = valueOrElse(getString(aU, aj(bS)), bU)
346+ let bX = valueOrElse(getInteger(aU, an(bW)), 0)
347+ let bY = valueOrElse(getInteger(aU, ap(bW)), height)
348+ let bj = valueOrElse(getInteger(aU, aq(bW)), 0)
349+ let bZ = (bY + bj)
350+ let ca = max([(bZ - height), 0])
351+ let cb = (bX + bO)
352+ let cc = min([(ca + bP), bV])
353+ let cd = B(x(invoke(aU, "gwxUserInfoREADONLY", [aD], nil))[0])
354+ let ce = bh(cb, cc, bV)[0]
355+ let cf = x(invoke(bT, "calcGwxParamsREADONLY", [ce, height, cc], nil))
356+ let cg = (ce - cd)
357+ let ch = B(cf[0])
358+ let ci = B(cf[1])
359+ let au = toString(B(cf[2]))
360+ let cj = ay()
361+ let ck = aB()
362+ let cl = ((ce * cc) / 2)
363+ let cm = v(aU, cj)
364+ let cn = valueOrElse(getInteger(aU, ck), 0)
365+ let co = 1000
366+ let cp = (w(aS, aL()) * co)
367+ let cq = aC(aD, aE)
368+ let cr = aF(aE)
369+ let cs = aJ(aK, cq)
370+ let ct = aJ(aK, cr)
371+ let cu = (cs + bQ)
372+ let cv = (ct + bQ)
373+ let aZ = if ((aE != bU))
374+ then {
375+ let aX = valueOrErrorMessage(getString(aQ, P(aE)), ("unsupported lp asset " + aE))
376+ getIntegerValue(aQ, T(aX))
377+ }
378+ else 0
379+ let cw = fraction(cp, aZ, (f * 3))
380+ let cx = if ((cv != 0))
381+ then fraction(cw, b, cv)
382+ else 0
383+ let cy = fraction(cx, cu, b)
384+ let cz = (cw * 2)
385+ let cA = fraction(ce, cz, (cn + cg))
386+ let cB = min([cA, (cy * 2)])
387+ let cC = if ((cy == 0))
388+ then (1 * b)
389+ else fraction((cB + cy), b, cy)
390+ let bu = makeString([("lpAssetIdStr=" + aE), ("userAddressStr=" + aD), ("userNumStr=" + bW), ("userAmount=" + toString(bX)), ("userAmountNew=" + toString(cb)), ("lockDurationNew=" + toString(cc)), ("gWxAmountStart=" + toString(ce)), ("tmpUserBoostPerBlockX3=" + toString(cA)), ("stakedByUserNew=" + toString(cu)), ("stakedTotalNew=" + toString(cv)), ("poolWeight=" + toString(aZ)), ("wxPerLpX3=" + toString(cx)), ("poolWxEmissionPerBlockX3=" + toString(cw)), ("userWxPerBlockX3=" + toString(cy)), ("gWxAmountDiff=" + toString(cg)), ("totalCachedGwx=" + toString(cn)), ("userCurrgWxAmount=" + toString(cd))], "::")
391+ $Tuple2(nil, makeString(["%d%d%s", toString(ce), toString(cC), bu], e))
168392 }
169393
170394
171395
172-@Callable(S)
396+@Callable(bn)
173397 func wxEmissionStatsREADONLY () = {
174- let aB = toString(b)
175- let aC = "1"
176- let aD = 0
177- let aE = 0
178- let aF = 0
179- let aG = 0
180- $Tuple2(nil, makeString(["%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG)], e))
398+ let cD = toString(b)
399+ let cE = "1"
400+ let ba = w(aS, aL())
401+ let cF = w(aS, aN())
402+ let cG = if ((cF > height))
403+ then 0
404+ else (height - cF)
405+ let cH = (1440 * 365)
406+ let cI = (201000000 * b)
407+ let cJ = if ((cG > cH))
408+ then cI
409+ else fraction(cI, cG, cH)
410+ let cK = ((ba * cG) + cJ)
411+ let cL = v(aU, af())
412+ let cM = v(aU, ag())
413+ let cN = v(aU, ah())
414+ $Tuple2(nil, makeString(["%d%d%d%d", toString(cK), toString(cL), toString(cM), toString(cN)], e))
181415 }
182416
183417
184418
185-@Callable(S)
186-func poolStatsREADONLY (aH) = {
187- let T = B()
188- let aI = addressFromStringValue(s(T, x(aH)))
189- let aJ = {
190- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
191- if ($isInstanceOf(aK, "List[Any]"))
192- then aK
419+@Callable(bn)
420+func poolStatsREADONLY (cO) = {
421+ let cP = addressFromStringValue(t(aQ, S(cO)))
422+ let cQ = {
423+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
424+ if ($isInstanceOf(cR, "List[Any]"))
425+ then cR
193426 else throw("Couldn't cast Any to List[Any]")
194427 }
195- let O = fromBase58String({
196- let aK = aJ[i]
197- if ($isInstanceOf(aK, "String"))
198- then aK
428+ let aW = fromBase58String({
429+ let cR = cQ[j]
430+ if ($isInstanceOf(cR, "String"))
431+ then cR
199432 else throw("Couldn't cast Any to String")
200433 })
201- let aL = {
202- let aK = aJ[j]
203- if ($isInstanceOf(aK, "String"))
204- then aK
434+ let cS = {
435+ let cR = cQ[k]
436+ if ($isInstanceOf(cR, "String"))
437+ then cR
205438 else throw("Couldn't cast Any to String")
206439 }
207- let aM = {
208- let aK = aJ[k]
209- if ($isInstanceOf(aK, "String"))
210- then aK
440+ let cT = {
441+ let cR = cQ[l]
442+ if ($isInstanceOf(cR, "String"))
443+ then cR
211444 else throw("Couldn't cast Any to String")
212445 }
213- let aN = {
214- let aK = aJ[n]
215- if ($isInstanceOf(aK, "String"))
216- then aK
446+ let cU = {
447+ let cR = cQ[o]
448+ if ($isInstanceOf(cR, "String"))
449+ then cR
217450 else throw("Couldn't cast Any to String")
218451 }
219- let aO = {
220- let aK = aJ[o]
221- if ($isInstanceOf(aK, "String"))
222- then aK
452+ let cV = {
453+ let cR = cQ[p]
454+ if ($isInstanceOf(cR, "String"))
455+ then cR
223456 else throw("Couldn't cast Any to String")
224457 }
225- let aP = parseIntValue({
226- let aK = aJ[l]
227- if ($isInstanceOf(aK, "String"))
228- then aK
458+ let cW = parseIntValue({
459+ let cR = cQ[m]
460+ if ($isInstanceOf(cR, "String"))
461+ then cR
229462 else throw("Couldn't cast Any to String")
230463 })
231- let aQ = parseIntValue({
232- let aK = aJ[m]
233- if ($isInstanceOf(aK, "String"))
234- then aK
464+ let cX = parseIntValue({
465+ let cR = cQ[n]
466+ if ($isInstanceOf(cR, "String"))
467+ then cR
235468 else throw("Couldn't cast Any to String")
236469 })
237- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
238- let aS = {
239- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [aL], nil)
240- if ($isInstanceOf(aK, "Int"))
241- then aK
470+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
471+ let cZ = {
472+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [cS], nil)
473+ if ($isInstanceOf(cR, "Int"))
474+ then cR
242475 else throw("Couldn't cast Any to Int")
243476 }
244- let aT = {
245- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [aM], nil)
246- if ($isInstanceOf(aK, "Int"))
247- then aK
477+ let da = {
478+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [cT], nil)
479+ if ($isInstanceOf(cR, "Int"))
480+ then cR
248481 else throw("Couldn't cast Any to Int")
249482 }
250- let aU = {
251- let aK = invoke(aI, "calcPricesWrapperREADONLY", [aS, aT, aR], nil)
252- if ($isInstanceOf(aK, "List[Any]"))
253- then aK
483+ let db = {
484+ let cR = invoke(cP, "calcPricesWrapperREADONLY", [cZ, da, cY], nil)
485+ if ($isInstanceOf(cR, "List[Any]"))
486+ then cR
254487 else throw("Couldn't cast Any to List[Any]")
255488 }
256- let aV = 0
257- let aW = {
258- let aK = invoke(aI, "fromX18WrapperREADONLY", [aU[1], b], nil)
259- if ($isInstanceOf(aK, "Int"))
260- then aK
489+ let dc = 0
490+ let dd = {
491+ let cR = invoke(cP, "fromX18WrapperREADONLY", [db[1], b], nil)
492+ if ($isInstanceOf(cR, "Int"))
493+ then cR
261494 else throw("Couldn't cast Any to Int")
262495 }
263- let aX = {
264- let aK = invoke(aI, "fromX18WrapperREADONLY", [aU[2], b], nil)
265- if ($isInstanceOf(aK, "Int"))
266- then aK
496+ let de = {
497+ let cR = invoke(cP, "fromX18WrapperREADONLY", [db[2], b], nil)
498+ if ($isInstanceOf(cR, "Int"))
499+ then cR
267500 else throw("Couldn't cast Any to Int")
268501 }
269- let aY = getIntegerValue(B(), I(toString(aI)))
270- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aR), toString(aV), toString(aW), toString(aX), toString(aY)], e))
502+ let aZ = getIntegerValue(aQ, T(toString(cP)))
503+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cZ), toString(da), toString(cY), toString(dc), toString(dd), toString(de), toString(aZ)], e))
271504 }
272505
273506
274507
275-@Callable(S)
276-func poolEvaluatePutByAmountAssetREADONLY (aH,aZ) = {
277- let T = B()
278- let aI = addressFromStringValue(s(T, x(aH)))
279- let aJ = {
280- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
281- if ($isInstanceOf(aK, "List[Any]"))
282- then aK
508+@Callable(bn)
509+func poolEvaluatePutByAmountAssetREADONLY (cO,df) = {
510+ let cP = addressFromStringValue(t(aQ, S(cO)))
511+ let cQ = {
512+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
513+ if ($isInstanceOf(cR, "List[Any]"))
514+ then cR
283515 else throw("Couldn't cast Any to List[Any]")
284516 }
285- let O = fromBase58String({
286- let aK = aJ[i]
287- if ($isInstanceOf(aK, "String"))
288- then aK
517+ let aW = fromBase58String({
518+ let cR = cQ[j]
519+ if ($isInstanceOf(cR, "String"))
520+ then cR
289521 else throw("Couldn't cast Any to String")
290522 })
291- let ba = {
292- let aK = aJ[j]
293- if ($isInstanceOf(aK, "String"))
294- then aK
523+ let dg = {
524+ let cR = cQ[k]
525+ if ($isInstanceOf(cR, "String"))
526+ then cR
295527 else throw("Couldn't cast Any to String")
296528 }
297- let bb = fromBase58String(ba)
298- let bc = {
299- let aK = aJ[k]
300- if ($isInstanceOf(aK, "String"))
301- then aK
529+ let dh = fromBase58String(dg)
530+ let di = {
531+ let cR = cQ[l]
532+ if ($isInstanceOf(cR, "String"))
533+ then cR
302534 else throw("Couldn't cast Any to String")
303535 }
304- let bd = fromBase58String(bc)
305- let aP = parseIntValue({
306- let aK = aJ[l]
307- if ($isInstanceOf(aK, "String"))
308- then aK
536+ let dj = fromBase58String(di)
537+ let cW = parseIntValue({
538+ let cR = cQ[m]
539+ if ($isInstanceOf(cR, "String"))
540+ then cR
309541 else throw("Couldn't cast Any to String")
310542 })
311- let aQ = parseIntValue({
312- let aK = aJ[m]
313- if ($isInstanceOf(aK, "String"))
314- then aK
543+ let cX = parseIntValue({
544+ let cR = cQ[n]
545+ if ($isInstanceOf(cR, "String"))
546+ then cR
315547 else throw("Couldn't cast Any to String")
316548 })
317- let be = {
318- let aK = aJ[h]
319- if ($isInstanceOf(aK, "String"))
320- then aK
549+ let dk = {
550+ let cR = cQ[i]
551+ if ($isInstanceOf(cR, "String"))
552+ then cR
321553 else throw("Couldn't cast Any to String")
322554 }
323- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
324- let aS = {
325- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [ba], nil)
326- if ($isInstanceOf(aK, "Int"))
327- then aK
555+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
556+ let cZ = {
557+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [dg], nil)
558+ if ($isInstanceOf(cR, "Int"))
559+ then cR
328560 else throw("Couldn't cast Any to Int")
329561 }
330- let aT = {
331- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [bc], nil)
332- if ($isInstanceOf(aK, "Int"))
333- then aK
562+ let da = {
563+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [di], nil)
564+ if ($isInstanceOf(cR, "Int"))
565+ then cR
334566 else throw("Couldn't cast Any to Int")
335567 }
336- let bf = parseBigIntValue({
337- let aK = invoke(aI, "toX18WrapperREADONLY", [aS, aP], nil)
338- if ($isInstanceOf(aK, "String"))
339- then aK
568+ let dl = parseBigIntValue({
569+ let cR = invoke(cP, "toX18WrapperREADONLY", [cZ, cW], nil)
570+ if ($isInstanceOf(cR, "String"))
571+ then cR
340572 else throw("Couldn't cast Any to String")
341573 })
342- let bg = parseBigIntValue({
343- let aK = invoke(aI, "toX18WrapperREADONLY", [aT, aQ], nil)
344- if ($isInstanceOf(aK, "String"))
345- then aK
574+ let dm = parseBigIntValue({
575+ let cR = invoke(cP, "toX18WrapperREADONLY", [da, cX], nil)
576+ if ($isInstanceOf(cR, "String"))
577+ then cR
346578 else throw("Couldn't cast Any to String")
347579 })
348- let bh = if ((aR == 0))
349- then f
580+ let dn = if ((cY == 0))
581+ then g
350582 else parseBigIntValue({
351- let aK = invoke(aI, "calcPriceBigIntWrapperREADONLY", [toString(bg), toString(bf)], nil)
352- if ($isInstanceOf(aK, "String"))
353- then aK
583+ let cR = invoke(cP, "calcPriceBigIntWrapperREADONLY", [toString(dm), toString(dl)], nil)
584+ if ($isInstanceOf(cR, "String"))
585+ then cR
354586 else throw("Couldn't cast Any to String")
355587 })
356- let aV = {
357- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bh), b], nil)
358- if ($isInstanceOf(aK, "Int"))
359- then aK
588+ let dc = {
589+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dn), b], nil)
590+ if ($isInstanceOf(cR, "Int"))
591+ then cR
360592 else throw("Couldn't cast Any to Int")
361593 }
362- let bi = parseBigIntValue({
363- let aK = invoke(aI, "toX18WrapperREADONLY", [aZ, aP], nil)
364- if ($isInstanceOf(aK, "String"))
365- then aK
594+ let do = parseBigIntValue({
595+ let cR = invoke(cP, "toX18WrapperREADONLY", [df, cW], nil)
596+ if ($isInstanceOf(cR, "String"))
597+ then cR
366598 else throw("Couldn't cast Any to String")
367599 })
368- let bj = fraction(bi, bh, d)
369- let bk = {
370- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bj), aQ], nil)
371- if ($isInstanceOf(aK, "Int"))
372- then aK
600+ let dp = fraction(do, dn, d)
601+ let dq = {
602+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dp), cX], nil)
603+ if ($isInstanceOf(cR, "Int"))
604+ then cR
373605 else throw("Couldn't cast Any to Int")
374606 }
375- let bl = invoke(aI, "estimatePutOperationWrapperREADONLY", ["", 500000, aZ, bb, bk, bd, "", true, false], nil)
376- let bm = {
377- let bn = bl
378- if (if ($isInstanceOf(bn._1, "Int"))
379- then if ($isInstanceOf(bn._3, "Int"))
380- then if ($isInstanceOf(bn._4, "Int"))
381- then if ($isInstanceOf(bn._5, "Int"))
382- then $isInstanceOf(bn._6, "Int")
607+ let dr = invoke(cP, "estimatePutOperationWrapperREADONLY", ["", 500000, df, dh, dq, dj, "", true, false], nil)
608+ let ds = {
609+ let z = dr
610+ if (if ($isInstanceOf(z._1, "Int"))
611+ then if ($isInstanceOf(z._3, "Int"))
612+ then if ($isInstanceOf(z._4, "Int"))
613+ then if ($isInstanceOf(z._5, "Int"))
614+ then $isInstanceOf(z._6, "Int")
383615 else false
384616 else false
385617 else false
386618 else false)
387619 then {
388- let bo = bn._1
389- let bp = bn._3
390- let bq = bn._4
391- let br = bn._5
392- let bs = bn._6
393- $Tuple5(bo, bp, bq, br, bs)
620+ let dt = z._1
621+ let du = z._3
622+ let dv = z._4
623+ let dw = z._5
624+ let dx = z._6
625+ $Tuple5(dt, du, dv, dw, dx)
394626 }
395627 else throw("Couldn't cast types")
396628 }
397- let bo = bm._1
398- let bp = bm._2
399- let bq = bm._3
400- let br = bm._4
401- let bs = bm._5
402- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(bo), toString(aV), toString(bq), toString(br), toString(bs), be, toString(aZ), toString(bk)], e))
629+ let dt = ds._1
630+ let du = ds._2
631+ let dv = ds._3
632+ let dw = ds._4
633+ let dx = ds._5
634+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(dc), toString(dv), toString(dw), toString(dx), dk, toString(df), toString(dq)], e))
403635 }
404636
405637
406638
407-@Callable(S)
408-func poolEvaluatePutByPriceAssetREADONLY (aH,bk) = {
409- let T = B()
410- let aI = addressFromStringValue(s(T, x(aH)))
411- let aJ = {
412- let aK = invoke(aI, "getPoolConfigWrapperREADONLY", nil, nil)
413- if ($isInstanceOf(aK, "List[Any]"))
414- then aK
639+@Callable(bn)
640+func poolEvaluatePutByPriceAssetREADONLY (cO,dq) = {
641+ let cP = addressFromStringValue(t(aQ, S(cO)))
642+ let cQ = {
643+ let cR = invoke(cP, "getPoolConfigWrapperREADONLY", nil, nil)
644+ if ($isInstanceOf(cR, "List[Any]"))
645+ then cR
415646 else throw("Couldn't cast Any to List[Any]")
416647 }
417- let O = fromBase58String({
418- let aK = aJ[i]
419- if ($isInstanceOf(aK, "String"))
420- then aK
648+ let aW = fromBase58String({
649+ let cR = cQ[j]
650+ if ($isInstanceOf(cR, "String"))
651+ then cR
421652 else throw("Couldn't cast Any to String")
422653 })
423- let ba = {
424- let aK = aJ[j]
425- if ($isInstanceOf(aK, "String"))
426- then aK
654+ let dg = {
655+ let cR = cQ[k]
656+ if ($isInstanceOf(cR, "String"))
657+ then cR
427658 else throw("Couldn't cast Any to String")
428659 }
429- let bb = fromBase58String(ba)
430- let bc = {
431- let aK = aJ[k]
432- if ($isInstanceOf(aK, "String"))
433- then aK
660+ let dh = fromBase58String(dg)
661+ let di = {
662+ let cR = cQ[l]
663+ if ($isInstanceOf(cR, "String"))
664+ then cR
434665 else throw("Couldn't cast Any to String")
435666 }
436- let bd = fromBase58String(bc)
437- let aP = parseIntValue({
438- let aK = aJ[l]
439- if ($isInstanceOf(aK, "String"))
440- then aK
667+ let dj = fromBase58String(di)
668+ let cW = parseIntValue({
669+ let cR = cQ[m]
670+ if ($isInstanceOf(cR, "String"))
671+ then cR
441672 else throw("Couldn't cast Any to String")
442673 })
443- let aQ = parseIntValue({
444- let aK = aJ[m]
445- if ($isInstanceOf(aK, "String"))
446- then aK
674+ let cX = parseIntValue({
675+ let cR = cQ[n]
676+ if ($isInstanceOf(cR, "String"))
677+ then cR
447678 else throw("Couldn't cast Any to String")
448679 })
449- let be = {
450- let aK = aJ[h]
451- if ($isInstanceOf(aK, "String"))
452- then aK
680+ let dk = {
681+ let cR = cQ[i]
682+ if ($isInstanceOf(cR, "String"))
683+ then cR
453684 else throw("Couldn't cast Any to String")
454685 }
455- let aR = valueOrErrorMessage(assetInfo(O), (("Asset " + toBase58String(O)) + " doesn't exist")).quantity
456- let bt = {
457- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [ba], nil)
458- if ($isInstanceOf(aK, "Int"))
459- then aK
686+ let cY = valueOrErrorMessage(assetInfo(aW), (("Asset " + toBase58String(aW)) + " doesn't exist")).quantity
687+ let dy = {
688+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [dg], nil)
689+ if ($isInstanceOf(cR, "Int"))
690+ then cR
460691 else throw("Couldn't cast Any to Int")
461692 }
462- let bu = {
463- let aK = invoke(aI, "getAccBalanceWrapperREADONLY", [bc], nil)
464- if ($isInstanceOf(aK, "Int"))
465- then aK
693+ let dz = {
694+ let cR = invoke(cP, "getAccBalanceWrapperREADONLY", [di], nil)
695+ if ($isInstanceOf(cR, "Int"))
696+ then cR
466697 else throw("Couldn't cast Any to Int")
467698 }
468- let bv = parseBigIntValue({
469- let aK = invoke(aI, "toX18WrapperREADONLY", [bt, aP], nil)
470- if ($isInstanceOf(aK, "String"))
471- then aK
699+ let dA = parseBigIntValue({
700+ let cR = invoke(cP, "toX18WrapperREADONLY", [dy, cW], nil)
701+ if ($isInstanceOf(cR, "String"))
702+ then cR
472703 else throw("Couldn't cast Any to String")
473704 })
474- let bw = parseBigIntValue({
475- let aK = invoke(aI, "toX18WrapperREADONLY", [bu, aQ], nil)
476- if ($isInstanceOf(aK, "String"))
477- then aK
705+ let dB = parseBigIntValue({
706+ let cR = invoke(cP, "toX18WrapperREADONLY", [dz, cX], nil)
707+ if ($isInstanceOf(cR, "String"))
708+ then cR
478709 else throw("Couldn't cast Any to String")
479710 })
480- let bh = if ((aR == 0))
481- then f
711+ let dn = if ((cY == 0))
712+ then g
482713 else parseBigIntValue({
483- let aK = invoke(aI, "calcPriceBigIntWrapperREADONLY", [toString(bw), toString(bv)], nil)
484- if ($isInstanceOf(aK, "String"))
485- then aK
714+ let cR = invoke(cP, "calcPriceBigIntWrapperREADONLY", [toString(dB), toString(dA)], nil)
715+ if ($isInstanceOf(cR, "String"))
716+ then cR
486717 else throw("Couldn't cast Any to String")
487718 })
488- let aV = {
489- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bh), b], nil)
490- if ($isInstanceOf(aK, "Int"))
491- then aK
719+ let dc = {
720+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(dn), b], nil)
721+ if ($isInstanceOf(cR, "Int"))
722+ then cR
492723 else throw("Couldn't cast Any to Int")
493724 }
494- let bj = parseBigIntValue({
495- let aK = invoke(aI, "toX18WrapperREADONLY", [bk, aQ], nil)
496- if ($isInstanceOf(aK, "String"))
497- then aK
725+ let dp = parseBigIntValue({
726+ let cR = invoke(cP, "toX18WrapperREADONLY", [dq, cX], nil)
727+ if ($isInstanceOf(cR, "String"))
728+ then cR
498729 else throw("Couldn't cast Any to String")
499730 })
500- let bi = fraction(bj, d, bh)
501- let aZ = {
502- let aK = invoke(aI, "fromX18WrapperREADONLY", [toString(bi), aP], nil)
503- if ($isInstanceOf(aK, "Int"))
504- then aK
731+ let do = fraction(dp, d, dn)
732+ let df = {
733+ let cR = invoke(cP, "fromX18WrapperREADONLY", [toString(do), cW], nil)
734+ if ($isInstanceOf(cR, "Int"))
735+ then cR
505736 else throw("Couldn't cast Any to Int")
506737 }
507- let bl = invoke(aI, "estimatePutOperationWrapperREADONLY", ["", 500000, aZ, bb, bk, bd, "", true, false], nil)
508- let bx = {
509- let bn = bl
510- if (if ($isInstanceOf(bn._1, "Int"))
511- then if ($isInstanceOf(bn._3, "Int"))
512- then if ($isInstanceOf(bn._4, "Int"))
513- then if ($isInstanceOf(bn._5, "Int"))
514- then $isInstanceOf(bn._6, "Int")
738+ let dr = invoke(cP, "estimatePutOperationWrapperREADONLY", ["", 500000, df, dh, dq, dj, "", true, false], nil)
739+ let dC = {
740+ let z = dr
741+ if (if ($isInstanceOf(z._1, "Int"))
742+ then if ($isInstanceOf(z._3, "Int"))
743+ then if ($isInstanceOf(z._4, "Int"))
744+ then if ($isInstanceOf(z._5, "Int"))
745+ then $isInstanceOf(z._6, "Int")
515746 else false
516747 else false
517748 else false
518749 else false)
519750 then {
520- let bo = bn._1
521- let bp = bn._3
522- let bq = bn._4
523- let br = bn._5
524- let bs = bn._6
525- $Tuple5(bo, bp, bq, br, bs)
751+ let dt = z._1
752+ let du = z._3
753+ let dv = z._4
754+ let dw = z._5
755+ let dx = z._6
756+ $Tuple5(dt, du, dv, dw, dx)
526757 }
527758 else throw("Couldn't cast types")
528759 }
529- let bo = bx._1
530- let bp = bx._2
531- let bq = bx._3
532- let br = bx._4
533- let bs = bx._5
534- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(bo), toString(aV), toString(bq), toString(br), toString(bs), be, toString(aZ), toString(bk)], e))
760+ let dt = dC._1
761+ let du = dC._2
762+ let dv = dC._3
763+ let dw = dC._4
764+ let dx = dC._5
765+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(dt), toString(dc), toString(dv), toString(dw), toString(dx), dk, toString(df), toString(dq)], e))
535766 }
536767
537768
538769
539-@Callable(S)
540-func poolEvaluateGetREADONLY (by,bz) = {
541- let T = B()
542- let aI = addressFromStringValue(s(T, x(by)))
543- let bl = invoke(aI, "estimateGetOperationWrapperREADONLY", ["", by, bz, toString(aI)], nil)
544- let bA = {
545- let bn = bl
546- if (if ($isInstanceOf(bn._1, "Int"))
547- then if ($isInstanceOf(bn._2, "Int"))
548- then if ($isInstanceOf(bn._5, "Int"))
549- then if ($isInstanceOf(bn._6, "Int"))
550- then if ($isInstanceOf(bn._7, "Int"))
551- then if ($isInstanceOf(bn._8, "String"))
552- then $isInstanceOf(bn._9, "String")
770+@Callable(bn)
771+func poolEvaluateGetREADONLY (dD,dE) = {
772+ let cP = addressFromStringValue(t(aQ, S(dD)))
773+ let dr = invoke(cP, "estimateGetOperationWrapperREADONLY", ["", dD, dE, toString(cP)], nil)
774+ let dF = {
775+ let z = dr
776+ if (if ($isInstanceOf(z._1, "Int"))
777+ then if ($isInstanceOf(z._2, "Int"))
778+ then if ($isInstanceOf(z._5, "Int"))
779+ then if ($isInstanceOf(z._6, "Int"))
780+ then if ($isInstanceOf(z._7, "Int"))
781+ then if ($isInstanceOf(z._8, "String"))
782+ then $isInstanceOf(z._9, "String")
553783 else false
554784 else false
555785 else false
556786 else false
557787 else false
558788 else false)
559789 then {
560- let bB = bn._1
561- let bC = bn._2
562- let bq = bn._5
563- let br = bn._6
564- let bs = bn._7
565- let aV = bn._8
566- let be = bn._9
567- $Tuple7(bB, bC, bq, br, bs, aV, be)
790+ let dG = z._1
791+ let dH = z._2
792+ let dv = z._5
793+ let dw = z._6
794+ let dx = z._7
795+ let dc = z._8
796+ let dk = z._9
797+ $Tuple7(dG, dH, dv, dw, dx, dc, dk)
568798 }
569799 else throw("Couldn't cast types")
570800 }
571- let bB = bA._1
572- let bC = bA._2
573- let bq = bA._3
574- let br = bA._4
575- let bs = bA._5
576- let aV = bA._6
577- let be = bA._7
578- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bB), toString(bC), toString(bq), toString(br), toString(bs), aV, be], e))
801+ let dG = dF._1
802+ let dH = dF._2
803+ let dv = dF._3
804+ let dw = dF._4
805+ let dx = dF._5
806+ let dc = dF._6
807+ let dk = dF._7
808+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dG), toString(dH), toString(dv), toString(dw), toString(dx), dc, dk], e))
809+ }
810+
811+
812+
813+@Callable(bn)
814+func gwxUserInfoREADONLY (ak) = {
815+ let dI = {
816+ let cR = invoke(aU, "gwxUserInfoREADONLY", [ak], nil)
817+ if ($isInstanceOf(cR, "List[Any]"))
818+ then cR
819+ else throw("Couldn't cast Any to List[Any]")
820+ }
821+ let dJ = {
822+ let cR = dI[0]
823+ if ($isInstanceOf(cR, "Int"))
824+ then cR
825+ else throw("Couldn't cast Any to Int")
826+ }
827+ $Tuple2(nil, makeString(["%d", toString(dJ)], e))
579828 }
580829
581830

github/deemru/w8io/169f3d6 
200.00 ms