tx · Cj8q5BDCh1RCB8eptCecCaL63fovPPqJt6idCqHu4PoH 3P5MGmcsL5xUvMVM3sSihRza89CYtfJrMcP: -0.01000000 Waves 2022.04.14 13:58 [3073452] smart account 3P5MGmcsL5xUvMVM3sSihRza89CYtfJrMcP > SELF 0.00000000 Waves
{ "type": 13, "id": "Cj8q5BDCh1RCB8eptCecCaL63fovPPqJt6idCqHu4PoH", "fee": 1000000, "feeAssetId": null, "timestamp": 1649933894057, "version": 1, "sender": "3P5MGmcsL5xUvMVM3sSihRza89CYtfJrMcP", "senderPublicKey": "3woh1e9YVr8Pmy1JXHUK37JxpnZRwj2YQ3BFTs5BGUds", "proofs": [ "4NnUvUNy7t9o51nBN1c6HrBkLB59Xk4NNbcdpbxq2dNR7Yk8rj57Y7cGVae913jkD255ZuvmA4QobtgjS3EbbpXA" ], "script": "base64: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", "chainId": 87, "height": 3073452, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2tprZhfXwVPUisGnggFzUaiAjUUJreFwek1jqiJz3BHF Next: 7NkrfGsLwAifAtH4WeUstukbTkRiCthHheHQ9FvbQziD Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func | |
5 | - | case | |
6 | - | | |
7 | - | case | |
8 | - | throw(" | |
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 | 9 | } | |
10 | 10 | ||
11 | 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 | - | } | |
12 | + | let a = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ' | |
13 | + | ||
14 | + | let d = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S") | |
15 | + | ||
16 | + | let m = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
17 | + | ||
18 | + | func n () = { | |
19 | + | let b = assetBalance(d, a) | |
20 | + | if ((10 > b)) | |
21 | + | then 0 | |
22 | + | else { | |
23 | + | let z = p22(invoke(d, "userBalance", [toString(this)], nil)) | |
24 | + | let i = invoke(m, "withdraw", [toBase58String(a), if ((b > z)) | |
25 | + | then -1 | |
26 | + | else b], nil) | |
27 | + | if ((i == i)) | |
28 | + | then 1 | |
29 | + | else throw("Strict value is not equal to itself.") | |
30 | + | } | |
31 | + | } | |
18 | 32 | ||
19 | 33 | ||
20 | - | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
34 | + | @Callable(i) | |
35 | + | func f () = if ((i.caller != this)) | |
36 | + | then throw("admin") | |
37 | + | else if ((n() == -1)) | |
38 | + | then throw("too low reserve") | |
39 | + | else nil | |
21 | 40 | ||
22 | - | let assetStrings = ["6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ", "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ", "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"] | |
23 | 41 | ||
24 | - | let reserves = [addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S"), addressFromStringValue("3PEiD1zJWTMZNWSCyzhvBw9pxxAWeEwaghR"), addressFromStringValue("3PCwFXSq8vj8iKitA5zrrLRbuqehfmimpce")] | |
25 | 42 | ||
26 | 43 | @Callable(i) | |
27 | - | func withdraw (asset,pass,min) = { | |
28 | - | let admin = "3P5MGmcsL5xUvMVM3sSihRza89CYtfJrMcP" | |
29 | - | if ((toString(i.caller) != admin)) | |
30 | - | then throw("only admin can do") | |
31 | - | else { | |
32 | - | let assetIdString = assetStrings[asset] | |
33 | - | let assetId = fromBase58String(assetIdString) | |
34 | - | let reserve = reserves[asset] | |
35 | - | let available = assetBalance(reserve, assetId) | |
36 | - | if ((min > available)) | |
37 | - | then if (pass) | |
38 | - | then $Tuple2(nil, available) | |
39 | - | else throw(toString(available)) | |
44 | + | func g () = if ((i.caller != this)) | |
45 | + | then throw("admin") | |
46 | + | else { | |
47 | + | let b = assetBalance(d, a) | |
48 | + | if ((b == b)) | |
49 | + | then if ((100000000 > b)) | |
50 | + | then throw("too low reserve") | |
40 | 51 | else { | |
41 | - | let userbalancedata = asUserBalanceData(invoke(reserve, "userBalance", [toString(this)], nil)) | |
42 | - | let lp = userbalancedata._1 | |
43 | - | let maxAmount = userbalancedata._2 | |
44 | - | let depositUsd = userbalancedata._3 | |
45 | - | let debt = userbalancedata._4 | |
46 | - | let debtUsd = userbalancedata._5 | |
47 | - | let asCollateral = userbalancedata._6 | |
48 | - | let v = if ((available > maxAmount)) | |
49 | - | then -1 | |
50 | - | else if ((2 > asset)) | |
51 | - | then available | |
52 | - | else -1 | |
53 | - | let amount = asInt(invoke(main, "withdraw", [assetIdString, v], nil)) | |
54 | - | $Tuple2(nil, amount) | |
52 | + | let z = p22(invoke(d, "userBalance", [toString(this)], nil)) | |
53 | + | if ((z == z)) | |
54 | + | then { | |
55 | + | let x = invoke(addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT"), "withdraw", [toBase58String(a), if ((b > z)) | |
56 | + | then -1 | |
57 | + | else b], nil) | |
58 | + | if ((x == x)) | |
59 | + | then nil | |
60 | + | else throw("Strict value is not equal to itself.") | |
61 | + | } | |
62 | + | else throw("Strict value is not equal to itself.") | |
55 | 63 | } | |
56 | - | | |
57 | - | } | |
64 | + | else throw("Strict value is not equal to itself.") | |
65 | + | } | |
58 | 66 | ||
59 | 67 |
github/deemru/w8io/6500d08 44.41 ms ◑