tx · 8UYEtTNowosnEYRY3UDos1zCqjBGJ6yxeLEPT5YYmFR5

3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6:  -0.01000000 Waves

2021.11.25 17:46 [1806705] smart account 3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6 > SELF 0.00000000 Waves

{ "type": 13, "id": "8UYEtTNowosnEYRY3UDos1zCqjBGJ6yxeLEPT5YYmFR5", "fee": 1000000, "feeAssetId": null, "timestamp": 1637851596997, "version": 1, "sender": "3N5QAcgvpAGzTtSGT2iGZcy6DnRqaLMQLk6", "senderPublicKey": "2F6Xr5hWciNeY5nz7JLvHqGLWVccgu2VNM9NRhoeghWN", "proofs": [ "5BrmibJgNez4oWhePugTwLBWdavtXYwKQX2da5NAWjrmUqRoPK8E8U5vU1EJHXrS42PhW65G7Hp4jg1Y2MuaEn5m" ], "script": "base64:AAIFAAAAAAAAACwIAhIDCgEIEgMKAQgSBAoCCAgSAwoBCBIHCgUBAQEICBIAEgMKAQgSAwoBCAAAAD8AAAAABlNDQUxFOAAAAAAAAAAACAAAAAAFTVVMVDgAAAAAAAX14QAAAAAAB1NDQUxFMTgAAAAAAAAAABIAAAAABk1VTFQxOAkAATYAAAABAA3gtrOnZAAAAAAAAANTRVACAAAAAl9fAAAAAA5pZHhQb29sQWRkcmVzcwAAAAAAAAAAAQAAAAANaWR4UG9vbFN0YXR1cwAAAAAAAAAAAgAAAAAQaWR4UG9vbExQQXNzZXRJZAAAAAAAAAAAAwAAAAANaWR4QW10QXNzZXRJZAAAAAAAAAAABAAAAAAPaWR4UHJpY2VBc3NldElkAAAAAAAAAAAFAAAAAA5pZHhBbXRBc3NldERjbQAAAAAAAAAABgAAAAAQaWR4UHJpY2VBc3NldERjbQAAAAAAAAAABwAAAAAOaWR4SUFtdEFzc2V0SWQAAAAAAAAAAAgAAAAAEGlkeElQcmljZUFzc2V0SWQAAAAAAAAAAAkAAAAADWlkeExQQXNzZXREY20AAAAAAAAAAAoBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPbWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAptYW5kYXRvcnkgCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAAS4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAxnZXRJbnRPclplcm8AAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQAAAAAAAAAAAAEAAAAMZ2V0SW50T3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlzLgUAAAADa2V5AgAAAA8gaXMgbm90IGRlZmluZWQBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAIAAAAcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwAAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAAAAAAAAAAABAAAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAAAAAAAAAAACAAAAABRJZHhGYWN0b3J5Q2ZnSWRvRGFwcAAAAAAAAAAAAwAAAAAVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwAAAAAAAAAAAEAAAAABlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwAAAAAAAAAAAFAAAAABVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAAAAAAAAAAAAYAAAAAGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAAAAAAAAAAAAcBAAAADWtleUZhY3RvcnlDZmcAAAAAAgAAABElc19fZmFjdG9yeUNvbmZpZwEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABBrZXlGYWN0b3J5THBMaXN0AAAAAAIAAAAQJXNfX2xwVG9rZW5zTGlzdAEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEAAAAPY29udHJhY3RBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAApwb29sV2VpZ2h0CQAETAAAAAIFAAAAD2NvbnRyYWN0QWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAQAAAApyZWFkTHBMaXN0AAAAAAkABLUAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAACQEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAAAUAAAADU0VQAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEAAAAHZmFjdG9yeQkABLUAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAHZmFjdG9yeQkBAAAADWtleUZhY3RvcnlDZmcAAAAABQAAAANTRVABAAAAGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAQAAAAtrZXlCb29zdENmZwAAAAACAAAACiVzX19jb25maWcBAAAAH2tleUJvb3N0aW5nTG9ja1BhcmFtVG90YWxBbW91bnQAAAAAAgAAAB4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAAAAKGtleUJvb3N0aW5nU3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MAAAAAAgAAACUlcyVzX19zdGF0c19fbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzAQAAABprZXlCb29zdGluZ1N0YXRzTG9ja3NDb3VudAAAAAACAAAAFyVzJXNfX3N0YXRzX19sb2Nrc0NvdW50AQAAABprZXlCb29zdGluZ1N0YXRzVXNlcnNDb3VudAAAAAACAAAAHSVzJXNfX3N0YXRzX19hY3RpdmVVc2Vyc0NvdW50AQAAABJrZXlVc2VyMk51bU1hcHBpbmcAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAEmtleU51bTJVc2VyTWFwcGluZwAAAAEAAAADbnVtCQAEuQAAAAIJAARMAAAAAgIAAAAZJXMlcyVzX19tYXBwaW5nX19udW0ydXNlcgkABEwAAAACBQAAAANudW0FAAAAA25pbAUAAAADU0VQAQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQAAAAd1c2VyTnVtCQAEuQAAAAIJAARMAAAAAgIAAAAWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkABEwAAAACBQAAAAd1c2VyTnVtCQAETAAAAAICAAAABmFtb3VudAUAAAADbmlsBQAAAANTRVABAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAAFc3RhcnQFAAAAA25pbAUAAAADU0VQAQAAABRrZXlMb2NrUGFyYW1EdXJhdGlvbgAAAAEAAAAHdXNlck51bQkABLkAAAACCQAETAAAAAICAAAAFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAARMAAAAAgUAAAAHdXNlck51bQkABEwAAAACAgAAAAhkdXJhdGlvbgUAAAADbmlsBQAAAANTRVABAAAADWtleUxvY2tQYXJhbUsAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABawUAAAADbmlsBQAAAANTRVABAAAADWtleUxvY2tQYXJhbUIAAAABAAAAB3VzZXJOdW0JAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABYgUAAAADbmlsBQAAAANTRVABAAAAFWtleUxvY2tQYXJhbUJ5UGVyaW9kSwAAAAIAAAAHdXNlck51bQAAAAZwZXJpb2QJAAS5AAAAAgkABEwAAAACAgAAABclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkABEwAAAACBQAAAAd1c2VyTnVtCQAETAAAAAICAAAAAWsJAARMAAAAAgUAAAAGcGVyaW9kBQAAAANuaWwFAAAAA1NFUAEAAAAVa2V5TG9ja1BhcmFtQnlQZXJpb2RCAAAAAgAAAAd1c2VyTnVtAAAABnBlcmlvZAkABLkAAAACCQAETAAAAAICAAAAFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQAETAAAAAIFAAAAB3VzZXJOdW0JAARMAAAAAgIAAAABYgkABEwAAAACBQAAAAZwZXJpb2QFAAAAA25pbAUAAAADU0VQAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACAAAADnVzZXJBZGRyZXNzU3RyAAAADGxwQXNzZXRJZFN0cgkABLkAAAACCQAETAAAAAICAAAADiVzJXMlc19fc3Rha2VkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAADmtleVN0YWtlZFRvdGFsAAAAAQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAXJXMlcyVzX19zdGFrZWRfX3RvdGFsX18FAAAADGxwQXNzZXRJZFN0cgEAAAAQa2V5Q2xhaW1lZEJ5VXNlcgAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAPJXMlcyVzX19jbGFpbWVkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAAGWtleUNsYWltZWRCeVVzZXJNaW5SZXdhcmQAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgkABLkAAAACCQAETAAAAAICAAAAGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkABEwAAAACBQAAAA51c2VyQWRkcmVzc1N0cgkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAAA25pbAUAAAADU0VQAQAAABtrZXlDbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmQAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgkABLkAAAACCQAETAAAAAICAAAAGiVzJXMlc19fY2xhaW1lZEJvb3N0UmV3YXJkCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyCQAETAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAADbmlsBQAAAANTRVABAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAACAAAAGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAEAAAAha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50AAAAAAIAAAAeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAAAgAAABolcyVzX19lbWlzc2lvbl9fc3RhcnRCbG9jawEAAAAba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzAAAAAAIAAAAYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQAAABNrZXlFbWlzc2lvbkVuZEJsb2NrAAAAAAIAAAAYJXMlc19fZW1pc3Npb25fX2VuZEJsb2NrAQAAABlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAAAABAAAAA9mYWN0b3J5Q29udHJhY3QAAAAPc3Rha2luZ0NvbnRyYWN0AAAAEGVtaXNzaW9uQ29udHJhY3QAAAAJbHBBc3NldElkBAAAAA5wb29sQWRkcmVzc1N0cgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQUAAAAJbHBBc3NldElkBAAAAA5wb29sV2VpZ2h0TXVsdAUAAAAFTVVMVDgEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEnd4RW1pc3Npb25QZXJCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAAB5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAAAABAAAABV3eEVtaXNzaW9uUGVyQmxvY2tNYXgJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50AAAAAAQAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkAAGsAAAADBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sFAAAACnBvb2xXZWlnaHQFAAAADnBvb2xXZWlnaHRNdWx0BAAAABlwb29sV3hFbWlzc2lvblBlckJsb2NrTWF4CQAAawAAAAMFAAAAFXd4RW1pc3Npb25QZXJCbG9ja01heAUAAAAKcG9vbFdlaWdodAUAAAAOcG9vbFdlaWdodE11bHQEAAAACW1heEZhY3RvcgkAAGgAAAACAAAAAAAAAAADBQAAAAVNVUxUOAQAAAANdG90YWxMcFN0YWtlZAkBAAAADGdldEludE9yWmVybwAAAAIFAAAAD3N0YWtpbmdDb250cmFjdAkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAJbHBBc3NldElkCQAETAAAAAIFAAAAFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sJAARMAAAAAgUAAAAJbWF4RmFjdG9yCQAETAAAAAIFAAAADXRvdGFsTHBTdGFrZWQFAAAAA25pbAAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAABAAAADmZhY3RvcnlBZGRyZXNzAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAADm5vdCBhdXRob3JpemVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAFAAAADmZhY3RvcnlBZGRyZXNzBQAAAANuaWwAAAABaQEAAAAZY3VycmVudFJld2FyZFJhdGVSRUFET05MWQAAAAEAAAAJbHBBc3NldElkBAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAABAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QEAAAAD3N0YWtpbmdDb250cmFjdAkBAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwQAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcEAAAACnJld2FyZERhdGEJAQAAABlpbnRlcm5hbEN1cnJlbnRSZXdhcmRSYXRlAAAABAUAAAAPZmFjdG9yeUNvbnRyYWN0BQAAAA9zdGFraW5nQ29udHJhY3QFAAAAEGVtaXNzaW9uQ29udHJhY3QFAAAACWxwQXNzZXRJZAQAAAASd3hFbWlzc2lvblBlckJsb2NrCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAAEAAAACW1heEZhY3RvcgkAAZEAAAACBQAAAApyZXdhcmREYXRhAAAAAAAAAAABBAAAAA10b3RhbExwU3Rha2VkCQABkQAAAAIFAAAACnJld2FyZERhdGEAAAAAAAAAAAIJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAGJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAASd3hFbWlzc2lvblBlckJsb2NrCQAETAAAAAIJAAGkAAAAAQUAAAAJbWF4RmFjdG9yCQAETAAAAAIJAAGkAAAAAQUAAAANdG90YWxMcFN0YWtlZAUAAAADbmlsBQAAAANTRVAAAAABaQEAAAAdY3VycmVudFVzZXJSZXdhcmRSYXRlUkVBRE9OTFkAAAACAAAACWxwQXNzZXRJZAAAAAt1c2VyQWRkcmVzcwQAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAQAAAAKZmFjdG9yeUNmZwkBAAAAFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAAAAAQUAAAAPZmFjdG9yeUNvbnRyYWN0BAAAAA9zdGFraW5nQ29udHJhY3QJAQAAABdnZXRTdGFraW5nQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcEAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAAApyZXdhcmREYXRhCQEAAAAZaW50ZXJuYWxDdXJyZW50UmV3YXJkUmF0ZQAAAAQFAAAAD2ZhY3RvcnlDb250cmFjdAUAAAAPc3Rha2luZ0NvbnRyYWN0BQAAABBlbWlzc2lvbkNvbnRyYWN0BQAAAAlscEFzc2V0SWQEAAAAEnd4RW1pc3Npb25QZXJCbG9jawkAAZEAAAACBQAAAApyZXdhcmREYXRhAAAAAAAAAAAABAAAAAltYXhGYWN0b3IJAAGRAAAAAgUAAAAKcmV3YXJkRGF0YQAAAAAAAAAAAQQAAAANdG90YWxMcFN0YWtlZAkAAZEAAAACBQAAAApyZXdhcmREYXRhAAAAAAAAAAACBAAAAA5scFN0YWtlZEJ5VXNlcgkBAAAADGdldEludE9yWmVybwAAAAIFAAAAD3N0YWtpbmdDb250cmFjdAkBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAAlscEFzc2V0SWQEAAAADWJvb3N0aW5nUG93ZXIJAABoAAAAAgAAAAAAAAAAAQUAAAAFTVVMVDgJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAKJWQlZCVkJWQlZAkABEwAAAACCQABpAAAAAEFAAAAEnd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAACW1heEZhY3RvcgkABEwAAAACCQABpAAAAAEFAAAADXRvdGFsTHBTdGFrZWQJAARMAAAAAgkAAaQAAAABBQAAAA5scFN0YWtlZEJ5VXNlcgkABEwAAAACCQABpAAAAAEFAAAADWJvb3N0aW5nUG93ZXIFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAFWNsYWltZWRSZXdhcmRSRUFET05MWQAAAAEAAAALdXNlckFkZHJlc3MEAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAEAAAACmZhY3RvcnlDZmcJAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEFAAAAD2ZhY3RvcnlDb250cmFjdAQAAAAPc3Rha2luZ0NvbnRyYWN0CQEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAAAZscExpc3QJAQAAAApyZWFkTHBMaXN0AAAAAAQAAAAGcHJlZml4AgAAAAolcyVkJWQlZCVzCgEAAAAbY2xhaW1lZFJld2FyZEJ5THBBZ2dyZWdhdG9yAAAAAgAAAAlyZXN1bHRTdHIAAAAGbmV4dExwBAAAABljbGFpbWVkQnlVc2VyTWluUmV3YXJkS0VZCQEAAAAZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZAAAAAIFAAAABm5leHRMcAUAAAALdXNlckFkZHJlc3MEAAAAG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWQkBAAAAG2tleUNsYWltZWRCeVVzZXJCb29zdFJld2FyZAAAAAIFAAAABm5leHRMcAUAAAALdXNlckFkZHJlc3MEAAAAEG1pblJld2FyZENsYWltZWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAPc3Rha2luZ0NvbnRyYWN0BQAAABljbGFpbWVkQnlVc2VyTWluUmV3YXJkS0VZAAAAAAAAAAAABAAAABJib29zdFJld2FyZENsYWltZWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAPc3Rha2luZ0NvbnRyYWN0BQAAABtjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRLRVkAAAAAAAAAAAAEAAAAC2dGZWVDbGFpbWVkAAAAAAAAAAAACQAEuQAAAAIJAARMAAAAAgkAASwAAAACBQAAAAZwcmVmaXgFAAAACXJlc3VsdFN0cgkABEwAAAACBQAAAAZuZXh0THAJAARMAAAAAgkAAaQAAAABBQAAABBtaW5SZXdhcmRDbGFpbWVkCQAETAAAAAIJAAGkAAAAAQUAAAASYm9vc3RSZXdhcmRDbGFpbWVkCQAETAAAAAIJAAGkAAAAAQUAAAALZ0ZlZUNsYWltZWQJAARMAAAAAgIAAAADZW5kBQAAAANuaWwFAAAAA1NFUAQAAAAGcmVzdWx0CgAAAAACJGwFAAAABmxwTGlzdAoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzACAAAAAiVzCgEAAAABMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAABtjbGFpbWVkUmV3YXJkQnlMcEFnZ3JlZ2F0b3IAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAEyAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAxMAkBAAAAATIAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKCQAFFAAAAAIFAAAAA25pbAkAASwAAAACCQABLAAAAAIFAAAABnJlc3VsdAUAAAADU0VQBQAAAAt1c2VyQWRkcmVzcwAAAAFpAQAAABFjYWxjQm9vc3RSRUFET05MWQAAAAUAAAANZGVsdGFXeEFtb3VudAAAABdkZWx0YUxvY2tQZXJpb2RJbkJsb2NrcwAAAA1kZWx0YUxwQW1vdW50AAAADGxwQXNzZXRJZE9wdAAAAA51c2VyQWRkcmVzc09wdAQAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAQAAAAKZmFjdG9yeUNmZwkBAAAAFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAAAAAQUAAAAPZmFjdG9yeUNvbnRyYWN0BAAAABBib29zdGluZ0NvbnRyYWN0CQEAAAAYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwQAAAAIRU1QVFlTVFICAAAABWVtcHR5BAAAABdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIJAAS1AAAAAgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAAAtrZXlCb29zdENmZwAAAAAFAAAAA1NFUAAAAAAAAAAABAQAAAAHdXNlck51bQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABBib29zdGluZ0NvbnRyYWN0CQEAAAASa2V5VXNlcjJOdW1NYXBwaW5nAAAAAQUAAAAOdXNlckFkZHJlc3NPcHQFAAAACEVNUFRZU1RSBAAAAAp1c2VyQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQUAAAAHdXNlck51bQAAAAAAAAAAAAQAAAAJbG9ja1N0YXJ0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAAAAAQUAAAAHdXNlck51bQUAAAAGaGVpZ2h0BAAAAAxsb2NrRHVyYXRpb24JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAFGtleUxvY2tQYXJhbUR1cmF0aW9uAAAAAQUAAAAHdXNlck51bQAAAAAAAAAAAAQAAAAHbG9ja0VuZAkAAGQAAAACBQAAAAlsb2NrU3RhcnQFAAAADGxvY2tEdXJhdGlvbgQAAAARcmVtYWluaW5nRHVyYXRpb24JAAGWAAAAAQkABEwAAAACCQAAZQAAAAIFAAAAB2xvY2tFbmQFAAAABmhlaWdodAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwEAAAABWJvb3N0AwkBAAAAAiE9AAAAAgUAAAAOdXNlckFkZHJlc3NPcHQCAAAAAAkAAGgAAAACAAAAAAAAAAADBQAAAAVNVUxUOAkAAGgAAAACAAAAAAAAAAABBQAAAAVNVUxUOAQAAAAFU0NBTEUAAAAAAAAAA+gEAAAADXVzZXJBbW91bnROZXcJAABkAAAAAgUAAAAKdXNlckFtb3VudAUAAAANZGVsdGFXeEFtb3VudAQAAAAPbG9ja0R1cmF0aW9uTmV3CQABlwAAAAEJAARMAAAAAgkAAGQAAAACBQAAABFyZW1haW5pbmdEdXJhdGlvbgUAAAAXZGVsdGFMb2NrUGVyaW9kSW5CbG9ja3MJAARMAAAAAgUAAAAXbWF4TG9ja0R1cmF0aW9uSW5CbG9ja3MFAAAAA25pbAQAAAAHY29lZmZYOAkAAGsAAAADBQAAAA9sb2NrRHVyYXRpb25OZXcFAAAABU1VTFQ4BQAAABdtYXhMb2NrRHVyYXRpb25JbkJsb2NrcwQAAAANd3hBbW91bnRTdGFydAkAAGsAAAADBQAAAA11c2VyQW1vdW50TmV3BQAAAAdjb2VmZlg4BQAAAAVNVUxUOAQAAAANbG9ja0VuZEhlaWdodAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAD2xvY2tEdXJhdGlvbk5ldwQAAAAMc2NhbGU4UGFyYW1LCQEAAAABLQAAAAEJAABrAAAAAwUAAAANd3hBbW91bnRTdGFydAUAAAAFU0NBTEUFAAAAD2xvY2tEdXJhdGlvbk5ldwQAAAAMc2NhbGU4UGFyYW1CCQAAaAAAAAIJAABrAAAAAwUAAAANd3hBbW91bnRTdGFydAUAAAAFU0NBTEUFAAAAD2xvY2tEdXJhdGlvbk5ldwUAAAANbG9ja0VuZEhlaWdodAQAAAAJZ1d4QW1vdW50CQAAaQAAAAIJAABkAAAAAgkAAGgAAAACBQAAAAxzY2FsZThQYXJhbUsFAAAABmhlaWdodAUAAAAMc2NhbGU4UGFyYW1CBQAAAAVTQ0FMRQkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAAQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAJZ1d4QW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAFYm9vc3QFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAF3d4RW1pc3Npb25TdGF0c1JFQURPTkxZAAAAAAQAAAAHT05FTVVMVAkAAaQAAAABBQAAAAVNVUxUOAQAAAADT05FAgAAAAExBAAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAABAAAAApmYWN0b3J5Q2ZnCQEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABBQAAAA9mYWN0b3J5Q29udHJhY3QEAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQUAAAAKZmFjdG9yeUNmZwQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAxwYXNzZWRCbG9ja3MDCQAAZgAAAAIFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawUAAAAGaGVpZ2h0AAAAAAAAAAAACQAAZQAAAAIFAAAABmhlaWdodAUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA50ZWFtRW1EdXJhdGlvbgkAAGgAAAACAAAAAAAAAAWgAAAAAAAAAAFtBAAAAAl0ZWFtRW1NYXgJAABoAAAAAgAAAAAAC/sEQAUAAAAFTVVMVDgEAAAABnRlYW1FbQMJAABmAAAAAgUAAAAMcGFzc2VkQmxvY2tzBQAAAA50ZWFtRW1EdXJhdGlvbgUAAAAJdGVhbUVtTWF4CQAAawAAAAMFAAAACXRlYW1FbU1heAUAAAAMcGFzc2VkQmxvY2tzBQAAAA50ZWFtRW1EdXJhdGlvbgQAAAAPdG90YWxXeFJlbGVhc2VkCQAAZAAAAAIJAABoAAAAAgUAAAASd3hFbWlzc2lvblBlckJsb2NrBQAAAAxwYXNzZWRCbG9ja3MFAAAABnRlYW1FbQQAAAANdG90YWxXeExvY2tlZAkBAAAADGdldEludE9yWmVybwAAAAIFAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAAB9rZXlCb29zdGluZ0xvY2tQYXJhbVRvdGFsQW1vdW50AAAAAAQAAAAYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAKGtleUJvb3N0aW5nU3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MAAAAABAAAAApsb2Nrc0NvdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAQYm9vc3RpbmdDb250cmFjdAkBAAAAGmtleUJvb3N0aW5nU3RhdHNMb2Nrc0NvdW50AAAAAAkABRQAAAACBQAAAANuaWwJAAS5AAAAAgkABEwAAAACAgAAAAglZCVkJWQlZAkABEwAAAACCQABpAAAAAEFAAAAD3RvdGFsV3hSZWxlYXNlZAkABEwAAAACCQABpAAAAAEFAAAADXRvdGFsV3hMb2NrZWQJAARMAAAAAgkAAaQAAAABBQAAABhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MJAARMAAAAAgkAAaQAAAABBQAAAApsb2Nrc0NvdW50BQAAAANuaWwFAAAAA1NFUAAAAAFpAQAAAA9scFN0YXRzUkVBRE9OTFkAAAABAAAAB2xwQXNzZXQEAAAADmZhY3RvcnlBZGRyZXNzCQEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAQAAAALcG9vbEFk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", "chainId": 84, "height": 1806705, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CoCAL2sMmXPuuGCoWFtBnrGBpCh9JAaBDfre6kGd4m4L Next: HHtB2NKWnUgsEZDSyqDzHW5cksYnWTbb7zCS3HA681F9 Diff:
OldNewDifferences
141141 func an (am) = ("%s%s%s__staked__total__" + am)
142142
143143
144-func ao () = "%s%s__ratePerBlock__current"
144+func ao (am,al) = makeString(["%s%s%s__claimed", al, am], e)
145145
146146
147-func ap () = "%s%s__ratePerBlockMax__current"
147+func ap (am,al) = makeString(["%s%s%s__claimedMinReward", al, am], e)
148148
149149
150-func aq () = "%s%s__emission__startBlock"
150+func aq (am,al) = makeString(["%s%s%s__claimedBoostReward", al, am], e)
151151
152152
153-func ar () = "%s%s__emission__duration"
153+func ar () = "%s%s__ratePerBlock__current"
154154
155155
156-func as () = "%s%s__emission__endBlock"
156+func as () = "%s%s__ratePerBlockMax__current"
157157
158158
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]
159+func at () = "%s%s__emission__startBlock"
160+
161+
162+func au () = "%s%s__emission__duration"
163+
164+
165+func av () = "%s%s__emission__endBlock"
166+
167+
168+func aw (ax,ay,az,aA) = {
169+ let aB = r(ax, H(aA))
170+ let aC = b
171+ let aD = getIntegerValue(ax, I(aB))
172+ let aE = u(az, ar())
173+ let aF = u(az, as())
174+ let aG = fraction(aE, aD, aC)
175+ let aH = fraction(aF, aD, aC)
176+ let aI = (3 * b)
177+ let aJ = t(ay, an(aA))
178+[aG, aI, aJ]
170179 }
171180
172181
173-@Callable(aH)
174-func constructor (aI) = if ((aH.caller != this))
182+@Callable(aK)
183+func constructor (aL) = if ((aK.caller != this))
175184 then throw("not authorized")
176- else [StringEntry(v(), aI)]
185+ else [StringEntry(v(), aL)]
177186
178187
179188
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))
189+@Callable(aK)
190+func currentRewardRateREADONLY (aA) = {
191+ let ax = K()
192+ let P = M(ax)
193+ let ay = R(P)
194+ let az = Q(P)
195+ let aM = aw(ax, ay, az, aA)
196+ let aE = aM[0]
197+ let aI = aM[1]
198+ let aJ = aM[2]
199+ $Tuple2(nil, makeString(["%d%d%d", toString(aE), toString(aI), toString(aJ)], e))
191200 }
192201
193202
194203
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))
204+@Callable(aK)
205+func currentUserRewardRateREADONLY (aA,Y) = {
206+ let ax = K()
207+ let P = M(ax)
208+ let ay = R(P)
209+ let az = Q(P)
210+ let aM = aw(ax, ay, az, aA)
211+ let aE = aM[0]
212+ let aI = aM[1]
213+ let aJ = aM[2]
214+ let aN = t(ay, ak(Y, aA))
215+ let aO = (1 * b)
216+ $Tuple2(nil, makeString(["%d%d%d%d%d", toString(aE), toString(aI), toString(aJ), toString(aN), toString(aO)], e))
208217 }
209218
210219
211220
212-@Callable(aH)
221+@Callable(aK)
213222 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)
223+ let ax = K()
224+ let P = M(ax)
225+ let ay = R(P)
226+ let aP = L()
227+ let aQ = "%s%d%d%d%s"
228+ func aR (aS,aT) = {
229+ let aU = ap(aT, Y)
230+ let aV = aq(aT, Y)
231+ let aW = valueOrElse(getInteger(ay, aU), 0)
232+ let aX = valueOrElse(getInteger(ay, aV), 0)
233+ let aY = 0
234+ makeString([(aQ + aS), aT, toString(aW), toString(aX), toString(aY), "end"], e)
226235 }
227236
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])
237+ let aZ = {
238+ let ba = aP
239+ let bb = size(ba)
240+ let bc = "%s"
241+ func bd (be,bf) = if ((bf >= bb))
242+ then be
243+ else aR(be, ba[bf])
235244
236- func be (bc,bd) = if ((bd >= aZ))
237- then bc
245+ func bg (be,bf) = if ((bf >= bb))
246+ then be
238247 else throw("List size exceeds 10")
239248
240- be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
249+ bg(bd(bd(bd(bd(bd(bd(bd(bd(bd(bd(bc, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
241250 }
242- $Tuple2(nil, ((aX + e) + Y))
251+ $Tuple2(nil, ((aZ + e) + Y))
243252 }
244253
245254
246255
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, ad(ac)), height)
257- let bp = valueOrElse(getInteger(bk, ae(ac)), 0)
258- let bq = (bo + bp)
259- let br = max([(bq - height), 0])
260- let bs = if ((bj != ""))
256+@Callable(aK)
257+func calcBoostREADONLY (bh,bi,bj,bk,bl) = {
258+ let ax = K()
259+ let P = M(ax)
260+ let bm = O(P)
261+ let bn = "empty"
262+ let bo = parseIntValue(split(r(bm, S()), e)[4])
263+ let ac = valueOrElse(getString(bm, X(bl)), bn)
264+ let bp = valueOrElse(getInteger(bm, ab(ac)), 0)
265+ let bq = valueOrElse(getInteger(bm, ad(ac)), height)
266+ let br = valueOrElse(getInteger(bm, ae(ac)), 0)
267+ let bs = (bq + br)
268+ let bt = max([(bs - height), 0])
269+ let bu = if ((bl != ""))
261270 then (3 * b)
262271 else (1 * b)
263- let bt = 1000
264- let bu = (bn + bf)
265- let bv = min([(br + bg), bm])
266- let bw = fraction(bv, b, bm)
267- let bx = fraction(bu, bw, b)
268- let by = (height + bv)
269- let bz = -(fraction(bx, bt, bv))
270- let bA = (fraction(bx, bt, bv) * by)
271- let bB = (((bz * height) + bA) / bt)
272- $Tuple2(nil, makeString(["%d%d", toString(bB), toString(bs)], e))
272+ let bv = 1000
273+ let bw = (bp + bh)
274+ let bx = min([(bt + bi), bo])
275+ let by = fraction(bx, b, bo)
276+ let bz = fraction(bw, by, b)
277+ let bA = (height + bx)
278+ let bB = -(fraction(bz, bv, bx))
279+ let bC = (fraction(bz, bv, bx) * bA)
280+ let bD = (((bB * height) + bC) / bv)
281+ $Tuple2(nil, makeString(["%d%d", toString(bD), toString(bu)], e))
273282 }
274283
275284
276285
277-@Callable(aH)
286+@Callable(aK)
278287 func wxEmissionStatsREADONLY () = {
279- let bC = toString(b)
280- let bD = "1"
281- let au = K()
282- let P = M(au)
283- let bk = O(P)
284- let aw = Q(P)
285- let aB = u(aw, ao())
286- let bE = u(aw, aq())
287- let bF = if ((bE > height))
288+ let bE = toString(b)
289+ let bF = "1"
290+ let ax = K()
291+ let P = M(ax)
292+ let bm = O(P)
293+ let az = Q(P)
294+ let aE = u(az, ar())
295+ let bG = u(az, at())
296+ let bH = if ((bG > height))
288297 then 0
289- else (height - bE)
290- let bG = (1440 * 365)
291- let bH = (201000000 * b)
292- let bI = if ((bF > bG))
293- then bH
294- else fraction(bH, bF, bG)
295- let bJ = ((aB * bF) + bI)
296- let bK = t(bk, T())
297- let bL = t(bk, U())
298- let bM = t(bk, V())
299- $Tuple2(nil, makeString(["%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM)], e))
298+ else (height - bG)
299+ let bI = (1440 * 365)
300+ let bJ = (201000000 * b)
301+ let bK = if ((bH > bI))
302+ then bJ
303+ else fraction(bJ, bH, bI)
304+ let bL = ((aE * bH) + bK)
305+ let bM = t(bm, T())
306+ let bN = t(bm, U())
307+ let bO = t(bm, V())
308+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bL), toString(bM), toString(bN), toString(bO)], e))
300309 }
301310
302311
303312
304-@Callable(aH)
305-func lpStatsREADONLY (bN) = {
306- let aI = K()
307- let bO = addressFromStringValue(r(aI, H(bN)))
308- let bP = if ($isInstanceOf(invoke(bO, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
309- then invoke(bO, "getPoolConfigWrapperREADONLY", nil, nil)
313+@Callable(aK)
314+func lpStatsREADONLY (bP) = {
315+ let aL = K()
316+ let bQ = addressFromStringValue(r(aL, H(bP)))
317+ let bR = if ($isInstanceOf(invoke(bQ, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
318+ then invoke(bQ, "getPoolConfigWrapperREADONLY", nil, nil)
310319 else throw("Couldn't cast Any to List[Any]")
311- let ax = fromBase58String(if ($isInstanceOf(bP[h], "String"))
312- then bP[h]
320+ let aA = fromBase58String(if ($isInstanceOf(bR[h], "String"))
321+ then bR[h]
313322 else throw("Couldn't cast Any to String"))
314- let bQ = if ($isInstanceOf(bP[i], "String"))
315- then bP[i]
323+ let bS = if ($isInstanceOf(bR[i], "String"))
324+ then bR[i]
316325 else throw("Couldn't cast Any to String")
317- let bR = if ($isInstanceOf(bP[j], "String"))
318- then bP[j]
326+ let bT = if ($isInstanceOf(bR[j], "String"))
327+ then bR[j]
319328 else throw("Couldn't cast Any to String")
320- let bS = if ($isInstanceOf(bP[m], "String"))
321- then bP[m]
329+ let bU = if ($isInstanceOf(bR[m], "String"))
330+ then bR[m]
322331 else throw("Couldn't cast Any to String")
323- let bT = if ($isInstanceOf(bP[n], "String"))
324- then bP[n]
332+ let bV = if ($isInstanceOf(bR[n], "String"))
333+ then bR[n]
325334 else throw("Couldn't cast Any to String")
326- let bU = parseIntValue(if ($isInstanceOf(bP[k], "String"))
327- then bP[k]
335+ let bW = parseIntValue(if ($isInstanceOf(bR[k], "String"))
336+ then bR[k]
328337 else throw("Couldn't cast Any to String"))
329- let bV = parseIntValue(if ($isInstanceOf(bP[l], "String"))
330- then bP[l]
338+ let bX = parseIntValue(if ($isInstanceOf(bR[l], "String"))
339+ then bR[l]
331340 else throw("Couldn't cast Any to String"))
332- let bW = valueOrErrorMessage(assetInfo(ax), (("Asset " + toBase58String(ax)) + " doesn't exist")).quantity
333- let bX = if ($isInstanceOf(invoke(bO, "getAccBalanceWrapperREADONLY", [bQ], nil), "Int"))
334- then invoke(bO, "getAccBalanceWrapperREADONLY", [bQ], nil)
341+ let bY = valueOrErrorMessage(assetInfo(aA), (("Asset " + toBase58String(aA)) + " doesn't exist")).quantity
342+ let bZ = if ($isInstanceOf(invoke(bQ, "getAccBalanceWrapperREADONLY", [bS], nil), "Int"))
343+ then invoke(bQ, "getAccBalanceWrapperREADONLY", [bS], nil)
335344 else throw("Couldn't cast Any to Int")
336- let bY = if ($isInstanceOf(invoke(bO, "getAccBalanceWrapperREADONLY", [bR], nil), "Int"))
337- then invoke(bO, "getAccBalanceWrapperREADONLY", [bR], nil)
345+ let ca = if ($isInstanceOf(invoke(bQ, "getAccBalanceWrapperREADONLY", [bT], nil), "Int"))
346+ then invoke(bQ, "getAccBalanceWrapperREADONLY", [bT], nil)
338347 else throw("Couldn't cast Any to Int")
339- let bZ = if ($isInstanceOf(invoke(bO, "calcPricesWrapperREADONLY", [bX, bY, bW], nil), "List[Any]"))
340- then invoke(bO, "calcPricesWrapperREADONLY", [bX, bY, bW], nil)
348+ let cb = if ($isInstanceOf(invoke(bQ, "calcPricesWrapperREADONLY", [bZ, ca, bY], nil), "List[Any]"))
349+ then invoke(bQ, "calcPricesWrapperREADONLY", [bZ, ca, bY], nil)
341350 else throw("Couldn't cast Any to List[Any]")
342- let ca = 0
343- let cb = if ($isInstanceOf(invoke(bO, "fromX18WrapperREADONLY", [bZ[1], b], nil), "Int"))
344- then invoke(bO, "fromX18WrapperREADONLY", [bZ[1], b], nil)
351+ let cc = 0
352+ let cd = if ($isInstanceOf(invoke(bQ, "fromX18WrapperREADONLY", [cb[1], b], nil), "Int"))
353+ then invoke(bQ, "fromX18WrapperREADONLY", [cb[1], b], nil)
345354 else throw("Couldn't cast Any to Int")
346- let cc = if ($isInstanceOf(invoke(bO, "fromX18WrapperREADONLY", [bZ[2], b], nil), "Int"))
347- then invoke(bO, "fromX18WrapperREADONLY", [bZ[2], b], nil)
355+ let ce = if ($isInstanceOf(invoke(bQ, "fromX18WrapperREADONLY", [cb[2], b], nil), "Int"))
356+ then invoke(bQ, "fromX18WrapperREADONLY", [cb[2], b], nil)
348357 else throw("Couldn't cast Any to Int")
349- let aA = getIntegerValue(aI, I(toString(bO)))
350- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bX), toString(bY), toString(bW), toString(ca), toString(cb), toString(cc), toString(aA)], e))
358+ let aD = getIntegerValue(aL, I(toString(bQ)))
359+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bZ), toString(ca), toString(bY), toString(cc), toString(cd), toString(ce), toString(aD)], e))
351360 }
352361
353362
354363
355-@Callable(aH)
364+@Callable(aK)
356365 func gwxUserInfoREADONLY (Y) = {
357- let au = K()
358- let P = M(au)
359- let bk = O(P)
360- let cd = if ($isInstanceOf(invoke(bk, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
361- then invoke(bk, "gwxUserInfoREADONLY", [Y], nil)
366+ let ax = K()
367+ let P = M(ax)
368+ let bm = O(P)
369+ let cf = if ($isInstanceOf(invoke(bm, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
370+ then invoke(bm, "gwxUserInfoREADONLY", [Y], nil)
362371 else throw("Couldn't cast Any to List[Any]")
363- let ce = if ($isInstanceOf(cd[0], "Int"))
364- then cd[0]
372+ let cg = if ($isInstanceOf(cf[0], "Int"))
373+ then cf[0]
365374 else throw("Couldn't cast Any to Int")
366- $Tuple2(nil, makeString(["%d", toString(ce)], e))
375+ $Tuple2(nil, makeString(["%d", toString(cg)], e))
367376 }
368377
369378
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
9696 func S () = "%s__config"
9797
9898
9999 func T () = "%s%s__stats__activeTotalLocked"
100100
101101
102102 func U () = "%s%s__stats__locksDurationSumInBlocks"
103103
104104
105105 func V () = "%s%s__stats__locksCount"
106106
107107
108108 func W () = "%s%s__stats__activeUsersCount"
109109
110110
111111 func X (Y) = makeString(["%s%s%s__mapping__user2num", Y], e)
112112
113113
114114 func Z (aa) = makeString(["%s%s%s__mapping__num2user", aa], e)
115115
116116
117117 func ab (ac) = makeString(["%s%d%s__paramByUserNum", ac, "amount"], e)
118118
119119
120120 func ad (ac) = makeString(["%s%d%s__paramByUserNum", ac, "start"], e)
121121
122122
123123 func ae (ac) = makeString(["%s%d%s__paramByUserNum", ac, "duration"], e)
124124
125125
126126 func af (ac) = makeString(["%s%d%s__paramByUserNum", ac, "k"], e)
127127
128128
129129 func ag (ac) = makeString(["%s%d%s__paramByUserNum", ac, "b"], e)
130130
131131
132132 func ah (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "k", ai], e)
133133
134134
135135 func aj (ac,ai) = makeString(["%s%d%s%d__paramByPeriod", ac, "b", ai], e)
136136
137137
138138 func ak (al,am) = makeString(["%s%s%s__staked", al, am], e)
139139
140140
141141 func an (am) = ("%s%s%s__staked__total__" + am)
142142
143143
144-func ao () = "%s%s__ratePerBlock__current"
144+func ao (am,al) = makeString(["%s%s%s__claimed", al, am], e)
145145
146146
147-func ap () = "%s%s__ratePerBlockMax__current"
147+func ap (am,al) = makeString(["%s%s%s__claimedMinReward", al, am], e)
148148
149149
150-func aq () = "%s%s__emission__startBlock"
150+func aq (am,al) = makeString(["%s%s%s__claimedBoostReward", al, am], e)
151151
152152
153-func ar () = "%s%s__emission__duration"
153+func ar () = "%s%s__ratePerBlock__current"
154154
155155
156-func as () = "%s%s__emission__endBlock"
156+func as () = "%s%s__ratePerBlockMax__current"
157157
158158
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]
159+func at () = "%s%s__emission__startBlock"
160+
161+
162+func au () = "%s%s__emission__duration"
163+
164+
165+func av () = "%s%s__emission__endBlock"
166+
167+
168+func aw (ax,ay,az,aA) = {
169+ let aB = r(ax, H(aA))
170+ let aC = b
171+ let aD = getIntegerValue(ax, I(aB))
172+ let aE = u(az, ar())
173+ let aF = u(az, as())
174+ let aG = fraction(aE, aD, aC)
175+ let aH = fraction(aF, aD, aC)
176+ let aI = (3 * b)
177+ let aJ = t(ay, an(aA))
178+[aG, aI, aJ]
170179 }
171180
172181
173-@Callable(aH)
174-func constructor (aI) = if ((aH.caller != this))
182+@Callable(aK)
183+func constructor (aL) = if ((aK.caller != this))
175184 then throw("not authorized")
176- else [StringEntry(v(), aI)]
185+ else [StringEntry(v(), aL)]
177186
178187
179188
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))
189+@Callable(aK)
190+func currentRewardRateREADONLY (aA) = {
191+ let ax = K()
192+ let P = M(ax)
193+ let ay = R(P)
194+ let az = Q(P)
195+ let aM = aw(ax, ay, az, aA)
196+ let aE = aM[0]
197+ let aI = aM[1]
198+ let aJ = aM[2]
199+ $Tuple2(nil, makeString(["%d%d%d", toString(aE), toString(aI), toString(aJ)], e))
191200 }
192201
193202
194203
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))
204+@Callable(aK)
205+func currentUserRewardRateREADONLY (aA,Y) = {
206+ let ax = K()
207+ let P = M(ax)
208+ let ay = R(P)
209+ let az = Q(P)
210+ let aM = aw(ax, ay, az, aA)
211+ let aE = aM[0]
212+ let aI = aM[1]
213+ let aJ = aM[2]
214+ let aN = t(ay, ak(Y, aA))
215+ let aO = (1 * b)
216+ $Tuple2(nil, makeString(["%d%d%d%d%d", toString(aE), toString(aI), toString(aJ), toString(aN), toString(aO)], e))
208217 }
209218
210219
211220
212-@Callable(aH)
221+@Callable(aK)
213222 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)
223+ let ax = K()
224+ let P = M(ax)
225+ let ay = R(P)
226+ let aP = L()
227+ let aQ = "%s%d%d%d%s"
228+ func aR (aS,aT) = {
229+ let aU = ap(aT, Y)
230+ let aV = aq(aT, Y)
231+ let aW = valueOrElse(getInteger(ay, aU), 0)
232+ let aX = valueOrElse(getInteger(ay, aV), 0)
233+ let aY = 0
234+ makeString([(aQ + aS), aT, toString(aW), toString(aX), toString(aY), "end"], e)
226235 }
227236
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])
237+ let aZ = {
238+ let ba = aP
239+ let bb = size(ba)
240+ let bc = "%s"
241+ func bd (be,bf) = if ((bf >= bb))
242+ then be
243+ else aR(be, ba[bf])
235244
236- func be (bc,bd) = if ((bd >= aZ))
237- then bc
245+ func bg (be,bf) = if ((bf >= bb))
246+ then be
238247 else throw("List size exceeds 10")
239248
240- be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
249+ bg(bd(bd(bd(bd(bd(bd(bd(bd(bd(bd(bc, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
241250 }
242- $Tuple2(nil, ((aX + e) + Y))
251+ $Tuple2(nil, ((aZ + e) + Y))
243252 }
244253
245254
246255
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, ad(ac)), height)
257- let bp = valueOrElse(getInteger(bk, ae(ac)), 0)
258- let bq = (bo + bp)
259- let br = max([(bq - height), 0])
260- let bs = if ((bj != ""))
256+@Callable(aK)
257+func calcBoostREADONLY (bh,bi,bj,bk,bl) = {
258+ let ax = K()
259+ let P = M(ax)
260+ let bm = O(P)
261+ let bn = "empty"
262+ let bo = parseIntValue(split(r(bm, S()), e)[4])
263+ let ac = valueOrElse(getString(bm, X(bl)), bn)
264+ let bp = valueOrElse(getInteger(bm, ab(ac)), 0)
265+ let bq = valueOrElse(getInteger(bm, ad(ac)), height)
266+ let br = valueOrElse(getInteger(bm, ae(ac)), 0)
267+ let bs = (bq + br)
268+ let bt = max([(bs - height), 0])
269+ let bu = if ((bl != ""))
261270 then (3 * b)
262271 else (1 * b)
263- let bt = 1000
264- let bu = (bn + bf)
265- let bv = min([(br + bg), bm])
266- let bw = fraction(bv, b, bm)
267- let bx = fraction(bu, bw, b)
268- let by = (height + bv)
269- let bz = -(fraction(bx, bt, bv))
270- let bA = (fraction(bx, bt, bv) * by)
271- let bB = (((bz * height) + bA) / bt)
272- $Tuple2(nil, makeString(["%d%d", toString(bB), toString(bs)], e))
272+ let bv = 1000
273+ let bw = (bp + bh)
274+ let bx = min([(bt + bi), bo])
275+ let by = fraction(bx, b, bo)
276+ let bz = fraction(bw, by, b)
277+ let bA = (height + bx)
278+ let bB = -(fraction(bz, bv, bx))
279+ let bC = (fraction(bz, bv, bx) * bA)
280+ let bD = (((bB * height) + bC) / bv)
281+ $Tuple2(nil, makeString(["%d%d", toString(bD), toString(bu)], e))
273282 }
274283
275284
276285
277-@Callable(aH)
286+@Callable(aK)
278287 func wxEmissionStatsREADONLY () = {
279- let bC = toString(b)
280- let bD = "1"
281- let au = K()
282- let P = M(au)
283- let bk = O(P)
284- let aw = Q(P)
285- let aB = u(aw, ao())
286- let bE = u(aw, aq())
287- let bF = if ((bE > height))
288+ let bE = toString(b)
289+ let bF = "1"
290+ let ax = K()
291+ let P = M(ax)
292+ let bm = O(P)
293+ let az = Q(P)
294+ let aE = u(az, ar())
295+ let bG = u(az, at())
296+ let bH = if ((bG > height))
288297 then 0
289- else (height - bE)
290- let bG = (1440 * 365)
291- let bH = (201000000 * b)
292- let bI = if ((bF > bG))
293- then bH
294- else fraction(bH, bF, bG)
295- let bJ = ((aB * bF) + bI)
296- let bK = t(bk, T())
297- let bL = t(bk, U())
298- let bM = t(bk, V())
299- $Tuple2(nil, makeString(["%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM)], e))
298+ else (height - bG)
299+ let bI = (1440 * 365)
300+ let bJ = (201000000 * b)
301+ let bK = if ((bH > bI))
302+ then bJ
303+ else fraction(bJ, bH, bI)
304+ let bL = ((aE * bH) + bK)
305+ let bM = t(bm, T())
306+ let bN = t(bm, U())
307+ let bO = t(bm, V())
308+ $Tuple2(nil, makeString(["%d%d%d%d", toString(bL), toString(bM), toString(bN), toString(bO)], e))
300309 }
301310
302311
303312
304-@Callable(aH)
305-func lpStatsREADONLY (bN) = {
306- let aI = K()
307- let bO = addressFromStringValue(r(aI, H(bN)))
308- let bP = if ($isInstanceOf(invoke(bO, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
309- then invoke(bO, "getPoolConfigWrapperREADONLY", nil, nil)
313+@Callable(aK)
314+func lpStatsREADONLY (bP) = {
315+ let aL = K()
316+ let bQ = addressFromStringValue(r(aL, H(bP)))
317+ let bR = if ($isInstanceOf(invoke(bQ, "getPoolConfigWrapperREADONLY", nil, nil), "List[Any]"))
318+ then invoke(bQ, "getPoolConfigWrapperREADONLY", nil, nil)
310319 else throw("Couldn't cast Any to List[Any]")
311- let ax = fromBase58String(if ($isInstanceOf(bP[h], "String"))
312- then bP[h]
320+ let aA = fromBase58String(if ($isInstanceOf(bR[h], "String"))
321+ then bR[h]
313322 else throw("Couldn't cast Any to String"))
314- let bQ = if ($isInstanceOf(bP[i], "String"))
315- then bP[i]
323+ let bS = if ($isInstanceOf(bR[i], "String"))
324+ then bR[i]
316325 else throw("Couldn't cast Any to String")
317- let bR = if ($isInstanceOf(bP[j], "String"))
318- then bP[j]
326+ let bT = if ($isInstanceOf(bR[j], "String"))
327+ then bR[j]
319328 else throw("Couldn't cast Any to String")
320- let bS = if ($isInstanceOf(bP[m], "String"))
321- then bP[m]
329+ let bU = if ($isInstanceOf(bR[m], "String"))
330+ then bR[m]
322331 else throw("Couldn't cast Any to String")
323- let bT = if ($isInstanceOf(bP[n], "String"))
324- then bP[n]
332+ let bV = if ($isInstanceOf(bR[n], "String"))
333+ then bR[n]
325334 else throw("Couldn't cast Any to String")
326- let bU = parseIntValue(if ($isInstanceOf(bP[k], "String"))
327- then bP[k]
335+ let bW = parseIntValue(if ($isInstanceOf(bR[k], "String"))
336+ then bR[k]
328337 else throw("Couldn't cast Any to String"))
329- let bV = parseIntValue(if ($isInstanceOf(bP[l], "String"))
330- then bP[l]
338+ let bX = parseIntValue(if ($isInstanceOf(bR[l], "String"))
339+ then bR[l]
331340 else throw("Couldn't cast Any to String"))
332- let bW = valueOrErrorMessage(assetInfo(ax), (("Asset " + toBase58String(ax)) + " doesn't exist")).quantity
333- let bX = if ($isInstanceOf(invoke(bO, "getAccBalanceWrapperREADONLY", [bQ], nil), "Int"))
334- then invoke(bO, "getAccBalanceWrapperREADONLY", [bQ], nil)
341+ let bY = valueOrErrorMessage(assetInfo(aA), (("Asset " + toBase58String(aA)) + " doesn't exist")).quantity
342+ let bZ = if ($isInstanceOf(invoke(bQ, "getAccBalanceWrapperREADONLY", [bS], nil), "Int"))
343+ then invoke(bQ, "getAccBalanceWrapperREADONLY", [bS], nil)
335344 else throw("Couldn't cast Any to Int")
336- let bY = if ($isInstanceOf(invoke(bO, "getAccBalanceWrapperREADONLY", [bR], nil), "Int"))
337- then invoke(bO, "getAccBalanceWrapperREADONLY", [bR], nil)
345+ let ca = if ($isInstanceOf(invoke(bQ, "getAccBalanceWrapperREADONLY", [bT], nil), "Int"))
346+ then invoke(bQ, "getAccBalanceWrapperREADONLY", [bT], nil)
338347 else throw("Couldn't cast Any to Int")
339- let bZ = if ($isInstanceOf(invoke(bO, "calcPricesWrapperREADONLY", [bX, bY, bW], nil), "List[Any]"))
340- then invoke(bO, "calcPricesWrapperREADONLY", [bX, bY, bW], nil)
348+ let cb = if ($isInstanceOf(invoke(bQ, "calcPricesWrapperREADONLY", [bZ, ca, bY], nil), "List[Any]"))
349+ then invoke(bQ, "calcPricesWrapperREADONLY", [bZ, ca, bY], nil)
341350 else throw("Couldn't cast Any to List[Any]")
342- let ca = 0
343- let cb = if ($isInstanceOf(invoke(bO, "fromX18WrapperREADONLY", [bZ[1], b], nil), "Int"))
344- then invoke(bO, "fromX18WrapperREADONLY", [bZ[1], b], nil)
351+ let cc = 0
352+ let cd = if ($isInstanceOf(invoke(bQ, "fromX18WrapperREADONLY", [cb[1], b], nil), "Int"))
353+ then invoke(bQ, "fromX18WrapperREADONLY", [cb[1], b], nil)
345354 else throw("Couldn't cast Any to Int")
346- let cc = if ($isInstanceOf(invoke(bO, "fromX18WrapperREADONLY", [bZ[2], b], nil), "Int"))
347- then invoke(bO, "fromX18WrapperREADONLY", [bZ[2], b], nil)
355+ let ce = if ($isInstanceOf(invoke(bQ, "fromX18WrapperREADONLY", [cb[2], b], nil), "Int"))
356+ then invoke(bQ, "fromX18WrapperREADONLY", [cb[2], b], nil)
348357 else throw("Couldn't cast Any to Int")
349- let aA = getIntegerValue(aI, I(toString(bO)))
350- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bX), toString(bY), toString(bW), toString(ca), toString(cb), toString(cc), toString(aA)], e))
358+ let aD = getIntegerValue(aL, I(toString(bQ)))
359+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bZ), toString(ca), toString(bY), toString(cc), toString(cd), toString(ce), toString(aD)], e))
351360 }
352361
353362
354363
355-@Callable(aH)
364+@Callable(aK)
356365 func gwxUserInfoREADONLY (Y) = {
357- let au = K()
358- let P = M(au)
359- let bk = O(P)
360- let cd = if ($isInstanceOf(invoke(bk, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
361- then invoke(bk, "gwxUserInfoREADONLY", [Y], nil)
366+ let ax = K()
367+ let P = M(ax)
368+ let bm = O(P)
369+ let cf = if ($isInstanceOf(invoke(bm, "gwxUserInfoREADONLY", [Y], nil), "List[Any]"))
370+ then invoke(bm, "gwxUserInfoREADONLY", [Y], nil)
362371 else throw("Couldn't cast Any to List[Any]")
363- let ce = if ($isInstanceOf(cd[0], "Int"))
364- then cd[0]
372+ let cg = if ($isInstanceOf(cf[0], "Int"))
373+ then cf[0]
365374 else throw("Couldn't cast Any to Int")
366- $Tuple2(nil, makeString(["%d", toString(ce)], e))
375+ $Tuple2(nil, makeString(["%d", toString(cg)], e))
367376 }
368377
369378

github/deemru/w8io/169f3d6 
107.92 ms