tx · GECbpWPLgFfkBihFyDgHLisqKxN8BAZ2wFFFaMkDz9hi

3P6wck5d7WTNE6VgC15c4iZ2u3tUoRAAoFA:  -0.00800000 Waves

2022.09.28 10:04 [3314129] smart account 3P6wck5d7WTNE6VgC15c4iZ2u3tUoRAAoFA > SELF 0.00000000 Waves

{ "type": 13, "id": "GECbpWPLgFfkBihFyDgHLisqKxN8BAZ2wFFFaMkDz9hi", "fee": 800000, "feeAssetId": null, "timestamp": 1664348597458, "version": 2, "chainId": 87, "sender": "3P6wck5d7WTNE6VgC15c4iZ2u3tUoRAAoFA", "senderPublicKey": "HVWqiwKqBXXeqDMUkgxCa7ctfYD5jDUiDphT61yagACE", "proofs": [ "3eWsEGUaHDubHF3oudYZa7o5Gu3CiKV7nqycWHJPrAfCDRLj7H62VYDLYdyk2bu6Wrke1dLeUtw9vTcjCpByjJY7" ], "script": "base64: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", "height": 3314129, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HLve1Rn1vbFTbJJRXWN8oLxPYrF6tM3vt5NVA5f9KSsA Next: none Diff:
OldNewDifferences
5757
5858 func $f0_2 ($a,$i) = if (($i >= $s))
5959 then $a
60- else throw("List size exceeds 5")
60+ else throw("List size exceeds 7")
6161
62- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
62+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7)
6363 }
6464 if ((swapsResult == swapsResult))
6565 then swapsResult
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 (assetId) = match assetId {
1010 case x: Unit =>
1111 wavesBalance(this).available
1212 case _ =>
1313 assetBalance(this, value(assetId))
1414 }
1515
1616
1717 @Callable(i)
1818 func swap (routesStr,minToReceive) = {
1919 let balance0 = (getBalance(i.payments[0].assetId) - i.payments[0].amount)
2020 func doSwap (amount0,swap) = {
2121 let swapLi = split(swap, ",")
2222 let $t0599680 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
2323 let dApp = $t0599680._1
2424 let dAppType = $t0599680._2
2525 let t0Str = $t0599680._3
2626 let t1Str = $t0599680._4
2727 let t0 = getAssetBytes(t0Str)
2828 let t1 = getAssetBytes(t1Str)
2929 let balanceBefore = getBalance(t1)
3030 if ((balanceBefore == balanceBefore))
3131 then {
3232 let i1 = if ((dAppType == "swopfi"))
3333 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
3434 else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
3535 if ((i1 == i1))
3636 then {
3737 let balanceAfter = getBalance(t1)
3838 if ((balanceAfter == balanceAfter))
3939 then (balanceAfter - balanceBefore)
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 func doRoute (route) = {
4848 let amountIn = parseIntValue(split(route, "/")[0])
4949 let swaps = split(split(route, "/")[1], ";")
5050 let swapsResult = {
5151 let $l = swaps
5252 let $s = size($l)
5353 let $acc0 = amountIn
5454 func $f0_1 ($a,$i) = if (($i >= $s))
5555 then $a
5656 else doSwap($a, $l[$i])
5757
5858 func $f0_2 ($a,$i) = if (($i >= $s))
5959 then $a
60- else throw("List size exceeds 5")
60+ else throw("List size exceeds 7")
6161
62- $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
62+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7)
6363 }
6464 if ((swapsResult == swapsResult))
6565 then swapsResult
6666 else throw("Strict value is not equal to itself.")
6767 }
6868
6969 let amountIn = parseIntValue(split(routesStr, "/")[0])
7070 let asset0Id = getAssetBytes(split(split(split(routesStr, "/")[1], ";")[0], ",")[2])
7171 let totalOut = doRoute(routesStr)
7272 if ((totalOut == totalOut))
7373 then {
7474 let cleanTotalAmount = totalOut
7575 let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
7676 let asset1 = getAssetBytes(asset1Str)
7777 if ((minToReceive > cleanTotalAmount))
7878 then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
7979 else if (if ((asset0Id != i.payments[0].assetId))
8080 then true
8181 else (amountIn > i.payments[0].amount))
8282 then throw("wrong asset attached as payment")
8383 else [ScriptTransfer(i.caller, cleanTotalAmount, asset1)]
8484 }
8585 else throw("Strict value is not equal to itself.")
8686 }
8787
8888
8989 @Verifier(tx)
9090 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
9191

github/deemru/w8io/3ef1775 
36.64 ms