tx · 8wrf2BbavtGGVQbwCFn61pytKxkHuiuEsnsCDjPMW9b9

3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA:  -0.02800000 Waves

2022.07.09 00:30 [2131267] smart account 3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA > SELF 0.00000000 Waves

{ "type": 13, "id": "8wrf2BbavtGGVQbwCFn61pytKxkHuiuEsnsCDjPMW9b9", "fee": 2800000, "feeAssetId": null, "timestamp": 1657315812607, "version": 2, "chainId": 84, "sender": "3N8b7mamWRbw6YjYJgsNGzTsKAbsbf4zVSA", "senderPublicKey": "FA2TFZp55AkfpLAK7toKNNdufbHH3cY6aCSSMFcFPafT", "proofs": [ "3mfwYGNbrtqN7rJiATSk1x4MyeyjM7kuTdzcATVQPoCWETSb7CsS9N2zPuk5VwZ74p8qegUe7duvytH789yGqf4E" ], "script": "base64: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AAALVXNkbkFzc2V0SWQFAAAAC05nbm5Bc3NldElkBAAAABBrZXlQb29sVXNkbldhdmVzCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAIAAAAFV0FWRVMEAAAAFGtleVBvb2xVc2RuTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQCAAAABVdBVkVTBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkdE5nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZHRXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQCAAAABVdBVkVTBAAAABRrZXlQb29sVXNkdE1haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkdEFzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAABBrZXlQb29sTmdubldhdmVzCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAIAAAAFV0FWRVMEAAAAFGtleVBvb2xOZ25uTWFpbkFzc2V0CQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALTWFpbkFzc2V0SWQEAAAAEGtleVBvb2xNYWluV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC01haW5Bc3NldElkAgAAAAVXQVZFUwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAARtYWluBQAAAAtNYWluQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAR1c2RuBQAAAAtVc2RuQXNzZXRJ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bnRBc3NldDEJAQAAAAZwb29sQUEAAAADBQAAAApjdXJyZW50S2V5CQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQxBAAAABNjdXJyZW50QW1vdW50QXNzZXQyCQEAAAAGcG9vbEFBAAAAAwUAAAAKY3VycmVudEtleQkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDIFAAAABkFzc2V0MgQAAAAWbmV3Y3VycmVudEFtb3VudEFzc2V0MQkAAGUAAAACBQAAABNjdXJyZW50QW1vdW50QXNzZXQxBQAAAA1yZWNlaXZlQXNzZXQxBAAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQyCQAAZQAAAAIFAAAAE2N1cnJlbnRBbW91bnRBc3NldDIFAAAADXJlY2VpdmVBc3NldDIEAAAAEG5ld2N1cnJlbnRBbW91bnQJAABlAAAAAgUAAAANY3VycmVudEFtb3VudAUAAAAGQW1vdW50BAAAAA1uZXdhc3NldDFwb29sCQAAZQAAAAIFAAAACmFzc2V0MXBvb2wFAAAADXJlY2VpdmVBc3NldDEEAAAADW5ld2Fzc2V0MnBvb2wJAABlAAAAAgUAAAAKYXNzZXQycG9vbAUAAAANcmVjZWl2ZUFzc2V0MgkABEwAAAACCQEAAAAEQnVybgAAAAIJAAJZAAAAAQUAAAAJbHBBc3NldElkBQAAAAZBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAA1yZWNlaXZlQXNzZXQxBQAAAAZhc3NldDEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAA1yZWNlaXZlQXNzZXQyBQAAAAZhc3NldDIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAARwa2V5AAAAAwUAAAAGQXNzZXQxBQAAAAZBc3NldDIFAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAA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", "height": 2131267, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HWaaUzotisY9ku1UmjebBeDbKPgqUnqfV1ipwJaBAoU7 Next: 2mgr5EKTXBYMaufxdeq1D2QgcyqsTtYAp4R3ah2DkkKT Diff:
OldNewDifferences
4545 let bcD = "block_distribuition"
4646
4747 let total_locked = "Total_Tokens_Locked_"
48-
49-let axai1 = base58'AtR3c6X6q21VGFdtu73PspcCw1pERV4csVS97LHZBbSF'
50-
51-let usdn1 = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
5248
5349 let usdn = "usdn_asset"
5450
485481 @Verifier(tx)
486482 func verify () = match tx {
487483 case order: Order =>
488- if ((order.orderType == Buy))
489- then if (if ((order.assetPair.amountAsset == axai1))
490- then (order.assetPair.priceAsset == usdn1)
491- else false)
492- then sigVerify(order.bodyBytes, order.proofs[0], order.senderPublicKey)
493- else false
494- else if (if ((order.assetPair.amountAsset == axai1))
495- then (order.assetPair.priceAsset == usdn1)
496- else false)
497- then sigVerify(order.bodyBytes, order.proofs[0], order.senderPublicKey)
498- else false
484+ true
499485 case e: ExchangeTransaction =>
500- if ((e.buyOrder.orderType == Buy))
501- then if (if ((e.buyOrder.assetPair.amountAsset == axai1))
502- then (e.buyOrder.assetPair.priceAsset == usdn1)
503- else false)
504- then sigVerify(e.bodyBytes, e.proofs[0], e.senderPublicKey)
505- else false
506- else if (if ((e.sellOrder.assetPair.amountAsset == axai1))
507- then (e.sellOrder.assetPair.priceAsset == usdn1)
508- else false)
509- then sigVerify(e.bodyBytes, e.proofs[0], e.senderPublicKey)
510- else false
486+ true
511487 case _ =>
512488 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
513489 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let main = "main_asset"
55
66 let l = "lp_asset_"
77
88 let aa1 = "pool__"
99
1010 let sa = "STAKING_AMOUNT_"
1111
1212 let la = "LEASE_AMOUNT_"
1313
1414 let ix = "ID_"
1515
1616 let rateFee = "percentage_rate_fee"
1717
1818 let deposit_height = "Deposit_Height_Of_"
1919
2020 let D8 = 100000000
2121
2222 let D6 = 1000000
2323
2424 let contractAddress = Address(this.bytes)
2525
2626 let exchangeRate = 5
2727
2828 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse " + address) + " as address")))
2929
3030
3131 func getAssetIfValid (assetId) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(assetId))).id, (("Asset Id: " + assetId) + " is invalid.")))
3232
3333
3434 func getAmountBlockAsset (assetId) = valueOrElse(getIntegerValue(this, assetId), 0)
3535
3636
3737 let ac = "activate"
3838
3939 let poolAc = "activate_pools"
4040
4141 let swapAc = "activate_swap"
4242
4343 let liquidityAc = "activate_liquidity"
4444
4545 let bcD = "block_distribuition"
4646
4747 let total_locked = "Total_Tokens_Locked_"
48-
49-let axai1 = base58'AtR3c6X6q21VGFdtu73PspcCw1pERV4csVS97LHZBbSF'
50-
51-let usdn1 = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
5248
5349 let usdn = "usdn_asset"
5450
5551 let usdt = "usdt_asset"
5652
5753 let usdc = "usdc_asset"
5854
5955 let ngnn = "ngnn_asset"
6056
6157 let aWaves = "accept_waves"
6258
6359 func kp (asset1,asset2) = (((aa1 + asset1) + "_") + asset2)
6460
6561
6662 func validPoolK (key) = valueOrElse(getInteger(this, key), 0)
6763
6864
6965 func kpAddress (address,key) = valueOrElse(getIntegerValue(this, ((key + "_") + address)), 0)
7066
7167
7268 func poolAA (address,key,asset) = valueOrElse(getIntegerValue(this, ((((key + "_") + address) + "_") + asset)), 1)
7369
7470
7571 func assetP (key,asset) = valueOrElse(getIntegerValue(this, ((key + "_") + asset)), 1)
7672
7773
7874 func pkey (Asset1,Asset2,address) = (((deposit_height + kp(Asset1, Asset2)) + "_") + address)
7975
8076
8177 func lpBlocked (address,key) = valueOrElse(getIntegerValue(this, ((("STAKE_LP_" + address) + "_") + key)), 0)
8278
8379
8480 func adminVerification () = match getStringValue(this, "admin") {
8581 case t: String =>
8682 Address(fromBase58String(t))
8783 case _ =>
8884 this
8985 }
9086
9187
9288 @Callable(i)
9389 func constructor (MainAssetId,UsdnAssetId,UsdtAssetId,UsdcAssetId,NgnnAssetId,percentageRateSwap,blockDistribution) = if (if ((i.caller == this))
9490 then true
9591 else (i.caller == adminVerification()))
9692 then {
9793 let keyPoolUsdnUsdt = kp(UsdnAssetId, UsdtAssetId)
9894 let keyPoolUsdnUsdc = kp(UsdnAssetId, UsdcAssetId)
9995 let keyPoolUsdnNgnn = kp(UsdnAssetId, NgnnAssetId)
10096 let keyPoolUsdnWaves = kp(UsdnAssetId, "WAVES")
10197 let keyPoolUsdnMainAsset = kp(UsdnAssetId, MainAssetId)
10298 let keyPoolUsdcUsdt = kp(UsdcAssetId, UsdtAssetId)
10399 let keyPoolUsdcNgnn = kp(UsdcAssetId, NgnnAssetId)
104100 let keyPoolUsdcWaves = kp(UsdcAssetId, "WAVES")
105101 let keyPoolUsdcMainAsset = kp(UsdcAssetId, MainAssetId)
106102 let keyPoolUsdtNgnn = kp(UsdtAssetId, NgnnAssetId)
107103 let keyPoolUsdtWaves = kp(UsdtAssetId, "WAVES")
108104 let keyPoolUsdtMainAsset = kp(UsdtAssetId, MainAssetId)
109105 let keyPoolNgnnWaves = kp(NgnnAssetId, "WAVES")
110106 let keyPoolNgnnMainAsset = kp(NgnnAssetId, MainAssetId)
111107 let keyPoolMainWaves = kp(MainAssetId, "WAVES")
112108 [StringEntry(main, MainAssetId), StringEntry(usdn, UsdnAssetId), StringEntry(usdc, UsdcAssetId), StringEntry(usdt, UsdtAssetId), StringEntry(ngnn, NgnnAssetId), IntegerEntry(rateFee, percentageRateSwap), BooleanEntry(ac, true), BooleanEntry(swapAc, false), BooleanEntry(poolAc, false), BooleanEntry(liquidityAc, false), IntegerEntry(bcD, blockDistribution), IntegerEntry(keyPoolUsdnUsdt, 1), IntegerEntry(keyPoolUsdnWaves, 1), IntegerEntry(keyPoolUsdnUsdc, 1), IntegerEntry(keyPoolUsdnNgnn, 1), IntegerEntry(keyPoolUsdnMainAsset, 1), IntegerEntry(keyPoolUsdcUsdt, 1), IntegerEntry(keyPoolUsdcNgnn, 1), IntegerEntry(keyPoolUsdcWaves, 1), IntegerEntry(keyPoolUsdtMainAsset, 1), IntegerEntry(keyPoolUsdtNgnn, 1), IntegerEntry(keyPoolUsdtWaves, 1), IntegerEntry(keyPoolNgnnWaves, 1), IntegerEntry(keyPoolNgnnMainAsset, 1), IntegerEntry(keyPoolMainWaves, 1)]
113109 }
114110 else throw("Only the Admin itself can invoke this function")
115111
116112
117113
118114 @Callable(i)
119115 func activate (v) = if (if ((i.caller == this))
120116 then true
121117 else (i.caller == adminVerification()))
122118 then [BooleanEntry(ac, v)]
123119 else throw("Only the Admin itself can invoke this function")
124120
125121
126122
127123 @Callable(i)
128124 func maintenance (pools,swap,stake) = if (if ((i.caller == this))
129125 then true
130126 else (i.caller == adminVerification()))
131127 then [BooleanEntry(poolAc, pools), BooleanEntry(swapAc, swap), BooleanEntry(liquidityAc, stake)]
132128 else throw("Only the Admin itself can invoke this function")
133129
134130
135131
136132 @Callable(i)
137133 func percentualRateFeeSwapEdit (rate) = if (if ((i.caller == this))
138134 then true
139135 else (i.caller == adminVerification()))
140136 then [IntegerEntry(rateFee, rate)]
141137 else throw("Only the Admin itself can invoke this function")
142138
143139
144140
145141 @Callable(i)
146142 func blockDistribution (newValue) = if (if ((i.caller == this))
147143 then true
148144 else (i.caller == adminVerification()))
149145 then [IntegerEntry(bcD, newValue)]
150146 else throw("Only the Admin itself can invoke this function")
151147
152148
153149
154150 @Callable(i)
155151 func addAdmin (address) = if (if ((i.caller == this))
156152 then true
157153 else (i.caller == adminVerification()))
158154 then [StringEntry("admin", address)]
159155 else throw("Only the Admin itself can invoke this function")
160156
161157
162158
163159 @Callable(i)
164160 func lpAssetCreateForPairPool (asset1,asset2,name) = {
165161 let key = validPoolK(kp(asset1, asset2))
166162 if (if ((i.caller == this))
167163 then true
168164 else (i.caller == adminVerification()))
169165 then if (!((key == 0)))
170166 then {
171167 let assetLpCreate = Issue(("LP_" + name), ((("LP asset for pool liquidity in AxAi Swap pair " + asset1) + "_") + asset2), 1, 8, true)
172168 let idAssetLp = calculateAssetId(assetLpCreate)
173169 [StringEntry((l + kp(asset1, asset2)), toBase58String(idAssetLp)), assetLpCreate]
174170 }
175171 else throw("Invalid Pool Key. Try inverting the assets")
176172 else throw("Only the Admin itself can invoke this function")
177173 }
178174
179175
180176
181177 @Callable(i)
182178 func deposit (pool,Asset1,Asset2) = {
183179 let power = getBooleanValue(this, ac)
184180 let liquidityPower = getBooleanValue(this, liquidityAc)
185181 let MainAsset = getStringValue(this, main)
186182 let lpAssetId = if (pool)
187183 then getStringValue(this, (l + kp(Asset1, Asset2)))
188184 else MainAsset
189185 if (power)
190186 then if (!(liquidityPower))
191187 then if ((i.payments[0].assetId != fromBase58String(lpAssetId)))
192188 then throw((("Invalid asset! Kindly Deposit Only " + MainAsset) + " or valid asset lp"))
193189 else if (!(pool))
194190 then {
195191 let currentKey = toBase58String(i.caller.bytes)
196192 let currentAmount = match getInteger(this, currentKey) {
197193 case a: Int =>
198194 a
199195 case _ =>
200196 0
201197 }
202198 let newAmount = (currentAmount + i.payments[0].amount)
203199 let useramount = IntegerEntry(currentKey, newAmount)
204200 let userdepositheight = IntegerEntry((deposit_height + currentKey), height)
205201 let previouslockbalance = match getInteger(this, "Total_Tokens_Locked:") {
206202 case a: Int =>
207203 a
208204 case _ =>
209205 0
210206 }
211207 let totaltoken = (previouslockbalance + i.payments[0].amount)
212208 let TLV = IntegerEntry("Total_Tokens_Locked:", totaltoken)
213209 [useramount, userdepositheight, TLV]
214210 }
215211 else {
216212 let poolKey = kp(Asset1, Asset2)
217213 let key = validPoolK(poolKey)
218214 if (!((key == 0)))
219215 then {
220216 let currentKey = toBase58String(i.caller.bytes)
221217 let currentAmount = match getInteger(this, ((("STAKE_LP_" + currentKey) + "_") + poolKey)) {
222218 case a: Int =>
223219 a
224220 case _ =>
225221 0
226222 }
227223 let newAmount = (currentAmount + i.payments[0].amount)
228224 let useramount = IntegerEntry(((("STAKE_LP_" + currentKey) + "_") + poolKey), newAmount)
229225 let userdepositheight = IntegerEntry(((((deposit_height + "_") + currentKey) + "_") + poolKey), height)
230226 let previouslockbalance = match getInteger(this, ("Total_Tokens_LP_Locked_" + poolKey)) {
231227 case a: Int =>
232228 a
233229 case _ =>
234230 0
235231 }
236232 let totaltoken = (previouslockbalance + i.payments[0].amount)
237233 let TLV = IntegerEntry(("Total_Tokens_LP_Locked_" + poolKey), totaltoken)
238234 [useramount, userdepositheight, TLV]
239235 }
240236 else throw("Invalid Pool key.")
241237 }
242238 else throw("liquidity is currently under maintenance.")
243239 else throw("dApp is currently under maintenance.")
244240 }
245241
246242
247243
248244 @Callable(i)
249245 func remove (pool,Asset1,Asset2,amount) = {
250246 let power = getBooleanValue(this, ac)
251247 let liquidityPower = getBooleanValue(this, liquidityAc)
252248 let pmt = i.payments[0]
253249 let MainAsset = fromBase58String(getStringValue(this, main))
254250 if (power)
255251 then if (!(liquidityPower))
256252 then {
257253 let currentKey = toBase58String(i.caller.bytes)
258254 let currentAmount = valueOrElse(if (pool)
259255 then getIntegerValue(this, ((("STAKE_LP_" + currentKey) + "_") + kp(Asset1, Asset2)))
260256 else getInteger(this, currentKey), 0)
261257 let swapheightkeyname = if (pool)
262258 then ((((deposit_height + "_") + currentKey) + "_") + kp(Asset1, Asset2))
263259 else (deposit_height + currentKey)
264260 let previouslockbalance = if (pool)
265261 then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + kp(Asset1, Asset2)))
266262 else getIntegerValue(this, "Total_Tokens_Locked:")
267263 let totaltoken = (previouslockbalance - amount)
268264 let diff = (height - getIntegerValue(this, swapheightkeyname))
269265 let bcd = getIntegerValue(this, bcD)
270266 let reward = ((diff * bcd) * D8)
271267 let feeCalc = (reward / (previouslockbalance / amount))
272268 if ((0 > amount))
273269 then throw(if (pool)
274270 then (((("Can't withdraw negative " + Asset1) + "/") + Asset2) + " amount")
275271 else "Can't withdraw negative AxAi amount")
276272 else {
277273 let newAmount = (currentAmount - amount)
278274 if ((0 > newAmount))
279275 then throw(if (pool)
280276 then (((("Not enough Asset Lp " + Asset1) + "/") + Asset2) + " balance")
281277 else "Not enough AxAi balance")
282278 else [IntegerEntry(if (pool)
283279 then ((("STAKE_LP_" + currentKey) + "_") + kp(Asset1, Asset2))
284280 else currentKey, newAmount), IntegerEntry(if (pool)
285281 then ("Total_Tokens_LP_Locked_" + kp(Asset1, Asset2))
286282 else "Total_Tokens_Locked:", totaltoken), ScriptTransfer(i.caller, amount, if (pool)
287283 then fromBase58String(getStringValue(this, (l + kp(Asset1, Asset2))))
288284 else MainAsset), ScriptTransfer(i.caller, feeCalc, MainAsset)]
289285 }
290286 }
291287 else throw("liquidity is currently under maintenance.")
292288 else throw("dApp is currently under maintenance.")
293289 }
294290
295291
296292
297293 @Callable(i)
298294 func addLiquidity (Asset1,Asset2) = {
299295 let power = getBooleanValue(this, ac)
300296 let poolActivate = getBooleanValue(this, poolAc)
301297 let key = validPoolK(kp(Asset1, Asset2))
302298 let asset1 = i.payments[0].assetId
303299 let asset2 = i.payments[1].assetId
304300 let USDN = toBytes(getStringValue(this, usdn))
305301 let USDC = toBytes(getStringValue(this, usdc))
306302 let USDT = toBytes(getStringValue(this, usdt))
307303 let NGNN = toBytes(getStringValue(this, ngnn))
308304 let MainAsset = fromBase58String(getStringValue(this, main))
309305 let lpAssetId = getStringValue(this, (l + kp(Asset1, Asset2)))
310306 if (power)
311307 then if (!(poolActivate))
312308 then if (if (if (!((asset1 == asset2)))
313309 then (asset1 == fromBase58String(Asset1))
314310 else false)
315311 then (asset2 == fromBase58String(Asset2))
316312 else false)
317313 then if (if (if (if (if (if ((asset1 == USDN))
318314 then true
319315 else (asset1 == USDC))
320316 then true
321317 else (asset1 == USDT))
322318 then true
323319 else (asset1 == NGNN))
324320 then true
325321 else (asset1 == MainAsset))
326322 then if (if (if (if ((asset2 == USDN))
327323 then true
328324 else (asset2 == USDC))
329325 then true
330326 else (asset2 == USDT))
331327 then true
332328 else (asset2 == NGNN))
333329 then true
334330 else (asset2 == MainAsset)
335331 else false)
336332 then if (!((key == 0)))
337333 then {
338334 let currentKey = toBase58String(i.caller.bytes)
339335 let currentAmount = kpAddress(currentKey, kp(Asset1, Asset2))
340336 let currentAmountAsset1 = poolAA(currentKey, kp(Asset1, Asset2), Asset1)
341337 let currentAmountAsset2 = poolAA(currentKey, kp(Asset1, Asset2), Asset2)
342338 let asset1pool = assetP(kp(Asset1, Asset2), Asset1)
343339 let asset2pool = assetP(kp(Asset1, Asset2), Asset2)
344340 let receiveLp = (asset1pool / asset2pool)
345341 let newcurrentAmountAsset1 = (currentAmountAsset1 + i.payments[0].amount)
346342 let newcurrentAmountAsset2 = (currentAmountAsset2 + i.payments[1].amount)
347343 let newcurrentAmount = (currentAmount + receiveLp)
348344 let newasset1pool = (asset1pool + i.payments[0].amount)
349345 let newasset2pool = (asset2pool + i.payments[1].amount)
350346 [Reissue(fromBase58String(lpAssetId), receiveLp, true), ScriptTransfer(Address(i.caller.bytes), receiveLp, fromBase58String(lpAssetId)), IntegerEntry(pkey(Asset1, Asset2, currentKey), height), IntegerEntry(((((currentKey + "_") + kp(Asset1, Asset2)) + "_") + Asset1), newcurrentAmountAsset1), IntegerEntry(((((currentKey + "_") + kp(Asset1, Asset2)) + "_") + Asset2), newcurrentAmountAsset2), IntegerEntry(((kp(Asset1, Asset2) + "_") + currentKey), newcurrentAmount), IntegerEntry(((kp(Asset1, Asset2) + "_") + Asset1), newasset1pool), IntegerEntry(((kp(Asset1, Asset2) + "_") + Asset2), newasset2pool), IntegerEntry(Asset1, (getAmountBlockAsset(Asset1) + i.payments[0].amount)), IntegerEntry(Asset2, (getAmountBlockAsset(Asset2) + i.payments[1].amount)), IntegerEntry(lpAssetId, (getAmountBlockAsset(lpAssetId) + receiveLp))]
351347 }
352348 else throw("Invalid Pool Key.")
353349 else throw("Invalid Asset1 or Asset2!")
354350 else throw("Asset1 cannot be equal to Asset2")
355351 else throw("liquidity is currently under maintenance.")
356352 else throw("dApp is currently under maintenance.")
357353 }
358354
359355
360356
361357 @Callable(i)
362358 func removeLiquidity (Asset1,Asset2,Amount) = {
363359 let currentKey = toBase58String(i.caller.bytes)
364360 let power = getBooleanValue(this, ac)
365361 let poolActivate = getBooleanValue(this, poolAc)
366362 let poolKey = kp(Asset1, Asset2)
367363 let key = validPoolK(poolKey)
368364 let asset1 = fromBase58String(Asset1)
369365 let asset2 = fromBase58String(Asset2)
370366 let USDN = toBytes(getStringValue(this, usdn))
371367 let USDC = toBytes(getStringValue(this, usdc))
372368 let USDT = toBytes(getStringValue(this, usdt))
373369 let NGNN = toBytes(getStringValue(this, ngnn))
374370 let MainAsset = fromBase58String(getStringValue(this, main))
375371 let lpAssetId = getStringValue(this, (l + kp(Asset1, Asset2)))
376372 let currentAmount = kpAddress(currentKey, kp(Asset1, Asset2))
377373 let amountLpBlocked = lpBlocked(currentKey, poolKey)
378374 let totalLP = getIntegerValue(this, lpAssetId)
379375 let totalAsset1Pool = getIntegerValue(this, ((kp(Asset1, Asset2) + "_") + Asset1))
380376 let totalAsset2Pool = getIntegerValue(this, ((kp(Asset1, Asset2) + "_") + Asset2))
381377 if (power)
382378 then if (!(poolActivate))
383379 then if (!((Asset1 == Asset2)))
384380 then if (if (if (if (if (if ((asset1 == USDN))
385381 then true
386382 else (asset1 == USDC))
387383 then true
388384 else (asset1 == USDT))
389385 then true
390386 else (asset1 == NGNN))
391387 then true
392388 else (asset1 == MainAsset))
393389 then if (if (if (if ((asset2 == USDN))
394390 then true
395391 else (asset2 == USDC))
396392 then true
397393 else (asset2 == USDT))
398394 then true
399395 else (asset2 == NGNN))
400396 then true
401397 else (asset2 == MainAsset)
402398 else false)
403399 then if (!((key == 0)))
404400 then if (!((currentAmount == 0)))
405401 then if (((currentAmount - amountLpBlocked) >= Amount))
406402 then {
407403 let calcLP = (Amount / totalLP)
408404 let receiveAsset1 = (calcLP * totalAsset1Pool)
409405 let receiveAsset2 = (calcLP * totalAsset2Pool)
410406 let asset1pool = assetP(kp(Asset1, Asset2), Asset1)
411407 let asset2pool = assetP(kp(Asset1, Asset2), Asset2)
412408 let currentAmountAsset1 = poolAA(currentKey, kp(Asset1, Asset2), Asset1)
413409 let currentAmountAsset2 = poolAA(currentKey, kp(Asset1, Asset2), Asset2)
414410 let newcurrentAmountAsset1 = (currentAmountAsset1 - receiveAsset1)
415411 let newcurrentAmountAsset2 = (currentAmountAsset2 - receiveAsset2)
416412 let newcurrentAmount = (currentAmount - Amount)
417413 let newasset1pool = (asset1pool - receiveAsset1)
418414 let newasset2pool = (asset2pool - receiveAsset2)
419415 [Burn(fromBase58String(lpAssetId), Amount), ScriptTransfer(Address(i.caller.bytes), receiveAsset1, asset1), ScriptTransfer(Address(i.caller.bytes), receiveAsset2, asset2), IntegerEntry(pkey(Asset1, Asset2, currentKey), height), IntegerEntry(((((currentKey + "_") + kp(Asset1, Asset2)) + "_") + Asset1), newcurrentAmountAsset1), IntegerEntry(((((currentKey + "_") + kp(Asset1, Asset2)) + "_") + Asset2), newcurrentAmountAsset2), IntegerEntry(((kp(Asset1, Asset2) + "_") + currentKey), newcurrentAmount), IntegerEntry(((kp(Asset1, Asset2) + "_") + Asset1), newasset1pool), IntegerEntry(((kp(Asset1, Asset2) + "_") + Asset2), newasset2pool), IntegerEntry(Asset1, (getAmountBlockAsset(Asset1) - receiveAsset1)), IntegerEntry(Asset2, (getAmountBlockAsset(Asset2) - receiveAsset2)), IntegerEntry(lpAssetId, (getAmountBlockAsset(lpAssetId) - Amount))]
420416 }
421417 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
422418 else throw("You have no locked values ​​in the pool")
423419 else throw("Invalid Pool Key.")
424420 else throw("Invalid Asset1 or Asset2!")
425421 else throw("Asset1 cannot be equal to Asset2")
426422 else throw("liquidity is currently under maintenance.")
427423 else throw("dApp is currently under maintenance.")
428424 }
429425
430426
431427
432428 @Callable(i)
433429 func swap (Asset1,Asset2) = {
434430 let currentKey = toBase58String(i.caller.bytes)
435431 let power = getBooleanValue(this, ac)
436432 let swapActivate = getBooleanValue(this, swapAc)
437433 let poolKey = kp(Asset1, Asset2)
438434 let key = validPoolK(poolKey)
439435 let asset1 = i.payments[0].assetId
440436 let USDN = toBytes(getStringValue(this, usdn))
441437 let USDC = toBytes(getStringValue(this, usdc))
442438 let USDT = toBytes(getStringValue(this, usdt))
443439 let NGNN = toBytes(getStringValue(this, ngnn))
444440 let MainAsset = fromBase58String(getStringValue(this, main))
445441 let totalAsset1 = getIntegerValue(this, ((kp(Asset1, Asset2) + "_") + Asset1))
446442 let totalAsset2 = getIntegerValue(this, ((kp(Asset1, Asset2) + "_") + Asset2))
447443 let feeRatePercentual = getIntegerValue(this, rateFee)
448444 if (power)
449445 then if (!(swapActivate))
450446 then if (if (!((Asset1 == Asset2)))
451447 then if ((asset1 == fromBase58String(Asset1)))
452448 then true
453449 else (asset1 == fromBase58String(Asset2))
454450 else false)
455451 then if (if (if (if (if ((asset1 == USDN))
456452 then true
457453 else (asset1 == USDC))
458454 then true
459455 else (asset1 == USDT))
460456 then true
461457 else (asset1 == NGNN))
462458 then true
463459 else (asset1 == MainAsset))
464460 then if (!((key == 0)))
465461 then if ((i.payments[1].assetId == MainAsset))
466462 then if ((i.payments[1].amount == 300000))
467463 then {
468464 let valueAsset = if (!((asset1 == fromBase58String(Asset1))))
469465 then (totalAsset1 / totalAsset2)
470466 else (totalAsset2 / totalAsset1)
471467 let newValue = (i.payments[0].amount - ((i.payments[0].amount * feeRatePercentual) / (100 * D8)))
472468 let sendValue = (newValue * valueAsset)
473469 [ScriptTransfer(Address(i.caller.bytes), sendValue, fromBase58String(Asset2)), IntegerEntry(Asset2, (getAmountBlockAsset(Asset2) - sendValue)), IntegerEntry(((kp(Asset1, Asset2) + "_") + Asset2), (assetP(kp(Asset1, Asset2), Asset2) - sendValue))]
474470 }
475471 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
476472 else throw("Invalid rate asset")
477473 else throw("Invalid Swap Key.")
478474 else throw("Invalid Asset1 or Asset2!")
479475 else throw("Asset1 cannot be equal to Asset2")
480476 else throw("Swap is currently under maintenance.")
481477 else throw("dApp is currently under maintenance.")
482478 }
483479
484480
485481 @Verifier(tx)
486482 func verify () = match tx {
487483 case order: Order =>
488- if ((order.orderType == Buy))
489- then if (if ((order.assetPair.amountAsset == axai1))
490- then (order.assetPair.priceAsset == usdn1)
491- else false)
492- then sigVerify(order.bodyBytes, order.proofs[0], order.senderPublicKey)
493- else false
494- else if (if ((order.assetPair.amountAsset == axai1))
495- then (order.assetPair.priceAsset == usdn1)
496- else false)
497- then sigVerify(order.bodyBytes, order.proofs[0], order.senderPublicKey)
498- else false
484+ true
499485 case e: ExchangeTransaction =>
500- if ((e.buyOrder.orderType == Buy))
501- then if (if ((e.buyOrder.assetPair.amountAsset == axai1))
502- then (e.buyOrder.assetPair.priceAsset == usdn1)
503- else false)
504- then sigVerify(e.bodyBytes, e.proofs[0], e.senderPublicKey)
505- else false
506- else if (if ((e.sellOrder.assetPair.amountAsset == axai1))
507- then (e.sellOrder.assetPair.priceAsset == usdn1)
508- else false)
509- then sigVerify(e.bodyBytes, e.proofs[0], e.senderPublicKey)
510- else false
486+ true
511487 case _ =>
512488 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
513489 }
514490

github/deemru/w8io/169f3d6 
96.25 ms