tx · 9WGLsXmeadUoYRbCvVwAzqJkJjwhv4Smwxrw7uUg3K2 3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU: -0.01000000 Waves 2022.11.21 01:17 [3391437] smart account 3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU > SELF 0.00000000 Waves
{ "type": 13, "id": "9WGLsXmeadUoYRbCvVwAzqJkJjwhv4Smwxrw7uUg3K2", "fee": 1000000, "feeAssetId": null, "timestamp": 1668982724181, "version": 2, "chainId": 87, "sender": "3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU", "senderPublicKey": "FQ1hCr2qX8MTXUGfsXkucpF5apQVnwe7my5z7nFk2ggQ", "proofs": [ "2TSd5UNRahNJaBm5z8YzMHe7e9PKhLMkzgjEWMGVD8WxghzzTwSPeet8A2E2mvbUQdCN8wPCAMq5vT5eQtcGomma" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAAAwEAAAAOZ2V0QXNzZXRTdHJpbmcAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAWIFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABYgIAAAAFV0FWRVMBAAAADWdldEFzc2V0Qnl0ZXMAAAABAAAACmFzc2V0SWRTdHIDCQAAAAAAAAIFAAAACmFzc2V0SWRTdHICAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAACmFzc2V0SWRTdHIBAAAACmdldEJhbGFuY2UAAAABAAAACmFzc2V0SWRTdHIDCQAAAAAAAAIFAAAACmFzc2V0SWRTdHICAAAABVdBVkVTCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAR0aGlzCQACWQAAAAEFAAAACmFzc2V0SWRTdHIAAAABAAAAAWkBAAAABnN3YXBXWAAAAAEAAAAGYXNzZXQxBAAAAAdhbW91bnQwCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQEAAAABmFzc2V0MAkBAAAADmdldEFzc2V0U3RyaW5nAAAAAQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAOZmFjdG9yeUFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVd4W96KvlEqrosx6m8TkCW+9Km4orsJAkEEAAAACWFzc2V0MEludAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA5mYWN0b3J5QWRkcmVzcwkAASwAAAACAgAAACglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQAAAAZhc3NldDAEAAAACWFzc2V0MUludAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA5mYWN0b3J5QWRkcmVzcwkAASwAAAACAgAAACglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQAAAAZhc3NldDEEAAAACnBvb2xDb25maWcJAAS1AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAOZmFjdG9yeUFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIJWQlZCVzX18FAAAACWFzc2V0MEludAIAAAACX18FAAAACWFzc2V0MUludAIAAAAIX19jb25maWcCAAAAAl9fBAAAAAtwb29sQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApwb29sQ29uZmlnAAAAAAAAAAABBAAAAAtwb29sQXNzZXRJZAkAAZEAAAACBQAAAApwb29sQ29uZmlnAAAAAAAAAAADCQAAAgAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwAAAAAAAAAAAQAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5JyO32w==", "height": 3391437, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D1QppE9PVGvGvJmF2QeEQ4otEd6Qs5iGpkM9YpB7Np2g Next: 6AfVEVpvQe5VqCVv7BKCeL4YUpQ8hDEmD9Eoazc8LmDK Diff:
Old | New | Differences | |
---|---|---|---|
29 | 29 | let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + asset0Int) + "__") + asset1Int) + "__config")), "__") | |
30 | 30 | let poolAddress = addressFromStringValue(poolConfig[1]) | |
31 | 31 | let poolAssetId = poolConfig[3] | |
32 | - | let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
33 | - | if ((inv1 == inv1)) | |
34 | - | then { | |
35 | - | let poolTokenAmount = getBalance(poolAssetId) | |
36 | - | if ((poolTokenAmount == poolTokenAmount)) | |
37 | - | then { | |
38 | - | let asset1BalanceBefore = getBalance(asset1) | |
39 | - | if ((asset1BalanceBefore == asset1BalanceBefore)) | |
40 | - | then { | |
41 | - | let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)]) | |
42 | - | if ((inv2 == inv2)) | |
43 | - | then { | |
44 | - | let amount1 = (getBalance(asset1) - asset1BalanceBefore) | |
45 | - | if ((amount1 == amount1)) | |
46 | - | then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))] | |
47 | - | else throw("Strict value is not equal to itself.") | |
48 | - | } | |
49 | - | else throw("Strict value is not equal to itself.") | |
50 | - | } | |
51 | - | else throw("Strict value is not equal to itself.") | |
52 | - | } | |
53 | - | else throw("Strict value is not equal to itself.") | |
54 | - | } | |
55 | - | else throw("Strict value is not equal to itself.") | |
32 | + | throw(poolConfig[1]) | |
56 | 33 | } | |
57 | 34 | ||
58 | 35 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func getAssetString (assetId) = match assetId { | |
5 | 5 | case b: ByteVector => | |
6 | 6 | toBase58String(b) | |
7 | 7 | case _ => | |
8 | 8 | "WAVES" | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
13 | 13 | then unit | |
14 | 14 | else fromBase58String(assetIdStr) | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | func getBalance (assetIdStr) = if ((assetIdStr == "WAVES")) | |
18 | 18 | then wavesBalance(this).available | |
19 | 19 | else assetBalance(this, fromBase58String(assetIdStr)) | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | @Callable(i) | |
23 | 23 | func swapWX (asset1) = { | |
24 | 24 | let amount0 = i.payments[0].amount | |
25 | 25 | let asset0 = getAssetString(i.payments[0].assetId) | |
26 | 26 | let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv') | |
27 | 27 | let asset0Int = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + asset0))) | |
28 | 28 | let asset1Int = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + asset1))) | |
29 | 29 | let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + asset0Int) + "__") + asset1Int) + "__config")), "__") | |
30 | 30 | let poolAddress = addressFromStringValue(poolConfig[1]) | |
31 | 31 | let poolAssetId = poolConfig[3] | |
32 | - | let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
33 | - | if ((inv1 == inv1)) | |
34 | - | then { | |
35 | - | let poolTokenAmount = getBalance(poolAssetId) | |
36 | - | if ((poolTokenAmount == poolTokenAmount)) | |
37 | - | then { | |
38 | - | let asset1BalanceBefore = getBalance(asset1) | |
39 | - | if ((asset1BalanceBefore == asset1BalanceBefore)) | |
40 | - | then { | |
41 | - | let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)]) | |
42 | - | if ((inv2 == inv2)) | |
43 | - | then { | |
44 | - | let amount1 = (getBalance(asset1) - asset1BalanceBefore) | |
45 | - | if ((amount1 == amount1)) | |
46 | - | then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))] | |
47 | - | else throw("Strict value is not equal to itself.") | |
48 | - | } | |
49 | - | else throw("Strict value is not equal to itself.") | |
50 | - | } | |
51 | - | else throw("Strict value is not equal to itself.") | |
52 | - | } | |
53 | - | else throw("Strict value is not equal to itself.") | |
54 | - | } | |
55 | - | else throw("Strict value is not equal to itself.") | |
32 | + | throw(poolConfig[1]) | |
56 | 33 | } | |
57 | 34 | ||
58 | 35 | ||
59 | 36 | @Verifier(tx) | |
60 | 37 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
61 | 38 |
github/deemru/w8io/3ef1775 22.91 ms ◑