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: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", "height": 3367936, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GFK6Pi87r65NZSS8J3hQ9RvaYMfzxizE7rWWxFUjDkD8 Next: none Diff:
OldNewDifferences
4545 }
4646
4747
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+
4883 @Verifier(tx)
4984 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5085
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
55 then unit
66 else fromBase58String(assetIdStr)
77
88
99 func getBalance (assetIdStr) = if ((assetIdStr == "WAVES"))
1010 then wavesBalance(this).available
1111 else assetBalance(this, fromBase58String(assetIdStr))
1212
1313
1414 @Callable(i)
1515 func swap (asset0,asset1,pool0,pool1,amount0) = {
1616 let balanceBefore = getBalance(asset1)
1717 if ((balanceBefore == balanceBefore))
1818 then {
1919 let inv1 = invoke(addressFromStringValue(pool0), "swap", [asset1, 0], [AttachedPayment(getAssetBytes(asset0), amount0)])
2020 if ((inv1 == inv1))
2121 then {
2222 let amount1 = (getBalance(asset1) - balanceBefore)
2323 if ((amount1 == amount1))
2424 then {
2525 let inv2 = invoke(addressFromStringValue(pool1), "swap", [asset0, 0], [AttachedPayment(getAssetBytes(asset1), amount1)])
2626 if ((inv2 == inv2))
2727 then {
2828 let resultAmount = match inv2 {
2929 case x: Int =>
3030 x
3131 case _ =>
3232 throw("error while swapping")
3333 }
3434 if ((resultAmount == resultAmount))
3535 then [ScriptTransfer(i.caller, resultAmount, getAssetBytes(asset0))]
3636 else throw("Strict value is not equal to itself.")
3737 }
3838 else throw("Strict value is not equal to itself.")
3939 }
4040 else throw("Strict value is not equal to itself.")
4141 }
4242 else throw("Strict value is not equal to itself.")
4343 }
4444 else throw("Strict value is not equal to itself.")
4545 }
4646
4747
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+
4883 @Verifier(tx)
4984 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5085

github/deemru/w8io/3ef1775 
32.87 ms