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:
OldNewDifferences
1515 case _ =>
1616 throw("wrong type, expected: String")
1717 }
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+ }
1838
1939
2040 func getReserveInfo (reserve) = {
3757 then {
3858 let data = asString(invoke(reserveAddr, "advise", nil, nil))
3959 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)
4161 else throw("Strict value is not equal to itself.")
4262 }
4363 else throw("Strict value is not equal to itself.")
5676 let configStore = "config"
5777 let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|")
5878 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))
6080 let reserveData = {
6181 func fold (totals,reserve) = (((totals + ", [ ") + getReserveInfo(reserve)) + " ] ")
6282
63- let $list18891916 = reserves
64- let $size18891916 = size($list18891916)
65- let $acc018891916 = ""
66- if (($size18891916 == 0))
67- then $acc018891916
83+ let $list25862613 = reserves
84+ let $size25862613 = size($list25862613)
85+ let $acc025862613 = ""
86+ if (($size25862613 == 0))
87+ then $acc025862613
6888 else {
69- let $acc118891916 = fold($acc018891916, $list18891916[0])
70- if (($size18891916 == 1))
71- then $acc118891916
89+ let $acc125862613 = fold($acc025862613, $list25862613[0])
90+ if (($size25862613 == 1))
91+ then $acc125862613
7292 else {
73- let $acc218891916 = fold($acc118891916, $list18891916[1])
74- if (($size18891916 == 2))
75- then $acc218891916
93+ let $acc225862613 = fold($acc125862613, $list25862613[1])
94+ if (($size25862613 == 2))
95+ then $acc225862613
7696 else {
77- let $acc318891916 = fold($acc218891916, $list18891916[2])
78- if (($size18891916 == 3))
79- then $acc318891916
97+ let $acc325862613 = fold($acc225862613, $list25862613[2])
98+ if (($size25862613 == 3))
99+ then $acc325862613
80100 else {
81- let $acc418891916 = fold($acc318891916, $list18891916[3])
82- if (($size18891916 == 4))
83- then $acc418891916
101+ let $acc425862613 = fold($acc325862613, $list25862613[3])
102+ if (($size25862613 == 4))
103+ then $acc425862613
84104 else {
85- let $acc518891916 = fold($acc418891916, $list18891916[4])
86- if (($size18891916 == 5))
87- then $acc518891916
105+ let $acc525862613 = fold($acc425862613, $list25862613[4])
106+ if (($size25862613 == 5))
107+ then $acc525862613
88108 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+ }
91116 }
92117 }
93118 }
112137 else throw("Strict value is not equal to itself.")
113138 }
114139
115- let $list25372569 = reserves
116- let $size25372569 = size($list25372569)
117- let $acc025372569 = general
118- if (($size25372569 == 0))
119- then $acc025372569
140+ let $list32343266 = reserves
141+ let $size32343266 = size($list32343266)
142+ let $acc032343266 = general
143+ if (($size32343266 == 0))
144+ then $acc032343266
120145 else {
121- let $acc125372569 = fold($acc025372569, $list25372569[0])
122- if (($size25372569 == 1))
123- then $acc125372569
146+ let $acc132343266 = fold($acc032343266, $list32343266[0])
147+ if (($size32343266 == 1))
148+ then $acc132343266
124149 else {
125- let $acc225372569 = fold($acc125372569, $list25372569[1])
126- if (($size25372569 == 2))
127- then $acc225372569
150+ let $acc232343266 = fold($acc132343266, $list32343266[1])
151+ if (($size32343266 == 2))
152+ then $acc232343266
128153 else {
129- let $acc325372569 = fold($acc225372569, $list25372569[2])
130- if (($size25372569 == 3))
131- then $acc325372569
154+ let $acc332343266 = fold($acc232343266, $list32343266[2])
155+ if (($size32343266 == 3))
156+ then $acc332343266
132157 else {
133- let $acc425372569 = fold($acc325372569, $list25372569[3])
134- if (($size25372569 == 4))
135- then $acc425372569
158+ let $acc432343266 = fold($acc332343266, $list32343266[3])
159+ if (($size32343266 == 4))
160+ then $acc432343266
136161 else {
137- let $acc525372569 = fold($acc425372569, $list25372569[4])
138- if (($size25372569 == 5))
139- then $acc525372569
162+ let $acc532343266 = fold($acc432343266, $list32343266[4])
163+ if (($size32343266 == 5))
164+ then $acc532343266
140165 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+ }
143173 }
144174 }
145175 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func asInt (value) = match value {
55 case int: Int =>
66 int
77 case _ =>
88 throw("wrong type, expected: Int")
99 }
1010
1111
1212 func asString (value) = match value {
1313 case s: String =>
1414 s
1515 case _ =>
1616 throw("wrong type, expected: String")
1717 }
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+ }
1838
1939
2040 func getReserveInfo (reserve) = {
2141 let reserveAddr = addressFromStringValue(reserve)
2242 let oracleStore = "oracleAddress"
2343 let configAddressStore = "configAddress"
2444 let assetIdStore = "assetId"
2545 let aTokenIdStore = "aTokenId"
2646 let oracle = getStringValue(reserveAddr, oracleStore)
2747 if ((oracle == oracle))
2848 then {
2949 let assetId = getStringValue(reserveAddr, assetIdStore)
3050 if ((assetId == assetId))
3151 then {
3252 let aTokenId = getStringValue(reserveAddr, aTokenIdStore)
3353 if ((aTokenId == aTokenId))
3454 then {
3555 let price = asInt(invoke(addressFromStringValue(oracle), "price", [assetId], nil))
3656 if ((price == price))
3757 then {
3858 let data = asString(invoke(reserveAddr, "advise", nil, nil))
3959 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)
4161 else throw("Strict value is not equal to itself.")
4262 }
4363 else throw("Strict value is not equal to itself.")
4464 }
4565 else throw("Strict value is not equal to itself.")
4666 }
4767 else throw("Strict value is not equal to itself.")
4868 }
4969 else throw("Strict value is not equal to itself.")
5070 }
5171
5272
5373 func advise (main) = {
5474 let mainAddress = valueOrErrorMessage(addressFromString(main), "bad main")
5575 let reservesStore = "reserves"
5676 let configStore = "config"
5777 let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|")
5878 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))
6080 let reserveData = {
6181 func fold (totals,reserve) = (((totals + ", [ ") + getReserveInfo(reserve)) + " ] ")
6282
63- let $list18891916 = reserves
64- let $size18891916 = size($list18891916)
65- let $acc018891916 = ""
66- if (($size18891916 == 0))
67- then $acc018891916
83+ let $list25862613 = reserves
84+ let $size25862613 = size($list25862613)
85+ let $acc025862613 = ""
86+ if (($size25862613 == 0))
87+ then $acc025862613
6888 else {
69- let $acc118891916 = fold($acc018891916, $list18891916[0])
70- if (($size18891916 == 1))
71- then $acc118891916
89+ let $acc125862613 = fold($acc025862613, $list25862613[0])
90+ if (($size25862613 == 1))
91+ then $acc125862613
7292 else {
73- let $acc218891916 = fold($acc118891916, $list18891916[1])
74- if (($size18891916 == 2))
75- then $acc218891916
93+ let $acc225862613 = fold($acc125862613, $list25862613[1])
94+ if (($size25862613 == 2))
95+ then $acc225862613
7696 else {
77- let $acc318891916 = fold($acc218891916, $list18891916[2])
78- if (($size18891916 == 3))
79- then $acc318891916
97+ let $acc325862613 = fold($acc225862613, $list25862613[2])
98+ if (($size25862613 == 3))
99+ then $acc325862613
80100 else {
81- let $acc418891916 = fold($acc318891916, $list18891916[3])
82- if (($size18891916 == 4))
83- then $acc418891916
101+ let $acc425862613 = fold($acc325862613, $list25862613[3])
102+ if (($size25862613 == 4))
103+ then $acc425862613
84104 else {
85- let $acc518891916 = fold($acc418891916, $list18891916[4])
86- if (($size18891916 == 5))
87- then $acc518891916
105+ let $acc525862613 = fold($acc425862613, $list25862613[4])
106+ if (($size25862613 == 5))
107+ then $acc525862613
88108 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+ }
91116 }
92117 }
93118 }
94119 }
95120 }
96121 }
97122 }
98123 (general + reserveData)
99124 }
100125
101126
102127 func adviseUser (main,user) = {
103128 let mainAddress = valueOrErrorMessage(addressFromString(main), "bad main")
104129 let reservesStore = "reserves"
105130 let configStore = "config"
106131 let reserves = split(valueOrErrorMessage(getString(mainAddress, reservesStore), "no reserves"), "|")
107132 let general = ((("height: " + toString(height)) + ", user: ") + user)
108133 func fold (totals,reserve) = {
109134 let userInfo = asString(invoke(addressFromStringValue(reserve), "adviseUser", [user], nil))
110135 if ((userInfo == userInfo))
111136 then (((totals + ", [ ") + userInfo) + " ] ")
112137 else throw("Strict value is not equal to itself.")
113138 }
114139
115- let $list25372569 = reserves
116- let $size25372569 = size($list25372569)
117- let $acc025372569 = general
118- if (($size25372569 == 0))
119- then $acc025372569
140+ let $list32343266 = reserves
141+ let $size32343266 = size($list32343266)
142+ let $acc032343266 = general
143+ if (($size32343266 == 0))
144+ then $acc032343266
120145 else {
121- let $acc125372569 = fold($acc025372569, $list25372569[0])
122- if (($size25372569 == 1))
123- then $acc125372569
146+ let $acc132343266 = fold($acc032343266, $list32343266[0])
147+ if (($size32343266 == 1))
148+ then $acc132343266
124149 else {
125- let $acc225372569 = fold($acc125372569, $list25372569[1])
126- if (($size25372569 == 2))
127- then $acc225372569
150+ let $acc232343266 = fold($acc132343266, $list32343266[1])
151+ if (($size32343266 == 2))
152+ then $acc232343266
128153 else {
129- let $acc325372569 = fold($acc225372569, $list25372569[2])
130- if (($size25372569 == 3))
131- then $acc325372569
154+ let $acc332343266 = fold($acc232343266, $list32343266[2])
155+ if (($size32343266 == 3))
156+ then $acc332343266
132157 else {
133- let $acc425372569 = fold($acc325372569, $list25372569[3])
134- if (($size25372569 == 4))
135- then $acc425372569
158+ let $acc432343266 = fold($acc332343266, $list32343266[3])
159+ if (($size32343266 == 4))
160+ then $acc432343266
136161 else {
137- let $acc525372569 = fold($acc425372569, $list25372569[4])
138- if (($size25372569 == 5))
139- then $acc525372569
162+ let $acc532343266 = fold($acc432343266, $list32343266[4])
163+ if (($size32343266 == 5))
164+ then $acc532343266
140165 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+ }
143173 }
144174 }
145175 }
146176 }
147177 }
148178 }
149179 }
150180
151181
152182

github/deemru/w8io/3ef1775 
67.91 ms