tx · DCtAQQ2ffErMoRTSV2oJJEhc4wpstDJq9cbxznC5GcBN

3MvHVN2te6mn591sw8iModitUUNeDfkEskC:  -0.03200000 Waves

2022.07.11 08:55 [2134674] smart account 3MvHVN2te6mn591sw8iModitUUNeDfkEskC > SELF 0.00000000 Waves

{ "type": 13, "id": "DCtAQQ2ffErMoRTSV2oJJEhc4wpstDJq9cbxznC5GcBN", "fee": 3200000, "feeAssetId": null, "timestamp": 1657518963931, "version": 2, "chainId": 84, "sender": "3MvHVN2te6mn591sw8iModitUUNeDfkEskC", "senderPublicKey": "AvjsUtUMUNBpu6SkRkEwWVuoem8wpHefcAzYhpa9HpRK", "proofs": [ "M4qo4X15nT1p1dLRENaksvo4SCemghTRaBZsEvdXZ6Fmy498KXqgPmcr8MzT7YKrrNawaigxQkgecMGSoV3TucX" ], "script": "base64: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YXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkbk1haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkbkV1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZGNVc2R0CQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAALVXNkdEFzc2V0SWQEAAAAD2tleVBvb2xVc2RjTmdubgkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC05nbm5Bc3NldElkBAAAABBrZXlQb29sVXNkY1dhdmVzCQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAAFd2F2ZXMEAAAAFGtleVBvb2xVc2RjTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2RjQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjRXVybgkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAAA9rZXlQb29sVXNkdE5nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZHRXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkdE1haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkdEV1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAQa2V5UG9vbE5nbm5XYXZlcwkBAAAAAmtwAAAAAgUAAAALTmdubkFzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sTmdubk1haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALTmdubkFzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sTmdubkV1cm4J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dXJyZW50S2V5CQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQyBAAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQxCQAAZQAAAAIFAAAAE2N1cnJlbnRBbW91bnRBc3NldDEFAAAADXJlY2VpdmVBc3NldDEEAAAAFm5ld2N1cnJlbnRBbW91bnRBc3NldDIJAABlAAAAAgUAAAATY3VycmVudEFtb3VudEFzc2V0MgUAAAANcmVjZWl2ZUFzc2V0MgQAAAAQbmV3Y3VycmVudEFtb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZBbW91bnQEAAAADW5ld2Fzc2V0MXBvb2wJAABlAAAAAgUAAAAKYXNzZXQxcG9vbAUAAAANcmVjZWl2ZUFzc2V0MQQAAAANbmV3YXNzZXQycG9vbAkAAGUAAAACBQAAAAphc3NldDJwb29sBQAAAA1yZWNlaXZlQXNzZXQyAwkAAAAAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkCQACWQAAAAEFAAAACWxwQXNzZXRJZAMJAAAAAAAAAgUAAAAGQW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQJAARMAAAAAgkBAAAABEJ1cm4AAAACCQACWQAAAAEFAAAACWxwQXNzZXRJZAUAAAAGQW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAANcmVjZWl2ZUFzc2V0MQUAAAAGYXNzZXQxCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAANcmVjZWl2ZUFzc2V0MgUAAAAGYXNzZXQyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEcGtleQAAAAMFAAAABkFzc2V0MQUAAAAGQXNzZXQyBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAA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", "height": 2134674, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CgoZUM7h1gU4YuUmU1sexbiMXQFLibCNfn1S8DRVLt47 Next: AJxgc6gacK5FPKUiFqXP4Km79zmXvVFYkt36sG15a65t Diff:
OldNewDifferences
450450 let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
451451 then r.payments[1].amount
452452 else ab(((I(T, U) + "_") + U), false)
453- let by = if (if ((((r.payments[0].amount * i) / r.payments[1].amount) == ((bw * i) / bx)))
454- then (((r.payments[1].amount * i) / r.payments[0].amount) == ((bx * i) / bw))
455- else false)
456- then true
457- else false
458- let bz = ab(aZ, true)
453+ let by = ab(aZ, true)
454+ let bz = ((bw + bx) / by)
455+ let bA = (r.payments[0].amount * (bw / bx))
456+ let bB = if ((r.payments[1].amount != bA))
457+ then false
458+ else true
459459 if (aW)
460460 then if (!(bq))
461461 then if (if (if (!((J == K)))
491491 else (K == bv)
492492 else false)
493493 then if ((M != false))
494- then if (by)
494+ then if (bB)
495495 then {
496496 let ba = toBase58String(r.caller.bytes)
497497 let bb = N(ba, I(T, U))
498- let bA = P(ba, I(T, U), T)
499- let bB = P(ba, I(T, U), U)
500- let bC = R(I(T, U), T)
501- let bD = R(I(T, U), U)
502- let bE = if ((bw == r.payments[0].amount))
498+ let bC = P(ba, I(T, U), T)
499+ let bD = P(ba, I(T, U), U)
500+ let bE = R(I(T, U), T)
501+ let bF = R(I(T, U), U)
502+ let bG = if ((bw == r.payments[0].amount))
503503 then (1 * i)
504- else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / bz))
505- let bF = (bA + r.payments[0].amount)
506- let bG = (bB + r.payments[1].amount)
507- let bH = (bb + bE)
508- let bI = (bC + r.payments[0].amount)
509- let bJ = (bD + r.payments[1].amount)
510-[Reissue(fromBase58String(aZ), bE, true), ScriptTransfer(Address(r.caller.bytes), bE, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bF), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bG), IntegerEntry(((I(T, U) + "_") + ba), bH), IntegerEntry(((I(T, U) + "_") + T), bI), IntegerEntry(((I(T, U) + "_") + U), bJ), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bE))]
504+ else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / by))
505+ let bH = (bC + r.payments[0].amount)
506+ let bI = (bD + r.payments[1].amount)
507+ let bJ = (bb + bG)
508+ let bK = (bE + r.payments[0].amount)
509+ let bL = (bF + r.payments[1].amount)
510+[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))]
511511 }
512512 else throw(((("Payment of invalid 1/1 amounts to the Pool. Try Asset1: " + toString(((bw * i) / bx))) + " Asset2: ") + toString(((bx * i) / bw))))
513513 else throw("Invalid Pool Key.")
520520
521521
522522 @Callable(r)
523-func removeLiquidity (T,U,bK) = {
523+func removeLiquidity (T,U,bM) = {
524524 let ba = toBase58String(r.caller.bytes)
525525 let aW = getBooleanValue(this, u)
526526 let bq = getBooleanValue(this, v)
545545 let bv = fromBase58String(getStringValue(this, E))
546546 let aZ = getStringValue(this, (b + I(T, U)))
547547 let bb = N(ba, I(T, U))
548- let bL = V(ba, bi)
549- let bM = getIntegerValue(this, aZ)
548+ let bN = V(ba, bi)
549+ let bO = getIntegerValue(this, aZ)
550550 let bw = ab(((I(T, U) + "_") + T), false)
551551 let bx = ab(((I(T, U) + "_") + U), false)
552552 if (aW)
581581 else false)
582582 then if ((M != false))
583583 then if (!((bb == 0)))
584- then if (((bb - bL) >= bK))
584+ then if (((bb - bN) >= bM))
585585 then {
586- let bN = (bK / bM)
587- let bO = (bN * bw)
588- let bP = (bN * bx)
589- let bC = R(I(T, U), T)
590- let bD = R(I(T, U), U)
591- let bA = P(ba, I(T, U), T)
592- let bB = P(ba, I(T, U), U)
593- let bF = (bA - bO)
594- let bG = (bB - bP)
595- let bH = (bb - bK)
596- let bI = (bC - bO)
597- let bJ = (bD - bP)
586+ let bP = (bM / bO)
587+ let bQ = (bP * bw)
588+ let bR = (bP * bx)
589+ let bE = R(I(T, U), T)
590+ let bF = R(I(T, U), U)
591+ let bC = P(ba, I(T, U), T)
592+ let bD = P(ba, I(T, U), U)
593+ let bH = (bC - bQ)
594+ let bI = (bD - bR)
595+ let bJ = (bb - bM)
596+ let bK = (bE - bQ)
597+ let bL = (bF - bR)
598598 if ((r.payments[0].assetId == fromBase58String(aZ)))
599- then if ((bK == r.payments[0].amount))
600- then [Burn(fromBase58String(aZ), bK), ScriptTransfer(Address(r.caller.bytes), bO, J), ScriptTransfer(Address(r.caller.bytes), bP, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bF), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bG), IntegerEntry(((I(T, U) + "_") + ba), bH), IntegerEntry(((I(T, U) + "_") + T), bI), IntegerEntry(((I(T, U) + "_") + U), bJ), IntegerEntry(T, (p(T) - bO)), IntegerEntry(U, (p(U) - bP)), IntegerEntry(aZ, (p(aZ) - bK))]
599+ then if ((bM == r.payments[0].amount))
600+ then [Burn(fromBase58String(aZ), bM), 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), 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) - bQ)), IntegerEntry(U, (p(U) - bR)), IntegerEntry(aZ, (p(aZ) - bM))]
601601 else throw("Withdrawal amount lower than asset lp amount")
602602 else throw("Requires an lp asset as payment to remove locked amounts.")
603603 }
617617 let ba = toBase58String(r.caller.bytes)
618618 let aa = getBooleanValue(this, G)
619619 let aW = getBooleanValue(this, u)
620- let bQ = getBooleanValue(this, w)
620+ let bS = getBooleanValue(this, w)
621621 let bi = I(T, U)
622622 let M = L(bi)
623623 let J = r.payments[0].assetId
627627 let bu = fromBase58String(getStringValue(this, D))
628628 let aY = fromBase58String(getStringValue(this, a))
629629 let bv = fromBase58String(getStringValue(this, E))
630- let bR = ab(((I(T, U) + "_") + T), false)
631- let bS = ab(((I(T, U) + "_") + U), false)
632- let bT = getIntegerValue(this, g)
630+ let bT = ab(((I(T, U) + "_") + T), false)
631+ let bU = ab(((I(T, U) + "_") + U), false)
632+ let bV = getIntegerValue(this, g)
633633 if (aW)
634- then if (!(bQ))
634+ then if (!(bS))
635635 then if (if (!((T == U)))
636636 then if (X(J, T, aa))
637637 then true
653653 then if ((M != false))
654654 then if ((r.payments[1].assetId == aY))
655655 then if ((r.payments[1].amount == 300000))
656- then if (if ((bR > 2))
656+ then if (if ((bT > 2))
657657 then true
658- else (bS > 2))
658+ else (bU > 2))
659659 then {
660- let bU = if (!((J == fromBase58String(T))))
661- then (bR / bS)
662- else (bS / bR)
663- let aN = (r.payments[0].amount - ((r.payments[0].amount * bT) / (100 * i)))
664- let bV = (aN * bU)
665-[ScriptTransfer(Address(r.caller.bytes), bV, if ((J == fromBase58String(U)))
660+ let bW = if (!((J == fromBase58String(T))))
661+ then (bT / bU)
662+ else (bU / bT)
663+ let aN = (r.payments[0].amount - ((r.payments[0].amount * bV) / (100 * i)))
664+ let bX = (aN * bW)
665+[ScriptTransfer(Address(r.caller.bytes), bX, if ((J == fromBase58String(U)))
666666 then if ((U == F))
667667 then H
668668 else fromBase58String(T)
669669 else if ((T == F))
670670 then H
671- else fromBase58String(U)), IntegerEntry(U, (p(U) - bV)), IntegerEntry(((I(T, U) + "_") + U), (R(I(T, U), U) - bV))]
671+ else fromBase58String(U)), IntegerEntry(U, (p(U) - bX)), IntegerEntry(((I(T, U) + "_") + U), (R(I(T, U), U) - bX))]
672672 }
673673 else throw("Pool has no liquidity.")
674674 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
681681 }
682682
683683
684-@Verifier(bW)
685-func bX () = {
686- let q = bW
684+@Verifier(bY)
685+func bZ () = {
686+ let q = bY
687687 if ($isInstanceOf(q, "Order"))
688688 then {
689- let bY = q
689+ let ca = q
690690 true
691691 }
692692 else if ($isInstanceOf(q, "ExchangeTransaction"))
693693 then {
694- let bZ = q
694+ let cb = q
695695 true
696696 }
697- else sigVerify(bW.bodyBytes, bW.proofs[0], bW.senderPublicKey)
697+ else sigVerify(bY.bodyBytes, bY.proofs[0], bY.senderPublicKey)
698698 }
699699
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 removeDataKey (M) = [DeleteEntry(M)]
180180
181181
182182
183183 @Callable(r)
184184 func constructor (ad,ae,af,ag,ah,ai,aj,ak,al) = if (if ((r.caller == this))
185185 then true
186186 else (r.caller == W()))
187187 then {
188188 let am = I(ae, af)
189189 let an = I(ae, ag)
190190 let ao = I(ae, ah)
191191 let ap = I(ae, F)
192192 let aq = I(ae, ad)
193193 let ar = I(ae, ai)
194194 let as = I(ag, af)
195195 let at = I(ag, ah)
196196 let au = I(ag, F)
197197 let av = I(ag, ad)
198198 let aw = I(ag, ai)
199199 let ax = I(af, ah)
200200 let ay = I(af, F)
201201 let az = I(af, ad)
202202 let aA = I(af, ai)
203203 let aB = I(ah, F)
204204 let aC = I(ah, ad)
205205 let aD = I(ah, ai)
206206 let aE = I(ad, F)
207207 let aF = I(ad, ai)
208208 let aG = I(ai, F)
209209 [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(am, 1), IntegerEntry(ap, 1), IntegerEntry(an, 1), IntegerEntry(ao, 1), IntegerEntry(aq, 1), IntegerEntry(as, 1), IntegerEntry(at, 1), IntegerEntry(au, 1), IntegerEntry(az, 1), IntegerEntry(ax, 1), IntegerEntry(ay, 1), IntegerEntry(aB, 1), IntegerEntry(aC, 1), IntegerEntry(aE, 1), IntegerEntry(aG, 1), IntegerEntry(aF, 1), IntegerEntry(aD, 1), IntegerEntry(aw, 1), IntegerEntry(ar, 1), IntegerEntry(aA, 1), StringEntry(E, ai)]
210210 }
211211 else throw("Only the Admin itself can invoke this function")
212212
213213
214214
215215 @Callable(r)
216216 func activate (aH) = if (if ((r.caller == this))
217217 then true
218218 else (r.caller == W()))
219219 then [BooleanEntry(u, aH)]
220220 else throw("Only the Admin itself can invoke this function")
221221
222222
223223
224224 @Callable(r)
225225 func maintenance (aI,aJ,aK) = if (if ((r.caller == this))
226226 then true
227227 else (r.caller == W()))
228228 then [BooleanEntry(v, aI), BooleanEntry(w, aJ), BooleanEntry(x, aK)]
229229 else throw("Only the Admin itself can invoke this function")
230230
231231
232232
233233 @Callable(r)
234234 func percentualRateFeeSwapEdit (aL) = if (if ((r.caller == this))
235235 then true
236236 else (r.caller == W()))
237237 then [IntegerEntry(g, aL)]
238238 else throw("Only the Admin itself can invoke this function")
239239
240240
241241
242242 @Callable(r)
243243 func acceptWaves (aM) = if (if ((r.caller == this))
244244 then true
245245 else (r.caller == W()))
246246 then [BooleanEntry(G, aM)]
247247 else throw("Only the Admin itself can invoke this function")
248248
249249
250250
251251 @Callable(r)
252252 func blockDistribution (aN) = if (if ((r.caller == this))
253253 then true
254254 else (r.caller == W()))
255255 then [IntegerEntry(y, aN)]
256256 else throw("Only the Admin itself can invoke this function")
257257
258258
259259
260260 @Callable(r)
261261 func addAdmin (m) = if (if ((r.caller == this))
262262 then true
263263 else (r.caller == W()))
264264 then [StringEntry("admin", m)]
265265 else throw("Only the Admin itself can invoke this function")
266266
267267
268268
269269 @Callable(r)
270270 func lpAssetCreateForPairPool (J,K,aO,aP) = {
271271 let aQ = if ((J == F))
272272 then F
273273 else s(fromBase58String(J))
274274 let aR = if ((K == F))
275275 then F
276276 else s(fromBase58String(K))
277277 let aS = if (aP)
278278 then aO
279279 else ((aQ + "_") + aR)
280280 let M = L(I(J, K))
281281 if (if ((r.caller == this))
282282 then true
283283 else (r.caller == W()))
284284 then if ((M != false))
285285 then {
286286 let aT = Issue(aS, ((("LP asset for pool liquidity in AxAi Swap pair " + J) + "_") + K), (1 * i), 8, true)
287287 let aU = calculateAssetId(aT)
288288 [StringEntry((b + I(J, K)), toBase58String(aU)), aT]
289289 }
290290 else throw("Invalid Pool Key. Try inverting the assets")
291291 else throw("Only the Admin itself can invoke this function")
292292 }
293293
294294
295295
296296 @Callable(r)
297297 func deposit (aV,T,U) = {
298298 let aW = getBooleanValue(this, u)
299299 let aX = getBooleanValue(this, x)
300300 let aY = getStringValue(this, a)
301301 let aZ = if (aV)
302302 then getStringValue(this, (b + I(T, U)))
303303 else aY
304304 if (aW)
305305 then if (!(aX))
306306 then if ((r.payments[0].assetId != fromBase58String(aZ)))
307307 then throw((("Invalid asset! Kindly Deposit Only " + aY) + " or valid asset lp"))
308308 else if (!(aV))
309309 then {
310310 let ba = toBase58String(r.caller.bytes)
311311 let bb = {
312312 let q = getInteger(this, ba)
313313 if ($isInstanceOf(q, "Int"))
314314 then {
315315 let Q = q
316316 Q
317317 }
318318 else 0
319319 }
320320 let bc = (bb + r.payments[0].amount)
321321 let bd = IntegerEntry(ba, bc)
322322 let be = IntegerEntry((h + ba), height)
323323 let bf = {
324324 let q = getInteger(this, "Total_Tokens_Locked:")
325325 if ($isInstanceOf(q, "Int"))
326326 then {
327327 let Q = q
328328 Q
329329 }
330330 else 0
331331 }
332332 let bg = (bf + r.payments[0].amount)
333333 let bh = IntegerEntry("Total_Tokens_Locked:", bg)
334334 [bd, be, bh]
335335 }
336336 else {
337337 let bi = I(T, U)
338338 let M = L(bi)
339339 if ((M != false))
340340 then {
341341 let ba = toBase58String(r.caller.bytes)
342342 let bb = {
343343 let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bi))
344344 if ($isInstanceOf(q, "Int"))
345345 then {
346346 let Q = q
347347 Q
348348 }
349349 else 0
350350 }
351351 let bc = (bb + r.payments[0].amount)
352352 let bd = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bi), bc)
353353 let be = IntegerEntry(((((h + "_") + ba) + "_") + bi), height)
354354 let bf = {
355355 let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bi))
356356 if ($isInstanceOf(q, "Int"))
357357 then {
358358 let Q = q
359359 Q
360360 }
361361 else 0
362362 }
363363 let bg = (bf + r.payments[0].amount)
364364 let bh = IntegerEntry(("Total_Tokens_LP_Locked_" + bi), bg)
365365 [bd, be, bh]
366366 }
367367 else throw("Invalid Pool key.")
368368 }
369369 else throw("liquidity is currently under maintenance.")
370370 else throw("dApp is currently under maintenance.")
371371 }
372372
373373
374374
375375 @Callable(r)
376376 func remove (aV,T,U,bj) = {
377377 let aW = getBooleanValue(this, u)
378378 let aX = getBooleanValue(this, x)
379379 let bk = r.payments[0]
380380 let aY = fromBase58String(getStringValue(this, a))
381381 if (aW)
382382 then if (!(aX))
383383 then {
384384 let ba = toBase58String(r.caller.bytes)
385385 let bb = {
386386 let q = if (aV)
387387 then getIntegerValue(this, ((("STAKE_LP_" + ba) + "_") + I(T, U)))
388388 else getIntegerValue(this, ba)
389389 if ($isInstanceOf(q, "Int"))
390390 then {
391391 let Q = q
392392 Q
393393 }
394394 else 0
395395 }
396396 let bl = if (aV)
397397 then ((((h + "_") + ba) + "_") + I(T, U))
398398 else (h + ba)
399399 let bf = if (aV)
400400 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
401401 else getIntegerValue(this, "Total_Tokens_Locked:")
402402 let bg = (bf - bj)
403403 let bm = (height - getIntegerValue(this, bl))
404404 let bn = getIntegerValue(this, y)
405405 let bo = ((bm * bn) * i)
406406 let bp = (bo / (bf / bj))
407407 if ((0 > bj))
408408 then throw(if (aV)
409409 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
410410 else "Can't withdraw negative AxAi amount")
411411 else {
412412 let bc = (bb - bj)
413413 if ((0 > bc))
414414 then throw(if (aV)
415415 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
416416 else "Not enough AxAi balance")
417417 else [IntegerEntry(if (aV)
418418 then ((("STAKE_LP_" + ba) + "_") + I(T, U))
419419 else ba, bc), IntegerEntry(if (aV)
420420 then ("Total_Tokens_LP_Locked_" + I(T, U))
421421 else "Total_Tokens_Locked:", bg), ScriptTransfer(r.caller, bj, if (aV)
422422 then fromBase58String(getStringValue(this, (b + I(T, U))))
423423 else aY), ScriptTransfer(r.caller, bp, aY)]
424424 }
425425 }
426426 else throw("liquidity is currently under maintenance.")
427427 else throw("dApp is currently under maintenance.")
428428 }
429429
430430
431431
432432 @Callable(r)
433433 func addLiquidity (T,U) = {
434434 let aW = getBooleanValue(this, u)
435435 let bq = getBooleanValue(this, v)
436436 let aa = getBooleanValue(this, G)
437437 let M = L(I(T, U))
438438 let J = r.payments[0].assetId
439439 let K = r.payments[1].assetId
440440 let br = fromBase58String(getStringValue(this, A))
441441 let bs = fromBase58String(getStringValue(this, C))
442442 let bt = fromBase58String(getStringValue(this, B))
443443 let bu = fromBase58String(getStringValue(this, D))
444444 let bv = fromBase58String(getStringValue(this, E))
445445 let aY = fromBase58String(getStringValue(this, a))
446446 let aZ = getStringValue(this, (b + I(T, U)))
447447 let bw = if ((2 > ab(((I(T, U) + "_") + T), false)))
448448 then r.payments[0].amount
449449 else ab(((I(T, U) + "_") + T), false)
450450 let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
451451 then r.payments[1].amount
452452 else ab(((I(T, U) + "_") + U), false)
453- let by = if (if ((((r.payments[0].amount * i) / r.payments[1].amount) == ((bw * i) / bx)))
454- then (((r.payments[1].amount * i) / r.payments[0].amount) == ((bx * i) / bw))
455- else false)
456- then true
457- else false
458- let bz = ab(aZ, true)
453+ let by = ab(aZ, true)
454+ let bz = ((bw + bx) / by)
455+ let bA = (r.payments[0].amount * (bw / bx))
456+ let bB = if ((r.payments[1].amount != bA))
457+ then false
458+ else true
459459 if (aW)
460460 then if (!(bq))
461461 then if (if (if (!((J == K)))
462462 then X(J, T, aa)
463463 else false)
464464 then X(K, U, aa)
465465 else false)
466466 then if (if (if (if (if (if (if (if ((J == br))
467467 then true
468468 else (J == bs))
469469 then true
470470 else (J == bt))
471471 then true
472472 else (J == bu))
473473 then true
474474 else (J == aY))
475475 then true
476476 else (J == H))
477477 then true
478478 else (J == bv))
479479 then if (if (if (if (if (if ((K == br))
480480 then true
481481 else (K == bs))
482482 then true
483483 else (K == bt))
484484 then true
485485 else (K == bu))
486486 then true
487487 else (K == aY))
488488 then true
489489 else (K == H))
490490 then true
491491 else (K == bv)
492492 else false)
493493 then if ((M != false))
494- then if (by)
494+ then if (bB)
495495 then {
496496 let ba = toBase58String(r.caller.bytes)
497497 let bb = N(ba, I(T, U))
498- let bA = P(ba, I(T, U), T)
499- let bB = P(ba, I(T, U), U)
500- let bC = R(I(T, U), T)
501- let bD = R(I(T, U), U)
502- let bE = if ((bw == r.payments[0].amount))
498+ let bC = P(ba, I(T, U), T)
499+ let bD = P(ba, I(T, U), U)
500+ let bE = R(I(T, U), T)
501+ let bF = R(I(T, U), U)
502+ let bG = if ((bw == r.payments[0].amount))
503503 then (1 * i)
504- else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / bz))
505- let bF = (bA + r.payments[0].amount)
506- let bG = (bB + r.payments[1].amount)
507- let bH = (bb + bE)
508- let bI = (bC + r.payments[0].amount)
509- let bJ = (bD + r.payments[1].amount)
510-[Reissue(fromBase58String(aZ), bE, true), ScriptTransfer(Address(r.caller.bytes), bE, fromBase58String(aZ)), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bF), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bG), IntegerEntry(((I(T, U) + "_") + ba), bH), IntegerEntry(((I(T, U) + "_") + T), bI), IntegerEntry(((I(T, U) + "_") + U), bJ), IntegerEntry(T, (p(T) + r.payments[0].amount)), IntegerEntry(U, (p(U) + r.payments[1].amount)), IntegerEntry(aZ, (p(aZ) + bE))]
504+ else ((r.payments[0].amount + r.payments[1].amount) / ((bw + bx) / by))
505+ let bH = (bC + r.payments[0].amount)
506+ let bI = (bD + r.payments[1].amount)
507+ let bJ = (bb + bG)
508+ let bK = (bE + r.payments[0].amount)
509+ let bL = (bF + r.payments[1].amount)
510+[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))]
511511 }
512512 else throw(((("Payment of invalid 1/1 amounts to the Pool. Try Asset1: " + toString(((bw * i) / bx))) + " Asset2: ") + toString(((bx * i) / bw))))
513513 else throw("Invalid Pool Key.")
514514 else throw("Invalid Asset1 or Asset2!")
515515 else throw("Asset1 cannot be equal to Asset2")
516516 else throw("liquidity is currently under maintenance.")
517517 else throw("dApp is currently under maintenance.")
518518 }
519519
520520
521521
522522 @Callable(r)
523-func removeLiquidity (T,U,bK) = {
523+func removeLiquidity (T,U,bM) = {
524524 let ba = toBase58String(r.caller.bytes)
525525 let aW = getBooleanValue(this, u)
526526 let bq = getBooleanValue(this, v)
527527 let aa = getBooleanValue(this, G)
528528 let bi = I(T, U)
529529 let M = L(bi)
530530 let J = if ((T == F))
531531 then if (aa)
532532 then H
533533 else throw("The smart contract does not currently support Waves.")
534534 else fromBase58String(T)
535535 let K = if ((U == F))
536536 then if (aa)
537537 then H
538538 else throw("The smart contract does not currently support Waves.")
539539 else fromBase58String(U)
540540 let br = fromBase58String(getStringValue(this, A))
541541 let bs = fromBase58String(getStringValue(this, C))
542542 let bt = fromBase58String(getStringValue(this, B))
543543 let bu = fromBase58String(getStringValue(this, D))
544544 let aY = fromBase58String(getStringValue(this, a))
545545 let bv = fromBase58String(getStringValue(this, E))
546546 let aZ = getStringValue(this, (b + I(T, U)))
547547 let bb = N(ba, I(T, U))
548- let bL = V(ba, bi)
549- let bM = getIntegerValue(this, aZ)
548+ let bN = V(ba, bi)
549+ let bO = getIntegerValue(this, aZ)
550550 let bw = ab(((I(T, U) + "_") + T), false)
551551 let bx = ab(((I(T, U) + "_") + U), false)
552552 if (aW)
553553 then if (!(bq))
554554 then if (!((T == U)))
555555 then if (if (if (if (if (if (if (if ((J == br))
556556 then true
557557 else (J == bs))
558558 then true
559559 else (J == bt))
560560 then true
561561 else (J == bu))
562562 then true
563563 else (J == aY))
564564 then true
565565 else (J == H))
566566 then true
567567 else (J == bv))
568568 then if (if (if (if (if (if ((K == br))
569569 then true
570570 else (K == bs))
571571 then true
572572 else (K == bt))
573573 then true
574574 else (K == bu))
575575 then true
576576 else (K == aY))
577577 then true
578578 else (K == H))
579579 then true
580580 else (K == bv)
581581 else false)
582582 then if ((M != false))
583583 then if (!((bb == 0)))
584- then if (((bb - bL) >= bK))
584+ then if (((bb - bN) >= bM))
585585 then {
586- let bN = (bK / bM)
587- let bO = (bN * bw)
588- let bP = (bN * bx)
589- let bC = R(I(T, U), T)
590- let bD = R(I(T, U), U)
591- let bA = P(ba, I(T, U), T)
592- let bB = P(ba, I(T, U), U)
593- let bF = (bA - bO)
594- let bG = (bB - bP)
595- let bH = (bb - bK)
596- let bI = (bC - bO)
597- let bJ = (bD - bP)
586+ let bP = (bM / bO)
587+ let bQ = (bP * bw)
588+ let bR = (bP * bx)
589+ let bE = R(I(T, U), T)
590+ let bF = R(I(T, U), U)
591+ let bC = P(ba, I(T, U), T)
592+ let bD = P(ba, I(T, U), U)
593+ let bH = (bC - bQ)
594+ let bI = (bD - bR)
595+ let bJ = (bb - bM)
596+ let bK = (bE - bQ)
597+ let bL = (bF - bR)
598598 if ((r.payments[0].assetId == fromBase58String(aZ)))
599- then if ((bK == r.payments[0].amount))
600- then [Burn(fromBase58String(aZ), bK), ScriptTransfer(Address(r.caller.bytes), bO, J), ScriptTransfer(Address(r.caller.bytes), bP, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bF), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bG), IntegerEntry(((I(T, U) + "_") + ba), bH), IntegerEntry(((I(T, U) + "_") + T), bI), IntegerEntry(((I(T, U) + "_") + U), bJ), IntegerEntry(T, (p(T) - bO)), IntegerEntry(U, (p(U) - bP)), IntegerEntry(aZ, (p(aZ) - bK))]
599+ then if ((bM == r.payments[0].amount))
600+ then [Burn(fromBase58String(aZ), bM), 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), 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) - bQ)), IntegerEntry(U, (p(U) - bR)), IntegerEntry(aZ, (p(aZ) - bM))]
601601 else throw("Withdrawal amount lower than asset lp amount")
602602 else throw("Requires an lp asset as payment to remove locked amounts.")
603603 }
604604 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
605605 else throw("You have no locked values ​​in the pool")
606606 else throw("Invalid Pool Key.")
607607 else throw("Invalid Asset1 or Asset2!")
608608 else throw("Asset1 cannot be equal to Asset2")
609609 else throw("liquidity is currently under maintenance.")
610610 else throw("dApp is currently under maintenance.")
611611 }
612612
613613
614614
615615 @Callable(r)
616616 func swap (T,U) = {
617617 let ba = toBase58String(r.caller.bytes)
618618 let aa = getBooleanValue(this, G)
619619 let aW = getBooleanValue(this, u)
620- let bQ = getBooleanValue(this, w)
620+ let bS = getBooleanValue(this, w)
621621 let bi = I(T, U)
622622 let M = L(bi)
623623 let J = r.payments[0].assetId
624624 let br = fromBase58String(getStringValue(this, A))
625625 let bs = fromBase58String(getStringValue(this, C))
626626 let bt = fromBase58String(getStringValue(this, B))
627627 let bu = fromBase58String(getStringValue(this, D))
628628 let aY = fromBase58String(getStringValue(this, a))
629629 let bv = fromBase58String(getStringValue(this, E))
630- let bR = ab(((I(T, U) + "_") + T), false)
631- let bS = ab(((I(T, U) + "_") + U), false)
632- let bT = getIntegerValue(this, g)
630+ let bT = ab(((I(T, U) + "_") + T), false)
631+ let bU = ab(((I(T, U) + "_") + U), false)
632+ let bV = getIntegerValue(this, g)
633633 if (aW)
634- then if (!(bQ))
634+ then if (!(bS))
635635 then if (if (!((T == U)))
636636 then if (X(J, T, aa))
637637 then true
638638 else X(J, U, aa)
639639 else false)
640640 then if (if (if (if (if (if (if ((J == br))
641641 then true
642642 else (J == bs))
643643 then true
644644 else (J == bt))
645645 then true
646646 else (J == bu))
647647 then true
648648 else (J == aY))
649649 then true
650650 else (J == bv))
651651 then true
652652 else (J == H))
653653 then if ((M != false))
654654 then if ((r.payments[1].assetId == aY))
655655 then if ((r.payments[1].amount == 300000))
656- then if (if ((bR > 2))
656+ then if (if ((bT > 2))
657657 then true
658- else (bS > 2))
658+ else (bU > 2))
659659 then {
660- let bU = if (!((J == fromBase58String(T))))
661- then (bR / bS)
662- else (bS / bR)
663- let aN = (r.payments[0].amount - ((r.payments[0].amount * bT) / (100 * i)))
664- let bV = (aN * bU)
665-[ScriptTransfer(Address(r.caller.bytes), bV, if ((J == fromBase58String(U)))
660+ let bW = if (!((J == fromBase58String(T))))
661+ then (bT / bU)
662+ else (bU / bT)
663+ let aN = (r.payments[0].amount - ((r.payments[0].amount * bV) / (100 * i)))
664+ let bX = (aN * bW)
665+[ScriptTransfer(Address(r.caller.bytes), bX, if ((J == fromBase58String(U)))
666666 then if ((U == F))
667667 then H
668668 else fromBase58String(T)
669669 else if ((T == F))
670670 then H
671- else fromBase58String(U)), IntegerEntry(U, (p(U) - bV)), IntegerEntry(((I(T, U) + "_") + U), (R(I(T, U), U) - bV))]
671+ else fromBase58String(U)), IntegerEntry(U, (p(U) - bX)), IntegerEntry(((I(T, U) + "_") + U), (R(I(T, U), U) - bX))]
672672 }
673673 else throw("Pool has no liquidity.")
674674 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
675675 else throw("Invalid rate asset")
676676 else throw("Invalid Swap Key.")
677677 else throw("Invalid Asset1 or Asset2!")
678678 else throw("Asset1 cannot be equal to Asset2")
679679 else throw("Swap is currently under maintenance.")
680680 else throw("dApp is currently under maintenance.")
681681 }
682682
683683
684-@Verifier(bW)
685-func bX () = {
686- let q = bW
684+@Verifier(bY)
685+func bZ () = {
686+ let q = bY
687687 if ($isInstanceOf(q, "Order"))
688688 then {
689- let bY = q
689+ let ca = q
690690 true
691691 }
692692 else if ($isInstanceOf(q, "ExchangeTransaction"))
693693 then {
694- let bZ = q
694+ let cb = q
695695 true
696696 }
697- else sigVerify(bW.bodyBytes, bW.proofs[0], bW.senderPublicKey)
697+ else sigVerify(bY.bodyBytes, bY.proofs[0], bY.senderPublicKey)
698698 }
699699

github/deemru/w8io/873ac7e 
153.12 ms