tx · 9LA7qr8ZwkVPtVgErL9XCej1ZuCqeWCi6btZbdQZHBVY

3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu:  -0.01600000 Waves

2022.06.08 18:49 [2087595] smart account 3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu > SELF 0.00000000 Waves

{ "type": 13, "id": "9LA7qr8ZwkVPtVgErL9XCej1ZuCqeWCi6btZbdQZHBVY", "fee": 1600000, "feeAssetId": null, "timestamp": 1654703360582, "version": 1, "sender": "3Muw1aRbeKgLqAS264AakECyQAvDsnweHLu", "senderPublicKey": "668WwQVaWxezbvLEK3FccCSTbjst4zYAJDPrfLFRj9b9", "proofs": [ "4hsgM3Akmx741dLPuQugqLdgTq8v83VbxLGFrPzsAjZTMwZPij8ach5zNkGFsAXPmwnhAro6KGhH2fZB4T7aFkcL" ], "script": "base64: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AAAAEnBlbmRpbmdXaXRoZHJhd2FscwUAAAAQd2l0aGRyYXdhbEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAG2tleU1hcHBpbmdzVXNlclRvV2l0aGRyYXdhbAAAAAMFAAAAC2Jhc2VBc3NldElkBQAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAABB3aXRoZHJhd2FsQW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAEWV4ZWN1dGVHZXRSZXF1ZXN0AAAAAwAAAAdhc3NldElkAAAAC3VzZXJBZGRyZXNzAAAACnN1Ym1pdFR4SWQEAAAAEHdpdGhkcmF3YWxBbW91bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAG2tleU1hcHBpbmdzVXNlclRvV2l0aGRyYXdhbAAAAAMFAAAAB2Fzc2V0SWQFAAAAC3VzZXJBZGRyZXNzBQAAAApzdWJtaXRUeElkAAAAAAAAAAAABAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQgAAAAAQkBAAAACmtleUNyZWF0ZWQAAAABBQAAAAdhc3NldElkBwYJAQAAAAh0aHJvd0VycgAAAAECAAAAKGFzc2V0IG11c3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgY29udHJhY3QJAARMAAAAAgMJAABmAAAAAgUAAAAQd2l0aGRyYXdhbEFtb3VudAAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAI25vIGNvcnJlc3BvbmRpbmcgd2l0aGRyYXdhbCByZXF1ZXN0BQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzBAAAABJwZW5kaW5nV2l0aGRyYXdhbHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkBAAAAFWtleVBlbmRpbmdXaXRoZHJhd2FscwAAAAEFAAAAB2Fzc2V0SWQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALdXNlckFkZHJlc3MFAAAAEHdpdGhkcmF3YWxBbW91bnQJAAJZAAAAAQUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAba2V5TWFwcGluZ3NVc2VyVG9XaXRoZHJhd2FsAAAAAwUAAAAHYXNzZXRJZAUAAAALdXNlckFkZHJlc3MFAAAACnN1Ym1pdFR4SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVrZXlQZW5kaW5nV2l0aGRyYXdhbHMAAAABBQAAAAdhc3NldElkCQAAZQAAAAIFAAAAEnBlbmRpbmdXaXRoZHJhd2FscwUAAAAQd2l0aGRyYXdhbEFtb3VudAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1yZWdpc3RlckFzc2V0AAAABgAAAAdhc3NldElkAAAABmxwTmFtZQAAAA1scERlc2NyaXB0aW9uAAAABmxwTG9nbwAAAA1kZWxheUluQmxvY2tzAAAADHByb3h5QWRkcmVzcwQAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkJAARMAAAAAgMJAABnAAAAAgUAAAANZGVsYXlJbkJsb2NrcwAAAAAAAAAAAAYJAQAAAAh0aHJvd0VycgAAAAECAAAAFWludmFsaWQgZGVsYXlJbkJsb2NrcwkABEwAAAACAwkBAAAAAiE9AAAAAgkABCYAAAABBQAAAAxwcm94eUFkZHJlc3MFAAAABHVuaXQGCQEAAAAIdGhyb3dFcnIAAAABAgAAABRpbnZhbGlkIHByb3h5QWRkcmVzcwkABEwAAAACAwkAAAAAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIAAAAAEJAQAAAAprZXlDcmVhdGVkAAAAAQUAAAAHYXNzZXRJZAcHBgkBAAAACHRocm93RXJyAAAAAQIAAAAYYXNzZXQgYWxyZWFkeSByZWdpc3RlcmVkBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzBAAAAAhkZWNpbWFscwgJAQAAAAV2YWx1ZQAA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a2V5Q3JlYXRlZAAAAAEFAAAAB2Fzc2V0SWQHBgkBAAAACHRocm93RXJyAAAAAQIAAAA5YXR0YWNoZWQgcGF5bWVudCBhc3NldCBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGNvbnRyYWN0CQAETAAAAAIDCQEAAAACIT0AAAACBQAAABJwZW5kaW5nV2l0aGRyYXdhbHMAAAAAAAAAAAAGCQEAAAAIdGhyb3dFcnIAAAABAgAAACp6ZXJvIHBlbmRpbmdXaXRoZHJhd2Fscywgbm90aGluZyB0byB0b3AgdXAJAARMAAAAAgMJAABnAAAAAgUAAAAScGVuZGluZ1dpdGhkcmF3YWxzBQAAAAZhbW91bnQGAgAAAD5hbW91bnQgdG8gdG9wIHVwIG11c3QgYmUgbGVzcyBvciBlcXVhbCB0aGFuIHBlbmRpbmdXaXRoZHJhd2FscwUAAAADbmlsAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWtleVBlbmRpbmdXaXRoZHJhd2FscwAAAAEFAAAAB2Fzc2V0SWQJAABlAAAAAgUAAAAScGVuZGluZ1dpdGhkcmF3YWxzBQAAAAZhbW91bnQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAGc2V0VFZMAAAAAgAAAAdhc3NldElkAAAABm5ld1RWTAQAAAALY2hlY2tDYWxsZXIJAQAAABBtdXN0UHJveHlBZGRyZXNzAAAAAgUAAAABaQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAGa2V5VFZMAAAAAQUAAAAHYXNzZXRJZAUAAAAGbmV3VFZMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANa2V5VFZMSGlzdG9yeQAAAAIFAAAAB2Fzc2V0SWQFAAAABmhlaWdodAUAAAAGbmV3VFZMBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAQAAAAh0aHJvd0VycgAAAAECAAAAEm5vIHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAFaGFzUE0FAAAABWhhc1BNBAAAAAdjaGVja1BNAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAV2YWx1ZQAAAAEFAAAAAnBtBgkBAAAACHRocm93RXJyAAAAAQIAAAAbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAD3RhcmdldFB1YmxpY0tleQQAAAAHJG1hdGNoMAkBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJwawUAAAAHJG1hdGNoMAUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA90YXJnZXRQdWJsaWNLZXmu21fz", "chainId": 84, "height": 2087595, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DXU1Wep861RcHzPLEFFrxaLi2q8fmXH4sEZCByogS1cg Next: J78Pt3YfBwHAVf6ptMvBLvzAyznFXL4h1rHqAdNS74Dh Diff:
OldNewDifferences
3737 func p (g) = makeString(["%s%s", "proxyAddress", g], a)
3838
3939
40-func q () = makeString(["%s", "assetsStoreContract"], a)
40+func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
4141
4242
43-func r () = {
44- let s = getString(d())
45- if ($isInstanceOf(s, "String"))
43+func t () = makeString(["%s", "assetsStoreContract"], a)
44+
45+
46+func u () = {
47+ let v = getString(d())
48+ if ($isInstanceOf(v, "String"))
4649 then {
47- let t = s
48- fromBase58String(t)
50+ let w = v
51+ fromBase58String(w)
4952 }
50- else if ($isInstanceOf(s, "Unit"))
53+ else if ($isInstanceOf(v, "Unit"))
5154 then unit
5255 else throw("Match error")
5356 }
5457
5558
56-func u () = {
57- let s = getString(e())
58- if ($isInstanceOf(s, "String"))
59+func x () = {
60+ let v = getString(e())
61+ if ($isInstanceOf(v, "String"))
5962 then {
60- let t = s
61- fromBase58String(t)
63+ let w = v
64+ fromBase58String(w)
6265 }
63- else if ($isInstanceOf(s, "Unit"))
66+ else if ($isInstanceOf(v, "Unit"))
6467 then unit
6568 else throw("Match error")
6669 }
6770
6871
69-func v (w) = throw((c + w))
72+func y (z) = throw((c + z))
7073
7174
72-func x (y) = {
73- let z = v("permission denied")
74- let s = r()
75- if ($isInstanceOf(s, "ByteVector"))
75+func A (B) = {
76+ let C = y("permission denied")
77+ let v = u()
78+ if ($isInstanceOf(v, "ByteVector"))
7679 then {
77- let A = s
78- if ((y.callerPublicKey == A))
80+ let D = v
81+ if ((B.callerPublicKey == D))
7982 then true
80- else z
83+ else C
8184 }
82- else if ($isInstanceOf(s, "Unit"))
83- then if ((y.caller == this))
85+ else if ($isInstanceOf(v, "Unit"))
86+ then if ((B.caller == this))
8487 then true
85- else z
88+ else C
8689 else throw("Match error")
8790 }
8891
8992
90-func B () = addressFromStringValue(value(getString(q())))
93+func E () = addressFromStringValue(value(getString(t())))
9194
9295
93-func C (y,g) = {
94- let D = (toString(y.caller) == valueOrElse(getString(p(g)), b))
95- if (D)
96+func F (B,g) = {
97+ let G = (toString(B.caller) == valueOrElse(getString(p(g)), b))
98+ if (G)
9699 then true
97100 else {
98- let E = x(y)
99- if ((E == E))
101+ let H = A(B)
102+ if ((H == H))
100103 then true
101104 else throw("Strict value is not equal to itself.")
102105 }
103106 }
104107
105108
106-@Callable(y)
107-func constructor (B) = {
108- let E = x(y)
109- if ((E == E))
110- then [StringEntry(q(), B)]
109+@Callable(B)
110+func constructor (E) = {
111+ let H = A(B)
112+ if ((H == H))
113+ then [StringEntry(t(), E)]
111114 else throw("Strict value is not equal to itself.")
112115 }
113116
114117
115118
116-@Callable(y)
117-func put () = nil
119+@Callable(B)
120+func put () = {
121+ let I = value(B.payments[0])
122+ let J = value(I.assetId)
123+ let g = toBase58String(J)
124+ let K = [if ((size(B.payments) == 1))
125+ then true
126+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
127+ then true
128+ else y("attached payment asset must be registered in the contract"), if ((I.amount > 0))
129+ then true
130+ else y("positive amount required")]
131+ if ((K == K))
132+ then {
133+ let L = valueOrElse(getInteger(f(g)), 0)
134+ let o = value(getString(m(g)))
135+ let M = value(assetInfo(fromBase58String(g)))
136+ let N = if ((L > 0))
137+ then ((I.amount * M.quantity) / L)
138+ else I.amount
139+[Reissue(M.id, N, true), ScriptTransfer(B.caller, N, M.id)]
140+ }
141+ else throw("Strict value is not equal to itself.")
142+ }
118143
119144
120145
121-@Callable(y)
122-func submitGetRequest () = nil
146+@Callable(B)
147+func submitGetRequest () = {
148+ let I = value(B.payments[0])
149+ let O = value(I.assetId)
150+ let o = toBase58String(O)
151+ let r = toString(B.caller)
152+ let P = value(getString(n(o)))
153+ let Q = I.amount
154+ let K = [if ((size(B.payments) == 1))
155+ then true
156+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(P)), false))
157+ then true
158+ else y("attached payment asset must be registered in the contract"), if ((Q > 0))
159+ then true
160+ else y("positive amount to withdrawal required")]
161+ if ((K == K))
162+ then {
163+ let R = valueOrElse(getInteger(j(P)), 0)
164+ let L = valueOrElse(getInteger(f(P)), 0)
165+ let M = value(assetInfo(O))
166+ let S = M.decimals
167+ let T = ((Q * L) / M.quantity)
168+[Burn(O, Q), IntegerEntry(j(P), (R + T)), IntegerEntry(q(P, r, toBase58String(B.transactionId)), T)]
169+ }
170+ else throw("Strict value is not equal to itself.")
171+ }
123172
124173
125174
126-@Callable(y)
127-func executeGetRequest (g,F,G) = nil
175+@Callable(B)
176+func executeGetRequest (g,r,U) = {
177+ let T = valueOrElse(getInteger(q(g, r, U)), 0)
178+ let K = [if (valueOrElse(getBoolean(l(g)), false))
179+ then true
180+ else y("asset must be registered in the contract"), if ((T > 0))
181+ then true
182+ else y("no corresponding withdrawal request")]
183+ if ((K == K))
184+ then {
185+ let R = valueOrElse(getInteger(j(g)), 0)
186+[ScriptTransfer(addressFromStringValue(r), T, fromBase58String(g)), DeleteEntry(q(g, r, U)), IntegerEntry(j(g), (R - T))]
187+ }
188+ else throw("Strict value is not equal to itself.")
189+ }
128190
129191
130192
131-@Callable(y)
132-func registerAsset (g,H,I,J,K,L) = {
133- let M = [x(y), if ((K >= 0))
193+@Callable(B)
194+func registerAsset (g,V,W,X,Y,Z) = {
195+ let K = [A(B), if ((Y >= 0))
134196 then true
135- else v("invalid delayInBlocks"), if ((addressFromString(L) != unit))
197+ else y("invalid delayInBlocks"), if ((addressFromString(Z) != unit))
136198 then true
137- else v("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
199+ else y("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
138200 then true
139- else v("asset already registered")]
140- if ((M == M))
201+ else y("asset already registered")]
202+ if ((K == K))
141203 then {
142- let N = value(assetInfo(fromBase58String(g))).decimals
143- let O = Issue(H, I, 1, N, true)
144- let P = calculateAssetId(O)
145- let o = toBase58String(P)
146- let Q = invoke(B(), "createOrUpdate", [o, J, false], nil)
147- if ((Q == Q))
204+ let S = value(assetInfo(fromBase58String(g))).decimals
205+ let aa = Issue(V, W, 1, S, true)
206+ let O = calculateAssetId(aa)
207+ let o = toBase58String(O)
208+ let ab = invoke(E(), "createOrUpdate", [o, X, false], nil)
209+ if ((ab == ab))
148210 then {
149- let R = invoke(B(), "addLabel", [o, "DEFI"], nil)
150- if ((R == R))
151- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), K), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), L), O, Burn(P, 1)]
211+ let ac = invoke(E(), "addLabel", [o, "DEFI"], nil)
212+ if ((ac == ac))
213+ then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Y), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), Z), aa, Burn(O, 1)]
152214 else throw("Strict value is not equal to itself.")
153215 }
154216 else throw("Strict value is not equal to itself.")
158220
159221
160222
161-@Callable(y)
223+@Callable(B)
162224 func topUpBalance () = {
163- let S = valueOrErrorMessage(y.payments[0], (c + "payment must be attached"))
164- let g = toBase58String(value(S.assetId))
165- let T = S.amount
166- let U = valueOrElse(getInteger(j(g)), 0)
167- let M = [C(y, g), if ((size(y.payments) == 1))
225+ let I = valueOrErrorMessage(B.payments[0], (c + "payment must be attached"))
226+ let g = toBase58String(value(I.assetId))
227+ let ad = I.amount
228+ let R = valueOrElse(getInteger(j(g)), 0)
229+ let K = [F(B, g), if ((size(B.payments) == 1))
168230 then true
169- else v("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
231+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
170232 then true
171- else v("attached payment asset must be registered in the contract"), if ((U != 0))
233+ else y("attached payment asset must be registered in the contract"), if ((R != 0))
172234 then true
173- else v("zero pendingWithdrawals, nothing to top up"), if ((U >= T))
235+ else y("zero pendingWithdrawals, nothing to top up"), if ((R >= ad))
174236 then true
175237 else "amount to top up must be less or equal than pendingWithdrawals"]
176- if ((M == M))
177- then [IntegerEntry(j(g), (U - T))]
238+ if ((K == K))
239+ then [IntegerEntry(j(g), (R - ad))]
178240 else throw("Strict value is not equal to itself.")
179241 }
180242
181243
182244
183-@Callable(y)
184-func setTVL (g,V) = {
185- let E = C(y, g)
186- if ((E == E))
187- then [IntegerEntry(f(g), V), IntegerEntry(h(g, height), V)]
245+@Callable(B)
246+func setTVL (g,ae) = {
247+ let H = F(B, g)
248+ if ((H == H))
249+ then [IntegerEntry(f(g), ae), IntegerEntry(h(g, height), ae)]
188250 else throw("Strict value is not equal to itself.")
189251 }
190252
191253
192254
193-@Callable(y)
194-func setManager (W) = {
195- let E = x(y)
196- if ((E == E))
255+@Callable(B)
256+func setManager (af) = {
257+ let H = A(B)
258+ if ((H == H))
197259 then {
198- let X = fromBase58String(W)
199- if ((X == X))
200- then [StringEntry(e(), W)]
260+ let ag = fromBase58String(af)
261+ if ((ag == ag))
262+ then [StringEntry(e(), af)]
201263 else throw("Strict value is not equal to itself.")
202264 }
203265 else throw("Strict value is not equal to itself.")
205267
206268
207269
208-@Callable(y)
270+@Callable(B)
209271 func confirmManager () = {
210- let Y = u()
211- let Z = if (isDefined(Y))
272+ let ah = x()
273+ let ai = if (isDefined(ah))
212274 then true
213- else v("no pending manager")
214- if ((Z == Z))
275+ else y("no pending manager")
276+ if ((ai == ai))
215277 then {
216- let aa = if ((y.callerPublicKey == value(Y)))
278+ let aj = if ((B.callerPublicKey == value(ah)))
217279 then true
218- else v("you are not pending manager")
219- if ((aa == aa))
220- then [StringEntry(d(), toBase58String(value(Y))), DeleteEntry(e())]
280+ else y("you are not pending manager")
281+ if ((aj == aj))
282+ then [StringEntry(d(), toBase58String(value(ah))), DeleteEntry(e())]
221283 else throw("Strict value is not equal to itself.")
222284 }
223285 else throw("Strict value is not equal to itself.")
224286 }
225287
226288
227-@Verifier(ab)
228-func ac () = {
229- let ad = {
230- let s = r()
231- if ($isInstanceOf(s, "ByteVector"))
289+@Verifier(ak)
290+func al () = {
291+ let am = {
292+ let v = u()
293+ if ($isInstanceOf(v, "ByteVector"))
232294 then {
233- let A = s
234- A
295+ let D = v
296+ D
235297 }
236- else if ($isInstanceOf(s, "Unit"))
237- then ab.senderPublicKey
298+ else if ($isInstanceOf(v, "Unit"))
299+ then ak.senderPublicKey
238300 else throw("Match error")
239301 }
240- sigVerify(ab.bodyBytes, ab.proofs[0], ad)
302+ sigVerify(ak.bodyBytes, ak.proofs[0], am)
241303 }
242304
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
2222 func j (g) = makeString(["%s%s", "pendingWithdrawals", g], a)
2323
2424
2525 func k (g) = makeString(["%s%s", "delayInBlocks", g], a)
2626
2727
2828 func l (g) = makeString(["%s%s", "created", g], a)
2929
3030
3131 func m (g) = makeString(["%s%s", "assetIdToLPId", g], a)
3232
3333
3434 func n (o) = makeString(["%s%s", "lpIdToAssetId", o], a)
3535
3636
3737 func p (g) = makeString(["%s%s", "proxyAddress", g], a)
3838
3939
40-func q () = makeString(["%s", "assetsStoreContract"], a)
40+func q (g,r,s) = makeString(["%s%s%s%s", "userWithdrawalAmount", g, r, s], a)
4141
4242
43-func r () = {
44- let s = getString(d())
45- if ($isInstanceOf(s, "String"))
43+func t () = makeString(["%s", "assetsStoreContract"], a)
44+
45+
46+func u () = {
47+ let v = getString(d())
48+ if ($isInstanceOf(v, "String"))
4649 then {
47- let t = s
48- fromBase58String(t)
50+ let w = v
51+ fromBase58String(w)
4952 }
50- else if ($isInstanceOf(s, "Unit"))
53+ else if ($isInstanceOf(v, "Unit"))
5154 then unit
5255 else throw("Match error")
5356 }
5457
5558
56-func u () = {
57- let s = getString(e())
58- if ($isInstanceOf(s, "String"))
59+func x () = {
60+ let v = getString(e())
61+ if ($isInstanceOf(v, "String"))
5962 then {
60- let t = s
61- fromBase58String(t)
63+ let w = v
64+ fromBase58String(w)
6265 }
63- else if ($isInstanceOf(s, "Unit"))
66+ else if ($isInstanceOf(v, "Unit"))
6467 then unit
6568 else throw("Match error")
6669 }
6770
6871
69-func v (w) = throw((c + w))
72+func y (z) = throw((c + z))
7073
7174
72-func x (y) = {
73- let z = v("permission denied")
74- let s = r()
75- if ($isInstanceOf(s, "ByteVector"))
75+func A (B) = {
76+ let C = y("permission denied")
77+ let v = u()
78+ if ($isInstanceOf(v, "ByteVector"))
7679 then {
77- let A = s
78- if ((y.callerPublicKey == A))
80+ let D = v
81+ if ((B.callerPublicKey == D))
7982 then true
80- else z
83+ else C
8184 }
82- else if ($isInstanceOf(s, "Unit"))
83- then if ((y.caller == this))
85+ else if ($isInstanceOf(v, "Unit"))
86+ then if ((B.caller == this))
8487 then true
85- else z
88+ else C
8689 else throw("Match error")
8790 }
8891
8992
90-func B () = addressFromStringValue(value(getString(q())))
93+func E () = addressFromStringValue(value(getString(t())))
9194
9295
93-func C (y,g) = {
94- let D = (toString(y.caller) == valueOrElse(getString(p(g)), b))
95- if (D)
96+func F (B,g) = {
97+ let G = (toString(B.caller) == valueOrElse(getString(p(g)), b))
98+ if (G)
9699 then true
97100 else {
98- let E = x(y)
99- if ((E == E))
101+ let H = A(B)
102+ if ((H == H))
100103 then true
101104 else throw("Strict value is not equal to itself.")
102105 }
103106 }
104107
105108
106-@Callable(y)
107-func constructor (B) = {
108- let E = x(y)
109- if ((E == E))
110- then [StringEntry(q(), B)]
109+@Callable(B)
110+func constructor (E) = {
111+ let H = A(B)
112+ if ((H == H))
113+ then [StringEntry(t(), E)]
111114 else throw("Strict value is not equal to itself.")
112115 }
113116
114117
115118
116-@Callable(y)
117-func put () = nil
119+@Callable(B)
120+func put () = {
121+ let I = value(B.payments[0])
122+ let J = value(I.assetId)
123+ let g = toBase58String(J)
124+ let K = [if ((size(B.payments) == 1))
125+ then true
126+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
127+ then true
128+ else y("attached payment asset must be registered in the contract"), if ((I.amount > 0))
129+ then true
130+ else y("positive amount required")]
131+ if ((K == K))
132+ then {
133+ let L = valueOrElse(getInteger(f(g)), 0)
134+ let o = value(getString(m(g)))
135+ let M = value(assetInfo(fromBase58String(g)))
136+ let N = if ((L > 0))
137+ then ((I.amount * M.quantity) / L)
138+ else I.amount
139+[Reissue(M.id, N, true), ScriptTransfer(B.caller, N, M.id)]
140+ }
141+ else throw("Strict value is not equal to itself.")
142+ }
118143
119144
120145
121-@Callable(y)
122-func submitGetRequest () = nil
146+@Callable(B)
147+func submitGetRequest () = {
148+ let I = value(B.payments[0])
149+ let O = value(I.assetId)
150+ let o = toBase58String(O)
151+ let r = toString(B.caller)
152+ let P = value(getString(n(o)))
153+ let Q = I.amount
154+ let K = [if ((size(B.payments) == 1))
155+ then true
156+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(P)), false))
157+ then true
158+ else y("attached payment asset must be registered in the contract"), if ((Q > 0))
159+ then true
160+ else y("positive amount to withdrawal required")]
161+ if ((K == K))
162+ then {
163+ let R = valueOrElse(getInteger(j(P)), 0)
164+ let L = valueOrElse(getInteger(f(P)), 0)
165+ let M = value(assetInfo(O))
166+ let S = M.decimals
167+ let T = ((Q * L) / M.quantity)
168+[Burn(O, Q), IntegerEntry(j(P), (R + T)), IntegerEntry(q(P, r, toBase58String(B.transactionId)), T)]
169+ }
170+ else throw("Strict value is not equal to itself.")
171+ }
123172
124173
125174
126-@Callable(y)
127-func executeGetRequest (g,F,G) = nil
175+@Callable(B)
176+func executeGetRequest (g,r,U) = {
177+ let T = valueOrElse(getInteger(q(g, r, U)), 0)
178+ let K = [if (valueOrElse(getBoolean(l(g)), false))
179+ then true
180+ else y("asset must be registered in the contract"), if ((T > 0))
181+ then true
182+ else y("no corresponding withdrawal request")]
183+ if ((K == K))
184+ then {
185+ let R = valueOrElse(getInteger(j(g)), 0)
186+[ScriptTransfer(addressFromStringValue(r), T, fromBase58String(g)), DeleteEntry(q(g, r, U)), IntegerEntry(j(g), (R - T))]
187+ }
188+ else throw("Strict value is not equal to itself.")
189+ }
128190
129191
130192
131-@Callable(y)
132-func registerAsset (g,H,I,J,K,L) = {
133- let M = [x(y), if ((K >= 0))
193+@Callable(B)
194+func registerAsset (g,V,W,X,Y,Z) = {
195+ let K = [A(B), if ((Y >= 0))
134196 then true
135- else v("invalid delayInBlocks"), if ((addressFromString(L) != unit))
197+ else y("invalid delayInBlocks"), if ((addressFromString(Z) != unit))
136198 then true
137- else v("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
199+ else y("invalid proxyAddress"), if ((valueOrElse(getBoolean(l(g)), false) == false))
138200 then true
139- else v("asset already registered")]
140- if ((M == M))
201+ else y("asset already registered")]
202+ if ((K == K))
141203 then {
142- let N = value(assetInfo(fromBase58String(g))).decimals
143- let O = Issue(H, I, 1, N, true)
144- let P = calculateAssetId(O)
145- let o = toBase58String(P)
146- let Q = invoke(B(), "createOrUpdate", [o, J, false], nil)
147- if ((Q == Q))
204+ let S = value(assetInfo(fromBase58String(g))).decimals
205+ let aa = Issue(V, W, 1, S, true)
206+ let O = calculateAssetId(aa)
207+ let o = toBase58String(O)
208+ let ab = invoke(E(), "createOrUpdate", [o, X, false], nil)
209+ if ((ab == ab))
148210 then {
149- let R = invoke(B(), "addLabel", [o, "DEFI"], nil)
150- if ((R == R))
151- then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), K), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), L), O, Burn(P, 1)]
211+ let ac = invoke(E(), "addLabel", [o, "DEFI"], nil)
212+ if ((ac == ac))
213+ then [BooleanEntry(l(g), true), IntegerEntry(f(g), 0), IntegerEntry(h(g, height), 0), IntegerEntry(k(g), Y), StringEntry(n(o), g), StringEntry(m(g), o), StringEntry(p(g), Z), aa, Burn(O, 1)]
152214 else throw("Strict value is not equal to itself.")
153215 }
154216 else throw("Strict value is not equal to itself.")
155217 }
156218 else throw("Strict value is not equal to itself.")
157219 }
158220
159221
160222
161-@Callable(y)
223+@Callable(B)
162224 func topUpBalance () = {
163- let S = valueOrErrorMessage(y.payments[0], (c + "payment must be attached"))
164- let g = toBase58String(value(S.assetId))
165- let T = S.amount
166- let U = valueOrElse(getInteger(j(g)), 0)
167- let M = [C(y, g), if ((size(y.payments) == 1))
225+ let I = valueOrErrorMessage(B.payments[0], (c + "payment must be attached"))
226+ let g = toBase58String(value(I.assetId))
227+ let ad = I.amount
228+ let R = valueOrElse(getInteger(j(g)), 0)
229+ let K = [F(B, g), if ((size(B.payments) == 1))
168230 then true
169- else v("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
231+ else y("only one payment must be attached"), if (valueOrElse(getBoolean(l(g)), false))
170232 then true
171- else v("attached payment asset must be registered in the contract"), if ((U != 0))
233+ else y("attached payment asset must be registered in the contract"), if ((R != 0))
172234 then true
173- else v("zero pendingWithdrawals, nothing to top up"), if ((U >= T))
235+ else y("zero pendingWithdrawals, nothing to top up"), if ((R >= ad))
174236 then true
175237 else "amount to top up must be less or equal than pendingWithdrawals"]
176- if ((M == M))
177- then [IntegerEntry(j(g), (U - T))]
238+ if ((K == K))
239+ then [IntegerEntry(j(g), (R - ad))]
178240 else throw("Strict value is not equal to itself.")
179241 }
180242
181243
182244
183-@Callable(y)
184-func setTVL (g,V) = {
185- let E = C(y, g)
186- if ((E == E))
187- then [IntegerEntry(f(g), V), IntegerEntry(h(g, height), V)]
245+@Callable(B)
246+func setTVL (g,ae) = {
247+ let H = F(B, g)
248+ if ((H == H))
249+ then [IntegerEntry(f(g), ae), IntegerEntry(h(g, height), ae)]
188250 else throw("Strict value is not equal to itself.")
189251 }
190252
191253
192254
193-@Callable(y)
194-func setManager (W) = {
195- let E = x(y)
196- if ((E == E))
255+@Callable(B)
256+func setManager (af) = {
257+ let H = A(B)
258+ if ((H == H))
197259 then {
198- let X = fromBase58String(W)
199- if ((X == X))
200- then [StringEntry(e(), W)]
260+ let ag = fromBase58String(af)
261+ if ((ag == ag))
262+ then [StringEntry(e(), af)]
201263 else throw("Strict value is not equal to itself.")
202264 }
203265 else throw("Strict value is not equal to itself.")
204266 }
205267
206268
207269
208-@Callable(y)
270+@Callable(B)
209271 func confirmManager () = {
210- let Y = u()
211- let Z = if (isDefined(Y))
272+ let ah = x()
273+ let ai = if (isDefined(ah))
212274 then true
213- else v("no pending manager")
214- if ((Z == Z))
275+ else y("no pending manager")
276+ if ((ai == ai))
215277 then {
216- let aa = if ((y.callerPublicKey == value(Y)))
278+ let aj = if ((B.callerPublicKey == value(ah)))
217279 then true
218- else v("you are not pending manager")
219- if ((aa == aa))
220- then [StringEntry(d(), toBase58String(value(Y))), DeleteEntry(e())]
280+ else y("you are not pending manager")
281+ if ((aj == aj))
282+ then [StringEntry(d(), toBase58String(value(ah))), DeleteEntry(e())]
221283 else throw("Strict value is not equal to itself.")
222284 }
223285 else throw("Strict value is not equal to itself.")
224286 }
225287
226288
227-@Verifier(ab)
228-func ac () = {
229- let ad = {
230- let s = r()
231- if ($isInstanceOf(s, "ByteVector"))
289+@Verifier(ak)
290+func al () = {
291+ let am = {
292+ let v = u()
293+ if ($isInstanceOf(v, "ByteVector"))
232294 then {
233- let A = s
234- A
295+ let D = v
296+ D
235297 }
236- else if ($isInstanceOf(s, "Unit"))
237- then ab.senderPublicKey
298+ else if ($isInstanceOf(v, "Unit"))
299+ then ak.senderPublicKey
238300 else throw("Match error")
239301 }
240- sigVerify(ab.bodyBytes, ab.proofs[0], ad)
302+ sigVerify(ak.bodyBytes, ak.proofs[0], am)
241303 }
242304

github/deemru/w8io/c3f4982 
72.98 ms