tx · Gu2H3W8GtE6sdWn3pjU2amDcZBEMFG3EeRXEEP7MsBUh

3PJKKT7gsWiPBJj11gkF3Xv7gKt8s2WPdTr:  -0.01000000 Waves

2022.03.09 14:11 [3021460] smart account 3PJKKT7gsWiPBJj11gkF3Xv7gKt8s2WPdTr > SELF 0.00000000 Waves

{ "type": 13, "id": "Gu2H3W8GtE6sdWn3pjU2amDcZBEMFG3EeRXEEP7MsBUh", "fee": 1000000, "feeAssetId": null, "timestamp": 1646824258496, "version": 1, "sender": "3PJKKT7gsWiPBJj11gkF3Xv7gKt8s2WPdTr", "senderPublicKey": "FAqqjX7JqvqLh2QGTR3ziyCnSsWSoj9gVo4uPahtmhKr", "proofs": [ "4v3VuCnNTsA5c3yCJ6b24inUTUm2aQAtMaYe8mknrsJS4rLjwt1MVKeFza7AQtG6wakgnwKofPVhcGDMhohHv9B" ], "script": "base64:AAIFAAAAAAAAACIIAhIDCgEIEgASAwoBCBIAEgMKAQgSBQoDCAgBEgQKAggIAAAAKAEAAAAHdGhyb3dJZgAAAAIAAAAJY29uZGl0aW9uAAAABWVycm9yAwUAAAAJY29uZGl0aW9uCQAAAgAAAAEFAAAABWVycm9yBgEAAAAId3JpdGVJbnQAAAACAAAAA2tleQAAAAV2YWx1ZQMJAABmAAAAAgAAAAAAAAAAAAUAAAAFdmFsdWUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXd3JpdGluZyBuZWdhdGl2ZSB2YWx1ZSAJAAGkAAAAAQUAAAAFdmFsdWUCAAAACSBmb3Iga2V5IAUAAAADa2V5CQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAIY2hhbmdlQnkAAAACAAAAA2tleQAAAAV2YWx1ZQkBAAAACHdyaXRlSW50AAAAAgUAAAADa2V5CQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AAAAAAAAAAAABQAAAAV2YWx1ZQEAAAAMZnJhY3Rpb25DZWlsAAAAAwAAAAV2YWx1ZQAAAAludW1lcmF0b3IAAAALZGVub21pbmF0b3IEAAAABGNhbmQJAABrAAAAAwUAAAAFdmFsdWUFAAAACW51bWVyYXRvcgUAAAALZGVub21pbmF0b3IEAAAAAUQAAAAAALUE8zMEAAAABWV4YWN0CQAAAAAAAAIJAABqAAAAAgkAAGgAAAACCQAAagAAAAIFAAAABGNhbmQFAAAAAUQJAABqAAAAAgUAAAALZGVub21pbmF0b3IFAAAAAUQFAAAAAUQJAABqAAAAAgkAAGgAAAACCQAAagAAAAIFAAAABXZhbHVlBQAAAAFECQAAagAAAAIFAAAACW51bWVyYXRvcgUAAAABRAUAAAABRAMFAAAABWV4YWN0BQAAAARjYW5kCQAAZAAAAAIFAAAABGNhbmQAAAAAAAAAAAEBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAVYWxyZWFkeSBpbml0aWFsaXplZDogBQAAAANrZXkAAAAAEmNvbmZpZ0FkZHJlc3NTdG9yZQIAAAANY29uZmlnQWRkcmVzcwAAAAALb3JhY2xlU3RvcmUCAAAADm9yYWNsZV9hZGRyZXNzAQAAABJyZXNlcnZlRmFjdG9yU3RvcmUAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgUAAAAHYXNzZXRJZAIAAAAOX1Jlc2VydmVGYWN0b3IAAAAACW1haW5TdG9yZQIAAAAEbWFpbgAAAAANY29uZmlnQWRkcmVzcwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAABJjb25maWdBZGRyZXNzU3RvcmUCAAAAI3Byb3RlY3RlZC1yZXNlcnZlOiBubyBjb25maWdBZGRyZXNzAgAAABZpbnZhbGlkIGNvbmZpZyBhZGRyZXNzAQAAAA1yZXNlcnZlRmFjdG9yAAAAAQAAAAdhc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANY29uZmlnQWRkcmVzcwkBAAAAEnJlc2VydmVGYWN0b3JTdG9yZQAAAAEFAAAAB2Fzc2V0SWQCAAAAEG5vIHJlc2VydmVGYWN0b3IBAAAACmdldEJhbGFuY2UAAAACAAAADmFkZHJlc3NPckFsaWFzAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAmJ2BQAAAAckbWF0Y2gwCQAD8AAAAAIFAAAADmFkZHJlc3NPckFsaWFzBQAAAAJidgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABdQUAAAAHJG1hdGNoMAgJAAPvAAAAAQUAAAAOYWRkcmVzc09yQWxpYXMAAAAJYXZhaWxhYmxlCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAAlvcEFsbG93ZWQAAAACAAAAB2Fzc2V0SWQAAAACb3AEAAAAByRtYXRjaDAJAAP8AAAABAUAAAANY29uZmlnQWRkcmVzcwIAAAAJb3BBbGxvd2VkCQAETAAAAAIFAAAAB2Fzc2V0SWQJAARMAAAAAgUAAAACb3AFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwAwUAAAABYgYJAAACAAAAAQIAAAALbm90IGFsbG93ZWQJAAACAAAAAQIAAAAhb3BBbGxvd2VkOiB1bmV4cGVjdGVkIHJlc3VsdCB0eXBlAQAAAAhtYWluT25seQAAAAEAAAABaQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA1jb25maWdBZGRyZXNzBQAAAAltYWluU3RvcmUCAAAAEW5vIG1haW4gaW4gY29uZmlnAgAAABRpbnZhbGlkIG1haW4gYWRkcmVzcwkAAAIAAAABAgAAABBvbmx5IG1haW4gY2FuIGRvBgAAAAASbWF5YmVPcmFjbGVBZGRyZXNzBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADWNvbmZpZ0FkZHJlc3MFAAAAC29yYWNsZVN0b3JlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAQmAAAAAQUAAAABcwUAAAAEdW5pdAEAAAALb3JhY2xlUHJpY2UAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAJAAP8AAAABAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACBQAAABJtYXliZU9yYWNsZUFkZHJlc3MCAAAACW5vIG9yYWNsZQIAAAAFcHJpY2UJAARMAAAAAgUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQkAAAIAAAABAgAAAA9iYWQgb3JhY2xlIGRhdGEAAAAABkhFSUdIVAUAAAAGaGVpZ2h0AAAAAAZhc3NldHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAANY29uZmlnQWRkcmVzcwIAAAAYcHJvdGVjdGVkX3Jlc2VydmVfYXNzZXRzAgAAAAAAAAAAC2Fzc2V0c0FycmF5AwkAAAAAAAACBQAAAAZhc3NldHMCAAAAAAUAAAADbmlsCQAEtQAAAAIFAAAABmFzc2V0cwIAAAABfAEAAAARdG90YWxEZXBvc2l0U3RvcmUAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgIAAAAMdG90YWxTdXBwbHlfBQAAAAdhc3NldElkAQAAABB0b3RhbFNoYXJlc1N0b3JlAAAAAQAAAAdhc3NldElkCQABLAAAAAICAAAADHRvdGFsU2hhcmVzXwUAAAAHYXNzZXRJZAEAAAAPdXNlclNoYXJlc1N0b3JlAAAAAgAAAAdhc3NldElkAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAC3VzZXJTaGFyZXNfBQAAAAdhc3NldElkAgAAAAFfBQAAAAR1c2VyAQAAABFoYXNQcm90ZWN0ZWRTdG9yZQAAAAEAAAAEdXNlcgkAASwAAAACAgAAABVwcm90ZWN0ZWRfY29sbGF0ZXJhbF8FAAAABHVzZXIBAAAAE3Byb3RlY3RlZEFzc2V0U3RvcmUAAAABAAAABHVzZXIJAAEsAAAAAgIAAAAQcHJvdGVjdGVkX2Fzc2V0XwUAAAAEdXNlcgEAAAAMdG90YWxEZXBvc2l0AAAAAQAAAAdhc3NldElkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABF0b3RhbERlcG9zaXRTdG9yZQAAAAEFAAAAB2Fzc2V0SWQAAAAAAAAAAAABAAAAC3RvdGFsU2hhcmVzAAAAAQAAAAdhc3NldElkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABB0b3RhbFNoYXJlc1N0b3JlAAAAAQUAAAAHYXNzZXRJZAAAAAAAAAAAAAEAAAAKdXNlclNoYXJlcwAAAAIAAAAHYXNzZXRJZAAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAAA91c2VyU2hhcmVzU3RvcmUAAAACBQAAAAdhc3NldElkBQAAAAR1c2VyAAAAAAAA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aDAFAAAADnByb3RlY3RlZEFzc2V0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAAAXMFAAAAB2Fzc2V0SWQGCQAAAgAAAAECAAAAO3Byb3RlY3RlZC1yZXNlcnZlOiBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgYXNzZXQgcHJvdGVjdGVkCQAAAgAAAAECAAAAIHByb3RlY3RlZC1yZXNlcnZlOmNsZWFuIHVwIGZpcnN0BAAAAAckbWF0Y2gwBQAAAA5wcm90ZWN0ZWRBc3NldAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQAAAgAAAAECAAAAI3Byb3RlY3RlZC1yZXNlcnZlOiBtaXNjb25maWd1cmF0aW9uBgQAAAAQY29uc2lzdGVuY3lDaGVjawkBAAAAB3Rocm93SWYAAAACCQEAAAABIQAAAAEFAAAAC2NvbnNpc3RlbmN5AgAAAA1pbmNvbnNpc3RlbmN5AwkAAAAAAAACBQAAABBjb25zaXN0ZW5jeUNoZWNrBQAAABBjb25zaXN0ZW5jeUNoZWNrBAAAAAluZXdTaGFyZXMJAQAAAA5hbW91bnRUb1NoYXJlcwAAAAMFAAAAB2Fzc2V0SWQFAAAABmFtb3VudAcEAAAAB3N0YWtpbmcJAQAAAA1zdGFraW5nQWN0aW9uAAAAAgUAAAAHYXNzZXRJZAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAHc3Rha2luZwUAAAAHc3Rha2luZwkABEwAAAACCQEAAAAIY2hhbmdlQnkAAAACCQEAAAARdG90YWxEZXBvc2l0U3RvcmUAAAABBQAAAAdhc3NldElkBQAAAAZhbW91bnQJAARMAAAAAgkBAAAACGNoYW5nZUJ5AAAAAgkBAAAAEHRvdGFsU2hhcmVzU3RvcmUAAAABBQAAAAdhc3NldElkBQAAAAluZXdTaGFyZXMJAARMAAAAAgkBAAAACGNoYW5nZUJ5AAAAAgkBAAAAD3VzZXJTaGFyZXNTdG9yZQAAAAIFAAAAB2Fzc2V0SWQFAAAABHVzZXIFAAAACW5ld1NoYXJlcwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAA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", "chainId": 87, "height": 3021460, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5Eavzk8oCagrUAguJsQJghsZTdgEGRkkHHnrSg9khy43 Next: 6QQqieoQUEHHu6vNAB7ve5CYMXGEEYEAx7gQBmUNPNfu Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = getInteger(this, b)
5-
6-
7-func c (b) = getString(this, b)
8-
9-
10-func d (b) = value(getString(this, b))
11-
12-
13-func e (f,g) = if (f)
14- then throw(g)
4+func a (b,c) = if (b)
5+ then throw(c)
156 else true
167
178
18-func h (b,i) = if ((0 > i))
19- then throw(((("writing negative value " + toString(i)) + " for key ") + b))
20- else IntegerEntry(b, i)
9+func d (e,f) = if ((0 > f))
10+ then throw(((("writing negative value " + toString(f)) + " for key ") + e))
11+ else IntegerEntry(e, f)
2112
2213
23-func j (b,i) = h(b, (valueOrElse(a(b), 0) + i))
14+func g (e,f) = d(e, (valueOrElse(getInteger(this, e), 0) + f))
2415
2516
26-func k (i,l,m) = {
27- let n = fraction(i, l, m)
28- let o = 3037000499
29- let p = ((((n % o) * (m % o)) % o) == (((i % o) * (l % o)) % o))
30- if (p)
31- then n
32- else (n + 1)
17+func h (f,i,j) = {
18+ let k = fraction(f, i, j)
19+ let l = 3037000499
20+ let m = ((((k % l) * (j % l)) % l) == (((f % l) * (i % l)) % l))
21+ if (m)
22+ then k
23+ else (k + 1)
3324 }
3425
3526
36-func q (b,i) = if (!(isDefined(getString(this, b))))
37- then StringEntry(b, i)
38- else throw(("already initialized: " + b))
27+func n (e,f) = if (!(isDefined(getString(this, e))))
28+ then StringEntry(e, f)
29+ else throw(("already initialized: " + e))
3930
4031
41-let r = "configAddress"
32+let o = "configAddress"
4233
43-let s = "oracleAddress"
34+let p = "oracle_address"
4435
45-func t (u) = (u + "_ReserveFactor")
36+func q (r) = (r + "_ReserveFactor")
4637
4738
48-let v = "main"
39+let s = "main"
4940
50-let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(c(r), "no configAddress")), "invalid config address")
41+let t = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, o), "protected-reserve: no configAddress")), "invalid config address")
5142
52-func x (u) = valueOrErrorMessage(getInteger(w, t(u)), "no reserveFactor")
43+func u (r) = valueOrErrorMessage(getInteger(t, q(r)), "no reserveFactor")
5344
5445
55-func y (z,u) = {
56- let A = u
57- if ($isInstanceOf(A, "ByteVector"))
46+func v (w,r) = {
47+ let x = r
48+ if ($isInstanceOf(x, "ByteVector"))
5849 then {
59- let B = A
60- assetBalance(z, B)
50+ let y = x
51+ assetBalance(w, y)
6152 }
62- else if ($isInstanceOf(A, "Unit"))
53+ else if ($isInstanceOf(x, "Unit"))
6354 then {
64- let C = A
65- wavesBalance(z).available
55+ let z = x
56+ wavesBalance(w).available
6657 }
6758 else throw("Match error")
6859 }
6960
7061
71-func D (u,E) = {
72- let A = invoke(w, "opAllowed", [u, E], nil)
73- if ($isInstanceOf(A, "Boolean"))
62+func A (r,B) = {
63+ let x = invoke(t, "opAllowed", [r, B], nil)
64+ if ($isInstanceOf(x, "Boolean"))
7465 then {
75- let F = A
76- if (F)
66+ let C = x
67+ if (C)
7768 then true
7869 else throw("not allowed")
7970 }
8172 }
8273
8374
84-func G (H) = if ((H.caller != valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(w, v), "no main in config")), "invalid main address")))
75+func D (E) = if ((E.caller != valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(t, s), "no main in config")), "invalid main address")))
8576 then throw("only main can do")
8677 else true
8778
8879
89-let I = {
90- let A = c(s)
91- if ($isInstanceOf(A, "String"))
80+let F = {
81+ let x = getString(t, p)
82+ if ($isInstanceOf(x, "String"))
9283 then {
93- let J = A
94- addressFromString(J)
84+ let G = x
85+ addressFromString(G)
9586 }
9687 else unit
9788 }
9889
99-func K (u) = {
100- let A = invoke(valueOrErrorMessage(I, "no oracle"), "price", [u], nil)
101- if ($isInstanceOf(A, "Int"))
90+func H (r) = {
91+ let x = invoke(valueOrErrorMessage(F, "no oracle"), "price", [r], nil)
92+ if ($isInstanceOf(x, "Int"))
10293 then {
103- let H = A
104- H
94+ let E = x
95+ E
10596 }
10697 else throw("bad oracle data")
10798 }
10899
109100
110-let L = height
101+let I = height
111102
112-let M = valueOrElse(getString(w, "protected_reserve_assets"), "")
103+let J = valueOrElse(getString(t, "protected_reserve_assets"), "")
113104
114-let N = if ((M == ""))
105+let K = if ((J == ""))
115106 then nil
116- else split(M, "|")
107+ else split(J, "|")
117108
118-func O (u) = ("totalSupply_" + u)
109+func L (r) = ("totalSupply_" + r)
119110
120111
121-func P (u) = ("totalShares_" + u)
112+func M (r) = ("totalShares_" + r)
122113
123114
124-func Q (u,R) = ((("userShares_" + u) + "_") + R)
115+func N (r,O) = ((("userShares_" + r) + "_") + O)
125116
126117
127-func S (R) = ("protected_collateral_" + R)
118+func P (O) = ("protected_collateral_" + O)
128119
129120
130-func T (R) = ("protected_asset_" + R)
121+func Q (O) = ("protected_asset_" + O)
131122
132123
133-func U (u) = valueOrElse(getInteger(O(u)), 0)
124+func R (r) = valueOrElse(getInteger(L(r)), 0)
134125
135126
136-func V (u) = valueOrElse(getInteger(P(u)), 0)
127+func S (r) = valueOrElse(getInteger(M(r)), 0)
137128
138129
139-func W (u,R) = valueOrElse(getInteger(Q(u, R)), 0)
130+func T (r,O) = valueOrElse(getInteger(N(r, O)), 0)
140131
141132
142-func X (u,R) = {
143- let Y = V(u)
144- let Z = U(u)
145- let aa = W(u, R)
146- if ((Y == 0))
133+func U (r,O) = {
134+ let V = S(r)
135+ let W = R(r)
136+ let X = T(r, O)
137+ if ((V == 0))
147138 then 0
148- else fraction(Z, aa, Y)
139+ else fraction(W, X, V)
149140 }
150141
151142
152-func ab (R) = {
153- let ac = split(valueOrErrorMessage(getString(addressFromStringValue(getStringValue(w, v)), "reserves"), "protected: no reserves found in main"), "|")
154- func ad (i) = {
155- let A = i
156- if ($isInstanceOf(A, "(Int, Int, Int, Int, Int, Boolean)"))
143+func Y (O) = {
144+ let Z = split(valueOrErrorMessage(getString(t, "primary_reserves"), "protected: no reserves found in main"), "|")
145+ func aa (f) = {
146+ let x = f
147+ if ($isInstanceOf(x, "(Int, Int, Int, Int, Int, Boolean)"))
157148 then {
158- let ae = A
159- ae
149+ let ab = x
150+ ab
160151 }
161152 else {
162- let af = A
153+ let ac = x
163154 throw("wrong type, expected: Int5&Boolean")
164155 }
165156 }
166157
167- func ag (ah,ai) = {
168- let aj = ad(invoke(addressFromStringValue(ai), "userBalance", [R], nil))
169- if ((aj._1 > 0))
158+ func ad (ae,af) = {
159+ let ag = aa(invoke(addressFromStringValue(af), "userBalance", [O], nil))
160+ if ((ag._1 > 0))
170161 then throw("can't have protected when regular exists")
171162 else false
172163 }
173164
174- let ak = ac
175- let al = size(ak)
176- let am = false
177- func an (ao,ap) = if ((ap >= al))
178- then ao
179- else ag(ao, ak[ap])
165+ let ah = Z
166+ let ai = size(ah)
167+ let aj = false
168+ func ak (al,am) = if ((am >= ai))
169+ then al
170+ else ad(al, ah[am])
180171
181- func aq (ao,ap) = if ((ap >= al))
182- then ao
172+ func an (al,am) = if ((am >= ai))
173+ then al
183174 else throw("List size exceeds 7")
184175
185- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
176+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
186177 }
187178
188179
189-func ar (R) = {
190- func ag (ah,u) = (ah ++ [$Tuple2(u, X(u, R))])
180+func ao (O) = {
181+ func ad (ae,r) = (ae ++ [$Tuple2(r, U(r, O))])
191182
192- let ak = N
193- let al = size(ak)
194- let am = nil
195- func an (ao,ap) = if ((ap >= al))
196- then ao
197- else ag(ao, ak[ap])
183+ let ah = K
184+ let ai = size(ah)
185+ let aj = nil
186+ func ak (al,am) = if ((am >= ai))
187+ then al
188+ else ad(al, ah[am])
198189
199- func aq (ao,ap) = if ((ap >= al))
200- then ao
190+ func an (al,am) = if ((am >= ai))
191+ then al
201192 else throw("List size exceeds 7")
202193
203- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
194+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
204195 }
205196
206197
207-func as (R) = {
208- let at = 1000
209- func au (u) = valueOrErrorMessage(getInteger(w, (u + "_CollateralFactor")), "no CollateralFactor in config")
198+func ap (O) = {
199+ let aq = 1000
200+ func ar (r) = valueOrErrorMessage(getInteger(t, (r + "_CollateralFactor")), "no CollateralFactor in config")
210201
211- func av (aw) = if ((aw == 6))
202+ func as (at) = if ((at == 6))
212203 then 1000000
213- else if ((aw == 8))
204+ else if ((at == 8))
214205 then 100000000
215- else throw(("bad decimals: " + toString(aw)))
206+ else throw(("bad decimals: " + toString(at)))
216207
217- func ax (u) = if ((u == "WAVES"))
208+ func au (r) = if ((r == "WAVES"))
218209 then 8
219- else valueOrErrorMessage(assetInfo(fromBase58String(u)), "bad asset").decimals
210+ else valueOrErrorMessage(assetInfo(fromBase58String(r)), "bad asset").decimals
220211
221- func ay (u,az) = fraction(az, K(u), av(ax(u)))
212+ func av (r,aw) = fraction(aw, H(r), as(au(r)))
222213
223- func ag (ah,aA) = (ah + {
224- let aB = aA
225- let u = aB._1
226- let aC = aB._2
227- fraction(ay(u, aC), au(u), at)
214+ func ad (ae,ax) = (ae + {
215+ let ay = ax
216+ let r = ay._1
217+ let az = ay._2
218+ fraction(av(r, az), ar(r), aq)
228219 })
229220
230- let ak = ar(R)
231- let al = size(ak)
232- let am = 0
233- func an (ao,ap) = if ((ap >= al))
234- then ao
235- else ag(ao, ak[ap])
221+ let ah = ao(O)
222+ let ai = size(ah)
223+ let aj = 0
224+ func ak (al,am) = if ((am >= ai))
225+ then al
226+ else ad(al, ah[am])
236227
237- func aq (ao,ap) = if ((ap >= al))
238- then ao
228+ func an (al,am) = if ((am >= ai))
229+ then al
239230 else throw("List size exceeds 7")
240231
241- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
232+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
242233 }
243234
244235
245-func aD (R) = {
246- let aE = as(R)
247- (("borrowPower = " + toString(aE)) + {
248- func ag (ah,aF) = ((((ah + ", ") + aF._1) + " = ") + toString(aF._2))
236+func aA (O) = {
237+ let aB = ap(O)
238+ (("borrowPower = " + toString(aB)) + {
239+ func ad (ae,aC) = ((((ae + ", ") + aC._1) + " = ") + toString(aC._2))
249240
250- let ak = ar(R)
251- let al = size(ak)
252- let am = ""
253- func an (ao,ap) = if ((ap >= al))
254- then ao
255- else ag(ao, ak[ap])
241+ let ah = ao(O)
242+ let ai = size(ah)
243+ let aj = ""
244+ func ak (al,am) = if ((am >= ai))
245+ then al
246+ else ad(al, ah[am])
256247
257- func aq (ao,ap) = if ((ap >= al))
258- then ao
248+ func an (al,am) = if ((am >= ai))
249+ then al
259250 else throw("List size exceeds 7")
260251
261- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
252+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
262253 })
263254 }
264255
265256
266-func aG (u,aH) = {
267- let Y = V(u)
268- let Z = U(u)
269- if (if ((Y == 0))
257+func aD (r,aE) = {
258+ let V = S(r)
259+ let W = R(r)
260+ if (if ((V == 0))
270261 then true
271- else (Z == 0))
272- then aH
273- else fraction(aH, Z, Y)
262+ else (W == 0))
263+ then aE
264+ else fraction(aE, W, V)
274265 }
275266
276267
277-func aI (u,aC,aJ) = {
278- let Y = V(u)
279- let Z = U(u)
280- if (if ((Y == 0))
268+func aF (r,az,aG) = {
269+ let V = S(r)
270+ let W = R(r)
271+ if (if ((V == 0))
281272 then true
282- else (Z == 0))
283- then aC
284- else if (aJ)
285- then k(aC, Y, Z)
286- else fraction(aC, Y, Z)
273+ else (W == 0))
274+ then az
275+ else if (aG)
276+ then h(az, V, W)
277+ else fraction(az, V, W)
287278 }
288279
289280
290-func aK (u) = e(!(contains(M, u)), "assetId not permitted")
281+func aH (r) = a(!(contains(J, r)), "assetId not permitted")
291282
292283
293-func aL (aM) = {
294- let A = aM
295- if ($isInstanceOf(A, "ByteVector"))
284+func aI (aJ) = {
285+ let x = aJ
286+ if ($isInstanceOf(x, "ByteVector"))
296287 then {
297- let B = A
298- toBase58String(B)
288+ let y = x
289+ toBase58String(y)
299290 }
300- else if ($isInstanceOf(A, "Unit"))
291+ else if ($isInstanceOf(x, "Unit"))
301292 then {
302- let C = A
293+ let z = x
303294 "WAVES"
304295 }
305296 else throw("Match error")
306297 }
307298
308299
309-func aN (u) = if ((u == "WAVES"))
300+func aK (r) = if ((r == "WAVES"))
310301 then unit
311- else fromBase58String(u)
302+ else fromBase58String(r)
312303
313304
314-func aO (u,aP) = {
315- let aQ = if ((u == "WAVES"))
305+func aL (r,aM) = {
306+ let aN = if ((r == "WAVES"))
316307 then wavesBalance(this).available
317- else assetBalance(this, fromBase58String(u))
318- if ((aQ == aP))
308+ else assetBalance(this, fromBase58String(r))
309+ if ((aN == aM))
319310 then unit
320311 else {
321- let aR = valueOrElse(getBoolean(w, ("protected_staking_enabled_" + u)), false)
322- if (!(aR))
312+ let aO = valueOrElse(getBoolean(t, ("protected_staking_enabled_" + r)), false)
313+ if (!(aO))
323314 then unit
324315 else {
325- let aS = {
326- let aT = valueOrErrorMessage(getString(w, ("protected_staking_config_" + u)), ("no staking address for " + u))
327- valueOrErrorMessage(addressFromString(aT), ((("protectedReserve: bad staking address for " + u) + ": ") + aT))
316+ let aP = {
317+ let aQ = valueOrErrorMessage(getString(t, ("protected_staking_config_" + r)), ("no staking address for " + r))
318+ valueOrErrorMessage(addressFromString(aQ), ((("protectedReserve: bad staking address for " + r) + ": ") + aQ))
328319 }
329- if ((aQ > aP))
330- then invoke(aS, "put", nil, [AttachedPayment(aN(u), (aQ - aP))])
331- else invoke(aS, "get", [(aP - aQ)], nil)
320+ if ((aN > aM))
321+ then invoke(aP, "put", nil, [AttachedPayment(aK(r), (aN - aM))])
322+ else invoke(aP, "get", [(aM - aN)], nil)
332323 }
333324 }
334325 }
335326
336327
337-func aU (aV,aW,u,az) = {
338- let aX = aK(u)
339- if ((aX == aX))
328+func aR (aS,aT,r,aw) = {
329+ let aU = aH(r)
330+ if ((aU == aU))
340331 then {
341- let aY = W(u, aV)
342- let aZ = if ((az == -1))
332+ let aV = T(r, aS)
333+ let aW = if ((aw == -1))
343334 then {
344- let ba = aG(u, aY)
345- $Tuple2(aY, ba)
335+ let aX = aD(r, aV)
336+ $Tuple2(aV, aX)
346337 }
347- else if ((0 >= az))
338+ else if ((0 >= aw))
348339 then throw("protected-reserve: non-positive amount")
349- else $Tuple2(aI(u, az, true), az)
350- let bb = aZ._1
351- let bc = aZ._2
352- let bd = if ((aY == bb))
353- then [BooleanEntry(S(aV), false), DeleteEntry(T(aV))]
340+ else $Tuple2(aF(r, aw, true), aw)
341+ let aY = aW._1
342+ let aZ = aW._2
343+ let ba = if ((aV == aY))
344+ then [BooleanEntry(P(aS), false), DeleteEntry(Q(aS))]
354345 else nil
355- let be = aO(u, bc)
356- if ((be == be))
357- then $Tuple2((bd ++ [j(O(u), -(bc)), j(P(u), -(bb)), j(Q(u, aV), -(bb)), ScriptTransfer(addressFromStringValue(aW), bc, aN(u))]), bc)
346+ let bb = aL(r, aZ)
347+ if ((bb == bb))
348+ then $Tuple2((ba ++ [g(L(r), -(aZ)), g(M(r), -(aY)), g(N(r, aS), -(aY)), ScriptTransfer(addressFromStringValue(aT), aZ, aK(r))]), aZ)
358349 else throw("Strict value is not equal to itself.")
359350 }
360351 else throw("Strict value is not equal to itself.")
361352 }
362353
363354
364-func bf (R,H) = if (ab(R))
355+func bc (O,E) = if (Y(O))
365356 then throw("protected-reserve: can't have protected when regular exists")
366- else if ((size(H.payments) != 1))
357+ else if ((size(E.payments) != 1))
367358 then throw("protected-reserve: single payment required")
368359 else {
369- let u = aL(H.payments[0].assetId)
370- let az = H.payments[0].amount
371- if ((az == 0))
360+ let r = aI(E.payments[0].assetId)
361+ let aw = E.payments[0].amount
362+ if ((aw == 0))
372363 then nil
373364 else {
374- let aX = if (aK(u))
375- then D(u, "supply_protected_collateral")
365+ let aU = if (aH(r))
366+ then A(r, "supply_protected_collateral")
376367 else false
377- if ((aX == aX))
368+ if ((aU == aU))
378369 then {
379- let bg = valueOrElse(getBoolean(this, S(R)), false)
380- let bh = getString(this, T(R))
381- let bi = if (bg)
370+ let bd = valueOrElse(getBoolean(this, P(O)), false)
371+ let be = getString(this, Q(O))
372+ let bf = if (bd)
382373 then {
383- let A = bh
384- if ($isInstanceOf(A, "String"))
374+ let x = be
375+ if ($isInstanceOf(x, "String"))
385376 then {
386- let J = A
387- if ((J == u))
377+ let G = x
378+ if ((G == r))
388379 then true
389380 else throw("protected-reserve: can't have more than one asset protected")
390381 }
391382 else throw("protected-reserve:clean up first")
392383 }
393384 else {
394- let A = bh
395- if ($isInstanceOf(A, "String"))
385+ let x = be
386+ if ($isInstanceOf(x, "String"))
396387 then {
397- let J = A
388+ let G = x
398389 throw("protected-reserve: misconfiguration")
399390 }
400391 else true
401392 }
402- let bj = e(!(bi), "inconsistency")
403- if ((bj == bj))
393+ let bg = a(!(bf), "inconsistency")
394+ if ((bg == bg))
404395 then {
405- let bk = aI(u, az, false)
406- let be = aO(u, 0)
407- if ((be == be))
408- then [j(O(u), az), j(P(u), bk), j(Q(u, R), bk), BooleanEntry(S(R), true), StringEntry(T(R), u)]
396+ let bh = aF(r, aw, false)
397+ let bb = aL(r, 0)
398+ if ((bb == bb))
399+ then [g(L(r), aw), g(M(r), bh), g(N(r, O), bh), BooleanEntry(P(O), true), StringEntry(Q(O), r)]
409400 else throw("Strict value is not equal to itself.")
410401 }
411402 else throw("Strict value is not equal to itself.")
415406 }
416407
417408
418-@Callable(H)
419-func initialize (w,bl) = [q(r, w), q(s, bl)]
409+@Callable(E)
410+func initialize (t) = [n(o, t)]
420411
421412
422413
423-@Callable(H)
414+@Callable(E)
424415 func addInterest () = {
425- let u = aL(H.payments[0].assetId)
426- let aX = aK(u)
427- if ((aX == aX))
416+ let r = aI(E.payments[0].assetId)
417+ let aU = aH(r)
418+ if ((aU == aU))
428419 then {
429- let be = aO(u, 0)
430- if ((be == be))
420+ let bb = aL(r, 0)
421+ if ((bb == bb))
431422 then {
432- let az = H.payments[0].amount
433-[j(O(u), az)]
423+ let aw = E.payments[0].amount
424+[g(L(r), aw)]
434425 }
435426 else throw("Strict value is not equal to itself.")
436427 }
439430
440431
441432
442-@Callable(H)
443-func borrowPower (R) = $Tuple2(nil, as(R))
433+@Callable(E)
434+func borrowPower (O) = $Tuple2(nil, ap(O))
444435
445436
446437
447-@Callable(H)
448-func supply () = bf(toString(H.caller), H)
438+@Callable(E)
439+func supply () = bc(toString(E.caller), E)
449440
450441
451442
452-@Callable(H)
453-func supplyFor (R) = {
454- let aX = G(H)
455- if ((aX == aX))
456- then bf(R, H)
443+@Callable(E)
444+func supplyFor (O) = {
445+ let aU = D(E)
446+ if ((aU == aU))
447+ then bc(O, E)
457448 else throw("Strict value is not equal to itself.")
458449 }
459450
460451
461452
462-@Callable(H)
463-func withdrawFor (R,u,az) = {
464- let aX = if (G(H))
465- then D(u, "withdraw_protected_collateral")
453+@Callable(E)
454+func withdrawFor (O,r,aw) = {
455+ let aU = if (D(E))
456+ then A(r, "withdraw_protected_collateral")
466457 else false
467- if ((aX == aX))
468- then aU(R, R, u, az)
458+ if ((aU == aU))
459+ then aR(O, O, r, aw)
469460 else throw("Strict value is not equal to itself.")
470461 }
471462
472463
473464
474-@Callable(H)
475-func withdrawToMain (R,u) = {
476- let aX = if (G(H))
477- then D(u, "collapse_protected_collateral")
465+@Callable(E)
466+func withdrawToMain (O,r) = {
467+ let aU = if (D(E))
468+ then A(r, "collapse_protected_collateral")
478469 else false
479- if ((aX == aX))
480- then aU(R, toString(H.caller), u, -1)
470+ if ((aU == aU))
471+ then aR(O, toString(E.caller), r, -1)
481472 else throw("Strict value is not equal to itself.")
482- }
483-
484-
485-
486-@Callable(H)
487-func cleanUpUser (R) = {
488- func ag (bm,u) = if (isDefined(bm))
489- then bm
490- else if ((W(u, R) > 0))
491- then u
492- else unit
493-
494- let bn = {
495- let ak = N
496- let al = size(ak)
497- let am = unit
498- func an (ao,ap) = if ((ap >= al))
499- then ao
500- else ag(ao, ak[ap])
501-
502- func aq (ao,ap) = if ((ap >= al))
503- then ao
504- else throw("List size exceeds 7")
505-
506- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
507- }
508- let A = bn
509- if ($isInstanceOf(A, "String"))
510- then {
511- let J = A
512-[StringEntry(T(R), J), BooleanEntry(S(R), true)]
513- }
514- else [DeleteEntry(T(R)), BooleanEntry(S(R), false)]
515473 }
516474
517475
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = getInteger(this, b)
5-
6-
7-func c (b) = getString(this, b)
8-
9-
10-func d (b) = value(getString(this, b))
11-
12-
13-func e (f,g) = if (f)
14- then throw(g)
4+func a (b,c) = if (b)
5+ then throw(c)
156 else true
167
178
18-func h (b,i) = if ((0 > i))
19- then throw(((("writing negative value " + toString(i)) + " for key ") + b))
20- else IntegerEntry(b, i)
9+func d (e,f) = if ((0 > f))
10+ then throw(((("writing negative value " + toString(f)) + " for key ") + e))
11+ else IntegerEntry(e, f)
2112
2213
23-func j (b,i) = h(b, (valueOrElse(a(b), 0) + i))
14+func g (e,f) = d(e, (valueOrElse(getInteger(this, e), 0) + f))
2415
2516
26-func k (i,l,m) = {
27- let n = fraction(i, l, m)
28- let o = 3037000499
29- let p = ((((n % o) * (m % o)) % o) == (((i % o) * (l % o)) % o))
30- if (p)
31- then n
32- else (n + 1)
17+func h (f,i,j) = {
18+ let k = fraction(f, i, j)
19+ let l = 3037000499
20+ let m = ((((k % l) * (j % l)) % l) == (((f % l) * (i % l)) % l))
21+ if (m)
22+ then k
23+ else (k + 1)
3324 }
3425
3526
36-func q (b,i) = if (!(isDefined(getString(this, b))))
37- then StringEntry(b, i)
38- else throw(("already initialized: " + b))
27+func n (e,f) = if (!(isDefined(getString(this, e))))
28+ then StringEntry(e, f)
29+ else throw(("already initialized: " + e))
3930
4031
41-let r = "configAddress"
32+let o = "configAddress"
4233
43-let s = "oracleAddress"
34+let p = "oracle_address"
4435
45-func t (u) = (u + "_ReserveFactor")
36+func q (r) = (r + "_ReserveFactor")
4637
4738
48-let v = "main"
39+let s = "main"
4940
50-let w = valueOrErrorMessage(addressFromString(valueOrErrorMessage(c(r), "no configAddress")), "invalid config address")
41+let t = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, o), "protected-reserve: no configAddress")), "invalid config address")
5142
52-func x (u) = valueOrErrorMessage(getInteger(w, t(u)), "no reserveFactor")
43+func u (r) = valueOrErrorMessage(getInteger(t, q(r)), "no reserveFactor")
5344
5445
55-func y (z,u) = {
56- let A = u
57- if ($isInstanceOf(A, "ByteVector"))
46+func v (w,r) = {
47+ let x = r
48+ if ($isInstanceOf(x, "ByteVector"))
5849 then {
59- let B = A
60- assetBalance(z, B)
50+ let y = x
51+ assetBalance(w, y)
6152 }
62- else if ($isInstanceOf(A, "Unit"))
53+ else if ($isInstanceOf(x, "Unit"))
6354 then {
64- let C = A
65- wavesBalance(z).available
55+ let z = x
56+ wavesBalance(w).available
6657 }
6758 else throw("Match error")
6859 }
6960
7061
71-func D (u,E) = {
72- let A = invoke(w, "opAllowed", [u, E], nil)
73- if ($isInstanceOf(A, "Boolean"))
62+func A (r,B) = {
63+ let x = invoke(t, "opAllowed", [r, B], nil)
64+ if ($isInstanceOf(x, "Boolean"))
7465 then {
75- let F = A
76- if (F)
66+ let C = x
67+ if (C)
7768 then true
7869 else throw("not allowed")
7970 }
8071 else throw("opAllowed: unexpected result type")
8172 }
8273
8374
84-func G (H) = if ((H.caller != valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(w, v), "no main in config")), "invalid main address")))
75+func D (E) = if ((E.caller != valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(t, s), "no main in config")), "invalid main address")))
8576 then throw("only main can do")
8677 else true
8778
8879
89-let I = {
90- let A = c(s)
91- if ($isInstanceOf(A, "String"))
80+let F = {
81+ let x = getString(t, p)
82+ if ($isInstanceOf(x, "String"))
9283 then {
93- let J = A
94- addressFromString(J)
84+ let G = x
85+ addressFromString(G)
9586 }
9687 else unit
9788 }
9889
99-func K (u) = {
100- let A = invoke(valueOrErrorMessage(I, "no oracle"), "price", [u], nil)
101- if ($isInstanceOf(A, "Int"))
90+func H (r) = {
91+ let x = invoke(valueOrErrorMessage(F, "no oracle"), "price", [r], nil)
92+ if ($isInstanceOf(x, "Int"))
10293 then {
103- let H = A
104- H
94+ let E = x
95+ E
10596 }
10697 else throw("bad oracle data")
10798 }
10899
109100
110-let L = height
101+let I = height
111102
112-let M = valueOrElse(getString(w, "protected_reserve_assets"), "")
103+let J = valueOrElse(getString(t, "protected_reserve_assets"), "")
113104
114-let N = if ((M == ""))
105+let K = if ((J == ""))
115106 then nil
116- else split(M, "|")
107+ else split(J, "|")
117108
118-func O (u) = ("totalSupply_" + u)
109+func L (r) = ("totalSupply_" + r)
119110
120111
121-func P (u) = ("totalShares_" + u)
112+func M (r) = ("totalShares_" + r)
122113
123114
124-func Q (u,R) = ((("userShares_" + u) + "_") + R)
115+func N (r,O) = ((("userShares_" + r) + "_") + O)
125116
126117
127-func S (R) = ("protected_collateral_" + R)
118+func P (O) = ("protected_collateral_" + O)
128119
129120
130-func T (R) = ("protected_asset_" + R)
121+func Q (O) = ("protected_asset_" + O)
131122
132123
133-func U (u) = valueOrElse(getInteger(O(u)), 0)
124+func R (r) = valueOrElse(getInteger(L(r)), 0)
134125
135126
136-func V (u) = valueOrElse(getInteger(P(u)), 0)
127+func S (r) = valueOrElse(getInteger(M(r)), 0)
137128
138129
139-func W (u,R) = valueOrElse(getInteger(Q(u, R)), 0)
130+func T (r,O) = valueOrElse(getInteger(N(r, O)), 0)
140131
141132
142-func X (u,R) = {
143- let Y = V(u)
144- let Z = U(u)
145- let aa = W(u, R)
146- if ((Y == 0))
133+func U (r,O) = {
134+ let V = S(r)
135+ let W = R(r)
136+ let X = T(r, O)
137+ if ((V == 0))
147138 then 0
148- else fraction(Z, aa, Y)
139+ else fraction(W, X, V)
149140 }
150141
151142
152-func ab (R) = {
153- let ac = split(valueOrErrorMessage(getString(addressFromStringValue(getStringValue(w, v)), "reserves"), "protected: no reserves found in main"), "|")
154- func ad (i) = {
155- let A = i
156- if ($isInstanceOf(A, "(Int, Int, Int, Int, Int, Boolean)"))
143+func Y (O) = {
144+ let Z = split(valueOrErrorMessage(getString(t, "primary_reserves"), "protected: no reserves found in main"), "|")
145+ func aa (f) = {
146+ let x = f
147+ if ($isInstanceOf(x, "(Int, Int, Int, Int, Int, Boolean)"))
157148 then {
158- let ae = A
159- ae
149+ let ab = x
150+ ab
160151 }
161152 else {
162- let af = A
153+ let ac = x
163154 throw("wrong type, expected: Int5&Boolean")
164155 }
165156 }
166157
167- func ag (ah,ai) = {
168- let aj = ad(invoke(addressFromStringValue(ai), "userBalance", [R], nil))
169- if ((aj._1 > 0))
158+ func ad (ae,af) = {
159+ let ag = aa(invoke(addressFromStringValue(af), "userBalance", [O], nil))
160+ if ((ag._1 > 0))
170161 then throw("can't have protected when regular exists")
171162 else false
172163 }
173164
174- let ak = ac
175- let al = size(ak)
176- let am = false
177- func an (ao,ap) = if ((ap >= al))
178- then ao
179- else ag(ao, ak[ap])
165+ let ah = Z
166+ let ai = size(ah)
167+ let aj = false
168+ func ak (al,am) = if ((am >= ai))
169+ then al
170+ else ad(al, ah[am])
180171
181- func aq (ao,ap) = if ((ap >= al))
182- then ao
172+ func an (al,am) = if ((am >= ai))
173+ then al
183174 else throw("List size exceeds 7")
184175
185- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
176+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
186177 }
187178
188179
189-func ar (R) = {
190- func ag (ah,u) = (ah ++ [$Tuple2(u, X(u, R))])
180+func ao (O) = {
181+ func ad (ae,r) = (ae ++ [$Tuple2(r, U(r, O))])
191182
192- let ak = N
193- let al = size(ak)
194- let am = nil
195- func an (ao,ap) = if ((ap >= al))
196- then ao
197- else ag(ao, ak[ap])
183+ let ah = K
184+ let ai = size(ah)
185+ let aj = nil
186+ func ak (al,am) = if ((am >= ai))
187+ then al
188+ else ad(al, ah[am])
198189
199- func aq (ao,ap) = if ((ap >= al))
200- then ao
190+ func an (al,am) = if ((am >= ai))
191+ then al
201192 else throw("List size exceeds 7")
202193
203- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
194+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
204195 }
205196
206197
207-func as (R) = {
208- let at = 1000
209- func au (u) = valueOrErrorMessage(getInteger(w, (u + "_CollateralFactor")), "no CollateralFactor in config")
198+func ap (O) = {
199+ let aq = 1000
200+ func ar (r) = valueOrErrorMessage(getInteger(t, (r + "_CollateralFactor")), "no CollateralFactor in config")
210201
211- func av (aw) = if ((aw == 6))
202+ func as (at) = if ((at == 6))
212203 then 1000000
213- else if ((aw == 8))
204+ else if ((at == 8))
214205 then 100000000
215- else throw(("bad decimals: " + toString(aw)))
206+ else throw(("bad decimals: " + toString(at)))
216207
217- func ax (u) = if ((u == "WAVES"))
208+ func au (r) = if ((r == "WAVES"))
218209 then 8
219- else valueOrErrorMessage(assetInfo(fromBase58String(u)), "bad asset").decimals
210+ else valueOrErrorMessage(assetInfo(fromBase58String(r)), "bad asset").decimals
220211
221- func ay (u,az) = fraction(az, K(u), av(ax(u)))
212+ func av (r,aw) = fraction(aw, H(r), as(au(r)))
222213
223- func ag (ah,aA) = (ah + {
224- let aB = aA
225- let u = aB._1
226- let aC = aB._2
227- fraction(ay(u, aC), au(u), at)
214+ func ad (ae,ax) = (ae + {
215+ let ay = ax
216+ let r = ay._1
217+ let az = ay._2
218+ fraction(av(r, az), ar(r), aq)
228219 })
229220
230- let ak = ar(R)
231- let al = size(ak)
232- let am = 0
233- func an (ao,ap) = if ((ap >= al))
234- then ao
235- else ag(ao, ak[ap])
221+ let ah = ao(O)
222+ let ai = size(ah)
223+ let aj = 0
224+ func ak (al,am) = if ((am >= ai))
225+ then al
226+ else ad(al, ah[am])
236227
237- func aq (ao,ap) = if ((ap >= al))
238- then ao
228+ func an (al,am) = if ((am >= ai))
229+ then al
239230 else throw("List size exceeds 7")
240231
241- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
232+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
242233 }
243234
244235
245-func aD (R) = {
246- let aE = as(R)
247- (("borrowPower = " + toString(aE)) + {
248- func ag (ah,aF) = ((((ah + ", ") + aF._1) + " = ") + toString(aF._2))
236+func aA (O) = {
237+ let aB = ap(O)
238+ (("borrowPower = " + toString(aB)) + {
239+ func ad (ae,aC) = ((((ae + ", ") + aC._1) + " = ") + toString(aC._2))
249240
250- let ak = ar(R)
251- let al = size(ak)
252- let am = ""
253- func an (ao,ap) = if ((ap >= al))
254- then ao
255- else ag(ao, ak[ap])
241+ let ah = ao(O)
242+ let ai = size(ah)
243+ let aj = ""
244+ func ak (al,am) = if ((am >= ai))
245+ then al
246+ else ad(al, ah[am])
256247
257- func aq (ao,ap) = if ((ap >= al))
258- then ao
248+ func an (al,am) = if ((am >= ai))
249+ then al
259250 else throw("List size exceeds 7")
260251
261- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
252+ an(ak(ak(ak(ak(ak(ak(ak(aj, 0), 1), 2), 3), 4), 5), 6), 7)
262253 })
263254 }
264255
265256
266-func aG (u,aH) = {
267- let Y = V(u)
268- let Z = U(u)
269- if (if ((Y == 0))
257+func aD (r,aE) = {
258+ let V = S(r)
259+ let W = R(r)
260+ if (if ((V == 0))
270261 then true
271- else (Z == 0))
272- then aH
273- else fraction(aH, Z, Y)
262+ else (W == 0))
263+ then aE
264+ else fraction(aE, W, V)
274265 }
275266
276267
277-func aI (u,aC,aJ) = {
278- let Y = V(u)
279- let Z = U(u)
280- if (if ((Y == 0))
268+func aF (r,az,aG) = {
269+ let V = S(r)
270+ let W = R(r)
271+ if (if ((V == 0))
281272 then true
282- else (Z == 0))
283- then aC
284- else if (aJ)
285- then k(aC, Y, Z)
286- else fraction(aC, Y, Z)
273+ else (W == 0))
274+ then az
275+ else if (aG)
276+ then h(az, V, W)
277+ else fraction(az, V, W)
287278 }
288279
289280
290-func aK (u) = e(!(contains(M, u)), "assetId not permitted")
281+func aH (r) = a(!(contains(J, r)), "assetId not permitted")
291282
292283
293-func aL (aM) = {
294- let A = aM
295- if ($isInstanceOf(A, "ByteVector"))
284+func aI (aJ) = {
285+ let x = aJ
286+ if ($isInstanceOf(x, "ByteVector"))
296287 then {
297- let B = A
298- toBase58String(B)
288+ let y = x
289+ toBase58String(y)
299290 }
300- else if ($isInstanceOf(A, "Unit"))
291+ else if ($isInstanceOf(x, "Unit"))
301292 then {
302- let C = A
293+ let z = x
303294 "WAVES"
304295 }
305296 else throw("Match error")
306297 }
307298
308299
309-func aN (u) = if ((u == "WAVES"))
300+func aK (r) = if ((r == "WAVES"))
310301 then unit
311- else fromBase58String(u)
302+ else fromBase58String(r)
312303
313304
314-func aO (u,aP) = {
315- let aQ = if ((u == "WAVES"))
305+func aL (r,aM) = {
306+ let aN = if ((r == "WAVES"))
316307 then wavesBalance(this).available
317- else assetBalance(this, fromBase58String(u))
318- if ((aQ == aP))
308+ else assetBalance(this, fromBase58String(r))
309+ if ((aN == aM))
319310 then unit
320311 else {
321- let aR = valueOrElse(getBoolean(w, ("protected_staking_enabled_" + u)), false)
322- if (!(aR))
312+ let aO = valueOrElse(getBoolean(t, ("protected_staking_enabled_" + r)), false)
313+ if (!(aO))
323314 then unit
324315 else {
325- let aS = {
326- let aT = valueOrErrorMessage(getString(w, ("protected_staking_config_" + u)), ("no staking address for " + u))
327- valueOrErrorMessage(addressFromString(aT), ((("protectedReserve: bad staking address for " + u) + ": ") + aT))
316+ let aP = {
317+ let aQ = valueOrErrorMessage(getString(t, ("protected_staking_config_" + r)), ("no staking address for " + r))
318+ valueOrErrorMessage(addressFromString(aQ), ((("protectedReserve: bad staking address for " + r) + ": ") + aQ))
328319 }
329- if ((aQ > aP))
330- then invoke(aS, "put", nil, [AttachedPayment(aN(u), (aQ - aP))])
331- else invoke(aS, "get", [(aP - aQ)], nil)
320+ if ((aN > aM))
321+ then invoke(aP, "put", nil, [AttachedPayment(aK(r), (aN - aM))])
322+ else invoke(aP, "get", [(aM - aN)], nil)
332323 }
333324 }
334325 }
335326
336327
337-func aU (aV,aW,u,az) = {
338- let aX = aK(u)
339- if ((aX == aX))
328+func aR (aS,aT,r,aw) = {
329+ let aU = aH(r)
330+ if ((aU == aU))
340331 then {
341- let aY = W(u, aV)
342- let aZ = if ((az == -1))
332+ let aV = T(r, aS)
333+ let aW = if ((aw == -1))
343334 then {
344- let ba = aG(u, aY)
345- $Tuple2(aY, ba)
335+ let aX = aD(r, aV)
336+ $Tuple2(aV, aX)
346337 }
347- else if ((0 >= az))
338+ else if ((0 >= aw))
348339 then throw("protected-reserve: non-positive amount")
349- else $Tuple2(aI(u, az, true), az)
350- let bb = aZ._1
351- let bc = aZ._2
352- let bd = if ((aY == bb))
353- then [BooleanEntry(S(aV), false), DeleteEntry(T(aV))]
340+ else $Tuple2(aF(r, aw, true), aw)
341+ let aY = aW._1
342+ let aZ = aW._2
343+ let ba = if ((aV == aY))
344+ then [BooleanEntry(P(aS), false), DeleteEntry(Q(aS))]
354345 else nil
355- let be = aO(u, bc)
356- if ((be == be))
357- then $Tuple2((bd ++ [j(O(u), -(bc)), j(P(u), -(bb)), j(Q(u, aV), -(bb)), ScriptTransfer(addressFromStringValue(aW), bc, aN(u))]), bc)
346+ let bb = aL(r, aZ)
347+ if ((bb == bb))
348+ then $Tuple2((ba ++ [g(L(r), -(aZ)), g(M(r), -(aY)), g(N(r, aS), -(aY)), ScriptTransfer(addressFromStringValue(aT), aZ, aK(r))]), aZ)
358349 else throw("Strict value is not equal to itself.")
359350 }
360351 else throw("Strict value is not equal to itself.")
361352 }
362353
363354
364-func bf (R,H) = if (ab(R))
355+func bc (O,E) = if (Y(O))
365356 then throw("protected-reserve: can't have protected when regular exists")
366- else if ((size(H.payments) != 1))
357+ else if ((size(E.payments) != 1))
367358 then throw("protected-reserve: single payment required")
368359 else {
369- let u = aL(H.payments[0].assetId)
370- let az = H.payments[0].amount
371- if ((az == 0))
360+ let r = aI(E.payments[0].assetId)
361+ let aw = E.payments[0].amount
362+ if ((aw == 0))
372363 then nil
373364 else {
374- let aX = if (aK(u))
375- then D(u, "supply_protected_collateral")
365+ let aU = if (aH(r))
366+ then A(r, "supply_protected_collateral")
376367 else false
377- if ((aX == aX))
368+ if ((aU == aU))
378369 then {
379- let bg = valueOrElse(getBoolean(this, S(R)), false)
380- let bh = getString(this, T(R))
381- let bi = if (bg)
370+ let bd = valueOrElse(getBoolean(this, P(O)), false)
371+ let be = getString(this, Q(O))
372+ let bf = if (bd)
382373 then {
383- let A = bh
384- if ($isInstanceOf(A, "String"))
374+ let x = be
375+ if ($isInstanceOf(x, "String"))
385376 then {
386- let J = A
387- if ((J == u))
377+ let G = x
378+ if ((G == r))
388379 then true
389380 else throw("protected-reserve: can't have more than one asset protected")
390381 }
391382 else throw("protected-reserve:clean up first")
392383 }
393384 else {
394- let A = bh
395- if ($isInstanceOf(A, "String"))
385+ let x = be
386+ if ($isInstanceOf(x, "String"))
396387 then {
397- let J = A
388+ let G = x
398389 throw("protected-reserve: misconfiguration")
399390 }
400391 else true
401392 }
402- let bj = e(!(bi), "inconsistency")
403- if ((bj == bj))
393+ let bg = a(!(bf), "inconsistency")
394+ if ((bg == bg))
404395 then {
405- let bk = aI(u, az, false)
406- let be = aO(u, 0)
407- if ((be == be))
408- then [j(O(u), az), j(P(u), bk), j(Q(u, R), bk), BooleanEntry(S(R), true), StringEntry(T(R), u)]
396+ let bh = aF(r, aw, false)
397+ let bb = aL(r, 0)
398+ if ((bb == bb))
399+ then [g(L(r), aw), g(M(r), bh), g(N(r, O), bh), BooleanEntry(P(O), true), StringEntry(Q(O), r)]
409400 else throw("Strict value is not equal to itself.")
410401 }
411402 else throw("Strict value is not equal to itself.")
412403 }
413404 else throw("Strict value is not equal to itself.")
414405 }
415406 }
416407
417408
418-@Callable(H)
419-func initialize (w,bl) = [q(r, w), q(s, bl)]
409+@Callable(E)
410+func initialize (t) = [n(o, t)]
420411
421412
422413
423-@Callable(H)
414+@Callable(E)
424415 func addInterest () = {
425- let u = aL(H.payments[0].assetId)
426- let aX = aK(u)
427- if ((aX == aX))
416+ let r = aI(E.payments[0].assetId)
417+ let aU = aH(r)
418+ if ((aU == aU))
428419 then {
429- let be = aO(u, 0)
430- if ((be == be))
420+ let bb = aL(r, 0)
421+ if ((bb == bb))
431422 then {
432- let az = H.payments[0].amount
433-[j(O(u), az)]
423+ let aw = E.payments[0].amount
424+[g(L(r), aw)]
434425 }
435426 else throw("Strict value is not equal to itself.")
436427 }
437428 else throw("Strict value is not equal to itself.")
438429 }
439430
440431
441432
442-@Callable(H)
443-func borrowPower (R) = $Tuple2(nil, as(R))
433+@Callable(E)
434+func borrowPower (O) = $Tuple2(nil, ap(O))
444435
445436
446437
447-@Callable(H)
448-func supply () = bf(toString(H.caller), H)
438+@Callable(E)
439+func supply () = bc(toString(E.caller), E)
449440
450441
451442
452-@Callable(H)
453-func supplyFor (R) = {
454- let aX = G(H)
455- if ((aX == aX))
456- then bf(R, H)
443+@Callable(E)
444+func supplyFor (O) = {
445+ let aU = D(E)
446+ if ((aU == aU))
447+ then bc(O, E)
457448 else throw("Strict value is not equal to itself.")
458449 }
459450
460451
461452
462-@Callable(H)
463-func withdrawFor (R,u,az) = {
464- let aX = if (G(H))
465- then D(u, "withdraw_protected_collateral")
453+@Callable(E)
454+func withdrawFor (O,r,aw) = {
455+ let aU = if (D(E))
456+ then A(r, "withdraw_protected_collateral")
466457 else false
467- if ((aX == aX))
468- then aU(R, R, u, az)
458+ if ((aU == aU))
459+ then aR(O, O, r, aw)
469460 else throw("Strict value is not equal to itself.")
470461 }
471462
472463
473464
474-@Callable(H)
475-func withdrawToMain (R,u) = {
476- let aX = if (G(H))
477- then D(u, "collapse_protected_collateral")
465+@Callable(E)
466+func withdrawToMain (O,r) = {
467+ let aU = if (D(E))
468+ then A(r, "collapse_protected_collateral")
478469 else false
479- if ((aX == aX))
480- then aU(R, toString(H.caller), u, -1)
470+ if ((aU == aU))
471+ then aR(O, toString(E.caller), r, -1)
481472 else throw("Strict value is not equal to itself.")
482- }
483-
484-
485-
486-@Callable(H)
487-func cleanUpUser (R) = {
488- func ag (bm,u) = if (isDefined(bm))
489- then bm
490- else if ((W(u, R) > 0))
491- then u
492- else unit
493-
494- let bn = {
495- let ak = N
496- let al = size(ak)
497- let am = unit
498- func an (ao,ap) = if ((ap >= al))
499- then ao
500- else ag(ao, ak[ap])
501-
502- func aq (ao,ap) = if ((ap >= al))
503- then ao
504- else throw("List size exceeds 7")
505-
506- aq(an(an(an(an(an(an(an(am, 0), 1), 2), 3), 4), 5), 6), 7)
507- }
508- let A = bn
509- if ($isInstanceOf(A, "String"))
510- then {
511- let J = A
512-[StringEntry(T(R), J), BooleanEntry(S(R), true)]
513- }
514- else [DeleteEntry(T(R)), BooleanEntry(S(R), false)]
515473 }
516474
517475

github/deemru/w8io/6500d08 
150.78 ms