tx · 742342fAXps3hg7zSGfKSEUE8477SVpDVpKyEimjSVWj

3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6:  -0.01000000 Waves

2021.11.24 18:25 [1805305] smart account 3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6 > SELF 0.00000000 Waves

{ "type": 13, "id": "742342fAXps3hg7zSGfKSEUE8477SVpDVpKyEimjSVWj", "fee": 1000000, "feeAssetId": null, "timestamp": 1637767614574, "version": 1, "sender": "3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6", "senderPublicKey": "2F6Xr5hWciNeY5nz7JLvHqGLWVccgu2VNM9NRhoeghWN", "proofs": [ "NBfHUrKNxwDuJqZDYSs4iNCGTcKxnK5SwNtBKgeyEpfZFP48hwMdVgkvSr8UDjw9Mwct6UBV5DXrd5Yr6yjSL7x" ], "script": "base64:AAIFAAAAAAAAACwIAhIDCgEIEgMKAQgSBAoCCAgSAwoBCBIHCgUBAQEICBIAEgMKAQgSAwoBCAAAADwAAAAABlNDQUxFOAAAAAAAAAAACAAAAAAFTVVMVDgAAAAAAAX14QAAAAAAB1NDQUxFMTgAAAAAAAAAABIAAAAABk1VTFQxOAkAATYAAAABAA3gtrOnZAAAAAAAAANTRVACAAAAAl9fAAAAAA5pZHhQb29sQWRkcmVzcwAAAAAAAAAAAQAAAAANaWR4UG9vbFN0YXR1cwAAAAAAAAAAAgAAAAAQaWR4UG9vbExQQXNzZXRJZAAAAAAAAAAAAwAAAAANaWR4QW10QXNzZXRJZAAAAAAAAAAABAAAAAAPaWR4UHJpY2VBc3NldElkAAAAAAAAAAAFAAAAAA5pZHhBbXRBc3NldERjbQAAAAAAAAAABgAAAAAQaWR4UHJpY2VBc3NldERjbQAAAAAAAAAABwAAAAAOaWR4SUFtdEFzc2V0SWQAAAAAAAAAAAgAAAAAEGlkeElQcmljZUFzc2V0SWQAAAAAAAAAAAkAAAAADWlkeExQQXNzZXREY20AAAAAAAAAAAoBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPbWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAptYW5kYXRvcnkgCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAAS4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAxnZXRJbnRPclplcm8AAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQAAAAAAAAAAAAEAAAAMZ2V0SW50T3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlzLgUAAAADa2V5AgAAAA8gaXMgbm90IGRlZmluZWQBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAIAAAAcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwAAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAAAAAAAAAAABAAAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAAAAAAAAAAACAAAAABRJZHhGYWN0b3J5Q2ZnSWRvRGFwcAAAAAAAAAAAAwAAAAAVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwAAAAAAAAAAAEAAAAABlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwAAAAAAAAAAAFAAAAABVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAAAAAAAAAAAAYAAAAAGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAAAAAAAAAAAAcBAAAADWtleUZhY3RvcnlDZmcAAAAAAgAAABElc19fZmFjdG9yeUNvbmZpZwEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABBrZXlGYWN0b3J5THBMaXN0AAAAAAIAAAAQJXNfX2xwVG9rZW5zTGlzdAEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEAAAAPY29udHJhY3RBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAApwb29sV2VpZ2h0CQAETAAAAAIFAAAAD2NvbnRyYWN0QWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAQAAAApyZWFkTHBMaXN0AAAAAAkABLUAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAACQEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAAAUAAAADU0VQAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEAAAAHZmFjdG9yeQkABLUAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAHZmFjdG9yeQkBAAAADWtleUZhY3RvcnlDZmcAAAAABQAAAANTRVABAAAAGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAQAAAAtrZXlCb29zdENmZwAAAAACAAAACiVzX19jb25maWcBAAAAH2tleUJvb3N0aW5nTG9ja1BhcmFtVG90YWxBbW91bnQAAAAAAgAAAB4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAAAAKGtleUJvb3N0aW5nU3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MAAAAAAgAAACUlcyVzX19zdGF0c19fbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzAQAAABprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudAAAAAACAAAAFyVzJXNfX3N0YXRzX19sb2Nrc0NvdW50AQAAABprZXlCb29zdGluZ1N0YXRzVXNlcnNDb3VudAAAAAACAAAAHSVzJXNfX3N0YXRzX19hY3RpdmVVc2Vyc0NvdW50AQAAABJrZXlVc2VyMk51bU1hcHBpbmcAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAEmtleU51bTJVc2VyTWFwcGluZwAAAAEAAAADbnVtCQAEuQAAAAIJAARMAAAAAgIAAAAZJXMlcyVzX19tYXBwaW5nX19udW0ydXNlcgkABEwAAAACBQAAAANudW0FAAAAA25pbAUAAAADU0VQAQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQAAAAd1c2VyTnVtCQAEuQAAAAIJAARMAAAAAgIAAAAWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkABEwAAAACBQAAAAd1c2VyTnVtCQAETAAAAAICAAAABmFtb3VudAUAAAADbmlsBQAAAANTRVABAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAAFc3RhcnQFAAAAA25pbAUAAAADU0VQAQAAABRrZXlMb2NrUGFyYW1EdXJhdGlvbgAAAAEAAAAHdXNlck51bQkABLkAAAACCQAETAAAAAICAAAAFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAARMAAAAAgUAAAAHdXNlck51bQkABEwAAAACAgAAAAhkdXJhdGlvbgUAAAADbmlsBQAAAANTRVABAAAADWtleUxvY2tQYXJhbUsAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABawUAAAADbmlsBQAAAANTRVABAAAADWtleUxvY2tQYXJhbUIAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABYgUAAAADbmlsBQAAAANTRVABAAAAFWtleUxvY2tQYXJhbUJ5UGVyaW9kSwAAAAIAAAAHdXNlck51bQAAAAZwZXJpb2QJAAS5AAAAAgkABEwAAAACAgAAABclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkABEwAAAACBQAAAAd1c2VyTnVtCQAETAAAAAICAAAAAWsJAARMAAAAAgUAAAAGcGVyaW9kBQAAAANuaWwFAAAAA1NFUAEAAAAVa2V5TG9ja1BhcmFtQnlQZXJpb2RCAAAAAgAAAAd1c2VyTnVtAAAABnBlcmlvZAkABLkAAAACCQAETAAAAAICAAAAFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABYgkABEwAAAACBQAAAAZwZXJpb2QFAAAAA25pbAUAAAADU0VQAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACAAAADnVzZXJBZGRyZXNzU3RyAAAADGxwQXNzZXRJZFN0cgkABLkAAAACCQAETAAAAAICAAAADiVzJXMlc19fc3Rha2VkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAADmtleVN0YWtlZFRvdGFsAAAAAQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAXJXMlcyVzX19zdGFrZWRfX3RvdGFsX18FAAAADGxwQXNzZXRJZFN0cgEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAAAAGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUAAAAEAAAAD2ZhY3RvcnlDb250cmFjdAAAAA9zdGFraW5nQ29udHJhY3QAAAAQZW1pc3Npb25Db250cmFjdAAAAAlscEFzc2V0SWQEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABBQAAAAlscEFzc2V0SWQEAAAADnBvb2xXZWlnaHRNdWx0BQAAAAVNVUxUOAQAAAAKcG9vbFdlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAFXd4RW1pc3Npb25QZXJCbG9ja01heAkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAABAAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrCQAAawAAAAMFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAKcG9vbFdlaWdodAUAAAAOcG9vbFdlaWdodE11bHQEAAAAGXBvb2xXeEVtaXNzaW9uUGVyQmxvY2tNYXgJAABrAAAAAwUAAAAVd3hFbWlzc2lvblBlckJsb2NrTWF4BQAAAApwb29sV2VpZ2h0BQAAAA5wb29sV2VpZ2h0TXVsdAQAAAAJbWF4RmFjdG9yCQAAaAAAAAIAAAAAAAAAAAMFAAAABU1VTFQ4BAAAAA10b3RhbExwU3Rha2VkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAPc3Rha2luZ0NvbnRyYWN0CQEAAAAOa2V5U3Rha2VkVG90YWwAAAABBQAAAAlscEFzc2V0SWQJAARMAAAAAgUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACBQAAAAltYXhGYWN0b3IJAARMAAAAAgUAAAANdG90YWxMcFN0YWtlZAUAAAADbmlsAAAACAAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAEAAAAOZmFjdG9yeUFkZHJlc3MDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAObm90IGF1dGhvcml6ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAUAAAAOZmFjdG9yeUFkZHJlc3MFAAAAA25pbAAAAAFpAQAAABljdXJyZW50UmV3YXJkUmF0ZVJFQURPTkxZAAAAAQAAAAlscEFzc2V0SWQEAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAEAAAACmZhY3RvcnlDZmcJAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEFAAAAD2ZhY3RvcnlDb250cmFjdAQAAAAPc3Rha2luZ0NvbnRyYWN0CQEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwQAAAAKcmV3YXJkRGF0YQkBAAAAGWludGVybmFsQ3VycmVudFJld2FyZFJhdGUAAAAEBQAAAA9mYWN0b3J5Q29udHJhY3QFAAAAD3N0YWtpbmdDb250cmFjdAUAAAAQZW1pc3Npb25Db250cmFjdAUAAAAJbHBBc3NldElkBAAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAAGRAAAAAgUAAAAKcmV3YXJkRGF0YQAAAAAAAAAAAAQAAAAJbWF4RmFjdG9yCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAEEAAAADXRvdGFsTHBTdGFrZWQJAAGRAAAAAgUAAAAKcmV3YXJkRGF0YQAAAAAAAAAAAgkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAAYlZCVkJWQJAARMAAAAAgkAAaQAAAABBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAARMAAAAAgkAAaQAAAABBQAAAAltYXhGYWN0b3IJAARMAAAAAgkAAaQAAAABBQAAAA10b3RhbExwU3Rha2VkBQAAAANuaWwFAAAAA1NFUAAAAAFpAQAAAB1jdXJyZW50VXNlclJld2FyZFJhdGVSRUFET05MWQAAAAIAAAAJbHBBc3NldElkAAAAC3VzZXJBZGRyZXNzBAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAABAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QEAAAAD3N0YWtpbmdDb250cmFjdAkBAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwQAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcEAAAACnJld2FyZERhdGEJAQAAABlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAAAABAUAAAAPZmFjdG9yeUNvbnRyYWN0BQAAAA9zdGFraW5n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AAABMQAAAAIJAQAAAAExAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoJAAUUAAAAAgUAAAADbmlsCQABLAAAAAIJAAEsAAAAAgUAAAAGcmVzdWx0BQAAAANTRVAFAAAAC3VzZXJBZGRyZXNzAAAAAWkBAAAAEWNhbGNCb29zdFJFQURPTkxZAAAABQAAAA1kZWx0YVd4QW1vdW50AAAAF2RlbHRhTG9ja1BlcmlvZEluQmxvY2tzAAAADWRlbHRhTHBBbW91bnQAAAAMbHBBc3NldElkT3B0AAAADnVzZXJBZGRyZXNzT3B0BAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAABAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QEAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAAAhFTVBUWVNUUgIAAAAFZW1wdHkEAAAAF21heExvY2tEdXJhdGlvbkluQmxvY2tzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgkABLUAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAC2tleUJvb3N0Q2ZnAAAAAAUAAAADU0VQAAAAAAAAAAAEBAAAAAd1c2VyTnVtCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABJrZXlVc2VyMk51bU1hcHBpbmcAAAABBQAAAA51c2VyQWRkcmVzc09wdAUAAAAIRU1QVFlTVFIEAAAADGxvY2tlZEFtb3VudAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAB3VzZXJOdW0AAAAAAAAAAAAEAAAACGR1cmF0aW9uCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABRrZXlMb2NrUGFyYW1EdXJhdGlvbgAAAAEFAAAAB3VzZXJOdW0AAAAAAAAAAAAEAAAACnN0YXJ0QmxvY2sJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABBQAAAAd1c2VyTnVtBQAAAAZoZWlnaHQEAAAACGVuZEJsb2NrCQAAZAAAAAIFAAAACnN0YXJ0QmxvY2sFAAAACGR1cmF0aW9uBAAAABFyZW1haW5pbmdEdXJhdGlvbgkAAZYAAAABCQAETAAAAAIJAABlAAAAAgUAAAAIZW5kQmxvY2sFAAAABmhlaWdodAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwEAAAABWJvb3N0AwkBAAAAAiE9AAAAAgUAAAAOdXNlckFkZHJlc3NPcHQCAAAAAAkAAGgAAAACAAAAAAAAAAADBQAAAAVNVUxUOAkAAGgAAAACAAAAAAAAAAABBQAAAAVNVUxUOAQAAAAFU0NBTEUAAAAAAAAAA+gEAAAACHd4QW1vdW50CQAAZAAAAAIFAAAADGxvY2tlZEFtb3VudAUAAAANZGVsdGFXeEFtb3VudAQAAAASbG9ja0R1cmF0aW9uQmxvY2tzCQABlwAAAAEJAARMAAAAAgkAAGQAAAACBQAAABFyZW1haW5pbmdEdXJhdGlvbgUAAAAXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAARMAAAAAgUAAAAXbWF4TG9ja0R1cmF0aW9uSW5CbG9ja3MFAAAAA25pbAQAAAANbG9ja0VuZEhlaWdodAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEmxvY2tEdXJhdGlvbkJsb2NrcwQAAAAMc2NhbGU4UGFyYW1LCQEAAAABLQAAAAEJAABrAAAAAwUAAAAId3hBbW91bnQFAAAABVNDQUxFBQAAABJsb2NrRHVyYXRpb25CbG9ja3MEAAAADHNjYWxlOFBhcmFtQgkAAGgAAAACCQAAawAAAAMFAAAACHd4QW1vdW50BQAAAAVTQ0FMRQUAAAASbG9ja0R1cmF0aW9uQmxvY2tzBQAAAA1sb2NrRW5kSGVpZ2h0BAAAAAlnV3hBbW91bnQJAABpAAAAAgkAAGQAAAACCQAAaAAAAAIFAAAADHNjYWxlOFBhcmFtSwUAAAAGaGVpZ2h0BQAAAAxzY2FsZThQYXJhbUIFAAAABVNDQUxFCQAFFAAAAAIFAAAAA25pbAkABLkAAAACCQAETAAAAAICAAAABCVkJWQJAARMAAAAAgkAAaQAAAABBQAAAAlnV3hBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAAAVib29zdAUAAAADbmlsBQAAAANTRVAAAAABaQEAAAAXd3hFbWlzc2lvblN0YXRzUkVBRE9OTFkAAAAABAAAAAdPTkVNVUxUCQABpAAAAAEFAAAABU1VTFQ4BAAAAANPTkUCAAAAATEEAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAEAAAACmZhY3RvcnlDZmcJAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEFAAAAD2ZhY3RvcnlDb250cmFjdAQAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcEAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAQAAAASZW1pc3Npb25TdGFydEJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAAEAAAADHBhc3NlZEJsb2NrcwMJAABmAAAAAgUAAAASZW1pc3Npb25TdGFydEJsb2NrBQAAAAZoZWlnaHQAAAAAAAAAAAAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABJlbWlzc2lvblN0YXJ0QmxvY2sEAAAADnRlYW1FbUR1cmF0aW9uCQAAaAAAAAIAAAAAAAAABaAAAAAAAAAAAW0EAAAACXRlYW1FbU1heAkAAGgAAAACAAAAAAAL+wRABQAAAAVNVUxUOAQAAAAGdGVhbUVtAwkAAGYAAAACBQAAAAxwYXNzZWRCbG9ja3MFAAAADnRlYW1FbUR1cmF0aW9uBQAAAAl0ZWFtRW1NYXgJAABrAAAAAwUAAAAJdGVhbUVtTWF4BQAAAAxwYXNzZWRCbG9ja3MFAAAADnRlYW1FbUR1cmF0aW9uBAAAAA90b3RhbFd4UmVsZWFzZWQJAABkAAAAAgkAAGgAAAACBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sFAAAADHBhc3NlZEJsb2NrcwUAAAAGdGVhbUVtBAAAAA10b3RhbFd4TG9ja2VkCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAH2tleUJvb3N0aW5nTG9ja1BhcmFtVG90YWxBbW91bnQAAAAABAAAABhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAoa2V5Qm9vc3RpbmdTdGF0c0xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwAAAAAEAAAACmxvY2tzQ291bnQJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAaa2V5Qm9vc3RpbmdTdGF0c0xvY2tzQ291bnQAAAAACQAFFAAAAAIFAAAAA25pbAkABLkAAAACCQAETAAAAAICAAAACCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAPdG90YWxXeFJlbGVhc2VkCQAETAAAAAIJAAGkAAAAAQUAAAANdG90YWxXeExvY2tlZAkABEwAAAACCQABpAAAAAEFAAAAGGxvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwkABEwAAAACCQABpAAAAAEFAAAACmxvY2tzQ291bnQFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAD2xwU3RhdHNSRUFET05MWQAAAAEAAAAHbHBBc3NldAQAAAAO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", "chainId": 84, "height": 1805305, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3cjMYLNE5kPp5LX9wr42qQyBKwRqSpwejBqucBp4fgXa Next: 76EkAryJFqp7KyskdJqxGePJqH9ho36gcSiXEjPZJBMh Diff:
OldNewDifferences
9393 func R (P) = addressFromStringValue(P[w])
9494
9595
96-func S () = "%s%s__stats__activeTotalLocked"
96+func S () = "%s__config"
9797
9898
99-func T () = "%s%s__stats__locksDurationSumInBlocks"
99+func T () = "%s%s__stats__activeTotalLocked"
100100
101101
102-func U () = "%s%s__stats__locksCount"
102+func U () = "%s%s__stats__locksDurationSumInBlocks"
103103
104104
105-func V () = "%s%s__stats__activeUsersCount"
105+func V () = "%s%s__stats__locksCount"
106106
107107
108-func W (X,Y) = makeString(["%s%s%s__staked", X, Y], e)
108+func W () = "%s%s__stats__activeUsersCount"
109109
110110
111-func Z (Y) = ("%s%s%s__staked__total__" + Y)
111+func X (Y) = makeString(["%s%s%s__mapping__user2num", Y], e)
112112
113113
114-func aa () = "%s%s__ratePerBlock__current"
114+func Z (aa) = makeString(["%s%s%s__mapping__num2user", aa], e)
115115
116116
117-func ab () = "%s%s__ratePerBlockMax__current"
117+func ab (ac) = makeString(["%s%d%s__paramByUserNum", ac, "amount"], e)
118118
119119
120-func ac () = "%s%s__emission__startBlock"
120+func ad (ac) = makeString(["%s%d%s__paramByUserNum", ac, "start"], e)
121121
122122
123-func ad () = "%s%s__emission__duration"
123+func ae (ac) = makeString(["%s%d%s__paramByUserNum", ac, "duration"], e)
124124
125125
126-func ae () = "%s%s__emission__endBlock"
126+func af (ac) = makeString(["%s%d%s__paramByUserNum", ac, "k"], e)
127127
128128
129-func af (ag,ah,ai,aj) = {
130- let ak = r(ag, H(aj))
131- let al = b
132- let am = getIntegerValue(ag, I(ak))
133- let an = u(ai, aa())
134- let ao = u(ai, ab())
135- let ap = fraction(an, am, al)
136- let aq = fraction(ao, am, al)
137- let ar = (3 * b)
138- let as = t(ah, Z(aj))
139-[ap, ar, as]
129+func ag (ac) = makeString(["%s%d%s__paramByUserNum", ac, "b"], e)
130+
131+
132+func ah (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "k", ai], e)
133+
134+
135+func aj (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "b", ai], e)
136+
137+
138+func ak (al,am) = makeString(["%s%s%s__staked", al, am], e)
139+
140+
141+func an (am) = ("%s%s%s__staked__total__" + am)
142+
143+
144+func ao () = "%s%s__ratePerBlock__current"
145+
146+
147+func ap () = "%s%s__ratePerBlockMax__current"
148+
149+
150+func aq () = "%s%s__emission__startBlock"
151+
152+
153+func ar () = "%s%s__emission__duration"
154+
155+
156+func as () = "%s%s__emission__endBlock"
157+
158+
159+func at (au,av,aw,ax) = {
160+ let ay = r(au, H(ax))
161+ let az = b
162+ let aA = getIntegerValue(au, I(ay))
163+ let aB = u(aw, ao())
164+ let aC = u(aw, ap())
165+ let aD = fraction(aB, aA, az)
166+ let aE = fraction(aC, aA, az)
167+ let aF = (3 * b)
168+ let aG = t(av, an(ax))
169+[aD, aF, aG]
140170 }
141171
142172
143-@Callable(at)
144-func constructor (au) = if ((at.caller != this))
173+@Callable(aH)
174+func constructor (aI) = if ((aH.caller != this))
145175 then throw("not authorized")
146- else [StringEntry(v(), au)]
176+ else [StringEntry(v(), aI)]
147177
148178
149179
150-@Callable(at)
151-func currentRewardRateREADONLY (aj) = {
152- let ag = K()
153- let P = M(ag)
154- let ah = R(P)
155- let ai = Q(P)
156- let av = af(ag, ah, ai, aj)
157- let an = av[0]
158- let ar = av[1]
159- let as = av[2]
160- $Tuple2(nil, makeString(["%d%d%d", toString(an), toString(ar), toString(as)], e))
180+@Callable(aH)
181+func currentRewardRateREADONLY (ax) = {
182+ let au = K()
183+ let P = M(au)
184+ let av = R(P)
185+ let aw = Q(P)
186+ let aJ = at(au, av, aw, ax)
187+ let aB = aJ[0]
188+ let aF = aJ[1]
189+ let aG = aJ[2]
190+ $Tuple2(nil, makeString(["%d%d%d", toString(aB), toString(aF), toString(aG)], e))
161191 }
162192
163193
164194
165-@Callable(at)
166-func currentUserRewardRateREADONLY (aj,aw) = {
167- let ag = K()
168- let P = M(ag)
169- let ah = R(P)
170- let ai = Q(P)
171- let av = af(ag, ah, ai, aj)
172- let an = av[0]
173- let ar = av[1]
174- let as = av[2]
175- let ax = t(ah, W(aw, aj))
176- let ay = (1 * b)
177- $Tuple2(nil, makeString(["%d%d%d%d%d", toString(an), toString(ar), toString(as), toString(ax), toString(ay)], e))
195+@Callable(aH)
196+func currentUserRewardRateREADONLY (ax,Y) = {
197+ let au = K()
198+ let P = M(au)
199+ let av = R(P)
200+ let aw = Q(P)
201+ let aJ = at(au, av, aw, ax)
202+ let aB = aJ[0]
203+ let aF = aJ[1]
204+ let aG = aJ[2]
205+ let aK = t(av, ak(Y, ax))
206+ let aL = (1 * b)
207+ $Tuple2(nil, makeString(["%d%d%d%d%d", toString(aB), toString(aF), toString(aG), toString(aK), toString(aL)], e))
178208 }
179209
180210
181211
182-@Callable(at)
183-func claimedRewardREADONLY (aw) = {
184- let az = L()
185- let aA = "%s%d%d%d%s"
186- func aB (aC,aD) = {
187- let aE = ((toInt(fromBase58String(aD)) % 100000) + (toInt(toBytes(aw)) % 100000))
188- let aF = if ((0 > aE))
189- then -(aE)
190- else aE
191- let aG = (((aF % 100) * b) + (aF * (b / 100000)))
192- let aH = ((aG / 6) * 2)
193- let aI = ((aG / 6) * 3)
194- let aJ = (aG / 6)
195- makeString([(aA + aC), aD, toString(aH), toString(aI), toString(aJ), "end"], e)
212+@Callable(aH)
213+func claimedRewardREADONLY (Y) = {
214+ let aM = L()
215+ let aN = "%s%d%d%d%s"
216+ func aO (aP,aQ) = {
217+ let aR = ((toInt(fromBase58String(aQ)) % 100000) + (toInt(toBytes(Y)) % 100000))
218+ let aS = if ((0 > aR))
219+ then -(aR)
220+ else aR
221+ let aT = (((aS % 100) * b) + (aS * (b / 100000)))
222+ let aU = ((aT / 6) * 2)
223+ let aV = ((aT / 6) * 3)
224+ let aW = (aT / 6)
225+ makeString([(aN + aP), aQ, toString(aU), toString(aV), toString(aW), "end"], e)
196226 }
197227
198- let aK = {
199- let aL = az
200- let aM = size(aL)
201- let aN = "%s"
202- func aO (aP,aQ) = if ((aQ >= aM))
203- then aP
204- else aB(aP, aL[aQ])
228+ let aX = {
229+ let aY = aM
230+ let aZ = size(aY)
231+ let ba = "%s"
232+ func bb (bc,bd) = if ((bd >= aZ))
233+ then bc
234+ else aO(bc, aY[bd])
205235
206- func aR (aP,aQ) = if ((aQ >= aM))
207- then aP
236+ func be (bc,bd) = if ((bd >= aZ))
237+ then bc
208238 else throw("List size exceeds 10")
209239
210- aR(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
240+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
211241 }
212- $Tuple2(nil, ((aK + e) + aw))
242+ $Tuple2(nil, ((aX + e) + Y))
213243 }
214244
215245
216246
217-@Callable(at)
218-func calcBoostREADONLY (aS,aT,aU,aV,aW) = {
219- let aX = if ((aW != ""))
247+@Callable(aH)
248+func calcBoostREADONLY (bf,bg,bh,bi,bj) = {
249+ let au = K()
250+ let P = M(au)
251+ let bk = O(P)
252+ let bl = "empty"
253+ let bm = parseIntValue(split(r(bk, S()), e)[4])
254+ let ac = valueOrElse(getString(bk, X(bj)), bl)
255+ let bn = valueOrElse(getInteger(bk, ab(ac)), 0)
256+ let bo = valueOrElse(getInteger(bk, ae(ac)), 0)
257+ let bp = valueOrElse(getInteger(bk, ad(ac)), height)
258+ let bq = (bp + bo)
259+ let br = max([(bq - height), 0])
260+ let bs = if ((bj != ""))
220261 then (3 * b)
221262 else (1 * b)
222- let aY = fraction(toBigInt(aT), d, toBigInt((30 * 1440)))
223- let aZ = (pow(aY, c, toBigInt(2), 0, c, HALFUP) / toBigInt(1000))
224- let ba = 1000
225- let bb = aS
226- let bc = aT
227- let bd = (height + aT)
228- let be = -(fraction(bb, ba, bc))
229- let bf = (fraction(bb, ba, bc) * bd)
230- let bg = (((be * height) + bf) / ba)
231- $Tuple2(nil, makeString(["%d%d", toString(bg), toString(aX)], e))
263+ let bt = 1000
264+ let bu = (bn + bf)
265+ let bv = min([(br + bg), bm])
266+ let bw = (height + bv)
267+ let bx = -(fraction(bu, bt, bv))
268+ let by = (fraction(bu, bt, bv) * bw)
269+ let bz = (((bx * height) + by) / bt)
270+ $Tuple2(nil, makeString(["%d%d", toString(bz), toString(bs)], e))
232271 }
233272
234273
235274
236-@Callable(at)
275+@Callable(aH)
237276 func wxEmissionStatsREADONLY () = {
238- let bh = toString(b)
239- let bi = "1"
240- let ag = K()
241- let P = M(ag)
242- let bj = O(P)
243- let ai = Q(P)
244- let an = u(ai, aa())
245- let bk = u(ai, ac())
246- let bl = if ((bk > height))
277+ let bA = toString(b)
278+ let bB = "1"
279+ let au = K()
280+ let P = M(au)
281+ let bk = O(P)
282+ let aw = Q(P)
283+ let aB = u(aw, ao())
284+ let bC = u(aw, aq())
285+ let bD = if ((bC > height))
247286 then 0
248- else (height - bk)
249- let bm = (1440 * 365)
250- let bn = (200000000 * b)
251- let bo = if ((bl > bm))
252- then bn
253- else fraction(bn, bl, bm)
254- let bp = ((an * bl) + bo)
255- let bq = t(bj, S())
256- let br = t(bj, T())
257- let bs = t(bj, U())
258- $Tuple2(nil, makeString(["%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bs)], e))
287+ else (height - bC)
288+ let bE = (1440 * 365)
289+ let bF = (201000000 * b)
290+ let bG = if ((bD > bE))
291+ then bF
292+ else fraction(bF, bD, bE)
293+ let bH = ((aB * bD) + bG)
294+ let bI = t(bk, T())
295+ let bJ = t(bk, U())
296+ let bK = t(bk, V())
297+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK)], e))
259298 }
260299
261300
262301
263-@Callable(at)
264-func lpStatsREADONLY (bt) = {
265- let au = K()
266- let bu = addressFromStringValue(r(au, H(bt)))
267- let bv = if ($isInstanceOf(invoke(bu, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
268- then invoke(bu, "getPoolConfigWrapperREADONLY", nil, nil)
302+@Callable(aH)
303+func lpStatsREADONLY (bL) = {
304+ let aI = K()
305+ let bM = addressFromStringValue(r(aI, H(bL)))
306+ let bN = if ($isInstanceOf(invoke(bM, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
307+ then invoke(bM, "getPoolConfigWrapperREADONLY", nil, nil)
269308 else throw("Couldn't cast Any to List[Any]")
270- let aj = fromBase58String(if ($isInstanceOf(bv[h], "String"))
271- then bv[h]
309+ let ax = fromBase58String(if ($isInstanceOf(bN[h], "String"))
310+ then bN[h]
272311 else throw("Couldn't cast Any to String"))
273- let bw = if ($isInstanceOf(bv[i], "String"))
274- then bv[i]
312+ let bO = if ($isInstanceOf(bN[i], "String"))
313+ then bN[i]
275314 else throw("Couldn't cast Any to String")
276- let bx = if ($isInstanceOf(bv[j], "String"))
277- then bv[j]
315+ let bP = if ($isInstanceOf(bN[j], "String"))
316+ then bN[j]
278317 else throw("Couldn't cast Any to String")
279- let by = if ($isInstanceOf(bv[m], "String"))
280- then bv[m]
318+ let bQ = if ($isInstanceOf(bN[m], "String"))
319+ then bN[m]
281320 else throw("Couldn't cast Any to String")
282- let bz = if ($isInstanceOf(bv[n], "String"))
283- then bv[n]
321+ let bR = if ($isInstanceOf(bN[n], "String"))
322+ then bN[n]
284323 else throw("Couldn't cast Any to String")
285- let bA = parseIntValue(if ($isInstanceOf(bv[k], "String"))
286- then bv[k]
324+ let bS = parseIntValue(if ($isInstanceOf(bN[k], "String"))
325+ then bN[k]
287326 else throw("Couldn't cast Any to String"))
288- let bB = parseIntValue(if ($isInstanceOf(bv[l], "String"))
289- then bv[l]
327+ let bT = parseIntValue(if ($isInstanceOf(bN[l], "String"))
328+ then bN[l]
290329 else throw("Couldn't cast Any to String"))
291- let bC = valueOrErrorMessage(assetInfo(aj), (("Asset " + toBase58String(aj)) + " doesn't exist")).quantity
292- let bD = if ($isInstanceOf(invoke(bu, "getAccBalanceWrapperREADONLY", [bw], nil), "Int"))
293- then invoke(bu, "getAccBalanceWrapperREADONLY", [bw], nil)
330+ let bU = valueOrErrorMessage(assetInfo(ax), (("Asset " + toBase58String(ax)) + " doesn't exist")).quantity
331+ let bV = if ($isInstanceOf(invoke(bM, "getAccBalanceWrapperREADONLY", [bO], nil), "Int"))
332+ then invoke(bM, "getAccBalanceWrapperREADONLY", [bO], nil)
294333 else throw("Couldn't cast Any to Int")
295- let bE = if ($isInstanceOf(invoke(bu, "getAccBalanceWrapperREADONLY", [bx], nil), "Int"))
296- then invoke(bu, "getAccBalanceWrapperREADONLY", [bx], nil)
334+ let bW = if ($isInstanceOf(invoke(bM, "getAccBalanceWrapperREADONLY", [bP], nil), "Int"))
335+ then invoke(bM, "getAccBalanceWrapperREADONLY", [bP], nil)
297336 else throw("Couldn't cast Any to Int")
298- let bF = if ($isInstanceOf(invoke(bu, "calcPricesWrapperREADONLY", [bD, bE, bC], nil), "List[Any]"))
299- then invoke(bu, "calcPricesWrapperREADONLY", [bD, bE, bC], nil)
337+ let bX = if ($isInstanceOf(invoke(bM, "calcPricesWrapperREADONLY", [bV, bW, bU], nil), "List[Any]"))
338+ then invoke(bM, "calcPricesWrapperREADONLY", [bV, bW, bU], nil)
300339 else throw("Couldn't cast Any to List[Any]")
301- let bG = 0
302- let bH = if ($isInstanceOf(invoke(bu, "fromX18WrapperREADONLY", [bF[1], b], nil), "Int"))
303- then invoke(bu, "fromX18WrapperREADONLY", [bF[1], b], nil)
340+ let bY = 0
341+ let bZ = if ($isInstanceOf(invoke(bM, "fromX18WrapperREADONLY", [bX[1], b], nil), "Int"))
342+ then invoke(bM, "fromX18WrapperREADONLY", [bX[1], b], nil)
304343 else throw("Couldn't cast Any to Int")
305- let bI = if ($isInstanceOf(invoke(bu, "fromX18WrapperREADONLY", [bF[2], b], nil), "Int"))
306- then invoke(bu, "fromX18WrapperREADONLY", [bF[2], b], nil)
344+ let ca = if ($isInstanceOf(invoke(bM, "fromX18WrapperREADONLY", [bX[2], b], nil), "Int"))
345+ then invoke(bM, "fromX18WrapperREADONLY", [bX[2], b], nil)
307346 else throw("Couldn't cast Any to Int")
308- let am = getIntegerValue(au, I(toString(bu)))
309- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bD), toString(bE), toString(bC), toString(bG), toString(bH), toString(bI), toString(am)], e))
347+ let aA = getIntegerValue(aI, I(toString(bM)))
348+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bV), toString(bW), toString(bU), toString(bY), toString(bZ), toString(ca), toString(aA)], e))
310349 }
311350
312351
313352
314-@Callable(at)
315-func gwxUserInfoREADONLY (aw) = {
316- let ag = K()
317- let P = M(ag)
318- let bj = O(P)
319- let bJ = if ($isInstanceOf(invoke(bj, "gwxUserInfoREADONLY", [aw], nil), "List[Any]"))
320- then invoke(bj, "gwxUserInfoREADONLY", [aw], nil)
353+@Callable(aH)
354+func gwxUserInfoREADONLY (Y) = {
355+ let au = K()
356+ let P = M(au)
357+ let bk = O(P)
358+ let cb = if ($isInstanceOf(invoke(bk, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
359+ then invoke(bk, "gwxUserInfoREADONLY", [Y], nil)
321360 else throw("Couldn't cast Any to List[Any]")
322- let bK = if ($isInstanceOf(bJ[0], "Int"))
323- then bJ[0]
361+ let cc = if ($isInstanceOf(cb[0], "Int"))
362+ then cb[0]
324363 else throw("Couldn't cast Any to Int")
325- $Tuple2(nil, makeString(["%d", toString(bK)], e))
364+ $Tuple2(nil, makeString(["%d", toString(cc)], e))
326365 }
327366
328367
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
1414 let f = 1
1515
1616 let g = 2
1717
1818 let h = 3
1919
2020 let i = 4
2121
2222 let j = 5
2323
2424 let k = 6
2525
2626 let l = 7
2727
2828 let m = 8
2929
3030 let n = 9
3131
3232 let o = 10
3333
3434 func p (q) = valueOrErrorMessage(getString(q), (("mandatory this." + q) + " is not defined"))
3535
3636
3737 func r (s,q) = valueOrErrorMessage(getString(s, q), (((("mandatory " + toString(s)) + ".") + q) + " is not defined"))
3838
3939
4040 func t (s,q) = valueOrElse(getInteger(s, q), 0)
4141
4242
4343 func u (s,q) = valueOrErrorMessage(getInteger(s, q), (("mandatory this." + q) + " is not defined"))
4444
4545
4646 func v () = "%s%s__config__factoryAddress"
4747
4848
4949 let w = 1
5050
5151 let x = 2
5252
5353 let y = 3
5454
5555 let z = 4
5656
5757 let A = 5
5858
5959 let B = 6
6060
6161 let C = 7
6262
6363 func D () = "%s__factoryConfig"
6464
6565
6666 func E (F) = makeString(["%s%s%s", F, "mappings__lpAsset2PoolContract"], e)
6767
6868
6969 func G () = "%s__lpTokensList"
7070
7171
7272 func H (F) = makeString(["%s%s%s", F, "mappings__lpAsset2PoolContract"], e)
7373
7474
7575 func I (J) = makeString(["%s%s", "poolWeight", J], e)
7676
7777
7878 func K () = addressFromStringValue(p(v()))
7979
8080
8181 func L () = split(valueOrElse(getString(K(), G()), ""), e)
8282
8383
8484 func M (N) = split(r(N, D()), e)
8585
8686
8787 func O (P) = addressFromStringValue(P[x])
8888
8989
9090 func Q (P) = addressFromStringValue(P[A])
9191
9292
9393 func R (P) = addressFromStringValue(P[w])
9494
9595
96-func S () = "%s%s__stats__activeTotalLocked"
96+func S () = "%s__config"
9797
9898
99-func T () = "%s%s__stats__locksDurationSumInBlocks"
99+func T () = "%s%s__stats__activeTotalLocked"
100100
101101
102-func U () = "%s%s__stats__locksCount"
102+func U () = "%s%s__stats__locksDurationSumInBlocks"
103103
104104
105-func V () = "%s%s__stats__activeUsersCount"
105+func V () = "%s%s__stats__locksCount"
106106
107107
108-func W (X,Y) = makeString(["%s%s%s__staked", X, Y], e)
108+func W () = "%s%s__stats__activeUsersCount"
109109
110110
111-func Z (Y) = ("%s%s%s__staked__total__" + Y)
111+func X (Y) = makeString(["%s%s%s__mapping__user2num", Y], e)
112112
113113
114-func aa () = "%s%s__ratePerBlock__current"
114+func Z (aa) = makeString(["%s%s%s__mapping__num2user", aa], e)
115115
116116
117-func ab () = "%s%s__ratePerBlockMax__current"
117+func ab (ac) = makeString(["%s%d%s__paramByUserNum", ac, "amount"], e)
118118
119119
120-func ac () = "%s%s__emission__startBlock"
120+func ad (ac) = makeString(["%s%d%s__paramByUserNum", ac, "start"], e)
121121
122122
123-func ad () = "%s%s__emission__duration"
123+func ae (ac) = makeString(["%s%d%s__paramByUserNum", ac, "duration"], e)
124124
125125
126-func ae () = "%s%s__emission__endBlock"
126+func af (ac) = makeString(["%s%d%s__paramByUserNum", ac, "k"], e)
127127
128128
129-func af (ag,ah,ai,aj) = {
130- let ak = r(ag, H(aj))
131- let al = b
132- let am = getIntegerValue(ag, I(ak))
133- let an = u(ai, aa())
134- let ao = u(ai, ab())
135- let ap = fraction(an, am, al)
136- let aq = fraction(ao, am, al)
137- let ar = (3 * b)
138- let as = t(ah, Z(aj))
139-[ap, ar, as]
129+func ag (ac) = makeString(["%s%d%s__paramByUserNum", ac, "b"], e)
130+
131+
132+func ah (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "k", ai], e)
133+
134+
135+func aj (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "b", ai], e)
136+
137+
138+func ak (al,am) = makeString(["%s%s%s__staked", al, am], e)
139+
140+
141+func an (am) = ("%s%s%s__staked__total__" + am)
142+
143+
144+func ao () = "%s%s__ratePerBlock__current"
145+
146+
147+func ap () = "%s%s__ratePerBlockMax__current"
148+
149+
150+func aq () = "%s%s__emission__startBlock"
151+
152+
153+func ar () = "%s%s__emission__duration"
154+
155+
156+func as () = "%s%s__emission__endBlock"
157+
158+
159+func at (au,av,aw,ax) = {
160+ let ay = r(au, H(ax))
161+ let az = b
162+ let aA = getIntegerValue(au, I(ay))
163+ let aB = u(aw, ao())
164+ let aC = u(aw, ap())
165+ let aD = fraction(aB, aA, az)
166+ let aE = fraction(aC, aA, az)
167+ let aF = (3 * b)
168+ let aG = t(av, an(ax))
169+[aD, aF, aG]
140170 }
141171
142172
143-@Callable(at)
144-func constructor (au) = if ((at.caller != this))
173+@Callable(aH)
174+func constructor (aI) = if ((aH.caller != this))
145175 then throw("not authorized")
146- else [StringEntry(v(), au)]
176+ else [StringEntry(v(), aI)]
147177
148178
149179
150-@Callable(at)
151-func currentRewardRateREADONLY (aj) = {
152- let ag = K()
153- let P = M(ag)
154- let ah = R(P)
155- let ai = Q(P)
156- let av = af(ag, ah, ai, aj)
157- let an = av[0]
158- let ar = av[1]
159- let as = av[2]
160- $Tuple2(nil, makeString(["%d%d%d", toString(an), toString(ar), toString(as)], e))
180+@Callable(aH)
181+func currentRewardRateREADONLY (ax) = {
182+ let au = K()
183+ let P = M(au)
184+ let av = R(P)
185+ let aw = Q(P)
186+ let aJ = at(au, av, aw, ax)
187+ let aB = aJ[0]
188+ let aF = aJ[1]
189+ let aG = aJ[2]
190+ $Tuple2(nil, makeString(["%d%d%d", toString(aB), toString(aF), toString(aG)], e))
161191 }
162192
163193
164194
165-@Callable(at)
166-func currentUserRewardRateREADONLY (aj,aw) = {
167- let ag = K()
168- let P = M(ag)
169- let ah = R(P)
170- let ai = Q(P)
171- let av = af(ag, ah, ai, aj)
172- let an = av[0]
173- let ar = av[1]
174- let as = av[2]
175- let ax = t(ah, W(aw, aj))
176- let ay = (1 * b)
177- $Tuple2(nil, makeString(["%d%d%d%d%d", toString(an), toString(ar), toString(as), toString(ax), toString(ay)], e))
195+@Callable(aH)
196+func currentUserRewardRateREADONLY (ax,Y) = {
197+ let au = K()
198+ let P = M(au)
199+ let av = R(P)
200+ let aw = Q(P)
201+ let aJ = at(au, av, aw, ax)
202+ let aB = aJ[0]
203+ let aF = aJ[1]
204+ let aG = aJ[2]
205+ let aK = t(av, ak(Y, ax))
206+ let aL = (1 * b)
207+ $Tuple2(nil, makeString(["%d%d%d%d%d", toString(aB), toString(aF), toString(aG), toString(aK), toString(aL)], e))
178208 }
179209
180210
181211
182-@Callable(at)
183-func claimedRewardREADONLY (aw) = {
184- let az = L()
185- let aA = "%s%d%d%d%s"
186- func aB (aC,aD) = {
187- let aE = ((toInt(fromBase58String(aD)) % 100000) + (toInt(toBytes(aw)) % 100000))
188- let aF = if ((0 > aE))
189- then -(aE)
190- else aE
191- let aG = (((aF % 100) * b) + (aF * (b / 100000)))
192- let aH = ((aG / 6) * 2)
193- let aI = ((aG / 6) * 3)
194- let aJ = (aG / 6)
195- makeString([(aA + aC), aD, toString(aH), toString(aI), toString(aJ), "end"], e)
212+@Callable(aH)
213+func claimedRewardREADONLY (Y) = {
214+ let aM = L()
215+ let aN = "%s%d%d%d%s"
216+ func aO (aP,aQ) = {
217+ let aR = ((toInt(fromBase58String(aQ)) % 100000) + (toInt(toBytes(Y)) % 100000))
218+ let aS = if ((0 > aR))
219+ then -(aR)
220+ else aR
221+ let aT = (((aS % 100) * b) + (aS * (b / 100000)))
222+ let aU = ((aT / 6) * 2)
223+ let aV = ((aT / 6) * 3)
224+ let aW = (aT / 6)
225+ makeString([(aN + aP), aQ, toString(aU), toString(aV), toString(aW), "end"], e)
196226 }
197227
198- let aK = {
199- let aL = az
200- let aM = size(aL)
201- let aN = "%s"
202- func aO (aP,aQ) = if ((aQ >= aM))
203- then aP
204- else aB(aP, aL[aQ])
228+ let aX = {
229+ let aY = aM
230+ let aZ = size(aY)
231+ let ba = "%s"
232+ func bb (bc,bd) = if ((bd >= aZ))
233+ then bc
234+ else aO(bc, aY[bd])
205235
206- func aR (aP,aQ) = if ((aQ >= aM))
207- then aP
236+ func be (bc,bd) = if ((bd >= aZ))
237+ then bc
208238 else throw("List size exceeds 10")
209239
210- aR(aO(aO(aO(aO(aO(aO(aO(aO(aO(aO(aN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
240+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
211241 }
212- $Tuple2(nil, ((aK + e) + aw))
242+ $Tuple2(nil, ((aX + e) + Y))
213243 }
214244
215245
216246
217-@Callable(at)
218-func calcBoostREADONLY (aS,aT,aU,aV,aW) = {
219- let aX = if ((aW != ""))
247+@Callable(aH)
248+func calcBoostREADONLY (bf,bg,bh,bi,bj) = {
249+ let au = K()
250+ let P = M(au)
251+ let bk = O(P)
252+ let bl = "empty"
253+ let bm = parseIntValue(split(r(bk, S()), e)[4])
254+ let ac = valueOrElse(getString(bk, X(bj)), bl)
255+ let bn = valueOrElse(getInteger(bk, ab(ac)), 0)
256+ let bo = valueOrElse(getInteger(bk, ae(ac)), 0)
257+ let bp = valueOrElse(getInteger(bk, ad(ac)), height)
258+ let bq = (bp + bo)
259+ let br = max([(bq - height), 0])
260+ let bs = if ((bj != ""))
220261 then (3 * b)
221262 else (1 * b)
222- let aY = fraction(toBigInt(aT), d, toBigInt((30 * 1440)))
223- let aZ = (pow(aY, c, toBigInt(2), 0, c, HALFUP) / toBigInt(1000))
224- let ba = 1000
225- let bb = aS
226- let bc = aT
227- let bd = (height + aT)
228- let be = -(fraction(bb, ba, bc))
229- let bf = (fraction(bb, ba, bc) * bd)
230- let bg = (((be * height) + bf) / ba)
231- $Tuple2(nil, makeString(["%d%d", toString(bg), toString(aX)], e))
263+ let bt = 1000
264+ let bu = (bn + bf)
265+ let bv = min([(br + bg), bm])
266+ let bw = (height + bv)
267+ let bx = -(fraction(bu, bt, bv))
268+ let by = (fraction(bu, bt, bv) * bw)
269+ let bz = (((bx * height) + by) / bt)
270+ $Tuple2(nil, makeString(["%d%d", toString(bz), toString(bs)], e))
232271 }
233272
234273
235274
236-@Callable(at)
275+@Callable(aH)
237276 func wxEmissionStatsREADONLY () = {
238- let bh = toString(b)
239- let bi = "1"
240- let ag = K()
241- let P = M(ag)
242- let bj = O(P)
243- let ai = Q(P)
244- let an = u(ai, aa())
245- let bk = u(ai, ac())
246- let bl = if ((bk > height))
277+ let bA = toString(b)
278+ let bB = "1"
279+ let au = K()
280+ let P = M(au)
281+ let bk = O(P)
282+ let aw = Q(P)
283+ let aB = u(aw, ao())
284+ let bC = u(aw, aq())
285+ let bD = if ((bC > height))
247286 then 0
248- else (height - bk)
249- let bm = (1440 * 365)
250- let bn = (200000000 * b)
251- let bo = if ((bl > bm))
252- then bn
253- else fraction(bn, bl, bm)
254- let bp = ((an * bl) + bo)
255- let bq = t(bj, S())
256- let br = t(bj, T())
257- let bs = t(bj, U())
258- $Tuple2(nil, makeString(["%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bs)], e))
287+ else (height - bC)
288+ let bE = (1440 * 365)
289+ let bF = (201000000 * b)
290+ let bG = if ((bD > bE))
291+ then bF
292+ else fraction(bF, bD, bE)
293+ let bH = ((aB * bD) + bG)
294+ let bI = t(bk, T())
295+ let bJ = t(bk, U())
296+ let bK = t(bk, V())
297+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bH), toString(bI), toString(bJ), toString(bK)], e))
259298 }
260299
261300
262301
263-@Callable(at)
264-func lpStatsREADONLY (bt) = {
265- let au = K()
266- let bu = addressFromStringValue(r(au, H(bt)))
267- let bv = if ($isInstanceOf(invoke(bu, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
268- then invoke(bu, "getPoolConfigWrapperREADONLY", nil, nil)
302+@Callable(aH)
303+func lpStatsREADONLY (bL) = {
304+ let aI = K()
305+ let bM = addressFromStringValue(r(aI, H(bL)))
306+ let bN = if ($isInstanceOf(invoke(bM, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
307+ then invoke(bM, "getPoolConfigWrapperREADONLY", nil, nil)
269308 else throw("Couldn't cast Any to List[Any]")
270- let aj = fromBase58String(if ($isInstanceOf(bv[h], "String"))
271- then bv[h]
309+ let ax = fromBase58String(if ($isInstanceOf(bN[h], "String"))
310+ then bN[h]
272311 else throw("Couldn't cast Any to String"))
273- let bw = if ($isInstanceOf(bv[i], "String"))
274- then bv[i]
312+ let bO = if ($isInstanceOf(bN[i], "String"))
313+ then bN[i]
275314 else throw("Couldn't cast Any to String")
276- let bx = if ($isInstanceOf(bv[j], "String"))
277- then bv[j]
315+ let bP = if ($isInstanceOf(bN[j], "String"))
316+ then bN[j]
278317 else throw("Couldn't cast Any to String")
279- let by = if ($isInstanceOf(bv[m], "String"))
280- then bv[m]
318+ let bQ = if ($isInstanceOf(bN[m], "String"))
319+ then bN[m]
281320 else throw("Couldn't cast Any to String")
282- let bz = if ($isInstanceOf(bv[n], "String"))
283- then bv[n]
321+ let bR = if ($isInstanceOf(bN[n], "String"))
322+ then bN[n]
284323 else throw("Couldn't cast Any to String")
285- let bA = parseIntValue(if ($isInstanceOf(bv[k], "String"))
286- then bv[k]
324+ let bS = parseIntValue(if ($isInstanceOf(bN[k], "String"))
325+ then bN[k]
287326 else throw("Couldn't cast Any to String"))
288- let bB = parseIntValue(if ($isInstanceOf(bv[l], "String"))
289- then bv[l]
327+ let bT = parseIntValue(if ($isInstanceOf(bN[l], "String"))
328+ then bN[l]
290329 else throw("Couldn't cast Any to String"))
291- let bC = valueOrErrorMessage(assetInfo(aj), (("Asset " + toBase58String(aj)) + " doesn't exist")).quantity
292- let bD = if ($isInstanceOf(invoke(bu, "getAccBalanceWrapperREADONLY", [bw], nil), "Int"))
293- then invoke(bu, "getAccBalanceWrapperREADONLY", [bw], nil)
330+ let bU = valueOrErrorMessage(assetInfo(ax), (("Asset " + toBase58String(ax)) + " doesn't exist")).quantity
331+ let bV = if ($isInstanceOf(invoke(bM, "getAccBalanceWrapperREADONLY", [bO], nil), "Int"))
332+ then invoke(bM, "getAccBalanceWrapperREADONLY", [bO], nil)
294333 else throw("Couldn't cast Any to Int")
295- let bE = if ($isInstanceOf(invoke(bu, "getAccBalanceWrapperREADONLY", [bx], nil), "Int"))
296- then invoke(bu, "getAccBalanceWrapperREADONLY", [bx], nil)
334+ let bW = if ($isInstanceOf(invoke(bM, "getAccBalanceWrapperREADONLY", [bP], nil), "Int"))
335+ then invoke(bM, "getAccBalanceWrapperREADONLY", [bP], nil)
297336 else throw("Couldn't cast Any to Int")
298- let bF = if ($isInstanceOf(invoke(bu, "calcPricesWrapperREADONLY", [bD, bE, bC], nil), "List[Any]"))
299- then invoke(bu, "calcPricesWrapperREADONLY", [bD, bE, bC], nil)
337+ let bX = if ($isInstanceOf(invoke(bM, "calcPricesWrapperREADONLY", [bV, bW, bU], nil), "List[Any]"))
338+ then invoke(bM, "calcPricesWrapperREADONLY", [bV, bW, bU], nil)
300339 else throw("Couldn't cast Any to List[Any]")
301- let bG = 0
302- let bH = if ($isInstanceOf(invoke(bu, "fromX18WrapperREADONLY", [bF[1], b], nil), "Int"))
303- then invoke(bu, "fromX18WrapperREADONLY", [bF[1], b], nil)
340+ let bY = 0
341+ let bZ = if ($isInstanceOf(invoke(bM, "fromX18WrapperREADONLY", [bX[1], b], nil), "Int"))
342+ then invoke(bM, "fromX18WrapperREADONLY", [bX[1], b], nil)
304343 else throw("Couldn't cast Any to Int")
305- let bI = if ($isInstanceOf(invoke(bu, "fromX18WrapperREADONLY", [bF[2], b], nil), "Int"))
306- then invoke(bu, "fromX18WrapperREADONLY", [bF[2], b], nil)
344+ let ca = if ($isInstanceOf(invoke(bM, "fromX18WrapperREADONLY", [bX[2], b], nil), "Int"))
345+ then invoke(bM, "fromX18WrapperREADONLY", [bX[2], b], nil)
307346 else throw("Couldn't cast Any to Int")
308- let am = getIntegerValue(au, I(toString(bu)))
309- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bD), toString(bE), toString(bC), toString(bG), toString(bH), toString(bI), toString(am)], e))
347+ let aA = getIntegerValue(aI, I(toString(bM)))
348+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bV), toString(bW), toString(bU), toString(bY), toString(bZ), toString(ca), toString(aA)], e))
310349 }
311350
312351
313352
314-@Callable(at)
315-func gwxUserInfoREADONLY (aw) = {
316- let ag = K()
317- let P = M(ag)
318- let bj = O(P)
319- let bJ = if ($isInstanceOf(invoke(bj, "gwxUserInfoREADONLY", [aw], nil), "List[Any]"))
320- then invoke(bj, "gwxUserInfoREADONLY", [aw], nil)
353+@Callable(aH)
354+func gwxUserInfoREADONLY (Y) = {
355+ let au = K()
356+ let P = M(au)
357+ let bk = O(P)
358+ let cb = if ($isInstanceOf(invoke(bk, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
359+ then invoke(bk, "gwxUserInfoREADONLY", [Y], nil)
321360 else throw("Couldn't cast Any to List[Any]")
322- let bK = if ($isInstanceOf(bJ[0], "Int"))
323- then bJ[0]
361+ let cc = if ($isInstanceOf(cb[0], "Int"))
362+ then cb[0]
324363 else throw("Couldn't cast Any to Int")
325- $Tuple2(nil, makeString(["%d", toString(bK)], e))
364+ $Tuple2(nil, makeString(["%d", toString(cc)], e))
326365 }
327366
328367

github/deemru/w8io/169f3d6 
102.99 ms