tx · F2USGgy3ht7KUGZoGAY3cXxXqx73jvPu7cHbmSF3wV4y

3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU:  -0.03600000 Waves

2022.07.21 01:51 [2148704] smart account 3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU > SELF 0.00000000 Waves

{ "type": 13, "id": "F2USGgy3ht7KUGZoGAY3cXxXqx73jvPu7cHbmSF3wV4y", "fee": 3600000, "feeAssetId": null, "timestamp": 1658357514195, "version": 2, "chainId": 84, "sender": "3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU", "senderPublicKey": "GDio3pYFUMSWQ3yen7TJP79nTPaGuPbxjKixvKLuYS8E", "proofs": [ "5Kz8rJGKmMjq1nTBwsgRNcCtYcnbUSSdseq1MZ3zuyzzyZhUaVLSjnvLVt7CqRKKJGdAszBsdtkn8gVoFVGjZ17s" ], "script": "base64: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aWNhdGlvbgAAAAADCQAAAAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAQa2V5UG9vbFVzZHRXYXZlcwAAAAAAAAAAAAAAAAAAAAAAAAQAAAAPa2V5UG9vbFVzZG5Vc2R0CQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALVXNkdEFzc2V0SWQEAAAAD2tleVBvb2xVc2RuVXNkYwkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC1VzZGNBc3NldElkBAAAAA9rZXlQb29sVXNkbk5nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZG5XYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkbk1haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkbkV1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZGNVc2R0CQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAALVXNkdEFzc2V0SWQEAAAAD2tleVBvb2xVc2RjTmdubgkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC05nbm5Bc3NldElkBAAAABBrZXlQb29sVXNkY1dhdmVzCQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAAFd2F2ZXMEAAAAFGtleVBvb2xVc2RjTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjRXVybgkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAAA9rZXlQb29sVXNkdE5nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAUa2V5UG9vbFVzZHRNYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHRFdXJuCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xOZ25uV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbE5nbm5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbE5nbm5FdXJuCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xNYWluV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC01haW5Bc3NldElkBQAAAAV3YXZlcwQAAAAPa2V5UG9vbE1haW5FdXJuCQEAAAACa3AAAAACBQAAAAtNYWluQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xFdXJuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC0V1cm5Bc3NldElkBQAAAAV3YXZlcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAARtYWluBQAAAAtNYWluQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAR1c2RuBQAAAAtVc2RuQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAR1c2RjBQAAAAtVc2RjQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAR1c2R0BQAAAAtVc2R0QXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAARuZ25uBQAAAAtOZ25uQXNzZXRJZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAGYVdhdmVzBQAAAAthY2NlcHRXYXZlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAHcmF0ZUZlZQUAAAAScGVyY2VudGFnZVJhdGVTd2FwCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAJh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AAICAAAASFdpdGhkcmF3YWwgYW1vdW50IGxvd2VyIHRoYW4gYXNzZXQgbHAgYW1vdW50LiBZb3VyIExwIGFtb3VudCBhdmFpbGFibGU6IAkAAaQAAAABBQAAAAZBbW91bnQJAAACAAAAAQIAAAA5UmVxdWlyZXMgYW4gbHAgYXNzZXQgYXMgcGF5bWVudCB0byByZW1vdmUgbG9ja2VkIGFtb3VudHMuCQAAAgAAAAECAAAAFlBvb2wgaGFzIG5vIGxpcXVpZGl0eS4JAAACAAAAAQkAASwAAAACAgAAAFRBbW91bnQgdG8gYmUgd2l0aGRyYXduIGdyZWF0ZXIgdGhhbiB0aGUgYW1vdW50IGF2YWlsYWJsZSBmb3Igd2l0aGRyYXdhbC4gQXZhaWxhYmxlOiAJAAGkAAAAAQUAAAAGQW1vdW50CQAAAgAAAAECAAAAK1lvdSBoYXZlIG5vIGxvY2tlZCB2YWx1ZXMg4oCL4oCLaW4gdGhlIHBvb2wJAAACAAAAAQIAAAARSW52YWxpZCBQb29sIEtleS4JAAACAAAAAQIAAAAZSW52YWxpZCBBc3NldDEgb3IgQXNzZXQyIQkAAAIAAAABAgAAACBBc3NldDEgY2Fubm90IGJlIGVxdWFsIHRvIEFzc2V0MgkAAAIAAAABAgAAAClsaXF1aWRpdHkgaXMgY3VycmVudGx5IHVuZGVyIG1haW50ZW5hbmNlLgkAAAIAAAABAgAAACRkQXBwIGlzIGN1cnJlbnRseSB1bmRlciBtYWludGVuYW5jZS4AAAABaQEAAAAEc3dhcAAAAAIAAAAGQXNzZXQxAAAABkFzc2V0MgQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdhY1dhdmVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAAZhV2F2ZXMEAAAABXBvd2VyCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAAJhYwQAAAAMc3dhcEFjdGl2YXRlCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzBQAAAAZzd2FwQWMEAAAAB3Bvb2xLZXkJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUA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", "height": 2148704, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EgEE5xewXameaLbtqSWT23Cwuc9xSRWQNNQeoaVD3Mte Next: none Diff:
OldNewDifferences
152152
153153
154154 func X (Y,Z,aa) = if (if ((Y == H))
155- then (Z == "WAVES")
155+ then (Z == F)
156156 else false)
157157 then if (aa)
158158 then true
175175 }
176176
177177
178+func ad (ae,af,ag) = {
179+ let ah = if ((af == F))
180+ then H
181+ else fromBase58String(af)
182+ let ai = if ((ag == F))
183+ then H
184+ else fromBase58String(ag)
185+ if ((ae == ah))
186+ then ai
187+ else ah
188+ }
189+
190+
178191 @Callable(r)
179-func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = {
180- let am = I(af, F)
192+func constructor (aj,ak,al,am,an,ao,ap,aq,ar) = {
193+ let as = I(al, F)
181194 if (if ((r.caller == this))
182195 then true
183196 else (r.caller == W()))
184- then if ((valueOrElse(getInteger(this, am), 0) == 0))
197+ then if ((valueOrElse(getInteger(this, as), 0) == 0))
185198 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)]
199+ let at = I(ak, al)
200+ let au = I(ak, am)
201+ let av = I(ak, an)
202+ let aw = I(ak, F)
203+ let ax = I(ak, aj)
204+ let ay = I(ak, ao)
205+ let az = I(am, al)
206+ let aA = I(am, an)
207+ let aB = I(am, F)
208+ let aC = I(am, aj)
209+ let aD = I(am, ao)
210+ let aE = I(al, an)
211+ let aF = I(al, aj)
212+ let aG = I(al, ao)
213+ let aH = I(an, F)
214+ let aI = I(an, aj)
215+ let aJ = I(an, ao)
216+ let aK = I(aj, F)
217+ let aL = I(aj, ao)
218+ let aM = I(ao, F)
219+[StringEntry(a, aj), StringEntry(A, ak), StringEntry(C, am), StringEntry(B, al), StringEntry(D, an), BooleanEntry(G, ar), IntegerEntry(g, ap), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, aq), IntegerEntry(at, 1), IntegerEntry(aw, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(ax, 1), IntegerEntry(az, 1), IntegerEntry(aA, 1), IntegerEntry(aB, 1), IntegerEntry(aF, 1), IntegerEntry(aE, 1), IntegerEntry(as, 1), IntegerEntry(aH, 1), IntegerEntry(aI, 1), IntegerEntry(aK, 1), IntegerEntry(aM, 1), IntegerEntry(aL, 1), IntegerEntry(aJ, 1), IntegerEntry(aD, 1), IntegerEntry(ay, 1), IntegerEntry(aG, 1), IntegerEntry(aC, 1), StringEntry(E, ao)]
207220 }
208221 else throw("Smart Contract has been started")
209222 else throw("Only the Admin itself can invoke this function")
212225
213226
214227 @Callable(r)
215-func activate (aH) = if (if ((r.caller == this))
228+func activate (aN) = if (if ((r.caller == this))
216229 then true
217230 else (r.caller == W()))
218- then [BooleanEntry(u, aH)]
231+ then [BooleanEntry(u, aN)]
219232 else throw("Only the Admin itself can invoke this function")
220233
221234
222235
223236 @Callable(r)
224-func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
237+func maintenance (aO,aP,aQ) = if (if ((r.caller == this))
225238 then true
226239 else (r.caller == W()))
227- then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
240+ then [BooleanEntry(v, aO), BooleanEntry(w, aP), BooleanEntry(x, aQ)]
228241 else throw("Only the Admin itself can invoke this function")
229242
230243
231244
232245 @Callable(r)
233-func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
246+func percentualRateFeeSwapEdit (aR) = if (if ((r.caller == this))
234247 then true
235248 else (r.caller == W()))
236- then [IntegerEntry(g, aL)]
249+ then [IntegerEntry(g, aR)]
237250 else throw("Only the Admin itself can invoke this function")
238251
239252
240253
241254 @Callable(r)
242-func acceptWaves (aM) = if (if ((r.caller == this))
255+func acceptWaves (aS) = if (if ((r.caller == this))
243256 then true
244257 else (r.caller == W()))
245- then [BooleanEntry(G, aM)]
258+ then [BooleanEntry(G, aS)]
246259 else throw("Only the Admin itself can invoke this function")
247260
248261
249262
250263 @Callable(r)
251-func blockDistribution (aN) = if (if ((r.caller == this))
264+func blockDistribution (aT) = if (if ((r.caller == this))
252265 then true
253266 else (r.caller == W()))
254- then [IntegerEntry(y, aN)]
267+ then [IntegerEntry(y, aT)]
255268 else throw("Only the Admin itself can invoke this function")
256269
257270
266279
267280
268281 @Callable(r)
269-func lpAssetCreateForPairPool (J,K,aO,aP) = {
270- let aQ = if ((J == F))
282+func lpAssetCreateForPairPool (J,K,aU,aV) = {
283+ let aW = if ((J == F))
271284 then F
272285 else s(fromBase58String(J))
273- let aR = if ((K == F))
286+ let aX = if ((K == F))
274287 then F
275288 else s(fromBase58String(K))
276- let aS = if (aP)
277- then aO
278- else ((aQ + "_") + aR)
289+ let aY = if (aV)
290+ then aU
291+ else ((aW + "_") + aX)
279292 let M = L(I(J, K))
280293 if (if ((r.caller == this))
281294 then true
282295 else (r.caller == W()))
283296 then if ((M != false))
284297 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]
298+ let aZ = Issue(aY, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
299+ let ba = calculateAssetId(aZ)
300+[StringEntry((b + I(J, K)), toBase58String(ba)), aZ]
288301 }
289302 else throw("Invalid Pool Key. Try inverting the assets")
290303 else throw("Only the Admin itself can invoke this function")
293306
294307
295308 @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)
309+func deposit (bb,T,U) = {
310+ let bc = getBooleanValue(this, u)
311+ let bd = getBooleanValue(this, x)
312+ let be = getStringValue(this, a)
313+ let bf = if (bb)
301314 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))
315+ else be
316+ if (bc)
317+ then if (!(bd))
318+ then if ((r.payments[0].assetId != fromBase58String(bf)))
319+ then throw((("Invalid asset! Kindly Deposit Only " + be) + " or valid asset lp"))
320+ else if (!(bb))
308321 then {
309- let ba = toBase58String(r.caller.bytes)
310- let bb = {
311- let q = getInteger(this, ba)
322+ let bg = toBase58String(r.caller.bytes)
323+ let bh = {
324+ let q = getInteger(this, bg)
312325 if ($isInstanceOf(q, "Int"))
313326 then {
314327 let Q = q
316329 }
317330 else 0
318331 }
319- let bc = if ((bb == 0))
332+ let bi = if ((bh == 0))
320333 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 = {
334+ else valueOrElse(getIntegerValue(this, (h + bg)), height)
335+ let bj = (bh + r.payments[0].amount)
336+ let bk = IntegerEntry(bg, bj)
337+ let bl = IntegerEntry((h + bg), bi)
338+ let bm = {
326339 let q = getInteger(this, "Total_Tokens_Locked:")
327340 if ($isInstanceOf(q, "Int"))
328341 then {
331344 }
332345 else 0
333346 }
334- let bh = (bg + r.payments[0].amount)
335- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
336-[be, bf, bi]
347+ let bn = (bm + r.payments[0].amount)
348+ let bo = IntegerEntry("Total_Tokens_Locked:", bn)
349+[bk, bl, bo]
337350 }
338351 else {
339- let bj = I(T, U)
340- let M = L(bj)
352+ let bp = I(T, U)
353+ let M = L(bp)
341354 if ((M != false))
342355 then {
343- let ba = toBase58String(r.caller.bytes)
344- let bb = {
345- let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bj))
356+ let bg = toBase58String(r.caller.bytes)
357+ let bh = {
358+ let q = getInteger(this, ((("STAKE_LP_" + bg) + "_") + bp))
346359 if ($isInstanceOf(q, "Int"))
347360 then {
348361 let Q = q
350363 }
351364 else 0
352365 }
353- let bc = if ((bb == 0))
366+ let bi = if ((bh == 0))
354367 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))
368+ else valueOrElse(getIntegerValue(this, ((((h + "_") + bg) + "_") + bp)), height)
369+ let bj = (bh + r.payments[0].amount)
370+ let bk = IntegerEntry(((("STAKE_LP_" + bg) + "_") + bp), bj)
371+ let bl = IntegerEntry(((((h + "_") + bg) + "_") + bp), height)
372+ let bm = {
373+ let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bp))
361374 if ($isInstanceOf(q, "Int"))
362375 then {
363376 let Q = q
365378 }
366379 else 0
367380 }
368- let bh = (bg + r.payments[0].amount)
369- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
370-[be, bf, bi]
381+ let bn = (bm + r.payments[0].amount)
382+ let bo = IntegerEntry(("Total_Tokens_LP_Locked_" + bp), bn)
383+[bk, bl, bo]
371384 }
372385 else throw("Invalid Pool key.")
373386 }
378391
379392
380393 @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))
394+func remove (bb,T,U,bq) = {
395+ let bc = getBooleanValue(this, u)
396+ let bd = getBooleanValue(this, x)
397+ let br = r.payments[0]
398+ let be = fromBase58String(getStringValue(this, a))
399+ if (bc)
400+ then if (!(bd))
388401 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)
402+ let bg = toBase58String(r.caller.bytes)
403+ let bh = {
404+ let q = if (bb)
405+ then getIntegerValue(this, ((("STAKE_LP_" + bg) + "_") + I(T, U)))
406+ else getIntegerValue(this, bg)
394407 if ($isInstanceOf(q, "Int"))
395408 then {
396409 let Q = q
398411 }
399412 else 0
400413 }
401- let bm = if (aV)
402- then ((((h + "_") + ba) + "_") + I(T, U))
403- else (h + ba)
404- let bg = if (aV)
414+ let bs = if (bb)
415+ then ((((h + "_") + bg) + "_") + I(T, U))
416+ else (h + bg)
417+ let bm = if (bb)
405418 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
406419 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)
420+ let bn = (bm - bq)
421+ let bt = (height - getIntegerValue(this, bs))
422+ let bu = getIntegerValue(this, y)
423+ let bv = ((bt * bu) * i)
424+ let bw = (bv / (bm / bq))
425+ if ((0 > bq))
426+ then throw(if (bb)
414427 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
415428 else "Can't withdraw negative AxAi amount")
416429 else {
417- let bd = (bb - bk)
418- if ((0 > bd))
419- then throw(if (aV)
430+ let bj = (bh - bq)
431+ if ((0 > bj))
432+ then throw(if (bb)
420433 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
421434 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)
435+ else [IntegerEntry(if (bb)
436+ then ((("STAKE_LP_" + bg) + "_") + I(T, U))
437+ else bg, bj), IntegerEntry(if (bb)
425438 then ("Total_Tokens_LP_Locked_" + I(T, U))
426- else "Total_Tokens_Locked:", bh), ScriptTransfer(r.caller, bk, if (aV)
439+ else "Total_Tokens_Locked:", bn), ScriptTransfer(r.caller, bq, if (bb)
427440 then fromBase58String(getStringValue(this, (b + I(T, U))))
428- else aY), ScriptTransfer(r.caller, bq, aY)]
441+ else be), ScriptTransfer(r.caller, bw, be)]
429442 }
430443 }
431444 else throw("liquidity is currently under maintenance.")
436449
437450 @Callable(r)
438451 func addLiquidity (T,U) = {
439- let aW = getBooleanValue(this, u)
440- let br = getBooleanValue(this, v)
452+ let bc = getBooleanValue(this, u)
453+ let bx = getBooleanValue(this, v)
441454 let aa = getBooleanValue(this, G)
442455 let M = L(I(T, U))
443456 let J = r.payments[0].assetId
444457 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)))
458+ let by = fromBase58String(getStringValue(this, A))
459+ let bz = fromBase58String(getStringValue(this, C))
460+ let bA = fromBase58String(getStringValue(this, B))
461+ let bB = fromBase58String(getStringValue(this, D))
462+ let bC = fromBase58String(getStringValue(this, E))
463+ let be = fromBase58String(getStringValue(this, a))
464+ let bf = getStringValue(this, (b + I(T, U)))
465+ let bD = if ((2 > ab(((I(T, U) + "_") + T), false)))
453466 then r.payments[0].amount
454467 else ab(((I(T, U) + "_") + T), false)
455- let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
468+ let bE = if ((2 > ab(((I(T, U) + "_") + T), false)))
456469 then r.payments[1].amount
457470 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))
471+ let bF = ab(bf, true)
472+ let bG = ((bD + bE) / bF)
473+ let bH = (r.payments[0].amount * (bE / bD))
474+ let bI = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
475+ let bJ = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
476+ let bK = if (if (if ((r.payments[1].amount == bH))
464477 then true
465- else (bC > r.payments[1].amount))
478+ else (bI > r.payments[1].amount))
466479 then true
467- else (r.payments[1].amount > bD))
480+ else (r.payments[1].amount > bJ))
468481 then true
469482 else false
470- if (aW)
471- then if (!(br))
483+ if (bc)
484+ then if (!(bx))
472485 then if (if (if (!((J == K)))
473486 then X(J, T, aa)
474487 else false)
475488 then X(K, U, aa)
476489 else false)
477- then if (if (if (if (if (if (if (if ((J == bs))
490+ then if (if (if (if (if (if (if (if ((J == by))
478491 then true
479- else (J == bt))
492+ else (J == bz))
480493 then true
481- else (J == bu))
494+ else (J == bA))
482495 then true
483- else (J == bv))
496+ else (J == bB))
484497 then true
485- else (J == aY))
498+ else (J == be))
486499 then true
487500 else (J == H))
488501 then true
489- else (J == bw))
490- then if (if (if (if (if (if ((K == bs))
502+ else (J == bC))
503+ then if (if (if (if (if (if ((K == by))
491504 then true
492- else (K == bt))
505+ else (K == bz))
493506 then true
494- else (K == bu))
507+ else (K == bA))
495508 then true
496- else (K == bv))
509+ else (K == bB))
497510 then true
498- else (K == aY))
511+ else (K == be))
499512 then true
500513 else (K == H))
501514 then true
502- else (K == bw)
515+ else (K == bC)
503516 else false)
504517 then if ((M != false))
505- then if (bE)
518+ then if (bK)
506519 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- let bJ = if ((bx == r.payments[0].amount))
520+ let bg = toBase58String(r.caller.bytes)
521+ let bh = N(bg, I(T, U))
522+ let bL = P(bg, I(T, U), T)
523+ let bM = P(bg, I(T, U), U)
524+ let bN = R(I(T, U), T)
525+ let bO = R(I(T, U), U)
526+ let bP = if ((bD == r.payments[0].amount))
514527 then (1 * i)
515- else toInt((((toBigInt(r.payments[0].amount) * toBigInt(i)) + (toBigInt(r.payments[1].amount) * toBigInt(i))) / (((toBigInt(bx) * toBigInt(i)) + (toBigInt(by) * toBigInt(i))) / toBigInt(bz))))
516- let bK = (bF + r.payments[0].amount)
517- let bL = (bG + r.payments[1].amount)
518- let bM = (bb + bJ)
519- let bN = (bH + r.payments[0].amount)
520- let bO = (bI + r.payments[1].amount)
521-[Reissue(fromBase58String(aZ), bJ, true), ScriptTransfer(Address(r.caller.bytes), bJ, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bK), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bL), IntegerEntry(((I(T, U) + "_") + ba), bM), IntegerEntry(((I(T, U) + "_") + T), bN), IntegerEntry(((I(T, U) + "_") + U), bO), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bJ))]
528+ else toInt((((toBigInt(r.payments[0].amount) * toBigInt(i)) + (toBigInt(r.payments[1].amount) * toBigInt(i))) / (((toBigInt(bD) * toBigInt(i)) + (toBigInt(bE) * toBigInt(i))) / toBigInt(bF))))
529+ let bQ = (bL + r.payments[0].amount)
530+ let bR = (bM + r.payments[1].amount)
531+ let bS = (bh + bP)
532+ let bT = (bN + r.payments[0].amount)
533+ let bU = (bO + r.payments[1].amount)
534+[Reissue(fromBase58String(bf), bP, true), ScriptTransfer(Address(r.caller.bytes), bP, fromBase58String(bf)), IntegerEntry(S(T, U, bg), height), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + T), bQ), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + U), bR), IntegerEntry(((I(T, U) + "_") + bg), bS), IntegerEntry(((I(T, U) + "_") + T), bT), IntegerEntry(((I(T, U) + "_") + U), bU), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(bf, (p(bf) + bP))]
522535 }
523- 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)))
536+ else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bE / bD)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bK)))
524537 else throw("Invalid Pool Key.")
525538 else throw("Invalid Asset1 or Asset2!")
526539 else throw("Asset1 cannot be equal to Asset2")
531544
532545
533546 @Callable(r)
534-func removeLiquidity (T,U,bP) = {
535- let ba = toBase58String(r.caller.bytes)
536- let aW = getBooleanValue(this, u)
537- let br = getBooleanValue(this, v)
547+func removeLiquidity (T,U,bV) = {
548+ let bg = toBase58String(r.caller.bytes)
549+ let bc = getBooleanValue(this, u)
550+ let bx = getBooleanValue(this, v)
538551 let aa = getBooleanValue(this, G)
539- let bj = I(T, U)
540- let M = L(bj)
552+ let bp = I(T, U)
553+ let M = L(bp)
541554 let J = if ((T == F))
542555 then if (aa)
543556 then H
548561 then H
549562 else throw("The smart contract does not currently support Waves.")
550563 else fromBase58String(U)
551- let bs = fromBase58String(getStringValue(this, A))
552- let bt = fromBase58String(getStringValue(this, C))
553- let bu = fromBase58String(getStringValue(this, B))
554- let bv = fromBase58String(getStringValue(this, D))
555- let aY = fromBase58String(getStringValue(this, a))
556- let bw = fromBase58String(getStringValue(this, E))
557- let aZ = getStringValue(this, (b + I(T, U)))
558- let bb = N(ba, I(T, U))
559- let bQ = V(ba, bj)
560- let bR = ab(aZ, true)
561- let bx = ab(((I(T, U) + "_") + T), false)
562- let by = ab(((I(T, U) + "_") + U), false)
563- if (aW)
564- then if (!(br))
564+ let by = fromBase58String(getStringValue(this, A))
565+ let bz = fromBase58String(getStringValue(this, C))
566+ let bA = fromBase58String(getStringValue(this, B))
567+ let bB = fromBase58String(getStringValue(this, D))
568+ let be = fromBase58String(getStringValue(this, a))
569+ let bC = fromBase58String(getStringValue(this, E))
570+ let bf = getStringValue(this, (b + I(T, U)))
571+ let bh = N(bg, I(T, U))
572+ let bW = V(bg, bp)
573+ let bX = ab(bf, true)
574+ let bD = ab(((I(T, U) + "_") + T), false)
575+ let bE = ab(((I(T, U) + "_") + U), false)
576+ if (bc)
577+ then if (!(bx))
565578 then if (!((T == U)))
566- then if (if (if (if (if (if (if (if ((J == bs))
579+ then if (if (if (if (if (if (if (if ((J == by))
567580 then true
568- else (J == bt))
581+ else (J == bz))
569582 then true
570- else (J == bu))
583+ else (J == bA))
571584 then true
572- else (J == bv))
585+ else (J == bB))
573586 then true
574- else (J == aY))
587+ else (J == be))
575588 then true
576589 else (J == H))
577590 then true
578- else (J == bw))
579- then if (if (if (if (if (if ((K == bs))
591+ else (J == bC))
592+ then if (if (if (if (if (if ((K == by))
580593 then true
581- else (K == bt))
594+ else (K == bz))
582595 then true
583- else (K == bu))
596+ else (K == bA))
584597 then true
585- else (K == bv))
598+ else (K == bB))
586599 then true
587- else (K == aY))
600+ else (K == be))
588601 then true
589602 else (K == H))
590603 then true
591- else (K == bw)
604+ else (K == bC)
592605 else false)
593606 then if ((M != false))
594- then if (!((bb == 0)))
595- then if (((bb - bQ) >= bP))
596- then if (if ((bx > 2))
607+ then if (!((bh == 0)))
608+ then if (((bh - bW) >= bV))
609+ then if (if ((bD > 2))
597610 then true
598- else (by > 2))
611+ else (bE > 2))
599612 then {
600- let bS = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bR)) * toBigInt(bx)) / toBigInt(i))) - 1)
601- let bT = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bR)) * toBigInt(by)) / toBigInt(i))) - 1)
602- let bH = R(I(T, U), T)
603- let bI = R(I(T, U), U)
604- let bF = P(ba, I(T, U), T)
605- let bG = P(ba, I(T, U), U)
606- let bK = (bF - bS)
607- let bL = (bG - bT)
608- let bM = (bb - bP)
609- let bN = (bH - bS)
610- let bO = (bI - bT)
611- if ((r.payments[0].assetId == fromBase58String(aZ)))
612- then if ((bP == r.payments[0].amount))
613- then [Burn(fromBase58String(aZ), bP), ScriptTransfer(Address(r.caller.bytes), bS, J), ScriptTransfer(Address(r.caller.bytes), bT, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bK), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bL), IntegerEntry(((I(T, U) + "_") + ba), bM), IntegerEntry(((I(T, U) + "_") + T), bN), IntegerEntry(((I(T, U) + "_") + U), bO), IntegerEntry(T, (p(T) - bS)), IntegerEntry(U, (p(U) - bT)), IntegerEntry(aZ, (p(aZ) - bP))]
614- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bP)))
613+ let bY = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bX)) * toBigInt(bD)) / toBigInt(i))) - 1)
614+ let bZ = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bX)) * toBigInt(bE)) / toBigInt(i))) - 1)
615+ let bN = R(I(T, U), T)
616+ let bO = R(I(T, U), U)
617+ let bL = P(bg, I(T, U), T)
618+ let bM = P(bg, I(T, U), U)
619+ let bQ = (bL - bY)
620+ let bR = (bM - bZ)
621+ let bS = (bh - bV)
622+ let bT = (bN - bY)
623+ let bU = (bO - bZ)
624+ if ((r.payments[0].assetId == fromBase58String(bf)))
625+ then if ((bV == r.payments[0].amount))
626+ then [Burn(fromBase58String(bf), bV), ScriptTransfer(Address(r.caller.bytes), bY, J), ScriptTransfer(Address(r.caller.bytes), bZ, K), IntegerEntry(S(T, U, bg), height), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + T), bQ), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + U), bR), IntegerEntry(((I(T, U) + "_") + bg), bS), IntegerEntry(((I(T, U) + "_") + T), bT), IntegerEntry(((I(T, U) + "_") + U), bU), IntegerEntry(T, (p(T) - bY)), IntegerEntry(U, (p(U) - bZ)), IntegerEntry(bf, (p(bf) - bV))]
627+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bV)))
615628 else throw("Requires an lp asset as payment to remove locked amounts.")
616629 }
617630 else throw("Pool has no liquidity.")
618- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bP)))
631+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bV)))
619632 else throw("You have no locked values ​​in the pool")
620633 else throw("Invalid Pool Key.")
621634 else throw("Invalid Asset1 or Asset2!")
628641
629642 @Callable(r)
630643 func swap (T,U) = {
631- let ba = toBase58String(r.caller.bytes)
644+ let bg = toBase58String(r.caller.bytes)
632645 let aa = getBooleanValue(this, G)
633- let aW = getBooleanValue(this, u)
634- let bU = getBooleanValue(this, w)
635- let bj = I(T, U)
636- let M = L(bj)
646+ let bc = getBooleanValue(this, u)
647+ let ca = getBooleanValue(this, w)
648+ let bp = I(T, U)
649+ let M = L(bp)
637650 let J = r.payments[0].assetId
638- let bs = fromBase58String(getStringValue(this, A))
639- let bt = fromBase58String(getStringValue(this, C))
640- let bu = fromBase58String(getStringValue(this, B))
641- let bv = fromBase58String(getStringValue(this, D))
642- let aY = fromBase58String(getStringValue(this, a))
643- let bw = fromBase58String(getStringValue(this, E))
644- let aZ = getStringValue(this, (b + I(T, U)))
645- let bV = ab(((I(T, U) + "_") + T), false)
646- let bW = ab(((I(T, U) + "_") + U), false)
647- let bX = getIntegerValue(this, g)
648- let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bW), toBigInt(bV)))
649- let bZ = toInt(((bY - ((bY / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
650- let ca = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bW)))
651- let cb = toInt(((ca - ((ca / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
652- let cc = if (if ((J == H))
651+ let by = fromBase58String(getStringValue(this, A))
652+ let bz = fromBase58String(getStringValue(this, C))
653+ let bA = fromBase58String(getStringValue(this, B))
654+ let bB = fromBase58String(getStringValue(this, D))
655+ let be = fromBase58String(getStringValue(this, a))
656+ let bC = fromBase58String(getStringValue(this, E))
657+ let bf = getStringValue(this, (b + I(T, U)))
658+ let cb = ab(((I(T, U) + "_") + T), false)
659+ let cc = ab(((I(T, U) + "_") + U), false)
660+ let cd = getIntegerValue(this, g)
661+ let ce = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(cc), toBigInt(cb)))
662+ let cf = toInt(((ce - ((ce / toBigInt(cd)) * toBigInt(100))) / toBigInt(i)))
663+ let cg = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(cb), toBigInt(cc)))
664+ let ch = toInt(((cg - ((cg / toBigInt(cd)) * toBigInt(100))) / toBigInt(i)))
665+ let ci = if (if ((J == H))
653666 then (T == F)
654667 else false)
655- then bZ
668+ then cf
656669 else if ((J == fromBase58String(T)))
657- then bZ
658- else cb
659- let cd = if ((J == H))
670+ then cf
671+ else ch
672+ let cj = if ((J == H))
660673 then F
661674 else if ((J == fromBase58String(T)))
662675 then T
663676 else U
664- let ce = if ((J == H))
677+ let ck = if ((J == H))
665678 then F
666679 else if ((J == fromBase58String(T)))
667680 then U
668681 else T
669- let cf = if (if ((J == H))
670- then (T == F)
671- else false)
672- then if ((U == "WAVES"))
673- then H
674- else fromBase58String(U)
675- else if (if ((U == F))
676- then (J == H)
677- else false)
678- then if ((T == "WAVES"))
679- then H
680- else fromBase58String(T)
681- else if ((fromBase58String(T) == J))
682- then fromBase58String(U)
683- else fromBase58String(T)
684- let cg = (R(I(T, U), ce) - cc)
685- let ch = (p(ce) - cc)
686- let ci = if ((0 > cg))
682+ let cl = ad(r.payments[0].assetId, T, U)
683+ let cm = (R(I(T, U), ck) - ci)
684+ let cn = (p(ck) - ci)
685+ let co = if ((0 > cm))
687686 then 0
688- else cg
689- let cj = if ((0 > ch))
687+ else cm
688+ let cp = if ((0 > cn))
690689 then 0
691- else ch
692- let ck = {
690+ else cn
691+ let cq = {
693692 let q = r.payments[0].assetId
694693 if ($isInstanceOf(q, "Unit"))
695694 then {
696- let cl = q
695+ let cr = q
697696 pow(10, 0, 8, 0, 0, HALFUP)
698697 }
699698 else if ($isInstanceOf(q, "ByteVector"))
700699 then {
701- let cm = q
702- pow(10, 0, value(assetInfo(cm)).decimals, 0, 0, HALFUP)
700+ let cs = q
701+ pow(10, 0, value(assetInfo(cs)).decimals, 0, 0, HALFUP)
703702 }
704703 else throw("Match error")
705704 }
706- if (aW)
707- then if (!(bU))
705+ if (bc)
706+ then if (!(ca))
708707 then if (if (!((T == U)))
709708 then if (X(J, T, aa))
710709 then true
711710 else X(J, U, aa)
712711 else false)
713- then if (if (if (if (if (if (if ((J == bs))
712+ then if (if (if (if (if (if (if ((J == by))
714713 then true
715- else (J == bt))
714+ else (J == bz))
716715 then true
717- else (J == bu))
716+ else (J == bA))
718717 then true
719- else (J == bv))
718+ else (J == bB))
720719 then true
721- else (J == aY))
720+ else (J == be))
722721 then true
723- else (J == bw))
722+ else (J == bC))
724723 then true
725724 else (J == H))
726725 then if ((M != false))
727- then if ((r.payments[1].assetId == aY))
726+ then if ((r.payments[1].assetId == be))
728727 then if ((r.payments[1].amount == 300000))
729- then if (if ((bV > 2))
728+ then if (if ((cb > 2))
730729 then true
731- else (bW > 2))
732- then [ScriptTransfer(Address(r.caller.bytes), if ((0 > cc))
733- then ck
734- else cc, cf), IntegerEntry(ce, cj), IntegerEntry(((I(T, U) + "_") + ce), ci), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) + r.payments[0].amount)), IntegerEntry(cd, (p(cd) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
730+ else (cc > 2))
731+ then [ScriptTransfer(Address(r.caller.bytes), if ((0 > ci))
732+ then cq
733+ else ci, cl), IntegerEntry(ck, cp), IntegerEntry(((I(T, U) + "_") + ck), co), IntegerEntry(((I(T, U) + "_") + cj), (R(I(T, U), cj) + r.payments[0].amount)), IntegerEntry(cj, (p(cj) + r.payments[0].amount)), IntegerEntry(toBase58String(be), (p(toBase58String(be)) + r.payments[1].amount))]
735734 else throw("Pool has no liquidity.")
736735 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
737736 else throw("Invalid rate asset")
743742 }
744743
745744
746-@Verifier(cn)
747-func co () = {
748- let q = cn
745+@Verifier(ct)
746+func cu () = {
747+ let q = ct
749748 if ($isInstanceOf(q, "Order"))
750749 then {
751- let cp = q
750+ let cv = q
752751 true
753752 }
754753 else if ($isInstanceOf(q, "ExchangeTransaction"))
755754 then {
756- let cq = q
755+ let cw = q
757756 true
758757 }
759758 else if ($isInstanceOf(q, "TransferTransaction"))
760759 then {
761- let cr = q
762- (cr.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
760+ let cx = q
761+ (cx.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
763762 }
764- else sigVerify(cn.bodyBytes, cn.proofs[0], cn.senderPublicKey)
763+ else sigVerify(ct.bodyBytes, ct.proofs[0], ct.senderPublicKey)
765764 }
766765
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
132132 func V (m,M) = {
133133 let q = getInteger(this, ((("STAKE_LP_" + m) + "_") + M))
134134 if ($isInstanceOf(q, "Int"))
135135 then {
136136 let Q = q
137137 Q
138138 }
139139 else 0
140140 }
141141
142142
143143 func W () = {
144144 let q = getString(this, "admin")
145145 if ($isInstanceOf(q, "String"))
146146 then {
147147 let O = q
148148 Address(fromBase58String(O))
149149 }
150150 else this
151151 }
152152
153153
154154 func X (Y,Z,aa) = if (if ((Y == H))
155- then (Z == "WAVES")
155+ then (Z == F)
156156 else false)
157157 then if (aa)
158158 then true
159159 else throw("The smart contract does not currently support Waves.")
160160 else if ((Y == fromBase58String(Z)))
161161 then true
162162 else false
163163
164164
165165 func ab (M,ac) = {
166166 let q = getInteger(this, M)
167167 if ($isInstanceOf(q, "Int"))
168168 then {
169169 let Q = q
170170 Q
171171 }
172172 else if (ac)
173173 then (1 * i)
174174 else 1
175175 }
176176
177177
178+func ad (ae,af,ag) = {
179+ let ah = if ((af == F))
180+ then H
181+ else fromBase58String(af)
182+ let ai = if ((ag == F))
183+ then H
184+ else fromBase58String(ag)
185+ if ((ae == ah))
186+ then ai
187+ else ah
188+ }
189+
190+
178191 @Callable(r)
179-func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = {
180- let am = I(af, F)
192+func constructor (aj,ak,al,am,an,ao,ap,aq,ar) = {
193+ let as = I(al, F)
181194 if (if ((r.caller == this))
182195 then true
183196 else (r.caller == W()))
184- then if ((valueOrElse(getInteger(this, am), 0) == 0))
197+ then if ((valueOrElse(getInteger(this, as), 0) == 0))
185198 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)]
199+ let at = I(ak, al)
200+ let au = I(ak, am)
201+ let av = I(ak, an)
202+ let aw = I(ak, F)
203+ let ax = I(ak, aj)
204+ let ay = I(ak, ao)
205+ let az = I(am, al)
206+ let aA = I(am, an)
207+ let aB = I(am, F)
208+ let aC = I(am, aj)
209+ let aD = I(am, ao)
210+ let aE = I(al, an)
211+ let aF = I(al, aj)
212+ let aG = I(al, ao)
213+ let aH = I(an, F)
214+ let aI = I(an, aj)
215+ let aJ = I(an, ao)
216+ let aK = I(aj, F)
217+ let aL = I(aj, ao)
218+ let aM = I(ao, F)
219+[StringEntry(a, aj), StringEntry(A, ak), StringEntry(C, am), StringEntry(B, al), StringEntry(D, an), BooleanEntry(G, ar), IntegerEntry(g, ap), BooleanEntry(u, true), BooleanEntry(w, false), BooleanEntry(v, false), BooleanEntry(x, false), IntegerEntry(y, aq), IntegerEntry(at, 1), IntegerEntry(aw, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(ax, 1), IntegerEntry(az, 1), IntegerEntry(aA, 1), IntegerEntry(aB, 1), IntegerEntry(aF, 1), IntegerEntry(aE, 1), IntegerEntry(as, 1), IntegerEntry(aH, 1), IntegerEntry(aI, 1), IntegerEntry(aK, 1), IntegerEntry(aM, 1), IntegerEntry(aL, 1), IntegerEntry(aJ, 1), IntegerEntry(aD, 1), IntegerEntry(ay, 1), IntegerEntry(aG, 1), IntegerEntry(aC, 1), StringEntry(E, ao)]
207220 }
208221 else throw("Smart Contract has been started")
209222 else throw("Only the Admin itself can invoke this function")
210223 }
211224
212225
213226
214227 @Callable(r)
215-func activate (aH) = if (if ((r.caller == this))
228+func activate (aN) = if (if ((r.caller == this))
216229 then true
217230 else (r.caller == W()))
218- then [BooleanEntry(u, aH)]
231+ then [BooleanEntry(u, aN)]
219232 else throw("Only the Admin itself can invoke this function")
220233
221234
222235
223236 @Callable(r)
224-func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
237+func maintenance (aO,aP,aQ) = if (if ((r.caller == this))
225238 then true
226239 else (r.caller == W()))
227- then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
240+ then [BooleanEntry(v, aO), BooleanEntry(w, aP), BooleanEntry(x, aQ)]
228241 else throw("Only the Admin itself can invoke this function")
229242
230243
231244
232245 @Callable(r)
233-func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
246+func percentualRateFeeSwapEdit (aR) = if (if ((r.caller == this))
234247 then true
235248 else (r.caller == W()))
236- then [IntegerEntry(g, aL)]
249+ then [IntegerEntry(g, aR)]
237250 else throw("Only the Admin itself can invoke this function")
238251
239252
240253
241254 @Callable(r)
242-func acceptWaves (aM) = if (if ((r.caller == this))
255+func acceptWaves (aS) = if (if ((r.caller == this))
243256 then true
244257 else (r.caller == W()))
245- then [BooleanEntry(G, aM)]
258+ then [BooleanEntry(G, aS)]
246259 else throw("Only the Admin itself can invoke this function")
247260
248261
249262
250263 @Callable(r)
251-func blockDistribution (aN) = if (if ((r.caller == this))
264+func blockDistribution (aT) = if (if ((r.caller == this))
252265 then true
253266 else (r.caller == W()))
254- then [IntegerEntry(y, aN)]
267+ then [IntegerEntry(y, aT)]
255268 else throw("Only the Admin itself can invoke this function")
256269
257270
258271
259272 @Callable(r)
260273 func addAdmin (m) = if (if ((r.caller == this))
261274 then true
262275 else (r.caller == W()))
263276 then [StringEntry("admin", m)]
264277 else throw("Only the Admin itself can invoke this function")
265278
266279
267280
268281 @Callable(r)
269-func lpAssetCreateForPairPool (J,K,aO,aP) = {
270- let aQ = if ((J == F))
282+func lpAssetCreateForPairPool (J,K,aU,aV) = {
283+ let aW = if ((J == F))
271284 then F
272285 else s(fromBase58String(J))
273- let aR = if ((K == F))
286+ let aX = if ((K == F))
274287 then F
275288 else s(fromBase58String(K))
276- let aS = if (aP)
277- then aO
278- else ((aQ + "_") + aR)
289+ let aY = if (aV)
290+ then aU
291+ else ((aW + "_") + aX)
279292 let M = L(I(J, K))
280293 if (if ((r.caller == this))
281294 then true
282295 else (r.caller == W()))
283296 then if ((M != false))
284297 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]
298+ let aZ = Issue(aY, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
299+ let ba = calculateAssetId(aZ)
300+[StringEntry((b + I(J, K)), toBase58String(ba)), aZ]
288301 }
289302 else throw("Invalid Pool Key. Try inverting the assets")
290303 else throw("Only the Admin itself can invoke this function")
291304 }
292305
293306
294307
295308 @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)
309+func deposit (bb,T,U) = {
310+ let bc = getBooleanValue(this, u)
311+ let bd = getBooleanValue(this, x)
312+ let be = getStringValue(this, a)
313+ let bf = if (bb)
301314 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))
315+ else be
316+ if (bc)
317+ then if (!(bd))
318+ then if ((r.payments[0].assetId != fromBase58String(bf)))
319+ then throw((("Invalid asset! Kindly Deposit Only " + be) + " or valid asset lp"))
320+ else if (!(bb))
308321 then {
309- let ba = toBase58String(r.caller.bytes)
310- let bb = {
311- let q = getInteger(this, ba)
322+ let bg = toBase58String(r.caller.bytes)
323+ let bh = {
324+ let q = getInteger(this, bg)
312325 if ($isInstanceOf(q, "Int"))
313326 then {
314327 let Q = q
315328 Q
316329 }
317330 else 0
318331 }
319- let bc = if ((bb == 0))
332+ let bi = if ((bh == 0))
320333 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 = {
334+ else valueOrElse(getIntegerValue(this, (h + bg)), height)
335+ let bj = (bh + r.payments[0].amount)
336+ let bk = IntegerEntry(bg, bj)
337+ let bl = IntegerEntry((h + bg), bi)
338+ let bm = {
326339 let q = getInteger(this, "Total_Tokens_Locked:")
327340 if ($isInstanceOf(q, "Int"))
328341 then {
329342 let Q = q
330343 Q
331344 }
332345 else 0
333346 }
334- let bh = (bg + r.payments[0].amount)
335- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
336-[be, bf, bi]
347+ let bn = (bm + r.payments[0].amount)
348+ let bo = IntegerEntry("Total_Tokens_Locked:", bn)
349+[bk, bl, bo]
337350 }
338351 else {
339- let bj = I(T, U)
340- let M = L(bj)
352+ let bp = I(T, U)
353+ let M = L(bp)
341354 if ((M != false))
342355 then {
343- let ba = toBase58String(r.caller.bytes)
344- let bb = {
345- let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bj))
356+ let bg = toBase58String(r.caller.bytes)
357+ let bh = {
358+ let q = getInteger(this, ((("STAKE_LP_" + bg) + "_") + bp))
346359 if ($isInstanceOf(q, "Int"))
347360 then {
348361 let Q = q
349362 Q
350363 }
351364 else 0
352365 }
353- let bc = if ((bb == 0))
366+ let bi = if ((bh == 0))
354367 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))
368+ else valueOrElse(getIntegerValue(this, ((((h + "_") + bg) + "_") + bp)), height)
369+ let bj = (bh + r.payments[0].amount)
370+ let bk = IntegerEntry(((("STAKE_LP_" + bg) + "_") + bp), bj)
371+ let bl = IntegerEntry(((((h + "_") + bg) + "_") + bp), height)
372+ let bm = {
373+ let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bp))
361374 if ($isInstanceOf(q, "Int"))
362375 then {
363376 let Q = q
364377 Q
365378 }
366379 else 0
367380 }
368- let bh = (bg + r.payments[0].amount)
369- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
370-[be, bf, bi]
381+ let bn = (bm + r.payments[0].amount)
382+ let bo = IntegerEntry(("Total_Tokens_LP_Locked_" + bp), bn)
383+[bk, bl, bo]
371384 }
372385 else throw("Invalid Pool key.")
373386 }
374387 else throw("liquidity is currently under maintenance.")
375388 else throw("dApp is currently under maintenance.")
376389 }
377390
378391
379392
380393 @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))
394+func remove (bb,T,U,bq) = {
395+ let bc = getBooleanValue(this, u)
396+ let bd = getBooleanValue(this, x)
397+ let br = r.payments[0]
398+ let be = fromBase58String(getStringValue(this, a))
399+ if (bc)
400+ then if (!(bd))
388401 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)
402+ let bg = toBase58String(r.caller.bytes)
403+ let bh = {
404+ let q = if (bb)
405+ then getIntegerValue(this, ((("STAKE_LP_" + bg) + "_") + I(T, U)))
406+ else getIntegerValue(this, bg)
394407 if ($isInstanceOf(q, "Int"))
395408 then {
396409 let Q = q
397410 Q
398411 }
399412 else 0
400413 }
401- let bm = if (aV)
402- then ((((h + "_") + ba) + "_") + I(T, U))
403- else (h + ba)
404- let bg = if (aV)
414+ let bs = if (bb)
415+ then ((((h + "_") + bg) + "_") + I(T, U))
416+ else (h + bg)
417+ let bm = if (bb)
405418 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
406419 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)
420+ let bn = (bm - bq)
421+ let bt = (height - getIntegerValue(this, bs))
422+ let bu = getIntegerValue(this, y)
423+ let bv = ((bt * bu) * i)
424+ let bw = (bv / (bm / bq))
425+ if ((0 > bq))
426+ then throw(if (bb)
414427 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
415428 else "Can't withdraw negative AxAi amount")
416429 else {
417- let bd = (bb - bk)
418- if ((0 > bd))
419- then throw(if (aV)
430+ let bj = (bh - bq)
431+ if ((0 > bj))
432+ then throw(if (bb)
420433 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
421434 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)
435+ else [IntegerEntry(if (bb)
436+ then ((("STAKE_LP_" + bg) + "_") + I(T, U))
437+ else bg, bj), IntegerEntry(if (bb)
425438 then ("Total_Tokens_LP_Locked_" + I(T, U))
426- else "Total_Tokens_Locked:", bh), ScriptTransfer(r.caller, bk, if (aV)
439+ else "Total_Tokens_Locked:", bn), ScriptTransfer(r.caller, bq, if (bb)
427440 then fromBase58String(getStringValue(this, (b + I(T, U))))
428- else aY), ScriptTransfer(r.caller, bq, aY)]
441+ else be), ScriptTransfer(r.caller, bw, be)]
429442 }
430443 }
431444 else throw("liquidity is currently under maintenance.")
432445 else throw("dApp is currently under maintenance.")
433446 }
434447
435448
436449
437450 @Callable(r)
438451 func addLiquidity (T,U) = {
439- let aW = getBooleanValue(this, u)
440- let br = getBooleanValue(this, v)
452+ let bc = getBooleanValue(this, u)
453+ let bx = getBooleanValue(this, v)
441454 let aa = getBooleanValue(this, G)
442455 let M = L(I(T, U))
443456 let J = r.payments[0].assetId
444457 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)))
458+ let by = fromBase58String(getStringValue(this, A))
459+ let bz = fromBase58String(getStringValue(this, C))
460+ let bA = fromBase58String(getStringValue(this, B))
461+ let bB = fromBase58String(getStringValue(this, D))
462+ let bC = fromBase58String(getStringValue(this, E))
463+ let be = fromBase58String(getStringValue(this, a))
464+ let bf = getStringValue(this, (b + I(T, U)))
465+ let bD = if ((2 > ab(((I(T, U) + "_") + T), false)))
453466 then r.payments[0].amount
454467 else ab(((I(T, U) + "_") + T), false)
455- let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
468+ let bE = if ((2 > ab(((I(T, U) + "_") + T), false)))
456469 then r.payments[1].amount
457470 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))
471+ let bF = ab(bf, true)
472+ let bG = ((bD + bE) / bF)
473+ let bH = (r.payments[0].amount * (bE / bD))
474+ let bI = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
475+ let bJ = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
476+ let bK = if (if (if ((r.payments[1].amount == bH))
464477 then true
465- else (bC > r.payments[1].amount))
478+ else (bI > r.payments[1].amount))
466479 then true
467- else (r.payments[1].amount > bD))
480+ else (r.payments[1].amount > bJ))
468481 then true
469482 else false
470- if (aW)
471- then if (!(br))
483+ if (bc)
484+ then if (!(bx))
472485 then if (if (if (!((J == K)))
473486 then X(J, T, aa)
474487 else false)
475488 then X(K, U, aa)
476489 else false)
477- then if (if (if (if (if (if (if (if ((J == bs))
490+ then if (if (if (if (if (if (if (if ((J == by))
478491 then true
479- else (J == bt))
492+ else (J == bz))
480493 then true
481- else (J == bu))
494+ else (J == bA))
482495 then true
483- else (J == bv))
496+ else (J == bB))
484497 then true
485- else (J == aY))
498+ else (J == be))
486499 then true
487500 else (J == H))
488501 then true
489- else (J == bw))
490- then if (if (if (if (if (if ((K == bs))
502+ else (J == bC))
503+ then if (if (if (if (if (if ((K == by))
491504 then true
492- else (K == bt))
505+ else (K == bz))
493506 then true
494- else (K == bu))
507+ else (K == bA))
495508 then true
496- else (K == bv))
509+ else (K == bB))
497510 then true
498- else (K == aY))
511+ else (K == be))
499512 then true
500513 else (K == H))
501514 then true
502- else (K == bw)
515+ else (K == bC)
503516 else false)
504517 then if ((M != false))
505- then if (bE)
518+ then if (bK)
506519 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- let bJ = if ((bx == r.payments[0].amount))
520+ let bg = toBase58String(r.caller.bytes)
521+ let bh = N(bg, I(T, U))
522+ let bL = P(bg, I(T, U), T)
523+ let bM = P(bg, I(T, U), U)
524+ let bN = R(I(T, U), T)
525+ let bO = R(I(T, U), U)
526+ let bP = if ((bD == r.payments[0].amount))
514527 then (1 * i)
515- else toInt((((toBigInt(r.payments[0].amount) * toBigInt(i)) + (toBigInt(r.payments[1].amount) * toBigInt(i))) / (((toBigInt(bx) * toBigInt(i)) + (toBigInt(by) * toBigInt(i))) / toBigInt(bz))))
516- let bK = (bF + r.payments[0].amount)
517- let bL = (bG + r.payments[1].amount)
518- let bM = (bb + bJ)
519- let bN = (bH + r.payments[0].amount)
520- let bO = (bI + r.payments[1].amount)
521-[Reissue(fromBase58String(aZ), bJ, true), ScriptTransfer(Address(r.caller.bytes), bJ, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bK), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bL), IntegerEntry(((I(T, U) + "_") + ba), bM), IntegerEntry(((I(T, U) + "_") + T), bN), IntegerEntry(((I(T, U) + "_") + U), bO), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bJ))]
528+ else toInt((((toBigInt(r.payments[0].amount) * toBigInt(i)) + (toBigInt(r.payments[1].amount) * toBigInt(i))) / (((toBigInt(bD) * toBigInt(i)) + (toBigInt(bE) * toBigInt(i))) / toBigInt(bF))))
529+ let bQ = (bL + r.payments[0].amount)
530+ let bR = (bM + r.payments[1].amount)
531+ let bS = (bh + bP)
532+ let bT = (bN + r.payments[0].amount)
533+ let bU = (bO + r.payments[1].amount)
534+[Reissue(fromBase58String(bf), bP, true), ScriptTransfer(Address(r.caller.bytes), bP, fromBase58String(bf)), IntegerEntry(S(T, U, bg), height), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + T), bQ), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + U), bR), IntegerEntry(((I(T, U) + "_") + bg), bS), IntegerEntry(((I(T, U) + "_") + T), bT), IntegerEntry(((I(T, U) + "_") + U), bU), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(bf, (p(bf) + bP))]
522535 }
523- 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)))
536+ else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bE / bD)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bK)))
524537 else throw("Invalid Pool Key.")
525538 else throw("Invalid Asset1 or Asset2!")
526539 else throw("Asset1 cannot be equal to Asset2")
527540 else throw("liquidity is currently under maintenance.")
528541 else throw("dApp is currently under maintenance.")
529542 }
530543
531544
532545
533546 @Callable(r)
534-func removeLiquidity (T,U,bP) = {
535- let ba = toBase58String(r.caller.bytes)
536- let aW = getBooleanValue(this, u)
537- let br = getBooleanValue(this, v)
547+func removeLiquidity (T,U,bV) = {
548+ let bg = toBase58String(r.caller.bytes)
549+ let bc = getBooleanValue(this, u)
550+ let bx = getBooleanValue(this, v)
538551 let aa = getBooleanValue(this, G)
539- let bj = I(T, U)
540- let M = L(bj)
552+ let bp = I(T, U)
553+ let M = L(bp)
541554 let J = if ((T == F))
542555 then if (aa)
543556 then H
544557 else throw("The smart contract does not currently support Waves.")
545558 else fromBase58String(T)
546559 let K = if ((U == F))
547560 then if (aa)
548561 then H
549562 else throw("The smart contract does not currently support Waves.")
550563 else fromBase58String(U)
551- let bs = fromBase58String(getStringValue(this, A))
552- let bt = fromBase58String(getStringValue(this, C))
553- let bu = fromBase58String(getStringValue(this, B))
554- let bv = fromBase58String(getStringValue(this, D))
555- let aY = fromBase58String(getStringValue(this, a))
556- let bw = fromBase58String(getStringValue(this, E))
557- let aZ = getStringValue(this, (b + I(T, U)))
558- let bb = N(ba, I(T, U))
559- let bQ = V(ba, bj)
560- let bR = ab(aZ, true)
561- let bx = ab(((I(T, U) + "_") + T), false)
562- let by = ab(((I(T, U) + "_") + U), false)
563- if (aW)
564- then if (!(br))
564+ let by = fromBase58String(getStringValue(this, A))
565+ let bz = fromBase58String(getStringValue(this, C))
566+ let bA = fromBase58String(getStringValue(this, B))
567+ let bB = fromBase58String(getStringValue(this, D))
568+ let be = fromBase58String(getStringValue(this, a))
569+ let bC = fromBase58String(getStringValue(this, E))
570+ let bf = getStringValue(this, (b + I(T, U)))
571+ let bh = N(bg, I(T, U))
572+ let bW = V(bg, bp)
573+ let bX = ab(bf, true)
574+ let bD = ab(((I(T, U) + "_") + T), false)
575+ let bE = ab(((I(T, U) + "_") + U), false)
576+ if (bc)
577+ then if (!(bx))
565578 then if (!((T == U)))
566- then if (if (if (if (if (if (if (if ((J == bs))
579+ then if (if (if (if (if (if (if (if ((J == by))
567580 then true
568- else (J == bt))
581+ else (J == bz))
569582 then true
570- else (J == bu))
583+ else (J == bA))
571584 then true
572- else (J == bv))
585+ else (J == bB))
573586 then true
574- else (J == aY))
587+ else (J == be))
575588 then true
576589 else (J == H))
577590 then true
578- else (J == bw))
579- then if (if (if (if (if (if ((K == bs))
591+ else (J == bC))
592+ then if (if (if (if (if (if ((K == by))
580593 then true
581- else (K == bt))
594+ else (K == bz))
582595 then true
583- else (K == bu))
596+ else (K == bA))
584597 then true
585- else (K == bv))
598+ else (K == bB))
586599 then true
587- else (K == aY))
600+ else (K == be))
588601 then true
589602 else (K == H))
590603 then true
591- else (K == bw)
604+ else (K == bC)
592605 else false)
593606 then if ((M != false))
594- then if (!((bb == 0)))
595- then if (((bb - bQ) >= bP))
596- then if (if ((bx > 2))
607+ then if (!((bh == 0)))
608+ then if (((bh - bW) >= bV))
609+ then if (if ((bD > 2))
597610 then true
598- else (by > 2))
611+ else (bE > 2))
599612 then {
600- let bS = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bR)) * toBigInt(bx)) / toBigInt(i))) - 1)
601- let bT = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bR)) * toBigInt(by)) / toBigInt(i))) - 1)
602- let bH = R(I(T, U), T)
603- let bI = R(I(T, U), U)
604- let bF = P(ba, I(T, U), T)
605- let bG = P(ba, I(T, U), U)
606- let bK = (bF - bS)
607- let bL = (bG - bT)
608- let bM = (bb - bP)
609- let bN = (bH - bS)
610- let bO = (bI - bT)
611- if ((r.payments[0].assetId == fromBase58String(aZ)))
612- then if ((bP == r.payments[0].amount))
613- then [Burn(fromBase58String(aZ), bP), ScriptTransfer(Address(r.caller.bytes), bS, J), ScriptTransfer(Address(r.caller.bytes), bT, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bK), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bL), IntegerEntry(((I(T, U) + "_") + ba), bM), IntegerEntry(((I(T, U) + "_") + T), bN), IntegerEntry(((I(T, U) + "_") + U), bO), IntegerEntry(T, (p(T) - bS)), IntegerEntry(U, (p(U) - bT)), IntegerEntry(aZ, (p(aZ) - bP))]
614- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bP)))
613+ let bY = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bX)) * toBigInt(bD)) / toBigInt(i))) - 1)
614+ let bZ = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bX)) * toBigInt(bE)) / toBigInt(i))) - 1)
615+ let bN = R(I(T, U), T)
616+ let bO = R(I(T, U), U)
617+ let bL = P(bg, I(T, U), T)
618+ let bM = P(bg, I(T, U), U)
619+ let bQ = (bL - bY)
620+ let bR = (bM - bZ)
621+ let bS = (bh - bV)
622+ let bT = (bN - bY)
623+ let bU = (bO - bZ)
624+ if ((r.payments[0].assetId == fromBase58String(bf)))
625+ then if ((bV == r.payments[0].amount))
626+ then [Burn(fromBase58String(bf), bV), ScriptTransfer(Address(r.caller.bytes), bY, J), ScriptTransfer(Address(r.caller.bytes), bZ, K), IntegerEntry(S(T, U, bg), height), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + T), bQ), IntegerEntry(((((bg + "_") + I(T, U)) + "_") + U), bR), IntegerEntry(((I(T, U) + "_") + bg), bS), IntegerEntry(((I(T, U) + "_") + T), bT), IntegerEntry(((I(T, U) + "_") + U), bU), IntegerEntry(T, (p(T) - bY)), IntegerEntry(U, (p(U) - bZ)), IntegerEntry(bf, (p(bf) - bV))]
627+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bV)))
615628 else throw("Requires an lp asset as payment to remove locked amounts.")
616629 }
617630 else throw("Pool has no liquidity.")
618- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bP)))
631+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bV)))
619632 else throw("You have no locked values ​​in the pool")
620633 else throw("Invalid Pool Key.")
621634 else throw("Invalid Asset1 or Asset2!")
622635 else throw("Asset1 cannot be equal to Asset2")
623636 else throw("liquidity is currently under maintenance.")
624637 else throw("dApp is currently under maintenance.")
625638 }
626639
627640
628641
629642 @Callable(r)
630643 func swap (T,U) = {
631- let ba = toBase58String(r.caller.bytes)
644+ let bg = toBase58String(r.caller.bytes)
632645 let aa = getBooleanValue(this, G)
633- let aW = getBooleanValue(this, u)
634- let bU = getBooleanValue(this, w)
635- let bj = I(T, U)
636- let M = L(bj)
646+ let bc = getBooleanValue(this, u)
647+ let ca = getBooleanValue(this, w)
648+ let bp = I(T, U)
649+ let M = L(bp)
637650 let J = r.payments[0].assetId
638- let bs = fromBase58String(getStringValue(this, A))
639- let bt = fromBase58String(getStringValue(this, C))
640- let bu = fromBase58String(getStringValue(this, B))
641- let bv = fromBase58String(getStringValue(this, D))
642- let aY = fromBase58String(getStringValue(this, a))
643- let bw = fromBase58String(getStringValue(this, E))
644- let aZ = getStringValue(this, (b + I(T, U)))
645- let bV = ab(((I(T, U) + "_") + T), false)
646- let bW = ab(((I(T, U) + "_") + U), false)
647- let bX = getIntegerValue(this, g)
648- let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bW), toBigInt(bV)))
649- let bZ = toInt(((bY - ((bY / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
650- let ca = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bW)))
651- let cb = toInt(((ca - ((ca / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
652- let cc = if (if ((J == H))
651+ let by = fromBase58String(getStringValue(this, A))
652+ let bz = fromBase58String(getStringValue(this, C))
653+ let bA = fromBase58String(getStringValue(this, B))
654+ let bB = fromBase58String(getStringValue(this, D))
655+ let be = fromBase58String(getStringValue(this, a))
656+ let bC = fromBase58String(getStringValue(this, E))
657+ let bf = getStringValue(this, (b + I(T, U)))
658+ let cb = ab(((I(T, U) + "_") + T), false)
659+ let cc = ab(((I(T, U) + "_") + U), false)
660+ let cd = getIntegerValue(this, g)
661+ let ce = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(cc), toBigInt(cb)))
662+ let cf = toInt(((ce - ((ce / toBigInt(cd)) * toBigInt(100))) / toBigInt(i)))
663+ let cg = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(cb), toBigInt(cc)))
664+ let ch = toInt(((cg - ((cg / toBigInt(cd)) * toBigInt(100))) / toBigInt(i)))
665+ let ci = if (if ((J == H))
653666 then (T == F)
654667 else false)
655- then bZ
668+ then cf
656669 else if ((J == fromBase58String(T)))
657- then bZ
658- else cb
659- let cd = if ((J == H))
670+ then cf
671+ else ch
672+ let cj = if ((J == H))
660673 then F
661674 else if ((J == fromBase58String(T)))
662675 then T
663676 else U
664- let ce = if ((J == H))
677+ let ck = if ((J == H))
665678 then F
666679 else if ((J == fromBase58String(T)))
667680 then U
668681 else T
669- let cf = if (if ((J == H))
670- then (T == F)
671- else false)
672- then if ((U == "WAVES"))
673- then H
674- else fromBase58String(U)
675- else if (if ((U == F))
676- then (J == H)
677- else false)
678- then if ((T == "WAVES"))
679- then H
680- else fromBase58String(T)
681- else if ((fromBase58String(T) == J))
682- then fromBase58String(U)
683- else fromBase58String(T)
684- let cg = (R(I(T, U), ce) - cc)
685- let ch = (p(ce) - cc)
686- let ci = if ((0 > cg))
682+ let cl = ad(r.payments[0].assetId, T, U)
683+ let cm = (R(I(T, U), ck) - ci)
684+ let cn = (p(ck) - ci)
685+ let co = if ((0 > cm))
687686 then 0
688- else cg
689- let cj = if ((0 > ch))
687+ else cm
688+ let cp = if ((0 > cn))
690689 then 0
691- else ch
692- let ck = {
690+ else cn
691+ let cq = {
693692 let q = r.payments[0].assetId
694693 if ($isInstanceOf(q, "Unit"))
695694 then {
696- let cl = q
695+ let cr = q
697696 pow(10, 0, 8, 0, 0, HALFUP)
698697 }
699698 else if ($isInstanceOf(q, "ByteVector"))
700699 then {
701- let cm = q
702- pow(10, 0, value(assetInfo(cm)).decimals, 0, 0, HALFUP)
700+ let cs = q
701+ pow(10, 0, value(assetInfo(cs)).decimals, 0, 0, HALFUP)
703702 }
704703 else throw("Match error")
705704 }
706- if (aW)
707- then if (!(bU))
705+ if (bc)
706+ then if (!(ca))
708707 then if (if (!((T == U)))
709708 then if (X(J, T, aa))
710709 then true
711710 else X(J, U, aa)
712711 else false)
713- then if (if (if (if (if (if (if ((J == bs))
712+ then if (if (if (if (if (if (if ((J == by))
714713 then true
715- else (J == bt))
714+ else (J == bz))
716715 then true
717- else (J == bu))
716+ else (J == bA))
718717 then true
719- else (J == bv))
718+ else (J == bB))
720719 then true
721- else (J == aY))
720+ else (J == be))
722721 then true
723- else (J == bw))
722+ else (J == bC))
724723 then true
725724 else (J == H))
726725 then if ((M != false))
727- then if ((r.payments[1].assetId == aY))
726+ then if ((r.payments[1].assetId == be))
728727 then if ((r.payments[1].amount == 300000))
729- then if (if ((bV > 2))
728+ then if (if ((cb > 2))
730729 then true
731- else (bW > 2))
732- then [ScriptTransfer(Address(r.caller.bytes), if ((0 > cc))
733- then ck
734- else cc, cf), IntegerEntry(ce, cj), IntegerEntry(((I(T, U) + "_") + ce), ci), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) + r.payments[0].amount)), IntegerEntry(cd, (p(cd) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
730+ else (cc > 2))
731+ then [ScriptTransfer(Address(r.caller.bytes), if ((0 > ci))
732+ then cq
733+ else ci, cl), IntegerEntry(ck, cp), IntegerEntry(((I(T, U) + "_") + ck), co), IntegerEntry(((I(T, U) + "_") + cj), (R(I(T, U), cj) + r.payments[0].amount)), IntegerEntry(cj, (p(cj) + r.payments[0].amount)), IntegerEntry(toBase58String(be), (p(toBase58String(be)) + r.payments[1].amount))]
735734 else throw("Pool has no liquidity.")
736735 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
737736 else throw("Invalid rate asset")
738737 else throw("Invalid Swap Key.")
739738 else throw("Invalid Asset1 or Asset2!")
740739 else throw("Asset1 cannot be equal to Asset2")
741740 else throw("Swap is currently under maintenance.")
742741 else throw("dApp is currently under maintenance.")
743742 }
744743
745744
746-@Verifier(cn)
747-func co () = {
748- let q = cn
745+@Verifier(ct)
746+func cu () = {
747+ let q = ct
749748 if ($isInstanceOf(q, "Order"))
750749 then {
751- let cp = q
750+ let cv = q
752751 true
753752 }
754753 else if ($isInstanceOf(q, "ExchangeTransaction"))
755754 then {
756- let cq = q
755+ let cw = q
757756 true
758757 }
759758 else if ($isInstanceOf(q, "TransferTransaction"))
760759 then {
761- let cr = q
762- (cr.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
760+ let cx = q
761+ (cx.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
763762 }
764- else sigVerify(cn.bodyBytes, cn.proofs[0], cn.senderPublicKey)
763+ else sigVerify(ct.bodyBytes, ct.proofs[0], ct.senderPublicKey)
765764 }
766765

github/deemru/w8io/169f3d6 
273.74 ms