tx · 4834ufTXQW2Ygzk83mZvBRcBeKHVWKwXX8AHGiuAf29P 3P31rCwJ4L8LnxMHJ3EaHJFxG6KjxEaG2zb: -0.01000000 Waves 2022.05.22 18:38 [3128557] smart account 3P31rCwJ4L8LnxMHJ3EaHJFxG6KjxEaG2zb > SELF 0.00000000 Waves
{ "type": 13, "id": "4834ufTXQW2Ygzk83mZvBRcBeKHVWKwXX8AHGiuAf29P", "fee": 1000000, "feeAssetId": null, "timestamp": 1653233896946, "version": 2, "chainId": 87, "sender": "3P31rCwJ4L8LnxMHJ3EaHJFxG6KjxEaG2zb", "senderPublicKey": "GUWuKmH8pqzPSk4Vq34uUNxh3XdwxVBp9qbDDxakyS9x", "proofs": [ "7PprJ5t57p5fM33BK9DKpq1LG9LhELBxhx3EbMsLpEwj4gSiKiFJCEQH4xSo18F7nFBjccEQFxay6nPE6HgQZwB" ], "script": "base64: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", "height": 3128557, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5Bnw955dRKexHzYtwm6Sg6YXw3T9uzsfFmWQHSvJqeCL Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func p22 (v) = match v { | |
5 | + | case x: (Int, Int, Int, Int, Int, Boolean) => | |
6 | + | x._2 | |
7 | + | case t => | |
8 | + | throw("p22") | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
13 | + | ||
14 | + | let assetStringUSDT = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" | |
15 | + | ||
16 | + | let reserveUSDT = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR") | |
17 | + | ||
18 | + | let assetStringUSDC = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" | |
19 | + | ||
20 | + | let reserveUSDC = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S") | |
21 | + | ||
22 | + | @Callable(i) | |
23 | + | func withdrawUSDC (minAmount,maxAmount) = { | |
24 | + | let reserveBalance = assetBalance(reserveUSDC, fromBase58String(assetStringUSDC)) | |
25 | + | let z = p22(invoke(reserveUSDC, "userBalance", [toString(this)], nil)) | |
26 | + | let maxAmount1 = if ((maxAmount > z)) | |
27 | + | then z | |
28 | + | else maxAmount | |
29 | + | if ((reserveBalance >= minAmount)) | |
30 | + | then { | |
31 | + | let withdrawAmount = if ((reserveBalance > maxAmount1)) | |
32 | + | then maxAmount1 | |
33 | + | else reserveBalance | |
34 | + | let withdrawnAmount = { | |
35 | + | let @ = invoke(main, "withdraw", [assetStringUSDC, withdrawAmount], nil) | |
36 | + | if ($isInstanceOf(@, "Int")) | |
37 | + | then @ | |
38 | + | else throw("Couldn't cast Any to Int") | |
39 | + | } | |
40 | + | if ((withdrawnAmount == withdrawnAmount)) | |
41 | + | then nil | |
42 | + | else throw("Strict value is not equal to itself.") | |
43 | + | } | |
44 | + | else throw("Reserve balance too low") | |
45 | + | } | |
46 | + | ||
47 | + | ||
48 | + | ||
49 | + | @Callable(i) | |
50 | + | func withdrawUSDT (minAmount,maxAmount) = { | |
51 | + | let reserveBalance = assetBalance(reserveUSDT, fromBase58String(assetStringUSDT)) | |
52 | + | let z = p22(invoke(reserveUSDT, "userBalance", [toString(this)], nil)) | |
53 | + | let maxAmount1 = if ((maxAmount > z)) | |
54 | + | then z | |
55 | + | else maxAmount | |
56 | + | if ((reserveBalance >= minAmount)) | |
57 | + | then { | |
58 | + | let withdrawAmount = if ((reserveBalance > maxAmount1)) | |
59 | + | then maxAmount1 | |
60 | + | else reserveBalance | |
61 | + | let withdrawnAmount = { | |
62 | + | let @ = invoke(main, "withdraw", [assetStringUSDT, withdrawAmount], nil) | |
63 | + | if ($isInstanceOf(@, "Int")) | |
64 | + | then @ | |
65 | + | else throw("Couldn't cast Any to Int") | |
66 | + | } | |
67 | + | if ((withdrawnAmount == withdrawnAmount)) | |
68 | + | then nil | |
69 | + | else throw("Strict value is not equal to itself.") | |
70 | + | } | |
71 | + | else throw("Reserve balance too low") | |
72 | + | } | |
73 | + | ||
74 | + |
github/deemru/w8io/3ef1775 23.80 ms ◑