tx · GA1HWmw8euCTBsgE4yVAxhh2XhkpagF4jwXs3rLsVQRD 3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja: -0.01400000 Waves 2022.11.04 18:42 [3367936] smart account 3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja > SELF 0.00000000 Waves
{ "type": 13, "id": "GA1HWmw8euCTBsgE4yVAxhh2XhkpagF4jwXs3rLsVQRD", "fee": 1400000, "feeAssetId": null, "timestamp": 1667576605058, "version": 2, "chainId": 87, "sender": "3PJcupzAhUyuBAqEWyKGccGXN9sM2K5mHja", "senderPublicKey": "J9eh4VQXtQ56xyr9CrAWffT4jSc7Xn9x3w21a5z83Wwu", "proofs": [ "5Z36stZp9ztuUTN5b7ZALxR2A4pFfzqHsyVC5fKtZKGmC7LG6EuknCLTFaTTZoYaUGfSESPxPA9FM37pEJpwJWbV" ], "script": "base64:AAIFAAAAAAAAABQIAhIHCgUICAgIARIHCgUICAEICAAAAAIBAAAADWdldEFzc2V0Qnl0ZXMAAAABAAAACmFzc2V0SWRTdHIDCQAAAAAAAAIFAAAACmFzc2V0SWRTdHICAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAACmFzc2V0SWRTdHIBAAAACmdldEJhbGFuY2UAAAABAAAACmFzc2V0SWRTdHIDCQAAAAAAAAIFAAAACmFzc2V0SWRTdHICAAAABVdBVkVTCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQkAA/AAAAACBQAAAAR0aGlzCQACWQAAAAEFAAAACmFzc2V0SWRTdHIAAAACAAAAAWkBAAAABHN3YXAAAAAFAAAABmFzc2V0MAAAAAZhc3NldDEAAAAFcG9vbDAAAAAFcG9vbDEAAAAHYW1vdW50MAQAAAANYmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAZhc3NldDEDCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAABGludjEJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAFcG9vbDACAAAABHN3YXAJAARMAAAAAgUAAAAGYXNzZXQxCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAZhc3NldDAFAAAAB2Ftb3VudDAFAAAAA25pbAMJAAAAAAAAAgUAAAAEaW52MQUAAAAEaW52MQQAAAAHYW1vdW50MQkAAGUAAAACCQEAAAAKZ2V0QmFsYW5jZQAAAAEFAAAABmFzc2V0MQUAAAANYmFsYW5jZUJlZm9yZQMJAAAAAAAAAgUAAAAHYW1vdW50MQUAAAAHYW1vdW50MQQAAAAEaW52MgkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAVwb29sMQIAAAAEc3dhcAkABEwAAAACBQAAAAZhc3NldDAJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAABmFzc2V0MQUAAAAHYW1vdW50MQUAAAADbmlsAwkAAAAAAAACBQAAAARpbnYyBQAAAARpbnYyBAAAAAxyZXN1bHRBbW91bnQEAAAAByRtYXRjaDAFAAAABGludjIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABeAUAAAAHJG1hdGNoMAUAAAABeAkAAAIAAAABAgAAABRlcnJvciB3aGlsZSBzd2FwcGluZwMJAAAAAAAAAgUAAAAMcmVzdWx0QW1vdW50BQAAAAxyZXN1bHRBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAxyZXN1bHRBbW91bnQJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAGYXNzZXQwBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAZzd2FwV1gAAAAFAAAABmFzc2V0MAAAAAZhc3NldDEAAAAHYW1vdW50MAAAAARwb29sAAAACXBvb2xUb2tlbgQAAAANYmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAlwb29sVG9rZW4DCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAABGludjEJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAEcG9vbAIAAAAJcHV0T25lVGtuCQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgcFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAZhc3NldDAFAAAAB2Ftb3VudDAFAAAAA25pbAMJAAAAAAAAAgUAAAAEaW52MQUAAAAEaW52MQQAAAAPcG9vbFRva2VuQW1vdW50CQAAZQAAAAIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAJcG9vbFRva2VuBQAAAA1iYWxhbmNlQmVmb3JlAwkAAAAAAAACBQAAAA9wb29sVG9rZW5BbW91bnQFAAAAD3Bvb2xUb2tlbkFtb3VudAQAAAAOYmFsYW5jZUJlZm9yZTIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAGYXNzZXQxAwkAAAAAAAACBQAAAA5iYWxhbmNlQmVmb3JlMgUAAAAOYmFsYW5jZUJlZm9yZTIEAAAABGludjIJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAEcG9vbAIAAAAJZ2V0T25lVGtuCQAETAAAAAIFAAAABmFzc2V0MQkABEwAAAACAAAAAAAAAAAABQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAJcG9vbFRva2VuBQAAAA9wb29sVG9rZW5BbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAEaW52MgUAAAAEaW52MgQAAAAMcmVzdWx0QW1vdW50CQAAZQAAAAIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAGYXNzZXQxBQAAAA5iYWxhbmNlQmVmb3JlMgMJAAAAAAAAAgUAAAAMcmVzdWx0QW1vdW50BQAAAAxyZXN1bHRBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAxyZXN1bHRBbW91bnQJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAGYXNzZXQxBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleRv2fOk=", "height": 3367936, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GFK6Pi87r65NZSS8J3hQ9RvaYMfzxizE7rWWxFUjDkD8 Next: none Diff:
Old | New | Differences | |
---|---|---|---|
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | + | ||
49 | + | @Callable(i) | |
50 | + | func swapWX (asset0,asset1,amount0,pool,poolToken) = { | |
51 | + | let balanceBefore = getBalance(poolToken) | |
52 | + | if ((balanceBefore == balanceBefore)) | |
53 | + | then { | |
54 | + | let inv1 = invoke(addressFromStringValue(pool), "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
55 | + | if ((inv1 == inv1)) | |
56 | + | then { | |
57 | + | let poolTokenAmount = (getBalance(poolToken) - balanceBefore) | |
58 | + | if ((poolTokenAmount == poolTokenAmount)) | |
59 | + | then { | |
60 | + | let balanceBefore2 = getBalance(asset1) | |
61 | + | if ((balanceBefore2 == balanceBefore2)) | |
62 | + | then { | |
63 | + | let inv2 = invoke(addressFromStringValue(pool), "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolToken), poolTokenAmount)]) | |
64 | + | if ((inv2 == inv2)) | |
65 | + | then { | |
66 | + | let resultAmount = (getBalance(asset1) - balanceBefore2) | |
67 | + | if ((resultAmount == resultAmount)) | |
68 | + | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes(asset1))] | |
69 | + | else throw("Strict value is not equal to itself.") | |
70 | + | } | |
71 | + | else throw("Strict value is not equal to itself.") | |
72 | + | } | |
73 | + | else throw("Strict value is not equal to itself.") | |
74 | + | } | |
75 | + | else throw("Strict value is not equal to itself.") | |
76 | + | } | |
77 | + | else throw("Strict value is not equal to itself.") | |
78 | + | } | |
79 | + | else throw("Strict value is not equal to itself.") | |
80 | + | } | |
81 | + | ||
82 | + | ||
48 | 83 | @Verifier(tx) | |
49 | 84 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
50 | 85 |
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 | 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 | + | ||
49 | + | @Callable(i) | |
50 | + | func swapWX (asset0,asset1,amount0,pool,poolToken) = { | |
51 | + | let balanceBefore = getBalance(poolToken) | |
52 | + | if ((balanceBefore == balanceBefore)) | |
53 | + | then { | |
54 | + | let inv1 = invoke(addressFromStringValue(pool), "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)]) | |
55 | + | if ((inv1 == inv1)) | |
56 | + | then { | |
57 | + | let poolTokenAmount = (getBalance(poolToken) - balanceBefore) | |
58 | + | if ((poolTokenAmount == poolTokenAmount)) | |
59 | + | then { | |
60 | + | let balanceBefore2 = getBalance(asset1) | |
61 | + | if ((balanceBefore2 == balanceBefore2)) | |
62 | + | then { | |
63 | + | let inv2 = invoke(addressFromStringValue(pool), "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolToken), poolTokenAmount)]) | |
64 | + | if ((inv2 == inv2)) | |
65 | + | then { | |
66 | + | let resultAmount = (getBalance(asset1) - balanceBefore2) | |
67 | + | if ((resultAmount == resultAmount)) | |
68 | + | then [ScriptTransfer(i.caller, resultAmount, getAssetBytes(asset1))] | |
69 | + | else throw("Strict value is not equal to itself.") | |
70 | + | } | |
71 | + | else throw("Strict value is not equal to itself.") | |
72 | + | } | |
73 | + | else throw("Strict value is not equal to itself.") | |
74 | + | } | |
75 | + | else throw("Strict value is not equal to itself.") | |
76 | + | } | |
77 | + | else throw("Strict value is not equal to itself.") | |
78 | + | } | |
79 | + | else throw("Strict value is not equal to itself.") | |
80 | + | } | |
81 | + | ||
82 | + | ||
48 | 83 | @Verifier(tx) | |
49 | 84 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
50 | 85 |
github/deemru/w8io/3ef1775 32.87 ms ◑