tx · 3UKHsdkxXxJbHrvg2UYRqUCd8wu4443LsRP1Fh1mUDjK

3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu:  -0.01800000 Waves

2022.06.09 11:19 [2088582] smart account 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu > SELF 0.00000000 Waves

{ "type": 13, "id": "3UKHsdkxXxJbHrvg2UYRqUCd8wu4443LsRP1Fh1mUDjK", "fee": 1800000, "feeAssetId": null, "timestamp": 1654762877817, "version": 1, "sender": "3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu", "senderPublicKey": "668WwQVaWxezbvLEK3FccCSTbjst4zYAJDPrfLFRj9b9", "proofs": [ "4EPB6sRT4u5QLLseuEaoEU8zzitU87LCqMq1nn5jkczSBnYRGEQrBocr1NkmQuD37LQpkGHbErGHCfNTGHzU7QEM" ], "script": "base64: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YmFzZUFzc2V0SWQAAAAAAAAAAAAEAAAABmxwSW5mbwkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAJscAQAAAAIZGVjaW1hbHMIBQAAAAZscEluZm8AAAAIZGVjaW1hbHMEAAAAEHdpdGhkcmF3YWxBbW91bnQJAABpAAAAAgkAAGgAAAACBQAAAAZzaGFyZXMFAAAAA3R2bAgFAAAABmxwSW5mbwAAAAhxdWFudGl0eQkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAAmxwBQAAAAZzaGFyZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVrZXlQZW5kaW5nV2l0aGRyYXdhbHMAAAABBQAAAAtiYXNlQXNzZXRJZAkAAGQAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAAEHdpdGhkcmF3YWxBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABtrZXlNYXBwaW5nc1VzZXJUb1dpdGhkcmF3YWwAAAADBQAAAAtiYXNlQXNzZXRJZAUAAAALdXNlckFkZHJlc3MJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAQd2l0aGRyYXdhbEFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABFleGVjdXRlR2V0UmVxdWVzdAAAAAMAAAAHYXNzZXRJZAAAAAt1c2VyQWRkcmVzcwAAAApzdWJtaXRUeElkBAAAABB3aXRoZHJhd2FsQW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABtrZXlNYXBwaW5nc1VzZXJUb1dpdGhkcmF3YWwAAAADBQAAAAdhc3NldElkBQAAAAt1c2VyQWRkcmVzcwUAAAAKc3VibWl0VHhJZAAAAAAAAAAAAAQAAAAGY2hlY2tzCQAETAAAAAIDCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIAAAAAEJAQAAAAprZXlDcmVhdGVkAAAAAQUAAAAHYXNzZXRJZAcGCQEAAAAIdGhyb3dFcnIAAAABAgAAAChhc3NldCBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGNvbnRyYWN0CQAETAAAAAIDCQAAZgAAAAIFAAAAEHdpdGhkcmF3YWxBbW91bnQAAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAACNubyBjb3JyZXNwb25kaW5nIHdpdGhkcmF3YWwgcmVxdWVzdAUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwQAAAAScGVuZGluZ1dpdGhkcmF3YWxzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAQAAABVrZXlQZW5kaW5nV2l0aGRyYXdhbHMAAAABBQAAAAdhc3NldElkAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAABB3aXRoZHJhd2FsQW1vdW50CQACWQAAAAEFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAG2tleU1hcHBpbmdzVXNlclRvV2l0aGRyYXdhbAAAAAMFAAAAB2Fzc2V0SWQFAAAAC3VzZXJBZGRyZXNzBQAAAApzdWJtaXRUeElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAVa2V5UGVuZGluZ1dpdGhkcmF3YWxzAAAAAQUAAAAHYXNzZXRJZAkAAGUAAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMFAAAAEHdpdGhkcmF3YWxBbW91bnQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAANcmVnaXN0ZXJBc3NldAAAAAcAAAAHYXNzZXRJZAAAAAZscE5hbWUAAAANbHBEZXNjcmlwdGlvbgAAAAZscExvZ28AAAANZGVsYXlJbkJsb2NrcwAAAAxwcm94eUFkZHJlc3MAAAAXb3RoZXJDaGFpbkFzc2V0RGVjaW1hbHMEAAAABmNoZWNrcwkABEwAAAACCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpCQAETAAAAAIDCQAAZwAAAAIFAAAADWRlbGF5SW5CbG9ja3MAAAAAAAAAAAAGCQEAAAAI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AQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQAAAALY2hlY2tDYWxsZXIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgQAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQACWQAAAAEFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAAAAAACBQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAOY29uZmlybU1hbmFnZXIAAAAABAAAAAJwbQkBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAFaGFzUE0DCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAACcG0GCQEAAAAIdGhyb3dFcnIAAAABAgAAABJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAQAAAAh0aHJvd0VycgAAAAECAAAAG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5ZxtqPg==", "chainId": 84, "height": 2088582, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6sPeaTDqUhQpwXGNvnYT6n6xbuAnYxreRmSWLoseSPUw Next: 83rrYT3m2RtbbcvcoNRpRfxW23gZamgXrWz5iLxXbiNk Diff:
OldNewDifferences
1919 func h (g,i) = makeString(["%s%s%d", "tvlHistory", g, toString(i)], a)
2020
2121
22-func j (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
22+func j (g,i) = makeString(["%s%s%d", "topUpHistory", g, toString(i)], a)
2323
2424
25-func k (g) = makeString(["%s%s", "delayInBlocks", g], a)
25+func k (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
2626
2727
28-func l (g) = makeString(["%s%s", "created", g], a)
28+func l (g) = makeString(["%s%s", "delayInBlocks", g], a)
2929
3030
31-func m (g) = makeString(["%s%s", "assetIdToLPId", g], a)
31+func m (g) = makeString(["%s%s", "created", g], a)
3232
3333
34-func n (o) = makeString(["%s%s", "lpIdToAssetId", o], a)
34+func n (g) = makeString(["%s%s", "assetIdToLPId", g], a)
3535
3636
37-func p (g) = makeString(["%s%s", "proxyAddress", g], a)
37+func o (p) = makeString(["%s%s", "lpIdToAssetId", p], a)
3838
3939
40-func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
40+func q (g) = makeString(["%s%s", "proxyAddress", g], a)
4141
4242
43-func t (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
43+func r (g,s,t) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, s, t], a)
4444
4545
46-func u () = makeString(["%s", "assetsStoreContract"], a)
46+func u (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
4747
4848
49-func v () = {
50- let w = getString(d())
51- if ($isInstanceOf(w, "String"))
49+func v () = makeString(["%s", "assetsStoreContract"], a)
50+
51+
52+func w () = {
53+ let x = getString(d())
54+ if ($isInstanceOf(x, "String"))
5255 then {
53- let x = w
54- fromBase58String(x)
56+ let y = x
57+ fromBase58String(y)
5558 }
56- else if ($isInstanceOf(w, "Unit"))
59+ else if ($isInstanceOf(x, "Unit"))
5760 then unit
5861 else throw("Match error")
5962 }
6063
6164
62-func y () = {
63- let w = getString(e())
64- if ($isInstanceOf(w, "String"))
65+func z () = {
66+ let x = getString(e())
67+ if ($isInstanceOf(x, "String"))
6568 then {
66- let x = w
67- fromBase58String(x)
69+ let y = x
70+ fromBase58String(y)
6871 }
69- else if ($isInstanceOf(w, "Unit"))
72+ else if ($isInstanceOf(x, "Unit"))
7073 then unit
7174 else throw("Match error")
7275 }
7376
7477
75-func z (A) = throw((c + A))
78+func A (B) = throw((c + B))
7679
7780
78-func B (C) = {
79- let D = z("permission denied")
80- let w = v()
81- if ($isInstanceOf(w, "ByteVector"))
81+func C (D) = {
82+ let E = A("permission denied")
83+ let x = w()
84+ if ($isInstanceOf(x, "ByteVector"))
8285 then {
83- let E = w
84- if ((C.callerPublicKey == E))
86+ let F = x
87+ if ((D.callerPublicKey == F))
8588 then true
86- else D
89+ else E
8790 }
88- else if ($isInstanceOf(w, "Unit"))
89- then if ((C.caller == this))
91+ else if ($isInstanceOf(x, "Unit"))
92+ then if ((D.caller == this))
9093 then true
91- else D
94+ else E
9295 else throw("Match error")
9396 }
9497
9598
96-func F () = addressFromStringValue(value(getString(u())))
99+func G () = addressFromStringValue(value(getString(v())))
97100
98101
99-func G (C,g) = {
100- let H = (toString(C.caller) == valueOrElse(getString(p(g)), b))
101- if (H)
102+func H (D,g) = {
103+ let I = (toString(D.caller) == valueOrElse(getString(q(g)), b))
104+ if (I)
102105 then true
103106 else {
104- let I = B(C)
105- if ((I == I))
107+ let J = C(D)
108+ if ((J == J))
106109 then true
107110 else throw("Strict value is not equal to itself.")
108111 }
109112 }
110113
111114
112-@Callable(C)
113-func constructor (F) = {
114- let I = B(C)
115- if ((I == I))
116- then [StringEntry(u(), F)]
115+@Callable(D)
116+func constructor (G) = {
117+ let J = C(D)
118+ if ((J == J))
119+ then [StringEntry(v(), G)]
117120 else throw("Strict value is not equal to itself.")
118121 }
119122
120123
121124
122-@Callable(C)
125+@Callable(D)
123126 func put () = {
124- let J = value(C.payments[0])
125- let K = value(J.assetId)
126- let g = toBase58String(K)
127- let L = [if ((size(C.payments) == 1))
127+ let K = value(D.payments[0])
128+ let L = value(K.assetId)
129+ let g = toBase58String(L)
130+ let M = [if ((size(D.payments) == 1))
128131 then true
129- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
132+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(g)), false))
130133 then true
131- else z("attached payment asset must be registered in the contract"), if ((J.amount > 0))
134+ else A("attached payment asset must be registered in the contract"), if ((K.amount > 0))
132135 then true
133- else z("positive amount required")]
134- if ((L == L))
136+ else A("positive amount required")]
137+ if ((M == M))
135138 then {
136- let M = valueOrElse(getInteger(f(g)), 0)
137- let o = value(getString(m(g)))
138- let N = value(assetInfo(fromBase58String(g)))
139- let O = if ((M > 0))
140- then ((J.amount * N.quantity) / M)
141- else J.amount
142-[Reissue(N.id, O, true), ScriptTransfer(C.caller, O, N.id)]
139+ let N = valueOrElse(getInteger(f(g)), 0)
140+ let p = value(getString(n(g)))
141+ let O = value(assetInfo(fromBase58String(g)))
142+ let P = if ((N > 0))
143+ then ((K.amount * O.quantity) / N)
144+ else K.amount
145+[Reissue(O.id, P, true), ScriptTransfer(D.caller, P, O.id)]
143146 }
144147 else throw("Strict value is not equal to itself.")
145148 }
146149
147150
148151
149-@Callable(C)
152+@Callable(D)
150153 func submitGetRequest () = {
151- let J = value(C.payments[0])
152- let P = value(J.assetId)
153- let o = toBase58String(P)
154- let r = toString(C.caller)
155- let Q = value(getString(n(o)))
156- let R = J.amount
157- let L = [if ((size(C.payments) == 1))
154+ let K = value(D.payments[0])
155+ let Q = value(K.assetId)
156+ let p = toBase58String(Q)
157+ let s = toString(D.caller)
158+ let R = value(getString(o(p)))
159+ let S = K.amount
160+ let M = [if ((size(D.payments) == 1))
158161 then true
159- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(Q)), false))
162+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(R)), false))
160163 then true
161- else z("attached payment asset must be registered in the contract"), if ((R > 0))
164+ else A("attached payment asset must be registered in the contract"), if ((S > 0))
162165 then true
163- else z("positive amount to withdrawal required")]
164- if ((L == L))
166+ else A("positive amount to withdrawal required")]
167+ if ((M == M))
165168 then {
166- let S = valueOrElse(getInteger(j(Q)), 0)
167- let M = valueOrElse(getInteger(f(Q)), 0)
168- let N = value(assetInfo(P))
169- let T = N.decimals
170- let U = ((R * M) / N.quantity)
171-[Burn(P, R), IntegerEntry(j(Q), (S + U)), IntegerEntry(q(Q, r, toBase58String(C.transactionId)), U)]
169+ let T = valueOrElse(getInteger(k(R)), 0)
170+ let N = valueOrElse(getInteger(f(R)), 0)
171+ let O = value(assetInfo(Q))
172+ let U = O.decimals
173+ let V = ((S * N) / O.quantity)
174+[Burn(Q, S), IntegerEntry(k(R), (T + V)), IntegerEntry(r(R, s, toBase58String(D.transactionId)), V)]
172175 }
173176 else throw("Strict value is not equal to itself.")
174177 }
175178
176179
177180
178-@Callable(C)
179-func executeGetRequest (g,r,V) = {
180- let U = valueOrElse(getInteger(q(g, r, V)), 0)
181- let L = [if (valueOrElse(getBoolean(l(g)), false))
181+@Callable(D)
182+func executeGetRequest (g,s,W) = {
183+ let V = valueOrElse(getInteger(r(g, s, W)), 0)
184+ let M = [if (valueOrElse(getBoolean(m(g)), false))
182185 then true
183- else z("asset must be registered in the contract"), if ((U > 0))
186+ else A("asset must be registered in the contract"), if ((V > 0))
184187 then true
185- else z("no corresponding withdrawal request")]
186- if ((L == L))
188+ else A("no corresponding withdrawal request")]
189+ if ((M == M))
187190 then {
188- let S = valueOrElse(getInteger(j(g)), 0)
189-[ScriptTransfer(addressFromStringValue(r), U, fromBase58String(g)), DeleteEntry(q(g, r, V)), IntegerEntry(j(g), (S - U))]
191+ let T = valueOrElse(getInteger(k(g)), 0)
192+[ScriptTransfer(addressFromStringValue(s), V, fromBase58String(g)), DeleteEntry(r(g, s, W)), IntegerEntry(k(g), (T - V))]
190193 }
191194 else throw("Strict value is not equal to itself.")
192195 }
193196
194197
195198
196-@Callable(C)
197-func registerAsset (g,W,X,Y,Z,aa,ab) = {
198- let L = [B(C), if ((Z >= 0))
199+@Callable(D)
200+func registerAsset (g,X,Y,Z,aa,ab,ac) = {
201+ let M = [C(D), if ((aa >= 0))
199202 then true
200- else z("invalid delayInBlocks"), if ((addressFromString(aa) != unit))
203+ else A("invalid delayInBlocks"), if ((addressFromString(ab) != unit))
201204 then true
202- else z("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
205+ else A("invalid proxyAddress"), if ((valueOrElse(getBoolean(m(g)), false) == false))
203206 then true
204- else z("asset already registered")]
205- if ((L == L))
207+ else A("asset already registered")]
208+ if ((M == M))
206209 then {
207- let T = value(assetInfo(fromBase58String(g))).decimals
208- let ac = Issue(W, X, 1, T, true)
209- let P = calculateAssetId(ac)
210- let o = toBase58String(P)
211- let ad = invoke(F(), "createOrUpdate", [o, Y, false], nil)
212- if ((ad == ad))
210+ let U = value(assetInfo(fromBase58String(g))).decimals
211+ let ad = Issue(X, Y, 1, U, true)
212+ let Q = calculateAssetId(ad)
213+ let p = toBase58String(Q)
214+ let ae = invoke(G(), "createOrUpdate", [p, Z, false], nil)
215+ if ((ae == ae))
213216 then {
214- let ae = invoke(F(), "addLabel", [o, "DEFI"], nil)
215- if ((ae == ae))
216- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Z), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), aa), IntegerEntry(t(g), ab), ac, Burn(P, 1)]
217+ let af = invoke(G(), "addLabel", [p, "DEFI"], nil)
218+ if ((af == af))
219+ then [BooleanEntry(m(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(l(g), aa), StringEntry(o(p), g), StringEntry(n(g), p), StringEntry(q(g), ab), IntegerEntry(u(g), ac), ad, Burn(Q, 1)]
217220 else throw("Strict value is not equal to itself.")
218221 }
219222 else throw("Strict value is not equal to itself.")
223226
224227
225228
226-@Callable(C)
229+@Callable(D)
227230 func topUpBalance () = {
228- let J = valueOrErrorMessage(C.payments[0], (c + "payment must be attached"))
229- let g = toBase58String(value(J.assetId))
230- let af = J.amount
231- let S = valueOrElse(getInteger(j(g)), 0)
232- let L = [G(C, g), if ((size(C.payments) == 1))
231+ let K = valueOrErrorMessage(D.payments[0], (c + "payment must be attached"))
232+ let g = toBase58String(value(K.assetId))
233+ let ag = K.amount
234+ let T = valueOrElse(getInteger(k(g)), 0)
235+ let M = [H(D, g), if ((size(D.payments) == 1))
233236 then true
234- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
237+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(g)), false))
235238 then true
236- else z("attached payment asset must be registered in the contract"), if ((S != 0))
239+ else A("attached payment asset must be registered in the contract"), if ((T != 0))
237240 then true
238- else z("zero pendingWithdrawals, nothing to top up"), if ((S >= af))
241+ else A("zero pendingWithdrawals, nothing to top up"), if ((T >= ag))
239242 then true
240- else "amount to top up must be less or equal than pendingWithdrawals"]
241- if ((L == L))
242- then [IntegerEntry(j(g), (S - af))]
243+ else A("amount to top up must be less or equal than pendingWithdrawals"), if ((getInteger(j(g, height)) == unit))
244+ then true
245+ else A("already have topUp in current block, wait for next block")]
246+ if ((M == M))
247+ then [IntegerEntry(k(g), (T - ag)), IntegerEntry(j(g, height), ag)]
243248 else throw("Strict value is not equal to itself.")
244249 }
245250
246251
247252
248-@Callable(C)
249-func setTVL (g,ag) = {
250- let L = [G(C, g), if (valueOrElse(getBoolean(l(g)), false))
253+@Callable(D)
254+func setTVL (g,ah) = {
255+ let M = [H(D, g), if (valueOrElse(getBoolean(m(g)), false))
251256 then true
252- else z("asset must be registered in the contract")]
253- if ((L == L))
257+ else A("asset must be registered in the contract"), if ((getInteger(h(g, height)) == unit))
258+ then true
259+ else A("already have setTVL in current block, wait for next block")]
260+ if ((M == M))
254261 then {
255- let ah = parseBigIntValue(ag)
256- let ai = parseBigIntValue("10")
257- let aj = value(assetInfo(fromBase58String(g))).decimals
258- let ab = value(getInteger(t(g)))
259- let ak = if ((ab > aj))
262+ let ai = parseBigIntValue(ah)
263+ let aj = parseBigIntValue("10")
264+ let ak = value(assetInfo(fromBase58String(g))).decimals
265+ let ac = value(getInteger(u(g)))
266+ let al = if ((ac > ak))
260267 then {
261- let al = parseBigIntValue(toString((ab - aj)))
262- (ah / pow(ai, 0, al, 0, 0, DOWN))
268+ let am = parseBigIntValue(toString((ac - ak)))
269+ (ai / pow(aj, 0, am, 0, 0, DOWN))
263270 }
264- else if ((aj > ab))
271+ else if ((ak > ac))
265272 then {
266- let al = parseBigIntValue(toString((aj - ab)))
267- (ah * pow(ai, 0, al, 0, 0, DOWN))
273+ let am = parseBigIntValue(toString((ak - ac)))
274+ (ai * pow(aj, 0, am, 0, 0, DOWN))
268275 }
269- else ah
270- let am = toInt(ak)
271-[IntegerEntry(f(g), am), IntegerEntry(h(g, height), am)]
276+ else ai
277+ let an = toInt(al)
278+[IntegerEntry(f(g), an), IntegerEntry(h(g, height), an)]
272279 }
273280 else throw("Strict value is not equal to itself.")
274281 }
275282
276283
277284
278-@Callable(C)
279-func setManager (an) = {
280- let I = B(C)
281- if ((I == I))
285+@Callable(D)
286+func setManager (ao) = {
287+ let J = C(D)
288+ if ((J == J))
282289 then {
283- let ao = fromBase58String(an)
284- if ((ao == ao))
285- then [StringEntry(e(), an)]
290+ let ap = fromBase58String(ao)
291+ if ((ap == ap))
292+ then [StringEntry(e(), ao)]
286293 else throw("Strict value is not equal to itself.")
287294 }
288295 else throw("Strict value is not equal to itself.")
290297
291298
292299
293-@Callable(C)
300+@Callable(D)
294301 func confirmManager () = {
295- let ap = y()
296- let aq = if (isDefined(ap))
302+ let aq = z()
303+ let ar = if (isDefined(aq))
297304 then true
298- else z("no pending manager")
299- if ((aq == aq))
305+ else A("no pending manager")
306+ if ((ar == ar))
300307 then {
301- let ar = if ((C.callerPublicKey == value(ap)))
308+ let as = if ((D.callerPublicKey == value(aq)))
302309 then true
303- else z("you are not pending manager")
304- if ((ar == ar))
305- then [StringEntry(d(), toBase58String(value(ap))), DeleteEntry(e())]
310+ else A("you are not pending manager")
311+ if ((as == as))
312+ then [StringEntry(d(), toBase58String(value(aq))), DeleteEntry(e())]
306313 else throw("Strict value is not equal to itself.")
307314 }
308315 else throw("Strict value is not equal to itself.")
309316 }
310317
311318
312-@Verifier(as)
313-func at () = {
314- let au = {
315- let w = v()
316- if ($isInstanceOf(w, "ByteVector"))
319+@Verifier(at)
320+func au () = {
321+ let av = {
322+ let x = w()
323+ if ($isInstanceOf(x, "ByteVector"))
317324 then {
318- let E = w
319- E
325+ let F = x
326+ F
320327 }
321- else if ($isInstanceOf(w, "Unit"))
322- then as.senderPublicKey
328+ else if ($isInstanceOf(x, "Unit"))
329+ then at.senderPublicKey
323330 else throw("Match error")
324331 }
325- sigVerify(as.bodyBytes, as.proofs[0], au)
332+ sigVerify(at.bodyBytes, at.proofs[0], av)
326333 }
327334
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = ""
77
88 let c = "lp_staking_v2: "
99
1010 func d () = makeString(["%s", "managerPublicKey"], a)
1111
1212
1313 func e () = makeString(["%s", "pendingManagerPublicKey"], a)
1414
1515
1616 func f (g) = makeString(["%s%s", "tvl", g], a)
1717
1818
1919 func h (g,i) = makeString(["%s%s%d", "tvlHistory", g, toString(i)], a)
2020
2121
22-func j (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
22+func j (g,i) = makeString(["%s%s%d", "topUpHistory", g, toString(i)], a)
2323
2424
25-func k (g) = makeString(["%s%s", "delayInBlocks", g], a)
25+func k (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
2626
2727
28-func l (g) = makeString(["%s%s", "created", g], a)
28+func l (g) = makeString(["%s%s", "delayInBlocks", g], a)
2929
3030
31-func m (g) = makeString(["%s%s", "assetIdToLPId", g], a)
31+func m (g) = makeString(["%s%s", "created", g], a)
3232
3333
34-func n (o) = makeString(["%s%s", "lpIdToAssetId", o], a)
34+func n (g) = makeString(["%s%s", "assetIdToLPId", g], a)
3535
3636
37-func p (g) = makeString(["%s%s", "proxyAddress", g], a)
37+func o (p) = makeString(["%s%s", "lpIdToAssetId", p], a)
3838
3939
40-func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
40+func q (g) = makeString(["%s%s", "proxyAddress", g], a)
4141
4242
43-func t (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
43+func r (g,s,t) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, s, t], a)
4444
4545
46-func u () = makeString(["%s", "assetsStoreContract"], a)
46+func u (g) = makeString(["%s%s", "otherChainAssetDecimals", g], a)
4747
4848
49-func v () = {
50- let w = getString(d())
51- if ($isInstanceOf(w, "String"))
49+func v () = makeString(["%s", "assetsStoreContract"], a)
50+
51+
52+func w () = {
53+ let x = getString(d())
54+ if ($isInstanceOf(x, "String"))
5255 then {
53- let x = w
54- fromBase58String(x)
56+ let y = x
57+ fromBase58String(y)
5558 }
56- else if ($isInstanceOf(w, "Unit"))
59+ else if ($isInstanceOf(x, "Unit"))
5760 then unit
5861 else throw("Match error")
5962 }
6063
6164
62-func y () = {
63- let w = getString(e())
64- if ($isInstanceOf(w, "String"))
65+func z () = {
66+ let x = getString(e())
67+ if ($isInstanceOf(x, "String"))
6568 then {
66- let x = w
67- fromBase58String(x)
69+ let y = x
70+ fromBase58String(y)
6871 }
69- else if ($isInstanceOf(w, "Unit"))
72+ else if ($isInstanceOf(x, "Unit"))
7073 then unit
7174 else throw("Match error")
7275 }
7376
7477
75-func z (A) = throw((c + A))
78+func A (B) = throw((c + B))
7679
7780
78-func B (C) = {
79- let D = z("permission denied")
80- let w = v()
81- if ($isInstanceOf(w, "ByteVector"))
81+func C (D) = {
82+ let E = A("permission denied")
83+ let x = w()
84+ if ($isInstanceOf(x, "ByteVector"))
8285 then {
83- let E = w
84- if ((C.callerPublicKey == E))
86+ let F = x
87+ if ((D.callerPublicKey == F))
8588 then true
86- else D
89+ else E
8790 }
88- else if ($isInstanceOf(w, "Unit"))
89- then if ((C.caller == this))
91+ else if ($isInstanceOf(x, "Unit"))
92+ then if ((D.caller == this))
9093 then true
91- else D
94+ else E
9295 else throw("Match error")
9396 }
9497
9598
96-func F () = addressFromStringValue(value(getString(u())))
99+func G () = addressFromStringValue(value(getString(v())))
97100
98101
99-func G (C,g) = {
100- let H = (toString(C.caller) == valueOrElse(getString(p(g)), b))
101- if (H)
102+func H (D,g) = {
103+ let I = (toString(D.caller) == valueOrElse(getString(q(g)), b))
104+ if (I)
102105 then true
103106 else {
104- let I = B(C)
105- if ((I == I))
107+ let J = C(D)
108+ if ((J == J))
106109 then true
107110 else throw("Strict value is not equal to itself.")
108111 }
109112 }
110113
111114
112-@Callable(C)
113-func constructor (F) = {
114- let I = B(C)
115- if ((I == I))
116- then [StringEntry(u(), F)]
115+@Callable(D)
116+func constructor (G) = {
117+ let J = C(D)
118+ if ((J == J))
119+ then [StringEntry(v(), G)]
117120 else throw("Strict value is not equal to itself.")
118121 }
119122
120123
121124
122-@Callable(C)
125+@Callable(D)
123126 func put () = {
124- let J = value(C.payments[0])
125- let K = value(J.assetId)
126- let g = toBase58String(K)
127- let L = [if ((size(C.payments) == 1))
127+ let K = value(D.payments[0])
128+ let L = value(K.assetId)
129+ let g = toBase58String(L)
130+ let M = [if ((size(D.payments) == 1))
128131 then true
129- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
132+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(g)), false))
130133 then true
131- else z("attached payment asset must be registered in the contract"), if ((J.amount > 0))
134+ else A("attached payment asset must be registered in the contract"), if ((K.amount > 0))
132135 then true
133- else z("positive amount required")]
134- if ((L == L))
136+ else A("positive amount required")]
137+ if ((M == M))
135138 then {
136- let M = valueOrElse(getInteger(f(g)), 0)
137- let o = value(getString(m(g)))
138- let N = value(assetInfo(fromBase58String(g)))
139- let O = if ((M > 0))
140- then ((J.amount * N.quantity) / M)
141- else J.amount
142-[Reissue(N.id, O, true), ScriptTransfer(C.caller, O, N.id)]
139+ let N = valueOrElse(getInteger(f(g)), 0)
140+ let p = value(getString(n(g)))
141+ let O = value(assetInfo(fromBase58String(g)))
142+ let P = if ((N > 0))
143+ then ((K.amount * O.quantity) / N)
144+ else K.amount
145+[Reissue(O.id, P, true), ScriptTransfer(D.caller, P, O.id)]
143146 }
144147 else throw("Strict value is not equal to itself.")
145148 }
146149
147150
148151
149-@Callable(C)
152+@Callable(D)
150153 func submitGetRequest () = {
151- let J = value(C.payments[0])
152- let P = value(J.assetId)
153- let o = toBase58String(P)
154- let r = toString(C.caller)
155- let Q = value(getString(n(o)))
156- let R = J.amount
157- let L = [if ((size(C.payments) == 1))
154+ let K = value(D.payments[0])
155+ let Q = value(K.assetId)
156+ let p = toBase58String(Q)
157+ let s = toString(D.caller)
158+ let R = value(getString(o(p)))
159+ let S = K.amount
160+ let M = [if ((size(D.payments) == 1))
158161 then true
159- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(Q)), false))
162+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(R)), false))
160163 then true
161- else z("attached payment asset must be registered in the contract"), if ((R > 0))
164+ else A("attached payment asset must be registered in the contract"), if ((S > 0))
162165 then true
163- else z("positive amount to withdrawal required")]
164- if ((L == L))
166+ else A("positive amount to withdrawal required")]
167+ if ((M == M))
165168 then {
166- let S = valueOrElse(getInteger(j(Q)), 0)
167- let M = valueOrElse(getInteger(f(Q)), 0)
168- let N = value(assetInfo(P))
169- let T = N.decimals
170- let U = ((R * M) / N.quantity)
171-[Burn(P, R), IntegerEntry(j(Q), (S + U)), IntegerEntry(q(Q, r, toBase58String(C.transactionId)), U)]
169+ let T = valueOrElse(getInteger(k(R)), 0)
170+ let N = valueOrElse(getInteger(f(R)), 0)
171+ let O = value(assetInfo(Q))
172+ let U = O.decimals
173+ let V = ((S * N) / O.quantity)
174+[Burn(Q, S), IntegerEntry(k(R), (T + V)), IntegerEntry(r(R, s, toBase58String(D.transactionId)), V)]
172175 }
173176 else throw("Strict value is not equal to itself.")
174177 }
175178
176179
177180
178-@Callable(C)
179-func executeGetRequest (g,r,V) = {
180- let U = valueOrElse(getInteger(q(g, r, V)), 0)
181- let L = [if (valueOrElse(getBoolean(l(g)), false))
181+@Callable(D)
182+func executeGetRequest (g,s,W) = {
183+ let V = valueOrElse(getInteger(r(g, s, W)), 0)
184+ let M = [if (valueOrElse(getBoolean(m(g)), false))
182185 then true
183- else z("asset must be registered in the contract"), if ((U > 0))
186+ else A("asset must be registered in the contract"), if ((V > 0))
184187 then true
185- else z("no corresponding withdrawal request")]
186- if ((L == L))
188+ else A("no corresponding withdrawal request")]
189+ if ((M == M))
187190 then {
188- let S = valueOrElse(getInteger(j(g)), 0)
189-[ScriptTransfer(addressFromStringValue(r), U, fromBase58String(g)), DeleteEntry(q(g, r, V)), IntegerEntry(j(g), (S - U))]
191+ let T = valueOrElse(getInteger(k(g)), 0)
192+[ScriptTransfer(addressFromStringValue(s), V, fromBase58String(g)), DeleteEntry(r(g, s, W)), IntegerEntry(k(g), (T - V))]
190193 }
191194 else throw("Strict value is not equal to itself.")
192195 }
193196
194197
195198
196-@Callable(C)
197-func registerAsset (g,W,X,Y,Z,aa,ab) = {
198- let L = [B(C), if ((Z >= 0))
199+@Callable(D)
200+func registerAsset (g,X,Y,Z,aa,ab,ac) = {
201+ let M = [C(D), if ((aa >= 0))
199202 then true
200- else z("invalid delayInBlocks"), if ((addressFromString(aa) != unit))
203+ else A("invalid delayInBlocks"), if ((addressFromString(ab) != unit))
201204 then true
202- else z("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
205+ else A("invalid proxyAddress"), if ((valueOrElse(getBoolean(m(g)), false) == false))
203206 then true
204- else z("asset already registered")]
205- if ((L == L))
207+ else A("asset already registered")]
208+ if ((M == M))
206209 then {
207- let T = value(assetInfo(fromBase58String(g))).decimals
208- let ac = Issue(W, X, 1, T, true)
209- let P = calculateAssetId(ac)
210- let o = toBase58String(P)
211- let ad = invoke(F(), "createOrUpdate", [o, Y, false], nil)
212- if ((ad == ad))
210+ let U = value(assetInfo(fromBase58String(g))).decimals
211+ let ad = Issue(X, Y, 1, U, true)
212+ let Q = calculateAssetId(ad)
213+ let p = toBase58String(Q)
214+ let ae = invoke(G(), "createOrUpdate", [p, Z, false], nil)
215+ if ((ae == ae))
213216 then {
214- let ae = invoke(F(), "addLabel", [o, "DEFI"], nil)
215- if ((ae == ae))
216- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Z), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), aa), IntegerEntry(t(g), ab), ac, Burn(P, 1)]
217+ let af = invoke(G(), "addLabel", [p, "DEFI"], nil)
218+ if ((af == af))
219+ then [BooleanEntry(m(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(l(g), aa), StringEntry(o(p), g), StringEntry(n(g), p), StringEntry(q(g), ab), IntegerEntry(u(g), ac), ad, Burn(Q, 1)]
217220 else throw("Strict value is not equal to itself.")
218221 }
219222 else throw("Strict value is not equal to itself.")
220223 }
221224 else throw("Strict value is not equal to itself.")
222225 }
223226
224227
225228
226-@Callable(C)
229+@Callable(D)
227230 func topUpBalance () = {
228- let J = valueOrErrorMessage(C.payments[0], (c + "payment must be attached"))
229- let g = toBase58String(value(J.assetId))
230- let af = J.amount
231- let S = valueOrElse(getInteger(j(g)), 0)
232- let L = [G(C, g), if ((size(C.payments) == 1))
231+ let K = valueOrErrorMessage(D.payments[0], (c + "payment must be attached"))
232+ let g = toBase58String(value(K.assetId))
233+ let ag = K.amount
234+ let T = valueOrElse(getInteger(k(g)), 0)
235+ let M = [H(D, g), if ((size(D.payments) == 1))
233236 then true
234- else z("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
237+ else A("only one payment must be attached"), if (valueOrElse(getBoolean(m(g)), false))
235238 then true
236- else z("attached payment asset must be registered in the contract"), if ((S != 0))
239+ else A("attached payment asset must be registered in the contract"), if ((T != 0))
237240 then true
238- else z("zero pendingWithdrawals, nothing to top up"), if ((S >= af))
241+ else A("zero pendingWithdrawals, nothing to top up"), if ((T >= ag))
239242 then true
240- else "amount to top up must be less or equal than pendingWithdrawals"]
241- if ((L == L))
242- then [IntegerEntry(j(g), (S - af))]
243+ else A("amount to top up must be less or equal than pendingWithdrawals"), if ((getInteger(j(g, height)) == unit))
244+ then true
245+ else A("already have topUp in current block, wait for next block")]
246+ if ((M == M))
247+ then [IntegerEntry(k(g), (T - ag)), IntegerEntry(j(g, height), ag)]
243248 else throw("Strict value is not equal to itself.")
244249 }
245250
246251
247252
248-@Callable(C)
249-func setTVL (g,ag) = {
250- let L = [G(C, g), if (valueOrElse(getBoolean(l(g)), false))
253+@Callable(D)
254+func setTVL (g,ah) = {
255+ let M = [H(D, g), if (valueOrElse(getBoolean(m(g)), false))
251256 then true
252- else z("asset must be registered in the contract")]
253- if ((L == L))
257+ else A("asset must be registered in the contract"), if ((getInteger(h(g, height)) == unit))
258+ then true
259+ else A("already have setTVL in current block, wait for next block")]
260+ if ((M == M))
254261 then {
255- let ah = parseBigIntValue(ag)
256- let ai = parseBigIntValue("10")
257- let aj = value(assetInfo(fromBase58String(g))).decimals
258- let ab = value(getInteger(t(g)))
259- let ak = if ((ab > aj))
262+ let ai = parseBigIntValue(ah)
263+ let aj = parseBigIntValue("10")
264+ let ak = value(assetInfo(fromBase58String(g))).decimals
265+ let ac = value(getInteger(u(g)))
266+ let al = if ((ac > ak))
260267 then {
261- let al = parseBigIntValue(toString((ab - aj)))
262- (ah / pow(ai, 0, al, 0, 0, DOWN))
268+ let am = parseBigIntValue(toString((ac - ak)))
269+ (ai / pow(aj, 0, am, 0, 0, DOWN))
263270 }
264- else if ((aj > ab))
271+ else if ((ak > ac))
265272 then {
266- let al = parseBigIntValue(toString((aj - ab)))
267- (ah * pow(ai, 0, al, 0, 0, DOWN))
273+ let am = parseBigIntValue(toString((ak - ac)))
274+ (ai * pow(aj, 0, am, 0, 0, DOWN))
268275 }
269- else ah
270- let am = toInt(ak)
271-[IntegerEntry(f(g), am), IntegerEntry(h(g, height), am)]
276+ else ai
277+ let an = toInt(al)
278+[IntegerEntry(f(g), an), IntegerEntry(h(g, height), an)]
272279 }
273280 else throw("Strict value is not equal to itself.")
274281 }
275282
276283
277284
278-@Callable(C)
279-func setManager (an) = {
280- let I = B(C)
281- if ((I == I))
285+@Callable(D)
286+func setManager (ao) = {
287+ let J = C(D)
288+ if ((J == J))
282289 then {
283- let ao = fromBase58String(an)
284- if ((ao == ao))
285- then [StringEntry(e(), an)]
290+ let ap = fromBase58String(ao)
291+ if ((ap == ap))
292+ then [StringEntry(e(), ao)]
286293 else throw("Strict value is not equal to itself.")
287294 }
288295 else throw("Strict value is not equal to itself.")
289296 }
290297
291298
292299
293-@Callable(C)
300+@Callable(D)
294301 func confirmManager () = {
295- let ap = y()
296- let aq = if (isDefined(ap))
302+ let aq = z()
303+ let ar = if (isDefined(aq))
297304 then true
298- else z("no pending manager")
299- if ((aq == aq))
305+ else A("no pending manager")
306+ if ((ar == ar))
300307 then {
301- let ar = if ((C.callerPublicKey == value(ap)))
308+ let as = if ((D.callerPublicKey == value(aq)))
302309 then true
303- else z("you are not pending manager")
304- if ((ar == ar))
305- then [StringEntry(d(), toBase58String(value(ap))), DeleteEntry(e())]
310+ else A("you are not pending manager")
311+ if ((as == as))
312+ then [StringEntry(d(), toBase58String(value(aq))), DeleteEntry(e())]
306313 else throw("Strict value is not equal to itself.")
307314 }
308315 else throw("Strict value is not equal to itself.")
309316 }
310317
311318
312-@Verifier(as)
313-func at () = {
314- let au = {
315- let w = v()
316- if ($isInstanceOf(w, "ByteVector"))
319+@Verifier(at)
320+func au () = {
321+ let av = {
322+ let x = w()
323+ if ($isInstanceOf(x, "ByteVector"))
317324 then {
318- let E = w
319- E
325+ let F = x
326+ F
320327 }
321- else if ($isInstanceOf(w, "Unit"))
322- then as.senderPublicKey
328+ else if ($isInstanceOf(x, "Unit"))
329+ then at.senderPublicKey
323330 else throw("Match error")
324331 }
325- sigVerify(as.bodyBytes, as.proofs[0], au)
332+ sigVerify(at.bodyBytes, at.proofs[0], av)
326333 }
327334

github/deemru/w8io/026f985 
115.53 ms