2021.06.30 16:36 [2657925] smart account 3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C > SELF 0.00000000 Waves

{ "type": 13, "id": "FW1WAGVjDWYVucikbCERysPgy2xVeZnmR4BaRTuMQmC4", "fee": 1000000, "feeAssetId": null, "timestamp": 1625060296839, "version": 1, "sender": "3PFHm5TYKw4vVzj4rW8s3Yso88aD73Dai1C", "senderPublicKey": "EGZr2MRyXu5ukMZP1QZQpcVQikDiWHfk8YDwD4pnHWXH", "proofs": [ "25F74DCvV7bA4r5TDfmHteTMfxYF2Uaad3VrodAvjFxmf4EdugMKCZj5ZEau7e6vvp7XeWWdszvcFbHurrLN5oxE" ], "script": "base64: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", "chainId": 87, "height": 2657925, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 7visiMHq6bg1B8D5UR9QMvitqLarWb4wPrLQPgSaxX3W Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let btc = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
5+
6+let eth = "474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu"
7+
8+let usdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
9+
10+let usdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
11+
12+let usdn = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
13+
14+let waves = "WAVES"
15+
16+let oracle = Address(base58'3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF')
17+
18+let dollar = 1000000
19+
20+@Callable(i)
21+func init () = if (isDefined(getString(this, "admin")))
22+ then throw("already init")
23+ else [StringEntry("admin", toString(i.caller))]
24+
25+
26+
27+@Callable(i)
28+func price (tokenId) = {
29+ let price = match getInteger(this, tokenId) {
30+ case p: Int =>
31+ p
32+ case _ =>
33+ if ((tokenId == usdt))
34+ then dollar
35+ else if ((tokenId == usdc))
36+ then dollar
37+ else if ((tokenId == usdn))
38+ then dollar
39+ else if ((tokenId == btc))
40+ then getIntegerValue(oracle, "%s%s__price__BTC-USDT")
41+ else if ((tokenId == eth))
42+ then getIntegerValue(oracle, "%s%s__price__ETH-USDT")
43+ else if ((tokenId == waves))
44+ then getIntegerValue(oracle, "%s%s__price__WAVES-USDT")
45+ else throw("unknown token")
46+ }
47+ $Tuple2(nil, price)
48+ }
49+
50+
51+
52+@Callable(i)
53+func overridePrice (tokenId,price) = {
54+ let adm = valueOrErrorMessage(getString(this, "admin"), "no admin conf")
55+ if ((toString(i.caller) != adm))
56+ then throw("only admin can do")
57+ else if ((price == -1))
58+ then [DeleteEntry((tokenId + "_override"))]
59+ else [IntegerEntry((tokenId + "_override"), price)]
60+ }
61+
62+

github/deemru/w8io/786bc32 
24.06 ms