tx · Hzmn1cmPYWv3M7uAQRjh8kwgEF8v4dHRAbcGZ3YZaPs3

3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA:  -0.02900000 Waves

2022.07.10 00:57 [2132752] smart account 3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA > SELF 0.00000000 Waves

{ "type": 13, "id": "Hzmn1cmPYWv3M7uAQRjh8kwgEF8v4dHRAbcGZ3YZaPs3", "fee": 2900000, "feeAssetId": null, "timestamp": 1657403940901, "version": 2, "chainId": 84, "sender": "3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA", "senderPublicKey": "FA2TFZp55AkfpLAK7toKNNdufbHH3cY6aCSSMFcFPafT", "proofs": [ "4XmDTZCLHNzGkusuohmjuVemCS5w89knyAd8Ast3XZRthgoNxGPG3rcFRhMuevMgW7ZtScom5tYFxecKEpdLWNCS" ], "script": "base64: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ZUFzc2V0AAAAAwAAAAZhc3NldFMAAAALc3RyaW5nQXNzZXQAAAAHYWNXYXZlcwMDCQAAAAAAAAIFAAAABmFzc2V0UwUAAAAFV0FWRVMJAAAAAAAAAgUAAAALc3RyaW5nQXNzZXQCAAAABVdBVkVTBwMFAAAAB2FjV2F2ZXMGCQAAAgAAAAECAAAANFRoZSBzbWFydCBjb250cmFjdCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBXYXZlcy4DCQAAAAAAAAIFAAAABmFzc2V0UwkAAlkAAAABBQAAAAtzdHJpbmdBc3NldAYHAAAADQAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAkAAAALTWFpbkFzc2V0SWQAAAALVXNkbkFzc2V0SWQAAAALVXNkdEFzc2V0SWQAAAALVXNkY0Fzc2V0SWQAAAALTmdubkFzc2V0SWQAAAALRXVybkFzc2V0SWQAAAAScGVyY2VudGFnZVJhdGVTd2FwAAAAEWJsb2NrRGlzdHJpYnV0aW9uAAAAC2FjY2VwdFdhdmVzAwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAABFhZG1pblZlcmlmaWNhdGlvbgAAAAAEAAAAD2tleVBvb2xVc2RuVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkblVzZGMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtVc2RjQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5OZ25uCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2R0V2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZHRNYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHRFdXJuCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xOZ25uV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbE5nbm5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbE5nbm5FdXJuCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xNYWluV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC01haW5Bc3NldElkBQAAAAV3YXZlcwQAAAAPa2V5UG9vbE1haW5FdXJuCQEAAAACa3AAAAACBQAAAAtNYWluQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xFdXJuV2F2ZXMJ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AAAAAgUAAAANY3VycmVudEFtb3VudAUAAAAPYW1vdW50THBCbG9ja2VkBQAAAAZBbW91bnQEAAAABmNhbGNMUAkAAGkAAAACBQAAAAZBbW91bnQFAAAAB3RvdGFsTFAEAAAADXJlY2VpdmVBc3NldDEJAABoAAAAAgUAAAAGY2FsY0xQBQAAAA90b3RhbEFzc2V0MVBvb2wEAAAADXJlY2VpdmVBc3NldDIJAABoAAAAAgUAAAAGY2FsY0xQBQAAAA90b3RhbEFzc2V0MlBvb2wEAAAACmFzc2V0MXBvb2wJAQAAAAZhc3NldFAAAAACCQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQxBAAAAAphc3NldDJwb29sCQEAAAAGYXNzZXRQAAAAAgkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDIFAAAABkFzc2V0MgQAAAATY3VycmVudEFtb3VudEFzc2V0MQkBAAAABnBvb2xBQQAAAAMFAAAACmN1cnJlbnRLZXkJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyBQAAAAZBc3NldDEEAAAAE2N1cnJlbnRBbW91bnRBc3NldDIJAQAAAAZwb29sQUEAAAADBQAAAApjdXJyZW50S2V5CQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQyBAAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQxCQAAZQAAAAIFAAAAE2N1cnJlbnRBbW91bnRBc3NldDEFAAAADXJlY2VpdmVBc3NldDEEAAAAFm5ld2N1cnJlbnRBbW91bnRBc3NldDIJAABlAAAAAgUAAAATY3VycmVudEFtb3VudEFzc2V0MgUAAAANcmVjZWl2ZUFzc2V0MgQAAAAQbmV3Y3VycmVudEFtb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZBbW91bnQEAAAADW5ld2Fzc2V0MXBvb2wJAABlAAAAAgUAAAAKYXNzZXQxcG9vbAUAAAANcmVjZWl2ZUFzc2V0MQQAAAANbmV3YXNzZXQycG9vbAkAAGUAAAACBQAAAAphc3NldDJwb29sBQAAAA1yZWNlaXZlQXNzZXQyAwkAAAAAAAAC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", "height": 2132752, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HcLeBFnhKbpj6FiZ6q4TXz77XZukqvLc5cFBH2WiaLD3 Next: AD5pBQsLXGz79a8QACGBLP1mzsJEYPhKTttijrxopziW Diff:
OldNewDifferences
465465 then if (!((N == 0)))
466466 then {
467467 let aZ = toBase58String(s.caller.bytes)
468- let ba = O(aZ, J(U, V))
469- let bv = Q(aZ, J(U, V), U)
470- let bw = Q(aZ, J(U, V), V)
471- let bx = S(J(U, V), U)
472- let by = S(J(U, V), V)
473- let bz = (bx / by)
474- let bA = (bv + s.payments[0].amount)
475- let bB = (bw + s.payments[1].amount)
476- let bC = (ba + bz)
477- let bD = (bx + s.payments[0].amount)
478- let bE = (by + s.payments[1].amount)
479-[Reissue(fromBase58String(aY), bz, true), ScriptTransfer(Address(s.caller.bytes), bz, fromBase58String(aY)), IntegerEntry(T(U, V, aZ), height), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + U), bA), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + V), bB), IntegerEntry(((J(U, V) + "_") + aZ), bC), IntegerEntry(((J(U, V) + "_") + U), bD), IntegerEntry(((J(U, V) + "_") + V), bE), IntegerEntry(U, (q(U) + s.payments[0].amount)), IntegerEntry(V, (q(V) + s.payments[1].amount)), IntegerEntry(aY, (q(aY) + bz))]
468+[DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + U)), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + V)), DeleteEntry(((J(U, V) + "_") + aZ)), DeleteEntry(((J(U, V) + "_") + U)), DeleteEntry(((J(U, V) + "_") + V)), DeleteEntry(U), DeleteEntry(V), DeleteEntry(aY)]
480469 }
481470 else throw("Invalid Pool Key.")
482471 else throw("Invalid Asset1 or Asset2!")
488477
489478
490479 @Callable(s)
491-func removeLiquidity (U,V,bF) = {
480+func removeLiquidity (U,V,bv) = {
492481 let aZ = toBase58String(s.caller.bytes)
493482 let aV = getBooleanValue(this, v)
494483 let bp = getBooleanValue(this, w)
513502 let bu = fromBase58String(getStringValue(this, F))
514503 let aY = getStringValue(this, (b + J(U, V)))
515504 let ba = O(aZ, J(U, V))
516- let bG = W(aZ, bh)
517- let bH = getIntegerValue(this, aY)
518- let bI = getIntegerValue(this, ((J(U, V) + "_") + U))
519- let bJ = getIntegerValue(this, ((J(U, V) + "_") + V))
505+ let bw = W(aZ, bh)
506+ let bx = getIntegerValue(this, aY)
507+ let by = getIntegerValue(this, ((J(U, V) + "_") + U))
508+ let bz = getIntegerValue(this, ((J(U, V) + "_") + V))
520509 if (aV)
521510 then if (!(bp))
522511 then if (!((U == V)))
549538 else false)
550539 then if (!((N == 0)))
551540 then if (!((ba == 0)))
552- then if (((ba - bG) >= bF))
553- then if ((s.payments[0].assetId == fromBase58String(aY)))
554- then if ((bF == s.payments[0].amount))
555- then [IntegerEntry(T(U, V, aZ), height), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + U)), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + V)), DeleteEntry(((J(U, V) + "_") + aZ)), DeleteEntry(((J(U, V) + "_") + U)), DeleteEntry(((J(U, V) + "_") + V)), DeleteEntry(U), DeleteEntry(V), DeleteEntry(aY)]
556- else throw("Withdrawal amount lower than asset lp amount")
557- else throw("Requires an lp asset as payment to remove locked amounts.")
541+ then if (((ba - bw) >= bv))
542+ then {
543+ let bA = (bv / bx)
544+ let bB = (bA * by)
545+ let bC = (bA * bz)
546+ let bD = S(J(U, V), U)
547+ let bE = S(J(U, V), V)
548+ let bF = Q(aZ, J(U, V), U)
549+ let bG = Q(aZ, J(U, V), V)
550+ let bH = (bF - bB)
551+ let bI = (bG - bC)
552+ let bJ = (ba - bv)
553+ let bK = (bD - bB)
554+ let bL = (bE - bC)
555+ if ((s.payments[0].assetId == fromBase58String(aY)))
556+ then if ((bv == s.payments[0].amount))
557+ then [Burn(fromBase58String(aY), bv), ScriptTransfer(Address(s.caller.bytes), bB, K), ScriptTransfer(Address(s.caller.bytes), bC, L), IntegerEntry(T(U, V, aZ), height), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + U), bH), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + V), bI), IntegerEntry(((J(U, V) + "_") + aZ), bJ), IntegerEntry(((J(U, V) + "_") + U), bK), IntegerEntry(((J(U, V) + "_") + V), bL), IntegerEntry(U, (q(U) - bB)), IntegerEntry(V, (q(V) - bC)), IntegerEntry(aY, (q(aY) - bv))]
558+ else throw("Withdrawal amount lower than asset lp amount")
559+ else throw("Requires an lp asset as payment to remove locked amounts.")
560+ }
558561 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
559562 else throw("You have no locked values ​​in the pool")
560563 else throw("Invalid Pool Key.")
571574 let aZ = toBase58String(s.caller.bytes)
572575 let ab = getBooleanValue(this, H)
573576 let aV = getBooleanValue(this, v)
574- let bK = getBooleanValue(this, x)
577+ let bM = getBooleanValue(this, x)
575578 let bh = J(U, V)
576579 let N = M(bh)
577580 let K = s.payments[0].assetId
581584 let bt = fromBase58String(getStringValue(this, E))
582585 let aX = fromBase58String(getStringValue(this, a))
583586 let bu = fromBase58String(getStringValue(this, F))
584- let bL = getIntegerValue(this, ((J(U, V) + "_") + U))
585- let bM = getIntegerValue(this, ((J(U, V) + "_") + V))
586- let bN = getIntegerValue(this, g)
587+ let bN = getIntegerValue(this, ((J(U, V) + "_") + U))
588+ let bO = getIntegerValue(this, ((J(U, V) + "_") + V))
589+ let bP = getIntegerValue(this, g)
587590 if (aV)
588- then if (!(bK))
591+ then if (!(bM))
589592 then if (if (!((U == V)))
590593 then if (Y(K, U, ab))
591594 then true
608611 then if ((s.payments[1].assetId == aX))
609612 then if ((s.payments[1].amount == 300000))
610613 then {
611- let bO = if (!((K == fromBase58String(U))))
612- then (bL / bM)
613- else (bM / bL)
614- let aM = (s.payments[0].amount - ((s.payments[0].amount * bN) / (100 * i)))
615- let bP = (aM * bO)
616-[ScriptTransfer(Address(s.caller.bytes), bP, if ((V == G))
614+ let bQ = if (!((K == fromBase58String(U))))
615+ then (bN / bO)
616+ else (bO / bN)
617+ let aM = (s.payments[0].amount - ((s.payments[0].amount * bP) / (100 * i)))
618+ let bR = (aM * bQ)
619+[ScriptTransfer(Address(s.caller.bytes), bR, if ((V == G))
617620 then I
618- else fromBase58String(V)), IntegerEntry(V, (q(V) - bP)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bP))]
621+ else fromBase58String(V)), IntegerEntry(V, (q(V) - bR)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bR))]
619622 }
620623 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
621624 else throw("Invalid rate asset")
627630 }
628631
629632
630-@Verifier(bQ)
631-func bR () = {
632- let r = bQ
633+@Verifier(bS)
634+func bT () = {
635+ let r = bS
633636 if ($isInstanceOf(r, "Order"))
634637 then {
635- let bS = r
638+ let bU = r
636639 true
637640 }
638641 else if ($isInstanceOf(r, "ExchangeTransaction"))
639642 then {
640- let bT = r
643+ let bV = r
641644 true
642645 }
643- else sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey)
646+ else sigVerify(bS.bodyBytes, bS.proofs[0], bS.senderPublicKey)
644647 }
645648
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 = Address(this.bytes)
2525
2626 let l = 5
2727
2828 func m (n) = toString(valueOrErrorMessage(addressFromString(n), (("Can't parse " + n) + " as address")))
2929
3030
3131 func o (p) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(p))).id, (("Asset Id: " + p) + " is invalid.")))
3232
3333
3434 func q (p) = {
3535 let r = getInteger(this, p)
3636 if ($isInstanceOf(r, "Int"))
3737 then {
3838 let s = r
3939 s
4040 }
4141 else 0
4242 }
4343
4444
4545 func t (p) = {
4646 let r = assetInfo(p)
4747 if ($isInstanceOf(r, "Asset"))
4848 then {
4949 let u = r
5050 u.name
5151 }
5252 else throw("Can't find asset")
5353 }
5454
5555
5656 let v = "activate"
5757
5858 let w = "activate_pools"
5959
6060 let x = "activate_swap"
6161
6262 let y = "activate_liquidity"
6363
6464 let z = "block_distribuition"
6565
6666 let A = "Total_Tokens_Locked_"
6767
6868 let B = "usdn_asset"
6969
7070 let C = "usdt_asset"
7171
7272 let D = "usdc_asset"
7373
7474 let E = "ngnn_asset"
7575
7676 let F = "eurn_asset"
7777
7878 let G = "WAVES"
7979
8080 let H = "accept_waves"
8181
8282 let I = unit
8383
8484 func J (K,L) = (((c + K) + "_") + L)
8585
8686
8787 func M (N) = {
8888 let r = getInteger(this, N)
8989 if ($isInstanceOf(r, "Int"))
9090 then {
9191 let s = r
9292 s
9393 }
9494 else 0
9595 }
9696
9797
9898 func O (n,N) = {
9999 let r = getInteger(this, ((N + "_") + n))
100100 if ($isInstanceOf(r, "Int"))
101101 then {
102102 let P = r
103103 P
104104 }
105105 else 0
106106 }
107107
108108
109109 func Q (n,N,u) = {
110110 let r = getInteger(this, ((((N + "_") + n) + "_") + u))
111111 if ($isInstanceOf(r, "Int"))
112112 then {
113113 let R = r
114114 R
115115 }
116116 else 1
117117 }
118118
119119
120120 func S (N,u) = {
121121 let r = getInteger(this, ((N + "_") + u))
122122 if ($isInstanceOf(r, "Int"))
123123 then {
124124 let R = r
125125 R
126126 }
127127 else 1
128128 }
129129
130130
131131 func T (U,V,n) = (((h + J(U, V)) + "_") + n)
132132
133133
134134 func W (n,N) = {
135135 let r = getInteger(this, ((("STAKE_LP_" + n) + "_") + N))
136136 if ($isInstanceOf(r, "Int"))
137137 then {
138138 let R = r
139139 R
140140 }
141141 else 0
142142 }
143143
144144
145145 func X () = {
146146 let r = getString(this, "admin")
147147 if ($isInstanceOf(r, "String"))
148148 then {
149149 let P = r
150150 Address(fromBase58String(P))
151151 }
152152 else this
153153 }
154154
155155
156156 func Y (Z,aa,ab) = if (if ((Z == I))
157157 then (aa == "WAVES")
158158 else false)
159159 then if (ab)
160160 then true
161161 else throw("The smart contract does not currently support Waves.")
162162 else if ((Z == fromBase58String(aa)))
163163 then true
164164 else false
165165
166166
167167 @Callable(s)
168168 func constructor (ac,ad,ae,af,ag,ah,ai,aj,ak) = if (if ((s.caller == this))
169169 then true
170170 else (s.caller == X()))
171171 then {
172172 let al = J(ad, ae)
173173 let am = J(ad, af)
174174 let an = J(ad, ag)
175175 let ao = J(ad, G)
176176 let ap = J(ad, ac)
177177 let aq = J(ad, ah)
178178 let ar = J(af, ae)
179179 let as = J(af, ag)
180180 let at = J(af, G)
181181 let au = J(af, ac)
182182 let av = J(af, ah)
183183 let aw = J(ae, ag)
184184 let ax = J(ae, G)
185185 let ay = J(ae, ac)
186186 let az = J(ae, ah)
187187 let aA = J(ag, G)
188188 let aB = J(ag, ac)
189189 let aC = J(ag, ah)
190190 let aD = J(ac, G)
191191 let aE = J(ac, ah)
192192 let aF = J(ah, G)
193193 [StringEntry(a, ac), StringEntry(B, ad), StringEntry(D, af), StringEntry(C, ae), StringEntry(E, ag), BooleanEntry(H, ak), IntegerEntry(g, ai), BooleanEntry(v, true), BooleanEntry(x, false), BooleanEntry(w, false), BooleanEntry(y, false), IntegerEntry(z, aj), IntegerEntry(al, 1), IntegerEntry(ao, 1), IntegerEntry(am, 1), IntegerEntry(an, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(as, 1), IntegerEntry(at, 1), IntegerEntry(ay, 1), IntegerEntry(aw, 1), IntegerEntry(ax, 1), IntegerEntry(aA, 1), IntegerEntry(aB, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aE, 1), IntegerEntry(aC, 1), IntegerEntry(av, 1), IntegerEntry(aq, 1), IntegerEntry(az, 1), StringEntry(F, ah)]
194194 }
195195 else throw("Only the Admin itself can invoke this function")
196196
197197
198198
199199 @Callable(s)
200200 func activate (aG) = if (if ((s.caller == this))
201201 then true
202202 else (s.caller == X()))
203203 then [BooleanEntry(v, aG)]
204204 else throw("Only the Admin itself can invoke this function")
205205
206206
207207
208208 @Callable(s)
209209 func maintenance (aH,aI,aJ) = if (if ((s.caller == this))
210210 then true
211211 else (s.caller == X()))
212212 then [BooleanEntry(w, aH), BooleanEntry(x, aI), BooleanEntry(y, aJ)]
213213 else throw("Only the Admin itself can invoke this function")
214214
215215
216216
217217 @Callable(s)
218218 func percentualRateFeeSwapEdit (aK) = if (if ((s.caller == this))
219219 then true
220220 else (s.caller == X()))
221221 then [IntegerEntry(g, aK)]
222222 else throw("Only the Admin itself can invoke this function")
223223
224224
225225
226226 @Callable(s)
227227 func acceptWaves (aL) = if (if ((s.caller == this))
228228 then true
229229 else (s.caller == X()))
230230 then [BooleanEntry(H, aL)]
231231 else throw("Only the Admin itself can invoke this function")
232232
233233
234234
235235 @Callable(s)
236236 func blockDistribution (aM) = if (if ((s.caller == this))
237237 then true
238238 else (s.caller == X()))
239239 then [IntegerEntry(z, aM)]
240240 else throw("Only the Admin itself can invoke this function")
241241
242242
243243
244244 @Callable(s)
245245 func addAdmin (n) = if (if ((s.caller == this))
246246 then true
247247 else (s.caller == X()))
248248 then [StringEntry("admin", n)]
249249 else throw("Only the Admin itself can invoke this function")
250250
251251
252252
253253 @Callable(s)
254254 func lpAssetCreateForPairPool (K,L,aN,aO) = {
255255 let aP = if ((K == G))
256256 then G
257257 else t(fromBase58String(K))
258258 let aQ = if ((L == G))
259259 then G
260260 else t(fromBase58String(L))
261261 let aR = if (aO)
262262 then aN
263263 else ((aP + "_") + aQ)
264264 let N = M(J(K, L))
265265 if (if ((s.caller == this))
266266 then true
267267 else (s.caller == X()))
268268 then if (!((N == 0)))
269269 then {
270270 let aS = Issue(aR, ((("LP asset for pool liquidity in AxAi Swap pair " + K) + "_") + L), 1, 8, true)
271271 let aT = calculateAssetId(aS)
272272 [StringEntry((b + J(K, L)), toBase58String(aT)), aS]
273273 }
274274 else throw("Invalid Pool Key. Try inverting the assets")
275275 else throw("Only the Admin itself can invoke this function")
276276 }
277277
278278
279279
280280 @Callable(s)
281281 func deposit (aU,U,V) = {
282282 let aV = getBooleanValue(this, v)
283283 let aW = getBooleanValue(this, y)
284284 let aX = getStringValue(this, a)
285285 let aY = if (aU)
286286 then getStringValue(this, (b + J(U, V)))
287287 else aX
288288 if (aV)
289289 then if (!(aW))
290290 then if ((s.payments[0].assetId != fromBase58String(aY)))
291291 then throw((("Invalid asset! Kindly Deposit Only " + aX) + " or valid asset lp"))
292292 else if (!(aU))
293293 then {
294294 let aZ = toBase58String(s.caller.bytes)
295295 let ba = {
296296 let r = getInteger(this, aZ)
297297 if ($isInstanceOf(r, "Int"))
298298 then {
299299 let R = r
300300 R
301301 }
302302 else 0
303303 }
304304 let bb = (ba + s.payments[0].amount)
305305 let bc = IntegerEntry(aZ, bb)
306306 let bd = IntegerEntry((h + aZ), height)
307307 let be = {
308308 let r = getInteger(this, "Total_Tokens_Locked:")
309309 if ($isInstanceOf(r, "Int"))
310310 then {
311311 let R = r
312312 R
313313 }
314314 else 0
315315 }
316316 let bf = (be + s.payments[0].amount)
317317 let bg = IntegerEntry("Total_Tokens_Locked:", bf)
318318 [bc, bd, bg]
319319 }
320320 else {
321321 let bh = J(U, V)
322322 let N = M(bh)
323323 if (!((N == 0)))
324324 then {
325325 let aZ = toBase58String(s.caller.bytes)
326326 let ba = {
327327 let r = getInteger(this, ((("STAKE_LP_" + aZ) + "_") + bh))
328328 if ($isInstanceOf(r, "Int"))
329329 then {
330330 let R = r
331331 R
332332 }
333333 else 0
334334 }
335335 let bb = (ba + s.payments[0].amount)
336336 let bc = IntegerEntry(((("STAKE_LP_" + aZ) + "_") + bh), bb)
337337 let bd = IntegerEntry(((((h + "_") + aZ) + "_") + bh), height)
338338 let be = {
339339 let r = getInteger(this, ("Total_Tokens_LP_Locked_" + bh))
340340 if ($isInstanceOf(r, "Int"))
341341 then {
342342 let R = r
343343 R
344344 }
345345 else 0
346346 }
347347 let bf = (be + s.payments[0].amount)
348348 let bg = IntegerEntry(("Total_Tokens_LP_Locked_" + bh), bf)
349349 [bc, bd, bg]
350350 }
351351 else throw("Invalid Pool key.")
352352 }
353353 else throw("liquidity is currently under maintenance.")
354354 else throw("dApp is currently under maintenance.")
355355 }
356356
357357
358358
359359 @Callable(s)
360360 func remove (aU,U,V,bi) = {
361361 let aV = getBooleanValue(this, v)
362362 let aW = getBooleanValue(this, y)
363363 let bj = s.payments[0]
364364 let aX = fromBase58String(getStringValue(this, a))
365365 if (aV)
366366 then if (!(aW))
367367 then {
368368 let aZ = toBase58String(s.caller.bytes)
369369 let ba = {
370370 let r = if (aU)
371371 then getIntegerValue(this, ((("STAKE_LP_" + aZ) + "_") + J(U, V)))
372372 else getIntegerValue(this, aZ)
373373 if ($isInstanceOf(r, "Int"))
374374 then {
375375 let R = r
376376 R
377377 }
378378 else 0
379379 }
380380 let bk = if (aU)
381381 then ((((h + "_") + aZ) + "_") + J(U, V))
382382 else (h + aZ)
383383 let be = if (aU)
384384 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + J(U, V)))
385385 else getIntegerValue(this, "Total_Tokens_Locked:")
386386 let bf = (be - bi)
387387 let bl = (height - getIntegerValue(this, bk))
388388 let bm = getIntegerValue(this, z)
389389 let bn = ((bl * bm) * i)
390390 let bo = (bn / (be / bi))
391391 if ((0 > bi))
392392 then throw(if (aU)
393393 then (((("Can't withdraw negative " + U) + "/") + V) + " amount")
394394 else "Can't withdraw negative AxAi amount")
395395 else {
396396 let bb = (ba - bi)
397397 if ((0 > bb))
398398 then throw(if (aU)
399399 then (((("Not enough Asset Lp " + U) + "/") + V) + " balance")
400400 else "Not enough AxAi balance")
401401 else [IntegerEntry(if (aU)
402402 then ((("STAKE_LP_" + aZ) + "_") + J(U, V))
403403 else aZ, bb), IntegerEntry(if (aU)
404404 then ("Total_Tokens_LP_Locked_" + J(U, V))
405405 else "Total_Tokens_Locked:", bf), ScriptTransfer(s.caller, bi, if (aU)
406406 then fromBase58String(getStringValue(this, (b + J(U, V))))
407407 else aX), ScriptTransfer(s.caller, bo, aX)]
408408 }
409409 }
410410 else throw("liquidity is currently under maintenance.")
411411 else throw("dApp is currently under maintenance.")
412412 }
413413
414414
415415
416416 @Callable(s)
417417 func addLiquidity (U,V) = {
418418 let aV = getBooleanValue(this, v)
419419 let bp = getBooleanValue(this, w)
420420 let ab = getBooleanValue(this, H)
421421 let N = M(J(U, V))
422422 let K = s.payments[0].assetId
423423 let L = s.payments[1].assetId
424424 let bq = fromBase58String(getStringValue(this, B))
425425 let br = fromBase58String(getStringValue(this, D))
426426 let bs = fromBase58String(getStringValue(this, C))
427427 let bt = fromBase58String(getStringValue(this, E))
428428 let bu = fromBase58String(getStringValue(this, F))
429429 let aX = fromBase58String(getStringValue(this, a))
430430 let aY = getStringValue(this, (b + J(U, V)))
431431 if (aV)
432432 then if (!(bp))
433433 then if (if (if (!((K == L)))
434434 then Y(K, U, ab)
435435 else false)
436436 then Y(L, V, ab)
437437 else false)
438438 then if (if (if (if (if (if (if (if ((K == bq))
439439 then true
440440 else (K == br))
441441 then true
442442 else (K == bs))
443443 then true
444444 else (K == bt))
445445 then true
446446 else (K == aX))
447447 then true
448448 else (K == I))
449449 then true
450450 else (K == bu))
451451 then if (if (if (if (if (if ((L == bq))
452452 then true
453453 else (L == br))
454454 then true
455455 else (L == bs))
456456 then true
457457 else (L == bt))
458458 then true
459459 else (L == aX))
460460 then true
461461 else (L == I))
462462 then true
463463 else (L == bu)
464464 else false)
465465 then if (!((N == 0)))
466466 then {
467467 let aZ = toBase58String(s.caller.bytes)
468- let ba = O(aZ, J(U, V))
469- let bv = Q(aZ, J(U, V), U)
470- let bw = Q(aZ, J(U, V), V)
471- let bx = S(J(U, V), U)
472- let by = S(J(U, V), V)
473- let bz = (bx / by)
474- let bA = (bv + s.payments[0].amount)
475- let bB = (bw + s.payments[1].amount)
476- let bC = (ba + bz)
477- let bD = (bx + s.payments[0].amount)
478- let bE = (by + s.payments[1].amount)
479-[Reissue(fromBase58String(aY), bz, true), ScriptTransfer(Address(s.caller.bytes), bz, fromBase58String(aY)), IntegerEntry(T(U, V, aZ), height), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + U), bA), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + V), bB), IntegerEntry(((J(U, V) + "_") + aZ), bC), IntegerEntry(((J(U, V) + "_") + U), bD), IntegerEntry(((J(U, V) + "_") + V), bE), IntegerEntry(U, (q(U) + s.payments[0].amount)), IntegerEntry(V, (q(V) + s.payments[1].amount)), IntegerEntry(aY, (q(aY) + bz))]
468+[DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + U)), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + V)), DeleteEntry(((J(U, V) + "_") + aZ)), DeleteEntry(((J(U, V) + "_") + U)), DeleteEntry(((J(U, V) + "_") + V)), DeleteEntry(U), DeleteEntry(V), DeleteEntry(aY)]
480469 }
481470 else throw("Invalid Pool Key.")
482471 else throw("Invalid Asset1 or Asset2!")
483472 else throw("Asset1 cannot be equal to Asset2")
484473 else throw("liquidity is currently under maintenance.")
485474 else throw("dApp is currently under maintenance.")
486475 }
487476
488477
489478
490479 @Callable(s)
491-func removeLiquidity (U,V,bF) = {
480+func removeLiquidity (U,V,bv) = {
492481 let aZ = toBase58String(s.caller.bytes)
493482 let aV = getBooleanValue(this, v)
494483 let bp = getBooleanValue(this, w)
495484 let ab = getBooleanValue(this, H)
496485 let bh = J(U, V)
497486 let N = M(bh)
498487 let K = if ((U == G))
499488 then if (ab)
500489 then I
501490 else throw("The smart contract does not currently support Waves.")
502491 else fromBase58String(U)
503492 let L = if ((V == G))
504493 then if (ab)
505494 then I
506495 else throw("The smart contract does not currently support Waves.")
507496 else fromBase58String(V)
508497 let bq = fromBase58String(getStringValue(this, B))
509498 let br = fromBase58String(getStringValue(this, D))
510499 let bs = fromBase58String(getStringValue(this, C))
511500 let bt = fromBase58String(getStringValue(this, E))
512501 let aX = fromBase58String(getStringValue(this, a))
513502 let bu = fromBase58String(getStringValue(this, F))
514503 let aY = getStringValue(this, (b + J(U, V)))
515504 let ba = O(aZ, J(U, V))
516- let bG = W(aZ, bh)
517- let bH = getIntegerValue(this, aY)
518- let bI = getIntegerValue(this, ((J(U, V) + "_") + U))
519- let bJ = getIntegerValue(this, ((J(U, V) + "_") + V))
505+ let bw = W(aZ, bh)
506+ let bx = getIntegerValue(this, aY)
507+ let by = getIntegerValue(this, ((J(U, V) + "_") + U))
508+ let bz = getIntegerValue(this, ((J(U, V) + "_") + V))
520509 if (aV)
521510 then if (!(bp))
522511 then if (!((U == V)))
523512 then if (if (if (if (if (if (if (if ((K == bq))
524513 then true
525514 else (K == br))
526515 then true
527516 else (K == bs))
528517 then true
529518 else (K == bt))
530519 then true
531520 else (K == aX))
532521 then true
533522 else (K == I))
534523 then true
535524 else (K == bu))
536525 then if (if (if (if (if (if ((L == bq))
537526 then true
538527 else (L == br))
539528 then true
540529 else (L == bs))
541530 then true
542531 else (L == bt))
543532 then true
544533 else (L == aX))
545534 then true
546535 else (L == I))
547536 then true
548537 else (L == bu)
549538 else false)
550539 then if (!((N == 0)))
551540 then if (!((ba == 0)))
552- then if (((ba - bG) >= bF))
553- then if ((s.payments[0].assetId == fromBase58String(aY)))
554- then if ((bF == s.payments[0].amount))
555- then [IntegerEntry(T(U, V, aZ), height), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + U)), DeleteEntry(((((aZ + "_") + J(U, V)) + "_") + V)), DeleteEntry(((J(U, V) + "_") + aZ)), DeleteEntry(((J(U, V) + "_") + U)), DeleteEntry(((J(U, V) + "_") + V)), DeleteEntry(U), DeleteEntry(V), DeleteEntry(aY)]
556- else throw("Withdrawal amount lower than asset lp amount")
557- else throw("Requires an lp asset as payment to remove locked amounts.")
541+ then if (((ba - bw) >= bv))
542+ then {
543+ let bA = (bv / bx)
544+ let bB = (bA * by)
545+ let bC = (bA * bz)
546+ let bD = S(J(U, V), U)
547+ let bE = S(J(U, V), V)
548+ let bF = Q(aZ, J(U, V), U)
549+ let bG = Q(aZ, J(U, V), V)
550+ let bH = (bF - bB)
551+ let bI = (bG - bC)
552+ let bJ = (ba - bv)
553+ let bK = (bD - bB)
554+ let bL = (bE - bC)
555+ if ((s.payments[0].assetId == fromBase58String(aY)))
556+ then if ((bv == s.payments[0].amount))
557+ then [Burn(fromBase58String(aY), bv), ScriptTransfer(Address(s.caller.bytes), bB, K), ScriptTransfer(Address(s.caller.bytes), bC, L), IntegerEntry(T(U, V, aZ), height), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + U), bH), IntegerEntry(((((aZ + "_") + J(U, V)) + "_") + V), bI), IntegerEntry(((J(U, V) + "_") + aZ), bJ), IntegerEntry(((J(U, V) + "_") + U), bK), IntegerEntry(((J(U, V) + "_") + V), bL), IntegerEntry(U, (q(U) - bB)), IntegerEntry(V, (q(V) - bC)), IntegerEntry(aY, (q(aY) - bv))]
558+ else throw("Withdrawal amount lower than asset lp amount")
559+ else throw("Requires an lp asset as payment to remove locked amounts.")
560+ }
558561 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
559562 else throw("You have no locked values ​​in the pool")
560563 else throw("Invalid Pool Key.")
561564 else throw("Invalid Asset1 or Asset2!")
562565 else throw("Asset1 cannot be equal to Asset2")
563566 else throw("liquidity is currently under maintenance.")
564567 else throw("dApp is currently under maintenance.")
565568 }
566569
567570
568571
569572 @Callable(s)
570573 func swap (U,V) = {
571574 let aZ = toBase58String(s.caller.bytes)
572575 let ab = getBooleanValue(this, H)
573576 let aV = getBooleanValue(this, v)
574- let bK = getBooleanValue(this, x)
577+ let bM = getBooleanValue(this, x)
575578 let bh = J(U, V)
576579 let N = M(bh)
577580 let K = s.payments[0].assetId
578581 let bq = fromBase58String(getStringValue(this, B))
579582 let br = fromBase58String(getStringValue(this, D))
580583 let bs = fromBase58String(getStringValue(this, C))
581584 let bt = fromBase58String(getStringValue(this, E))
582585 let aX = fromBase58String(getStringValue(this, a))
583586 let bu = fromBase58String(getStringValue(this, F))
584- let bL = getIntegerValue(this, ((J(U, V) + "_") + U))
585- let bM = getIntegerValue(this, ((J(U, V) + "_") + V))
586- let bN = getIntegerValue(this, g)
587+ let bN = getIntegerValue(this, ((J(U, V) + "_") + U))
588+ let bO = getIntegerValue(this, ((J(U, V) + "_") + V))
589+ let bP = getIntegerValue(this, g)
587590 if (aV)
588- then if (!(bK))
591+ then if (!(bM))
589592 then if (if (!((U == V)))
590593 then if (Y(K, U, ab))
591594 then true
592595 else Y(K, V, ab)
593596 else false)
594597 then if (if (if (if (if (if (if ((K == bq))
595598 then true
596599 else (K == br))
597600 then true
598601 else (K == bs))
599602 then true
600603 else (K == bt))
601604 then true
602605 else (K == aX))
603606 then true
604607 else (K == bu))
605608 then true
606609 else (K == I))
607610 then if (!((N == 0)))
608611 then if ((s.payments[1].assetId == aX))
609612 then if ((s.payments[1].amount == 300000))
610613 then {
611- let bO = if (!((K == fromBase58String(U))))
612- then (bL / bM)
613- else (bM / bL)
614- let aM = (s.payments[0].amount - ((s.payments[0].amount * bN) / (100 * i)))
615- let bP = (aM * bO)
616-[ScriptTransfer(Address(s.caller.bytes), bP, if ((V == G))
614+ let bQ = if (!((K == fromBase58String(U))))
615+ then (bN / bO)
616+ else (bO / bN)
617+ let aM = (s.payments[0].amount - ((s.payments[0].amount * bP) / (100 * i)))
618+ let bR = (aM * bQ)
619+[ScriptTransfer(Address(s.caller.bytes), bR, if ((V == G))
617620 then I
618- else fromBase58String(V)), IntegerEntry(V, (q(V) - bP)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bP))]
621+ else fromBase58String(V)), IntegerEntry(V, (q(V) - bR)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bR))]
619622 }
620623 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
621624 else throw("Invalid rate asset")
622625 else throw("Invalid Swap Key.")
623626 else throw("Invalid Asset1 or Asset2!")
624627 else throw("Asset1 cannot be equal to Asset2")
625628 else throw("Swap is currently under maintenance.")
626629 else throw("dApp is currently under maintenance.")
627630 }
628631
629632
630-@Verifier(bQ)
631-func bR () = {
632- let r = bQ
633+@Verifier(bS)
634+func bT () = {
635+ let r = bS
633636 if ($isInstanceOf(r, "Order"))
634637 then {
635- let bS = r
638+ let bU = r
636639 true
637640 }
638641 else if ($isInstanceOf(r, "ExchangeTransaction"))
639642 then {
640- let bT = r
643+ let bV = r
641644 true
642645 }
643- else sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey)
646+ else sigVerify(bS.bodyBytes, bS.proofs[0], bS.senderPublicKey)
644647 }
645648

github/deemru/w8io/169f3d6 
93.45 ms