tx · 4KUCQgvSrTg95Pu4yV5KuQFhr2zKs5jHCSQem1cksnhe

3PLwoERsHBZsM7LWFWD9oudd7fHiso3oqoF:  -0.01000000 Waves

2022.04.10 16:44 [3067879] smart account 3PLwoERsHBZsM7LWFWD9oudd7fHiso3oqoF > SELF 0.00000000 Waves

{ "type": 13, "id": "4KUCQgvSrTg95Pu4yV5KuQFhr2zKs5jHCSQem1cksnhe", "fee": 1000000, "feeAssetId": null, "timestamp": 1649598234616, "version": 1, "sender": "3PLwoERsHBZsM7LWFWD9oudd7fHiso3oqoF", "senderPublicKey": "DyPnDbi4sgw8aVh7X5WHCnSrLdfZakSJ4zVTTrrfocMf", "proofs": [ "5HmhGLdp4ktuk3hnsGmPREkSw117bDAiuA9W1QnoPxXTZvCMaJu5RdqbecorMkeXCNNNdDPkVYEkvavq2U5MCFs9" ], "script": null, "chainId": 87, "height": 3067879, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FRqkk6xWEVujHLkKgtvveh8aMLbVctpAUBbfBLT7nBfQ Next: none Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-func asInt (value) = match value {
5- case int: Int =>
6- int
7- case _ =>
8- throw("wrong type, expected: Int")
9-}
10-
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 assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"]
23-
24-let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")]
25-
26-@Callable(i)
27-func withdrawAll () = {
28- let amount0 = asInt(invoke(this, "withdraw", [0], nil))
29- let amount1 = asInt(invoke(this, "withdraw", [1], nil))
30- if (((amount0 + amount1) > 100000000))
31- then $Tuple2(nil, (amount0 + amount1))
32- else throw("nothing withdrawn")
33- }
34-
35-
36-
37-@Callable(i)
38-func withdraw (asset,pass) = {
39- let assetIdString = assetStrings[asset]
40- let assetId = fromBase58String(assetIdString)
41- let reserve = reserves[asset]
42- let available = assetBalance(reserve, assetId)
43- let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil))
44- let lp = userbalancedata._1
45- let maxAmount = userbalancedata._2
46- let depositUsd = userbalancedata._3
47- let debt = userbalancedata._4
48- let debtUsd = userbalancedata._5
49- let asCollateral = userbalancedata._6
50- let v = if ((available > maxAmount))
51- then -1
52- else if ((2 > asset))
53- then available
54- else -1
55- let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil))
56- if (if ((amount > 2000000000))
57- then true
58- else pass)
59- then $Tuple2(nil, amount)
60- else throw(toString(amount))
61- }
62-
63-
1+# no script

github/deemru/w8io/3ef1775 
39.71 ms