2022.10.06 14:49 [3325908] smart account 3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C > SELF 0.00000000 Waves

{ "type": 13, "id": "F1ANSchE8F642kAZ3BLzrnvmsEtTjtzMPTmQyFF3zJPb", "fee": 300000, "feeAssetId": null, "timestamp": 1665056981487, "version": 1, "sender": "3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C", "senderPublicKey": "EGZr2MRyXu5ukMZP1QZQpcVQikDiWHfk8YDwD4pnHWXH", "proofs": [ "j6g8Cxz2qrUaBiFT7QGzHkq67e3AGxaLDLNhot549DyadFtcgksDueQw6g1mwZTLzM5dThwNc1z44JQTokjtvTx" ], "script": "base64:AAIFAAAAAAAAABIIAhIDCgEIEgMKAQgSBAoCCAEAAAAOAAAAAANidGMCAAAALDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTAAAAAANldGgCAAAALDQ3NGpUZVl4MnIyVmEzNTc5NHRDU2NBWFdKRzloVTJIY2d4ek1vd2FaVW51AAAAAAR1c2R0AgAAACwzNE45WWNFRVRMV245M3FZUTY0RXNQMXg4OXRTcnVKVTQ0UnJFTVNYWEVQSgAAAAAEdXNkYwIAAAAsNlh0SGpwWGJzOVJSSlAyU3I5R1V5VnF6QUNjYnk5VGtUaEhYbmpWQzVDREoAAAAABHVzZG4CAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAAARldXJuAgAAACxEVWsyWVR4aFJvQXFNSkx1czRHMmIzZlI4aE1IVmg2ZWl5Rng1cjI5VlI2dAAAAAAFd2F2ZXMCAAAABVdBVkVTAAAAAAV2aXJlcwIAAAAsRFNiYmhMc1NUZURnNUxzaXVmazJBbmVoM0RqVnFKdVByMk05dVUxZ3d5NXAAAAAAA2RhaQIAAAAsOHpVWWJkQjhRNm1EaHBjWFl2NTJqaTh5Y2ZqNFNEWDRnSlhTN1lZM2RBNFIAAAAABGJ1c2QCAAAALDhETGlZWmpvM1VVYVJCVEhVN0F5b3FnNGlod2I2WUgxQWZYcnJoZGpRN0sxAAAAAAZvcmFjbGUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVfDie6J0VNaFBRlO8j93/SEhv32EQCrlFgAAAAACWV1ck9yYWNsZQkBAAAAB0FkZHJlc3MAAAABAQAAABoBV0u6oXE63UA2IgEgsjTTyOjtmSXCPSGaSAAAAAAGZG9sbGFyAAAAAAAAD0JAAQAAAA1nZXRWaXJlc1ByaWNlAAAAAAQAAAAKc3dvcGZpUGFpcgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQIAAAAjM1BKNDhQM3Ayd3ZXVWpnUWFRaVoyY0ZicjhxbXhNb2tCR2QEAAAAC2tleUJhbGFuY2VBAgAAAA9BX2Fzc2V0X2JhbGFuY2UEAAAAC2tleUJhbGFuY2VCAgAAAA9CX2Fzc2V0X2JhbGFuY2UEAAAACGJhbGFu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", "chainId": 87, "height": 3325908, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: H4xbKFA1up88sUU4pCqCc9Ra22SEvAVdhqsnW1jVfsNb Next: none Diff:
OldNewDifferences
4545
4646
4747 @Callable(i)
48-func price (tokenId) = {
48+func price (t) = {
49+ let tokenId = split(t, "_")[0]
4950 let price = match getInteger(this, (tokenId + "_override")) {
5051 case p: Int =>
5152 p
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
1818 let vires = "DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p"
1919
2020 let dai = "8zUYbdB8Q6mDhpcXYv52ji8ycfj4SDX4gJXS7YY3dA4R"
2121
2222 let busd = "8DLiYZjo3UUaRBTHU7Ayoqg4ihwb6YH1AfXrrhdjQ7K1"
2323
2424 let oracle = Address(base58'3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF')
2525
2626 let eurOracle = Address(base58'3P8qJyxUqizCWWtEn2zsLZVPzZAjdNGppB1')
2727
2828 let dollar = 1000000
2929
3030 func getViresPrice () = {
3131 let swopfiPair = addressFromStringValue("3PJ48P3p2wvWUjgQaQiZ2cFbr8qmxMokBGd")
3232 let keyBalanceA = "A_asset_balance"
3333 let keyBalanceB = "B_asset_balance"
3434 let balanceA = getIntegerValue(swopfiPair, keyBalanceA)
3535 let balanceB = getIntegerValue(swopfiPair, keyBalanceB)
3636 fraction(balanceB, (100 * dollar), balanceA)
3737 }
3838
3939
4040 @Callable(i)
4141 func init (config) = if ((i.caller != this))
4242 then throw("only self can init")
4343 else [StringEntry("config", config)]
4444
4545
4646
4747 @Callable(i)
48-func price (tokenId) = {
48+func price (t) = {
49+ let tokenId = split(t, "_")[0]
4950 let price = match getInteger(this, (tokenId + "_override")) {
5051 case p: Int =>
5152 p
5253 case _ =>
5354 if ((tokenId == usdt))
5455 then dollar
5556 else if ((tokenId == usdc))
5657 then dollar
5758 else if ((tokenId == usdn))
5859 then dollar
5960 else if ((tokenId == dai))
6061 then dollar
6162 else if ((tokenId == busd))
6263 then dollar
6364 else if ((tokenId == btc))
6465 then getIntegerValue(oracle, "%s%s__price__BTC-USDT")
6566 else if ((tokenId == eth))
6667 then getIntegerValue(oracle, "%s%s__price__ETH-USDT")
6768 else if ((tokenId == waves))
6869 then getIntegerValue(oracle, "%s%s__price__WAVES-USDT")
6970 else if ((tokenId == eurn))
7071 then ((dollar * dollar) / getIntegerValue(eurOracle, "%s%s__price__EUR"))
7172 else if ((tokenId == vires))
7273 then getViresPrice()
7374 else throw("unknown token")
7475 }
7576 $Tuple2(nil, price)
7677 }
7778
7879
7980
8081 @Callable(i)
8182 func overridePrice (tokenId,price) = {
8283 let admStr = valueOrErrorMessage(getString(valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "config"), "no config")), "bad config address"), "admin"), "no admin in config")
8384 if ((toString(i.caller) != admStr))
8485 then throw("only admin can do")
8586 else if ((price == -1))
8687 then [DeleteEntry((tokenId + "_override"))]
8788 else [IntegerEntry((tokenId + "_override"), price)]
8889 }
8990
9091

github/deemru/w8io/786bc32 
34.33 ms