tx · H4vUzGnu9YCmQk9rCzTgGZXmpDYEsU2sHcQSJ56iPnxy

3P46ywe6x7v3PFzxwF3DpqTzgkMyzqeZ9bj:  -0.00300000 Waves

2023.04.18 13:37 [3605438] smart account 3P46ywe6x7v3PFzxwF3DpqTzgkMyzqeZ9bj > SELF 0.00000000 Waves

{ "type": 13, "id": "H4vUzGnu9YCmQk9rCzTgGZXmpDYEsU2sHcQSJ56iPnxy", "fee": 300000, "feeAssetId": null, "timestamp": 1681814250574, "version": 1, "sender": "3P46ywe6x7v3PFzxwF3DpqTzgkMyzqeZ9bj", "senderPublicKey": "6x4PhyGtG61C2uMrVKGZT1713s9QXQ8sm77dcX7Y37iG", "proofs": [ "3fgn5vas4Q9ahwebgN9uud7TS96Se59J2qA7qHbdhMHCzjQB6wCZwazt2u3MRXy9jK6CRuQGjoV5kHSDomyLCb9B" ], "script": "base64:AAIFAAAAAAAAABIIAhIDCgEIEgMKAQgSBAoCCAEAAAAJAAAAAANidGMCAAAALDJGZ2U1SEVCUkQzWFRlZzdYZzNGVzV5aUI5SFZKRlF0TVhpV01RbzcyVXA2AAAAAANldGgCAAAALDNWdVY1V1RtRHo0N0RtZG4zUXBjWWp6YlNkaXBqUUU0Sk1kTmUxeFpwWDEzAAAAAAR1c2R0AgAAACw5d2MzTFhOQTRURUJzWHlLdG9MRTltcmJERDdXTUhYdlhyQ2padmFiTEFzaQAAAAAEdXNkYwIAAAAsSEdnYWJUcVVTOFd0VkZVSnpmbXJURE1nRWNjSnVaTEJQaEZnUUZ4dm5zb1cAAAAABXdhdmVzAgAAAAVXQVZFUwAAAAAFdmlyZXMCAAAALERTYmJoTHNTVGVEZzVMc2l1ZmsyQW5laDNEalZxSnVQcjJNOXVVMWd3eTVwAAAAAAZvcmFjbGUJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVfDie6J0VNaFBRlO8j93/SEhv32EQCrlFgAAAAABmRvbGxhcgAAAAAAAA9CQAEAAAANZ2V0VmlyZXNQcmljZQAAAAAEAAAACnN3b3BmaVBhaXIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNQSjQ4UDNwMnd2V1VqZ1FhUWlaMmNGYnI4cW14TW9rQkdkBAAAAAtrZXlCYWxhbmNlQQIAAAAPQV9hc3NldF9iYWxhbmNlBAAAAAtrZXlCYWxhbmNlQgIAAAAPQl9hc3NldF9iYWxhbmNlBAAAAAhiYWxhbmNlQQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAKc3dvcGZpUGFpcgUAAAALa2V5QmFsYW5jZUEEAAAACGJhbGFuY2VCCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAApzd29wZmlQYWlyBQAAAAtrZXlCYWxhbmNlQgkAAGsAAAADBQAAAAhiYWxhbmNlQgkAAGgAAAACAAAAAAAAAABkBQAAAAZkb2xsYXIFAAAACGJhbGFuY2VBAAAAAwAAAAFpAQAAAARpbml0AAAAAQAAAAZjb25maWcDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAASb25seSBzZWxmIGNhbiBpbml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAABmNvbmZpZwUAAAAGY29uZmlnBQAAAANuaWwAAAABaQEAAAAFcHJpY2UAAAABAAAAAXQEAAAAB3Rva2VuSWQJAAGRAAAAAgkABLUAAAACBQAAAAF0AgAAAAFfAAAAAAAAAAAABAAAAAVwcmljZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAB3Rva2VuSWQCAAAACV9vdmVycmlkZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFwBQAAAAckbWF0Y2gwBQAAAAFwAwkAAAAAAAACBQAAAAd0b2tlbklkBQAAAAR1c2R0BQAAAAZkb2xsYXIDCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAABHVzZGMFAAAABmRvbGxhcgMJAAAAAAAAAgUAAAAHdG9rZW5JZAUAAAADYnRjCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZvcmFjbGUCAAAAFSVzJXNfX3ByaWNlX19CVEMtVVNEVAMJAAAAAAAAAgUAAAAHdG9rZW5JZAUAAAADZXRoCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAZvcmFjbGUCAAAAFSVzJXNfX3ByaWNlX19FVEgtVVNEVAMJAAAAAAAAAgUAAAAHdG9rZW5JZAUAAAAFd2F2ZXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABm9yYWNsZQIAAAAXJXMlc19fcHJpY2VfX1dBVkVTLVVTRFQDCQAAAAAAAAIFAAAAB3Rva2VuSWQFAAAABXZpcmVzCQEAAAANZ2V0VmlyZXNQcmljZQAAAAAJAAACAAAAAQIAAAANdW5rbm93biB0b2tlbgkABRQAAAACBQAAAANuaWwFAAAABXByaWNlAAAAAWkBAAAADW92ZXJyaWRlUHJpY2UAAAACAAAAB3Rva2VuSWQAAAAFcHJpY2UEAAAABmFkbVN0cgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwIAAAAGY29uZmlnAgAAAAlubyBjb25maWcCAAAAEmJhZCBjb25maWcgYWRkcmVzcwIAAAAFYWRtaW4CAAAAEm5vIGFkbWluIGluIGNvbmZpZwMJAQAAAAIhPQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhZG1TdHIJAAACAAAAAQIAAAARb25seSBhZG1pbiBjYW4gZG8DCQAAAAAAAAIFAAAABXByaWNlAP//////////CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAHdG9rZW5JZAIAAAAJX292ZXJyaWRlBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHdG9rZW5JZAIAAAAJX292ZXJyaWRlBQAAAAVwcmljZQUAAAADbmlsAAAAAE/LRLk=", "chainId": 87, "height": 3605438, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let btc = "2Fge5HEBRD3XTeg7Xg3FW5yiB9HVJFQtMXiWMQo72Up6"
5+
6+let eth = "3VuV5WTmDz47Dmdn3QpcYjzbSdipjQE4JMdNe1xZpX13"
7+
8+let usdt = "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"
9+
10+let usdc = "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"
11+
12+let waves = "WAVES"
13+
14+let vires = "DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p"
15+
16+let oracle = Address(base58'3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF')
17+
18+let dollar = 1000000
19+
20+func getViresPrice () = {
21+ let swopfiPair = addressFromStringValue("3PJ48P3p2wvWUjgQaQiZ2cFbr8qmxMokBGd")
22+ let keyBalanceA = "A_asset_balance"
23+ let keyBalanceB = "B_asset_balance"
24+ let balanceA = getIntegerValue(swopfiPair, keyBalanceA)
25+ let balanceB = getIntegerValue(swopfiPair, keyBalanceB)
26+ fraction(balanceB, (100 * dollar), balanceA)
27+ }
28+
29+
30+@Callable(i)
31+func init (config) = if ((i.caller != this))
32+ then throw("only self can init")
33+ else [StringEntry("config", config)]
34+
35+
36+
37+@Callable(i)
38+func price (t) = {
39+ let tokenId = split(t, "_")[0]
40+ let price = match getInteger(this, (tokenId + "_override")) {
41+ case p: Int =>
42+ p
43+ case _ =>
44+ if ((tokenId == usdt))
45+ then dollar
46+ else if ((tokenId == usdc))
47+ then dollar
48+ else if ((tokenId == btc))
49+ then getIntegerValue(oracle, "%s%s__price__BTC-USDT")
50+ else if ((tokenId == eth))
51+ then getIntegerValue(oracle, "%s%s__price__ETH-USDT")
52+ else if ((tokenId == waves))
53+ then getIntegerValue(oracle, "%s%s__price__WAVES-USDT")
54+ else if ((tokenId == vires))
55+ then getViresPrice()
56+ else throw("unknown token")
57+ }
58+ $Tuple2(nil, price)
59+ }
60+
61+
62+
63+@Callable(i)
64+func overridePrice (tokenId,price) = {
65+ let admStr = valueOrErrorMessage(getString(valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, "config"), "no config")), "bad config address"), "admin"), "no admin in config")
66+ if ((toString(i.caller) != admStr))
67+ then throw("only admin can do")
68+ else if ((price == -1))
69+ then [DeleteEntry((tokenId + "_override"))]
70+ else [IntegerEntry((tokenId + "_override"), price)]
71+ }
72+
73+

github/deemru/w8io/3ef1775 
20.75 ms