tx · 36NcYgLsGCKjiaror6KfFd4tPe7w8DYheQ7vdbDHLPdE

3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU:  -0.01000000 Waves

2022.12.09 23:40 [3418756] smart account 3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU > SELF 0.00000000 Waves

{ "type": 13, "id": "36NcYgLsGCKjiaror6KfFd4tPe7w8DYheQ7vdbDHLPdE", "fee": 1000000, "feeAssetId": null, "timestamp": 1670618449571, "version": 2, "chainId": 87, "sender": "3P5iS5FnZHLoEcSwmDpShmNn9Z5KCL2XdbU", "senderPublicKey": "FQ1hCr2qX8MTXUGfsXkucpF5apQVnwe7my5z7nFk2ggQ", "proofs": [ "3URKyQFqtnkrLcb6vqWgLeSxX5qtiDk6AzxaXtFXiGd3RDyhgMAQfMzxSqgFETzvPgMwtyfUHMwaiUCpGRoZ9Sa9" ], "script": "base64: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", "height": 3418756, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: K5aDHCDdE5WAbmVATHJWwke2piDruWg2jK5atKx3x1i Next: none Diff:
OldNewDifferences
144144 then {
145145 let balanceAfter = getBalance(asset0)
146146 if ((balanceAfter == balanceAfter))
147- then [ScriptTransfer(i.caller, balanceAfter, getAssetBytes(asset0))]
147+ then if ((balanceBefore > balanceAfter))
148+ then throw("oh no")
149+ else [ScriptTransfer(i.caller, balanceAfter, getAssetBytes(asset0))]
148150 else throw("Strict value is not equal to itself.")
149151 }
150152 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
55
66 func getAssetString (assetId) = match assetId {
77 case b: ByteVector =>
88 toBase58String(b)
99 case _ =>
1010 "WAVES"
1111 }
1212
1313
1414 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
1515 then unit
1616 else fromBase58String(assetIdStr)
1717
1818
1919 func getBalance (assetIdStr) = if ((assetIdStr == "WAVES"))
2020 then wavesBalance(this).available
2121 else assetBalance(this, fromBase58String(assetIdStr))
2222
2323
2424 func swap (asset0,asset1,pool,poolType) = if ((poolType == "wx"))
2525 then {
2626 let inv = invoke(this, "swapWXInternal", [asset0, asset1], nil)
2727 if ((inv == inv))
2828 then nil
2929 else throw("Strict value is not equal to itself.")
3030 }
3131 else {
3232 let inv = invoke(this, "swapSwopInternal", [asset0, asset1, pool], nil)
3333 if ((inv == inv))
3434 then nil
3535 else throw("Strict value is not equal to itself.")
3636 }
3737
3838
3939 @Callable(i)
4040 func swapWX (asset1) = {
4141 let asset0 = getAssetString(i.payments[0].assetId)
4242 let amount0 = i.payments[0].amount
4343 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
4444 let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != usdnIdStr))
4545 then asset1
4646 else asset0))))
4747 let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + usdnIdStr)))
4848 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
4949 let poolAddress = addressFromStringValue(poolConfig[1])
5050 let poolAssetId = poolConfig[3]
5151 let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
5252 if ((inv1 == inv1))
5353 then {
5454 let poolTokenAmount = getBalance(poolAssetId)
5555 if ((poolTokenAmount == poolTokenAmount))
5656 then {
5757 let asset1BalanceBefore = getBalance(asset1)
5858 if ((asset1BalanceBefore == asset1BalanceBefore))
5959 then {
6060 let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)])
6161 if ((inv2 == inv2))
6262 then {
6363 let amount1 = (getBalance(asset1) - asset1BalanceBefore)
6464 if ((amount1 == amount1))
6565 then [ScriptTransfer(i.caller, amount1, getAssetBytes(asset1))]
6666 else throw("Strict value is not equal to itself.")
6767 }
6868 else throw("Strict value is not equal to itself.")
6969 }
7070 else throw("Strict value is not equal to itself.")
7171 }
7272 else throw("Strict value is not equal to itself.")
7373 }
7474 else throw("Strict value is not equal to itself.")
7575 }
7676
7777
7878
7979 @Callable(i)
8080 func swapWXInternal (asset0,asset1) = if ((i.caller != this))
8181 then throw("self invokes only")
8282 else {
8383 let amount0 = getBalance(asset0)
8484 let factoryAddress = Address(base58'3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv')
8585 let assetInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + (if ((asset1 != usdnIdStr))
8686 then asset1
8787 else asset0))))
8888 let usdnInt = toString(getIntegerValue(factoryAddress, ("%s%s%s__mappings__baseAsset2internalId__" + usdnIdStr)))
8989 let poolConfig = split(getStringValue(factoryAddress, (((("%d%d%s__" + assetInt) + "__") + usdnInt) + "__config")), "__")
9090 let poolAddress = addressFromStringValue(poolConfig[1])
9191 let poolAssetId = poolConfig[3]
9292 let inv1 = invoke(poolAddress, "putOneTkn", [0, false], [AttachedPayment(getAssetBytes(asset0), amount0)])
9393 if ((inv1 == inv1))
9494 then {
9595 let poolTokenAmount = getBalance(poolAssetId)
9696 if ((poolTokenAmount == poolTokenAmount))
9797 then {
9898 let asset1BalanceBefore = getBalance(asset1)
9999 if ((asset1BalanceBefore == asset1BalanceBefore))
100100 then {
101101 let inv2 = invoke(poolAddress, "getOneTkn", [asset1, 0], [AttachedPayment(getAssetBytes(poolAssetId), poolTokenAmount)])
102102 if ((inv2 == inv2))
103103 then {
104104 let amount1 = (getBalance(asset1) - asset1BalanceBefore)
105105 if ((amount1 == amount1))
106106 then nil
107107 else throw("Strict value is not equal to itself.")
108108 }
109109 else throw("Strict value is not equal to itself.")
110110 }
111111 else throw("Strict value is not equal to itself.")
112112 }
113113 else throw("Strict value is not equal to itself.")
114114 }
115115 else throw("Strict value is not equal to itself.")
116116 }
117117
118118
119119
120120 @Callable(i)
121121 func swapSwopInternal (asset0,asset1,pool) = if ((i.caller != this))
122122 then throw("self invokes only")
123123 else {
124124 let amount0 = getBalance(asset0)
125125 let poolAddress = addressFromStringValue(pool)
126126 let inv1 = invoke(poolAddress, "exchange", [1], [AttachedPayment(getAssetBytes(asset0), amount0)])
127127 if ((inv1 == inv1))
128128 then nil
129129 else throw("Strict value is not equal to itself.")
130130 }
131131
132132
133133
134134 @Callable(i)
135135 func anianklv (asset0,asset1,pool1,pool1Type,pool2,pool2Type) = {
136136 let balanceBefore = getBalance(asset0)
137137 if ((balanceBefore == balanceBefore))
138138 then {
139139 let swap1 = swap(asset0, asset1, pool1, pool1Type)
140140 if ((swap1 == swap1))
141141 then {
142142 let swap2 = swap(asset1, asset0, pool2, pool2Type)
143143 if ((swap2 == swap2))
144144 then {
145145 let balanceAfter = getBalance(asset0)
146146 if ((balanceAfter == balanceAfter))
147- then [ScriptTransfer(i.caller, balanceAfter, getAssetBytes(asset0))]
147+ then if ((balanceBefore > balanceAfter))
148+ then throw("oh no")
149+ else [ScriptTransfer(i.caller, balanceAfter, getAssetBytes(asset0))]
148150 else throw("Strict value is not equal to itself.")
149151 }
150152 else throw("Strict value is not equal to itself.")
151153 }
152154 else throw("Strict value is not equal to itself.")
153155 }
154156 else throw("Strict value is not equal to itself.")
155157 }
156158
157159
158160 @Verifier(tx)
159161 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
160162

github/deemru/w8io/3ef1775 
39.42 ms