tx · EHHdjomMerW3MZY2433APCrTr4PUZwpYTzunA3VT2vhq

3P3JhDnLFgjUmtvTFrxYvwcjhyuEAjCb6BK:  -0.02000000 Waves

2023.01.24 22:43 [3485009] smart account 3P3JhDnLFgjUmtvTFrxYvwcjhyuEAjCb6BK > SELF 0.00000000 Waves

{ "type": 13, "id": "EHHdjomMerW3MZY2433APCrTr4PUZwpYTzunA3VT2vhq", "fee": 2000000, "feeAssetId": null, "timestamp": 1674589452051, "version": 2, "chainId": 87, "sender": "3P3JhDnLFgjUmtvTFrxYvwcjhyuEAjCb6BK", "senderPublicKey": "BYrh9PEnFoUmwG314ugeidaCQ3kz3r9pywqHmUQCP57S", "proofs": [ "2mnZDmVJNPBb3FKQx8zU8rCCrtUJdP2cX9tHBZFJFiefv7roAfHi463XeJmWBSvG2tdVz128aTFhMvLdsAxVe593" ], "script": "base64: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AAAAAQUAAAAIYXNzZXRpZDIDCQAAAAAAAAIFAAAAFmluaXRpYWxBc3NldGlkMkJhbGFuY2UFAAAAFmluaXRpYWxBc3NldGlkMkJhbGFuY2UEAAAAC2J1eU9uUHV6emxlCQAD/AAAAAQFAAAACnB1enpsZVBvb2wCAAAABHN3YXAJAARMAAAAAgUAAAAIYXNzZXRpZDIJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAhBc3NldGlkMQUAAAAGYW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAAC2J1eU9uUHV6emxlBQAAAAtidXlPblB1enpsZQQAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UJAABlAAAAAgkAA/AAAAACBQAAAAR0aGlzCQACWQAAAAEFAAAACGFzc2V0aWQyBQAAABZpbml0aWFsQXNzZXRpZDJCYWxhbmNlAwkAAAAAAAACBQAAABRBc3NldGlkMlRva2VuQmFsYW5jZQUAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UEAAAAFHB1dFRoZVRva2VuSW5UaGVQb29sCQAD/AAAAAQFAAAABnd4UG9vbAIAAAAJcHV0T25lVGtuCQAETAAAAAIAAAAAAAAAAAEJAARMAAAAAgcFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgkAAlkAAAABBQAAAAhhc3NldGlkMgUAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UFAAAAA25pbAMJAAAAAAAAAgUAAAAUcHV0VGhlVG9rZW5JblRoZVBvb2wFAAAAFHB1dFRoZVRva2VuSW5UaGVQb29sBAAAAA5scFRva2VuQmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAAAdBc3NldGxwAwkAAAAAAAACBQAAAA5scFRva2VuQmFsYW5jZQUAAAAObHBUb2tlbkJhbGFuY2UEAAAADXNlbGxQb29sVG9rZW4JAAP8AAAABAUAAAAGd3hQb29sAgAAAAlnZXRPbmVUa24JAARMAAAAAgUAAAAIYXNzZXRpZDEJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAAC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YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAAGYW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAAFHB1dFRoZVRva2VuSW5UaGVQb29sBQAAABRwdXRUaGVUb2tlbkluVGhlUG9vbAQAAAAObHBUb2tlbkJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAHQXNzZXRscAMJAAAAAAAAAgUAAAAObHBUb2tlbkJhbGFuY2UFAAAADmxwVG9rZW5CYWxhbmNlBAAAAA1zZWxsUG9vbFRva2VuCQAD/AAAAAQFAAAABnd4UG9vbAIAAAAJZ2V0T25lVGtuCQAETAAAAAIFAAAACGFzc2V0aWQyCQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAHQXNzZXRscAUAAAAObHBUb2tlbkJhbGFuY2UFAAAAA25pbAMJAAAAAAAAAgUAAAANc2VsbFBvb2xUb2tlbgUAAAANc2VsbFBvb2xUb2tlbgQAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UJAABlAAAAAgkAA/AAAAACBQAAAAR0aGlzCQACWQAAAAEFAAAACGFzc2V0aWQyBQAAABZpbml0aWFsQXNzZXRpZDJCYWxhbmNlAwkAAAAAAAACBQAAABRBc3NldGlkMlRva2VuQmFsYW5jZQUAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UEAAAADHNlbGxPblB1enpsZQkAA/wAAAAEBQAAAApwdXp6bGVQb29sAgAAAARzd2FwCQAETAAAAAICAAAABVdBVkVTCQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAIQXNzZXRpZDIFAAAAFEFzc2V0aWQyVG9rZW5CYWxhbmNlBQAAAANuaWwDCQAAAAAAAAIFAAAADHNlbGxPblB1enpsZQUAAAAMc2VsbE9uUHV6emxlBAAAAAtmaW5hbEFtb3VudAkAAGUAAAACCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQUAAAAWaW5pdGlhbEFzc2V0aWQxQmFsYW5jZQMJAAAAAAAAAgUAAAALZmluYWxBbW91bnQFAAAAC2ZpbmFsQW1vdW50AwkAAGcAAAACBQAAAAZhbW91bnQFAAAAC2ZpbmFsQW1vdW50CQAAAgAAAAECAAAAE2FyYiBub3Qgc3VjY2Vzc2Z1bCEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFYWRtaW4FAAAAC2ZpbmFsQW1vdW50BQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAtXeFN3b3BBcmJfMQAAAAUAAAAHd3hfcG9vbAAAAAhhc3NldGlkMQAAAAlzd29wX3Bvb2wAAAAIYXNzZXRpZDIAAAAHYXNzZXRscAQAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQEAAAABnd4UG9vbAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAHd3hfcG9vbAQAAAAIQXNzZXRpZDEJAAJZAAAAAQUAAAAIYXNzZXRpZDEEAAAAB0Fzc2V0bHAJAAJZAAAAAQUAAAAHYXNzZXRscAQAAAAIU3dvcFBvb2wJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAACXN3b3BfcG9vbAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAFYWRtaW4JAAACAAAAAQIAAAAFTm93YXkEAAAAFmluaXRpYWxBc3NldGlkMkJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwkAAlkAAAABBQAAAAhhc3NldGlkMgMJAAAAAAAAAgUAAAAWaW5pdGlhbEFzc2V0aWQyQmFsYW5jZQUAAAAWaW5pdGlhbEFzc2V0aWQyQmFsYW5jZQQAAAAJYnV5T25Td29wCQAD/AAAAAQFAAAACFN3b3BQb29sAgAAAAhleGNoYW5nZQkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACEFzc2V0aWQxBQAAAAZhbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAJYnV5T25Td29wBQAAAAlidXlPblN3b3AEAAAAFEFzc2V0aWQyVG9rZW5CYWxhbmNlCQAAZQAAAAIJAAPwAAAAAgUAAAAEdGhpcwkAAlkAAAABBQAAAAhhc3NldGlkMgUAAAAWaW5pdGlhbEFzc2V0aWQyQmFsYW5jZQMJAAAAAAAAAgUAAAAUQXNzZXRpZDJUb2tlbkJhbGFuY2UFAAAAFEFzc2V0aWQyVG9rZW5CYWxhbmNlBAAAABRwdXRUaGVUb2tlbkluVGhlUG9vbAkAA/wAAAAEBQAAAAZ3eFBvb2wCAAAACXB1dE9uZVRrbgkABEwAAAACAAAAAAAAAAABCQAETAAAAAIHBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIJAAJZAAAAAQUAAAAIYXNzZXRpZDIFAAAAFEFzc2V0aWQyVG9rZW5CYWxhbmNlBQAAAANuaWwDCQAAAAAAAAIFAAAAFHB1dFRoZVRva2VuSW5UaGVQb29sBQAAABRwdXRUaGVUb2tlbkluVGhlUG9vbAQAAAAObHBUb2tlbkJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAHQXNzZXRscAMJAAAAAAAAAgUAAAAObHBUb2tlbkJhbGFuY2UFAAAADmxwVG9rZW5CYWxhbmNlBAAAAA1zZWxsUG9vbFRva2VuCQAD/AAAAAQFAAAABnd4UG9vbAIAAAAJZ2V0T25lVGtuCQAETAAAAAIFAAAACGFzc2V0aWQxCQAETAAAAAIAAAAAAAAAAAEFAAAAA25p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", "height": 3485009, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2Bvbu6S3mA7fk96iYJQHaCziPuKg21EZhY7AiA2W5xbH Next: none Diff:
OldNewDifferences
284284
285285
286286 @Callable(i)
287+func WxPuzzleArb_w1 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
288+ let amount = i.payments[0].amount
289+ let wxPool = addressFromStringValue(wx_pool)
290+ let Assetlp = fromBase58String(assetlp)
291+ let puzzlePool = addressFromStringValue(puzzle_pool)
292+ if ((i.caller != admin))
293+ then throw("Noway")
294+ else {
295+ let initialAssetid1Balance = wavesBalance(this).available
296+ if ((initialAssetid1Balance == initialAssetid1Balance))
297+ then {
298+ let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
299+ if ((initialAssetid2Balance == initialAssetid2Balance))
300+ then {
301+ let buyOnPuzzle = invoke(puzzlePool, "swap", [assetid2, 1], [AttachedPayment(unit, amount)])
302+ if ((buyOnPuzzle == buyOnPuzzle))
303+ then {
304+ let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
305+ if ((Assetid2TokenBalance == Assetid2TokenBalance))
306+ then {
307+ let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
308+ if ((putTheTokenInThePool == putTheTokenInThePool))
309+ then {
310+ let lpTokenBalance = assetBalance(this, Assetlp)
311+ if ((lpTokenBalance == lpTokenBalance))
312+ then {
313+ let sellPoolToken = invoke(wxPool, "getOneTkn", ["WAVES", 1], [AttachedPayment(Assetlp, lpTokenBalance)])
314+ if ((sellPoolToken == sellPoolToken))
315+ then {
316+ let finalAmount = (wavesBalance(this).available - initialAssetid1Balance)
317+ if ((finalAmount == finalAmount))
318+ then if ((amount >= finalAmount))
319+ then throw("arb not successful!")
320+ else [ScriptTransfer(admin, finalAmount, unit)]
321+ else throw("Strict value is not equal to itself.")
322+ }
323+ else throw("Strict value is not equal to itself.")
324+ }
325+ else throw("Strict value is not equal to itself.")
326+ }
327+ else throw("Strict value is not equal to itself.")
328+ }
329+ else throw("Strict value is not equal to itself.")
330+ }
331+ else throw("Strict value is not equal to itself.")
332+ }
333+ else throw("Strict value is not equal to itself.")
334+ }
335+ else throw("Strict value is not equal to itself.")
336+ }
337+ }
338+
339+
340+
341+@Callable(i)
342+func WxPuzzleArb_w2 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
343+ let amount = i.payments[0].amount
344+ let wxPool = addressFromStringValue(wx_pool)
345+ let Assetid2 = fromBase58String(assetid2)
346+ let Assetlp = fromBase58String(assetlp)
347+ let puzzlePool = addressFromStringValue(puzzle_pool)
348+ if ((i.caller != admin))
349+ then throw("Noway")
350+ else {
351+ let initialAssetid1Balance = wavesBalance(this).available
352+ if ((initialAssetid1Balance == initialAssetid1Balance))
353+ then {
354+ let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
355+ if ((initialAssetid2Balance == initialAssetid2Balance))
356+ then {
357+ let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
358+ if ((putTheTokenInThePool == putTheTokenInThePool))
359+ then {
360+ let lpTokenBalance = assetBalance(this, Assetlp)
361+ if ((lpTokenBalance == lpTokenBalance))
362+ then {
363+ let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid2, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
364+ if ((sellPoolToken == sellPoolToken))
365+ then {
366+ let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
367+ if ((Assetid2TokenBalance == Assetid2TokenBalance))
368+ then {
369+ let sellOnPuzzle = invoke(puzzlePool, "swap", ["WAVES", 1], [AttachedPayment(Assetid2, Assetid2TokenBalance)])
370+ if ((sellOnPuzzle == sellOnPuzzle))
371+ then {
372+ let finalAmount = (wavesBalance(this).available - initialAssetid1Balance)
373+ if ((finalAmount == finalAmount))
374+ then if ((amount >= finalAmount))
375+ then throw("arb not successful!")
376+ else [ScriptTransfer(admin, finalAmount, unit)]
377+ else throw("Strict value is not equal to itself.")
378+ }
379+ else throw("Strict value is not equal to itself.")
380+ }
381+ else throw("Strict value is not equal to itself.")
382+ }
383+ else throw("Strict value is not equal to itself.")
384+ }
385+ else throw("Strict value is not equal to itself.")
386+ }
387+ else throw("Strict value is not equal to itself.")
388+ }
389+ else throw("Strict value is not equal to itself.")
390+ }
391+ else throw("Strict value is not equal to itself.")
392+ }
393+ }
394+
395+
396+
397+@Callable(i)
287398 func WxSwopArb_1 (wx_pool,assetid1,swop_pool,assetid2,assetlp) = {
288399 let amount = i.payments[0].amount
289400 let wxPool = addressFromStringValue(wx_pool)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let admin = addressFromStringValue("3PEfqmyhNbXgoqonT11LSLxazwJAAvAeDuk")
55
66 @Callable(i)
77 func arb1 (pool_assetid1,assetid1,pool_assetid2,assetid2) = if ((i.caller != admin))
88 then throw("Noway")
99 else {
1010 let ASSET1 = fromBase58String(assetid1)
1111 let ASSET2 = fromBase58String(assetid2)
1212 let POOL_ASSET1 = addressFromStringValue(pool_assetid1)
1313 let POOL_ASSET2 = addressFromStringValue(pool_assetid2)
1414 let AMOUNT = i.payments[0].amount
1515 let swap1 = invoke(POOL_ASSET2, "swap", [assetid2, 1], [AttachedPayment(ASSET1, AMOUNT)])
1616 if ((swap1 == swap1))
1717 then {
1818 let MY_ASSET2 = assetBalance(this, ASSET2)
1919 let swap2 = invoke(POOL_ASSET1, "exchange", [1], [AttachedPayment(ASSET2, MY_ASSET2)])
2020 if ((swap2 == swap2))
2121 then {
2222 let MY_ASSET1 = assetBalance(this, ASSET1)
2323 if ((AMOUNT > MY_ASSET1))
2424 then throw("It's a failed")
2525 else [ScriptTransfer(admin, MY_ASSET1, ASSET1)]
2626 }
2727 else throw("Strict value is not equal to itself.")
2828 }
2929 else throw("Strict value is not equal to itself.")
3030 }
3131
3232
3333
3434 @Callable(i)
3535 func arb2 (pool_assetid1,assetid1,pool_assetid2,assetid2) = if ((i.caller != admin))
3636 then throw("Noway")
3737 else {
3838 let ASSET1 = fromBase58String(assetid1)
3939 let ASSET2 = fromBase58String(assetid2)
4040 let POOL_ASSET1 = addressFromStringValue(pool_assetid1)
4141 let POOL_ASSET2 = addressFromStringValue(pool_assetid2)
4242 let AMOUNT = i.payments[0].amount
4343 let swap1 = invoke(POOL_ASSET1, "exchange", [1], [AttachedPayment(ASSET1, AMOUNT)])
4444 if ((swap1 == swap1))
4545 then {
4646 let MY_ASSET2 = assetBalance(this, ASSET2)
4747 let swap2 = invoke(POOL_ASSET2, "swap", [assetid1, 1], [AttachedPayment(ASSET2, MY_ASSET2)])
4848 if ((swap2 == swap2))
4949 then {
5050 let MY_ASSET1 = assetBalance(this, ASSET1)
5151 if ((AMOUNT > MY_ASSET1))
5252 then throw("It's a failed")
5353 else [ScriptTransfer(admin, MY_ASSET1, ASSET1)]
5454 }
5555 else throw("Strict value is not equal to itself.")
5656 }
5757 else throw("Strict value is not equal to itself.")
5858 }
5959
6060
6161
6262 @Callable(i)
6363 func WxPuzzleArb_1 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
6464 let amount = i.payments[0].amount
6565 let wxPool = addressFromStringValue(wx_pool)
6666 let Assetid1 = fromBase58String(assetid1)
6767 let Assetlp = fromBase58String(assetlp)
6868 let puzzlePool = addressFromStringValue(puzzle_pool)
6969 if ((i.caller != admin))
7070 then throw("Noway")
7171 else {
7272 let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
7373 if ((initialAssetid2Balance == initialAssetid2Balance))
7474 then {
7575 let buyOnPuzzle = invoke(puzzlePool, "swap", [assetid2, 1], [AttachedPayment(Assetid1, amount)])
7676 if ((buyOnPuzzle == buyOnPuzzle))
7777 then {
7878 let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
7979 if ((Assetid2TokenBalance == Assetid2TokenBalance))
8080 then {
8181 let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
8282 if ((putTheTokenInThePool == putTheTokenInThePool))
8383 then {
8484 let lpTokenBalance = assetBalance(this, Assetlp)
8585 if ((lpTokenBalance == lpTokenBalance))
8686 then {
8787 let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid1, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
8888 if ((sellPoolToken == sellPoolToken))
8989 then {
9090 let finalAmount = assetBalance(this, Assetid1)
9191 if ((finalAmount == finalAmount))
9292 then if ((amount >= finalAmount))
9393 then throw("arb not successful!")
9494 else [ScriptTransfer(admin, finalAmount, Assetid1)]
9595 else throw("Strict value is not equal to itself.")
9696 }
9797 else throw("Strict value is not equal to itself.")
9898 }
9999 else throw("Strict value is not equal to itself.")
100100 }
101101 else throw("Strict value is not equal to itself.")
102102 }
103103 else throw("Strict value is not equal to itself.")
104104 }
105105 else throw("Strict value is not equal to itself.")
106106 }
107107 else throw("Strict value is not equal to itself.")
108108 }
109109 }
110110
111111
112112
113113 @Callable(i)
114114 func WxPuzzleArb_2 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
115115 let amount = i.payments[0].amount
116116 let wxPool = addressFromStringValue(wx_pool)
117117 let Assetid1 = fromBase58String(assetid1)
118118 let Assetlp = fromBase58String(assetlp)
119119 let puzzlePool = addressFromStringValue(puzzle_pool)
120120 if ((i.caller != admin))
121121 then throw("Noway")
122122 else {
123123 let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
124124 if ((initialAssetid2Balance == initialAssetid2Balance))
125125 then {
126126 let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(Assetid1, amount)])
127127 if ((putTheTokenInThePool == putTheTokenInThePool))
128128 then {
129129 let lpTokenBalance = assetBalance(this, Assetlp)
130130 if ((lpTokenBalance == lpTokenBalance))
131131 then {
132132 let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid2, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
133133 if ((sellPoolToken == sellPoolToken))
134134 then {
135135 let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
136136 if ((Assetid2TokenBalance == Assetid2TokenBalance))
137137 then {
138138 let sellOnPuzzle = invoke(puzzlePool, "swap", [assetid1, 1], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
139139 if ((sellOnPuzzle == sellOnPuzzle))
140140 then {
141141 let finalAmount = assetBalance(this, Assetid1)
142142 if ((finalAmount == finalAmount))
143143 then if ((amount >= finalAmount))
144144 then throw("arb not successful!")
145145 else [ScriptTransfer(admin, finalAmount, Assetid1)]
146146 else throw("Strict value is not equal to itself.")
147147 }
148148 else throw("Strict value is not equal to itself.")
149149 }
150150 else throw("Strict value is not equal to itself.")
151151 }
152152 else throw("Strict value is not equal to itself.")
153153 }
154154 else throw("Strict value is not equal to itself.")
155155 }
156156 else throw("Strict value is not equal to itself.")
157157 }
158158 else throw("Strict value is not equal to itself.")
159159 }
160160 }
161161
162162
163163
164164 @Callable(i)
165165 func WxPuzzleArb_3 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp,Waves) = {
166166 let amount = i.payments[0].amount
167167 let wxPool = addressFromStringValue(wx_pool)
168168 let Assetid1 = fromBase58String(assetid1)
169169 let Assetlp = fromBase58String(assetlp)
170170 let puzzlePool = addressFromStringValue(puzzle_pool)
171171 if ((i.caller != admin))
172172 then throw("Noway")
173173 else {
174174 let initialAssetid2Balance = if ((Waves == true))
175175 then wavesBalance(this).available
176176 else assetBalance(this, fromBase58String(assetid2))
177177 if ((initialAssetid2Balance == initialAssetid2Balance))
178178 then {
179179 let buyOnPuzzle = if ((Waves == true))
180180 then invoke(puzzlePool, "swap", ["WAVES", 1], [AttachedPayment(Assetid1, amount)])
181181 else invoke(puzzlePool, "swap", [assetid2, 1], [AttachedPayment(Assetid1, amount)])
182182 if ((buyOnPuzzle == buyOnPuzzle))
183183 then {
184184 let Assetid2TokenBalance = if ((Waves == true))
185185 then (wavesBalance(this).available - initialAssetid2Balance)
186186 else (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
187187 if ((Assetid2TokenBalance == Assetid2TokenBalance))
188188 then {
189189 let putTheTokenInThePool = if ((Waves == true))
190190 then invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, Assetid2TokenBalance)])
191191 else invoke(wxPool, "putOneTknV2", [1, false], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
192192 if ((putTheTokenInThePool == putTheTokenInThePool))
193193 then {
194194 let lpTokenBalance = assetBalance(this, Assetlp)
195195 if ((lpTokenBalance == lpTokenBalance))
196196 then {
197197 let sellPoolToken = if ((Waves == true))
198198 then invoke(wxPool, "getOneTkn", [assetid1, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
199199 else invoke(wxPool, "getOneTknV2", [assetid1, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
200200 if ((sellPoolToken == sellPoolToken))
201201 then {
202202 let finalAmount = assetBalance(this, Assetid1)
203203 if ((finalAmount == finalAmount))
204204 then if ((amount >= finalAmount))
205205 then throw("arb not successful!")
206206 else [ScriptTransfer(admin, finalAmount, Assetid1)]
207207 else throw("Strict value is not equal to itself.")
208208 }
209209 else throw("Strict value is not equal to itself.")
210210 }
211211 else throw("Strict value is not equal to itself.")
212212 }
213213 else throw("Strict value is not equal to itself.")
214214 }
215215 else throw("Strict value is not equal to itself.")
216216 }
217217 else throw("Strict value is not equal to itself.")
218218 }
219219 else throw("Strict value is not equal to itself.")
220220 }
221221 }
222222
223223
224224
225225 @Callable(i)
226226 func WxPuzzleArb_4 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp,Waves) = {
227227 let amount = i.payments[0].amount
228228 let wxPool = addressFromStringValue(wx_pool)
229229 let Assetid1 = fromBase58String(assetid1)
230230 let Assetlp = fromBase58String(assetlp)
231231 let puzzlePool = addressFromStringValue(puzzle_pool)
232232 if ((i.caller != admin))
233233 then throw("Noway")
234234 else {
235235 let initialAssetid2Balance = if ((Waves == true))
236236 then wavesBalance(this).available
237237 else assetBalance(this, fromBase58String(assetid2))
238238 if ((initialAssetid2Balance == initialAssetid2Balance))
239239 then {
240240 let putTheTokenInThePool = if ((Waves == true))
241241 then invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(Assetid1, amount)])
242242 else invoke(wxPool, "putOneTknV2", [1, false], [AttachedPayment(Assetid1, amount)])
243243 if ((putTheTokenInThePool == putTheTokenInThePool))
244244 then {
245245 let lpTokenBalance = assetBalance(this, Assetlp)
246246 if ((lpTokenBalance == lpTokenBalance))
247247 then {
248248 let sellPoolToken = if ((Waves == true))
249249 then invoke(wxPool, "getOneTkn", ["WAVES", 1], [AttachedPayment(Assetlp, lpTokenBalance)])
250250 else invoke(wxPool, "getOneTknV2", [assetid2, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
251251 if ((sellPoolToken == sellPoolToken))
252252 then {
253253 let Assetid2TokenBalance = if ((Waves == true))
254254 then (wavesBalance(this).available - initialAssetid2Balance)
255255 else (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
256256 if ((Assetid2TokenBalance == Assetid2TokenBalance))
257257 then {
258258 let sellOnPuzzle = if ((Waves == true))
259259 then invoke(puzzlePool, "swap", [assetid1, 1], [AttachedPayment(unit, Assetid2TokenBalance)])
260260 else invoke(puzzlePool, "swap", [assetid1, 1], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
261261 if ((sellOnPuzzle == sellOnPuzzle))
262262 then {
263263 let finalAmount = assetBalance(this, Assetid1)
264264 if ((finalAmount == finalAmount))
265265 then if ((amount >= finalAmount))
266266 then throw("arb not successful!")
267267 else [ScriptTransfer(admin, finalAmount, Assetid1)]
268268 else throw("Strict value is not equal to itself.")
269269 }
270270 else throw("Strict value is not equal to itself.")
271271 }
272272 else throw("Strict value is not equal to itself.")
273273 }
274274 else throw("Strict value is not equal to itself.")
275275 }
276276 else throw("Strict value is not equal to itself.")
277277 }
278278 else throw("Strict value is not equal to itself.")
279279 }
280280 else throw("Strict value is not equal to itself.")
281281 }
282282 }
283283
284284
285285
286286 @Callable(i)
287+func WxPuzzleArb_w1 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
288+ let amount = i.payments[0].amount
289+ let wxPool = addressFromStringValue(wx_pool)
290+ let Assetlp = fromBase58String(assetlp)
291+ let puzzlePool = addressFromStringValue(puzzle_pool)
292+ if ((i.caller != admin))
293+ then throw("Noway")
294+ else {
295+ let initialAssetid1Balance = wavesBalance(this).available
296+ if ((initialAssetid1Balance == initialAssetid1Balance))
297+ then {
298+ let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
299+ if ((initialAssetid2Balance == initialAssetid2Balance))
300+ then {
301+ let buyOnPuzzle = invoke(puzzlePool, "swap", [assetid2, 1], [AttachedPayment(unit, amount)])
302+ if ((buyOnPuzzle == buyOnPuzzle))
303+ then {
304+ let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
305+ if ((Assetid2TokenBalance == Assetid2TokenBalance))
306+ then {
307+ let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
308+ if ((putTheTokenInThePool == putTheTokenInThePool))
309+ then {
310+ let lpTokenBalance = assetBalance(this, Assetlp)
311+ if ((lpTokenBalance == lpTokenBalance))
312+ then {
313+ let sellPoolToken = invoke(wxPool, "getOneTkn", ["WAVES", 1], [AttachedPayment(Assetlp, lpTokenBalance)])
314+ if ((sellPoolToken == sellPoolToken))
315+ then {
316+ let finalAmount = (wavesBalance(this).available - initialAssetid1Balance)
317+ if ((finalAmount == finalAmount))
318+ then if ((amount >= finalAmount))
319+ then throw("arb not successful!")
320+ else [ScriptTransfer(admin, finalAmount, unit)]
321+ else throw("Strict value is not equal to itself.")
322+ }
323+ else throw("Strict value is not equal to itself.")
324+ }
325+ else throw("Strict value is not equal to itself.")
326+ }
327+ else throw("Strict value is not equal to itself.")
328+ }
329+ else throw("Strict value is not equal to itself.")
330+ }
331+ else throw("Strict value is not equal to itself.")
332+ }
333+ else throw("Strict value is not equal to itself.")
334+ }
335+ else throw("Strict value is not equal to itself.")
336+ }
337+ }
338+
339+
340+
341+@Callable(i)
342+func WxPuzzleArb_w2 (wx_pool,assetid1,puzzle_pool,assetid2,assetlp) = {
343+ let amount = i.payments[0].amount
344+ let wxPool = addressFromStringValue(wx_pool)
345+ let Assetid2 = fromBase58String(assetid2)
346+ let Assetlp = fromBase58String(assetlp)
347+ let puzzlePool = addressFromStringValue(puzzle_pool)
348+ if ((i.caller != admin))
349+ then throw("Noway")
350+ else {
351+ let initialAssetid1Balance = wavesBalance(this).available
352+ if ((initialAssetid1Balance == initialAssetid1Balance))
353+ then {
354+ let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
355+ if ((initialAssetid2Balance == initialAssetid2Balance))
356+ then {
357+ let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
358+ if ((putTheTokenInThePool == putTheTokenInThePool))
359+ then {
360+ let lpTokenBalance = assetBalance(this, Assetlp)
361+ if ((lpTokenBalance == lpTokenBalance))
362+ then {
363+ let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid2, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
364+ if ((sellPoolToken == sellPoolToken))
365+ then {
366+ let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
367+ if ((Assetid2TokenBalance == Assetid2TokenBalance))
368+ then {
369+ let sellOnPuzzle = invoke(puzzlePool, "swap", ["WAVES", 1], [AttachedPayment(Assetid2, Assetid2TokenBalance)])
370+ if ((sellOnPuzzle == sellOnPuzzle))
371+ then {
372+ let finalAmount = (wavesBalance(this).available - initialAssetid1Balance)
373+ if ((finalAmount == finalAmount))
374+ then if ((amount >= finalAmount))
375+ then throw("arb not successful!")
376+ else [ScriptTransfer(admin, finalAmount, unit)]
377+ else throw("Strict value is not equal to itself.")
378+ }
379+ else throw("Strict value is not equal to itself.")
380+ }
381+ else throw("Strict value is not equal to itself.")
382+ }
383+ else throw("Strict value is not equal to itself.")
384+ }
385+ else throw("Strict value is not equal to itself.")
386+ }
387+ else throw("Strict value is not equal to itself.")
388+ }
389+ else throw("Strict value is not equal to itself.")
390+ }
391+ else throw("Strict value is not equal to itself.")
392+ }
393+ }
394+
395+
396+
397+@Callable(i)
287398 func WxSwopArb_1 (wx_pool,assetid1,swop_pool,assetid2,assetlp) = {
288399 let amount = i.payments[0].amount
289400 let wxPool = addressFromStringValue(wx_pool)
290401 let Assetid1 = fromBase58String(assetid1)
291402 let Assetlp = fromBase58String(assetlp)
292403 let SwopPool = addressFromStringValue(swop_pool)
293404 if ((i.caller != admin))
294405 then throw("Noway")
295406 else {
296407 let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
297408 if ((initialAssetid2Balance == initialAssetid2Balance))
298409 then {
299410 let buyOnSwop = invoke(SwopPool, "exchange", [1], [AttachedPayment(Assetid1, amount)])
300411 if ((buyOnSwop == buyOnSwop))
301412 then {
302413 let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
303414 if ((Assetid2TokenBalance == Assetid2TokenBalance))
304415 then {
305416 let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
306417 if ((putTheTokenInThePool == putTheTokenInThePool))
307418 then {
308419 let lpTokenBalance = assetBalance(this, Assetlp)
309420 if ((lpTokenBalance == lpTokenBalance))
310421 then {
311422 let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid1, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
312423 if ((sellPoolToken == sellPoolToken))
313424 then {
314425 let finalAmount = assetBalance(this, Assetid1)
315426 if ((finalAmount == finalAmount))
316427 then if ((amount >= finalAmount))
317428 then throw("arb not successful!")
318429 else [ScriptTransfer(admin, finalAmount, Assetid1)]
319430 else throw("Strict value is not equal to itself.")
320431 }
321432 else throw("Strict value is not equal to itself.")
322433 }
323434 else throw("Strict value is not equal to itself.")
324435 }
325436 else throw("Strict value is not equal to itself.")
326437 }
327438 else throw("Strict value is not equal to itself.")
328439 }
329440 else throw("Strict value is not equal to itself.")
330441 }
331442 else throw("Strict value is not equal to itself.")
332443 }
333444 }
334445
335446
336447
337448 @Callable(i)
338449 func WxSwopArb_2 (wx_pool,assetid1,swop_pool,assetid2,assetlp) = {
339450 let amount = i.payments[0].amount
340451 let wxPool = addressFromStringValue(wx_pool)
341452 let Assetid1 = fromBase58String(assetid1)
342453 let Assetlp = fromBase58String(assetlp)
343454 let SwopPool = addressFromStringValue(swop_pool)
344455 if ((i.caller != admin))
345456 then throw("Noway")
346457 else {
347458 let initialAssetid2Balance = assetBalance(this, fromBase58String(assetid2))
348459 if ((initialAssetid2Balance == initialAssetid2Balance))
349460 then {
350461 let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(Assetid1, amount)])
351462 if ((putTheTokenInThePool == putTheTokenInThePool))
352463 then {
353464 let lpTokenBalance = assetBalance(this, Assetlp)
354465 if ((lpTokenBalance == lpTokenBalance))
355466 then {
356467 let sellPoolToken = invoke(wxPool, "getOneTkn", [assetid2, 1], [AttachedPayment(Assetlp, lpTokenBalance)])
357468 if ((sellPoolToken == sellPoolToken))
358469 then {
359470 let Assetid2TokenBalance = (assetBalance(this, fromBase58String(assetid2)) - initialAssetid2Balance)
360471 if ((Assetid2TokenBalance == Assetid2TokenBalance))
361472 then {
362473 let sellOnSwop = invoke(SwopPool, "exchange", [1], [AttachedPayment(fromBase58String(assetid2), Assetid2TokenBalance)])
363474 if ((sellOnSwop == sellOnSwop))
364475 then {
365476 let finalAmount = assetBalance(this, Assetid1)
366477 if ((finalAmount == finalAmount))
367478 then if ((amount >= finalAmount))
368479 then throw("arb not successful!")
369480 else [ScriptTransfer(admin, finalAmount, Assetid1)]
370481 else throw("Strict value is not equal to itself.")
371482 }
372483 else throw("Strict value is not equal to itself.")
373484 }
374485 else throw("Strict value is not equal to itself.")
375486 }
376487 else throw("Strict value is not equal to itself.")
377488 }
378489 else throw("Strict value is not equal to itself.")
379490 }
380491 else throw("Strict value is not equal to itself.")
381492 }
382493 else throw("Strict value is not equal to itself.")
383494 }
384495 }
385496
386497
387498 @Verifier(tx)
388499 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
389500

github/deemru/w8io/3ef1775 
64.41 ms