2022.01.19 17:22 [2950992] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves

{ "type": 13, "id": "HhYtueJJo8bPnk7wa8jXsnm7Qqdt7M5DiVbkSrQGEKCv", "fee": 1400000, "feeAssetId": null, "timestamp": 1642602203426, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "5zUkUnP3tLSEAk4nQDgUaGtB2eNsE6Hftzb9ubsWXH4Jxpq7WTYCXmSGNivFiqUXUKUF78sJ3ZyQeCJzi2w7uoJv" ], "script": "base64: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", "height": 2950992, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 77KbdgY8TEjrp6ZpYnu4dsbesvxfm2s4z5HS4WmBVsPz Next: D4ap3yWNGY1mqgf88MmKro15UNSbREZ3PYZThRnj8wdC Diff:
OldNewDifferences
3838 then {
3939 let i1 = if ((dAppType == "swopfi"))
4040 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
41- else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 1], [AttachedPayment(t0, amount0)])
41+ else throw(t1Str)
4242 if ((i1 == i1))
4343 then {
4444 let balanceAfter = getBalance(t1)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getAssetString (assetId) = match assetId {
55 case b: ByteVector =>
66 toBase58String(b)
77 case _ =>
88 "WAVES"
99 }
1010
1111
1212 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
1313 then unit
1414 else fromBase58String(assetIdStr)
1515
1616
1717 func getBalance (assetId) = match assetId {
1818 case x: Unit =>
1919 wavesBalance(this).available
2020 case _ =>
2121 assetBalance(this, value(assetId))
2222 }
2323
2424
2525 @Callable(i)
2626 func swap (routesStr) = {
2727 func doSwap (amount0,swap) = {
2828 let swapLi = split(swap, ",")
2929 let $t0644725 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
3030 let dApp = $t0644725._1
3131 let dAppType = $t0644725._2
3232 let t0Str = $t0644725._3
3333 let t1Str = $t0644725._4
3434 let t0 = getAssetBytes(t0Str)
3535 let t1 = getAssetBytes(t1Str)
3636 let balanceBefore = getBalance(t1)
3737 if ((balanceBefore == balanceBefore))
3838 then {
3939 let i1 = if ((dAppType == "swopfi"))
4040 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
41- else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 1], [AttachedPayment(t0, amount0)])
41+ else throw(t1Str)
4242 if ((i1 == i1))
4343 then {
4444 let balanceAfter = getBalance(t1)
4545 if ((balanceAfter == balanceAfter))
4646 then (balanceAfter - balanceBefore)
4747 else throw("Strict value is not equal to itself.")
4848 }
4949 else throw("Strict value is not equal to itself.")
5050 }
5151 else throw("Strict value is not equal to itself.")
5252 }
5353
5454 func doRoute (accum,route) = {
5555 let amountIn = parseIntValue(split(route, "/")[0])
5656 let swaps = split(split(route, "/")[1], ";")
5757 let swapsResult = {
5858 let $l = swaps
5959 let $s = size($l)
6060 let $acc0 = amountIn
6161 func $f0_1 ($a,$i) = if (($i >= $s))
6262 then $a
6363 else doSwap($a, $l[$i])
6464
6565 func $f0_2 ($a,$i) = if (($i >= $s))
6666 then $a
6767 else throw("List size exceeds 3")
6868
6969 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
7070 }
7171 if ((swapsResult == swapsResult))
7272 then (accum + swapsResult)
7373 else throw("Strict value is not equal to itself.")
7474 }
7575
7676 let routes = split(routesStr, "|")
7777 let totalOut = {
7878 let $l = routes
7979 let $s = size($l)
8080 let $acc0 = 0
8181 func $f0_1 ($a,$i) = if (($i >= $s))
8282 then $a
8383 else doRoute($a, $l[$i])
8484
8585 func $f0_2 ($a,$i) = if (($i >= $s))
8686 then $a
8787 else throw("List size exceeds 5")
8888
8989 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
9090 }
9191 if ((totalOut == totalOut))
9292 then [ScriptTransfer(i.caller, totalOut, getAssetBytes(split(routesStr, ";")[(size(split(routesStr, ";")) - 1)]))]
9393 else throw("Strict value is not equal to itself.")
9494 }
9595
9696
9797 @Verifier(tx)
9898 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9999

github/deemru/w8io/786bc32 
34.00 ms