tx · GWVK25QaqWovGAgHhDoZqrdTC149bXD18DPKAascV4zf

3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez:  -0.01000000 Waves

2023.05.28 15:53 [3663375] smart account 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > SELF 0.00000000 Waves

{ "type": 13, "id": "GWVK25QaqWovGAgHhDoZqrdTC149bXD18DPKAascV4zf", "fee": 1000000, "feeAssetId": null, "timestamp": 1685278502478, "version": 2, "chainId": 87, "sender": "3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez", "senderPublicKey": "3zaQerEjh4SK1xhin9zzs5qr337aLRFhz7z1ckjFGhMz", "proofs": [ "3FM6Mb5HnWhGmVV9JLdcmCVfWwSFLHvJsdALjigAvqbuAfdPdqMN2DuukUSJmksUMpzTxUiH6bZoQTtr2sgQFJH1" ], "script": "base64:BgLgBAgCEgMKAQESAwoBARIDCgEIEgMKAQgiDmZyZWVfdG9fYm9ycm9tIg1VU0ROX0FTU0VUX0lEIgRib3NzIg5hZG1pblB1YmxpY0tleSIMV1hfU1dBUF9EQVBQIglhc3NldHNfaW4iCmdldEJhbGFuY2UiB2Fzc2V0SWQiByRtYXRjaDAiAWIiCGdldEJhc2UxIgRkYXRhIgZwX2RhdGEiAWEiAmEyIgdhc3NldEluIghhbW91bnRJbiIIZ2V0QmFzZTIiAnAxIgF0Ig1nZXRBc3NldEJ5dGVzIgdzd2FwX3d4IgFwIgVhc3NldCIAIgAiBmFtb3VudCIEY2FsbCIJc3dhcF9zd29wIgRzd2FwIgtzd2FwX3B1enpsZSIIYXNzZXRPdXQiBnVjaGVjayICaWQiAWgiAWkiBGFtbnQiCmN1cnJlbnRCYWwiCmRhdGFfYXJyYXkiCyR0MDM0MzMzNDg5IgskdDAzNDk0MzUzMiICdDEiCyR0MDM1MzczNTc1IgJwMiICdDIiCyR0MDM1ODAzNjE4IgJwMyICdDMiA2lkdSISYW1vdW50X2JlZl9hc3NldEluIgxuZXdfYW1vdW50SW4iEWFtb3VudF9iZWZfYXNzZXQxIgVzd2FwMSICbmIiEWFtb3VudF9iZWZfYXNzZXQyIgVzd2FwMiIDbmIyIhVhbW91bnRfYmVmX2Jhc2VfYXNzZXQiBXN3YXAzIgNuYjMiCHRyZXNob2xkIgskdDA2MTE4NjE3NCILJHQwNjE3OTYyMTciCyR0MDYyMjI2MjYwIgJ0eCIGdmVyaWZ5DgABYQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHN0NIdkJhdEhwQ2h3bThyZUg3NHdmRXdrMVBIYzhScXkAAWIBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAFjCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFJFNUtIOW9QR2ZGUHM3ZkduUWNKNHdOc2hFRFVQR2oxdAABZAEgr/8efHaHn138Hq+fsexc54494j5bIbLgBnFNFv+bFW0AAWUJAQdBZGRyZXNzAQEaAVcuKjU1sQ238Xk+4bdG0J50Uk17MdCDrgYAAWYJAMwIAgIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAFA25pbAEBZwEBaAQBaQUBaAMJAAECBQFpAgpCeXRlVmVjdG9yBAFqBQFpCQDwBwIFBHRoaXMFAWoICQDvBwEFBHRoaXMJYXZhaWxhYmxlAQFrAQFsBAFtCQC8CQIFAWwCAV8EAW4JAJEDAgUBbQAABAFvCQCRAwIFAW0AAQQBcAkAkQMCBQFmCQEFdmFsdWUBCQC2CQEJAJEDAgUBbQACBAFxCQCRAwIFAW0AAwkAlgoEBQFuBQFvBQFwBQFxAQFyAQFsBAFtCQC1CQIFAWwCAV8EAXMJAJEDAgUBbQAABAF0CQCRAwIFAW0AAQkAlAoCBQFzBQF0AQF1AQFoAwkAAAIFAWgCBVdBVkVTBQR1bml0CQDZBAEFAWgBAXYEAXcBeAFBAW4EAUIJAPwHBAUBZQIEc3dhcAkAzAgCAAEJAMwIAgUBbgkAzAgCCQClCAEFBHRoaXMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBAXUBBQF4BQFBBQNuaWwDCQAAAgUBQgUBQgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQFDAwF3AXgBQQQBRAkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQF1AQUBeAUBQQUDbmlsAwkAAAIFAUQFAUQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBRQQBdwF4AUEBRgQBRAkA/AcECQEHQWRkcmVzcwEJANkEAQUBdwIEc3dhcAkAzAgCBQFGCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEBdQEFAXgFAUEFA25pbAMJAAACBQFEBQFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAUcBAUgEAWkJAOkHAQUBSAMJAAECBQFpAgNJbnQEAUkFAWkFAUkAAAQBSgEGYm9ycm93AQFLAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQFhCQDMCAIFAWMJAMwIAgUEdGhpcwUDbmlsCAUBSgZjYWxsZXIJAAIBAh55b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGJvcnJvdyEEAUwJAQFnAQUBYgMJAGYCBQFLBQFMCQACAQIcWW91IGNhbm5ub3QgYm9ycm93IHRoYXQgbXVjaAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBSgZjYWxsZXIFAUsFAWIFA25pbAFKAQtzZXRUcmVzaG9sZAEBSwMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBYQkAzAgCBQFjCQDMCAIFBHRoaXMFA25pbAgFAUoGY2FsbGVyCQACAQIfeW91IGFyZSBub3QgYWxsb3dlZCB0byBkbyB0aGF0IQkAzAgCCQEMSW50ZWdlckVudHJ5AgIIdHJlc2hvbGQFAUsFA25pbAFKAQF5AQFsAwMJAQIhPQIIBQFKBmNhbGxlcgUEdGhpcwkBAiE9AggFAUoGY2FsbGVyBQFjBwkAAgECG3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gYXJiIQQBTQkAvAkCBQFsAgF8BAFOCQEBawEJAJEDAgUBTQAABAFuCAUBTgJfMQQBbwgFAU4CXzIEAXAIBQFOAl8zBAFxCAUBTgJfNAQBTwkBAXIBCQCRAwIFAU0AAQQBcwgFAU8CXzEEAVAIBQFPAl8yBAFRCQEBcgEJAJEDAgUBTQACBAFSCAUBUQJfMQQBUwgFAVECXzIEAVQJAQFyAQkAkQMCBQFNAAMEAVUIBQFUAl8xBAFWCAUBVAJfMgQBVwMJAGYCCQCxAgEJAJEDAgUBTQAEAAEJALwJAgkAkQMCBQFNAAQCAS0FA25pbAMDAwkAZgIJAJADAQUBVwAACQBmAgkBAUcBCQDZBAEJAJEDAgUBVwAAAAAHBgkAZwIAAQkAsQIBCQCRAwIFAU0ABAQBWAkBAWcBCQEBdQEFAXADCQAAAgUBWAUBWAQBWQMJAGYCCQEFdmFsdWUBCQC2CQEFAXEFAVgFAVgJAQV2YWx1ZQEJALYJAQUBcQMJAAACBQFZBQFZBAFaCQEBZwEJAQF1AQUBbgMJAAACBQFaBQFaBAJhYQMJAAACBQFQAgFXCQEBdgQFAXMFAXAFAVkFAW4DCQAAAgUBUAIBUwkBAUMDBQFzBQFwBQFZCQEBRQQFAXMFAXAFAVkFAW4DCQAAAgUCYWEFAmFhBAJhYgkAZQIJAQFnAQkBAXUBBQFuBQFaAwkAAAIFAmFiBQJhYgQCYWMJAQFnAQkBAXUBBQFvAwkAAAIFAmFjBQJhYwQCYWQDCQAAAgUBUwIBVwkBAXYEBQFSBQFuBQJhYgUBbwMJAAACBQFTAgFTCQEBQwMFAVIFAW4FAmFiCQEBRQQFAVIFAW4FAmFiBQFvAwkAAAIFAmFkBQJhZAQCYWUJAGUCCQEBZwEJAQF1AQUBbwUCYWMDCQAAAgUCYWUFAmFlBAJhZgkBAWcBCQEBdQEFAXADCQAAAgUCYWYFAmFmBAJhZwMJAAACBQFWAgFXCQEBdgQFAVUFAW8FAmFlBQFwAwkAAAIFAVYCAVMJAQFDAwUBVQUBbwUCYWUJAQFFBAUBVQUBbwUCYWUFAXADCQAAAgUCYWcFAmFnBAJhaAkAZQIJAQFnAQkBAXUBBQFwBQJhZgMJAAACBQJhaAUCYWgEAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHRyZXNob2xkAPCTCQMJAGYCBQJhaAkAZAIFAVkFAmFpCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFKBmNhbGxlcgkAZQIFAmFoBQFZCQEBdQEFAXAFA25pbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEm9yaWdpbiBhbW91bnRJbiA9IAUBcQIRLCBuZXdfYW1vdW50SW4gPSAJAKQDAQUBWQIMLCBuZXdCYWxfMTogCQCkAwEFAmFiAgwsIG5ld0JhbF8yOiAJAKQDAQUCYWUCDCwgbmV3QmFsXzM6IAkApAMBBQJhaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAUoBAXoBAWwDAwkBAiE9AggFAUoGY2FsbGVyBQR0aGlzCQECIT0CCAUBSgZjYWxsZXIFAWMHCQACAQIbeW91IGFyZSBub3QgYWxsb3dlZCB0byBhcmIhBAFNCQC8CQIFAWwCAXwEAmFqCQEBawEJAJEDAgUBTQAABAFuCAUCYWoCXzEEAW8IBQJhagJfMgQBcAgFAmFqAl8zBAFxCAUCYWoCXzQEAmFrCQEBcgEJAJEDAgUBTQABBAFzCAUCYWsCXzEEAVAIBQJhawJfMgQCYWwJAQFyAQkAkQMCBQFNAAIEAVIIBQJhbAJfMQQBUwgFAmFsAl8yBAFXAwkAZgIJALECAQkAkQMCBQFNAAMAAQkAvAkCCQCRAwIFAU0AAwIBLQUDbmlsAwMDCQBmAgkAkAMBBQFXAAAJAGYCCQEBRwEJANkEAQkAkQMCBQFXAAAAAAcGCQBnAgABCQCxAgEJAJEDAgUBTQADBAFYCQEBZwEJAQF1AQUBcAMJAAACBQFYBQFYBAFZAwkAZgIJAQV2YWx1ZQEJALYJAQUBcQUBWAUBWAkBBXZhbHVlAQkAtgkBBQFxAwkAAAIFAVkFAVkEAVoJAQFnAQkBAXUBBQFuAwkAAAIFAVoFAVoEAmFhAwkAAAIFAVACAVcJAQF2BAUBcwUBcAUBWQUBbgMJAAACBQFQAgFTCQEBQwMFAXMFAXAFAVkJAQFFBAUBcwUBcAUBWQUBbgMJAAACBQJhYQUCYWEEAmFiCQBlAgkBAWcBCQEBdQEFAW4FAVoDCQAAAgUCYWIFAmFiBAJhYwkBAWcBCQEBdQEFAXADCQAAAgUCYWMFAmFjBAJhZAMJAAACBQFTAgFXCQEBdgQFAVIFAW4FAmFiBQFwAwkAAAIFAVMCAVMJAQFDAwUBUgUBbgUCYWIJAQFFBAUBUgUBbgUCYWIFAXADCQAAAgUCYWQFAmFkBAJhZQkAZQIJAQFnAQkBAXUBBQFwBQJhYwMJAAACBQJhZQUCYWUEAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHRyZXNob2xkAPCTCQMGCQACAQkApQMBCQBmAgUCYWUJAGQCBQFZBQJhaQkAAgECAm5vCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwBAmFtAQJhbgADCQDIEwMIBQJhbQlib2R5Qnl0ZXMJAJEDAggFAmFtBnByb29mcwAACAUCYW0Pc2VuZGVyUHVibGljS2V5BgkAyBMDCAUCYW0JYm9keUJ5dGVzCQCRAwIIBQJhbQZwcm9vZnMAAAUBZPeuSpM=", "height": 3663375, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9XfY5HBmozGAMw2TN2Pty11z8nv8LAi3yD5uprRQZmrA Next: BNb9DUWok88p2uqFa7SBYsAUDwgVNdwqtzHzM4gBMxRQ Diff:
OldNewDifferences
203203 }
204204
205205
206+
207+@Callable(i)
208+func z (data) = if (if ((i.caller != this))
209+ then (i.caller != boss)
210+ else false)
211+ then throw("you are not allowed to arb!")
212+ else {
213+ let data_array = split_4C(data, "|")
214+ let $t061186174 = getBase1(data_array[0])
215+ let a = $t061186174._1
216+ let a2 = $t061186174._2
217+ let assetIn = $t061186174._3
218+ let amountIn = $t061186174._4
219+ let $t061796217 = getBase2(data_array[1])
220+ let p1 = $t061796217._1
221+ let t1 = $t061796217._2
222+ let $t062226260 = getBase2(data_array[2])
223+ let p2 = $t062226260._1
224+ let t2 = $t062226260._2
225+ let idu = if ((size(data_array[3]) > 1))
226+ then split_4C(data_array[3], "-")
227+ else nil
228+ if (if (if ((size(idu) > 0))
229+ then (ucheck(fromBase58String(idu[0])) > 0)
230+ else false)
231+ then true
232+ else (1 >= size(data_array[3])))
233+ then {
234+ let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
235+ if ((amount_bef_assetIn == amount_bef_assetIn))
236+ then {
237+ let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
238+ then amount_bef_assetIn
239+ else value(parseInt(amountIn))
240+ if ((new_amountIn == new_amountIn))
241+ then {
242+ let amount_bef_asset1 = getBalance(getAssetBytes(a))
243+ if ((amount_bef_asset1 == amount_bef_asset1))
244+ then {
245+ let swap1 = if ((t1 == "W"))
246+ then swap_wx(p1, assetIn, new_amountIn, a)
247+ else if ((t1 == "S"))
248+ then swap_swop(p1, assetIn, new_amountIn)
249+ else swap_puzzle(p1, assetIn, new_amountIn, a)
250+ if ((swap1 == swap1))
251+ then {
252+ let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
253+ if ((nb == nb))
254+ then {
255+ let amount_bef_asset2 = getBalance(getAssetBytes(assetIn))
256+ if ((amount_bef_asset2 == amount_bef_asset2))
257+ then {
258+ let swap2 = if ((t2 == "W"))
259+ then swap_wx(p2, a, nb, assetIn)
260+ else if ((t2 == "S"))
261+ then swap_swop(p2, a, nb)
262+ else swap_puzzle(p2, a, nb, assetIn)
263+ if ((swap2 == swap2))
264+ then {
265+ let nb2 = (getBalance(getAssetBytes(assetIn)) - amount_bef_asset2)
266+ if ((nb2 == nb2))
267+ then {
268+ let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
269+ if (true)
270+ then throw(toString((nb2 > (new_amountIn + treshold))))
271+ else throw("no")
272+ }
273+ else throw("Strict value is not equal to itself.")
274+ }
275+ else throw("Strict value is not equal to itself.")
276+ }
277+ else throw("Strict value is not equal to itself.")
278+ }
279+ else throw("Strict value is not equal to itself.")
280+ }
281+ else throw("Strict value is not equal to itself.")
282+ }
283+ else throw("Strict value is not equal to itself.")
284+ }
285+ else throw("Strict value is not equal to itself.")
286+ }
287+ else throw("Strict value is not equal to itself.")
288+ }
289+ else nil
290+ }
291+
292+
206293 @Verifier(tx)
207294 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
208295 then true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let free_to_borrom = addressFromStringValue("3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy")
55
66 let USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 let boss = addressFromStringValue("3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t")
99
1010 let adminPublicKey = base58'Cr1ybL2JGg9GwJHA2JwqxBPfSW6Q7Jg4HvNrsEiCsHu6'
1111
1212 let WX_SWAP_DAPP = Address(base58'3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93')
1313
1414 let assets_in = ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
1515
1616 func getBalance (assetId) = match assetId {
1717 case b: ByteVector =>
1818 assetBalance(this, b)
1919 case _ =>
2020 wavesBalance(this).available
2121 }
2222
2323
2424 func getBase1 (data) = {
2525 let p_data = split_4C(data, "_")
2626 let a = p_data[0]
2727 let a2 = p_data[1]
2828 let assetIn = assets_in[value(parseInt(p_data[2]))]
2929 let amountIn = p_data[3]
3030 $Tuple4(a, a2, assetIn, amountIn)
3131 }
3232
3333
3434 func getBase2 (data) = {
3535 let p_data = split(data, "_")
3636 let p1 = p_data[0]
3737 let t = p_data[1]
3838 $Tuple2(p1, t)
3939 }
4040
4141
4242 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
4343 then unit
4444 else fromBase58String(assetId)
4545
4646
4747 func swap_wx (p,asset,amount,a) = {
4848 let call = invoke(WX_SWAP_DAPP, "swap", [1, a, toString(this)], [AttachedPayment(getAssetBytes(asset), amount)])
4949 if ((call == call))
5050 then nil
5151 else throw("Strict value is not equal to itself.")
5252 }
5353
5454
5555 func swap_swop (p,asset,amount) = {
5656 let swap = invoke(Address(fromBase58String(p)), "exchange", [1], [AttachedPayment(getAssetBytes(asset), amount)])
5757 if ((swap == swap))
5858 then nil
5959 else throw("Strict value is not equal to itself.")
6060 }
6161
6262
6363 func swap_puzzle (p,asset,amount,assetOut) = {
6464 let swap = invoke(Address(fromBase58String(p)), "swap", [assetOut, 1], [AttachedPayment(getAssetBytes(asset), amount)])
6565 if ((swap == swap))
6666 then nil
6767 else throw("Strict value is not equal to itself.")
6868 }
6969
7070
7171 func ucheck (id) = match transactionHeightById(id) {
7272 case h: Int =>
7373 h
7474 case _ =>
7575 0
7676 }
7777
7878
7979 @Callable(i)
8080 func borrow (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
8181 then throw("you are not allowed to borrow!")
8282 else {
8383 let currentBal = getBalance(USDN_ASSET_ID)
8484 if ((amnt > currentBal))
8585 then throw("You cannnot borrow that much")
8686 else [ScriptTransfer(i.caller, amnt, USDN_ASSET_ID)]
8787 }
8888
8989
9090
9191 @Callable(i)
9292 func setTreshold (amnt) = if (!(containsElement([free_to_borrom, boss, this], i.caller)))
9393 then throw("you are not allowed to do that!")
9494 else [IntegerEntry("treshold", amnt)]
9595
9696
9797
9898 @Callable(i)
9999 func y (data) = if (if ((i.caller != this))
100100 then (i.caller != boss)
101101 else false)
102102 then throw("you are not allowed to arb!")
103103 else {
104104 let data_array = split_4C(data, "|")
105105 let $t034333489 = getBase1(data_array[0])
106106 let a = $t034333489._1
107107 let a2 = $t034333489._2
108108 let assetIn = $t034333489._3
109109 let amountIn = $t034333489._4
110110 let $t034943532 = getBase2(data_array[1])
111111 let p1 = $t034943532._1
112112 let t1 = $t034943532._2
113113 let $t035373575 = getBase2(data_array[2])
114114 let p2 = $t035373575._1
115115 let t2 = $t035373575._2
116116 let $t035803618 = getBase2(data_array[3])
117117 let p3 = $t035803618._1
118118 let t3 = $t035803618._2
119119 let idu = if ((size(data_array[4]) > 1))
120120 then split_4C(data_array[4], "-")
121121 else nil
122122 if (if (if ((size(idu) > 0))
123123 then (ucheck(fromBase58String(idu[0])) > 0)
124124 else false)
125125 then true
126126 else (1 >= size(data_array[4])))
127127 then {
128128 let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
129129 if ((amount_bef_assetIn == amount_bef_assetIn))
130130 then {
131131 let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
132132 then amount_bef_assetIn
133133 else value(parseInt(amountIn))
134134 if ((new_amountIn == new_amountIn))
135135 then {
136136 let amount_bef_asset1 = getBalance(getAssetBytes(a))
137137 if ((amount_bef_asset1 == amount_bef_asset1))
138138 then {
139139 let swap1 = if ((t1 == "W"))
140140 then swap_wx(p1, assetIn, new_amountIn, a)
141141 else if ((t1 == "S"))
142142 then swap_swop(p1, assetIn, new_amountIn)
143143 else swap_puzzle(p1, assetIn, new_amountIn, a)
144144 if ((swap1 == swap1))
145145 then {
146146 let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
147147 if ((nb == nb))
148148 then {
149149 let amount_bef_asset2 = getBalance(getAssetBytes(a2))
150150 if ((amount_bef_asset2 == amount_bef_asset2))
151151 then {
152152 let swap2 = if ((t2 == "W"))
153153 then swap_wx(p2, a, nb, a2)
154154 else if ((t2 == "S"))
155155 then swap_swop(p2, a, nb)
156156 else swap_puzzle(p2, a, nb, a2)
157157 if ((swap2 == swap2))
158158 then {
159159 let nb2 = (getBalance(getAssetBytes(a2)) - amount_bef_asset2)
160160 if ((nb2 == nb2))
161161 then {
162162 let amount_bef_base_asset = getBalance(getAssetBytes(assetIn))
163163 if ((amount_bef_base_asset == amount_bef_base_asset))
164164 then {
165165 let swap3 = if ((t3 == "W"))
166166 then swap_wx(p3, a2, nb2, assetIn)
167167 else if ((t3 == "S"))
168168 then swap_swop(p3, a2, nb2)
169169 else swap_puzzle(p3, a2, nb2, assetIn)
170170 if ((swap3 == swap3))
171171 then {
172172 let nb3 = (getBalance(getAssetBytes(assetIn)) - amount_bef_base_asset)
173173 if ((nb3 == nb3))
174174 then {
175175 let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
176176 if ((nb3 > (new_amountIn + treshold)))
177177 then [ScriptTransfer(i.caller, (nb3 - new_amountIn), getAssetBytes(assetIn))]
178178 else throw(((((((((("origin amountIn = " + amountIn) + ", new_amountIn = ") + toString(new_amountIn)) + ", newBal_1: ") + toString(nb)) + ", newBal_2: ") + toString(nb2)) + ", newBal_3: ") + toString(nb3)))
179179 }
180180 else throw("Strict value is not equal to itself.")
181181 }
182182 else throw("Strict value is not equal to itself.")
183183 }
184184 else throw("Strict value is not equal to itself.")
185185 }
186186 else throw("Strict value is not equal to itself.")
187187 }
188188 else throw("Strict value is not equal to itself.")
189189 }
190190 else throw("Strict value is not equal to itself.")
191191 }
192192 else throw("Strict value is not equal to itself.")
193193 }
194194 else throw("Strict value is not equal to itself.")
195195 }
196196 else throw("Strict value is not equal to itself.")
197197 }
198198 else throw("Strict value is not equal to itself.")
199199 }
200200 else throw("Strict value is not equal to itself.")
201201 }
202202 else nil
203203 }
204204
205205
206+
207+@Callable(i)
208+func z (data) = if (if ((i.caller != this))
209+ then (i.caller != boss)
210+ else false)
211+ then throw("you are not allowed to arb!")
212+ else {
213+ let data_array = split_4C(data, "|")
214+ let $t061186174 = getBase1(data_array[0])
215+ let a = $t061186174._1
216+ let a2 = $t061186174._2
217+ let assetIn = $t061186174._3
218+ let amountIn = $t061186174._4
219+ let $t061796217 = getBase2(data_array[1])
220+ let p1 = $t061796217._1
221+ let t1 = $t061796217._2
222+ let $t062226260 = getBase2(data_array[2])
223+ let p2 = $t062226260._1
224+ let t2 = $t062226260._2
225+ let idu = if ((size(data_array[3]) > 1))
226+ then split_4C(data_array[3], "-")
227+ else nil
228+ if (if (if ((size(idu) > 0))
229+ then (ucheck(fromBase58String(idu[0])) > 0)
230+ else false)
231+ then true
232+ else (1 >= size(data_array[3])))
233+ then {
234+ let amount_bef_assetIn = getBalance(getAssetBytes(assetIn))
235+ if ((amount_bef_assetIn == amount_bef_assetIn))
236+ then {
237+ let new_amountIn = if ((value(parseInt(amountIn)) > amount_bef_assetIn))
238+ then amount_bef_assetIn
239+ else value(parseInt(amountIn))
240+ if ((new_amountIn == new_amountIn))
241+ then {
242+ let amount_bef_asset1 = getBalance(getAssetBytes(a))
243+ if ((amount_bef_asset1 == amount_bef_asset1))
244+ then {
245+ let swap1 = if ((t1 == "W"))
246+ then swap_wx(p1, assetIn, new_amountIn, a)
247+ else if ((t1 == "S"))
248+ then swap_swop(p1, assetIn, new_amountIn)
249+ else swap_puzzle(p1, assetIn, new_amountIn, a)
250+ if ((swap1 == swap1))
251+ then {
252+ let nb = (getBalance(getAssetBytes(a)) - amount_bef_asset1)
253+ if ((nb == nb))
254+ then {
255+ let amount_bef_asset2 = getBalance(getAssetBytes(assetIn))
256+ if ((amount_bef_asset2 == amount_bef_asset2))
257+ then {
258+ let swap2 = if ((t2 == "W"))
259+ then swap_wx(p2, a, nb, assetIn)
260+ else if ((t2 == "S"))
261+ then swap_swop(p2, a, nb)
262+ else swap_puzzle(p2, a, nb, assetIn)
263+ if ((swap2 == swap2))
264+ then {
265+ let nb2 = (getBalance(getAssetBytes(assetIn)) - amount_bef_asset2)
266+ if ((nb2 == nb2))
267+ then {
268+ let treshold = valueOrElse(getInteger(this, "treshold"), 150000)
269+ if (true)
270+ then throw(toString((nb2 > (new_amountIn + treshold))))
271+ else throw("no")
272+ }
273+ else throw("Strict value is not equal to itself.")
274+ }
275+ else throw("Strict value is not equal to itself.")
276+ }
277+ else throw("Strict value is not equal to itself.")
278+ }
279+ else throw("Strict value is not equal to itself.")
280+ }
281+ else throw("Strict value is not equal to itself.")
282+ }
283+ else throw("Strict value is not equal to itself.")
284+ }
285+ else throw("Strict value is not equal to itself.")
286+ }
287+ else throw("Strict value is not equal to itself.")
288+ }
289+ else nil
290+ }
291+
292+
206293 @Verifier(tx)
207294 func verify () = if (sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
208295 then true
209296 else sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
210297

github/deemru/w8io/6500d08 
73.05 ms