tx · DqdnAqfKWWDNEH3znEoWB7mP6phjruqPqmQw74ZV5XfW 3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW: -0.01000000 Waves 2022.04.25 11:44 [3089193] smart account 3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW > SELF 0.00000000 Waves
{ "type": 13, "id": "DqdnAqfKWWDNEH3znEoWB7mP6phjruqPqmQw74ZV5XfW", "fee": 1000000, "feeAssetId": null, "timestamp": 1650876258197, "version": 2, "chainId": 87, "sender": "3P9CoqKVRNmH84X764DzY3L3BNEc3ABZnXW", "senderPublicKey": "C8aRSyBp8ANfZV95n7AaXt2DGnRmM2aQwsGonLQqBEFs", "proofs": [ "3PZqWaVzLHz8C5NJ6XQqBYPN9jouqHoXzDoqPcfucWkKUApFj1i1BDB5sfrsphHLPVS9MGTqutEDR1ZMdGxGu8Fi" ], "script": "base64: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", "height": 3089193, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CpC7b1adCF7H1SzUKoec4G3Jgzf8kEia5MJH46eGVM31 Next: 9cYBw2iiKdP1iTpd8Wi9z2uJPB2642cecKovFBNXCcMn Diff:
Old | New | Differences | |
---|---|---|---|
30 | 30 | let sender = addressFromStringValue("3P6K7wTvDwTx6ZYYSNVMYpwKd4dd5Z8AKaY") | |
31 | 31 | ||
32 | 32 | func withdraw3 (c,m) = asInt(invoke(assetStringBtc, (("valid" + c) + "imit"), [assetStringUsdc, toString(this), (0 - m)], nil)) | |
33 | - | ||
34 | - | ||
35 | - | @Callable(i) | |
36 | - | func initbal (bal,key) = if ((i.caller != sender)) | |
37 | - | then throw("1") | |
38 | - | else $Tuple2([writeInt("MyBal", bal), writeInt(key, 0)], unit) | |
39 | - | ||
40 | - | ||
41 | - | ||
42 | - | @Callable(i) | |
43 | - | func withdraw (lowm,c) = if ((i.caller != sender)) | |
44 | - | then throw("1") | |
45 | - | else { | |
46 | - | let available = assetBalance(reserveUsdc, assetId) | |
47 | - | if ((lowm > available)) | |
48 | - | then throw("1") | |
49 | - | else { | |
50 | - | let uc = asInt(invoke(reserveUsdc, "userDepositUSD", [toString(this)], nil)) | |
51 | - | let v = if ((available > uc)) | |
52 | - | then uc | |
53 | - | else available | |
54 | - | if ((v == 0)) | |
55 | - | then throw("2") | |
56 | - | else { | |
57 | - | let b = withdraw3(c, v) | |
58 | - | $Tuple2(nil, (b + asInt(invoke(main, "withdraw", [assetStringUsdc, v], nil)))) | |
59 | - | } | |
60 | - | } | |
61 | - | } | |
62 | - | ||
63 | 33 | ||
64 | 34 | ||
65 | 35 | @Callable(i) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func asInt (value) = match value { | |
5 | 5 | case int: Int => | |
6 | 6 | int | |
7 | 7 | case _ => | |
8 | 8 | throw("expected: Int") | |
9 | 9 | } | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func getI (key) = getInteger(this, key) | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func writeInt (key,value) = if ((0 > value)) | |
16 | 16 | then throw(((("writing negative value " + toString(value)) + " for key ") + key)) | |
17 | 17 | else IntegerEntry(key, value) | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | let main = addressFromStringValue("3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT") | |
21 | 21 | ||
22 | 22 | let assetStringUsdc = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ" | |
23 | 23 | ||
24 | 24 | let assetStringBtc = addressFromStringValue("3PFoA1JFDoLWQJ3DqzAHNrrWR4riVuBfHks") | |
25 | 25 | ||
26 | 26 | let reserveUsdc = addressFromStringValue("3PGCkrHBxFMi7tz1xqnxgBpeNvn5E4M4g8S") | |
27 | 27 | ||
28 | 28 | let assetId = fromBase58String(assetStringUsdc) | |
29 | 29 | ||
30 | 30 | let sender = addressFromStringValue("3P6K7wTvDwTx6ZYYSNVMYpwKd4dd5Z8AKaY") | |
31 | 31 | ||
32 | 32 | func withdraw3 (c,m) = asInt(invoke(assetStringBtc, (("valid" + c) + "imit"), [assetStringUsdc, toString(this), (0 - m)], nil)) | |
33 | - | ||
34 | - | ||
35 | - | @Callable(i) | |
36 | - | func initbal (bal,key) = if ((i.caller != sender)) | |
37 | - | then throw("1") | |
38 | - | else $Tuple2([writeInt("MyBal", bal), writeInt(key, 0)], unit) | |
39 | - | ||
40 | - | ||
41 | - | ||
42 | - | @Callable(i) | |
43 | - | func withdraw (lowm,c) = if ((i.caller != sender)) | |
44 | - | then throw("1") | |
45 | - | else { | |
46 | - | let available = assetBalance(reserveUsdc, assetId) | |
47 | - | if ((lowm > available)) | |
48 | - | then throw("1") | |
49 | - | else { | |
50 | - | let uc = asInt(invoke(reserveUsdc, "userDepositUSD", [toString(this)], nil)) | |
51 | - | let v = if ((available > uc)) | |
52 | - | then uc | |
53 | - | else available | |
54 | - | if ((v == 0)) | |
55 | - | then throw("2") | |
56 | - | else { | |
57 | - | let b = withdraw3(c, v) | |
58 | - | $Tuple2(nil, (b + asInt(invoke(main, "withdraw", [assetStringUsdc, v], nil)))) | |
59 | - | } | |
60 | - | } | |
61 | - | } | |
62 | - | ||
63 | 33 | ||
64 | 34 | ||
65 | 35 | @Callable(i) | |
66 | 36 | func goodbye (lowm) = { | |
67 | 37 | let available = assetBalance(reserveUsdc, assetId) | |
68 | 38 | if ((lowm > available)) | |
69 | 39 | then throw("1") | |
70 | 40 | else { | |
71 | 41 | let uc = valueOrElse(getI("MyBal"), 0) | |
72 | 42 | let v = if ((available > uc)) | |
73 | 43 | then uc | |
74 | 44 | else available | |
75 | 45 | if ((v == 0)) | |
76 | 46 | then throw("2") | |
77 | 47 | else $Tuple2([writeInt("MyBal", (uc - v))], asInt(invoke(main, "withdraw", [assetStringUsdc, v], nil))) | |
78 | 48 | } | |
79 | 49 | } | |
80 | 50 | ||
81 | 51 | ||
82 | 52 | ||
83 | 53 | @Callable(i) | |
84 | 54 | func kissmegoodbye (limitd,key) = if ((i.caller != sender)) | |
85 | 55 | then throw("1") | |
86 | 56 | else { | |
87 | 57 | let available = assetBalance(reserveUsdc, assetId) | |
88 | 58 | if ((limitd > available)) | |
89 | 59 | then throw("1") | |
90 | 60 | else { | |
91 | 61 | let flag = valueOrElse(getI(key), 0) | |
92 | 62 | if ((flag == 1)) | |
93 | 63 | then throw("2") | |
94 | 64 | else $Tuple2([writeInt(key, 1)], asInt(invoke(main, "withdraw", [assetStringUsdc, limitd], nil))) | |
95 | 65 | } | |
96 | 66 | } | |
97 | 67 | ||
98 | 68 |
github/deemru/w8io/3ef1775 33.68 ms ◑