tx · HQW4vHYKpdyhR8DECMn17Kmt89TxY57ZZvfvLMtZZitz

3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU:  -0.03400000 Waves

2022.07.16 15:09 [2142281] smart account 3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU > SELF 0.00000000 Waves

{ "type": 13, "id": "HQW4vHYKpdyhR8DECMn17Kmt89TxY57ZZvfvLMtZZitz", "fee": 3400000, "feeAssetId": null, "timestamp": 1657973411446, "version": 2, "chainId": 84, "sender": "3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU", "senderPublicKey": "GDio3pYFUMSWQ3yen7TJP79nTPaGuPbxjKixvKLuYS8E", "proofs": [ "43Ah9eFsrm3NQZcdhrt6PFMesAPR2C6C52Jrb3UPhhpmnfNrfCEfBJz5sj2tQoZdng7kseD8XUdNB9xQN2xZSwNc" ], "script": "base64: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CQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAFGtleVBvb2xVc2R0TWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2R0RXVybgkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAABBrZXlQb29sTmdubldhdmVzCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAAFd2F2ZXMEAAAAFGtleVBvb2xOZ25uTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xOZ25uRXVy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", "height": 2142281, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: qgSu8ANW3gbCXjv4afS8rANZuuo8FGs4BJid83TaieB Next: 87W9Fs1WFuJ6J4ftKTv68iZfLHwU6baumEKrVems54nX Diff:
OldNewDifferences
347347 }
348348 else 0
349349 }
350+ let bj = if ((bb == 0))
351+ then height
352+ else valueOrElse(getIntegerValue(this, ((((h + "_") + ba) + "_") + bi)), height)
350353 let bc = (bb + r.payments[0].amount)
351354 let bd = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bi), bc)
352355 let be = IntegerEntry(((((h + "_") + ba) + "_") + bi), height)
372375
373376
374377 @Callable(r)
375-func remove (aV,T,U,bj) = {
378+func remove (aV,T,U,bk) = {
376379 let aW = getBooleanValue(this, u)
377380 let aX = getBooleanValue(this, x)
378- let bk = r.payments[0]
381+ let bl = r.payments[0]
379382 let aY = fromBase58String(getStringValue(this, a))
380383 if (aW)
381384 then if (!(aX))
392395 }
393396 else 0
394397 }
395- let bl = if (aV)
398+ let bm = if (aV)
396399 then ((((h + "_") + ba) + "_") + I(T, U))
397400 else (h + ba)
398401 let bf = if (aV)
399402 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
400403 else getIntegerValue(this, "Total_Tokens_Locked:")
401- let bg = (bf - bj)
402- let bm = (height - getIntegerValue(this, bl))
403- let bn = getIntegerValue(this, y)
404- let bo = ((bm * bn) * i)
405- let bp = (bo / (bf / bj))
406- if ((0 > bj))
404+ let bg = (bf - bk)
405+ let bn = (height - getIntegerValue(this, bm))
406+ let bo = getIntegerValue(this, y)
407+ let bp = ((bn * bo) * i)
408+ let bq = (bp / (bf / bk))
409+ if ((0 > bk))
407410 then throw(if (aV)
408411 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
409412 else "Can't withdraw negative AxAi amount")
410413 else {
411- let bc = (bb - bj)
414+ let bc = (bb - bk)
412415 if ((0 > bc))
413416 then throw(if (aV)
414417 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
417420 then ((("STAKE_LP_" + ba) + "_") + I(T, U))
418421 else ba, bc), IntegerEntry(if (aV)
419422 then ("Total_Tokens_LP_Locked_" + I(T, U))
420- else "Total_Tokens_Locked:", bg), ScriptTransfer(r.caller, bj, if (aV)
423+ else "Total_Tokens_Locked:", bg), ScriptTransfer(r.caller, bk, if (aV)
421424 then fromBase58String(getStringValue(this, (b + I(T, U))))
422- else aY), ScriptTransfer(r.caller, bp, aY)]
425+ else aY), ScriptTransfer(r.caller, bq, aY)]
423426 }
424427 }
425428 else throw("liquidity is currently under maintenance.")
431434 @Callable(r)
432435 func addLiquidity (T,U) = {
433436 let aW = getBooleanValue(this, u)
434- let bq = getBooleanValue(this, v)
437+ let br = getBooleanValue(this, v)
435438 let aa = getBooleanValue(this, G)
436439 let M = L(I(T, U))
437440 let J = r.payments[0].assetId
438441 let K = r.payments[1].assetId
439- let br = fromBase58String(getStringValue(this, A))
440- let bs = fromBase58String(getStringValue(this, C))
441- let bt = fromBase58String(getStringValue(this, B))
442- let bu = fromBase58String(getStringValue(this, D))
443- let bv = fromBase58String(getStringValue(this, E))
442+ let bs = fromBase58String(getStringValue(this, A))
443+ let bt = fromBase58String(getStringValue(this, C))
444+ let bu = fromBase58String(getStringValue(this, B))
445+ let bv = fromBase58String(getStringValue(this, D))
446+ let bw = fromBase58String(getStringValue(this, E))
444447 let aY = fromBase58String(getStringValue(this, a))
445448 let aZ = getStringValue(this, (b + I(T, U)))
446- let bw = if ((2 > ab(((I(T, U) + "_") + T), false)))
449+ let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
447450 then r.payments[0].amount
448451 else ab(((I(T, U) + "_") + T), false)
449- let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
452+ let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
450453 then r.payments[1].amount
451454 else ab(((I(T, U) + "_") + U), false)
452- let by = ab(aZ, true)
453- let bz = ((bw + bx) / by)
454- let bA = (r.payments[0].amount * (bx / bw))
455- let bB = if ((r.payments[1].amount == bA))
455+ let bz = ab(aZ, true)
456+ let bA = ((bx + by) / bz)
457+ let bB = (r.payments[0].amount * (by / bx))
458+ let bC = if ((r.payments[1].amount == bB))
456459 then true
457460 else false
458461 if (aW)
459- then if (!(bq))
462+ then if (!(br))
460463 then if (if (if (!((J == K)))
461464 then X(J, T, aa)
462465 else false)
463466 then X(K, U, aa)
464467 else false)
465- then if (if (if (if (if (if (if (if ((J == br))
466- then true
467- else (J == bs))
468+ then if (if (if (if (if (if (if (if ((J == bs))
468469 then true
469470 else (J == bt))
470471 then true
471472 else (J == bu))
472473 then true
474+ else (J == bv))
475+ then true
473476 else (J == aY))
474477 then true
475478 else (J == H))
476479 then true
477- else (J == bv))
478- then if (if (if (if (if (if ((K == br))
479- then true
480- else (K == bs))
480+ else (J == bw))
481+ then if (if (if (if (if (if ((K == bs))
481482 then true
482483 else (K == bt))
483484 then true
484485 else (K == bu))
485486 then true
487+ else (K == bv))
488+ then true
486489 else (K == aY))
487490 then true
488491 else (K == H))
489492 then true
490- else (K == bv)
493+ else (K == bw)
491494 else false)
492495 then if ((M != false))
493- then if (bB)
496+ then if (bC)
494497 then {
495498 let ba = toBase58String(r.caller.bytes)
496499 let bb = N(ba, I(T, U))
497- let bC = P(ba, I(T, U), T)
498- let bD = P(ba, I(T, U), U)
499- let bE = R(I(T, U), T)
500- let bF = R(I(T, U), U)
501- let bG = if ((bw == r.payments[0].amount))
500+ let bD = P(ba, I(T, U), T)
501+ let bE = P(ba, I(T, U), U)
502+ let bF = R(I(T, U), T)
503+ let bG = R(I(T, U), U)
504+ let bH = if ((bx == r.payments[0].amount))
502505 then (1 * i)
503- else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / by))
504- let bH = (bC + r.payments[0].amount)
505- let bI = (bD + r.payments[1].amount)
506- let bJ = (bb + bG)
507- let bK = (bE + r.payments[0].amount)
508- let bL = (bF + r.payments[1].amount)
509-[Reissue(fromBase58String(aZ), bG, true), ScriptTransfer(Address(r.caller.bytes), bG, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bH), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bI), IntegerEntry(((I(T, U) + "_") + ba), bJ), IntegerEntry(((I(T, U) + "_") + T), bK), IntegerEntry(((I(T, U) + "_") + U), bL), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bG))]
506+ else ((r.payments[0].amount + r.payments[1].amount) / ((bx + by) / bz))
507+ let bI = (bD + r.payments[0].amount)
508+ let bJ = (bE + r.payments[1].amount)
509+ let bK = (bb + bH)
510+ let bL = (bF + r.payments[0].amount)
511+ let bM = (bG + r.payments[1].amount)
512+[Reissue(fromBase58String(aZ), bH, true), ScriptTransfer(Address(r.caller.bytes), bH, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bI), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bJ), IntegerEntry(((I(T, U) + "_") + ba), bK), IntegerEntry(((I(T, U) + "_") + T), bL), IntegerEntry(((I(T, U) + "_") + U), bM), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bH))]
510513 }
511- else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bx / bw)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bB)))
514+ 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(bC)))
512515 else throw("Invalid Pool Key.")
513516 else throw("Invalid Asset1 or Asset2!")
514517 else throw("Asset1 cannot be equal to Asset2")
519522
520523
521524 @Callable(r)
522-func removeLiquidity (T,U,bM) = {
525+func removeLiquidity (T,U,bN) = {
523526 let ba = toBase58String(r.caller.bytes)
524527 let aW = getBooleanValue(this, u)
525- let bq = getBooleanValue(this, v)
528+ let br = getBooleanValue(this, v)
526529 let aa = getBooleanValue(this, G)
527530 let bi = I(T, U)
528531 let M = L(bi)
536539 then H
537540 else throw("The smart contract does not currently support Waves.")
538541 else fromBase58String(U)
539- let br = fromBase58String(getStringValue(this, A))
540- let bs = fromBase58String(getStringValue(this, C))
541- let bt = fromBase58String(getStringValue(this, B))
542- let bu = fromBase58String(getStringValue(this, D))
542+ let bs = fromBase58String(getStringValue(this, A))
543+ let bt = fromBase58String(getStringValue(this, C))
544+ let bu = fromBase58String(getStringValue(this, B))
545+ let bv = fromBase58String(getStringValue(this, D))
543546 let aY = fromBase58String(getStringValue(this, a))
544- let bv = fromBase58String(getStringValue(this, E))
547+ let bw = fromBase58String(getStringValue(this, E))
545548 let aZ = getStringValue(this, (b + I(T, U)))
546549 let bb = N(ba, I(T, U))
547- let bN = V(ba, bi)
548- let bO = ab(aZ, true)
549- let bw = ab(((I(T, U) + "_") + T), false)
550- let bx = ab(((I(T, U) + "_") + U), false)
550+ let bO = V(ba, bi)
551+ let bP = ab(aZ, true)
552+ let bx = ab(((I(T, U) + "_") + T), false)
553+ let by = ab(((I(T, U) + "_") + U), false)
551554 if (aW)
552- then if (!(bq))
555+ then if (!(br))
553556 then if (!((T == U)))
554- then if (if (if (if (if (if (if (if ((J == br))
555- then true
556- else (J == bs))
557+ then if (if (if (if (if (if (if (if ((J == bs))
557558 then true
558559 else (J == bt))
559560 then true
560561 else (J == bu))
561562 then true
563+ else (J == bv))
564+ then true
562565 else (J == aY))
563566 then true
564567 else (J == H))
565568 then true
566- else (J == bv))
567- then if (if (if (if (if (if ((K == br))
568- then true
569- else (K == bs))
569+ else (J == bw))
570+ then if (if (if (if (if (if ((K == bs))
570571 then true
571572 else (K == bt))
572573 then true
573574 else (K == bu))
574575 then true
576+ else (K == bv))
577+ then true
575578 else (K == aY))
576579 then true
577580 else (K == H))
578581 then true
579- else (K == bv)
582+ else (K == bw)
580583 else false)
581584 then if ((M != false))
582585 then if (!((bb == 0)))
583- then if (((bb - bN) >= bM))
584- then if (if ((bw > 2))
586+ then if (((bb - bO) >= bN))
587+ then if (if ((bx > 2))
585588 then true
586- else (bx > 2))
589+ else (by > 2))
587590 then {
588- let bP = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bO)) * toBigInt(bw)) / toBigInt(i)))
589- let bQ = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bO)) * toBigInt(bx)) / toBigInt(i)))
590- let bE = R(I(T, U), T)
591- let bF = R(I(T, U), U)
592- let bC = P(ba, I(T, U), T)
593- let bD = P(ba, I(T, U), U)
594- let bH = (bC - bP)
591+ let bQ = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bP)) * toBigInt(bx)) / toBigInt(i)))
592+ let bR = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bP)) * toBigInt(by)) / toBigInt(i)))
593+ let bF = R(I(T, U), T)
594+ let bG = R(I(T, U), U)
595+ let bD = P(ba, I(T, U), T)
596+ let bE = P(ba, I(T, U), U)
595597 let bI = (bD - bQ)
596- let bJ = (bb - bM)
597- let bK = (bE - bP)
598+ let bJ = (bE - bR)
599+ let bK = (bb - bN)
598600 let bL = (bF - bQ)
601+ let bM = (bG - bR)
599602 if ((r.payments[0].assetId == fromBase58String(aZ)))
600- then if ((bM == r.payments[0].amount))
601- then [Burn(fromBase58String(aZ), bM), ScriptTransfer(Address(r.caller.bytes), bP, J), ScriptTransfer(Address(r.caller.bytes), bQ, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bH), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bI), IntegerEntry(((I(T, U) + "_") + ba), bJ), IntegerEntry(((I(T, U) + "_") + T), bK), IntegerEntry(((I(T, U) + "_") + U), bL), IntegerEntry(T, (p(T) - bP)), IntegerEntry(U, (p(U) - bQ)), IntegerEntry(aZ, (p(aZ) - bM))]
602- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bM)))
603+ then if ((bN == r.payments[0].amount))
604+ then [Burn(fromBase58String(aZ), bN), ScriptTransfer(Address(r.caller.bytes), bQ, J), ScriptTransfer(Address(r.caller.bytes), bR, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bI), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bJ), IntegerEntry(((I(T, U) + "_") + ba), bK), IntegerEntry(((I(T, U) + "_") + T), bL), IntegerEntry(((I(T, U) + "_") + U), bM), IntegerEntry(T, (p(T) - bQ)), IntegerEntry(U, (p(U) - bR)), IntegerEntry(aZ, (p(aZ) - bN))]
605+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bN)))
603606 else throw("Requires an lp asset as payment to remove locked amounts.")
604607 }
605608 else throw("Pool has no liquidity.")
606- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bM)))
609+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bN)))
607610 else throw("You have no locked values ​​in the pool")
608611 else throw("Invalid Pool Key.")
609612 else throw("Invalid Asset1 or Asset2!")
619622 let ba = toBase58String(r.caller.bytes)
620623 let aa = getBooleanValue(this, G)
621624 let aW = getBooleanValue(this, u)
622- let bR = getBooleanValue(this, w)
625+ let bS = getBooleanValue(this, w)
623626 let bi = I(T, U)
624627 let M = L(bi)
625628 let J = r.payments[0].assetId
626- let br = fromBase58String(getStringValue(this, A))
627- let bs = fromBase58String(getStringValue(this, C))
628- let bt = fromBase58String(getStringValue(this, B))
629- let bu = fromBase58String(getStringValue(this, D))
629+ let bs = fromBase58String(getStringValue(this, A))
630+ let bt = fromBase58String(getStringValue(this, C))
631+ let bu = fromBase58String(getStringValue(this, B))
632+ let bv = fromBase58String(getStringValue(this, D))
630633 let aY = fromBase58String(getStringValue(this, a))
631- let bv = fromBase58String(getStringValue(this, E))
634+ let bw = fromBase58String(getStringValue(this, E))
632635 let aZ = getStringValue(this, (b + I(T, U)))
633- let bS = ab(((I(T, U) + "_") + T), false)
634- let bT = ab(((I(T, U) + "_") + U), false)
635- let bU = getIntegerValue(this, g)
636- let bV = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bT), toBigInt(bS)))
637- let bW = toInt(((bV - ((bV / toBigInt(bU)) * toBigInt(100))) / toBigInt(i)))
638- let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bS), toBigInt(bT)))
639- let bY = toInt(((bX - ((bX / toBigInt(bU)) * toBigInt(100))) / toBigInt(i)))
640- let bZ = if (if ((J == unit))
636+ let bT = ab(((I(T, U) + "_") + T), false)
637+ let bU = ab(((I(T, U) + "_") + U), false)
638+ let bV = getIntegerValue(this, g)
639+ let bW = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bT)))
640+ let bX = toInt(((bW - ((bW / toBigInt(bV)) * toBigInt(100))) / toBigInt(i)))
641+ let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bT), toBigInt(bU)))
642+ let bZ = toInt(((bY - ((bY / toBigInt(bV)) * toBigInt(100))) / toBigInt(i)))
643+ let ca = if (if ((J == unit))
641644 then (T == F)
642645 else false)
643- then bW
646+ then bX
644647 else if ((J == fromBase58String(T)))
645- then bW
646- else bY
647- let ca = if ((J == unit))
648+ then bX
649+ else bZ
650+ let cb = if ((J == unit))
648651 then F
649652 else if ((J == fromBase58String(T)))
650653 then T
651654 else U
652- let cb = if ((J == unit))
655+ let cc = if ((J == unit))
653656 then F
654657 else if ((J == fromBase58String(T)))
655658 then U
656659 else T
657- let cc = if ((J == unit))
660+ let cd = if ((J == unit))
658661 then H
659662 else if ((J == fromBase58String(T)))
660663 then fromBase58String(U)
661664 else fromBase58String(T)
662665 if (aW)
663- then if (!(bR))
666+ then if (!(bS))
664667 then if (if (!((T == U)))
665668 then if (X(J, T, aa))
666669 then true
667670 else X(J, U, aa)
668671 else false)
669- then if (if (if (if (if (if (if ((J == br))
670- then true
671- else (J == bs))
672+ then if (if (if (if (if (if (if ((J == bs))
672673 then true
673674 else (J == bt))
674675 then true
675676 else (J == bu))
676677 then true
678+ else (J == bv))
679+ then true
677680 else (J == aY))
678681 then true
679- else (J == bv))
682+ else (J == bw))
680683 then true
681684 else (J == H))
682685 then if ((M != false))
683686 then if ((r.payments[1].assetId == aY))
684687 then if ((r.payments[1].amount == 300000))
685- then if (if ((bS > 2))
688+ then if (if ((bT > 2))
686689 then true
687- else (bT > 2))
688- then [ScriptTransfer(Address(r.caller.bytes), bZ, cc), IntegerEntry(cb, (p(cb) - bZ)), IntegerEntry(((I(T, U) + "_") + cb), (R(I(T, U), cb) - bZ)), IntegerEntry(((I(T, U) + "_") + ca), (R(I(T, U), ca) + r.payments[0].amount)), IntegerEntry(ca, (p(ca) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
690+ else (bU > 2))
691+ then [ScriptTransfer(Address(r.caller.bytes), ca, cd), IntegerEntry(cc, (p(cc) - ca)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) - ca)), IntegerEntry(((I(T, U) + "_") + cb), (R(I(T, U), cb) + r.payments[0].amount)), IntegerEntry(cb, (p(cb) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
689692 else throw("Pool has no liquidity.")
690693 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
691694 else throw("Invalid rate asset")
697700 }
698701
699702
700-@Verifier(cd)
701-func ce () = {
702- let q = cd
703+@Verifier(ce)
704+func cf () = {
705+ let q = ce
703706 if ($isInstanceOf(q, "Order"))
704707 then {
705- let cf = q
708+ let cg = q
706709 true
707710 }
708711 else if ($isInstanceOf(q, "ExchangeTransaction"))
709712 then {
710- let cg = q
713+ let ch = q
711714 true
712715 }
713716 else if ($isInstanceOf(q, "TransferTransaction"))
714717 then {
715- let ch = q
716- (ch.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
718+ let ci = q
719+ (ci.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
717720 }
718- else sigVerify(cd.bodyBytes, cd.proofs[0], cd.senderPublicKey)
721+ else sigVerify(ce.bodyBytes, ce.proofs[0], ce.senderPublicKey)
719722 }
720723
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))
155155 then (Z == "WAVES")
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
178178 @Callable(r)
179179 func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = {
180180 let am = I(af, F)
181181 if (if ((r.caller == this))
182182 then true
183183 else (r.caller == W()))
184184 then if ((valueOrElse(getInteger(this, am), 0) == 0))
185185 then {
186186 let an = I(ae, af)
187187 let ao = I(ae, ag)
188188 let ap = I(ae, ah)
189189 let aq = I(ae, F)
190190 let ar = I(ae, ad)
191191 let as = I(ae, ai)
192192 let at = I(ag, af)
193193 let au = I(ag, ah)
194194 let av = I(ag, F)
195195 let aw = I(ag, ad)
196196 let ax = I(ag, ai)
197197 let ay = I(af, ah)
198198 let az = I(af, ad)
199199 let aA = I(af, ai)
200200 let aB = I(ah, F)
201201 let aC = I(ah, ad)
202202 let aD = I(ah, ai)
203203 let aE = I(ad, F)
204204 let aF = I(ad, ai)
205205 let aG = I(ai, F)
206206 [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)]
207207 }
208208 else throw("Smart Contract has been started")
209209 else throw("Only the Admin itself can invoke this function")
210210 }
211211
212212
213213
214214 @Callable(r)
215215 func activate (aH) = if (if ((r.caller == this))
216216 then true
217217 else (r.caller == W()))
218218 then [BooleanEntry(u, aH)]
219219 else throw("Only the Admin itself can invoke this function")
220220
221221
222222
223223 @Callable(r)
224224 func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
225225 then true
226226 else (r.caller == W()))
227227 then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
228228 else throw("Only the Admin itself can invoke this function")
229229
230230
231231
232232 @Callable(r)
233233 func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
234234 then true
235235 else (r.caller == W()))
236236 then [IntegerEntry(g, aL)]
237237 else throw("Only the Admin itself can invoke this function")
238238
239239
240240
241241 @Callable(r)
242242 func acceptWaves (aM) = if (if ((r.caller == this))
243243 then true
244244 else (r.caller == W()))
245245 then [BooleanEntry(G, aM)]
246246 else throw("Only the Admin itself can invoke this function")
247247
248248
249249
250250 @Callable(r)
251251 func blockDistribution (aN) = if (if ((r.caller == this))
252252 then true
253253 else (r.caller == W()))
254254 then [IntegerEntry(y, aN)]
255255 else throw("Only the Admin itself can invoke this function")
256256
257257
258258
259259 @Callable(r)
260260 func addAdmin (m) = if (if ((r.caller == this))
261261 then true
262262 else (r.caller == W()))
263263 then [StringEntry("admin", m)]
264264 else throw("Only the Admin itself can invoke this function")
265265
266266
267267
268268 @Callable(r)
269269 func lpAssetCreateForPairPool (J,K,aO,aP) = {
270270 let aQ = if ((J == F))
271271 then F
272272 else s(fromBase58String(J))
273273 let aR = if ((K == F))
274274 then F
275275 else s(fromBase58String(K))
276276 let aS = if (aP)
277277 then aO
278278 else ((aQ + "_") + aR)
279279 let M = L(I(J, K))
280280 if (if ((r.caller == this))
281281 then true
282282 else (r.caller == W()))
283283 then if ((M != false))
284284 then {
285285 let aT = Issue(aS, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
286286 let aU = calculateAssetId(aT)
287287 [StringEntry((b + I(J, K)), toBase58String(aU)), aT]
288288 }
289289 else throw("Invalid Pool Key. Try inverting the assets")
290290 else throw("Only the Admin itself can invoke this function")
291291 }
292292
293293
294294
295295 @Callable(r)
296296 func deposit (aV,T,U) = {
297297 let aW = getBooleanValue(this, u)
298298 let aX = getBooleanValue(this, x)
299299 let aY = getStringValue(this, a)
300300 let aZ = if (aV)
301301 then getStringValue(this, (b + I(T, U)))
302302 else aY
303303 if (aW)
304304 then if (!(aX))
305305 then if ((r.payments[0].assetId != fromBase58String(aZ)))
306306 then throw((("Invalid asset! Kindly Deposit Only " + aY) + " or valid asset lp"))
307307 else if (!(aV))
308308 then {
309309 let ba = toBase58String(r.caller.bytes)
310310 let bb = {
311311 let q = getInteger(this, ba)
312312 if ($isInstanceOf(q, "Int"))
313313 then {
314314 let Q = q
315315 Q
316316 }
317317 else 0
318318 }
319319 let bc = (bb + r.payments[0].amount)
320320 let bd = IntegerEntry(ba, bc)
321321 let be = IntegerEntry((h + ba), height)
322322 let bf = {
323323 let q = getInteger(this, "Total_Tokens_Locked:")
324324 if ($isInstanceOf(q, "Int"))
325325 then {
326326 let Q = q
327327 Q
328328 }
329329 else 0
330330 }
331331 let bg = (bf + r.payments[0].amount)
332332 let bh = IntegerEntry("Total_Tokens_Locked:", bg)
333333 [bd, be, bh]
334334 }
335335 else {
336336 let bi = I(T, U)
337337 let M = L(bi)
338338 if ((M != false))
339339 then {
340340 let ba = toBase58String(r.caller.bytes)
341341 let bb = {
342342 let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bi))
343343 if ($isInstanceOf(q, "Int"))
344344 then {
345345 let Q = q
346346 Q
347347 }
348348 else 0
349349 }
350+ let bj = if ((bb == 0))
351+ then height
352+ else valueOrElse(getIntegerValue(this, ((((h + "_") + ba) + "_") + bi)), height)
350353 let bc = (bb + r.payments[0].amount)
351354 let bd = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bi), bc)
352355 let be = IntegerEntry(((((h + "_") + ba) + "_") + bi), height)
353356 let bf = {
354357 let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bi))
355358 if ($isInstanceOf(q, "Int"))
356359 then {
357360 let Q = q
358361 Q
359362 }
360363 else 0
361364 }
362365 let bg = (bf + r.payments[0].amount)
363366 let bh = IntegerEntry(("Total_Tokens_LP_Locked_" + bi), bg)
364367 [bd, be, bh]
365368 }
366369 else throw("Invalid Pool key.")
367370 }
368371 else throw("liquidity is currently under maintenance.")
369372 else throw("dApp is currently under maintenance.")
370373 }
371374
372375
373376
374377 @Callable(r)
375-func remove (aV,T,U,bj) = {
378+func remove (aV,T,U,bk) = {
376379 let aW = getBooleanValue(this, u)
377380 let aX = getBooleanValue(this, x)
378- let bk = r.payments[0]
381+ let bl = r.payments[0]
379382 let aY = fromBase58String(getStringValue(this, a))
380383 if (aW)
381384 then if (!(aX))
382385 then {
383386 let ba = toBase58String(r.caller.bytes)
384387 let bb = {
385388 let q = if (aV)
386389 then getIntegerValue(this, ((("STAKE_LP_" + ba) + "_") + I(T, U)))
387390 else getIntegerValue(this, ba)
388391 if ($isInstanceOf(q, "Int"))
389392 then {
390393 let Q = q
391394 Q
392395 }
393396 else 0
394397 }
395- let bl = if (aV)
398+ let bm = if (aV)
396399 then ((((h + "_") + ba) + "_") + I(T, U))
397400 else (h + ba)
398401 let bf = if (aV)
399402 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
400403 else getIntegerValue(this, "Total_Tokens_Locked:")
401- let bg = (bf - bj)
402- let bm = (height - getIntegerValue(this, bl))
403- let bn = getIntegerValue(this, y)
404- let bo = ((bm * bn) * i)
405- let bp = (bo / (bf / bj))
406- if ((0 > bj))
404+ let bg = (bf - bk)
405+ let bn = (height - getIntegerValue(this, bm))
406+ let bo = getIntegerValue(this, y)
407+ let bp = ((bn * bo) * i)
408+ let bq = (bp / (bf / bk))
409+ if ((0 > bk))
407410 then throw(if (aV)
408411 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
409412 else "Can't withdraw negative AxAi amount")
410413 else {
411- let bc = (bb - bj)
414+ let bc = (bb - bk)
412415 if ((0 > bc))
413416 then throw(if (aV)
414417 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
415418 else "Not enough AxAi balance")
416419 else [IntegerEntry(if (aV)
417420 then ((("STAKE_LP_" + ba) + "_") + I(T, U))
418421 else ba, bc), IntegerEntry(if (aV)
419422 then ("Total_Tokens_LP_Locked_" + I(T, U))
420- else "Total_Tokens_Locked:", bg), ScriptTransfer(r.caller, bj, if (aV)
423+ else "Total_Tokens_Locked:", bg), ScriptTransfer(r.caller, bk, if (aV)
421424 then fromBase58String(getStringValue(this, (b + I(T, U))))
422- else aY), ScriptTransfer(r.caller, bp, aY)]
425+ else aY), ScriptTransfer(r.caller, bq, aY)]
423426 }
424427 }
425428 else throw("liquidity is currently under maintenance.")
426429 else throw("dApp is currently under maintenance.")
427430 }
428431
429432
430433
431434 @Callable(r)
432435 func addLiquidity (T,U) = {
433436 let aW = getBooleanValue(this, u)
434- let bq = getBooleanValue(this, v)
437+ let br = getBooleanValue(this, v)
435438 let aa = getBooleanValue(this, G)
436439 let M = L(I(T, U))
437440 let J = r.payments[0].assetId
438441 let K = r.payments[1].assetId
439- let br = fromBase58String(getStringValue(this, A))
440- let bs = fromBase58String(getStringValue(this, C))
441- let bt = fromBase58String(getStringValue(this, B))
442- let bu = fromBase58String(getStringValue(this, D))
443- let bv = fromBase58String(getStringValue(this, E))
442+ let bs = fromBase58String(getStringValue(this, A))
443+ let bt = fromBase58String(getStringValue(this, C))
444+ let bu = fromBase58String(getStringValue(this, B))
445+ let bv = fromBase58String(getStringValue(this, D))
446+ let bw = fromBase58String(getStringValue(this, E))
444447 let aY = fromBase58String(getStringValue(this, a))
445448 let aZ = getStringValue(this, (b + I(T, U)))
446- let bw = if ((2 > ab(((I(T, U) + "_") + T), false)))
449+ let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
447450 then r.payments[0].amount
448451 else ab(((I(T, U) + "_") + T), false)
449- let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
452+ let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
450453 then r.payments[1].amount
451454 else ab(((I(T, U) + "_") + U), false)
452- let by = ab(aZ, true)
453- let bz = ((bw + bx) / by)
454- let bA = (r.payments[0].amount * (bx / bw))
455- let bB = if ((r.payments[1].amount == bA))
455+ let bz = ab(aZ, true)
456+ let bA = ((bx + by) / bz)
457+ let bB = (r.payments[0].amount * (by / bx))
458+ let bC = if ((r.payments[1].amount == bB))
456459 then true
457460 else false
458461 if (aW)
459- then if (!(bq))
462+ then if (!(br))
460463 then if (if (if (!((J == K)))
461464 then X(J, T, aa)
462465 else false)
463466 then X(K, U, aa)
464467 else false)
465- then if (if (if (if (if (if (if (if ((J == br))
466- then true
467- else (J == bs))
468+ then if (if (if (if (if (if (if (if ((J == bs))
468469 then true
469470 else (J == bt))
470471 then true
471472 else (J == bu))
472473 then true
474+ else (J == bv))
475+ then true
473476 else (J == aY))
474477 then true
475478 else (J == H))
476479 then true
477- else (J == bv))
478- then if (if (if (if (if (if ((K == br))
479- then true
480- else (K == bs))
480+ else (J == bw))
481+ then if (if (if (if (if (if ((K == bs))
481482 then true
482483 else (K == bt))
483484 then true
484485 else (K == bu))
485486 then true
487+ else (K == bv))
488+ then true
486489 else (K == aY))
487490 then true
488491 else (K == H))
489492 then true
490- else (K == bv)
493+ else (K == bw)
491494 else false)
492495 then if ((M != false))
493- then if (bB)
496+ then if (bC)
494497 then {
495498 let ba = toBase58String(r.caller.bytes)
496499 let bb = N(ba, I(T, U))
497- let bC = P(ba, I(T, U), T)
498- let bD = P(ba, I(T, U), U)
499- let bE = R(I(T, U), T)
500- let bF = R(I(T, U), U)
501- let bG = if ((bw == r.payments[0].amount))
500+ let bD = P(ba, I(T, U), T)
501+ let bE = P(ba, I(T, U), U)
502+ let bF = R(I(T, U), T)
503+ let bG = R(I(T, U), U)
504+ let bH = if ((bx == r.payments[0].amount))
502505 then (1 * i)
503- else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / by))
504- let bH = (bC + r.payments[0].amount)
505- let bI = (bD + r.payments[1].amount)
506- let bJ = (bb + bG)
507- let bK = (bE + r.payments[0].amount)
508- let bL = (bF + r.payments[1].amount)
509-[Reissue(fromBase58String(aZ), bG, true), ScriptTransfer(Address(r.caller.bytes), bG, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bH), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bI), IntegerEntry(((I(T, U) + "_") + ba), bJ), IntegerEntry(((I(T, U) + "_") + T), bK), IntegerEntry(((I(T, U) + "_") + U), bL), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bG))]
506+ else ((r.payments[0].amount + r.payments[1].amount) / ((bx + by) / bz))
507+ let bI = (bD + r.payments[0].amount)
508+ let bJ = (bE + r.payments[1].amount)
509+ let bK = (bb + bH)
510+ let bL = (bF + r.payments[0].amount)
511+ let bM = (bG + r.payments[1].amount)
512+[Reissue(fromBase58String(aZ), bH, true), ScriptTransfer(Address(r.caller.bytes), bH, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bI), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bJ), IntegerEntry(((I(T, U) + "_") + ba), bK), IntegerEntry(((I(T, U) + "_") + T), bL), IntegerEntry(((I(T, U) + "_") + U), bM), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bH))]
510513 }
511- else throw(((((("Payment of invalid 1/1 amounts to the Pool. Try Asset2: {value:" + toString((r.payments[0].amount * (bx / bw)))) + "} Received: ") + toString(r.payments[1].amount)) + " Validate: ") + toString(bB)))
514+ 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(bC)))
512515 else throw("Invalid Pool Key.")
513516 else throw("Invalid Asset1 or Asset2!")
514517 else throw("Asset1 cannot be equal to Asset2")
515518 else throw("liquidity is currently under maintenance.")
516519 else throw("dApp is currently under maintenance.")
517520 }
518521
519522
520523
521524 @Callable(r)
522-func removeLiquidity (T,U,bM) = {
525+func removeLiquidity (T,U,bN) = {
523526 let ba = toBase58String(r.caller.bytes)
524527 let aW = getBooleanValue(this, u)
525- let bq = getBooleanValue(this, v)
528+ let br = getBooleanValue(this, v)
526529 let aa = getBooleanValue(this, G)
527530 let bi = I(T, U)
528531 let M = L(bi)
529532 let J = if ((T == F))
530533 then if (aa)
531534 then H
532535 else throw("The smart contract does not currently support Waves.")
533536 else fromBase58String(T)
534537 let K = if ((U == F))
535538 then if (aa)
536539 then H
537540 else throw("The smart contract does not currently support Waves.")
538541 else fromBase58String(U)
539- let br = fromBase58String(getStringValue(this, A))
540- let bs = fromBase58String(getStringValue(this, C))
541- let bt = fromBase58String(getStringValue(this, B))
542- let bu = fromBase58String(getStringValue(this, D))
542+ let bs = fromBase58String(getStringValue(this, A))
543+ let bt = fromBase58String(getStringValue(this, C))
544+ let bu = fromBase58String(getStringValue(this, B))
545+ let bv = fromBase58String(getStringValue(this, D))
543546 let aY = fromBase58String(getStringValue(this, a))
544- let bv = fromBase58String(getStringValue(this, E))
547+ let bw = fromBase58String(getStringValue(this, E))
545548 let aZ = getStringValue(this, (b + I(T, U)))
546549 let bb = N(ba, I(T, U))
547- let bN = V(ba, bi)
548- let bO = ab(aZ, true)
549- let bw = ab(((I(T, U) + "_") + T), false)
550- let bx = ab(((I(T, U) + "_") + U), false)
550+ let bO = V(ba, bi)
551+ let bP = ab(aZ, true)
552+ let bx = ab(((I(T, U) + "_") + T), false)
553+ let by = ab(((I(T, U) + "_") + U), false)
551554 if (aW)
552- then if (!(bq))
555+ then if (!(br))
553556 then if (!((T == U)))
554- then if (if (if (if (if (if (if (if ((J == br))
555- then true
556- else (J == bs))
557+ then if (if (if (if (if (if (if (if ((J == bs))
557558 then true
558559 else (J == bt))
559560 then true
560561 else (J == bu))
561562 then true
563+ else (J == bv))
564+ then true
562565 else (J == aY))
563566 then true
564567 else (J == H))
565568 then true
566- else (J == bv))
567- then if (if (if (if (if (if ((K == br))
568- then true
569- else (K == bs))
569+ else (J == bw))
570+ then if (if (if (if (if (if ((K == bs))
570571 then true
571572 else (K == bt))
572573 then true
573574 else (K == bu))
574575 then true
576+ else (K == bv))
577+ then true
575578 else (K == aY))
576579 then true
577580 else (K == H))
578581 then true
579- else (K == bv)
582+ else (K == bw)
580583 else false)
581584 then if ((M != false))
582585 then if (!((bb == 0)))
583- then if (((bb - bN) >= bM))
584- then if (if ((bw > 2))
586+ then if (((bb - bO) >= bN))
587+ then if (if ((bx > 2))
585588 then true
586- else (bx > 2))
589+ else (by > 2))
587590 then {
588- let bP = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bO)) * toBigInt(bw)) / toBigInt(i)))
589- let bQ = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bO)) * toBigInt(bx)) / toBigInt(i)))
590- let bE = R(I(T, U), T)
591- let bF = R(I(T, U), U)
592- let bC = P(ba, I(T, U), T)
593- let bD = P(ba, I(T, U), U)
594- let bH = (bC - bP)
591+ let bQ = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bP)) * toBigInt(bx)) / toBigInt(i)))
592+ let bR = toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bP)) * toBigInt(by)) / toBigInt(i)))
593+ let bF = R(I(T, U), T)
594+ let bG = R(I(T, U), U)
595+ let bD = P(ba, I(T, U), T)
596+ let bE = P(ba, I(T, U), U)
595597 let bI = (bD - bQ)
596- let bJ = (bb - bM)
597- let bK = (bE - bP)
598+ let bJ = (bE - bR)
599+ let bK = (bb - bN)
598600 let bL = (bF - bQ)
601+ let bM = (bG - bR)
599602 if ((r.payments[0].assetId == fromBase58String(aZ)))
600- then if ((bM == r.payments[0].amount))
601- then [Burn(fromBase58String(aZ), bM), ScriptTransfer(Address(r.caller.bytes), bP, J), ScriptTransfer(Address(r.caller.bytes), bQ, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bH), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bI), IntegerEntry(((I(T, U) + "_") + ba), bJ), IntegerEntry(((I(T, U) + "_") + T), bK), IntegerEntry(((I(T, U) + "_") + U), bL), IntegerEntry(T, (p(T) - bP)), IntegerEntry(U, (p(U) - bQ)), IntegerEntry(aZ, (p(aZ) - bM))]
602- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bM)))
603+ then if ((bN == r.payments[0].amount))
604+ then [Burn(fromBase58String(aZ), bN), ScriptTransfer(Address(r.caller.bytes), bQ, J), ScriptTransfer(Address(r.caller.bytes), bR, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bI), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bJ), IntegerEntry(((I(T, U) + "_") + ba), bK), IntegerEntry(((I(T, U) + "_") + T), bL), IntegerEntry(((I(T, U) + "_") + U), bM), IntegerEntry(T, (p(T) - bQ)), IntegerEntry(U, (p(U) - bR)), IntegerEntry(aZ, (p(aZ) - bN))]
605+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bN)))
603606 else throw("Requires an lp asset as payment to remove locked amounts.")
604607 }
605608 else throw("Pool has no liquidity.")
606- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bM)))
609+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bN)))
607610 else throw("You have no locked values ​​in the pool")
608611 else throw("Invalid Pool Key.")
609612 else throw("Invalid Asset1 or Asset2!")
610613 else throw("Asset1 cannot be equal to Asset2")
611614 else throw("liquidity is currently under maintenance.")
612615 else throw("dApp is currently under maintenance.")
613616 }
614617
615618
616619
617620 @Callable(r)
618621 func swap (T,U) = {
619622 let ba = toBase58String(r.caller.bytes)
620623 let aa = getBooleanValue(this, G)
621624 let aW = getBooleanValue(this, u)
622- let bR = getBooleanValue(this, w)
625+ let bS = getBooleanValue(this, w)
623626 let bi = I(T, U)
624627 let M = L(bi)
625628 let J = r.payments[0].assetId
626- let br = fromBase58String(getStringValue(this, A))
627- let bs = fromBase58String(getStringValue(this, C))
628- let bt = fromBase58String(getStringValue(this, B))
629- let bu = fromBase58String(getStringValue(this, D))
629+ let bs = fromBase58String(getStringValue(this, A))
630+ let bt = fromBase58String(getStringValue(this, C))
631+ let bu = fromBase58String(getStringValue(this, B))
632+ let bv = fromBase58String(getStringValue(this, D))
630633 let aY = fromBase58String(getStringValue(this, a))
631- let bv = fromBase58String(getStringValue(this, E))
634+ let bw = fromBase58String(getStringValue(this, E))
632635 let aZ = getStringValue(this, (b + I(T, U)))
633- let bS = ab(((I(T, U) + "_") + T), false)
634- let bT = ab(((I(T, U) + "_") + U), false)
635- let bU = getIntegerValue(this, g)
636- let bV = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bT), toBigInt(bS)))
637- let bW = toInt(((bV - ((bV / toBigInt(bU)) * toBigInt(100))) / toBigInt(i)))
638- let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bS), toBigInt(bT)))
639- let bY = toInt(((bX - ((bX / toBigInt(bU)) * toBigInt(100))) / toBigInt(i)))
640- let bZ = if (if ((J == unit))
636+ let bT = ab(((I(T, U) + "_") + T), false)
637+ let bU = ab(((I(T, U) + "_") + U), false)
638+ let bV = getIntegerValue(this, g)
639+ let bW = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bT)))
640+ let bX = toInt(((bW - ((bW / toBigInt(bV)) * toBigInt(100))) / toBigInt(i)))
641+ let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bT), toBigInt(bU)))
642+ let bZ = toInt(((bY - ((bY / toBigInt(bV)) * toBigInt(100))) / toBigInt(i)))
643+ let ca = if (if ((J == unit))
641644 then (T == F)
642645 else false)
643- then bW
646+ then bX
644647 else if ((J == fromBase58String(T)))
645- then bW
646- else bY
647- let ca = if ((J == unit))
648+ then bX
649+ else bZ
650+ let cb = if ((J == unit))
648651 then F
649652 else if ((J == fromBase58String(T)))
650653 then T
651654 else U
652- let cb = if ((J == unit))
655+ let cc = if ((J == unit))
653656 then F
654657 else if ((J == fromBase58String(T)))
655658 then U
656659 else T
657- let cc = if ((J == unit))
660+ let cd = if ((J == unit))
658661 then H
659662 else if ((J == fromBase58String(T)))
660663 then fromBase58String(U)
661664 else fromBase58String(T)
662665 if (aW)
663- then if (!(bR))
666+ then if (!(bS))
664667 then if (if (!((T == U)))
665668 then if (X(J, T, aa))
666669 then true
667670 else X(J, U, aa)
668671 else false)
669- then if (if (if (if (if (if (if ((J == br))
670- then true
671- else (J == bs))
672+ then if (if (if (if (if (if (if ((J == bs))
672673 then true
673674 else (J == bt))
674675 then true
675676 else (J == bu))
676677 then true
678+ else (J == bv))
679+ then true
677680 else (J == aY))
678681 then true
679- else (J == bv))
682+ else (J == bw))
680683 then true
681684 else (J == H))
682685 then if ((M != false))
683686 then if ((r.payments[1].assetId == aY))
684687 then if ((r.payments[1].amount == 300000))
685- then if (if ((bS > 2))
688+ then if (if ((bT > 2))
686689 then true
687- else (bT > 2))
688- then [ScriptTransfer(Address(r.caller.bytes), bZ, cc), IntegerEntry(cb, (p(cb) - bZ)), IntegerEntry(((I(T, U) + "_") + cb), (R(I(T, U), cb) - bZ)), IntegerEntry(((I(T, U) + "_") + ca), (R(I(T, U), ca) + r.payments[0].amount)), IntegerEntry(ca, (p(ca) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
690+ else (bU > 2))
691+ then [ScriptTransfer(Address(r.caller.bytes), ca, cd), IntegerEntry(cc, (p(cc) - ca)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) - ca)), IntegerEntry(((I(T, U) + "_") + cb), (R(I(T, U), cb) + r.payments[0].amount)), IntegerEntry(cb, (p(cb) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
689692 else throw("Pool has no liquidity.")
690693 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
691694 else throw("Invalid rate asset")
692695 else throw("Invalid Swap Key.")
693696 else throw("Invalid Asset1 or Asset2!")
694697 else throw("Asset1 cannot be equal to Asset2")
695698 else throw("Swap is currently under maintenance.")
696699 else throw("dApp is currently under maintenance.")
697700 }
698701
699702
700-@Verifier(cd)
701-func ce () = {
702- let q = cd
703+@Verifier(ce)
704+func cf () = {
705+ let q = ce
703706 if ($isInstanceOf(q, "Order"))
704707 then {
705- let cf = q
708+ let cg = q
706709 true
707710 }
708711 else if ($isInstanceOf(q, "ExchangeTransaction"))
709712 then {
710- let cg = q
713+ let ch = q
711714 true
712715 }
713716 else if ($isInstanceOf(q, "TransferTransaction"))
714717 then {
715- let ch = q
716- (ch.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
718+ let ci = q
719+ (ci.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
717720 }
718- else sigVerify(cd.bodyBytes, cd.proofs[0], cd.senderPublicKey)
721+ else sigVerify(ce.bodyBytes, ce.proofs[0], ce.senderPublicKey)
719722 }
720723

github/deemru/w8io/169f3d6 
213.47 ms