tx · FP46eveqk49MiTCPFBDeQsVV6SQNcp9i5pDsnSVfDs7V 3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww: -0.00600000 Waves 2022.12.14 14:05 [3425373] smart account 3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww > SELF 0.00000000 Waves
{ "type": 13, "id": "FP46eveqk49MiTCPFBDeQsVV6SQNcp9i5pDsnSVfDs7V", "fee": 600000, "feeAssetId": null, "timestamp": 1671015961632, "version": 2, "chainId": 87, "sender": "3PBy5csSnjgkieeF9dRTXN2AwG3SXBsVpww", "senderPublicKey": "ACUCrsKGyXXF5qHMFHPnQRbm5dQ619jBk5r4xWgex9TE", "proofs": [ "4QfcLwJ1p9L1unqHsrfi3rAwQfkbeewnGQrDitUMt8oBsNVZqdUc4XDdPcSMYYTHNVDWZCUbGJnPj9auaCf8Uphv" ], "script": "base64:BgIYCAISBAoCCAESBAoCCAESAwoBARIDCgEBCQAGd3hQb29sCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUFBaV2dGTlJLSEx2TTUxcHdTOTM0QzhWWjdkMkY0WjU4ZwALdXNkbkFzc2V0SWQBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRABF1c2RuQXNzZXRJZFN0cmluZwIsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAAF3VzZG5XYXZlc0xQVG9rZW5Bc3NldElkASBd521uRqbHObG0riFDU2pol6qZD59bFfq8alENHEkZIAAUbm9uUm91dGluZ1B1enpsZVBvb2wJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQRHJZUEY2aXp6YTJzWFdmZnpUUEY3ZTJGY2lyMkNNcGtpAAtzdXJmQXNzZXRJZAEgktH0SuIRASv0fureIY49xfvJ8n3Oh7LtUhnwOk4kWPUAEXN1cmZBc3NldElkU3RyaW5nAixBdDhENk5GRnBoZUNidktWbmpWb2VMTDg0RW84TlpuNm92TWFueGZMYUZXTAAYbm9uUm91dGluZ1B1enpsZVN1cmZQb29sCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUDdyOTN2WEh1dXNhZ2VOSlZHd3pxYXozV01vdEF1NDlZegAMc3dvcFN1cmZQb29sCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUExwOUtyZHJiV0F2U0ZIR0pWRWFzelV1YnF1ejNNNm1mZQQBaQECYVACAXABYQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECG3lvdSBhcmUgbm90IGFsbG93ZWQgdG8gYXJiIQQRdXNkbkJhbGFuY2VCZWZvcmUJAPAHAgUEdGhpcwULdXNkbkFzc2V0SWQDCQAAAgURdXNkbkJhbGFuY2VCZWZvcmUFEXVzZG5CYWxhbmNlQmVmb3JlBBJ3YXZlc0JhbGFuY2VCZWZvcmUICQDvBwEFBHRoaXMJYXZhaWxhYmxlAwkAAAIFEndhdmVzQmFsYW5jZUJlZm9yZQUSd2F2ZXNCYWxhbmNlQmVmb3JlBAtidXlPblB1enpsZQkA/AcEBRRub25Sb3V0aW5nUHV6emxlUG9vbAIEc3dhcAkAzAgCBQFwCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQt1c2RuQXNzZXRJZAkAaAIFAWEAwIQ9BQNuaWwDCQAAAgULYnV5T25QdXp6bGUFC2J1eU9uUHV6emxlBA53YXZlc0JhbFRvU3dhcAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBRJ3YXZlc0JhbGFuY2VCZWZvcmUDCQBnAgAABQ53YXZlc0JhbFRvU3dhcAkAAgECDm5vdGhpbmcgdG8gYXJiBBRwdXRUaGVUb2tlbkluVGhlUG9vbAkA/AcEBQZ3eFBvb2wCCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUOd2F2ZXNCYWxUb1N3YXAFA25pbAMJAAACBRRwdXRUaGVUb2tlbkluVGhlUG9vbAUUcHV0VGhlVG9rZW5JblRoZVBvb2wEDmxwVG9rZW5CYWxhbmNlCQDwBwIFBHRoaXMFF3VzZG5XYXZlc0xQVG9rZW5Bc3NldElkAwkAAAIFDmxwVG9rZW5CYWxhbmNlBQ5scFRva2VuQmFsYW5jZQQNc2VsbFBvb2xUb2tlbgkA/AcEBQZ3eFBvb2wCCWdldE9uZVRrbgkAzAgCBRF1c2RuQXNzZXRJZFN0cmluZwkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUXdXNkbldhdmVzTFBUb2tlbkFzc2V0SWQFDmxwVG9rZW5CYWxhbmNlBQNuaWwDCQAAAgUNc2VsbFBvb2xUb2tlbgUNc2VsbFBvb2xUb2tlbgQQdXNkbkJhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQt1c2RuQXNzZXRJZAMJAAACBRB1c2RuQmFsYW5jZUFmdGVyBRB1c2RuQmFsYW5jZUFmdGVyAwkAZwIAAAkAZQIFEHVzZG5CYWxhbmNlQWZ0ZXIFEXVzZG5CYWxhbmNlQmVmb3JlCQACAQIYV1UgUFVaWkxFIC0+IFdYICBbKCRfJCldBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEDYVAyAgFwAWEDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAht5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFyYiEEEXVzZG5CYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFC3VzZG5Bc3NldElkAwkAAAIFEXVzZG5CYWxhbmNlQmVmb3JlBRF1c2RuQmFsYW5jZUJlZm9yZQQSd2F2ZXNCYWxhbmNlQmVmb3JlCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQMJAAACBRJ3YXZlc0JhbGFuY2VCZWZvcmUFEndhdmVzQmFsYW5jZUJlZm9yZQQUcHV0VGhlVG9rZW5JblRoZVBvb2wJAPwHBAUGd3hQb29sAglwdXRPbmVUa24JAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3VzZG5Bc3NldElkCQBoAgUBYQDAhD0FA25pbAMJAAACBRRwdXRUaGVUb2tlbkluVGhlUG9vbAUUcHV0VGhlVG9rZW5JblRoZVBvb2wEDmxwVG9rZW5CYWxhbmNlCQDwBwIFBHRoaXMFF3VzZG5XYXZlc0xQVG9rZW5Bc3NldElkAwkAAAIFDmxwVG9rZW5CYWxhbmNlBQ5scFRva2VuQmFsYW5jZQQNc2VsbFBvb2xUb2tlbgkA/AcEBQZ3eFBvb2wCCWdldE9uZVRrbgkAzAgCBQFwCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBRd1c2RuV2F2ZXNMUFRva2VuQXNzZXRJZAUObHBUb2tlbkJhbGFuY2UFA25pbAMJAAACBQ1zZWxsUG9vbFRva2VuBQ1zZWxsUG9vbFRva2VuBA53YXZlc0JhbFRvU3dhcAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBRJ3YXZlc0JhbGFuY2VCZWZvcmUDCQBnAgAABQ53YXZlc0JhbFRvU3dhcAkAAgECDm5vdGhpbmcgdG8gYXJiBAtidXlPblB1enpsZQkA/AcEBRRub25Sb3V0aW5nUHV6emxlUG9vbAIEc3dhcAkAzAgCBRF1c2RuQXNzZXRJZFN0cmluZwkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUOd2F2ZXNCYWxUb1N3YXAFA25pbAMJAAACBQtidXlPblB1enpsZQULYnV5T25QdXp6bGUEEHVzZG5CYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwULdXNkbkFzc2V0SWQDCQAAAgUQdXNkbkJhbGFuY2VBZnRlcgUQdXNkbkJhbGFuY2VBZnRlcgMJAGcCAAAJAGUCBRB1c2RuQmFsYW5jZUFmdGVyBRF1c2RuQmFsYW5jZUJlZm9yZQkAAgECF1dVIFdYIC0+IFBVWlpMRSBbKCRfJCldBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEDYVBzAQFhAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIbeW91IGFyZSBub3QgYWxsb3dlZCB0byBhcmIhBBF1c2RuQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQt1c2RuQXNzZXRJZAMJAAACBRF1c2RuQmFsYW5jZUJlZm9yZQURdXNkbkJhbGFuY2VCZWZvcmUED2J1eVN1cmZPblB1enpsZQkA/AcEBRhub25Sb3V0aW5nUHV6emxlU3VyZlBvb2wCBHN3YXAJAMwIAgURc3VyZkFzc2V0SWRTdHJpbmcJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3VzZG5Bc3NldElkCQBoAgUBYQDAhD0FA25pbAMJAAACBQ9idXlTdXJmT25QdXp6bGUFD2J1eVN1cmZPblB1enpsZQQNc3VyZkJhbFRvU3dhcAkA8AcCBQR0aGlzBQtzdXJmQXNzZXRJZAQOc3dhcFN1cmZPblN3b3AJAPwHBAUMc3dvcFN1cmZQb29sAghleGNoYW5nZQkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULc3VyZkFzc2V0SWQFDXN1cmZCYWxUb1N3YXAFA25pbAMJAAACBQ5zd2FwU3VyZk9uU3dvcAUOc3dhcFN1cmZPblN3b3AEEHVzZG5CYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwULdXNkbkFzc2V0SWQDCQAAAgUQdXNkbkJhbGFuY2VBZnRlcgUQdXNkbkJhbGFuY2VBZnRlcgMJAGcCAAAJAGUCBRB1c2RuQmFsYW5jZUFmdGVyBRF1c2RuQmFsYW5jZUJlZm9yZQkAAgECG1NVUkYgUFVaWkxFIC0+IFNXT1AgWygkXyQpXQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBGFQczIBAWEDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAht5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFyYiEEEXVzZG5CYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFC3VzZG5Bc3NldElkAwkAAAIFEXVzZG5CYWxhbmNlQmVmb3JlBRF1c2RuQmFsYW5jZUJlZm9yZQQQc3dhcFRvU3VyZk9uU3dvcAkA/AcEBQxzd29wU3VyZlBvb2wCCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQt1c2RuQXNzZXRJZAkAaAIFAWEAwIQ9BQNuaWwDCQAAAgUQc3dhcFRvU3VyZk9uU3dvcAUQc3dhcFRvU3VyZk9uU3dvcAQNc3VyZkJhbFRvU3dhcAkA8AcCBQR0aGlzBQtzdXJmQXNzZXRJZAQQc2VsbFN1cmZPblB1enpsZQkA/AcEBRhub25Sb3V0aW5nUHV6emxlU3VyZlBvb2wCBHN3YXAJAMwIAgURdXNkbkFzc2V0SWRTdHJpbmcJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFC3N1cmZBc3NldElkBQ1zdXJmQmFsVG9Td2FwBQNuaWwDCQAAAgUQc2VsbFN1cmZPblB1enpsZQUQc2VsbFN1cmZPblB1enpsZQQQdXNkbkJhbGFuY2VBZnRlcgkA8AcCBQR0aGlzBQt1c2RuQXNzZXRJZAMJAAACBRB1c2RuQmFsYW5jZUFmdGVyBRB1c2RuQmFsYW5jZUFmdGVyAwkAZwIAAAkAZQIFEHVzZG5CYWxhbmNlQWZ0ZXIFEXVzZG5CYWxhbmNlQmVmb3JlCQACAQIbU1VSRiBTV09QIC0+IFBVWlpMRSBbKCRfJCldBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQDIEwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5p7IfIA==", "height": 3425373, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FEst8kN5tHy1MaRoz1A9fVnRj1DTV4sZAqM6xmdEXtsn Next: 2AZKaUowPVEoyiRBBAHbdh5hcTVGvowB49gAcrqktn7F Diff:
Old | New | Differences | |
---|---|---|---|
164 | 164 | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
165 | 165 | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
166 | 166 | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
167 | - | then throw("SURF | |
167 | + | then throw("SURF SWOP -> PUZZLE [($_$)]") | |
168 | 168 | else nil | |
169 | 169 | else throw("Strict value is not equal to itself.") | |
170 | 170 | } |
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 nonRoutingPuzzlePool = addressFromStringValue("3PDrYPF6izza2sXWffzTPF7e2Fcir2CMpki") | |
13 | 13 | ||
14 | 14 | let surfAssetId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
15 | 15 | ||
16 | 16 | let surfAssetIdString = "At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL" | |
17 | 17 | ||
18 | 18 | let nonRoutingPuzzleSurfPool = addressFromStringValue("3P7r93vXHuusageNJVGwzqaz3WMotAu49Yz") | |
19 | 19 | ||
20 | 20 | let swopSurfPool = addressFromStringValue("3PLp9KrdrbWAvSFHGJVEaszUubquz3M6mfe") | |
21 | 21 | ||
22 | 22 | @Callable(i) | |
23 | 23 | func aP (p,a) = if ((i.caller != this)) | |
24 | 24 | then throw("you are not allowed to arb!") | |
25 | 25 | else { | |
26 | 26 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
27 | 27 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
28 | 28 | then { | |
29 | 29 | let wavesBalanceBefore = wavesBalance(this).available | |
30 | 30 | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
31 | 31 | then { | |
32 | 32 | let buyOnPuzzle = invoke(nonRoutingPuzzlePool, "swap", [p, 1], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
33 | 33 | if ((buyOnPuzzle == buyOnPuzzle)) | |
34 | 34 | then { | |
35 | 35 | let wavesBalToSwap = (wavesBalance(this).available - wavesBalanceBefore) | |
36 | 36 | if ((0 >= wavesBalToSwap)) | |
37 | 37 | then throw("nothing to arb") | |
38 | 38 | else { | |
39 | 39 | let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(unit, wavesBalToSwap)]) | |
40 | 40 | if ((putTheTokenInThePool == putTheTokenInThePool)) | |
41 | 41 | then { | |
42 | 42 | let lpTokenBalance = assetBalance(this, usdnWavesLPTokenAssetId) | |
43 | 43 | if ((lpTokenBalance == lpTokenBalance)) | |
44 | 44 | then { | |
45 | 45 | let sellPoolToken = invoke(wxPool, "getOneTkn", [usdnAssetIdString, 1], [AttachedPayment(usdnWavesLPTokenAssetId, lpTokenBalance)]) | |
46 | 46 | if ((sellPoolToken == sellPoolToken)) | |
47 | 47 | then { | |
48 | 48 | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
49 | 49 | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
50 | 50 | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
51 | 51 | then throw("WU PUZZLE -> WX [($_$)]") | |
52 | 52 | else nil | |
53 | 53 | else throw("Strict value is not equal to itself.") | |
54 | 54 | } | |
55 | 55 | else throw("Strict value is not equal to itself.") | |
56 | 56 | } | |
57 | 57 | else throw("Strict value is not equal to itself.") | |
58 | 58 | } | |
59 | 59 | else throw("Strict value is not equal to itself.") | |
60 | 60 | } | |
61 | 61 | } | |
62 | 62 | else throw("Strict value is not equal to itself.") | |
63 | 63 | } | |
64 | 64 | else throw("Strict value is not equal to itself.") | |
65 | 65 | } | |
66 | 66 | else throw("Strict value is not equal to itself.") | |
67 | 67 | } | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | ||
71 | 71 | @Callable(i) | |
72 | 72 | func aP2 (p,a) = if ((i.caller != this)) | |
73 | 73 | then throw("you are not allowed to arb!") | |
74 | 74 | else { | |
75 | 75 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
76 | 76 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
77 | 77 | then { | |
78 | 78 | let wavesBalanceBefore = wavesBalance(this).available | |
79 | 79 | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
80 | 80 | then { | |
81 | 81 | let putTheTokenInThePool = invoke(wxPool, "putOneTkn", [1, false], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
82 | 82 | if ((putTheTokenInThePool == putTheTokenInThePool)) | |
83 | 83 | then { | |
84 | 84 | let lpTokenBalance = assetBalance(this, usdnWavesLPTokenAssetId) | |
85 | 85 | if ((lpTokenBalance == lpTokenBalance)) | |
86 | 86 | then { | |
87 | 87 | let sellPoolToken = invoke(wxPool, "getOneTkn", [p, 1], [AttachedPayment(usdnWavesLPTokenAssetId, lpTokenBalance)]) | |
88 | 88 | if ((sellPoolToken == sellPoolToken)) | |
89 | 89 | then { | |
90 | 90 | let wavesBalToSwap = (wavesBalance(this).available - wavesBalanceBefore) | |
91 | 91 | if ((0 >= wavesBalToSwap)) | |
92 | 92 | then throw("nothing to arb") | |
93 | 93 | else { | |
94 | 94 | let buyOnPuzzle = invoke(nonRoutingPuzzlePool, "swap", [usdnAssetIdString, 1], [AttachedPayment(unit, wavesBalToSwap)]) | |
95 | 95 | if ((buyOnPuzzle == buyOnPuzzle)) | |
96 | 96 | then { | |
97 | 97 | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
98 | 98 | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
99 | 99 | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
100 | 100 | then throw("WU WX -> PUZZLE [($_$)]") | |
101 | 101 | else nil | |
102 | 102 | else throw("Strict value is not equal to itself.") | |
103 | 103 | } | |
104 | 104 | else throw("Strict value is not equal to itself.") | |
105 | 105 | } | |
106 | 106 | } | |
107 | 107 | else throw("Strict value is not equal to itself.") | |
108 | 108 | } | |
109 | 109 | else throw("Strict value is not equal to itself.") | |
110 | 110 | } | |
111 | 111 | else throw("Strict value is not equal to itself.") | |
112 | 112 | } | |
113 | 113 | else throw("Strict value is not equal to itself.") | |
114 | 114 | } | |
115 | 115 | else throw("Strict value is not equal to itself.") | |
116 | 116 | } | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | ||
120 | 120 | @Callable(i) | |
121 | 121 | func aPs (a) = if ((i.caller != this)) | |
122 | 122 | then throw("you are not allowed to arb!") | |
123 | 123 | else { | |
124 | 124 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
125 | 125 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
126 | 126 | then { | |
127 | 127 | let buySurfOnPuzzle = invoke(nonRoutingPuzzleSurfPool, "swap", [surfAssetIdString, 1], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
128 | 128 | if ((buySurfOnPuzzle == buySurfOnPuzzle)) | |
129 | 129 | then { | |
130 | 130 | let surfBalToSwap = assetBalance(this, surfAssetId) | |
131 | 131 | let swapSurfOnSwop = invoke(swopSurfPool, "exchange", [1], [AttachedPayment(surfAssetId, surfBalToSwap)]) | |
132 | 132 | if ((swapSurfOnSwop == swapSurfOnSwop)) | |
133 | 133 | then { | |
134 | 134 | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
135 | 135 | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
136 | 136 | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
137 | 137 | then throw("SURF PUZZLE -> SWOP [($_$)]") | |
138 | 138 | else nil | |
139 | 139 | else throw("Strict value is not equal to itself.") | |
140 | 140 | } | |
141 | 141 | else throw("Strict value is not equal to itself.") | |
142 | 142 | } | |
143 | 143 | else throw("Strict value is not equal to itself.") | |
144 | 144 | } | |
145 | 145 | else throw("Strict value is not equal to itself.") | |
146 | 146 | } | |
147 | 147 | ||
148 | 148 | ||
149 | 149 | ||
150 | 150 | @Callable(i) | |
151 | 151 | func aPs2 (a) = if ((i.caller != this)) | |
152 | 152 | then throw("you are not allowed to arb!") | |
153 | 153 | else { | |
154 | 154 | let usdnBalanceBefore = assetBalance(this, usdnAssetId) | |
155 | 155 | if ((usdnBalanceBefore == usdnBalanceBefore)) | |
156 | 156 | then { | |
157 | 157 | let swapToSurfOnSwop = invoke(swopSurfPool, "exchange", [1], [AttachedPayment(usdnAssetId, (a * 1000000))]) | |
158 | 158 | if ((swapToSurfOnSwop == swapToSurfOnSwop)) | |
159 | 159 | then { | |
160 | 160 | let surfBalToSwap = assetBalance(this, surfAssetId) | |
161 | 161 | let sellSurfOnPuzzle = invoke(nonRoutingPuzzleSurfPool, "swap", [usdnAssetIdString, 1], [AttachedPayment(surfAssetId, surfBalToSwap)]) | |
162 | 162 | if ((sellSurfOnPuzzle == sellSurfOnPuzzle)) | |
163 | 163 | then { | |
164 | 164 | let usdnBalanceAfter = assetBalance(this, usdnAssetId) | |
165 | 165 | if ((usdnBalanceAfter == usdnBalanceAfter)) | |
166 | 166 | then if ((0 >= (usdnBalanceAfter - usdnBalanceBefore))) | |
167 | - | then throw("SURF | |
167 | + | then throw("SURF SWOP -> PUZZLE [($_$)]") | |
168 | 168 | else nil | |
169 | 169 | else throw("Strict value is not equal to itself.") | |
170 | 170 | } | |
171 | 171 | else throw("Strict value is not equal to itself.") | |
172 | 172 | } | |
173 | 173 | else throw("Strict value is not equal to itself.") | |
174 | 174 | } | |
175 | 175 | else throw("Strict value is not equal to itself.") | |
176 | 176 | } | |
177 | 177 | ||
178 | 178 | ||
179 | 179 | @Verifier(tx) | |
180 | 180 | func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
181 | 181 |
github/deemru/w8io/3ef1775 68.21 ms ◑