tx · GFK6Pi87r65NZSS8J3hQ9RvaYMfzxizE7rWWxFUjDkD8 3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja: -0.01400000 Waves 2022.11.01 16:47 [3363479] smart account 3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja > SELF 0.00000000 Waves
{ "type": 13, "id": "GFK6Pi87r65NZSS8J3hQ9RvaYMfzxizE7rWWxFUjDkD8", "fee": 1400000, "feeAssetId": null, "timestamp": 1667310425710, "version": 2, "chainId": 87, "sender": "3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja", "senderPublicKey": "J9eh4VQXtQ56xyr9CrAWffT4jSc7Xn9x3w21a5z83Wwu", "proofs": [ "m8RaBfBLneddgJ8dYVagRhMaSfEtxsJ7ppwivC3S8TNMwYifJaqf56jeJMTccP7ZexhFzaU9NYehEEuxZ3QwiMR" ], "script": "base64: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", "height": 3363479, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Gv2bQAYSTry9ww2XnXLpTa5ZocJeNeo59jPxGPtFAPSc Next: GA1HWmw8euCTBsgE4yVAxhh2XhkpagF4jwXs3rLsVQRD Diff:
Old | New | Differences | |
---|---|---|---|
32 | 32 | throw("error while swapping") | |
33 | 33 | } | |
34 | 34 | if ((resultAmount == resultAmount)) | |
35 | - | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes( | |
35 | + | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes(asset0))] | |
36 | 36 | else throw("Strict value is not equal to itself.") | |
37 | 37 | } | |
38 | 38 | else throw("Strict value is not equal to itself.") |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES")) | |
5 | 5 | then unit | |
6 | 6 | else fromBase58String(assetIdStr) | |
7 | 7 | ||
8 | 8 | ||
9 | 9 | func getBalance (assetIdStr) = if ((assetIdStr == "WAVES")) | |
10 | 10 | then wavesBalance(this).available | |
11 | 11 | else assetBalance(this, fromBase58String(assetIdStr)) | |
12 | 12 | ||
13 | 13 | ||
14 | 14 | @Callable(i) | |
15 | 15 | func swap (asset0,asset1,pool0,pool1,amount0) = { | |
16 | 16 | let balanceBefore = getBalance(asset1) | |
17 | 17 | if ((balanceBefore == balanceBefore)) | |
18 | 18 | then { | |
19 | 19 | let inv1 = invoke(addressFromStringValue(pool0), "swap", [asset1, 0], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
20 | 20 | if ((inv1 == inv1)) | |
21 | 21 | then { | |
22 | 22 | let amount1 = (getBalance(asset1) - balanceBefore) | |
23 | 23 | if ((amount1 == amount1)) | |
24 | 24 | then { | |
25 | 25 | let inv2 = invoke(addressFromStringValue(pool1), "swap", [asset0, 0], [AttachedPayment(getAssetBytes(asset1), amount1)]) | |
26 | 26 | if ((inv2 == inv2)) | |
27 | 27 | then { | |
28 | 28 | let resultAmount = match inv2 { | |
29 | 29 | case x: Int => | |
30 | 30 | x | |
31 | 31 | case _ => | |
32 | 32 | throw("error while swapping") | |
33 | 33 | } | |
34 | 34 | if ((resultAmount == resultAmount)) | |
35 | - | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes( | |
35 | + | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes(asset0))] | |
36 | 36 | else throw("Strict value is not equal to itself.") | |
37 | 37 | } | |
38 | 38 | else throw("Strict value is not equal to itself.") | |
39 | 39 | } | |
40 | 40 | else throw("Strict value is not equal to itself.") | |
41 | 41 | } | |
42 | 42 | else throw("Strict value is not equal to itself.") | |
43 | 43 | } | |
44 | 44 | else throw("Strict value is not equal to itself.") | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | @Verifier(tx) | |
49 | 49 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
50 | 50 |
github/deemru/w8io/3ef1775 22.23 ms ◑