2023.05.07 19:11 [3633160] smart account 3P6RwyRZ6NQtMfQPHqbVG7odY4RVSUHucp7 > SELF 0.00000000 Waves
{ "type": 13, "id": "81oLHX8chK2diphsLTawioq2wT2a1xWjUW2mYnEKGVbu", "fee": 1000000, "feeAssetId": null, "timestamp": 1683475916786, "version": 2, "chainId": 87, "sender": "3P6RwyRZ6NQtMfQPHqbVG7odY4RVSUHucp7", "senderPublicKey": "PcUP25ZvTtVkYcVzURK5tsMvL5toqNmtYsTkvMXuJpQ", "proofs": [ "4ouS4qfLCpdbGW5w7WWeuzvdqq4TEmQzN1QdLPeHinN24koL1eYrVF1C1ziV8CyzLJELjfU3vAp7Ps8P3ccJpkc4" ], "script": "base64:BgL6AQgCEgASABIAEgAiCmVnZ0Fzc2V0SWQiDHNwaWNlQXNzZXRJZCIKbmF0aXZlUG9vbCIVcHV6emxlU3BpY2VFZ2dYdG5Qb29sIhZwdXp6bGVFZ2dXYXZlc01lZ2FQb29sIgVhc0ludCIFdmFsdWUiByRtYXRjaDAiA2ludCIGc3RyaW5nIhVkaXJlY3RUbkJldHdlZW5Bc3NldHMiBGFtbTEiBmFzc2V0MSIEYW1tMiIGYXNzZXQyIgh0bkFtb3VudCICdHgiB2ludm9rZTEiB2ludm9rZTIiCGRpcmVjdFRuIg1taWRkbGVBc3NldElkIgFpIgZhbW91bnQIAAFhAixDMWlXc0tHcUx3akhVbmRpUTdpWHBkbVB1bTlQZUNERmZ5WEJkSkpvc0RSUwABYgIsNmpzbU1zTWZwSldxeFNHeXhya1R2SDV6WnlhUWQyUDZWRVk5ZkJ6MlQ4RkIAAWMCIzNQQVpzVGlkU0pIam8xeHhxWTl0M1J2dWsxNDR1M0VIUVhRAAFkAiMzUFJHOUxmVzZRWnhLZFRXQjhlRWRVaWEyYkg2Ykh2eXg3eQABZQIjM1BEcllQRjZpenphMnNYV2ZmelRQRjdlMkZjaXIyQ01wa2kBAWYBAWcEAWgFAWcDCQABAgUBaAIDSW50BAFpBQFoBQFpAwkAAQIFAWgCBlN0cmluZwQBagUBaAkAAgEJAKwCAgIrV3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludCwgYnV0IGdvdCBzdHJpbmc6IAUBagkAAgECGVdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBAWsGAWwBbQFuAW8BcAFxBAFyCQEBZgEJAP0HBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBbAIEc3dhcAkAzAgCBQFtCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAW8FAXAFA25pbAMJAAACBQFyBQFyBAFzCQEBZgEJAP0HBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBbgIEc3dhcAkAzAgCBQFvCQDMCAIAAAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAW0FAXIFA25pbAMJAAACBQFzBQFzAwkAZgIFAXAFAXMJAAIBCQCsAgICE1J1bm5pbmcgaW4gYSBsb3NzOiAJAKQDAQkAZQIFAXMFAXAJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcQkArAICAhRTVUNDRVNTX2RpcmVjdFdBVkVTXwkApAMBCQBlAgUBcwUBcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQF0BQFsAW4BcAFxAXUEAXIJAQFmAQkA/QcECQERQGV4dHJOYXRpdmUoMTA2MikBBQFsAgRzd2FwCQDMCAIFAXUJAMwIAgAABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFAXAFA25pbAMJAAACBQFyBQFyBAFzCQEBZgEJAP0HBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBbgIEc3dhcAkAzAgCAgVXQVZFUwkAzAgCAAAFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQF1BQFyBQNuaWwDCQAAAgUBcwUBcwMJAGYCBQFwBQFzCQACAQkArAICAhNSdW5uaW5nIGluIGEgbG9zczogCQCkAwEJAGUCBQFzBQFwCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXEJAKwCAgIUU1VDQ0VTU19kaXJlY3RXQVZFU18JAKQDAQkAZQIFAXMFAXAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQBdgETU3BpY2VFZ2dTcGljZVB1enpsZQAEAXcAwPD1CwkBAWsGBQFjBQFiBQFkBQFhBQF3CQDYBAEIBQF2DXRyYW5zYWN0aW9uSWQBdgEbU3BpY2VFZ2dTcGljZVB1enpsZUludmVydGVkAAQBdwDA8PULCQEBawYFAWMFAWEFAWQFAWIFAXcJANgEAQgFAXYNdHJhbnNhY3Rpb25JZAF2AQ1XYXZlc0VnZ1dhdmVzAAQBdwDA8PULCQEBdAUFAWMFAWUFAXcJANgEAQgFAXYNdHJhbnNhY3Rpb25JZAUBYQF2ARVXYXZlc0VnZ1dhdmVzSW52ZXJ0ZWQABAF3AMDw9QsJAQF0BQUBYwUBZQUBdwkA2AQBCAUBdg10cmFuc2FjdGlvbklkBQFhADefTeQ=", "height": 3633160, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cnb5jCa74V9mzoYvkfrkRccszY9GdmFk4yxqkEAEjmtK Next: DK2T3vJ7BLHjA4muYxnpZYuwN34u3gzbxwtfPh8eqGpq Diff:
Old | New | Differences | |
---|---|---|---|
8 | 8 | let nativePool = "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ" | |
9 | 9 | ||
10 | 10 | let puzzleSpiceEggXtnPool = "3PRG9LfW6QZxKdTWB8eEdUia2bH6bHvyx7y" | |
11 | + | ||
12 | + | let puzzleEggWavesMegaPool = "3PDrYPF6izza2sXWffzTPF7e2Fcir2CMpki" | |
11 | 13 | ||
12 | 14 | func asInt (value) = match value { | |
13 | 15 | case int: Int => | |
27 | 29 | if ((invoke2 == invoke2)) | |
28 | 30 | then if ((tnAmount > invoke2)) | |
29 | 31 | then throw(("Running in a loss: " + toString((invoke2 - tnAmount)))) | |
30 | - | else [StringEntry(tx, ("SUCCESS_directTn_" + toString((invoke2 - tnAmount))))] | |
32 | + | else [StringEntry(tx, ("SUCCESS_directWAVES_" + toString((invoke2 - tnAmount))))] | |
33 | + | else throw("Strict value is not equal to itself.") | |
34 | + | } | |
35 | + | else throw("Strict value is not equal to itself.") | |
36 | + | } | |
37 | + | ||
38 | + | ||
39 | + | func directTn (amm1,amm2,tnAmount,tx,middleAssetId) = { | |
40 | + | let invoke1 = asInt(reentrantInvoke(addressFromStringValue(amm1), "swap", [middleAssetId, 0], [AttachedPayment(unit, tnAmount)])) | |
41 | + | if ((invoke1 == invoke1)) | |
42 | + | then { | |
43 | + | let invoke2 = asInt(reentrantInvoke(addressFromStringValue(amm2), "swap", ["WAVES", 0], [AttachedPayment(fromBase58String(middleAssetId), invoke1)])) | |
44 | + | if ((invoke2 == invoke2)) | |
45 | + | then if ((tnAmount > invoke2)) | |
46 | + | then throw(("Running in a loss: " + toString((invoke2 - tnAmount)))) | |
47 | + | else [StringEntry(tx, ("SUCCESS_directWAVES_" + toString((invoke2 - tnAmount))))] | |
31 | 48 | else throw("Strict value is not equal to itself.") | |
32 | 49 | } | |
33 | 50 | else throw("Strict value is not equal to itself.") | |
49 | 66 | } | |
50 | 67 | ||
51 | 68 | ||
69 | + | ||
70 | + | @Callable(i) | |
71 | + | func WavesEggWaves () = { | |
72 | + | let amount = 25000000 | |
73 | + | directTn(nativePool, puzzleEggWavesMegaPool, amount, toBase58String(i.transactionId), eggAssetId) | |
74 | + | } | |
75 | + | ||
76 | + | ||
77 | + | ||
78 | + | @Callable(i) | |
79 | + | func WavesEggWavesInverted () = { | |
80 | + | let amount = 25000000 | |
81 | + | directTn(nativePool, puzzleEggWavesMegaPool, amount, toBase58String(i.transactionId), eggAssetId) | |
82 | + | } | |
83 | + | ||
84 | + |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let eggAssetId = "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS" | |
5 | 5 | ||
6 | 6 | let spiceAssetId = "6jsmMsMfpJWqxSGyxrkTvH5zZyaQd2P6VEY9fBz2T8FB" | |
7 | 7 | ||
8 | 8 | let nativePool = "3PAZsTidSJHjo1xxqY9t3Rvuk144u3EHQXQ" | |
9 | 9 | ||
10 | 10 | let puzzleSpiceEggXtnPool = "3PRG9LfW6QZxKdTWB8eEdUia2bH6bHvyx7y" | |
11 | + | ||
12 | + | let puzzleEggWavesMegaPool = "3PDrYPF6izza2sXWffzTPF7e2Fcir2CMpki" | |
11 | 13 | ||
12 | 14 | func asInt (value) = match value { | |
13 | 15 | case int: Int => | |
14 | 16 | int | |
15 | 17 | case string: String => | |
16 | 18 | throw(("Wrong type, expected: Int, but got string: " + string)) | |
17 | 19 | case _ => | |
18 | 20 | throw("Wrong type, expected: Int") | |
19 | 21 | } | |
20 | 22 | ||
21 | 23 | ||
22 | 24 | func directTnBetweenAssets (amm1,asset1,amm2,asset2,tnAmount,tx) = { | |
23 | 25 | let invoke1 = asInt(reentrantInvoke(addressFromStringValue(amm1), "swap", [asset1, 0], [AttachedPayment(fromBase58String(asset2), tnAmount)])) | |
24 | 26 | if ((invoke1 == invoke1)) | |
25 | 27 | then { | |
26 | 28 | let invoke2 = asInt(reentrantInvoke(addressFromStringValue(amm2), "swap", [asset2, 0], [AttachedPayment(fromBase58String(asset1), invoke1)])) | |
27 | 29 | if ((invoke2 == invoke2)) | |
28 | 30 | then if ((tnAmount > invoke2)) | |
29 | 31 | then throw(("Running in a loss: " + toString((invoke2 - tnAmount)))) | |
30 | - | else [StringEntry(tx, ("SUCCESS_directTn_" + toString((invoke2 - tnAmount))))] | |
32 | + | else [StringEntry(tx, ("SUCCESS_directWAVES_" + toString((invoke2 - tnAmount))))] | |
33 | + | else throw("Strict value is not equal to itself.") | |
34 | + | } | |
35 | + | else throw("Strict value is not equal to itself.") | |
36 | + | } | |
37 | + | ||
38 | + | ||
39 | + | func directTn (amm1,amm2,tnAmount,tx,middleAssetId) = { | |
40 | + | let invoke1 = asInt(reentrantInvoke(addressFromStringValue(amm1), "swap", [middleAssetId, 0], [AttachedPayment(unit, tnAmount)])) | |
41 | + | if ((invoke1 == invoke1)) | |
42 | + | then { | |
43 | + | let invoke2 = asInt(reentrantInvoke(addressFromStringValue(amm2), "swap", ["WAVES", 0], [AttachedPayment(fromBase58String(middleAssetId), invoke1)])) | |
44 | + | if ((invoke2 == invoke2)) | |
45 | + | then if ((tnAmount > invoke2)) | |
46 | + | then throw(("Running in a loss: " + toString((invoke2 - tnAmount)))) | |
47 | + | else [StringEntry(tx, ("SUCCESS_directWAVES_" + toString((invoke2 - tnAmount))))] | |
31 | 48 | else throw("Strict value is not equal to itself.") | |
32 | 49 | } | |
33 | 50 | else throw("Strict value is not equal to itself.") | |
34 | 51 | } | |
35 | 52 | ||
36 | 53 | ||
37 | 54 | @Callable(i) | |
38 | 55 | func SpiceEggSpicePuzzle () = { | |
39 | 56 | let amount = 25000000 | |
40 | 57 | directTnBetweenAssets(nativePool, spiceAssetId, puzzleSpiceEggXtnPool, eggAssetId, amount, toBase58String(i.transactionId)) | |
41 | 58 | } | |
42 | 59 | ||
43 | 60 | ||
44 | 61 | ||
45 | 62 | @Callable(i) | |
46 | 63 | func SpiceEggSpicePuzzleInverted () = { | |
47 | 64 | let amount = 25000000 | |
48 | 65 | directTnBetweenAssets(nativePool, eggAssetId, puzzleSpiceEggXtnPool, spiceAssetId, amount, toBase58String(i.transactionId)) | |
49 | 66 | } | |
50 | 67 | ||
51 | 68 | ||
69 | + | ||
70 | + | @Callable(i) | |
71 | + | func WavesEggWaves () = { | |
72 | + | let amount = 25000000 | |
73 | + | directTn(nativePool, puzzleEggWavesMegaPool, amount, toBase58String(i.transactionId), eggAssetId) | |
74 | + | } | |
75 | + | ||
76 | + | ||
77 | + | ||
78 | + | @Callable(i) | |
79 | + | func WavesEggWavesInverted () = { | |
80 | + | let amount = 25000000 | |
81 | + | directTn(nativePool, puzzleEggWavesMegaPool, amount, toBase58String(i.transactionId), eggAssetId) | |
82 | + | } | |
83 | + | ||
84 | + |
github/deemru/w8io/786bc32 20.46 ms ◑