2021.10.18 20:35 [2817003] smart account 3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C > SELF 0.00000000 Waves

{ "type": 13, "id": "4TSrfQJeNa8ifhuZa1bVGMvL7yXS7VxtTmiNGFfwQvdv", "fee": 1000000, "feeAssetId": null, "timestamp": 1634578603435, "version": 1, "sender": "3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C", "senderPublicKey": "EGZr2MRyXu5ukMZP1QZQpcVQikDiWHfk8YDwD4pnHWXH", "proofs": [ "3DLXWjyeTDAC59nY5WrHS5fPYXcDRaCS7WaC1QLP93duikpjFMEw3jRUF5pKT7rxxTQJCCoHeXFuqVSthbYfsNiy" ], "script": "base64:AAIFAAAAAAAAAA8IAhIAEgMKAQgSBAoCCAEAAAAMAAAAAANidGMCAAAALDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTAAAAAANldGgCAAAALDQ3NGpUZVl4MnIyVmEzNTc5NHRDU2NBWFdKRzloVTJIY2d4ek1vd2FaVW51AAAAAAR1c2R0AgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgAAAAAEdXNkYwIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoAAAAABHVzZG4CAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAAARldXJuAgAAACxEVWsyWVR4aFJvQXFNSkx1czRHMmIzZlI4aE1IVmg2ZWl5Rng1cjI5VlI2dAAAAAAFd2F2ZXMCAAAABVdBVkVTAAAAAAV2aXJlcwIAAAAsRFNiYmhMc1NUZURnNUxzaXVmazJBbmVoM0RqVnFKdVByMk05dVUxZ3d5NXAAAAAABm9yYWNsZQkBAAAAB0FkZHJlc3MAAAABAQAAABoBV8OJ7onRU1oUFGU7yP3f9ISG/fYRAKuUWAAAAAAJZXVyT3JhY2xlCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXS7qhcTrdQDYiASCyNNPI6O2ZJcI9IZpIAAAAAAZkb2xsYXIAAAAAAAAPQkABAAAADWdldFZpcmVzUHJpY2UAAAAABAAAAApzd29wZmlQYWlyCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAACMzUEo0OFAzcDJ3dldVamdRYVFpWjJjRmJyOHFteE1va0JHZAQAAAALa2V5QmFsYW5jZUECAAAAD0FfYXNzZXRfYmFsYW5jZQQAAAALa2V5QmFsYW5jZUICAAAAD0JfYXNzZXRfYmFsYW5jZQQAAAAIYmFsYW5jZUEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACnN3b3BmaVBhaXIFAAAAC2tleUJhbGFuY2VBBAAAAAhiYWxhbmNlQgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAKc3dvcGZpUGFpcgUAAAALa2V5QmFsYW5jZUIJAABrAAAAAwUAAAAIYmFsYW5jZUIJAABoAAAAAgAAAAAAAAAAZAUAAAAGZG9sbGFyBQAAAAhiYWxhbmNlQgAAAAMAAAABaQEAAAAEaW5pdAAAAAADCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzAgAAAAVhZG1pbgkAAAIAAAABAgAAAAxhbHJlYWR5IGluaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAFYWRtaW4JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAANuaWwAAAABaQEAAAAFcHJpY2UAAAABAAAAB3Rva2VuSWQEAAAABXByaWNlBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAHdG9rZW5JZAIAAAAJX292ZXJyaWRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXAFAAAAByRtYXRjaDAFAAAAAXADCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAABHVzZHQFAAAABmRvbGxhcgMJAAAAAAAAAgUAAAAHdG9rZW5JZAUAAAAEdXNkYwUAAAAGZG9sbGFyAwkAAAAAAAACBQAAAAd0b2tlbklkBQAAAAR1c2RuBQAAAAZkb2xsYXIDCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAAA2J0YwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGb3JhY2xlAgAAABUlcyVzX19wcmljZV9fQlRDLVVTRFQDCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAAA2V0aAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAGb3JhY2xlAgAAABUlcyVzX19wcmljZV9fRVRILVVTRFQDCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAABXdhdmVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZvcmFjbGUCAAAAFyVzJXNfX3ByaWNlX19XQVZFUy1VU0RUAwkAAAAAAAACBQAAAAd0b2tlbklkBQAAAARldXJuCQAAaQAAAAIJAABoAAAAAgUAAAAGZG9sbGFyBQAAAAZkb2xsYXIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACWV1ck9yYWNsZQIAAAAQJXMlc19fcHJpY2VfX0VVUgMJAAAAAAAAAgUAAAAHdG9rZW5JZAUAAAAFdmlyZXMJAQAAAA1nZXRWaXJlc1ByaWNlAAAAAAkAAAIAAAABAgAAAA11bmtub3duIHRva2VuCQAFFAAAAAIFAAAAA25pbAUAAAAFcHJpY2UAAAABaQEAAAANb3ZlcnJpZGVQcmljZQAAAAIAAAAHdG9rZW5JZAAAAAVwcmljZQQAAAADYWRtCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwIAAAAFYWRtaW4CAAAADW5vIGFkbWluIGNvbmYDCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAADYWRtCQAAAgAAAAECAAAAEW9ubHkgYWRtaW4gY2FuIGRvAwkAAAAAAAACBQAAAAVwcmljZQD//////////wkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAAB3Rva2VuSWQCAAAACV9vdmVycmlkZQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAB3Rva2VuSWQCAAAACV9vdmVycmlkZQUAAAAFcHJpY2UFAAAAA25pbAAAAACFtJ5h", "chainId": 87, "height": 2817003, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3TkGyxQZ7Uyavbb4FvajcEFB3wno92SafeXhMKmU9bSk Next: DhowA7eiYpJ4EcusbnPXAiS4XZrjMxkrSr8qXMxkkWCt Diff:
OldNewDifferences
1515
1616 let waves = "WAVES"
1717
18+let vires = "DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p"
19+
1820 let oracle = Address(base58'3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF')
1921
2022 let eurOracle = Address(base58'3P8qJyxUqizCWWtEn2zsLZVPzZAjdNGppB1')
2123
2224 let dollar = 1000000
25+
26+func getViresPrice () = {
27+ let swopfiPair = addressFromStringValue("3PJ48P3p2wvWUjgQaQiZ2cFbr8qmxMokBGd")
28+ let keyBalanceA = "A_asset_balance"
29+ let keyBalanceB = "B_asset_balance"
30+ let balanceA = getIntegerValue(swopfiPair, keyBalanceA)
31+ let balanceB = getIntegerValue(swopfiPair, keyBalanceB)
32+ fraction(balanceB, (100 * dollar), balanceB)
33+ }
34+
2335
2436 @Callable(i)
2537 func init () = if (isDefined(getString(this, "admin")))
4860 then getIntegerValue(oracle, "%s%s__price__WAVES-USDT")
4961 else if ((tokenId == eurn))
5062 then ((dollar * dollar) / getIntegerValue(eurOracle, "%s%s__price__EUR"))
51- else throw("unknown token")
63+ else if ((tokenId == vires))
64+ then getViresPrice()
65+ else throw("unknown token")
5266 }
5367 $Tuple2(nil, price)
5468 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let btc = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
55
66 let eth = "474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu"
77
88 let usdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
99
1010 let usdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
1111
1212 let usdn = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
1313
1414 let eurn = "DUk2YTxhRoAqMJLus4G2b3fR8hMHVh6eiyFx5r29VR6t"
1515
1616 let waves = "WAVES"
1717
18+let vires = "DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p"
19+
1820 let oracle = Address(base58'3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF')
1921
2022 let eurOracle = Address(base58'3P8qJyxUqizCWWtEn2zsLZVPzZAjdNGppB1')
2123
2224 let dollar = 1000000
25+
26+func getViresPrice () = {
27+ let swopfiPair = addressFromStringValue("3PJ48P3p2wvWUjgQaQiZ2cFbr8qmxMokBGd")
28+ let keyBalanceA = "A_asset_balance"
29+ let keyBalanceB = "B_asset_balance"
30+ let balanceA = getIntegerValue(swopfiPair, keyBalanceA)
31+ let balanceB = getIntegerValue(swopfiPair, keyBalanceB)
32+ fraction(balanceB, (100 * dollar), balanceB)
33+ }
34+
2335
2436 @Callable(i)
2537 func init () = if (isDefined(getString(this, "admin")))
2638 then throw("already init")
2739 else [StringEntry("admin", toString(i.caller))]
2840
2941
3042
3143 @Callable(i)
3244 func price (tokenId) = {
3345 let price = match getInteger(this, (tokenId + "_override")) {
3446 case p: Int =>
3547 p
3648 case _ =>
3749 if ((tokenId == usdt))
3850 then dollar
3951 else if ((tokenId == usdc))
4052 then dollar
4153 else if ((tokenId == usdn))
4254 then dollar
4355 else if ((tokenId == btc))
4456 then getIntegerValue(oracle, "%s%s__price__BTC-USDT")
4557 else if ((tokenId == eth))
4658 then getIntegerValue(oracle, "%s%s__price__ETH-USDT")
4759 else if ((tokenId == waves))
4860 then getIntegerValue(oracle, "%s%s__price__WAVES-USDT")
4961 else if ((tokenId == eurn))
5062 then ((dollar * dollar) / getIntegerValue(eurOracle, "%s%s__price__EUR"))
51- else throw("unknown token")
63+ else if ((tokenId == vires))
64+ then getViresPrice()
65+ else throw("unknown token")
5266 }
5367 $Tuple2(nil, price)
5468 }
5569
5670
5771
5872 @Callable(i)
5973 func overridePrice (tokenId,price) = {
6074 let adm = valueOrErrorMessage(getString(this, "admin"), "no admin conf")
6175 if ((toString(i.caller) != adm))
6276 then throw("only admin can do")
6377 else if ((price == -1))
6478 then [DeleteEntry((tokenId + "_override"))]
6579 else [IntegerEntry((tokenId + "_override"), price)]
6680 }
6781
6882

github/deemru/w8io/786bc32 
29.85 ms