tx · GpLrkzDVqLTs19WLtLTSWpJcGq6yM8xENZDMXxpQ7nkZ

3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU:  -0.03300000 Waves

2022.07.18 09:04 [2144808] smart account 3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU > SELF 0.00000000 Waves

{ "type": 13, "id": "GpLrkzDVqLTs19WLtLTSWpJcGq6yM8xENZDMXxpQ7nkZ", "fee": 3300000, "feeAssetId": null, "timestamp": 1658124273238, "version": 2, "chainId": 84, "sender": "3N8pVPvAfr79Ysbb4MEwi2Ks7d6LKUXG1iU", "senderPublicKey": "GDio3pYFUMSWQ3yen7TJP79nTPaGuPbxjKixvKLuYS8E", "proofs": [ "431cY1t7fn5vU56CnEP4dWSnin3vaWdrjGpA1J83VqLpBLAUjfgLPZwkWw7ySnTJT31c4hh8shLMr7Ffyb9cAUtR" ], "script": "base64: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CQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAFGtleVBvb2xVc2R0TWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2R0RXVybgkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAAC0V1cm5Bc3NldElkBAAAABBrZXlQb29sTmdubldhdmVzCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAAFd2F2ZXMEAAAAFGtleVBvb2xOZ25uTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xOZ25uRXVy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", "height": 2144808, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HYpoPinBEAwcdESsPd3aJG293uphnagNHeA9EseoJa2J Next: 5bE1e6pyCcV6qwajQQFVHDqbxS6JoeJfTijoJXN6QqD3 Diff:
OldNewDifferences
510510 let bG = P(ba, I(T, U), U)
511511 let bH = R(I(T, U), T)
512512 let bI = R(I(T, U), U)
513- let bJ = if ((bx == r.payments[0].amount))
514- then (1 * i)
515- else ((r.payments[0].amount + r.payments[1].amount) / ((bx + by) / bz))
516-[throw(("receive lp:" + toString(bJ)))]
513+[throw(((((((("receive lp details:" + toString(bz)) + " ") + toString((r.payments[0].amount + r.payments[1].amount))) + " ") + toString((bx + by))) + " ") + toString(bz)))]
517514 }
518515 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)))
519516 else throw("Invalid Pool Key.")
526523
527524
528525 @Callable(r)
529-func removeLiquidity (T,U,bK) = {
526+func removeLiquidity (T,U,bJ) = {
530527 let ba = toBase58String(r.caller.bytes)
531528 let aW = getBooleanValue(this, u)
532529 let br = getBooleanValue(this, v)
551548 let bw = fromBase58String(getStringValue(this, E))
552549 let aZ = getStringValue(this, (b + I(T, U)))
553550 let bb = N(ba, I(T, U))
554- let bL = V(ba, bj)
555- let bM = ab(aZ, true)
551+ let bK = V(ba, bj)
552+ let bL = ab(aZ, true)
556553 let bx = ab(((I(T, U) + "_") + T), false)
557554 let by = ab(((I(T, U) + "_") + U), false)
558555 if (aW)
587584 else false)
588585 then if ((M != false))
589586 then if (!((bb == 0)))
590- then if (((bb - bL) >= bK))
587+ then if (((bb - bK) >= bJ))
591588 then if (if ((bx > 2))
592589 then true
593590 else (by > 2))
594591 then {
595- let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bM)) * toBigInt(bx)) / toBigInt(i))) - 1)
596- let bO = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bM)) * toBigInt(by)) / toBigInt(i))) - 1)
592+ let bM = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(bx)) / toBigInt(i))) - 1)
593+ let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(by)) / toBigInt(i))) - 1)
597594 let bH = R(I(T, U), T)
598595 let bI = R(I(T, U), U)
599596 let bF = P(ba, I(T, U), T)
600597 let bG = P(ba, I(T, U), U)
601- let bP = (bF - bN)
602- let bQ = (bG - bO)
603- let bR = (bb - bK)
604- let bS = (bH - bN)
605- let bT = (bI - bO)
598+ let bO = (bF - bM)
599+ let bP = (bG - bN)
600+ let bQ = (bb - bJ)
601+ let bR = (bH - bM)
602+ let bS = (bI - bN)
606603 if ((r.payments[0].assetId == fromBase58String(aZ)))
607- then if ((bK == r.payments[0].amount))
608- then [Burn(fromBase58String(aZ), bK), ScriptTransfer(Address(r.caller.bytes), bN, J), ScriptTransfer(Address(r.caller.bytes), bO, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bP), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bQ), IntegerEntry(((I(T, U) + "_") + ba), bR), IntegerEntry(((I(T, U) + "_") + T), bS), IntegerEntry(((I(T, U) + "_") + U), bT), IntegerEntry(T, (p(T) - bN)), IntegerEntry(U, (p(U) - bO)), IntegerEntry(aZ, (p(aZ) - bK))]
609- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bK)))
604+ then if ((bJ == r.payments[0].amount))
605+ then [Burn(fromBase58String(aZ), bJ), ScriptTransfer(Address(r.caller.bytes), bM, J), ScriptTransfer(Address(r.caller.bytes), bN, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bO), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bP), IntegerEntry(((I(T, U) + "_") + ba), bQ), IntegerEntry(((I(T, U) + "_") + T), bR), IntegerEntry(((I(T, U) + "_") + U), bS), IntegerEntry(T, (p(T) - bM)), IntegerEntry(U, (p(U) - bN)), IntegerEntry(aZ, (p(aZ) - bJ))]
606+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bJ)))
610607 else throw("Requires an lp asset as payment to remove locked amounts.")
611608 }
612609 else throw("Pool has no liquidity.")
613- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bK)))
610+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bJ)))
614611 else throw("You have no locked values ​​in the pool")
615612 else throw("Invalid Pool Key.")
616613 else throw("Invalid Asset1 or Asset2!")
626623 let ba = toBase58String(r.caller.bytes)
627624 let aa = getBooleanValue(this, G)
628625 let aW = getBooleanValue(this, u)
629- let bU = getBooleanValue(this, w)
626+ let bT = getBooleanValue(this, w)
630627 let bj = I(T, U)
631628 let M = L(bj)
632629 let J = r.payments[0].assetId
637634 let aY = fromBase58String(getStringValue(this, a))
638635 let bw = fromBase58String(getStringValue(this, E))
639636 let aZ = getStringValue(this, (b + I(T, U)))
640- let bV = ab(((I(T, U) + "_") + T), false)
641- let bW = ab(((I(T, U) + "_") + U), false)
642- let bX = getIntegerValue(this, g)
643- let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bW), toBigInt(bV)))
644- let bZ = toInt(((bY - ((bY / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
645- let ca = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bW)))
646- let cb = toInt(((ca - ((ca / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
647- let cc = if (if ((J == unit))
637+ let bU = ab(((I(T, U) + "_") + T), false)
638+ let bV = ab(((I(T, U) + "_") + U), false)
639+ let bW = getIntegerValue(this, g)
640+ let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bU)))
641+ let bY = toInt(((bX - ((bX / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
642+ let bZ = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bV)))
643+ let ca = toInt(((bZ - ((bZ / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
644+ let cb = if (if ((J == unit))
648645 then (T == F)
649646 else false)
650- then bZ
647+ then bY
651648 else if ((J == fromBase58String(T)))
652- then bZ
653- else cb
654- let cd = if ((J == unit))
649+ then bY
650+ else ca
651+ let cc = if ((J == unit))
655652 then F
656653 else if ((J == fromBase58String(T)))
657654 then T
658655 else U
659- let ce = if ((J == unit))
656+ let cd = if ((J == unit))
660657 then F
661658 else if ((J == fromBase58String(T)))
662659 then U
663660 else T
664- let cf = if ((J == unit))
661+ let ce = if ((J == unit))
665662 then H
666663 else if ((J == fromBase58String(T)))
667664 then fromBase58String(U)
668665 else fromBase58String(T)
669666 if (aW)
670- then if (!(bU))
667+ then if (!(bT))
671668 then if (if (!((T == U)))
672669 then if (X(J, T, aa))
673670 then true
689686 then if ((M != false))
690687 then if ((r.payments[1].assetId == aY))
691688 then if ((r.payments[1].amount == 300000))
692- then if (if ((bV > 2))
689+ then if (if ((bU > 2))
693690 then true
694- else (bW > 2))
695- then [ScriptTransfer(Address(r.caller.bytes), cc, cf), IntegerEntry(ce, (p(ce) - cc)), IntegerEntry(((I(T, U) + "_") + ce), (R(I(T, U), ce) - cc)), 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))]
691+ else (bV > 2))
692+ then [ScriptTransfer(Address(r.caller.bytes), cb, ce), IntegerEntry(cd, (p(cd) - cb)), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) - cb)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) + r.payments[0].amount)), IntegerEntry(cc, (p(cc) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
696693 else throw("Pool has no liquidity.")
697694 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
698695 else throw("Invalid rate asset")
704701 }
705702
706703
707-@Verifier(cg)
708-func ch () = {
709- let q = cg
704+@Verifier(cf)
705+func cg () = {
706+ let q = cf
710707 if ($isInstanceOf(q, "Order"))
711708 then {
712- let ci = q
709+ let ch = q
713710 true
714711 }
715712 else if ($isInstanceOf(q, "ExchangeTransaction"))
716713 then {
717- let cj = q
714+ let ci = q
718715 true
719716 }
720717 else if ($isInstanceOf(q, "TransferTransaction"))
721718 then {
722- let ck = q
723- (ck.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
719+ let cj = q
720+ (cj.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
724721 }
725- else sigVerify(cg.bodyBytes, cg.proofs[0], cg.senderPublicKey)
722+ else sigVerify(cf.bodyBytes, cf.proofs[0], cf.senderPublicKey)
726723 }
727724
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 = if ((bb == 0))
320320 then height
321321 else valueOrElse(getIntegerValue(this, (h + ba)), height)
322322 let bd = (bb + r.payments[0].amount)
323323 let be = IntegerEntry(ba, bd)
324324 let bf = IntegerEntry((h + ba), bc)
325325 let bg = {
326326 let q = getInteger(this, "Total_Tokens_Locked:")
327327 if ($isInstanceOf(q, "Int"))
328328 then {
329329 let Q = q
330330 Q
331331 }
332332 else 0
333333 }
334334 let bh = (bg + r.payments[0].amount)
335335 let bi = IntegerEntry("Total_Tokens_Locked:", bh)
336336 [be, bf, bi]
337337 }
338338 else {
339339 let bj = I(T, U)
340340 let M = L(bj)
341341 if ((M != false))
342342 then {
343343 let ba = toBase58String(r.caller.bytes)
344344 let bb = {
345345 let q = getInteger(this, ((("STAKE_LP_" + ba) + "_") + bj))
346346 if ($isInstanceOf(q, "Int"))
347347 then {
348348 let Q = q
349349 Q
350350 }
351351 else 0
352352 }
353353 let bc = if ((bb == 0))
354354 then height
355355 else valueOrElse(getIntegerValue(this, ((((h + "_") + ba) + "_") + bj)), height)
356356 let bd = (bb + r.payments[0].amount)
357357 let be = IntegerEntry(((("STAKE_LP_" + ba) + "_") + bj), bd)
358358 let bf = IntegerEntry(((((h + "_") + ba) + "_") + bj), height)
359359 let bg = {
360360 let q = getInteger(this, ("Total_Tokens_LP_Locked_" + bj))
361361 if ($isInstanceOf(q, "Int"))
362362 then {
363363 let Q = q
364364 Q
365365 }
366366 else 0
367367 }
368368 let bh = (bg + r.payments[0].amount)
369369 let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
370370 [be, bf, bi]
371371 }
372372 else throw("Invalid Pool key.")
373373 }
374374 else throw("liquidity is currently under maintenance.")
375375 else throw("dApp is currently under maintenance.")
376376 }
377377
378378
379379
380380 @Callable(r)
381381 func remove (aV,T,U,bk) = {
382382 let aW = getBooleanValue(this, u)
383383 let aX = getBooleanValue(this, x)
384384 let bl = r.payments[0]
385385 let aY = fromBase58String(getStringValue(this, a))
386386 if (aW)
387387 then if (!(aX))
388388 then {
389389 let ba = toBase58String(r.caller.bytes)
390390 let bb = {
391391 let q = if (aV)
392392 then getIntegerValue(this, ((("STAKE_LP_" + ba) + "_") + I(T, U)))
393393 else getIntegerValue(this, ba)
394394 if ($isInstanceOf(q, "Int"))
395395 then {
396396 let Q = q
397397 Q
398398 }
399399 else 0
400400 }
401401 let bm = if (aV)
402402 then ((((h + "_") + ba) + "_") + I(T, U))
403403 else (h + ba)
404404 let bg = if (aV)
405405 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + I(T, U)))
406406 else getIntegerValue(this, "Total_Tokens_Locked:")
407407 let bh = (bg - bk)
408408 let bn = (height - getIntegerValue(this, bm))
409409 let bo = getIntegerValue(this, y)
410410 let bp = ((bn * bo) * i)
411411 let bq = (bp / (bg / bk))
412412 if ((0 > bk))
413413 then throw(if (aV)
414414 then (((("Can't withdraw negative " + T) + "/") + U) + " amount")
415415 else "Can't withdraw negative AxAi amount")
416416 else {
417417 let bd = (bb - bk)
418418 if ((0 > bd))
419419 then throw(if (aV)
420420 then (((("Not enough Asset Lp " + T) + "/") + U) + " balance")
421421 else "Not enough AxAi balance")
422422 else [IntegerEntry(if (aV)
423423 then ((("STAKE_LP_" + ba) + "_") + I(T, U))
424424 else ba, bd), IntegerEntry(if (aV)
425425 then ("Total_Tokens_LP_Locked_" + I(T, U))
426426 else "Total_Tokens_Locked:", bh), ScriptTransfer(r.caller, bk, if (aV)
427427 then fromBase58String(getStringValue(this, (b + I(T, U))))
428428 else aY), ScriptTransfer(r.caller, bq, aY)]
429429 }
430430 }
431431 else throw("liquidity is currently under maintenance.")
432432 else throw("dApp is currently under maintenance.")
433433 }
434434
435435
436436
437437 @Callable(r)
438438 func addLiquidity (T,U) = {
439439 let aW = getBooleanValue(this, u)
440440 let br = getBooleanValue(this, v)
441441 let aa = getBooleanValue(this, G)
442442 let M = L(I(T, U))
443443 let J = r.payments[0].assetId
444444 let K = r.payments[1].assetId
445445 let bs = fromBase58String(getStringValue(this, A))
446446 let bt = fromBase58String(getStringValue(this, C))
447447 let bu = fromBase58String(getStringValue(this, B))
448448 let bv = fromBase58String(getStringValue(this, D))
449449 let bw = fromBase58String(getStringValue(this, E))
450450 let aY = fromBase58String(getStringValue(this, a))
451451 let aZ = getStringValue(this, (b + I(T, U)))
452452 let bx = if ((2 > ab(((I(T, U) + "_") + T), false)))
453453 then r.payments[0].amount
454454 else ab(((I(T, U) + "_") + T), false)
455455 let by = if ((2 > ab(((I(T, U) + "_") + T), false)))
456456 then r.payments[1].amount
457457 else ab(((I(T, U) + "_") + U), false)
458458 let bz = ab(aZ, true)
459459 let bA = ((bx + by) / bz)
460460 let bB = (r.payments[0].amount * (by / bx))
461461 let bC = (r.payments[1].amount + ((r.payments[1].amount * 2) / 100))
462462 let bD = (r.payments[1].amount - ((r.payments[1].amount * 2) / 100))
463463 let bE = if (if (if ((r.payments[1].amount == bB))
464464 then true
465465 else (bC > r.payments[1].amount))
466466 then true
467467 else (r.payments[1].amount > bD))
468468 then true
469469 else false
470470 if (aW)
471471 then if (!(br))
472472 then if (if (if (!((J == K)))
473473 then X(J, T, aa)
474474 else false)
475475 then X(K, U, aa)
476476 else false)
477477 then if (if (if (if (if (if (if (if ((J == bs))
478478 then true
479479 else (J == bt))
480480 then true
481481 else (J == bu))
482482 then true
483483 else (J == bv))
484484 then true
485485 else (J == aY))
486486 then true
487487 else (J == H))
488488 then true
489489 else (J == bw))
490490 then if (if (if (if (if (if ((K == bs))
491491 then true
492492 else (K == bt))
493493 then true
494494 else (K == bu))
495495 then true
496496 else (K == bv))
497497 then true
498498 else (K == aY))
499499 then true
500500 else (K == H))
501501 then true
502502 else (K == bw)
503503 else false)
504504 then if ((M != false))
505505 then if (bE)
506506 then {
507507 let ba = toBase58String(r.caller.bytes)
508508 let bb = N(ba, I(T, U))
509509 let bF = P(ba, I(T, U), T)
510510 let bG = P(ba, I(T, U), U)
511511 let bH = R(I(T, U), T)
512512 let bI = R(I(T, U), U)
513- let bJ = if ((bx == r.payments[0].amount))
514- then (1 * i)
515- else ((r.payments[0].amount + r.payments[1].amount) / ((bx + by) / bz))
516-[throw(("receive lp:" + toString(bJ)))]
513+[throw(((((((("receive lp details:" + toString(bz)) + " ") + toString((r.payments[0].amount + r.payments[1].amount))) + " ") + toString((bx + by))) + " ") + toString(bz)))]
517514 }
518515 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)))
519516 else throw("Invalid Pool Key.")
520517 else throw("Invalid Asset1 or Asset2!")
521518 else throw("Asset1 cannot be equal to Asset2")
522519 else throw("liquidity is currently under maintenance.")
523520 else throw("dApp is currently under maintenance.")
524521 }
525522
526523
527524
528525 @Callable(r)
529-func removeLiquidity (T,U,bK) = {
526+func removeLiquidity (T,U,bJ) = {
530527 let ba = toBase58String(r.caller.bytes)
531528 let aW = getBooleanValue(this, u)
532529 let br = getBooleanValue(this, v)
533530 let aa = getBooleanValue(this, G)
534531 let bj = I(T, U)
535532 let M = L(bj)
536533 let J = if ((T == F))
537534 then if (aa)
538535 then H
539536 else throw("The smart contract does not currently support Waves.")
540537 else fromBase58String(T)
541538 let K = if ((U == F))
542539 then if (aa)
543540 then H
544541 else throw("The smart contract does not currently support Waves.")
545542 else fromBase58String(U)
546543 let bs = fromBase58String(getStringValue(this, A))
547544 let bt = fromBase58String(getStringValue(this, C))
548545 let bu = fromBase58String(getStringValue(this, B))
549546 let bv = fromBase58String(getStringValue(this, D))
550547 let aY = fromBase58String(getStringValue(this, a))
551548 let bw = fromBase58String(getStringValue(this, E))
552549 let aZ = getStringValue(this, (b + I(T, U)))
553550 let bb = N(ba, I(T, U))
554- let bL = V(ba, bj)
555- let bM = ab(aZ, true)
551+ let bK = V(ba, bj)
552+ let bL = ab(aZ, true)
556553 let bx = ab(((I(T, U) + "_") + T), false)
557554 let by = ab(((I(T, U) + "_") + U), false)
558555 if (aW)
559556 then if (!(br))
560557 then if (!((T == U)))
561558 then if (if (if (if (if (if (if (if ((J == bs))
562559 then true
563560 else (J == bt))
564561 then true
565562 else (J == bu))
566563 then true
567564 else (J == bv))
568565 then true
569566 else (J == aY))
570567 then true
571568 else (J == H))
572569 then true
573570 else (J == bw))
574571 then if (if (if (if (if (if ((K == bs))
575572 then true
576573 else (K == bt))
577574 then true
578575 else (K == bu))
579576 then true
580577 else (K == bv))
581578 then true
582579 else (K == aY))
583580 then true
584581 else (K == H))
585582 then true
586583 else (K == bw)
587584 else false)
588585 then if ((M != false))
589586 then if (!((bb == 0)))
590- then if (((bb - bL) >= bK))
587+ then if (((bb - bK) >= bJ))
591588 then if (if ((bx > 2))
592589 then true
593590 else (by > 2))
594591 then {
595- let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bM)) * toBigInt(bx)) / toBigInt(i))) - 1)
596- let bO = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bM)) * toBigInt(by)) / toBigInt(i))) - 1)
592+ let bM = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(bx)) / toBigInt(i))) - 1)
593+ let bN = (toInt(((fraction(toBigInt(r.payments[0].amount), toBigInt(i), toBigInt(bL)) * toBigInt(by)) / toBigInt(i))) - 1)
597594 let bH = R(I(T, U), T)
598595 let bI = R(I(T, U), U)
599596 let bF = P(ba, I(T, U), T)
600597 let bG = P(ba, I(T, U), U)
601- let bP = (bF - bN)
602- let bQ = (bG - bO)
603- let bR = (bb - bK)
604- let bS = (bH - bN)
605- let bT = (bI - bO)
598+ let bO = (bF - bM)
599+ let bP = (bG - bN)
600+ let bQ = (bb - bJ)
601+ let bR = (bH - bM)
602+ let bS = (bI - bN)
606603 if ((r.payments[0].assetId == fromBase58String(aZ)))
607- then if ((bK == r.payments[0].amount))
608- then [Burn(fromBase58String(aZ), bK), ScriptTransfer(Address(r.caller.bytes), bN, J), ScriptTransfer(Address(r.caller.bytes), bO, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bP), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bQ), IntegerEntry(((I(T, U) + "_") + ba), bR), IntegerEntry(((I(T, U) + "_") + T), bS), IntegerEntry(((I(T, U) + "_") + U), bT), IntegerEntry(T, (p(T) - bN)), IntegerEntry(U, (p(U) - bO)), IntegerEntry(aZ, (p(aZ) - bK))]
609- else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bK)))
604+ then if ((bJ == r.payments[0].amount))
605+ then [Burn(fromBase58String(aZ), bJ), ScriptTransfer(Address(r.caller.bytes), bM, J), ScriptTransfer(Address(r.caller.bytes), bN, K), IntegerEntry(S(T, U, ba), height), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + T), bO), IntegerEntry(((((ba + "_") + I(T, U)) + "_") + U), bP), IntegerEntry(((I(T, U) + "_") + ba), bQ), IntegerEntry(((I(T, U) + "_") + T), bR), IntegerEntry(((I(T, U) + "_") + U), bS), IntegerEntry(T, (p(T) - bM)), IntegerEntry(U, (p(U) - bN)), IntegerEntry(aZ, (p(aZ) - bJ))]
606+ else throw(("Withdrawal amount lower than asset lp amount. Your Lp amount available: " + toString(bJ)))
610607 else throw("Requires an lp asset as payment to remove locked amounts.")
611608 }
612609 else throw("Pool has no liquidity.")
613- else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bK)))
610+ else throw(("Amount to be withdrawn greater than the amount available for withdrawal. Available: " + toString(bJ)))
614611 else throw("You have no locked values ​​in the pool")
615612 else throw("Invalid Pool Key.")
616613 else throw("Invalid Asset1 or Asset2!")
617614 else throw("Asset1 cannot be equal to Asset2")
618615 else throw("liquidity is currently under maintenance.")
619616 else throw("dApp is currently under maintenance.")
620617 }
621618
622619
623620
624621 @Callable(r)
625622 func swap (T,U) = {
626623 let ba = toBase58String(r.caller.bytes)
627624 let aa = getBooleanValue(this, G)
628625 let aW = getBooleanValue(this, u)
629- let bU = getBooleanValue(this, w)
626+ let bT = getBooleanValue(this, w)
630627 let bj = I(T, U)
631628 let M = L(bj)
632629 let J = r.payments[0].assetId
633630 let bs = fromBase58String(getStringValue(this, A))
634631 let bt = fromBase58String(getStringValue(this, C))
635632 let bu = fromBase58String(getStringValue(this, B))
636633 let bv = fromBase58String(getStringValue(this, D))
637634 let aY = fromBase58String(getStringValue(this, a))
638635 let bw = fromBase58String(getStringValue(this, E))
639636 let aZ = getStringValue(this, (b + I(T, U)))
640- let bV = ab(((I(T, U) + "_") + T), false)
641- let bW = ab(((I(T, U) + "_") + U), false)
642- let bX = getIntegerValue(this, g)
643- let bY = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bW), toBigInt(bV)))
644- let bZ = toInt(((bY - ((bY / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
645- let ca = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bW)))
646- let cb = toInt(((ca - ((ca / toBigInt(bX)) * toBigInt(100))) / toBigInt(i)))
647- let cc = if (if ((J == unit))
637+ let bU = ab(((I(T, U) + "_") + T), false)
638+ let bV = ab(((I(T, U) + "_") + U), false)
639+ let bW = getIntegerValue(this, g)
640+ let bX = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bV), toBigInt(bU)))
641+ let bY = toInt(((bX - ((bX / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
642+ let bZ = (toBigInt(r.payments[0].amount) * fraction(toBigInt(i), toBigInt(bU), toBigInt(bV)))
643+ let ca = toInt(((bZ - ((bZ / toBigInt(bW)) * toBigInt(100))) / toBigInt(i)))
644+ let cb = if (if ((J == unit))
648645 then (T == F)
649646 else false)
650- then bZ
647+ then bY
651648 else if ((J == fromBase58String(T)))
652- then bZ
653- else cb
654- let cd = if ((J == unit))
649+ then bY
650+ else ca
651+ let cc = if ((J == unit))
655652 then F
656653 else if ((J == fromBase58String(T)))
657654 then T
658655 else U
659- let ce = if ((J == unit))
656+ let cd = if ((J == unit))
660657 then F
661658 else if ((J == fromBase58String(T)))
662659 then U
663660 else T
664- let cf = if ((J == unit))
661+ let ce = if ((J == unit))
665662 then H
666663 else if ((J == fromBase58String(T)))
667664 then fromBase58String(U)
668665 else fromBase58String(T)
669666 if (aW)
670- then if (!(bU))
667+ then if (!(bT))
671668 then if (if (!((T == U)))
672669 then if (X(J, T, aa))
673670 then true
674671 else X(J, U, aa)
675672 else false)
676673 then if (if (if (if (if (if (if ((J == bs))
677674 then true
678675 else (J == bt))
679676 then true
680677 else (J == bu))
681678 then true
682679 else (J == bv))
683680 then true
684681 else (J == aY))
685682 then true
686683 else (J == bw))
687684 then true
688685 else (J == H))
689686 then if ((M != false))
690687 then if ((r.payments[1].assetId == aY))
691688 then if ((r.payments[1].amount == 300000))
692- then if (if ((bV > 2))
689+ then if (if ((bU > 2))
693690 then true
694- else (bW > 2))
695- then [ScriptTransfer(Address(r.caller.bytes), cc, cf), IntegerEntry(ce, (p(ce) - cc)), IntegerEntry(((I(T, U) + "_") + ce), (R(I(T, U), ce) - cc)), 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))]
691+ else (bV > 2))
692+ then [ScriptTransfer(Address(r.caller.bytes), cb, ce), IntegerEntry(cd, (p(cd) - cb)), IntegerEntry(((I(T, U) + "_") + cd), (R(I(T, U), cd) - cb)), IntegerEntry(((I(T, U) + "_") + cc), (R(I(T, U), cc) + r.payments[0].amount)), IntegerEntry(cc, (p(cc) + r.payments[0].amount)), IntegerEntry(toBase58String(aY), (p(toBase58String(aY)) + r.payments[1].amount))]
696693 else throw("Pool has no liquidity.")
697694 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
698695 else throw("Invalid rate asset")
699696 else throw("Invalid Swap Key.")
700697 else throw("Invalid Asset1 or Asset2!")
701698 else throw("Asset1 cannot be equal to Asset2")
702699 else throw("Swap is currently under maintenance.")
703700 else throw("dApp is currently under maintenance.")
704701 }
705702
706703
707-@Verifier(cg)
708-func ch () = {
709- let q = cg
704+@Verifier(cf)
705+func cg () = {
706+ let q = cf
710707 if ($isInstanceOf(q, "Order"))
711708 then {
712- let ci = q
709+ let ch = q
713710 true
714711 }
715712 else if ($isInstanceOf(q, "ExchangeTransaction"))
716713 then {
717- let cj = q
714+ let ci = q
718715 true
719716 }
720717 else if ($isInstanceOf(q, "TransferTransaction"))
721718 then {
722- let ck = q
723- (ck.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
719+ let cj = q
720+ (cj.recipient == Address(fromBase58String(getStringValue(this, "admin"))))
724721 }
725- else sigVerify(cg.bodyBytes, cg.proofs[0], cg.senderPublicKey)
722+ else sigVerify(cf.bodyBytes, cf.proofs[0], cf.senderPublicKey)
726723 }
727724

github/deemru/w8io/169f3d6 
110.99 ms