tx · 5bE1e6pyCcV6qwajQQFVHDqbxS6JoeJfTijoJXN6QqD3

3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU:  -0.03500000 Waves

2022.07.18 09:15 [2144818] smart account 3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU > SELF 0.00000000 Waves

{ "type": 13, "id": "5bE1e6pyCcV6qwajQQFVHDqbxS6JoeJfTijoJXN6QqD3", "fee": 3500000, "feeAssetId": null, "timestamp": 1658124991402, "version": 2, "chainId": 84, "sender": "3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU", "senderPublicKey": "GDio3pYFUMSWQ3yen7TJP79nTPaGuPbxjKixvKLuYS8E", "proofs": [ "4mZyiYcXqASeLRAfCngbKVcAE7xHkueuG9uHygsqbWyZs7cByNCtVddBGSzKadp9dNsJZ3jQpAh15g5JECcpB89S" ], "script": "base64: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AAAEAAAAD2tleVBvb2xVc2RuVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkblVzZGMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtVc2RjQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5OZ25uCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAFGtleVBvb2xVc2R0TWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2R0RXVybgkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAABBrZXlQb29sTmdubldhdmVzCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAAFd2F2ZXMEAAAAFGtleVBvb2xOZ25uTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xOZ25uRXVybgkBAAAAAmtwAAAAAgUAAAALTmdubkFzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAABBrZXlQb29sTWFpbldhdmVzCQEAAAACa3AAAAACBQAAAAtNYWluQXNzZXRJZAUAAAAFd2F2ZXMEAAAAD2tleVBvb2xNYWluRXVybgkBAAAAAmtwAAAAAgUAAAALTWFpbkFzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAABBrZXlQb29sRXVybldhdmVzCQEAAAACa3AAAAACBQAAAAtFdXJuQXNzZXRJZAUAAAAFd2F2ZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAEbWFpbgUAAAALTWFpbkFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAEdXNkbgUAAAALVXNkbkFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAEdXNkYwUAAAALVXNkY0Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAEdXNkdAUAAAALVXNkdEFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAEbmdubgUAAAALTmdubkFzc2V0SWQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAABmFXYXZlcwUAAAALYWNjZXB0V2F2ZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAB3JhdGVGZWUFAAAAEnBlcmNlbnRhZ2VSYXRlU3dhcAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAACYWMGCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAZzd2FwQWMHCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAZwb29sQWMHCQAETAAAAAIJ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", "height": 2144818, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GpLrkzDVqLTs19WLtLTSWpJcGq6yM8xENZDMXxpQ7nkZ Next: 46K1AkkPDqbzfm13R5x7PVNvAULx6Gd1HFi7cFLgK9gm Diff:
OldNewDifferences
129129 func S (T,U,m) = (((h + I(T, U)) + "_") + m)
130130
131131
132-func V (m,M) = {
132+func V (t) = {
133+ let q = t
134+ if ($isInstanceOf(q, "ByteVector"))
135+ then {
136+ let O = q
137+ value(assetInfo(O)).decimals
138+ }
139+ else 8
140+ }
141+
142+
143+func W (m,M) = {
133144 let q = getInteger(this, ((("STAKE_LP_" + m) + "_") + M))
134145 if ($isInstanceOf(q, "Int"))
135146 then {
140151 }
141152
142153
143-func W () = {
154+func X () = {
144155 let q = getString(this, "admin")
145156 if ($isInstanceOf(q, "String"))
146157 then {
151162 }
152163
153164
154-func X (Y,Z,aa) = if (if ((Y == H))
155- then (Z == "WAVES")
165+func Y (Z,aa,ab) = if (if ((Z == H))
166+ then (aa == "WAVES")
156167 else false)
157- then if (aa)
168+ then if (ab)
158169 then true
159170 else throw("The smart contract does not currently support Waves.")
160- else if ((Y == fromBase58String(Z)))
171+ else if ((Z == fromBase58String(aa)))
161172 then true
162173 else false
163174
164175
165-func ab (M,ac) = {
176+func ac (M,ad) = {
166177 let q = getInteger(this, M)
167178 if ($isInstanceOf(q, "Int"))
168179 then {
169180 let Q = q
170181 Q
171182 }
172- else if (ac)
183+ else if (ad)
173184 then (1 * i)
174185 else 1
175186 }
176187
177188
178189 @Callable(r)
179-func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = {
180- let am = I(af, F)
190+func constructor (ae,af,ag,ah,ai,aj,ak,al,am) = {
191+ let an = I(ag, F)
181192 if (if ((r.caller == this))
182193 then true
183- else (r.caller == W()))
184- then if ((valueOrElse(getInteger(this, am), 0) == 0))
194+ else (r.caller == X()))
195+ then if ((valueOrElse(getInteger(this, an), 0) == 0))
185196 then {
186- let an = I(ae, af)
187- let ao = I(ae, ag)
188- let ap = I(ae, ah)
189- let aq = I(ae, F)
190- let ar = I(ae, ad)
191- let as = I(ae, ai)
192- let at = I(ag, af)
193- let au = I(ag, ah)
194- let av = I(ag, F)
195- let aw = I(ag, ad)
196- let ax = I(ag, ai)
197- let ay = I(af, ah)
198- let az = I(af, ad)
199- let aA = I(af, ai)
200- let aB = I(ah, F)
201- let aC = I(ah, ad)
202- let aD = I(ah, ai)
203- let aE = I(ad, F)
204- let aF = I(ad, ai)
205- let aG = I(ai, F)
206-[StringEntry(a, ad), StringEntry(A, ae), StringEntry(C, ag), StringEntry(B, af), StringEntry(D, ah), BooleanEntry(G, al), IntegerEntry(g, aj), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, ak), IntegerEntry(an, 1), IntegerEntry(aq, 1), IntegerEntry(ao, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(at, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(az, 1), IntegerEntry(ay, 1), IntegerEntry(am, 1), IntegerEntry(aB, 1), IntegerEntry(aC, 1), IntegerEntry(aE, 1), IntegerEntry(aG, 1), IntegerEntry(aF, 1), IntegerEntry(aD, 1), IntegerEntry(ax, 1), IntegerEntry(as, 1), IntegerEntry(aA, 1), IntegerEntry(aw, 1), StringEntry(E, ai)]
197+ let ao = I(af, ag)
198+ let ap = I(af, ah)
199+ let aq = I(af, ai)
200+ let ar = I(af, F)
201+ let as = I(af, ae)
202+ let at = I(af, aj)
203+ let au = I(ah, ag)
204+ let av = I(ah, ai)
205+ let aw = I(ah, F)
206+ let ax = I(ah, ae)
207+ let ay = I(ah, aj)
208+ let az = I(ag, ai)
209+ let aA = I(ag, ae)
210+ let aB = I(ag, aj)
211+ let aC = I(ai, F)
212+ let aD = I(ai, ae)
213+ let aE = I(ai, aj)
214+ let aF = I(ae, F)
215+ let aG = I(ae, aj)
216+ let aH = I(aj, F)
217+[StringEntry(a, ae), StringEntry(A, af), StringEntry(C, ah), StringEntry(B, ag), StringEntry(D, ai), BooleanEntry(G, am), IntegerEntry(g, ak), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, al), IntegerEntry(ao, 1), IntegerEntry(ar, 1), IntegerEntry(ap, 1), IntegerEntry(aq, 1), IntegerEntry(as, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(aw, 1), IntegerEntry(aA, 1), IntegerEntry(az, 1), IntegerEntry(an, 1), IntegerEntry(aC, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aH, 1), IntegerEntry(aG, 1), IntegerEntry(aE, 1), IntegerEntry(ay, 1), IntegerEntry(at, 1), IntegerEntry(aB, 1), IntegerEntry(ax, 1), StringEntry(E, aj)]
207218 }
208219 else throw("Smart Contract has been started")
209220 else throw("Only the Admin itself can invoke this function")
212223
213224
214225 @Callable(r)
215-func activate (aH) = if (if ((r.caller == this))
226+func activate (aI) = if (if ((r.caller == this))
216227 then true
217- else (r.caller == W()))
218- then [BooleanEntry(u, aH)]
228+ else (r.caller == X()))
229+ then [BooleanEntry(u, aI)]
219230 else throw("Only the Admin itself can invoke this function")
220231
221232
222233
223234 @Callable(r)
224-func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
235+func maintenance (aJ,aK,aL) = if (if ((r.caller == this))
225236 then true
226- else (r.caller == W()))
227- then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
237+ else (r.caller == X()))
238+ then [BooleanEntry(v, aJ), BooleanEntry(w, aK), BooleanEntry(x, aL)]
228239 else throw("Only the Admin itself can invoke this function")
229240
230241
231242
232243 @Callable(r)
233-func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
244+func percentualRateFeeSwapEdit (aM) = if (if ((r.caller == this))
234245 then true
235- else (r.caller == W()))
236- then [IntegerEntry(g, aL)]
246+ else (r.caller == X()))
247+ then [IntegerEntry(g, aM)]
237248 else throw("Only the Admin itself can invoke this function")
238249
239250
240251
241252 @Callable(r)
242-func acceptWaves (aM) = if (if ((r.caller == this))
253+func acceptWaves (aN) = if (if ((r.caller == this))
243254 then true
244- else (r.caller == W()))
245- then [BooleanEntry(G, aM)]
255+ else (r.caller == X()))
256+ then [BooleanEntry(G, aN)]
246257 else throw("Only the Admin itself can invoke this function")
247258
248259
249260
250261 @Callable(r)
251-func blockDistribution (aN) = if (if ((r.caller == this))
262+func blockDistribution (aO) = if (if ((r.caller == this))
252263 then true
253- else (r.caller == W()))
254- then [IntegerEntry(y, aN)]
264+ else (r.caller == X()))
265+ then [IntegerEntry(y, aO)]
255266 else throw("Only the Admin itself can invoke this function")
256267
257268
259270 @Callable(r)
260271 func addAdmin (m) = if (if ((r.caller == this))
261272 then true
262- else (r.caller == W()))
273+ else (r.caller == X()))
263274 then [StringEntry("admin", m)]
264275 else throw("Only the Admin itself can invoke this function")
265276
266277
267278
268279 @Callable(r)
269-func lpAssetCreateForPairPool (J,K,aO,aP) = {
270- let aQ = if ((J == F))
280+func lpAssetCreateForPairPool (J,K,aP,aQ) = {
281+ let aR = if ((J == F))
271282 then F
272283 else s(fromBase58String(J))
273- let aR = if ((K == F))
284+ let aS = if ((K == F))
274285 then F
275286 else s(fromBase58String(K))
276- let aS = if (aP)
277- then aO
278- else ((aQ + "_") + aR)
287+ let aT = if (aQ)
288+ then aP
289+ else ((aR + "_") + aS)
279290 let M = L(I(J, K))
280291 if (if ((r.caller == this))
281292 then true
282- else (r.caller == W()))
293+ else (r.caller == X()))
283294 then if ((M != false))
284295 then {
285- let aT = Issue(aS, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
286- let aU = calculateAssetId(aT)
287-[StringEntry((b + I(J, K)), toBase58String(aU)), aT]
296+ let aU = Issue(aT, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
297+ let aV = calculateAssetId(aU)
298+[StringEntry((b + I(J, K)), toBase58String(aV)), aU]
288299 }
289300 else throw("Invalid Pool Key. Try inverting the assets")
290301 else throw("Only the Admin itself can invoke this function")
293304
294305
295306 @Callable(r)
296-func deposit (aV,T,U) = {
297- let aW = getBooleanValue(this, u)
298- let aX = getBooleanValue(this, x)
299- let aY = getStringValue(this, a)
300- let aZ = if (aV)
307+func deposit (aW,T,U) = {
308+ let aX = getBooleanValue(this, u)
309+ let aY = getBooleanValue(this, x)
310+ let aZ = getStringValue(this, a)
311+ let ba = if (aW)
301312 then getStringValue(this, (b + I(T, U)))
302- else aY
303- if (aW)
304- then if (!(aX))
305- then if ((r.payments[0].assetId != fromBase58String(aZ)))
306- then throw((("Invalid asset! Kindly Deposit Only " + aY) + " or valid asset lp"))
307- else if (!(aV))
313+ else aZ
314+ if (aX)
315+ then if (!(aY))
316+ then if ((r.payments[0].assetId != fromBase58String(ba)))
317+ then throw((("Invalid asset! Kindly Deposit Only " + aZ) + " or valid asset lp"))
318+ else if (!(aW))
308319 then {
309- let ba = toBase58String(r.caller.bytes)
310- let bb = {
311- let q = getInteger(this, ba)
320+ let bb = toBase58String(r.caller.bytes)
321+ let bc = {
322+ let q = getInteger(this, bb)
312323 if ($isInstanceOf(q, "Int"))
313324 then {
314325 let Q = q
316327 }
317328 else 0
318329 }
319- let bc = if ((bb == 0))
330+ let bd = if ((bc == 0))
320331 then height
321- else valueOrElse(getIntegerValue(this, (h + ba)), height)
322- let bd = (bb + r.payments[0].amount)
323- let be = IntegerEntry(ba, bd)
324- let bf = IntegerEntry((h + ba), bc)
325- let bg = {
332+ else valueOrElse(getIntegerValue(this, (h + bb)), height)
333+ let be = (bc + r.payments[0].amount)
334+ let bf = IntegerEntry(bb, be)
335+ let bg = IntegerEntry((h + bb), bd)
336+ let bh = {
326337 let q = getInteger(this, "Total_Tokens_Locked:")
327338 if ($isInstanceOf(q, "Int"))
328339 then {
331342 }
332343 else 0
333344 }
334- let bh = (bg + r.payments[0].amount)
335- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
336-[be, bf, bi]
345+ let bi = (bh + r.payments[0].amount)
346+ let bj = IntegerEntry("Total_Tokens_Locked:", bi)
347+[bf, bg, bj]
337348 }
338349 else {
339- let bj = I(T, U)
340- let M = L(bj)
350+ let bk = I(T, U)
351+ let M = L(bk)
341352 if ((M != false))
342353 then {
343- let ba = toBase58String(r.caller.bytes)
344- let bb = {
345- let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bj))
354+ let bb = toBase58String(r.caller.bytes)
355+ let bc = {
356+ let q = getInteger(this, ((("STAKE_LP_" + bb) + "_") + bk))
346357 if ($isInstanceOf(q, "Int"))
347358 then {
348359 let Q = q
350361 }
351362 else 0
352363 }
353- let bc = if ((bb == 0))
364+ let bd = if ((bc == 0))
354365 then height
355- else valueOrElse(getIntegerValue(this, ((((h + "_") + ba) + "_") + bj)), height)
356- let bd = (bb + r.payments[0].amount)
357- let be = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bj), bd)
358- let bf = IntegerEntry(((((h + "_") + ba) + "_") + bj), height)
359- let bg = {
360- let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bj))
366+ else valueOrElse(getIntegerValue(this, ((((h + "_") + bb) + "_") + bk)), height)
367+ let be = (bc + r.payments[0].amount)
368+ let bf = IntegerEntry(((("STAKE_LP_" + bb) + "_") + bk), be)
369+ let bg = IntegerEntry(((((h + "_") + bb) + "_") + bk), height)
370+ let bh = {
371+ let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bk))
361372 if ($isInstanceOf(q, "Int"))
362373 then {
363374 let Q = q
365376 }
366377 else 0
367378 }
368- let bh = (bg + r.payments[0].amount)
369- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
370-[be, bf, bi]
379+ let bi = (bh + r.payments[0].amount)
380+ let bj = IntegerEntry(("Total_Tokens_LP_Locked_" + bk), bi)
381+[bf, bg, bj]
371382 }
372383 else throw("Invalid Pool key.")
373384 }
378389
379390
380391 @Callable(r)
381-func remove (aV,T,U,bk) = {
382- let aW = getBooleanValue(this, u)
383- let aX = getBooleanValue(this, x)
384- let bl = r.payments[0]
385- let aY = fromBase58String(getStringValue(this, a))
386- if (aW)
387- then if (!(aX))
392+func remove (aW,T,U,bl) = {
393+ let aX = getBooleanValue(this, u)
394+ let aY = getBooleanValue(this, x)
395+ let bm = r.payments[0]
396+ let aZ = fromBase58String(getStringValue(this, a))
397+ if (aX)
398+ then if (!(aY))
388399 then {
389- let ba = toBase58String(r.caller.bytes)
390- let bb = {
391- let q = if (aV)
392- then getIntegerValue(this, ((("STAKE_LP_" + ba) + "_") + I(T, U)))
393- else getIntegerValue(this, ba)
400+ let bb = toBase58String(r.caller.bytes)
401+ let bc = {
402+ let q = if (aW)
403+ then getIntegerValue(this, ((("STAKE_LP_" + bb) + "_") + I(T, U)))
404+ else getIntegerValue(this, bb)
394405 if ($isInstanceOf(q, "Int"))
395406 then {
396407 let Q = q
398409 }
399410 else 0
400411 }
401- let bm = if (aV)
402- then ((((h + "_") + ba) + "_") + I(T, U))
403- else (h + ba)
404- let bg = if (aV)
412+ let bn = if (aW)
413+ then ((((h + "_") + bb) + "_") + I(T, U))
414+ else (h + bb)
415+ let bh = if (aW)
405416 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
406417 else getIntegerValue(this, "Total_Tokens_Locked:")
407- let bh = (bg - bk)
408- let bn = (height - getIntegerValue(this, bm))
409- let bo = getIntegerValue(this, y)
410- let bp = ((bn * bo) * i)
411- let bq = (bp / (bg / bk))
412- if ((0 > bk))
413- then throw(if (aV)
418+ let bi = (bh - bl)
419+ let bo = (height - getIntegerValue(this, bn))
420+ let bp = getIntegerValue(this, y)
421+ let bq = ((bo * bp) * i)
422+ let br = (bq / (bh / bl))
423+ if ((0 > bl))
424+ then throw(if (aW)
414425 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
415426 else "Can't withdraw negative AxAi amount")
416427 else {
417- let bd = (bb - bk)
418- if ((0 > bd))
419- then throw(if (aV)
428+ let be = (bc - bl)
429+ if ((0 > be))
430+ then throw(if (aW)
420431 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
421432 else "Not enough AxAi balance")
422- else [IntegerEntry(if (aV)
423- then ((("STAKE_LP_" + ba) + "_") + I(T, U))
424- else ba, bd), IntegerEntry(if (aV)
433+ else [IntegerEntry(if (aW)
434+ then ((("STAKE_LP_" + bb) + "_") + I(T, U))
435+ else bb, be), IntegerEntry(if (aW)
425436 then ("Total_Tokens_LP_Locked_" + I(T, U))
426- else "Total_Tokens_Locked:", bh), ScriptTransfer(r.caller, bk, if (aV)
437+ else "Total_Tokens_Locked:", bi), ScriptTransfer(r.caller, bl, if (aW)
427438 then fromBase58String(getStringValue(this, (b + I(T, U))))
428- else aY), ScriptTransfer(r.caller, bq, aY)]
439+ else aZ), ScriptTransfer(r.caller, br, aZ)]
429440 }
430441 }
431442 else throw("liquidity is currently under maintenance.")
436447
437448 @Callable(r)
438449 func addLiquidity (T,U) = {
439- let aW = getBooleanValue(this, u)
440- let br = getBooleanValue(this, v)
441- let aa = getBooleanValue(this, G)
450+ let aX = getBooleanValue(this, u)
451+ let bs = getBooleanValue(this, v)
452+ let ab = getBooleanValue(this, G)
442453 let M = L(I(T, U))
443454 let J = r.payments[0].assetId
444455 let K = r.payments[1].assetId
445- let bs = fromBase58String(getStringValue(this, A))
446- let bt = fromBase58String(getStringValue(this, C))
447- let bu = fromBase58String(getStringValue(this, B))
448- let bv = fromBase58String(getStringValue(this, D))
449- let bw = fromBase58String(getStringValue(this, E))
450- let aY = fromBase58String(getStringValue(this, a))
451- let aZ = getStringValue(this, (b + I(T, U)))
452- let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
456+ let bt = fromBase58String(getStringValue(this, A))
457+ let bu = fromBase58String(getStringValue(this, C))
458+ let bv = fromBase58String(getStringValue(this, B))
459+ let bw = fromBase58String(getStringValue(this, D))
460+ let bx = fromBase58String(getStringValue(this, E))
461+ let aZ = fromBase58String(getStringValue(this, a))
462+ let ba = getStringValue(this, (b + I(T, U)))
463+ let by = if ((2 > ac(((I(T, U) + "_") + T), false)))
453464 then r.payments[0].amount
454- else ab(((I(T, U) + "_") + T), false)
455- let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
465+ else ac(((I(T, U) + "_") + T), false)
466+ let bz = if ((2 > ac(((I(T, U) + "_") + T), false)))
456467 then r.payments[1].amount
457- else ab(((I(T, U) + "_") + U), false)
458- let bz = ab(aZ, true)
459- let bA = ((bx + by) / bz)
460- let bB = (r.payments[0].amount * (by / bx))
461- let bC = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
462- let bD = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
463- let bE = if (if (if ((r.payments[1].amount == bB))
468+ else ac(((I(T, U) + "_") + U), false)
469+ let bA = ac(ba, true)
470+ let bB = ((by + bz) / bA)
471+ let bC = (r.payments[0].amount * (bz / by))
472+ let bD = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
473+ let bE = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
474+ let bF = if (if (if ((r.payments[1].amount == bC))
464475 then true
465- else (bC > r.payments[1].amount))
476+ else (bD > r.payments[1].amount))
466477 then true
467- else (r.payments[1].amount > bD))
478+ else (r.payments[1].amount > bE))
468479 then true
469480 else false
470- if (aW)
471- then if (!(br))
481+ if (aX)
482+ then if (!(bs))
472483 then if (if (if (!((J == K)))
473- then X(J, T, aa)
484+ then Y(J, T, ab)
474485 else false)
475- then X(K, U, aa)
486+ then Y(K, U, ab)
476487 else false)
477- then if (if (if (if (if (if (if (if ((J == bs))
478- then true
479- else (J == bt))
488+ then if (if (if (if (if (if (if (if ((J == bt))
480489 then true
481490 else (J == bu))
482491 then true
483492 else (J == bv))
484493 then true
485- else (J == aY))
494+ else (J == bw))
495+ then true
496+ else (J == aZ))
486497 then true
487498 else (J == H))
488499 then true
489- else (J == bw))
490- then if (if (if (if (if (if ((K == bs))
491- then true
492- else (K == bt))
500+ else (J == bx))
501+ then if (if (if (if (if (if ((K == bt))
493502 then true
494503 else (K == bu))
495504 then true
496505 else (K == bv))
497506 then true
498- else (K == aY))
507+ else (K == bw))
508+ then true
509+ else (K == aZ))
499510 then true
500511 else (K == H))
501512 then true
502- else (K == bw)
513+ else (K == bx)
503514 else false)
504515 then if ((M != false))
505- then if (bE)
516+ then if (bF)
506517 then {
507- let ba = toBase58String(r.caller.bytes)
508- let bb = N(ba, I(T, U))
509- let bF = P(ba, I(T, U), T)
510- let bG = P(ba, I(T, U), U)
511- let bH = R(I(T, U), T)
512- let bI = R(I(T, U), U)
513-[throw(((((((("receive lp details:" + toString(bz)) + " ") + toString((r.payments[0].amount + r.payments[1].amount))) + " ") + toString((bx + by))) + " ") + toString(bz)))]
518+ let bb = toBase58String(r.caller.bytes)
519+ let bc = N(bb, I(T, U))
520+ let bG = P(bb, I(T, U), T)
521+ let bH = P(bb, I(T, U), U)
522+ let bI = R(I(T, U), T)
523+ let bJ = R(I(T, U), U)
524+ let bK = V(r.payments[1].assetId)
525+ let bL = if ((bK == 8))
526+ then 0
527+ else 2
528+ let bM = if ((by == r.payments[0].amount))
529+ then (1 * i)
530+ else ((r.payments[0].amount + r.payments[1].amount) / ((by + bz) / (bA - bL)))
531+ let bN = (bG + r.payments[0].amount)
532+ let bO = (bH + r.payments[1].amount)
533+ let bP = (bc + bM)
534+ let bQ = (bI + r.payments[0].amount)
535+ let bR = (bJ + r.payments[1].amount)
536+[Reissue(fromBase58String(ba), bM, true), ScriptTransfer(Address(r.caller.bytes), bM, fromBase58String(ba)), IntegerEntry(S(T, U, bb), height), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + T), bN), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + U), bO), IntegerEntry(((I(T, U) + "_") + bb), bP), IntegerEntry(((I(T, U) + "_") + T), bQ), IntegerEntry(((I(T, U) + "_") + U), bR), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(ba, (p(ba) + bM))]
514537 }
515- else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (by / bx)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bE)))
538+ else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bz / by)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bF)))
516539 else throw("Invalid Pool Key.")
517540 else throw("Invalid Asset1 or Asset2!")
518541 else throw("Asset1 cannot be equal to Asset2")
523546
524547
525548 @Callable(r)
526-func removeLiquidity (T,U,bJ) = {
527- let ba = toBase58String(r.caller.bytes)
528- let aW = getBooleanValue(this, u)
529- let br = getBooleanValue(this, v)
530- let aa = getBooleanValue(this, G)
531- let bj = I(T, U)
532- let M = L(bj)
549+func removeLiquidity (T,U,bS) = {
550+ let bb = toBase58String(r.caller.bytes)
551+ let aX = getBooleanValue(this, u)
552+ let bs = getBooleanValue(this, v)
553+ let ab = getBooleanValue(this, G)
554+ let bk = I(T, U)
555+ let M = L(bk)
533556 let J = if ((T == F))
534- then if (aa)
557+ then if (ab)
535558 then H
536559 else throw("The smart contract does not currently support Waves.")
537560 else fromBase58String(T)
538561 let K = if ((U == F))
539- then if (aa)
562+ then if (ab)
540563 then H
541564 else throw("The smart contract does not currently support Waves.")
542565 else fromBase58String(U)
543- let bs = fromBase58String(getStringValue(this, A))
544- let bt = fromBase58String(getStringValue(this, C))
545- let bu = fromBase58String(getStringValue(this, B))
546- let bv = fromBase58String(getStringValue(this, D))
547- let aY = fromBase58String(getStringValue(this, a))
548- let bw = fromBase58String(getStringValue(this, E))
549- let aZ = getStringValue(this, (b + I(T, U)))
550- let bb = N(ba, I(T, U))
551- let bK = V(ba, bj)
552- let bL = ab(aZ, true)
553- let bx = ab(((I(T, U) + "_") + T), false)
554- let by = ab(((I(T, U) + "_") + U), false)
555- if (aW)
556- then if (!(br))
566+ let bt = fromBase58String(getStringValue(this, A))
567+ let bu = fromBase58String(getStringValue(this, C))
568+ let bv = fromBase58String(getStringValue(this, B))
569+ let bw = fromBase58String(getStringValue(this, D))
570+ let aZ = fromBase58String(getStringValue(this, a))
571+ let bx = fromBase58String(getStringValue(this, E))
572+ let ba = getStringValue(this, (b + I(T, U)))
573+ let bc = N(bb, I(T, U))
574+ let bT = W(bb, bk)
575+ let bU = ac(ba, true)
576+ let by = ac(((I(T, U) + "_") + T), false)
577+ let bz = ac(((I(T, U) + "_") + U), false)
578+ if (aX)
579+ then if (!(bs))
557580 then if (!((T == U)))
558- then if (if (if (if (if (if (if (if ((J == bs))
559- then true
560- else (J == bt))
581+ then if (if (if (if (if (if (if (if ((J == bt))
561582 then true
562583 else (J == bu))
563584 then true
564585 else (J == bv))
565586 then true
566- else (J == aY))
587+ else (J == bw))
588+ then true
589+ else (J == aZ))
567590 then true
568591 else (J == H))
569592 then true
570- else (J == bw))
571- then if (if (if (if (if (if ((K == bs))
572- then true
573- else (K == bt))
593+ else (J == bx))
594+ then if (if (if (if (if (if ((K == bt))
574595 then true
575596 else (K == bu))
576597 then true
577598 else (K == bv))
578599 then true
579- else (K == aY))
600+ else (K == bw))
601+ then true
602+ else (K == aZ))
580603 then true
581604 else (K == H))
582605 then true
583- else (K == bw)
606+ else (K == bx)
584607 else false)
585608 then if ((M != false))
586- then if (!((bb == 0)))
587- then if (((bb - bK) >= bJ))
588- then if (if ((bx > 2))
609+ then if (!((bc == 0)))
610+ then if (((bc - bT) >= bS))
611+ then if (if ((by > 2))
589612 then true
590- else (by > 2))
613+ else (bz > 2))
591614 then {
592- let bM = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(bx)) / toBigInt(i))) - 1)
593- let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(by)) / toBigInt(i))) - 1)
594- let bH = R(I(T, U), T)
595- let bI = R(I(T, U), U)
596- let bF = P(ba, I(T, U), T)
597- let bG = P(ba, I(T, U), U)
598- let bO = (bF - bM)
599- let bP = (bG - bN)
600- let bQ = (bb - bJ)
601- let bR = (bH - bM)
602- let bS = (bI - bN)
603- if ((r.payments[0].assetId == fromBase58String(aZ)))
604- then if ((bJ == r.payments[0].amount))
605- then [Burn(fromBase58String(aZ), bJ), ScriptTransfer(Address(r.caller.bytes), bM, J), ScriptTransfer(Address(r.caller.bytes), bN, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bO), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bP), IntegerEntry(((I(T, U) + "_") + ba), bQ), IntegerEntry(((I(T, U) + "_") + T), bR), IntegerEntry(((I(T, U) + "_") + U), bS), IntegerEntry(T, (p(T) - bM)), IntegerEntry(U, (p(U) - bN)), IntegerEntry(aZ, (p(aZ) - bJ))]
606- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bJ)))
615+ let bV = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bU)) * toBigInt(by)) / toBigInt(i))) - 1)
616+ let bW = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bU)) * toBigInt(bz)) / toBigInt(i))) - 1)
617+ let bI = R(I(T, U), T)
618+ let bJ = R(I(T, U), U)
619+ let bG = P(bb, I(T, U), T)
620+ let bH = P(bb, I(T, U), U)
621+ let bN = (bG - bV)
622+ let bO = (bH - bW)
623+ let bP = (bc - bS)
624+ let bQ = (bI - bV)
625+ let bR = (bJ - bW)
626+ if ((r.payments[0].assetId == fromBase58String(ba)))
627+ then if ((bS == r.payments[0].amount))
628+ then [Burn(fromBase58String(ba), bS), ScriptTransfer(Address(r.caller.bytes), bV, J), ScriptTransfer(Address(r.caller.bytes), bW, K), IntegerEntry(S(T, U, bb), height), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + T), bN), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + U), bO), IntegerEntry(((I(T, U) + "_") + bb), bP), IntegerEntry(((I(T, U) + "_") + T), bQ), IntegerEntry(((I(T, U) + "_") + U), bR), IntegerEntry(T, (p(T) - bV)), IntegerEntry(U, (p(U) - bW)), IntegerEntry(ba, (p(ba) - bS))]
629+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bS)))
607630 else throw("Requires an lp asset as payment to remove locked amounts.")
608631 }
609632 else throw("Pool has no liquidity.")
610- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bJ)))
633+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bS)))
611634 else throw("You have no locked values ​​in the pool")
612635 else throw("Invalid Pool Key.")
613636 else throw("Invalid Asset1 or Asset2!")
620643
621644 @Callable(r)
622645 func swap (T,U) = {
623- let ba = toBase58String(r.caller.bytes)
624- let aa = getBooleanValue(this, G)
625- let aW = getBooleanValue(this, u)
626- let bT = getBooleanValue(this, w)
627- let bj = I(T, U)
628- let M = L(bj)
646+ let bb = toBase58String(r.caller.bytes)
647+ let ab = getBooleanValue(this, G)
648+ let aX = getBooleanValue(this, u)
649+ let bX = getBooleanValue(this, w)
650+ let bk = I(T, U)
651+ let M = L(bk)
629652 let J = r.payments[0].assetId
630- let bs = fromBase58String(getStringValue(this, A))
631- let bt = fromBase58String(getStringValue(this, C))
632- let bu = fromBase58String(getStringValue(this, B))
633- let bv = fromBase58String(getStringValue(this, D))
634- let aY = fromBase58String(getStringValue(this, a))
635- let bw = fromBase58String(getStringValue(this, E))
636- let aZ = getStringValue(this, (b + I(T, U)))
637- let bU = ab(((I(T, U) + "_") + T), false)
638- let bV = ab(((I(T, U) + "_") + U), false)
639- let bW = getIntegerValue(this, g)
640- let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bU)))
641- let bY = toInt(((bX - ((bX / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
642- let bZ = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bV)))
643- let ca = toInt(((bZ - ((bZ / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
644- let cb = if (if ((J == unit))
653+ let bt = fromBase58String(getStringValue(this, A))
654+ let bu = fromBase58String(getStringValue(this, C))
655+ let bv = fromBase58String(getStringValue(this, B))
656+ let bw = fromBase58String(getStringValue(this, D))
657+ let aZ = fromBase58String(getStringValue(this, a))
658+ let bx = fromBase58String(getStringValue(this, E))
659+ let ba = getStringValue(this, (b + I(T, U)))
660+ let bY = ac(((I(T, U) + "_") + T), false)
661+ let bZ = ac(((I(T, U) + "_") + U), false)
662+ let ca = getIntegerValue(this, g)
663+ let cb = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bZ), toBigInt(bY)))
664+ let cc = toInt(((cb - ((cb / toBigInt(ca)) * toBigInt(100))) / toBigInt(i)))
665+ let cd = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bY), toBigInt(bZ)))
666+ let ce = toInt(((cd - ((cd / toBigInt(ca)) * toBigInt(100))) / toBigInt(i)))
667+ let cf = if (if ((J == unit))
645668 then (T == F)
646669 else false)
647- then bY
670+ then cc
648671 else if ((J == fromBase58String(T)))
649- then bY
650- else ca
651- let cc = if ((J == unit))
672+ then cc
673+ else ce
674+ let cg = if ((J == unit))
652675 then F
653676 else if ((J == fromBase58String(T)))
654677 then T
655678 else U
656- let cd = if ((J == unit))
679+ let ch = if ((J == unit))
657680 then F
658681 else if ((J == fromBase58String(T)))
659682 then U
660683 else T
661- let ce = if ((J == unit))
684+ let ci = if ((J == unit))
662685 then H
663686 else if ((J == fromBase58String(T)))
664687 then fromBase58String(U)
665688 else fromBase58String(T)
666- if (aW)
667- then if (!(bT))
689+ if (aX)
690+ then if (!(bX))
668691 then if (if (!((T == U)))
669- then if (X(J, T, aa))
692+ then if (Y(J, T, ab))
670693 then true
671- else X(J, U, aa)
694+ else Y(J, U, ab)
672695 else false)
673- then if (if (if (if (if (if (if ((J == bs))
674- then true
675- else (J == bt))
696+ then if (if (if (if (if (if (if ((J == bt))
676697 then true
677698 else (J == bu))
678699 then true
679700 else (J == bv))
680701 then true
681- else (J == aY))
702+ else (J == bw))
682703 then true
683- else (J == bw))
704+ else (J == aZ))
705+ then true
706+ else (J == bx))
684707 then true
685708 else (J == H))
686709 then if ((M != false))
687- then if ((r.payments[1].assetId == aY))
710+ then if ((r.payments[1].assetId == aZ))
688711 then if ((r.payments[1].amount == 300000))
689- then if (if ((bU > 2))
712+ then if (if ((bY > 2))
690713 then true
691- else (bV > 2))
692- then [ScriptTransfer(Address(r.caller.bytes), cb, ce), IntegerEntry(cd, (p(cd) - cb)), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) - cb)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) + r.payments[0].amount)), IntegerEntry(cc, (p(cc) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
714+ else (bZ > 2))
715+ then [ScriptTransfer(Address(r.caller.bytes), cf, ci), IntegerEntry(ch, (p(ch) - cf)), IntegerEntry(((I(T, U) + "_") + ch), (R(I(T, U), ch) - cf)), IntegerEntry(((I(T, U) + "_") + cg), (R(I(T, U), cg) + r.payments[0].amount)), IntegerEntry(cg, (p(cg) + r.payments[0].amount)), IntegerEntry(toBase58String(aZ), (p(toBase58String(aZ)) + r.payments[1].amount))]
693716 else throw("Pool has no liquidity.")
694717 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
695718 else throw("Invalid rate asset")
701724 }
702725
703726
704-@Verifier(cf)
705-func cg () = {
706- let q = cf
727+@Verifier(cj)
728+func ck () = {
729+ let q = cj
707730 if ($isInstanceOf(q, "Order"))
708731 then {
709- let ch = q
732+ let cl = q
710733 true
711734 }
712735 else if ($isInstanceOf(q, "ExchangeTransaction"))
713736 then {
714- let ci = q
737+ let cm = q
715738 true
716739 }
717740 else if ($isInstanceOf(q, "TransferTransaction"))
718741 then {
719- let cj = q
720- (cj.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
742+ let cn = q
743+ (cn.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
721744 }
722- else sigVerify(cf.bodyBytes, cf.proofs[0], cf.senderPublicKey)
745+ else sigVerify(cj.bodyBytes, cj.proofs[0], cj.senderPublicKey)
723746 }
724747
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "main_asset"
55
66 let b = "lp_asset_"
77
88 let c = "pool__"
99
1010 let d = "STAKING_AMOUNT_"
1111
1212 let e = "LEASE_AMOUNT_"
1313
1414 let f = "ID_"
1515
1616 let g = "percentage_rate_fee"
1717
1818 let h = "Deposit_Height_Of_"
1919
2020 let i = 100000000
2121
2222 let j = 1000000
2323
2424 let k = 10000000000
2525
2626 func l (m) = toString(valueOrErrorMessage(addressFromString(m), (("Can't parse " + m) + " as address")))
2727
2828
2929 func n (o) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(o))).id, (("Asset Id: " + o) + " is invalid.")))
3030
3131
3232 func p (o) = {
3333 let q = getInteger(this, o)
3434 if ($isInstanceOf(q, "Int"))
3535 then {
3636 let r = q
3737 r
3838 }
3939 else 0
4040 }
4141
4242
4343 func s (o) = {
4444 let q = assetInfo(o)
4545 if ($isInstanceOf(q, "Asset"))
4646 then {
4747 let t = q
4848 t.name
4949 }
5050 else throw("Can't find asset")
5151 }
5252
5353
5454 let u = "activate"
5555
5656 let v = "activate_pools"
5757
5858 let w = "activate_swap"
5959
6060 let x = "activate_liquidity"
6161
6262 let y = "block_distribuition"
6363
6464 let z = "Total_Tokens_Locked_"
6565
6666 let A = "usdn_asset"
6767
6868 let B = "usdt_asset"
6969
7070 let C = "usdc_asset"
7171
7272 let D = "ngnn_asset"
7373
7474 let E = "eurn_asset"
7575
7676 let F = "WAVES"
7777
7878 let G = "accept_waves"
7979
8080 let H = unit
8181
8282 func I (J,K) = (((c + J) + "_") + K)
8383
8484
8585 func L (M) = {
8686 let q = getInteger(this, M)
8787 if ($isInstanceOf(q, "Int"))
8888 then {
8989 let r = q
9090 r
9191 }
9292 else false
9393 }
9494
9595
9696 func N (m,M) = {
9797 let q = getInteger(this, ((M + "_") + m))
9898 if ($isInstanceOf(q, "Int"))
9999 then {
100100 let O = q
101101 O
102102 }
103103 else 0
104104 }
105105
106106
107107 func P (m,M,t) = {
108108 let q = getInteger(this, ((((m + "_") + M) + "_") + t))
109109 if ($isInstanceOf(q, "Int"))
110110 then {
111111 let Q = q
112112 Q
113113 }
114114 else 0
115115 }
116116
117117
118118 func R (M,t) = {
119119 let q = getInteger(this, ((M + "_") + t))
120120 if ($isInstanceOf(q, "Int"))
121121 then {
122122 let Q = q
123123 Q
124124 }
125125 else 1
126126 }
127127
128128
129129 func S (T,U,m) = (((h + I(T, U)) + "_") + m)
130130
131131
132-func V (m,M) = {
132+func V (t) = {
133+ let q = t
134+ if ($isInstanceOf(q, "ByteVector"))
135+ then {
136+ let O = q
137+ value(assetInfo(O)).decimals
138+ }
139+ else 8
140+ }
141+
142+
143+func W (m,M) = {
133144 let q = getInteger(this, ((("STAKE_LP_" + m) + "_") + M))
134145 if ($isInstanceOf(q, "Int"))
135146 then {
136147 let Q = q
137148 Q
138149 }
139150 else 0
140151 }
141152
142153
143-func W () = {
154+func X () = {
144155 let q = getString(this, "admin")
145156 if ($isInstanceOf(q, "String"))
146157 then {
147158 let O = q
148159 Address(fromBase58String(O))
149160 }
150161 else this
151162 }
152163
153164
154-func X (Y,Z,aa) = if (if ((Y == H))
155- then (Z == "WAVES")
165+func Y (Z,aa,ab) = if (if ((Z == H))
166+ then (aa == "WAVES")
156167 else false)
157- then if (aa)
168+ then if (ab)
158169 then true
159170 else throw("The smart contract does not currently support Waves.")
160- else if ((Y == fromBase58String(Z)))
171+ else if ((Z == fromBase58String(aa)))
161172 then true
162173 else false
163174
164175
165-func ab (M,ac) = {
176+func ac (M,ad) = {
166177 let q = getInteger(this, M)
167178 if ($isInstanceOf(q, "Int"))
168179 then {
169180 let Q = q
170181 Q
171182 }
172- else if (ac)
183+ else if (ad)
173184 then (1 * i)
174185 else 1
175186 }
176187
177188
178189 @Callable(r)
179-func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = {
180- let am = I(af, F)
190+func constructor (ae,af,ag,ah,ai,aj,ak,al,am) = {
191+ let an = I(ag, F)
181192 if (if ((r.caller == this))
182193 then true
183- else (r.caller == W()))
184- then if ((valueOrElse(getInteger(this, am), 0) == 0))
194+ else (r.caller == X()))
195+ then if ((valueOrElse(getInteger(this, an), 0) == 0))
185196 then {
186- let an = I(ae, af)
187- let ao = I(ae, ag)
188- let ap = I(ae, ah)
189- let aq = I(ae, F)
190- let ar = I(ae, ad)
191- let as = I(ae, ai)
192- let at = I(ag, af)
193- let au = I(ag, ah)
194- let av = I(ag, F)
195- let aw = I(ag, ad)
196- let ax = I(ag, ai)
197- let ay = I(af, ah)
198- let az = I(af, ad)
199- let aA = I(af, ai)
200- let aB = I(ah, F)
201- let aC = I(ah, ad)
202- let aD = I(ah, ai)
203- let aE = I(ad, F)
204- let aF = I(ad, ai)
205- let aG = I(ai, F)
206-[StringEntry(a, ad), StringEntry(A, ae), StringEntry(C, ag), StringEntry(B, af), StringEntry(D, ah), BooleanEntry(G, al), IntegerEntry(g, aj), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, ak), IntegerEntry(an, 1), IntegerEntry(aq, 1), IntegerEntry(ao, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(at, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(az, 1), IntegerEntry(ay, 1), IntegerEntry(am, 1), IntegerEntry(aB, 1), IntegerEntry(aC, 1), IntegerEntry(aE, 1), IntegerEntry(aG, 1), IntegerEntry(aF, 1), IntegerEntry(aD, 1), IntegerEntry(ax, 1), IntegerEntry(as, 1), IntegerEntry(aA, 1), IntegerEntry(aw, 1), StringEntry(E, ai)]
197+ let ao = I(af, ag)
198+ let ap = I(af, ah)
199+ let aq = I(af, ai)
200+ let ar = I(af, F)
201+ let as = I(af, ae)
202+ let at = I(af, aj)
203+ let au = I(ah, ag)
204+ let av = I(ah, ai)
205+ let aw = I(ah, F)
206+ let ax = I(ah, ae)
207+ let ay = I(ah, aj)
208+ let az = I(ag, ai)
209+ let aA = I(ag, ae)
210+ let aB = I(ag, aj)
211+ let aC = I(ai, F)
212+ let aD = I(ai, ae)
213+ let aE = I(ai, aj)
214+ let aF = I(ae, F)
215+ let aG = I(ae, aj)
216+ let aH = I(aj, F)
217+[StringEntry(a, ae), StringEntry(A, af), StringEntry(C, ah), StringEntry(B, ag), StringEntry(D, ai), BooleanEntry(G, am), IntegerEntry(g, ak), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, al), IntegerEntry(ao, 1), IntegerEntry(ar, 1), IntegerEntry(ap, 1), IntegerEntry(aq, 1), IntegerEntry(as, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(aw, 1), IntegerEntry(aA, 1), IntegerEntry(az, 1), IntegerEntry(an, 1), IntegerEntry(aC, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aH, 1), IntegerEntry(aG, 1), IntegerEntry(aE, 1), IntegerEntry(ay, 1), IntegerEntry(at, 1), IntegerEntry(aB, 1), IntegerEntry(ax, 1), StringEntry(E, aj)]
207218 }
208219 else throw("Smart Contract has been started")
209220 else throw("Only the Admin itself can invoke this function")
210221 }
211222
212223
213224
214225 @Callable(r)
215-func activate (aH) = if (if ((r.caller == this))
226+func activate (aI) = if (if ((r.caller == this))
216227 then true
217- else (r.caller == W()))
218- then [BooleanEntry(u, aH)]
228+ else (r.caller == X()))
229+ then [BooleanEntry(u, aI)]
219230 else throw("Only the Admin itself can invoke this function")
220231
221232
222233
223234 @Callable(r)
224-func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
235+func maintenance (aJ,aK,aL) = if (if ((r.caller == this))
225236 then true
226- else (r.caller == W()))
227- then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
237+ else (r.caller == X()))
238+ then [BooleanEntry(v, aJ), BooleanEntry(w, aK), BooleanEntry(x, aL)]
228239 else throw("Only the Admin itself can invoke this function")
229240
230241
231242
232243 @Callable(r)
233-func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
244+func percentualRateFeeSwapEdit (aM) = if (if ((r.caller == this))
234245 then true
235- else (r.caller == W()))
236- then [IntegerEntry(g, aL)]
246+ else (r.caller == X()))
247+ then [IntegerEntry(g, aM)]
237248 else throw("Only the Admin itself can invoke this function")
238249
239250
240251
241252 @Callable(r)
242-func acceptWaves (aM) = if (if ((r.caller == this))
253+func acceptWaves (aN) = if (if ((r.caller == this))
243254 then true
244- else (r.caller == W()))
245- then [BooleanEntry(G, aM)]
255+ else (r.caller == X()))
256+ then [BooleanEntry(G, aN)]
246257 else throw("Only the Admin itself can invoke this function")
247258
248259
249260
250261 @Callable(r)
251-func blockDistribution (aN) = if (if ((r.caller == this))
262+func blockDistribution (aO) = if (if ((r.caller == this))
252263 then true
253- else (r.caller == W()))
254- then [IntegerEntry(y, aN)]
264+ else (r.caller == X()))
265+ then [IntegerEntry(y, aO)]
255266 else throw("Only the Admin itself can invoke this function")
256267
257268
258269
259270 @Callable(r)
260271 func addAdmin (m) = if (if ((r.caller == this))
261272 then true
262- else (r.caller == W()))
273+ else (r.caller == X()))
263274 then [StringEntry("admin", m)]
264275 else throw("Only the Admin itself can invoke this function")
265276
266277
267278
268279 @Callable(r)
269-func lpAssetCreateForPairPool (J,K,aO,aP) = {
270- let aQ = if ((J == F))
280+func lpAssetCreateForPairPool (J,K,aP,aQ) = {
281+ let aR = if ((J == F))
271282 then F
272283 else s(fromBase58String(J))
273- let aR = if ((K == F))
284+ let aS = if ((K == F))
274285 then F
275286 else s(fromBase58String(K))
276- let aS = if (aP)
277- then aO
278- else ((aQ + "_") + aR)
287+ let aT = if (aQ)
288+ then aP
289+ else ((aR + "_") + aS)
279290 let M = L(I(J, K))
280291 if (if ((r.caller == this))
281292 then true
282- else (r.caller == W()))
293+ else (r.caller == X()))
283294 then if ((M != false))
284295 then {
285- let aT = Issue(aS, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
286- let aU = calculateAssetId(aT)
287-[StringEntry((b + I(J, K)), toBase58String(aU)), aT]
296+ let aU = Issue(aT, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
297+ let aV = calculateAssetId(aU)
298+[StringEntry((b + I(J, K)), toBase58String(aV)), aU]
288299 }
289300 else throw("Invalid Pool Key. Try inverting the assets")
290301 else throw("Only the Admin itself can invoke this function")
291302 }
292303
293304
294305
295306 @Callable(r)
296-func deposit (aV,T,U) = {
297- let aW = getBooleanValue(this, u)
298- let aX = getBooleanValue(this, x)
299- let aY = getStringValue(this, a)
300- let aZ = if (aV)
307+func deposit (aW,T,U) = {
308+ let aX = getBooleanValue(this, u)
309+ let aY = getBooleanValue(this, x)
310+ let aZ = getStringValue(this, a)
311+ let ba = if (aW)
301312 then getStringValue(this, (b + I(T, U)))
302- else aY
303- if (aW)
304- then if (!(aX))
305- then if ((r.payments[0].assetId != fromBase58String(aZ)))
306- then throw((("Invalid asset! Kindly Deposit Only " + aY) + " or valid asset lp"))
307- else if (!(aV))
313+ else aZ
314+ if (aX)
315+ then if (!(aY))
316+ then if ((r.payments[0].assetId != fromBase58String(ba)))
317+ then throw((("Invalid asset! Kindly Deposit Only " + aZ) + " or valid asset lp"))
318+ else if (!(aW))
308319 then {
309- let ba = toBase58String(r.caller.bytes)
310- let bb = {
311- let q = getInteger(this, ba)
320+ let bb = toBase58String(r.caller.bytes)
321+ let bc = {
322+ let q = getInteger(this, bb)
312323 if ($isInstanceOf(q, "Int"))
313324 then {
314325 let Q = q
315326 Q
316327 }
317328 else 0
318329 }
319- let bc = if ((bb == 0))
330+ let bd = if ((bc == 0))
320331 then height
321- else valueOrElse(getIntegerValue(this, (h + ba)), height)
322- let bd = (bb + r.payments[0].amount)
323- let be = IntegerEntry(ba, bd)
324- let bf = IntegerEntry((h + ba), bc)
325- let bg = {
332+ else valueOrElse(getIntegerValue(this, (h + bb)), height)
333+ let be = (bc + r.payments[0].amount)
334+ let bf = IntegerEntry(bb, be)
335+ let bg = IntegerEntry((h + bb), bd)
336+ let bh = {
326337 let q = getInteger(this, "Total_Tokens_Locked:")
327338 if ($isInstanceOf(q, "Int"))
328339 then {
329340 let Q = q
330341 Q
331342 }
332343 else 0
333344 }
334- let bh = (bg + r.payments[0].amount)
335- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
336-[be, bf, bi]
345+ let bi = (bh + r.payments[0].amount)
346+ let bj = IntegerEntry("Total_Tokens_Locked:", bi)
347+[bf, bg, bj]
337348 }
338349 else {
339- let bj = I(T, U)
340- let M = L(bj)
350+ let bk = I(T, U)
351+ let M = L(bk)
341352 if ((M != false))
342353 then {
343- let ba = toBase58String(r.caller.bytes)
344- let bb = {
345- let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bj))
354+ let bb = toBase58String(r.caller.bytes)
355+ let bc = {
356+ let q = getInteger(this, ((("STAKE_LP_" + bb) + "_") + bk))
346357 if ($isInstanceOf(q, "Int"))
347358 then {
348359 let Q = q
349360 Q
350361 }
351362 else 0
352363 }
353- let bc = if ((bb == 0))
364+ let bd = if ((bc == 0))
354365 then height
355- else valueOrElse(getIntegerValue(this, ((((h + "_") + ba) + "_") + bj)), height)
356- let bd = (bb + r.payments[0].amount)
357- let be = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bj), bd)
358- let bf = IntegerEntry(((((h + "_") + ba) + "_") + bj), height)
359- let bg = {
360- let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bj))
366+ else valueOrElse(getIntegerValue(this, ((((h + "_") + bb) + "_") + bk)), height)
367+ let be = (bc + r.payments[0].amount)
368+ let bf = IntegerEntry(((("STAKE_LP_" + bb) + "_") + bk), be)
369+ let bg = IntegerEntry(((((h + "_") + bb) + "_") + bk), height)
370+ let bh = {
371+ let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bk))
361372 if ($isInstanceOf(q, "Int"))
362373 then {
363374 let Q = q
364375 Q
365376 }
366377 else 0
367378 }
368- let bh = (bg + r.payments[0].amount)
369- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
370-[be, bf, bi]
379+ let bi = (bh + r.payments[0].amount)
380+ let bj = IntegerEntry(("Total_Tokens_LP_Locked_" + bk), bi)
381+[bf, bg, bj]
371382 }
372383 else throw("Invalid Pool key.")
373384 }
374385 else throw("liquidity is currently under maintenance.")
375386 else throw("dApp is currently under maintenance.")
376387 }
377388
378389
379390
380391 @Callable(r)
381-func remove (aV,T,U,bk) = {
382- let aW = getBooleanValue(this, u)
383- let aX = getBooleanValue(this, x)
384- let bl = r.payments[0]
385- let aY = fromBase58String(getStringValue(this, a))
386- if (aW)
387- then if (!(aX))
392+func remove (aW,T,U,bl) = {
393+ let aX = getBooleanValue(this, u)
394+ let aY = getBooleanValue(this, x)
395+ let bm = r.payments[0]
396+ let aZ = fromBase58String(getStringValue(this, a))
397+ if (aX)
398+ then if (!(aY))
388399 then {
389- let ba = toBase58String(r.caller.bytes)
390- let bb = {
391- let q = if (aV)
392- then getIntegerValue(this, ((("STAKE_LP_" + ba) + "_") + I(T, U)))
393- else getIntegerValue(this, ba)
400+ let bb = toBase58String(r.caller.bytes)
401+ let bc = {
402+ let q = if (aW)
403+ then getIntegerValue(this, ((("STAKE_LP_" + bb) + "_") + I(T, U)))
404+ else getIntegerValue(this, bb)
394405 if ($isInstanceOf(q, "Int"))
395406 then {
396407 let Q = q
397408 Q
398409 }
399410 else 0
400411 }
401- let bm = if (aV)
402- then ((((h + "_") + ba) + "_") + I(T, U))
403- else (h + ba)
404- let bg = if (aV)
412+ let bn = if (aW)
413+ then ((((h + "_") + bb) + "_") + I(T, U))
414+ else (h + bb)
415+ let bh = if (aW)
405416 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
406417 else getIntegerValue(this, "Total_Tokens_Locked:")
407- let bh = (bg - bk)
408- let bn = (height - getIntegerValue(this, bm))
409- let bo = getIntegerValue(this, y)
410- let bp = ((bn * bo) * i)
411- let bq = (bp / (bg / bk))
412- if ((0 > bk))
413- then throw(if (aV)
418+ let bi = (bh - bl)
419+ let bo = (height - getIntegerValue(this, bn))
420+ let bp = getIntegerValue(this, y)
421+ let bq = ((bo * bp) * i)
422+ let br = (bq / (bh / bl))
423+ if ((0 > bl))
424+ then throw(if (aW)
414425 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
415426 else "Can't withdraw negative AxAi amount")
416427 else {
417- let bd = (bb - bk)
418- if ((0 > bd))
419- then throw(if (aV)
428+ let be = (bc - bl)
429+ if ((0 > be))
430+ then throw(if (aW)
420431 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
421432 else "Not enough AxAi balance")
422- else [IntegerEntry(if (aV)
423- then ((("STAKE_LP_" + ba) + "_") + I(T, U))
424- else ba, bd), IntegerEntry(if (aV)
433+ else [IntegerEntry(if (aW)
434+ then ((("STAKE_LP_" + bb) + "_") + I(T, U))
435+ else bb, be), IntegerEntry(if (aW)
425436 then ("Total_Tokens_LP_Locked_" + I(T, U))
426- else "Total_Tokens_Locked:", bh), ScriptTransfer(r.caller, bk, if (aV)
437+ else "Total_Tokens_Locked:", bi), ScriptTransfer(r.caller, bl, if (aW)
427438 then fromBase58String(getStringValue(this, (b + I(T, U))))
428- else aY), ScriptTransfer(r.caller, bq, aY)]
439+ else aZ), ScriptTransfer(r.caller, br, aZ)]
429440 }
430441 }
431442 else throw("liquidity is currently under maintenance.")
432443 else throw("dApp is currently under maintenance.")
433444 }
434445
435446
436447
437448 @Callable(r)
438449 func addLiquidity (T,U) = {
439- let aW = getBooleanValue(this, u)
440- let br = getBooleanValue(this, v)
441- let aa = getBooleanValue(this, G)
450+ let aX = getBooleanValue(this, u)
451+ let bs = getBooleanValue(this, v)
452+ let ab = getBooleanValue(this, G)
442453 let M = L(I(T, U))
443454 let J = r.payments[0].assetId
444455 let K = r.payments[1].assetId
445- let bs = fromBase58String(getStringValue(this, A))
446- let bt = fromBase58String(getStringValue(this, C))
447- let bu = fromBase58String(getStringValue(this, B))
448- let bv = fromBase58String(getStringValue(this, D))
449- let bw = fromBase58String(getStringValue(this, E))
450- let aY = fromBase58String(getStringValue(this, a))
451- let aZ = getStringValue(this, (b + I(T, U)))
452- let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
456+ let bt = fromBase58String(getStringValue(this, A))
457+ let bu = fromBase58String(getStringValue(this, C))
458+ let bv = fromBase58String(getStringValue(this, B))
459+ let bw = fromBase58String(getStringValue(this, D))
460+ let bx = fromBase58String(getStringValue(this, E))
461+ let aZ = fromBase58String(getStringValue(this, a))
462+ let ba = getStringValue(this, (b + I(T, U)))
463+ let by = if ((2 > ac(((I(T, U) + "_") + T), false)))
453464 then r.payments[0].amount
454- else ab(((I(T, U) + "_") + T), false)
455- let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
465+ else ac(((I(T, U) + "_") + T), false)
466+ let bz = if ((2 > ac(((I(T, U) + "_") + T), false)))
456467 then r.payments[1].amount
457- else ab(((I(T, U) + "_") + U), false)
458- let bz = ab(aZ, true)
459- let bA = ((bx + by) / bz)
460- let bB = (r.payments[0].amount * (by / bx))
461- let bC = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
462- let bD = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
463- let bE = if (if (if ((r.payments[1].amount == bB))
468+ else ac(((I(T, U) + "_") + U), false)
469+ let bA = ac(ba, true)
470+ let bB = ((by + bz) / bA)
471+ let bC = (r.payments[0].amount * (bz / by))
472+ let bD = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
473+ let bE = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
474+ let bF = if (if (if ((r.payments[1].amount == bC))
464475 then true
465- else (bC > r.payments[1].amount))
476+ else (bD > r.payments[1].amount))
466477 then true
467- else (r.payments[1].amount > bD))
478+ else (r.payments[1].amount > bE))
468479 then true
469480 else false
470- if (aW)
471- then if (!(br))
481+ if (aX)
482+ then if (!(bs))
472483 then if (if (if (!((J == K)))
473- then X(J, T, aa)
484+ then Y(J, T, ab)
474485 else false)
475- then X(K, U, aa)
486+ then Y(K, U, ab)
476487 else false)
477- then if (if (if (if (if (if (if (if ((J == bs))
478- then true
479- else (J == bt))
488+ then if (if (if (if (if (if (if (if ((J == bt))
480489 then true
481490 else (J == bu))
482491 then true
483492 else (J == bv))
484493 then true
485- else (J == aY))
494+ else (J == bw))
495+ then true
496+ else (J == aZ))
486497 then true
487498 else (J == H))
488499 then true
489- else (J == bw))
490- then if (if (if (if (if (if ((K == bs))
491- then true
492- else (K == bt))
500+ else (J == bx))
501+ then if (if (if (if (if (if ((K == bt))
493502 then true
494503 else (K == bu))
495504 then true
496505 else (K == bv))
497506 then true
498- else (K == aY))
507+ else (K == bw))
508+ then true
509+ else (K == aZ))
499510 then true
500511 else (K == H))
501512 then true
502- else (K == bw)
513+ else (K == bx)
503514 else false)
504515 then if ((M != false))
505- then if (bE)
516+ then if (bF)
506517 then {
507- let ba = toBase58String(r.caller.bytes)
508- let bb = N(ba, I(T, U))
509- let bF = P(ba, I(T, U), T)
510- let bG = P(ba, I(T, U), U)
511- let bH = R(I(T, U), T)
512- let bI = R(I(T, U), U)
513-[throw(((((((("receive lp details:" + toString(bz)) + " ") + toString((r.payments[0].amount + r.payments[1].amount))) + " ") + toString((bx + by))) + " ") + toString(bz)))]
518+ let bb = toBase58String(r.caller.bytes)
519+ let bc = N(bb, I(T, U))
520+ let bG = P(bb, I(T, U), T)
521+ let bH = P(bb, I(T, U), U)
522+ let bI = R(I(T, U), T)
523+ let bJ = R(I(T, U), U)
524+ let bK = V(r.payments[1].assetId)
525+ let bL = if ((bK == 8))
526+ then 0
527+ else 2
528+ let bM = if ((by == r.payments[0].amount))
529+ then (1 * i)
530+ else ((r.payments[0].amount + r.payments[1].amount) / ((by + bz) / (bA - bL)))
531+ let bN = (bG + r.payments[0].amount)
532+ let bO = (bH + r.payments[1].amount)
533+ let bP = (bc + bM)
534+ let bQ = (bI + r.payments[0].amount)
535+ let bR = (bJ + r.payments[1].amount)
536+[Reissue(fromBase58String(ba), bM, true), ScriptTransfer(Address(r.caller.bytes), bM, fromBase58String(ba)), IntegerEntry(S(T, U, bb), height), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + T), bN), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + U), bO), IntegerEntry(((I(T, U) + "_") + bb), bP), IntegerEntry(((I(T, U) + "_") + T), bQ), IntegerEntry(((I(T, U) + "_") + U), bR), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(ba, (p(ba) + bM))]
514537 }
515- else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (by / bx)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bE)))
538+ else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bz / by)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bF)))
516539 else throw("Invalid Pool Key.")
517540 else throw("Invalid Asset1 or Asset2!")
518541 else throw("Asset1 cannot be equal to Asset2")
519542 else throw("liquidity is currently under maintenance.")
520543 else throw("dApp is currently under maintenance.")
521544 }
522545
523546
524547
525548 @Callable(r)
526-func removeLiquidity (T,U,bJ) = {
527- let ba = toBase58String(r.caller.bytes)
528- let aW = getBooleanValue(this, u)
529- let br = getBooleanValue(this, v)
530- let aa = getBooleanValue(this, G)
531- let bj = I(T, U)
532- let M = L(bj)
549+func removeLiquidity (T,U,bS) = {
550+ let bb = toBase58String(r.caller.bytes)
551+ let aX = getBooleanValue(this, u)
552+ let bs = getBooleanValue(this, v)
553+ let ab = getBooleanValue(this, G)
554+ let bk = I(T, U)
555+ let M = L(bk)
533556 let J = if ((T == F))
534- then if (aa)
557+ then if (ab)
535558 then H
536559 else throw("The smart contract does not currently support Waves.")
537560 else fromBase58String(T)
538561 let K = if ((U == F))
539- then if (aa)
562+ then if (ab)
540563 then H
541564 else throw("The smart contract does not currently support Waves.")
542565 else fromBase58String(U)
543- let bs = fromBase58String(getStringValue(this, A))
544- let bt = fromBase58String(getStringValue(this, C))
545- let bu = fromBase58String(getStringValue(this, B))
546- let bv = fromBase58String(getStringValue(this, D))
547- let aY = fromBase58String(getStringValue(this, a))
548- let bw = fromBase58String(getStringValue(this, E))
549- let aZ = getStringValue(this, (b + I(T, U)))
550- let bb = N(ba, I(T, U))
551- let bK = V(ba, bj)
552- let bL = ab(aZ, true)
553- let bx = ab(((I(T, U) + "_") + T), false)
554- let by = ab(((I(T, U) + "_") + U), false)
555- if (aW)
556- then if (!(br))
566+ let bt = fromBase58String(getStringValue(this, A))
567+ let bu = fromBase58String(getStringValue(this, C))
568+ let bv = fromBase58String(getStringValue(this, B))
569+ let bw = fromBase58String(getStringValue(this, D))
570+ let aZ = fromBase58String(getStringValue(this, a))
571+ let bx = fromBase58String(getStringValue(this, E))
572+ let ba = getStringValue(this, (b + I(T, U)))
573+ let bc = N(bb, I(T, U))
574+ let bT = W(bb, bk)
575+ let bU = ac(ba, true)
576+ let by = ac(((I(T, U) + "_") + T), false)
577+ let bz = ac(((I(T, U) + "_") + U), false)
578+ if (aX)
579+ then if (!(bs))
557580 then if (!((T == U)))
558- then if (if (if (if (if (if (if (if ((J == bs))
559- then true
560- else (J == bt))
581+ then if (if (if (if (if (if (if (if ((J == bt))
561582 then true
562583 else (J == bu))
563584 then true
564585 else (J == bv))
565586 then true
566- else (J == aY))
587+ else (J == bw))
588+ then true
589+ else (J == aZ))
567590 then true
568591 else (J == H))
569592 then true
570- else (J == bw))
571- then if (if (if (if (if (if ((K == bs))
572- then true
573- else (K == bt))
593+ else (J == bx))
594+ then if (if (if (if (if (if ((K == bt))
574595 then true
575596 else (K == bu))
576597 then true
577598 else (K == bv))
578599 then true
579- else (K == aY))
600+ else (K == bw))
601+ then true
602+ else (K == aZ))
580603 then true
581604 else (K == H))
582605 then true
583- else (K == bw)
606+ else (K == bx)
584607 else false)
585608 then if ((M != false))
586- then if (!((bb == 0)))
587- then if (((bb - bK) >= bJ))
588- then if (if ((bx > 2))
609+ then if (!((bc == 0)))
610+ then if (((bc - bT) >= bS))
611+ then if (if ((by > 2))
589612 then true
590- else (by > 2))
613+ else (bz > 2))
591614 then {
592- let bM = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(bx)) / toBigInt(i))) - 1)
593- let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(by)) / toBigInt(i))) - 1)
594- let bH = R(I(T, U), T)
595- let bI = R(I(T, U), U)
596- let bF = P(ba, I(T, U), T)
597- let bG = P(ba, I(T, U), U)
598- let bO = (bF - bM)
599- let bP = (bG - bN)
600- let bQ = (bb - bJ)
601- let bR = (bH - bM)
602- let bS = (bI - bN)
603- if ((r.payments[0].assetId == fromBase58String(aZ)))
604- then if ((bJ == r.payments[0].amount))
605- then [Burn(fromBase58String(aZ), bJ), ScriptTransfer(Address(r.caller.bytes), bM, J), ScriptTransfer(Address(r.caller.bytes), bN, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bO), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bP), IntegerEntry(((I(T, U) + "_") + ba), bQ), IntegerEntry(((I(T, U) + "_") + T), bR), IntegerEntry(((I(T, U) + "_") + U), bS), IntegerEntry(T, (p(T) - bM)), IntegerEntry(U, (p(U) - bN)), IntegerEntry(aZ, (p(aZ) - bJ))]
606- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bJ)))
615+ let bV = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bU)) * toBigInt(by)) / toBigInt(i))) - 1)
616+ let bW = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bU)) * toBigInt(bz)) / toBigInt(i))) - 1)
617+ let bI = R(I(T, U), T)
618+ let bJ = R(I(T, U), U)
619+ let bG = P(bb, I(T, U), T)
620+ let bH = P(bb, I(T, U), U)
621+ let bN = (bG - bV)
622+ let bO = (bH - bW)
623+ let bP = (bc - bS)
624+ let bQ = (bI - bV)
625+ let bR = (bJ - bW)
626+ if ((r.payments[0].assetId == fromBase58String(ba)))
627+ then if ((bS == r.payments[0].amount))
628+ then [Burn(fromBase58String(ba), bS), ScriptTransfer(Address(r.caller.bytes), bV, J), ScriptTransfer(Address(r.caller.bytes), bW, K), IntegerEntry(S(T, U, bb), height), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + T), bN), IntegerEntry(((((bb + "_") + I(T, U)) + "_") + U), bO), IntegerEntry(((I(T, U) + "_") + bb), bP), IntegerEntry(((I(T, U) + "_") + T), bQ), IntegerEntry(((I(T, U) + "_") + U), bR), IntegerEntry(T, (p(T) - bV)), IntegerEntry(U, (p(U) - bW)), IntegerEntry(ba, (p(ba) - bS))]
629+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bS)))
607630 else throw("Requires an lp asset as payment to remove locked amounts.")
608631 }
609632 else throw("Pool has no liquidity.")
610- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bJ)))
633+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bS)))
611634 else throw("You have no locked values ​​in the pool")
612635 else throw("Invalid Pool Key.")
613636 else throw("Invalid Asset1 or Asset2!")
614637 else throw("Asset1 cannot be equal to Asset2")
615638 else throw("liquidity is currently under maintenance.")
616639 else throw("dApp is currently under maintenance.")
617640 }
618641
619642
620643
621644 @Callable(r)
622645 func swap (T,U) = {
623- let ba = toBase58String(r.caller.bytes)
624- let aa = getBooleanValue(this, G)
625- let aW = getBooleanValue(this, u)
626- let bT = getBooleanValue(this, w)
627- let bj = I(T, U)
628- let M = L(bj)
646+ let bb = toBase58String(r.caller.bytes)
647+ let ab = getBooleanValue(this, G)
648+ let aX = getBooleanValue(this, u)
649+ let bX = getBooleanValue(this, w)
650+ let bk = I(T, U)
651+ let M = L(bk)
629652 let J = r.payments[0].assetId
630- let bs = fromBase58String(getStringValue(this, A))
631- let bt = fromBase58String(getStringValue(this, C))
632- let bu = fromBase58String(getStringValue(this, B))
633- let bv = fromBase58String(getStringValue(this, D))
634- let aY = fromBase58String(getStringValue(this, a))
635- let bw = fromBase58String(getStringValue(this, E))
636- let aZ = getStringValue(this, (b + I(T, U)))
637- let bU = ab(((I(T, U) + "_") + T), false)
638- let bV = ab(((I(T, U) + "_") + U), false)
639- let bW = getIntegerValue(this, g)
640- let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bU)))
641- let bY = toInt(((bX - ((bX / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
642- let bZ = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bV)))
643- let ca = toInt(((bZ - ((bZ / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
644- let cb = if (if ((J == unit))
653+ let bt = fromBase58String(getStringValue(this, A))
654+ let bu = fromBase58String(getStringValue(this, C))
655+ let bv = fromBase58String(getStringValue(this, B))
656+ let bw = fromBase58String(getStringValue(this, D))
657+ let aZ = fromBase58String(getStringValue(this, a))
658+ let bx = fromBase58String(getStringValue(this, E))
659+ let ba = getStringValue(this, (b + I(T, U)))
660+ let bY = ac(((I(T, U) + "_") + T), false)
661+ let bZ = ac(((I(T, U) + "_") + U), false)
662+ let ca = getIntegerValue(this, g)
663+ let cb = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bZ), toBigInt(bY)))
664+ let cc = toInt(((cb - ((cb / toBigInt(ca)) * toBigInt(100))) / toBigInt(i)))
665+ let cd = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bY), toBigInt(bZ)))
666+ let ce = toInt(((cd - ((cd / toBigInt(ca)) * toBigInt(100))) / toBigInt(i)))
667+ let cf = if (if ((J == unit))
645668 then (T == F)
646669 else false)
647- then bY
670+ then cc
648671 else if ((J == fromBase58String(T)))
649- then bY
650- else ca
651- let cc = if ((J == unit))
672+ then cc
673+ else ce
674+ let cg = if ((J == unit))
652675 then F
653676 else if ((J == fromBase58String(T)))
654677 then T
655678 else U
656- let cd = if ((J == unit))
679+ let ch = if ((J == unit))
657680 then F
658681 else if ((J == fromBase58String(T)))
659682 then U
660683 else T
661- let ce = if ((J == unit))
684+ let ci = if ((J == unit))
662685 then H
663686 else if ((J == fromBase58String(T)))
664687 then fromBase58String(U)
665688 else fromBase58String(T)
666- if (aW)
667- then if (!(bT))
689+ if (aX)
690+ then if (!(bX))
668691 then if (if (!((T == U)))
669- then if (X(J, T, aa))
692+ then if (Y(J, T, ab))
670693 then true
671- else X(J, U, aa)
694+ else Y(J, U, ab)
672695 else false)
673- then if (if (if (if (if (if (if ((J == bs))
674- then true
675- else (J == bt))
696+ then if (if (if (if (if (if (if ((J == bt))
676697 then true
677698 else (J == bu))
678699 then true
679700 else (J == bv))
680701 then true
681- else (J == aY))
702+ else (J == bw))
682703 then true
683- else (J == bw))
704+ else (J == aZ))
705+ then true
706+ else (J == bx))
684707 then true
685708 else (J == H))
686709 then if ((M != false))
687- then if ((r.payments[1].assetId == aY))
710+ then if ((r.payments[1].assetId == aZ))
688711 then if ((r.payments[1].amount == 300000))
689- then if (if ((bU > 2))
712+ then if (if ((bY > 2))
690713 then true
691- else (bV > 2))
692- then [ScriptTransfer(Address(r.caller.bytes), cb, ce), IntegerEntry(cd, (p(cd) - cb)), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) - cb)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) + r.payments[0].amount)), IntegerEntry(cc, (p(cc) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
714+ else (bZ > 2))
715+ then [ScriptTransfer(Address(r.caller.bytes), cf, ci), IntegerEntry(ch, (p(ch) - cf)), IntegerEntry(((I(T, U) + "_") + ch), (R(I(T, U), ch) - cf)), IntegerEntry(((I(T, U) + "_") + cg), (R(I(T, U), cg) + r.payments[0].amount)), IntegerEntry(cg, (p(cg) + r.payments[0].amount)), IntegerEntry(toBase58String(aZ), (p(toBase58String(aZ)) + r.payments[1].amount))]
693716 else throw("Pool has no liquidity.")
694717 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
695718 else throw("Invalid rate asset")
696719 else throw("Invalid Swap Key.")
697720 else throw("Invalid Asset1 or Asset2!")
698721 else throw("Asset1 cannot be equal to Asset2")
699722 else throw("Swap is currently under maintenance.")
700723 else throw("dApp is currently under maintenance.")
701724 }
702725
703726
704-@Verifier(cf)
705-func cg () = {
706- let q = cf
727+@Verifier(cj)
728+func ck () = {
729+ let q = cj
707730 if ($isInstanceOf(q, "Order"))
708731 then {
709- let ch = q
732+ let cl = q
710733 true
711734 }
712735 else if ($isInstanceOf(q, "ExchangeTransaction"))
713736 then {
714- let ci = q
737+ let cm = q
715738 true
716739 }
717740 else if ($isInstanceOf(q, "TransferTransaction"))
718741 then {
719- let cj = q
720- (cj.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
742+ let cn = q
743+ (cn.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
721744 }
722- else sigVerify(cf.bodyBytes, cf.proofs[0], cf.senderPublicKey)
745+ else sigVerify(cj.bodyBytes, cj.proofs[0], cj.senderPublicKey)
723746 }
724747

github/deemru/w8io/169f3d6 
206.52 ms