tx · 7459LnHfG3R7X4RVXcbkuY5KrkYtpPjXpA9k1LVVb9HV 3P2Xx1UuEnLirK2WNMLANjt1iV1Aq7S4gxA: -0.01000000 Waves 2022.04.17 14:45 [3077818] smart account 3P2Xx1UuEnLirK2WNMLANjt1iV1Aq7S4gxA > SELF 0.00000000 Waves
{ "type": 13, "id": "7459LnHfG3R7X4RVXcbkuY5KrkYtpPjXpA9k1LVVb9HV", "fee": 1000000, "feeAssetId": null, "timestamp": 1650195931857, "version": 2, "chainId": 87, "sender": "3P2Xx1UuEnLirK2WNMLANjt1iV1Aq7S4gxA", "senderPublicKey": "GPFQ56LqbzvD24MCVBZ2t8v7BAnur8DtH5PAHUJMjmfT", "proofs": [ "5PoPXuJprqWvRoT211GuzU5DjsFDXSx9ERfH1bhqdME6R6esuyV8LRBCj4PjUyTQBiSeFFE1n8mDBNKvgPkxpz76" ], "script": "base64:AAIFAAAAAAAAAAIIAgAAAAAAAAAAAAAAAPjY3s4=", "height": 3077818, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5xzEPE3DTrf55RTpvAxfzCs7huTYxwVJVXghMqsrW2eM Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func asInt (value) = match value { | |
5 | - | case int: Int => | |
6 | - | int | |
7 | - | case _ => | |
8 | - | throw("expected: Int") | |
9 | - | } | |
10 | 4 | ||
11 | - | ||
12 | - | func asUserBalanceData (value) = match value { | |
13 | - | case x: (Int, Int, Int, Int, Int, Boolean) => | |
14 | - | x | |
15 | - | case t => | |
16 | - | throw("wrong type, expected: Int5&Boolean") | |
17 | - | } | |
18 | - | ||
19 | - | ||
20 | - | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
21 | - | ||
22 | - | let assetStringUsdt = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ" | |
23 | - | ||
24 | - | let reserveUsdt = addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR") | |
25 | - | ||
26 | - | @Callable(i) | |
27 | - | func withdraw (min_amount) = { | |
28 | - | let assetId = fromBase58String(assetStringUsdt) | |
29 | - | let available = assetBalance(reserveUsdt, assetId) | |
30 | - | if ((min_amount > available)) | |
31 | - | then throw(toString(available)) | |
32 | - | else { | |
33 | - | let userbalancedata = asUserBalanceData(invoke(reserveUsdt, "userBalance", [toString(this)], nil)) | |
34 | - | let depositUsd = userbalancedata._3 | |
35 | - | let v = if ((available > depositUsd)) | |
36 | - | then depositUsd | |
37 | - | else available | |
38 | - | if ((min_amount > v)) | |
39 | - | then throw(toString(v)) | |
40 | - | else { | |
41 | - | let amount = asInt(invoke(main, "withdraw", [assetStringUsdt, v], nil)) | |
42 | - | $Tuple2(nil, amount) | |
43 | - | } | |
44 | - | } | |
45 | - | } | |
46 | 5 | ||
47 | 6 |
github/deemru/w8io/0e76f2f 35.79 ms ◑