tx · 6c2Lj1yFWyth4QhgNdUyQtUmXoZRJmRRKtwbmCRXxz63 3P8dfxANHUt1ReR6EVj3Yvf7HxBhuxV9po3: -0.01000000 Waves 2021.08.03 13:02 [2706815] smart account 3P8dfxANHUt1ReR6EVj3Yvf7HxBhuxV9po3 > SELF 0.00000000 Waves
{ "type": 13, "id": "6c2Lj1yFWyth4QhgNdUyQtUmXoZRJmRRKtwbmCRXxz63", "fee": 1000000, "feeAssetId": null, "timestamp": 1627984956271, "version": 1, "sender": "3P8dfxANHUt1ReR6EVj3Yvf7HxBhuxV9po3", "senderPublicKey": "Hiai8DZx1MZ3CvqfqgH2dwDCSyXNhsehPmHUVN66c8mc", "proofs": [ "2WWGk2EjudkjrCKqZiW9uUKcPbb2MMBSUHqhA5ovr1hPSdvvFV5dPozCWpU1yj7NUbvggrNQ5FdpMezB2Jtntgxh" ], "script": "base64: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QGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAApjb25maWdBZGRyAgAAABhhY2NvdW50X2hlYWx0aF90aHJlc2hvbGQCAAAAGCwgYWNjb3VudEhlYWx0aE92ZXJsYXA6IAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAApjb25maWdBZGRyAgAAABZhY2NvdW50X2hlYWx0aF9vdmVybGFwAgAAABMsIGNvbGxhcHNlUGVuYWx0eTogCQABpAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACmNvbmZpZ0FkZHICAAAAEGNvbGxhcHNlX3BlbmFsdHkCAAAAECwgd2F2ZXNMZWFzaW5nOiAJAAGkAAAAAQUAAAAMd2F2ZXNMZWFzaW5nBAAAAAtyZXNlcnZlRGF0YQoBAAAABGZvbGQAAAACAAAABnRvdGFscwAAAAdyZXNlcnZlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZ0b3RhbHMCAAAABCwgWyAJAQAAAA5nZXRSZXNlcnZlSW5mbwAAAAEFAAAAB3Jlc2VydmUCAAAAAyBdIAQAAAANJGxpc3QyNTg2MjYxMwUAAAAIcmVzZXJ2ZXMEAAAADSRzaXplMjU4NjI2MTMJAAGQAAAAAQUAAAANJGxpc3QyNTg2MjYxMwQAAAANJGFjYzAyNTg2MjYxMwIAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTI1ODYyNjEzAAAAAAAAAAAABQAAAA0kYWNjMDI1ODYyNjEzBAAAAA0kYWNjMTI1ODYyNjEzCQEAAAAEZm9sZAAAAAIFAAAADSRhY2MwMjU4NjI2MTMJAAGRAAAAAgUAAAANJGxpc3QyNTg2MjYxMwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemUyNTg2MjYxMwAAAAAAAAAAAQUAAAANJGFjYzEyNTg2MjYxMwQAAAANJGFjYzIyNTg2MjYxMwkBAAAABGZvbGQAAAACBQAAAA0kYWNjMTI1ODYyNjEzCQABkQAAAAIFAAAADSRsaXN0MjU4NjI2MTMAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMjU4NjI2MTMAAAAAAAAAAAIFAAAADSRhY2MyMjU4NjI2MTMEAAAADSRhY2MzMjU4NjI2MTMJ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", "chainId": 87, "height": 2706815, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Gb3sZbYAUw14FGD28DzCMRyiNbiqHcsYqMoynps3w624 Next: BujR5WrccLHfQ5Lc7vmgWtbpn2qYE8zqXojAz6bEJuB1 Diff:
Old | New | Differences | |
---|---|---|---|
15 | 15 | case _ => | |
16 | 16 | throw("wrong type, expected: String") | |
17 | 17 | } | |
18 | + | ||
19 | + | ||
20 | + | let USDN = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
21 | + | ||
22 | + | let wavesLeasing = valueOrElse(getInteger(this, "wavesLeasing"), 40) | |
23 | + | ||
24 | + | func getInterestReserveRatio (assetId) = { | |
25 | + | func getDistributor (assetId) = if ((assetId == "WAVES")) | |
26 | + | then addressFromString("3P9LK82DnwhvhyhLXmUSBGXyw6SdzycDErE") | |
27 | + | else if ((assetId == USDN)) | |
28 | + | then addressFromString("3PCcmyKxPbNur7zQPgaf9uczb8QYtE71jou") | |
29 | + | else unit | |
30 | + | ||
31 | + | match getDistributor(assetId) { | |
32 | + | case d: Address => | |
33 | + | (", interestReserveRatio: " + toString(valueOrElse(getInteger(d, "ratio"), 0))) | |
34 | + | case _ => | |
35 | + | "" | |
36 | + | } | |
37 | + | } | |
18 | 38 | ||
19 | 39 | ||
20 | 40 | func getReserveInfo (reserve) = { | |
37 | 57 | then { | |
38 | 58 | let data = asString(invoke(reserveAddr, "advise", nil, nil)) | |
39 | 59 | if ((data == data)) | |
40 | - | then ((((((("price: " + toString(price)) + ", assetId: ") + assetId) + ", aTokenId: ") + aTokenId) + ", ") + data) | |
60 | + | then (((((((("price: " + toString(price)) + ", assetId: ") + assetId) + ", aTokenId: ") + aTokenId) + getInterestReserveRatio(assetId)) + ", ") + data) | |
41 | 61 | else throw("Strict value is not equal to itself.") | |
42 | 62 | } | |
43 | 63 | else throw("Strict value is not equal to itself.") | |
56 | 76 | let configStore = "config" | |
57 | 77 | let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|") | |
58 | 78 | let configAddr = addressFromStringValue(valueOrErrorMessage(getString(mainAddress, configStore), "no config in main")) | |
59 | - | let general = ((((((("height: " + toString(height)) + ", accountHealthThreshold: ") + toString(getIntegerValue(configAddr, "account_health_threshold"))) + ", accountHealthOverlap: ") + toString(getIntegerValue(configAddr, "account_health_overlap"))) + ", collapsePenalty: ") + toString(getIntegerValue(configAddr, "collapse_penalty"))) | |
79 | + | let general = ((((((((("height: " + toString(height)) + ", accountHealthThreshold: ") + toString(getIntegerValue(configAddr, "account_health_threshold"))) + ", accountHealthOverlap: ") + toString(getIntegerValue(configAddr, "account_health_overlap"))) + ", collapsePenalty: ") + toString(getIntegerValue(configAddr, "collapse_penalty"))) + ", wavesLeasing: ") + toString(wavesLeasing)) | |
60 | 80 | let reserveData = { | |
61 | 81 | func fold (totals,reserve) = (((totals + ", [ ") + getReserveInfo(reserve)) + " ] ") | |
62 | 82 | ||
63 | - | let $ | |
64 | - | let $ | |
65 | - | let $ | |
66 | - | if (($ | |
67 | - | then $ | |
83 | + | let $list25862613 = reserves | |
84 | + | let $size25862613 = size($list25862613) | |
85 | + | let $acc025862613 = "" | |
86 | + | if (($size25862613 == 0)) | |
87 | + | then $acc025862613 | |
68 | 88 | else { | |
69 | - | let $ | |
70 | - | if (($ | |
71 | - | then $ | |
89 | + | let $acc125862613 = fold($acc025862613, $list25862613[0]) | |
90 | + | if (($size25862613 == 1)) | |
91 | + | then $acc125862613 | |
72 | 92 | else { | |
73 | - | let $ | |
74 | - | if (($ | |
75 | - | then $ | |
93 | + | let $acc225862613 = fold($acc125862613, $list25862613[1]) | |
94 | + | if (($size25862613 == 2)) | |
95 | + | then $acc225862613 | |
76 | 96 | else { | |
77 | - | let $ | |
78 | - | if (($ | |
79 | - | then $ | |
97 | + | let $acc325862613 = fold($acc225862613, $list25862613[2]) | |
98 | + | if (($size25862613 == 3)) | |
99 | + | then $acc325862613 | |
80 | 100 | else { | |
81 | - | let $ | |
82 | - | if (($ | |
83 | - | then $ | |
101 | + | let $acc425862613 = fold($acc325862613, $list25862613[3]) | |
102 | + | if (($size25862613 == 4)) | |
103 | + | then $acc425862613 | |
84 | 104 | else { | |
85 | - | let $ | |
86 | - | if (($ | |
87 | - | then $ | |
105 | + | let $acc525862613 = fold($acc425862613, $list25862613[4]) | |
106 | + | if (($size25862613 == 5)) | |
107 | + | then $acc525862613 | |
88 | 108 | else { | |
89 | - | let $acc618891916 = fold($acc518891916, $list18891916[5]) | |
90 | - | throw("List size exceed 5") | |
109 | + | let $acc625862613 = fold($acc525862613, $list25862613[5]) | |
110 | + | if (($size25862613 == 6)) | |
111 | + | then $acc625862613 | |
112 | + | else { | |
113 | + | let $acc725862613 = fold($acc625862613, $list25862613[6]) | |
114 | + | throw("List size exceed 6") | |
115 | + | } | |
91 | 116 | } | |
92 | 117 | } | |
93 | 118 | } | |
112 | 137 | else throw("Strict value is not equal to itself.") | |
113 | 138 | } | |
114 | 139 | ||
115 | - | let $ | |
116 | - | let $ | |
117 | - | let $ | |
118 | - | if (($ | |
119 | - | then $ | |
140 | + | let $list32343266 = reserves | |
141 | + | let $size32343266 = size($list32343266) | |
142 | + | let $acc032343266 = general | |
143 | + | if (($size32343266 == 0)) | |
144 | + | then $acc032343266 | |
120 | 145 | else { | |
121 | - | let $ | |
122 | - | if (($ | |
123 | - | then $ | |
146 | + | let $acc132343266 = fold($acc032343266, $list32343266[0]) | |
147 | + | if (($size32343266 == 1)) | |
148 | + | then $acc132343266 | |
124 | 149 | else { | |
125 | - | let $ | |
126 | - | if (($ | |
127 | - | then $ | |
150 | + | let $acc232343266 = fold($acc132343266, $list32343266[1]) | |
151 | + | if (($size32343266 == 2)) | |
152 | + | then $acc232343266 | |
128 | 153 | else { | |
129 | - | let $ | |
130 | - | if (($ | |
131 | - | then $ | |
154 | + | let $acc332343266 = fold($acc232343266, $list32343266[2]) | |
155 | + | if (($size32343266 == 3)) | |
156 | + | then $acc332343266 | |
132 | 157 | else { | |
133 | - | let $ | |
134 | - | if (($ | |
135 | - | then $ | |
158 | + | let $acc432343266 = fold($acc332343266, $list32343266[3]) | |
159 | + | if (($size32343266 == 4)) | |
160 | + | then $acc432343266 | |
136 | 161 | else { | |
137 | - | let $ | |
138 | - | if (($ | |
139 | - | then $ | |
162 | + | let $acc532343266 = fold($acc432343266, $list32343266[4]) | |
163 | + | if (($size32343266 == 5)) | |
164 | + | then $acc532343266 | |
140 | 165 | else { | |
141 | - | let $acc625372569 = fold($acc525372569, $list25372569[5]) | |
142 | - | throw("List size exceed 5") | |
166 | + | let $acc632343266 = fold($acc532343266, $list32343266[5]) | |
167 | + | if (($size32343266 == 6)) | |
168 | + | then $acc632343266 | |
169 | + | else { | |
170 | + | let $acc732343266 = fold($acc632343266, $list32343266[6]) | |
171 | + | throw("List size exceed 6") | |
172 | + | } | |
143 | 173 | } | |
144 | 174 | } | |
145 | 175 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func asInt (value) = match value { | |
5 | 5 | case int: Int => | |
6 | 6 | int | |
7 | 7 | case _ => | |
8 | 8 | throw("wrong type, expected: Int") | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func asString (value) = match value { | |
13 | 13 | case s: String => | |
14 | 14 | s | |
15 | 15 | case _ => | |
16 | 16 | throw("wrong type, expected: String") | |
17 | 17 | } | |
18 | + | ||
19 | + | ||
20 | + | let USDN = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
21 | + | ||
22 | + | let wavesLeasing = valueOrElse(getInteger(this, "wavesLeasing"), 40) | |
23 | + | ||
24 | + | func getInterestReserveRatio (assetId) = { | |
25 | + | func getDistributor (assetId) = if ((assetId == "WAVES")) | |
26 | + | then addressFromString("3P9LK82DnwhvhyhLXmUSBGXyw6SdzycDErE") | |
27 | + | else if ((assetId == USDN)) | |
28 | + | then addressFromString("3PCcmyKxPbNur7zQPgaf9uczb8QYtE71jou") | |
29 | + | else unit | |
30 | + | ||
31 | + | match getDistributor(assetId) { | |
32 | + | case d: Address => | |
33 | + | (", interestReserveRatio: " + toString(valueOrElse(getInteger(d, "ratio"), 0))) | |
34 | + | case _ => | |
35 | + | "" | |
36 | + | } | |
37 | + | } | |
18 | 38 | ||
19 | 39 | ||
20 | 40 | func getReserveInfo (reserve) = { | |
21 | 41 | let reserveAddr = addressFromStringValue(reserve) | |
22 | 42 | let oracleStore = "oracleAddress" | |
23 | 43 | let configAddressStore = "configAddress" | |
24 | 44 | let assetIdStore = "assetId" | |
25 | 45 | let aTokenIdStore = "aTokenId" | |
26 | 46 | let oracle = getStringValue(reserveAddr, oracleStore) | |
27 | 47 | if ((oracle == oracle)) | |
28 | 48 | then { | |
29 | 49 | let assetId = getStringValue(reserveAddr, assetIdStore) | |
30 | 50 | if ((assetId == assetId)) | |
31 | 51 | then { | |
32 | 52 | let aTokenId = getStringValue(reserveAddr, aTokenIdStore) | |
33 | 53 | if ((aTokenId == aTokenId)) | |
34 | 54 | then { | |
35 | 55 | let price = asInt(invoke(addressFromStringValue(oracle), "price", [assetId], nil)) | |
36 | 56 | if ((price == price)) | |
37 | 57 | then { | |
38 | 58 | let data = asString(invoke(reserveAddr, "advise", nil, nil)) | |
39 | 59 | if ((data == data)) | |
40 | - | then ((((((("price: " + toString(price)) + ", assetId: ") + assetId) + ", aTokenId: ") + aTokenId) + ", ") + data) | |
60 | + | then (((((((("price: " + toString(price)) + ", assetId: ") + assetId) + ", aTokenId: ") + aTokenId) + getInterestReserveRatio(assetId)) + ", ") + data) | |
41 | 61 | else throw("Strict value is not equal to itself.") | |
42 | 62 | } | |
43 | 63 | else throw("Strict value is not equal to itself.") | |
44 | 64 | } | |
45 | 65 | else throw("Strict value is not equal to itself.") | |
46 | 66 | } | |
47 | 67 | else throw("Strict value is not equal to itself.") | |
48 | 68 | } | |
49 | 69 | else throw("Strict value is not equal to itself.") | |
50 | 70 | } | |
51 | 71 | ||
52 | 72 | ||
53 | 73 | func advise (main) = { | |
54 | 74 | let mainAddress = valueOrErrorMessage(addressFromString(main), "bad main") | |
55 | 75 | let reservesStore = "reserves" | |
56 | 76 | let configStore = "config" | |
57 | 77 | let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|") | |
58 | 78 | let configAddr = addressFromStringValue(valueOrErrorMessage(getString(mainAddress, configStore), "no config in main")) | |
59 | - | let general = ((((((("height: " + toString(height)) + ", accountHealthThreshold: ") + toString(getIntegerValue(configAddr, "account_health_threshold"))) + ", accountHealthOverlap: ") + toString(getIntegerValue(configAddr, "account_health_overlap"))) + ", collapsePenalty: ") + toString(getIntegerValue(configAddr, "collapse_penalty"))) | |
79 | + | let general = ((((((((("height: " + toString(height)) + ", accountHealthThreshold: ") + toString(getIntegerValue(configAddr, "account_health_threshold"))) + ", accountHealthOverlap: ") + toString(getIntegerValue(configAddr, "account_health_overlap"))) + ", collapsePenalty: ") + toString(getIntegerValue(configAddr, "collapse_penalty"))) + ", wavesLeasing: ") + toString(wavesLeasing)) | |
60 | 80 | let reserveData = { | |
61 | 81 | func fold (totals,reserve) = (((totals + ", [ ") + getReserveInfo(reserve)) + " ] ") | |
62 | 82 | ||
63 | - | let $ | |
64 | - | let $ | |
65 | - | let $ | |
66 | - | if (($ | |
67 | - | then $ | |
83 | + | let $list25862613 = reserves | |
84 | + | let $size25862613 = size($list25862613) | |
85 | + | let $acc025862613 = "" | |
86 | + | if (($size25862613 == 0)) | |
87 | + | then $acc025862613 | |
68 | 88 | else { | |
69 | - | let $ | |
70 | - | if (($ | |
71 | - | then $ | |
89 | + | let $acc125862613 = fold($acc025862613, $list25862613[0]) | |
90 | + | if (($size25862613 == 1)) | |
91 | + | then $acc125862613 | |
72 | 92 | else { | |
73 | - | let $ | |
74 | - | if (($ | |
75 | - | then $ | |
93 | + | let $acc225862613 = fold($acc125862613, $list25862613[1]) | |
94 | + | if (($size25862613 == 2)) | |
95 | + | then $acc225862613 | |
76 | 96 | else { | |
77 | - | let $ | |
78 | - | if (($ | |
79 | - | then $ | |
97 | + | let $acc325862613 = fold($acc225862613, $list25862613[2]) | |
98 | + | if (($size25862613 == 3)) | |
99 | + | then $acc325862613 | |
80 | 100 | else { | |
81 | - | let $ | |
82 | - | if (($ | |
83 | - | then $ | |
101 | + | let $acc425862613 = fold($acc325862613, $list25862613[3]) | |
102 | + | if (($size25862613 == 4)) | |
103 | + | then $acc425862613 | |
84 | 104 | else { | |
85 | - | let $ | |
86 | - | if (($ | |
87 | - | then $ | |
105 | + | let $acc525862613 = fold($acc425862613, $list25862613[4]) | |
106 | + | if (($size25862613 == 5)) | |
107 | + | then $acc525862613 | |
88 | 108 | else { | |
89 | - | let $acc618891916 = fold($acc518891916, $list18891916[5]) | |
90 | - | throw("List size exceed 5") | |
109 | + | let $acc625862613 = fold($acc525862613, $list25862613[5]) | |
110 | + | if (($size25862613 == 6)) | |
111 | + | then $acc625862613 | |
112 | + | else { | |
113 | + | let $acc725862613 = fold($acc625862613, $list25862613[6]) | |
114 | + | throw("List size exceed 6") | |
115 | + | } | |
91 | 116 | } | |
92 | 117 | } | |
93 | 118 | } | |
94 | 119 | } | |
95 | 120 | } | |
96 | 121 | } | |
97 | 122 | } | |
98 | 123 | (general + reserveData) | |
99 | 124 | } | |
100 | 125 | ||
101 | 126 | ||
102 | 127 | func adviseUser (main,user) = { | |
103 | 128 | let mainAddress = valueOrErrorMessage(addressFromString(main), "bad main") | |
104 | 129 | let reservesStore = "reserves" | |
105 | 130 | let configStore = "config" | |
106 | 131 | let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|") | |
107 | 132 | let general = ((("height: " + toString(height)) + ", user: ") + user) | |
108 | 133 | func fold (totals,reserve) = { | |
109 | 134 | let userInfo = asString(invoke(addressFromStringValue(reserve), "adviseUser", [user], nil)) | |
110 | 135 | if ((userInfo == userInfo)) | |
111 | 136 | then (((totals + ", [ ") + userInfo) + " ] ") | |
112 | 137 | else throw("Strict value is not equal to itself.") | |
113 | 138 | } | |
114 | 139 | ||
115 | - | let $ | |
116 | - | let $ | |
117 | - | let $ | |
118 | - | if (($ | |
119 | - | then $ | |
140 | + | let $list32343266 = reserves | |
141 | + | let $size32343266 = size($list32343266) | |
142 | + | let $acc032343266 = general | |
143 | + | if (($size32343266 == 0)) | |
144 | + | then $acc032343266 | |
120 | 145 | else { | |
121 | - | let $ | |
122 | - | if (($ | |
123 | - | then $ | |
146 | + | let $acc132343266 = fold($acc032343266, $list32343266[0]) | |
147 | + | if (($size32343266 == 1)) | |
148 | + | then $acc132343266 | |
124 | 149 | else { | |
125 | - | let $ | |
126 | - | if (($ | |
127 | - | then $ | |
150 | + | let $acc232343266 = fold($acc132343266, $list32343266[1]) | |
151 | + | if (($size32343266 == 2)) | |
152 | + | then $acc232343266 | |
128 | 153 | else { | |
129 | - | let $ | |
130 | - | if (($ | |
131 | - | then $ | |
154 | + | let $acc332343266 = fold($acc232343266, $list32343266[2]) | |
155 | + | if (($size32343266 == 3)) | |
156 | + | then $acc332343266 | |
132 | 157 | else { | |
133 | - | let $ | |
134 | - | if (($ | |
135 | - | then $ | |
158 | + | let $acc432343266 = fold($acc332343266, $list32343266[3]) | |
159 | + | if (($size32343266 == 4)) | |
160 | + | then $acc432343266 | |
136 | 161 | else { | |
137 | - | let $ | |
138 | - | if (($ | |
139 | - | then $ | |
162 | + | let $acc532343266 = fold($acc432343266, $list32343266[4]) | |
163 | + | if (($size32343266 == 5)) | |
164 | + | then $acc532343266 | |
140 | 165 | else { | |
141 | - | let $acc625372569 = fold($acc525372569, $list25372569[5]) | |
142 | - | throw("List size exceed 5") | |
166 | + | let $acc632343266 = fold($acc532343266, $list32343266[5]) | |
167 | + | if (($size32343266 == 6)) | |
168 | + | then $acc632343266 | |
169 | + | else { | |
170 | + | let $acc732343266 = fold($acc632343266, $list32343266[6]) | |
171 | + | throw("List size exceed 6") | |
172 | + | } | |
143 | 173 | } | |
144 | 174 | } | |
145 | 175 | } | |
146 | 176 | } | |
147 | 177 | } | |
148 | 178 | } | |
149 | 179 | } | |
150 | 180 | ||
151 | 181 | ||
152 | 182 |
github/deemru/w8io/3ef1775 67.91 ms ◑![]()