tx · 4eoxz9iBHJD55uHwwMF8nD9vy8JtDrcigMLnBiGLNQN9

3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo:  -0.05000000 Waves

2021.10.14 17:23 [1746045] smart account 3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo > SELF 0.00000000 Waves

{ "type": 13, "id": "4eoxz9iBHJD55uHwwMF8nD9vy8JtDrcigMLnBiGLNQN9", "fee": 5000000, "feeAssetId": null, "timestamp": 1634221404070, "version": 2, "chainId": 84, "sender": "3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo", "senderPublicKey": "CD4N2SBeZVBUwmtsqwfmQ3ZKnBP3AxpZCvJ5QkHytUed", "proofs": [ "2ktmVbuLXPwh4yPXsGvYtxQ9qAdnv95LpmpjzQexs6shhE4QWy65yddwSjVHJphDw8BK1qLDQSEXkKKG3pzudgWy" ], "script": "base64:AAIFAAAAAAAAAD0IAhIECgIIGBIDCgEIEgMKAQgSBAoCCAQSAwoBCBIDCgEIEgYKBAgICAgSBQoDCAgBEgMKAQgSBQoDCAgBAAAADwAAAAAGY29uZmlnCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzAgAAAAZjb25maWcCAAAAAAAAAAAFYWRtaW4JAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAABmNvbmZpZwIAAAAFYWRtaW4CAAAAAAAAAAAFcG9vbHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAABXBvb2xzAgAAAAABAAAAB2lzQWRtaW4AAAABAAAADWNhbGxlckFkZHJlc3MDCQAAAAAAAAIFAAAADWNhbGxlckFkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAABWFkbWluBgcBAAAACWNoZWNrUG9vbAAAAAEAAAAHcG9vbEFkZAMJAQAAAAhjb250YWlucwAAAAIFAAAABXBvb2xzBQAAAAdwb29sQWRkBgcBAAAAC3dyaXRlU3RyaW5nAAAAAgAAAANrZXkAAAALc3RyaW5nVmFsdWUJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAALc3RyaW5nVmFsdWUBAAAADHdyaXRlSW50ZWdlcgAAAAIAAAADa2V5AAAADGludGVnZXJWYWx1ZQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAA2tleQUAAAAMaW50ZWdlclZhbHVlAQAAABJjaGVja1Bvb2xMaXF1aWRpdHkAAAACAAAAC3Bvb2xBZGRyZXNzAAAABmFtb3VudAQAAAALdG90YWxTdXBwbHkJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAt0b3RhbFN1cHBseQQAAAALdG90YWxCb3Jyb3cJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAt0b3RhbEJvcnJvdwQAAAASYXZhaWxhYmxlTGlxdWlkaXR5CQAAZQAAAAIFAAAAC3RvdGFsU3VwcGx5BQAAAAt0b3RhbEJvcnJvdwMJAABnAAAAAgUAAAASYXZhaWxhYmxlTGlxdWlkaXR5BQAAAAZhbW91bnQGBwEAAAASZ2V0SGVhbHRoUGFyYW1ldGVyAAAABgAAAAR1c2VyAAAAC3Bvb2xBZGRyZXNzAAAADW5ld0RlYnRBbW91bnQAAAAJbmV3RGVidElkAAAAEGNvbGxhdGVyYWxBbW91bnQAAAAMY29sbGF0ZXJhbElkBAAAAAZyZXN1bHQJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAFmdldFVzZXJIZWFsdGhQYXJhbWV0ZXIJAARMAAAAAgUAAAAEdXNlcgkABEwAAAACBQAAABBjb2xsYXRlcmFsQW1vdW50CQAETAAAAAIFAAAADGNvbGxhdGVyYWxJZAkABEwAAAACBQAAAA1uZXdEZWJ0QW1vdW50CQAETAAAAAIFAAAACW5ld0RlYnRJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0BAAAAAckbWF0Y2gwBQAAAAZyZXN1bHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACihJbnQsIEludCkEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQJAAACAAAAAQIAAAAkUmV0dXJuIHZhbHVlIGhhcyB0aGUgd3JvbmcgZGF0YSB0eXBlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEAAAAQY2FsY0hlYWx0aEZhY3RvcgAAAAIAAAAOYm9ycm93Q2FwYWNpdHkAAAASYm9ycm93Q2FwYWNpdHlVc2VkAwkAAGYAAAACBQAAAA5ib3Jyb3dDYXBhY2l0eQAAAAAAAAAAAAkAAGsAAAADCQAAZQAAAAIFAAAADmJvcnJvd0NhcGFjaXR5BQAAABJib3Jyb3dDYXBhY2l0eVVzZWQAAAAAAAAAA+gFAAAADmJvcnJvd0NhcGFjaXR5AAAAAAAAAAAAAQAAABNjYWxjQm9ycm93Q0JvcnJvd0NVAAAABQAAAAR1c2VyAAAADW5ld0RlYnRBbW91bnQAAAAJbmV3RGVidElkAAAAEGNvbGxhdGVyYWxBbW91bnQAAAAMY29sbGF0ZXJhbElkBAAAAAhwb29sTGlzdAkABLUAAAACBQAAAAVwb29scwIAAAABOwQAAAAIbGlzdFNpemUJAAGQAAAAAQUAAAAIcG9vbExpc3QKAQAAAAlmb2xkUG9vbHMAAAACAAAABWFjY3VtAAAABG5leHQEAAAADGhlYWx0aFBhcmFtcwkBAAAAEmdldEhlYWx0aFBhcmFtZXRlcgAAAAYFAAAABHVzZXIFAAAABG5leHQFAAAADW5ld0RlYnRBbW91bnQFAAAACW5ld0RlYnRJZAUAAAAQY29sbGF0ZXJhbEFtb3VudAUAAAAMY29sbGF0ZXJhbElkBAAAAAckbWF0Y2gwBQAAAAxoZWFsdGhQYXJhbXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACihJbnQsIEludCkEAAAAAXQFAAAAByRtYXRjaDAJAAUUAAAAAgkAAGQAAAACCAUAAAAFYWNjdW0AAAACXzEIBQAAAAxoZWFsdGhQYXJhbXMAAAACXzEJAABkAAAAAggFAAAABWFjY3VtAAAAAl8yCAUAAAAMaGVhbHRoUGFyYW1zAAAAAl8yBAAAAAFlBQAAAAckbWF0Y2gwCQAAAgAAAAECAAAABFRlc3QKAAAAAAIkbAUAAAAIcG9vbExpc3QKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwCQAFFAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAKAQAAAAExAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAACWZvbGRQb29scwAAAAIFAAAAAiRhCQABkQAAAAIFAAAAAiRsBQAAAAIkaQoBAAAAATIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWRzIDIJAQAAAAEyAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAQAAAA9jaGVja1VzZXJIZWFsdGgAAAAFAAAABHVzZXIAAAANbmV3RGVidEFtb3VudAAAAAluZXdEZWJ0SWQAAAAQY29sbGF0ZXJhbEFtb3VudAAAAAxjb2xsYXRlcmFsSWQEAAAABWJjQmN1CQEAAAATY2FsY0JvcnJvd0NCb3Jyb3dDVQAAAAUFAAAABHVzZXIFAAAADW5ld0RlYnRBbW91bnQFAAAACW5ld0RlYnRJZAUAAAAQY29sbGF0ZXJhbEFtb3VudAUAAAAMY29sbGF0ZXJhbElkBAAAAAp1c2VySGVhbHRoCQEAAAAQY2FsY0hlYWx0aEZhY3RvcgAAAAIIBQAAAAViY0JjdQAAAAJfMQgFAAAABWJjQmN1AAAAAl8yAwkAAGcAAAACBQAAAAp1c2VySGVhbHRoAAAAAAAAAAAABgcBAAAAD2NoZWNrVXNlckJvcnJvdwAAAAMAAAAEdXNlcgAAAAtwb29sQWRkcmVzcwAAAAtib3Jyb3dBc3NldAQAAAAJcG9vbEFzc2V0CQAEHQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAdhc3NldElkAwkAAAAAAAACBQAAAAlwb29sQXNzZXQFAAAAC2JvcnJvd0Fzc2V0BAAAAAp1c2VyQm9ycm93CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzCQABLAAAAAIFAAAABHVzZXICAAAAB19ib3Jyb3cAAAAAAAAAAAADCQAAZgAAAAIFAAAACnVzZXJCb3Jyb3cAAAAAAAAAAAAGBwkAAAIAAAABAgAAABZBc3NldElkcyBkbyBub3QgbWF0Y2ghAQAAABNjaGVja1VzZXJDb2xsYXRlcmFsAAAAAgAAAAR1c2VyAAAAC3Bvb2xBZGRyZXNzBAAAAA51c2VyQ29sbGF0ZXJhbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwkAASwAAAACBQAAAAR1c2VyAgAAAAdfbG9ja2VkAAAAAAAAAAAAAwkAAGYAAAACBQAAAA51c2VyQ29sbGF0ZXJhbAAAAAAAAAAAAAYHAQAAABNjYWxjRXF1YWxDb2xsYXRlcmFsAAAABgAAABFsaXF1aWRhdGlvbkFtb3VudAAAABBsaXF1aWRhdGlvblByaWNlAAAAE2xpcXVpZGF0aW9uTWFudGlzc2EAAAAPY29sbGF0ZXJhbFByaWNlAAAAEmNvbGxhdGVyYWxNYW50aXNzYQAAAAdwZW5hbHR5BAAAAApiYXNlRmFjdG9yAAAAAAAAAAPoBAAAAA5saXF1aWRhdGlvblVTRAkAAGsAAAADBQAAABFsaXF1aWRhdGlvbkFtb3VudAUAAAAQbGlxdWlkYXRpb25QcmljZQUAAAATbGlxdWlkYXRpb25NYW50aXNzYQQAAAAKcGVuYWx0eVVTRAkAAGsAAAADBQAAAA5saXF1aWRhdGlvblVTRAUAAAAHcGVuYWx0eQUAAAAKYmFzZUZhY3RvcgkAAGsAAAADCQAAZAAAAAIFAAAADmxpcXVpZGF0aW9uVVNEBQAAAApwZW5hbHR5VVNEBQAAABJjb2xsYXRlcmFsTWFudGlzc2EFAAAAD2NvbGxhdGVyYWxQcmljZQAAAAoAAAABaQEAAAAFc2V0dXAAAAACAAAADWNvbmZpZ0FkZHJlc3MAAAAFcG9vbHMDAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzAgAAAAZjb25maWcJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwIAAAAFcG9vbHMHCQAETAAAAAIJAQAAAAt3cml0ZVN0cmluZwAAAAICAAAABmNvbmZpZwUAAAANY29uZmlnQWRkcmVzcwkABEwAAAACCQEAAAALd3JpdGVTdHJpbmcAAAACAgAAAAVwb29scwkABLkAAAACBQAAAAVwb29scwIAAAABOwUAAAADbmlsCQAAAgAAAAECAAAAKkFkbWluIGFuZCBjb25maWcgYWRkcmVzcyBhbHJlYWR5IGRlZmluaWVkIQAAAAFpAQAAAAdhZGRQb29sAAAAAQAAAAtwb29sQWRkcmVzcwMJAQAAAAdpc0FkbWluAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAhwb29sTGlzdAkABLUA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", "height": 1746045, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 58S5VFz1Fvx81Ufu1dckojkxjLNBcHvcMx2Gx9ZTVwvk Next: none Diff:
OldNewDifferences
3535
3636 func s (t,n,u,v,w,x) = {
3737 let y = invoke(addressFromStringValue(n), "getUserHealthParameter", [t, w, x, u, v], nil)
38- let z = y
39- if ($isInstanceOf(z, "(Int, Int)"))
38+ if ((y == y))
4039 then {
41- let A = z
42- A
40+ let z = y
41+ if ($isInstanceOf(z, "(Int, Int)"))
42+ then {
43+ let A = z
44+ A
45+ }
46+ else throw("Return value has the wrong data type")
4347 }
44- else throw("Return value has the wrong data type")
48+ else throw("Strict value is not equal to itself.")
4549 }
4650
4751
7074 let M = F
7175 let N = size(M)
7276 let O = $Tuple2(0, 0)
73- if ((N == 0))
74- then O
75- else {
76- let P = H(O, M[0])
77- if ((N == 1))
78- then P
79- else {
80- let Q = H(P, M[1])
81- if ((N == 2))
82- then Q
83- else {
84- let R = H(Q, M[2])
85- throw("List size exceed 2")
86- }
87- }
88- }
77+ func P (Q,R) = if ((R >= N))
78+ then Q
79+ else H(Q, M[R])
80+
81+ func S (Q,R) = if ((R >= N))
82+ then Q
83+ else throw("List size exceeds 2")
84+
85+ S(P(P(O, 0), 1), 2)
8986 }
9087
9188
92-func S (t,u,v,w,x) = {
93- let T = E(t, u, v, w, x)
94- let U = B(T._1, T._2)
95- if ((U >= 0))
89+func T (t,u,v,w,x) = {
90+ let U = E(t, u, v, w, x)
91+ let V = B(U._1, U._2)
92+ if ((V >= 0))
9693 then true
9794 else false
9895 }
9996
10097
101-func V (t,n,W) = {
102- let X = getString(addressFromStringValue(n), "assetId")
103- if ((X == W))
98+func W (t,n,X) = {
99+ let Y = getString(addressFromStringValue(n), "assetId")
100+ if ((Y == X))
104101 then {
105- let Y = valueOrElse(getInteger(addressFromStringValue(n), (t + "_borrow")), 0)
106- if ((Y > 0))
102+ let Z = valueOrElse(getInteger(addressFromStringValue(n), (t + "_borrow")), 0)
103+ if ((Z > 0))
107104 then true
108105 else false
109106 }
111108 }
112109
113110
114-func Z (t,n) = {
115- let aa = valueOrElse(getInteger(addressFromStringValue(n), (t + "_locked")), 0)
116- if ((aa > 0))
111+func aa (t,n) = {
112+ let ab = valueOrElse(getInteger(addressFromStringValue(n), (t + "_locked")), 0)
113+ if ((ab > 0))
117114 then true
118115 else false
119116 }
120117
121118
122-func ab (ac,ad,ae,af,ag,ah) = {
123- let ai = 1000
124- let aj = fraction(ac, ad, ae)
125- let ak = fraction(aj, ah, ai)
126- fraction((aj + ak), ag, af)
119+func ac (ad,ae,af,ag,ah,ai) = {
120+ let aj = 1000
121+ let ak = fraction(ad, ae, af)
122+ let al = fraction(ak, ai, aj)
123+ fraction((ak + al), ah, ag)
127124 }
128125
129126
130-@Callable(al)
131-func checkUserHealthTest () = {
132- let t = toBase58String(al.caller.bytes)
133- let T = E(t, 0, "", 0, "")
134- let U = B(T._1, T._2)
135-[k((t + "_BC"), T._1), k((t + "_BCU"), T._2), k((t + "_health"), U)]
136- }
137-
138-
139-
140-@Callable(al)
141-func setup (am,c) = if (if (!(isDefined(getString(this, "config"))))
127+@Callable(am)
128+func setup (an,c) = if (if (!(isDefined(getString(this, "config"))))
142129 then !(isDefined(getString(this, "pools")))
143130 else false)
144- then [h("config", am), h("pools", makeString(c, ";"))]
131+ then [h("config", an), h("pools", makeString(c, ";"))]
145132 else throw("Admin and config address already definied!")
146133
147134
148135
149-@Callable(al)
150-func addPool (n) = if (d(al.caller))
136+@Callable(am)
137+func addPool (n) = if (d(am.caller))
151138 then {
152139 let F = split(c, ";")
153140 if ((containsElement(F, n) == false))
154141 then {
155- let an = (F :+ n)
156-[h("pools", makeString(an, ";"))]
142+ let ao = (F :+ n)
143+[h("pools", makeString(ao, ";"))]
157144 }
158145 else throw("Pool already exists!")
159146 }
161148
162149
163150
164-@Callable(al)
165-func updateConfig (am) = if (d(al.caller))
166- then [h("config", am)]
151+@Callable(am)
152+func updateConfig (an) = if (d(am.caller))
153+ then [h("config", an)]
167154 else throw("Address does not match with admin address!")
168155
169156
170157
171-@Callable(al)
172-func depositAt (n,ao) = if (f(n))
173- then if ((size(al.payments) > 0))
158+@Callable(am)
159+func depositAt (n,ap) = if (f(n))
160+ then if ((size(am.payments) > 0))
174161 then {
175- let t = toBase58String(al.caller.bytes)
176- let ap = invoke(addressFromStringValue(n), "deposit", [t, ao], al.payments)
177- if ((ap == ap))
162+ let t = toBase58String(am.caller.bytes)
163+ let aq = invoke(addressFromStringValue(n), "deposit", [t, ap], am.payments)
164+ if ((aq == aq))
178165 then {
179- let aq = getStringValue(addressFromStringValue(n), "dTokenId")
180- let z = ap
166+ let ar = getStringValue(addressFromStringValue(n), "dTokenId")
167+ let z = aq
181168 if ($isInstanceOf(z, "Int"))
182169 then {
183170 let A = z
184-[ScriptTransfer(al.caller, A, fromBase58String(aq))]
171+[ScriptTransfer(am.caller, A, fromBase58String(ar))]
185172 }
186173 else if ($isInstanceOf(z, "String"))
187174 then {
197184
198185
199186
200-@Callable(al)
187+@Callable(am)
201188 func withdrawFrom (n) = if (f(n))
202189 then {
203- let ar = getStringValue(addressFromStringValue(n), "dTokenId")
204- if ((fromBase58String(ar) == al.payments[0].assetId))
205- then if ((size(al.payments) > 0))
190+ let as = getStringValue(addressFromStringValue(n), "dTokenId")
191+ if ((fromBase58String(as) == am.payments[0].assetId))
192+ then if ((size(am.payments) > 0))
206193 then {
207- let t = toBase58String(al.caller.bytes)
208- let ap = invoke(addressFromStringValue(n), "withdraw", [t], al.payments)
209- if ((ap == ap))
194+ let t = toBase58String(am.caller.bytes)
195+ let aq = invoke(addressFromStringValue(n), "withdraw", [t], am.payments)
196+ if ((aq == aq))
210197 then {
211- let aq = getStringValue(addressFromStringValue(n), "assetId")
212- let z = ap
198+ let ar = getStringValue(addressFromStringValue(n), "assetId")
199+ let z = aq
213200 if ($isInstanceOf(z, "Int"))
214201 then {
215202 let A = z
216- if ((aq == "WAVES"))
217- then [ScriptTransfer(al.caller, A, unit)]
218- else [ScriptTransfer(al.caller, A, fromBase58String(aq))]
203+ if ((ar == "WAVES"))
204+ then [ScriptTransfer(am.caller, A, unit)]
205+ else [ScriptTransfer(am.caller, A, fromBase58String(ar))]
219206 }
220207 else if ($isInstanceOf(z, "String"))
221208 then {
233220
234221
235222
236-@Callable(al)
223+@Callable(am)
237224 func repayTo (n) = if (f(n))
238- then {
239- let X = getStringValue(addressFromStringValue(n), "assetId")
240- if ((fromBase58String(X) == al.payments[0].assetId))
241- then if ((size(al.payments) > 0))
225+ then if ((size(am.payments) > 0))
226+ then {
227+ let t = toBase58String(am.caller.bytes)
228+ let o = invoke(addressFromStringValue(n), "repay", [t], am.payments)
229+ if ((o == o))
242230 then {
243- let t = toBase58String(al.caller.bytes)
244- let o = invoke(addressFromStringValue(n), "repay", [t], al.payments)
245- if ((o == o))
231+ let at = getStringValue(addressFromStringValue(n), "assetId")
232+ let z = o
233+ if ($isInstanceOf(z, "Int"))
246234 then {
247- let as = getStringValue(addressFromStringValue(n), "assetId")
248- let z = o
249- if ($isInstanceOf(z, "Int"))
250- then {
251- let A = z
252- if ((as == "WAVES"))
253- then [ScriptTransfer(al.caller, A, unit)]
254- else [ScriptTransfer(al.caller, A, fromBase58String(as))]
255- }
256- else if ($isInstanceOf(z, "String"))
257- then {
258- let A = z
259- nil
260- }
261- else throw("Incorrect invoke result!")
235+ let A = z
236+ if ((at == "WAVES"))
237+ then [ScriptTransfer(am.caller, A, unit)]
238+ else [ScriptTransfer(am.caller, A, fromBase58String(at))]
262239 }
263- else throw("Strict value is not equal to itself.")
240+ else if ($isInstanceOf(z, "String"))
241+ then {
242+ let A = z
243+ nil
244+ }
245+ else throw("Incorrect invoke result!")
264246 }
265- else throw("No payment attached!")
266- else throw("AssetIds does not match")
267- }
247+ else throw("Strict value is not equal to itself.")
248+ }
249+ else throw("No payment attached!")
268250 else throw("Pool address not found!")
269251
270252
271253
272-@Callable(al)
273-func liquidateAt (at,au,av,aw) = {
274- let ax = getIntegerValue(addressFromStringValue(a), "closeFactor")
275- let ah = getIntegerValue(addressFromStringValue(a), (aw + "_Penalty"))
276- let ac = al.payments[0].amount
277- if ((S(at, 0, "", 0, "") == false))
254+@Callable(am)
255+func liquidateAt (au,av,aw,ax) = {
256+ let ay = getIntegerValue(addressFromStringValue(a), "closeFactor")
257+ let ai = getIntegerValue(addressFromStringValue(a), (ax + "_Penalty"))
258+ let ad = am.payments[0].amount
259+ if ((T(au, 0, "", 0, "") == false))
278260 then {
279- let W = {
280- let z = al.payments[0].assetId
261+ let X = {
262+ let z = am.payments[0].assetId
281263 if ($isInstanceOf(z, "ByteVector"))
282264 then {
283265 let A = z
285267 }
286268 else throw("AssetId is not a String")
287269 }
288- if (if (V(at, au, W))
289- then Z(at, av)
270+ if (if (W(au, av, X))
271+ then aa(au, aw)
290272 else false)
291273 then {
292- let y = invoke(addressFromStringValue(au), "getBorrowUSD", [at], nil)
274+ let y = invoke(addressFromStringValue(av), "getBorrowUSD", [au], nil)
293275 if ((y == y))
294276 then {
295- let Y = {
277+ let Z = {
296278 let z = y
297279 if ($isInstanceOf(z, "(Int, Int, Int)"))
298280 then {
301283 }
302284 else throw("unexpected return value type")
303285 }
304- let ay = invoke(addressFromStringValue(av), "getCollateralUSD", [at], nil)
305- if ((ay == ay))
286+ let az = invoke(addressFromStringValue(aw), "getCollateralUSD", [au], nil)
287+ if ((az == az))
306288 then {
307- let aa = {
308- let z = ay
289+ let ab = {
290+ let z = az
309291 if ($isInstanceOf(z, "(Int, Int, Int)"))
310292 then {
311- let az = z
312- az
293+ let aA = z
294+ aA
313295 }
314296 else throw("unexpected return value type")
315297 }
316- if ((fraction(Y._1, ax, 1000) >= ac))
298+ if ((fraction(Z._1, ay, 1000) >= ad))
317299 then {
318- let w = ab(ac, Y._2, Y._3, aa._2, aa._3, ah)
319- let aA = invoke(addressFromStringValue(au), "repay", [at], al.payments)
320- if ((aA == aA))
300+ let w = ac(ad, Z._2, Z._3, ab._2, ab._3, ai)
301+ let aB = invoke(addressFromStringValue(av), "repay", [au], am.payments)
302+ if ((aB == aB))
321303 then {
322- let o = invoke(addressFromStringValue(av), "payoutPenalty", [at, w], nil)
304+ let o = invoke(addressFromStringValue(aw), "payoutPenalty", [au, w], nil)
323305 if ((o == o))
324306 then {
325- let as = getStringValue(addressFromStringValue(av), "assetId")
307+ let at = getStringValue(addressFromStringValue(aw), "assetId")
326308 let z = o
327309 if ($isInstanceOf(z, "Int"))
328310 then {
329311 let A = z
330- if ((as == "WAVES"))
331- then [ScriptTransfer(al.caller, A, unit)]
332- else [ScriptTransfer(al.caller, A, fromBase58String(as))]
312+ if ((at == "WAVES"))
313+ then [ScriptTransfer(am.caller, A, unit)]
314+ else [ScriptTransfer(am.caller, A, fromBase58String(at))]
333315 }
334316 else if ($isInstanceOf(z, "String"))
335317 then {
355337
356338
357339
358-@Callable(al)
359-func borrowFrom (n,as,o) = if (f(n))
340+@Callable(am)
341+func borrowFrom (n,at,o) = if (f(n))
360342 then {
361- let X = getStringValue(addressFromStringValue(n), "assetId")
362- if ((X == as))
343+ let Y = getStringValue(addressFromStringValue(n), "assetId")
344+ if ((Y == at))
363345 then if (m(n, o))
364346 then {
365- let t = toBase58String(al.caller.bytes)
366- if ((S(t, o, as, 0, "") == true))
347+ let t = toBase58String(am.caller.bytes)
348+ if ((T(t, o, at, 0, "") == true))
367349 then {
368- let ap = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
369- if ((ap == ap))
350+ let aq = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
351+ if ((aq == aq))
370352 then {
371- let z = ap
353+ let z = aq
372354 if ($isInstanceOf(z, "Int"))
373355 then {
374356 let A = z
375- if ((X == "WAVES"))
376- then [ScriptTransfer(al.caller, A, unit)]
377- else [ScriptTransfer(al.caller, A, fromBase58String(X))]
357+ if ((Y == "WAVES"))
358+ then [ScriptTransfer(am.caller, A, unit)]
359+ else [ScriptTransfer(am.caller, A, fromBase58String(Y))]
378360 }
379361 else if ($isInstanceOf(z, "String"))
380362 then {
394376
395377
396378
397-@Callable(al)
379+@Callable(am)
398380 func lockAsCollateralAt (n) = if (f(n))
399381 then {
400- let ar = getStringValue(addressFromStringValue(n), "dTokenId")
401- if ((fromBase58String(ar) == al.payments[0].assetId))
402- then if ((size(al.payments) > 0))
382+ let as = getStringValue(addressFromStringValue(n), "dTokenId")
383+ if ((fromBase58String(as) == am.payments[0].assetId))
384+ then if ((size(am.payments) > 0))
403385 then {
404- let t = toBase58String(al.caller.bytes)
405- let aB = invoke(addressFromStringValue(n), "lockAsCollateral", [t], al.payments)
406- if ((aB == aB))
386+ let t = toBase58String(am.caller.bytes)
387+ let aC = invoke(addressFromStringValue(n), "lockAsCollateral", [t], am.payments)
388+ if ((aC == aC))
407389 then {
408- let z = aB
390+ let z = aC
409391 if ($isInstanceOf(z, "String"))
410392 then {
411393 let A = z
422404
423405
424406
425-@Callable(al)
426-func redeemCollateralFrom (n,aC,o) = if (f(n))
407+@Callable(am)
408+func redeemCollateralFrom (n,aD,o) = if (f(n))
427409 then {
428- let aD = getStringValue(addressFromStringValue(n), "dTokenId")
429- if ((aD == aC))
410+ let aE = getStringValue(addressFromStringValue(n), "dTokenId")
411+ if ((aE == aD))
430412 then {
431- let t = toBase58String(al.caller.bytes)
432- if ((S(t, 0, "", o, aC) == true))
413+ let t = toBase58String(am.caller.bytes)
414+ if ((T(t, 0, "", o, aD) == true))
433415 then {
434- let ap = invoke(addressFromStringValue(n), "redeemCollateral", [t, o], nil)
435- if ((ap == ap))
416+ let aq = invoke(addressFromStringValue(n), "redeemCollateral", [t, o], nil)
417+ if ((aq == aq))
436418 then {
437- let aq = getStringValue(addressFromStringValue(n), "dTokenId")
438- let z = ap
419+ let ar = getStringValue(addressFromStringValue(n), "dTokenId")
420+ let z = aq
439421 if ($isInstanceOf(z, "Int"))
440422 then {
441423 let A = z
442-[ScriptTransfer(al.caller, A, fromBase58String(aq))]
424+[ScriptTransfer(am.caller, A, fromBase58String(ar))]
443425 }
444426 else if ($isInstanceOf(z, "String"))
445427 then {
457439 else throw("Pool address not found!")
458440
459441
460-
461-@Callable(al)
462-func deleteData (aE) = [DeleteEntry(aE)]
463-
464-
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = valueOrElse(getStringValue(this, "config"), "")
55
66 let b = valueOrElse(getStringValue(addressFromStringValue(a), "admin"), "")
77
88 let c = valueOrElse(getStringValue(this, "pools"), "")
99
1010 func d (e) = if ((e == addressFromStringValue(b)))
1111 then true
1212 else false
1313
1414
1515 func f (g) = if (contains(c, g))
1616 then true
1717 else false
1818
1919
2020 func h (i,j) = StringEntry(i, j)
2121
2222
2323 func k (i,l) = IntegerEntry(i, l)
2424
2525
2626 func m (n,o) = {
2727 let p = getIntegerValue(addressFromStringValue(n), "totalSupply")
2828 let q = getIntegerValue(addressFromStringValue(n), "totalBorrow")
2929 let r = (p - q)
3030 if ((r >= o))
3131 then true
3232 else false
3333 }
3434
3535
3636 func s (t,n,u,v,w,x) = {
3737 let y = invoke(addressFromStringValue(n), "getUserHealthParameter", [t, w, x, u, v], nil)
38- let z = y
39- if ($isInstanceOf(z, "(Int, Int)"))
38+ if ((y == y))
4039 then {
41- let A = z
42- A
40+ let z = y
41+ if ($isInstanceOf(z, "(Int, Int)"))
42+ then {
43+ let A = z
44+ A
45+ }
46+ else throw("Return value has the wrong data type")
4347 }
44- else throw("Return value has the wrong data type")
48+ else throw("Strict value is not equal to itself.")
4549 }
4650
4751
4852 func B (C,D) = if ((C > 0))
4953 then fraction((C - D), 1000, C)
5054 else 0
5155
5256
5357 func E (t,u,v,w,x) = {
5458 let F = split(c, ";")
5559 let G = size(F)
5660 func H (I,J) = {
5761 let K = s(t, J, u, v, w, x)
5862 let z = K
5963 if ($isInstanceOf(z, "(Int, Int)"))
6064 then {
6165 let A = z
6266 $Tuple2((I._1 + K._1), (I._2 + K._2))
6367 }
6468 else {
6569 let L = z
6670 throw("Test")
6771 }
6872 }
6973
7074 let M = F
7175 let N = size(M)
7276 let O = $Tuple2(0, 0)
73- if ((N == 0))
74- then O
75- else {
76- let P = H(O, M[0])
77- if ((N == 1))
78- then P
79- else {
80- let Q = H(P, M[1])
81- if ((N == 2))
82- then Q
83- else {
84- let R = H(Q, M[2])
85- throw("List size exceed 2")
86- }
87- }
88- }
77+ func P (Q,R) = if ((R >= N))
78+ then Q
79+ else H(Q, M[R])
80+
81+ func S (Q,R) = if ((R >= N))
82+ then Q
83+ else throw("List size exceeds 2")
84+
85+ S(P(P(O, 0), 1), 2)
8986 }
9087
9188
92-func S (t,u,v,w,x) = {
93- let T = E(t, u, v, w, x)
94- let U = B(T._1, T._2)
95- if ((U >= 0))
89+func T (t,u,v,w,x) = {
90+ let U = E(t, u, v, w, x)
91+ let V = B(U._1, U._2)
92+ if ((V >= 0))
9693 then true
9794 else false
9895 }
9996
10097
101-func V (t,n,W) = {
102- let X = getString(addressFromStringValue(n), "assetId")
103- if ((X == W))
98+func W (t,n,X) = {
99+ let Y = getString(addressFromStringValue(n), "assetId")
100+ if ((Y == X))
104101 then {
105- let Y = valueOrElse(getInteger(addressFromStringValue(n), (t + "_borrow")), 0)
106- if ((Y > 0))
102+ let Z = valueOrElse(getInteger(addressFromStringValue(n), (t + "_borrow")), 0)
103+ if ((Z > 0))
107104 then true
108105 else false
109106 }
110107 else throw("AssetIds do not match!")
111108 }
112109
113110
114-func Z (t,n) = {
115- let aa = valueOrElse(getInteger(addressFromStringValue(n), (t + "_locked")), 0)
116- if ((aa > 0))
111+func aa (t,n) = {
112+ let ab = valueOrElse(getInteger(addressFromStringValue(n), (t + "_locked")), 0)
113+ if ((ab > 0))
117114 then true
118115 else false
119116 }
120117
121118
122-func ab (ac,ad,ae,af,ag,ah) = {
123- let ai = 1000
124- let aj = fraction(ac, ad, ae)
125- let ak = fraction(aj, ah, ai)
126- fraction((aj + ak), ag, af)
119+func ac (ad,ae,af,ag,ah,ai) = {
120+ let aj = 1000
121+ let ak = fraction(ad, ae, af)
122+ let al = fraction(ak, ai, aj)
123+ fraction((ak + al), ah, ag)
127124 }
128125
129126
130-@Callable(al)
131-func checkUserHealthTest () = {
132- let t = toBase58String(al.caller.bytes)
133- let T = E(t, 0, "", 0, "")
134- let U = B(T._1, T._2)
135-[k((t + "_BC"), T._1), k((t + "_BCU"), T._2), k((t + "_health"), U)]
136- }
137-
138-
139-
140-@Callable(al)
141-func setup (am,c) = if (if (!(isDefined(getString(this, "config"))))
127+@Callable(am)
128+func setup (an,c) = if (if (!(isDefined(getString(this, "config"))))
142129 then !(isDefined(getString(this, "pools")))
143130 else false)
144- then [h("config", am), h("pools", makeString(c, ";"))]
131+ then [h("config", an), h("pools", makeString(c, ";"))]
145132 else throw("Admin and config address already definied!")
146133
147134
148135
149-@Callable(al)
150-func addPool (n) = if (d(al.caller))
136+@Callable(am)
137+func addPool (n) = if (d(am.caller))
151138 then {
152139 let F = split(c, ";")
153140 if ((containsElement(F, n) == false))
154141 then {
155- let an = (F :+ n)
156-[h("pools", makeString(an, ";"))]
142+ let ao = (F :+ n)
143+[h("pools", makeString(ao, ";"))]
157144 }
158145 else throw("Pool already exists!")
159146 }
160147 else throw("Address does not match with admin address!")
161148
162149
163150
164-@Callable(al)
165-func updateConfig (am) = if (d(al.caller))
166- then [h("config", am)]
151+@Callable(am)
152+func updateConfig (an) = if (d(am.caller))
153+ then [h("config", an)]
167154 else throw("Address does not match with admin address!")
168155
169156
170157
171-@Callable(al)
172-func depositAt (n,ao) = if (f(n))
173- then if ((size(al.payments) > 0))
158+@Callable(am)
159+func depositAt (n,ap) = if (f(n))
160+ then if ((size(am.payments) > 0))
174161 then {
175- let t = toBase58String(al.caller.bytes)
176- let ap = invoke(addressFromStringValue(n), "deposit", [t, ao], al.payments)
177- if ((ap == ap))
162+ let t = toBase58String(am.caller.bytes)
163+ let aq = invoke(addressFromStringValue(n), "deposit", [t, ap], am.payments)
164+ if ((aq == aq))
178165 then {
179- let aq = getStringValue(addressFromStringValue(n), "dTokenId")
180- let z = ap
166+ let ar = getStringValue(addressFromStringValue(n), "dTokenId")
167+ let z = aq
181168 if ($isInstanceOf(z, "Int"))
182169 then {
183170 let A = z
184-[ScriptTransfer(al.caller, A, fromBase58String(aq))]
171+[ScriptTransfer(am.caller, A, fromBase58String(ar))]
185172 }
186173 else if ($isInstanceOf(z, "String"))
187174 then {
188175 let A = z
189176 nil
190177 }
191178 else throw("Incorrect invoke result!")
192179 }
193180 else throw("Strict value is not equal to itself.")
194181 }
195182 else throw("No payment attached!")
196183 else throw("Pool address not found!")
197184
198185
199186
200-@Callable(al)
187+@Callable(am)
201188 func withdrawFrom (n) = if (f(n))
202189 then {
203- let ar = getStringValue(addressFromStringValue(n), "dTokenId")
204- if ((fromBase58String(ar) == al.payments[0].assetId))
205- then if ((size(al.payments) > 0))
190+ let as = getStringValue(addressFromStringValue(n), "dTokenId")
191+ if ((fromBase58String(as) == am.payments[0].assetId))
192+ then if ((size(am.payments) > 0))
206193 then {
207- let t = toBase58String(al.caller.bytes)
208- let ap = invoke(addressFromStringValue(n), "withdraw", [t], al.payments)
209- if ((ap == ap))
194+ let t = toBase58String(am.caller.bytes)
195+ let aq = invoke(addressFromStringValue(n), "withdraw", [t], am.payments)
196+ if ((aq == aq))
210197 then {
211- let aq = getStringValue(addressFromStringValue(n), "assetId")
212- let z = ap
198+ let ar = getStringValue(addressFromStringValue(n), "assetId")
199+ let z = aq
213200 if ($isInstanceOf(z, "Int"))
214201 then {
215202 let A = z
216- if ((aq == "WAVES"))
217- then [ScriptTransfer(al.caller, A, unit)]
218- else [ScriptTransfer(al.caller, A, fromBase58String(aq))]
203+ if ((ar == "WAVES"))
204+ then [ScriptTransfer(am.caller, A, unit)]
205+ else [ScriptTransfer(am.caller, A, fromBase58String(ar))]
219206 }
220207 else if ($isInstanceOf(z, "String"))
221208 then {
222209 let A = z
223210 nil
224211 }
225212 else throw("Incorrect invoke result!")
226213 }
227214 else throw("Strict value is not equal to itself.")
228215 }
229216 else throw("No payment attached!")
230217 else throw("AssetIds does not match")
231218 }
232219 else throw("Pool address not found!")
233220
234221
235222
236-@Callable(al)
223+@Callable(am)
237224 func repayTo (n) = if (f(n))
238- then {
239- let X = getStringValue(addressFromStringValue(n), "assetId")
240- if ((fromBase58String(X) == al.payments[0].assetId))
241- then if ((size(al.payments) > 0))
225+ then if ((size(am.payments) > 0))
226+ then {
227+ let t = toBase58String(am.caller.bytes)
228+ let o = invoke(addressFromStringValue(n), "repay", [t], am.payments)
229+ if ((o == o))
242230 then {
243- let t = toBase58String(al.caller.bytes)
244- let o = invoke(addressFromStringValue(n), "repay", [t], al.payments)
245- if ((o == o))
231+ let at = getStringValue(addressFromStringValue(n), "assetId")
232+ let z = o
233+ if ($isInstanceOf(z, "Int"))
246234 then {
247- let as = getStringValue(addressFromStringValue(n), "assetId")
248- let z = o
249- if ($isInstanceOf(z, "Int"))
250- then {
251- let A = z
252- if ((as == "WAVES"))
253- then [ScriptTransfer(al.caller, A, unit)]
254- else [ScriptTransfer(al.caller, A, fromBase58String(as))]
255- }
256- else if ($isInstanceOf(z, "String"))
257- then {
258- let A = z
259- nil
260- }
261- else throw("Incorrect invoke result!")
235+ let A = z
236+ if ((at == "WAVES"))
237+ then [ScriptTransfer(am.caller, A, unit)]
238+ else [ScriptTransfer(am.caller, A, fromBase58String(at))]
262239 }
263- else throw("Strict value is not equal to itself.")
240+ else if ($isInstanceOf(z, "String"))
241+ then {
242+ let A = z
243+ nil
244+ }
245+ else throw("Incorrect invoke result!")
264246 }
265- else throw("No payment attached!")
266- else throw("AssetIds does not match")
267- }
247+ else throw("Strict value is not equal to itself.")
248+ }
249+ else throw("No payment attached!")
268250 else throw("Pool address not found!")
269251
270252
271253
272-@Callable(al)
273-func liquidateAt (at,au,av,aw) = {
274- let ax = getIntegerValue(addressFromStringValue(a), "closeFactor")
275- let ah = getIntegerValue(addressFromStringValue(a), (aw + "_Penalty"))
276- let ac = al.payments[0].amount
277- if ((S(at, 0, "", 0, "") == false))
254+@Callable(am)
255+func liquidateAt (au,av,aw,ax) = {
256+ let ay = getIntegerValue(addressFromStringValue(a), "closeFactor")
257+ let ai = getIntegerValue(addressFromStringValue(a), (ax + "_Penalty"))
258+ let ad = am.payments[0].amount
259+ if ((T(au, 0, "", 0, "") == false))
278260 then {
279- let W = {
280- let z = al.payments[0].assetId
261+ let X = {
262+ let z = am.payments[0].assetId
281263 if ($isInstanceOf(z, "ByteVector"))
282264 then {
283265 let A = z
284266 toBase58String(A)
285267 }
286268 else throw("AssetId is not a String")
287269 }
288- if (if (V(at, au, W))
289- then Z(at, av)
270+ if (if (W(au, av, X))
271+ then aa(au, aw)
290272 else false)
291273 then {
292- let y = invoke(addressFromStringValue(au), "getBorrowUSD", [at], nil)
274+ let y = invoke(addressFromStringValue(av), "getBorrowUSD", [au], nil)
293275 if ((y == y))
294276 then {
295- let Y = {
277+ let Z = {
296278 let z = y
297279 if ($isInstanceOf(z, "(Int, Int, Int)"))
298280 then {
299281 let A = z
300282 A
301283 }
302284 else throw("unexpected return value type")
303285 }
304- let ay = invoke(addressFromStringValue(av), "getCollateralUSD", [at], nil)
305- if ((ay == ay))
286+ let az = invoke(addressFromStringValue(aw), "getCollateralUSD", [au], nil)
287+ if ((az == az))
306288 then {
307- let aa = {
308- let z = ay
289+ let ab = {
290+ let z = az
309291 if ($isInstanceOf(z, "(Int, Int, Int)"))
310292 then {
311- let az = z
312- az
293+ let aA = z
294+ aA
313295 }
314296 else throw("unexpected return value type")
315297 }
316- if ((fraction(Y._1, ax, 1000) >= ac))
298+ if ((fraction(Z._1, ay, 1000) >= ad))
317299 then {
318- let w = ab(ac, Y._2, Y._3, aa._2, aa._3, ah)
319- let aA = invoke(addressFromStringValue(au), "repay", [at], al.payments)
320- if ((aA == aA))
300+ let w = ac(ad, Z._2, Z._3, ab._2, ab._3, ai)
301+ let aB = invoke(addressFromStringValue(av), "repay", [au], am.payments)
302+ if ((aB == aB))
321303 then {
322- let o = invoke(addressFromStringValue(av), "payoutPenalty", [at, w], nil)
304+ let o = invoke(addressFromStringValue(aw), "payoutPenalty", [au, w], nil)
323305 if ((o == o))
324306 then {
325- let as = getStringValue(addressFromStringValue(av), "assetId")
307+ let at = getStringValue(addressFromStringValue(aw), "assetId")
326308 let z = o
327309 if ($isInstanceOf(z, "Int"))
328310 then {
329311 let A = z
330- if ((as == "WAVES"))
331- then [ScriptTransfer(al.caller, A, unit)]
332- else [ScriptTransfer(al.caller, A, fromBase58String(as))]
312+ if ((at == "WAVES"))
313+ then [ScriptTransfer(am.caller, A, unit)]
314+ else [ScriptTransfer(am.caller, A, fromBase58String(at))]
333315 }
334316 else if ($isInstanceOf(z, "String"))
335317 then {
336318 let A = z
337319 nil
338320 }
339321 else throw("Incorrect invoke result!")
340322 }
341323 else throw("Strict value is not equal to itself.")
342324 }
343325 else throw("Strict value is not equal to itself.")
344326 }
345327 else throw("Liquidation amount exceeds closefactor!")
346328 }
347329 else throw("Strict value is not equal to itself.")
348330 }
349331 else throw("Strict value is not equal to itself.")
350332 }
351333 else throw("User does not have the required assets!")
352334 }
353335 else throw("Only unhealthy accounts can be liquidated!")
354336 }
355337
356338
357339
358-@Callable(al)
359-func borrowFrom (n,as,o) = if (f(n))
340+@Callable(am)
341+func borrowFrom (n,at,o) = if (f(n))
360342 then {
361- let X = getStringValue(addressFromStringValue(n), "assetId")
362- if ((X == as))
343+ let Y = getStringValue(addressFromStringValue(n), "assetId")
344+ if ((Y == at))
363345 then if (m(n, o))
364346 then {
365- let t = toBase58String(al.caller.bytes)
366- if ((S(t, o, as, 0, "") == true))
347+ let t = toBase58String(am.caller.bytes)
348+ if ((T(t, o, at, 0, "") == true))
367349 then {
368- let ap = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
369- if ((ap == ap))
350+ let aq = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
351+ if ((aq == aq))
370352 then {
371- let z = ap
353+ let z = aq
372354 if ($isInstanceOf(z, "Int"))
373355 then {
374356 let A = z
375- if ((X == "WAVES"))
376- then [ScriptTransfer(al.caller, A, unit)]
377- else [ScriptTransfer(al.caller, A, fromBase58String(X))]
357+ if ((Y == "WAVES"))
358+ then [ScriptTransfer(am.caller, A, unit)]
359+ else [ScriptTransfer(am.caller, A, fromBase58String(Y))]
378360 }
379361 else if ($isInstanceOf(z, "String"))
380362 then {
381363 let A = z
382364 nil
383365 }
384366 else throw("Incorrect invoke result!")
385367 }
386368 else throw("Strict value is not equal to itself.")
387369 }
388370 else throw("Borrow exceeds user health!")
389371 }
390372 else throw("Pool liquidity is not sufficient!")
391373 else throw("AssetIds does not match")
392374 }
393375 else throw("Pool address not found!")
394376
395377
396378
397-@Callable(al)
379+@Callable(am)
398380 func lockAsCollateralAt (n) = if (f(n))
399381 then {
400- let ar = getStringValue(addressFromStringValue(n), "dTokenId")
401- if ((fromBase58String(ar) == al.payments[0].assetId))
402- then if ((size(al.payments) > 0))
382+ let as = getStringValue(addressFromStringValue(n), "dTokenId")
383+ if ((fromBase58String(as) == am.payments[0].assetId))
384+ then if ((size(am.payments) > 0))
403385 then {
404- let t = toBase58String(al.caller.bytes)
405- let aB = invoke(addressFromStringValue(n), "lockAsCollateral", [t], al.payments)
406- if ((aB == aB))
386+ let t = toBase58String(am.caller.bytes)
387+ let aC = invoke(addressFromStringValue(n), "lockAsCollateral", [t], am.payments)
388+ if ((aC == aC))
407389 then {
408- let z = aB
390+ let z = aC
409391 if ($isInstanceOf(z, "String"))
410392 then {
411393 let A = z
412394 nil
413395 }
414396 else throw("Incorrect invoke result!")
415397 }
416398 else throw("Strict value is not equal to itself.")
417399 }
418400 else throw("No payment attached!")
419401 else throw("AssetIds does not match")
420402 }
421403 else throw("Pool address not found!")
422404
423405
424406
425-@Callable(al)
426-func redeemCollateralFrom (n,aC,o) = if (f(n))
407+@Callable(am)
408+func redeemCollateralFrom (n,aD,o) = if (f(n))
427409 then {
428- let aD = getStringValue(addressFromStringValue(n), "dTokenId")
429- if ((aD == aC))
410+ let aE = getStringValue(addressFromStringValue(n), "dTokenId")
411+ if ((aE == aD))
430412 then {
431- let t = toBase58String(al.caller.bytes)
432- if ((S(t, 0, "", o, aC) == true))
413+ let t = toBase58String(am.caller.bytes)
414+ if ((T(t, 0, "", o, aD) == true))
433415 then {
434- let ap = invoke(addressFromStringValue(n), "redeemCollateral", [t, o], nil)
435- if ((ap == ap))
416+ let aq = invoke(addressFromStringValue(n), "redeemCollateral", [t, o], nil)
417+ if ((aq == aq))
436418 then {
437- let aq = getStringValue(addressFromStringValue(n), "dTokenId")
438- let z = ap
419+ let ar = getStringValue(addressFromStringValue(n), "dTokenId")
420+ let z = aq
439421 if ($isInstanceOf(z, "Int"))
440422 then {
441423 let A = z
442-[ScriptTransfer(al.caller, A, fromBase58String(aq))]
424+[ScriptTransfer(am.caller, A, fromBase58String(ar))]
443425 }
444426 else if ($isInstanceOf(z, "String"))
445427 then {
446428 let A = z
447429 nil
448430 }
449431 else throw("Incorrect invoke result!")
450432 }
451433 else throw("Strict value is not equal to itself.")
452434 }
453435 else throw("Borrow exceeds user health!")
454436 }
455437 else throw("AssetIds does not match")
456438 }
457439 else throw("Pool address not found!")
458440
459441
460-
461-@Callable(al)
462-func deleteData (aE) = [DeleteEntry(aE)]
463-
464-

github/deemru/w8io/169f3d6 
134.64 ms