tx · AdmBAf6Vo2nrdAZ8A5yXQyqk3rxgpoaUjvy8ZcQQiitf

3PGbr9TgVSUUoGTesusWbpGPedA6PphCwzD:  -0.01000000 Waves

2021.10.12 18:06 [2808194] smart account 3PGbr9TgVSUUoGTesusWbpGPedA6PphCwzD > SELF 0.00000000 Waves

{ "type": 13, "id": "AdmBAf6Vo2nrdAZ8A5yXQyqk3rxgpoaUjvy8ZcQQiitf", "fee": 1000000, "feeAssetId": null, "timestamp": 1634051232422, "version": 1, "sender": "3PGbr9TgVSUUoGTesusWbpGPedA6PphCwzD", "senderPublicKey": "AMuaZeG2RVAS77K61TuNYAX6b2qTeGxkQkZEXZmU4Kvx", "proofs": [ "3bXjd7upXzm1PEd1aFmdCnqbvfokHUd2o5qHBNfdpQerbtoSszjSz3WZ5s4ZvkyZJBTRLmgUZKXbnfvE68w9fp3D" ], "script": "base64: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", "chainId": 87, "height": 2808194, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: AEyeVbLM6cBQz1AwAKEUmTCJaKcSUtykw2eeD7K6g1pL Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func asInt (value) = match value {
5+ case int: Int =>
6+ int
7+ case _ =>
8+ throw("wrong type, expected: Int")
9+}
10+
11+
12+func asString (value) = match value {
13+ case s: String =>
14+ s
15+ case _ =>
16+ throw("wrong type, expected: String")
17+}
18+
19+
20+func advise (main) = {
21+ let m = valueOrErrorMessage(addressFromString(main), "bad main")
22+ let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
23+ let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
24+ let viresMinter = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_minter"), "no viresMinter")), "invalid viresMinter")
25+ let viresAssetId = valueOrErrorMessage(getString(viresMinter, "assetId"), "no viresAssetId")
26+ let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
27+ let oracle = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(distributor, "oracleAddress"), "no oracle in distributor")), "bad oracle")
28+ let viresPrice = asInt(invoke(oracle, "price", [viresAssetId], nil))
29+ let stakerInfo = asString(invoke(staker, "advise", nil, nil))
30+ let general = ((((("height: " + toString(height)) + ", viresAssetId: ") + viresAssetId) + ", viresPrice: ") + toString(viresPrice))
31+ let reserves = asString(invoke(distributor, "advise", nil, nil))
32+ (((general + ", ") + stakerInfo) + reserves)
33+ }
34+
35+
36+func adviseUser (main,user) = {
37+ let m = valueOrErrorMessage(addressFromString(main), "bad main")
38+ let reserves = split(valueOrErrorMessage(getString(m, "reserves"), "no reserves"), "|")
39+ let config = addressFromStringValue(valueOrErrorMessage(getString(m, "config"), "no config in main"))
40+ let ebRewards = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "eb_rewards"), "no eb_rewards in config")), "bad eb_rewards")
41+ let staker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_staker"), "no staker in config")), "bad staker")
42+ let distributor = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(config, "vires_distributor"), "no distributor in config")), "bad distributor")
43+ let ebUser = asString(invoke(ebRewards, "adviseUser", [user], nil))
44+ let stkUser = asString(invoke(staker, "adviseUser", [user], nil))
45+ let reservesData = {
46+ func fold (totals,reserve) = ((((((totals + ", [ ") + "reserveAddress: ") + reserve) + ",") + asString(invoke(distributor, "adviseUser", [reserve, user], nil))) + " ]")
47+
48+ let $l = reserves
49+ let $s = size($l)
50+ let $acc0 = ""
51+ func 1 ($a,$i) = if (($i >= $s))
52+ then $a
53+ else fold($a, $l[$i])
54+
55+ func 2 ($a,$i) = if (($i >= $s))
56+ then $a
57+ else throw("List size exceeds 7")
58+
59+ 2(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7)
60+ }
61+ (((ebUser + ", ") + stkUser) + reservesData)
62+ }
63+
64+
65+

github/deemru/w8io/3ef1775 
20.27 ms