tx · 4xWYcKMHvhQpmPwRQRNYUmBphHNBWa2VkVHVLRc2dKyG 3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww: -0.00200000 Waves 2022.12.13 18:55 [3424232] smart account 3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww > SELF 0.00000000 Waves
{ "type": 13, "id": "4xWYcKMHvhQpmPwRQRNYUmBphHNBWa2VkVHVLRc2dKyG", "fee": 200000, "feeAssetId": null, "timestamp": 1670946961782, "version": 2, "chainId": 87, "sender": "3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww", "senderPublicKey": "ACUCrsKGyXXF5qHMFHPnQRbm5dQ619jBk5r4xWgex9TE", "proofs": [ "4S9Qazm5LuEKBJG8JAV2Xq6ZJXmbgXT1h5WPEspAhYu2SUz2NX1uZdaq3yu3xzWrz1stbHg2maMZvxVVU78uAAQ6" ], "script": "base64:BgIICAISBAoCCAEFAAZ3eFBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQUFpXZ0ZOUktITHZNNTFwd1M5MzRDOFZaN2QyRjRaNThnAAt1c2RuQXNzZXRJZAEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEAEXVzZG5Bc3NldElkU3RyaW5nAixERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAXdXNkbldhdmVzTFBUb2tlbkFzc2V0SWQBIF3nbW5Gpsc5sbSuIUNTamiXqpkPn1sV+rxqUQ0cSRkgABFyb3V0aW5nUHV6emxlUG9vbAkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BHRkh6VkdUNE5UaWd3Q0tQMU5jd29Ya29kVlp3dkJ1dVUBAWkBAmFQAgFwAWEDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAht5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFyYiEEEXVzZG5CYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFC3VzZG5Bc3NldElkAwkAAAIFEXVzZG5CYWxhbmNlQmVmb3JlBRF1c2RuQmFsYW5jZUJlZm9yZQQSd2F2ZXNCYWxhbmNlQmVmb3JlCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBRJ3YXZlc0JhbGFuY2VCZWZvcmUFEndhdmVzQmFsYW5jZUJlZm9yZQQLYnV5T25QdXp6bGUJAPwHBAURcm91dGluZ1B1enpsZVBvb2wCBHN3YXAJAMwIAgUBcAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULdXNkbkFzc2V0SWQJAGgCBQFhAMCEPQUDbmlsAwkAAAIFC2J1eU9uUHV6emxlBQtidXlPblB1enpsZQQOd2F2ZXNCYWxUb1N3YXAJAGUCBRJ3YXZlc0JhbGFuY2VCZWZvcmUICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAZwIAAAUOd2F2ZXNCYWxUb1N3YXAJAAIBAg5ub3RoaW5nIHRvIGFyYgQUcHV0VGhlVG9rZW5JblRoZVBvb2wJAPwHBAUGd3hQb29sAglwdXRPbmVUa24JAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFDndhdmVzQmFsVG9Td2FwBQNuaWwDCQAAAgUUcHV0VGhlVG9rZW5JblRoZVBvb2wFFHB1dFRoZVRva2VuSW5UaGVQb29sBA5scFRva2VuQmFsYW5jZQkA8AcCBQR0aGlzBRd1c2RuV2F2ZXNMUFRva2VuQXNzZXRJZAMJAAACBQ5scFRva2VuQmFsYW5jZQUObHBUb2tlbkJhbGFuY2UEDXNlbGxQb29sVG9rZW4JAPwHBAUGd3hQb29sAglnZXRPbmVUa24JAMwIAgURdXNkbkFzc2V0SWRTdHJpbmcJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFF3VzZG5XYXZlc0xQVG9rZW5Bc3NldElkBQ5scFRva2VuQmFsYW5jZQUDbmlsAwkAAAIFDXNlbGxQb29sVG9rZW4FDXNlbGxQb29sVG9rZW4EEHVzZG5CYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwULdXNkbkFzc2V0SWQDCQAAAgUQdXNkbkJhbGFuY2VBZnRlcgUQdXNkbkJhbGFuY2VBZnRlcgMJAGcCAAAJAGUCBRB1c2RuQmFsYW5jZUFmdGVyBRF1c2RuQmFsYW5jZUJlZm9yZQkAAgECB1soJF8kKV0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAJAMgTAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXlDZkyA", "height": 3424232, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9RWC6z8iNCqk9cTgXjbiATZbngZ2L11AxDVLNsE9bthW Next: 2LC8hMFLLj4qRsb3j36pWwXYiuXw4NnF521JK4aExJ25 Diff:
Old | New | Differences | |
---|---|---|---|
18 | 18 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
19 | 19 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
20 | 20 | then { | |
21 | - | let | |
22 | - | if (( | |
21 | + | let wavesBalanceBefore = wavesBalance(this).available | |
22 | + | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
23 | 23 | then { | |
24 | - | let | |
25 | - | if (( | |
26 | - | then | |
27 | - | | |
28 | - | | |
29 | - | | |
30 | - | | |
31 | - | let | |
32 | - | if (( | |
24 | + | let buyOnPuzzle = invoke(routingPuzzlePool, "swap", [p, 1], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
25 | + | if ((buyOnPuzzle == buyOnPuzzle)) | |
26 | + | then { | |
27 | + | let wavesBalToSwap = (wavesBalanceBefore - wavesBalance(this).available) | |
28 | + | if ((0 >= wavesBalToSwap)) | |
29 | + | then throw("nothing to arb") | |
30 | + | else { | |
31 | + | let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, wavesBalToSwap)]) | |
32 | + | if ((putTheTokenInThePool == putTheTokenInThePool)) | |
33 | 33 | then { | |
34 | - | let | |
35 | - | if (( | |
34 | + | let lpTokenBalance = assetBalance(this, usdnWavesLPTokenAssetId) | |
35 | + | if ((lpTokenBalance == lpTokenBalance)) | |
36 | 36 | then { | |
37 | - | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
38 | - | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
39 | - | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
40 | - | then throw("[($_$)]") | |
41 | - | else nil | |
37 | + | let sellPoolToken = invoke(wxPool, "getOneTkn", [usdnAssetIdString, 1], [AttachedPayment(usdnWavesLPTokenAssetId, lpTokenBalance)]) | |
38 | + | if ((sellPoolToken == sellPoolToken)) | |
39 | + | then { | |
40 | + | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
41 | + | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
42 | + | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
43 | + | then throw("[($_$)]") | |
44 | + | else nil | |
45 | + | else throw("Strict value is not equal to itself.") | |
46 | + | } | |
42 | 47 | else throw("Strict value is not equal to itself.") | |
43 | 48 | } | |
44 | 49 | else throw("Strict value is not equal to itself.") | |
45 | 50 | } | |
46 | 51 | else throw("Strict value is not equal to itself.") | |
47 | 52 | } | |
48 | - | else throw("Strict value is not equal to itself.") | |
49 | 53 | } | |
54 | + | else throw("Strict value is not equal to itself.") | |
50 | 55 | } | |
51 | 56 | else throw("Strict value is not equal to itself.") | |
52 | 57 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let wxPool = addressFromStringValue("3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g") | |
5 | 5 | ||
6 | 6 | let usdnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
7 | 7 | ||
8 | 8 | let usdnAssetIdString = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" | |
9 | 9 | ||
10 | 10 | let usdnWavesLPTokenAssetId = base58'7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1' | |
11 | 11 | ||
12 | 12 | let routingPuzzlePool = addressFromStringValue("3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU") | |
13 | 13 | ||
14 | 14 | @Callable(i) | |
15 | 15 | func aP (p,a) = if ((i.caller != this)) | |
16 | 16 | then throw("you are not allowed to arb!") | |
17 | 17 | else { | |
18 | 18 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
19 | 19 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
20 | 20 | then { | |
21 | - | let | |
22 | - | if (( | |
21 | + | let wavesBalanceBefore = wavesBalance(this).available | |
22 | + | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
23 | 23 | then { | |
24 | - | let | |
25 | - | if (( | |
26 | - | then | |
27 | - | | |
28 | - | | |
29 | - | | |
30 | - | | |
31 | - | let | |
32 | - | if (( | |
24 | + | let buyOnPuzzle = invoke(routingPuzzlePool, "swap", [p, 1], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
25 | + | if ((buyOnPuzzle == buyOnPuzzle)) | |
26 | + | then { | |
27 | + | let wavesBalToSwap = (wavesBalanceBefore - wavesBalance(this).available) | |
28 | + | if ((0 >= wavesBalToSwap)) | |
29 | + | then throw("nothing to arb") | |
30 | + | else { | |
31 | + | let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, wavesBalToSwap)]) | |
32 | + | if ((putTheTokenInThePool == putTheTokenInThePool)) | |
33 | 33 | then { | |
34 | - | let | |
35 | - | if (( | |
34 | + | let lpTokenBalance = assetBalance(this, usdnWavesLPTokenAssetId) | |
35 | + | if ((lpTokenBalance == lpTokenBalance)) | |
36 | 36 | then { | |
37 | - | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
38 | - | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
39 | - | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
40 | - | then throw("[($_$)]") | |
41 | - | else nil | |
37 | + | let sellPoolToken = invoke(wxPool, "getOneTkn", [usdnAssetIdString, 1], [AttachedPayment(usdnWavesLPTokenAssetId, lpTokenBalance)]) | |
38 | + | if ((sellPoolToken == sellPoolToken)) | |
39 | + | then { | |
40 | + | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
41 | + | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
42 | + | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
43 | + | then throw("[($_$)]") | |
44 | + | else nil | |
45 | + | else throw("Strict value is not equal to itself.") | |
46 | + | } | |
42 | 47 | else throw("Strict value is not equal to itself.") | |
43 | 48 | } | |
44 | 49 | else throw("Strict value is not equal to itself.") | |
45 | 50 | } | |
46 | 51 | else throw("Strict value is not equal to itself.") | |
47 | 52 | } | |
48 | - | else throw("Strict value is not equal to itself.") | |
49 | 53 | } | |
54 | + | else throw("Strict value is not equal to itself.") | |
50 | 55 | } | |
51 | 56 | else throw("Strict value is not equal to itself.") | |
52 | 57 | } | |
53 | 58 | else throw("Strict value is not equal to itself.") | |
54 | 59 | } | |
55 | 60 | ||
56 | 61 | ||
57 | 62 | @Verifier(tx) | |
58 | 63 | func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
59 | 64 |
github/deemru/w8io/3ef1775 58.12 ms ◑