tx · GcyAreMEXv9NQqssd4M7SkEJgf6j4KS552dZa71gZ88q 3PEKQpaZWzprBgM7964JoLovajRrTyikn2H: -0.01000000 Waves 2022.06.06 21:46 [3150447] smart account 3PEKQpaZWzprBgM7964JoLovajRrTyikn2H > SELF 0.00000000 Waves
{ "type": 13, "id": "GcyAreMEXv9NQqssd4M7SkEJgf6j4KS552dZa71gZ88q", "fee": 1000000, "feeAssetId": null, "timestamp": 1654541209234, "version": 2, "chainId": 87, "sender": "3PEKQpaZWzprBgM7964JoLovajRrTyikn2H", "senderPublicKey": "6NyEeU4JHE6LDFt1xLZJifpKnnMacXM2hLYGpibdFbrA", "proofs": [ "EqAUfczEtHKoU3avLuS6L6KvvnRUGF9Sb5MaLNtdsCM67LxVgzfh5ytGRLaofJNXHngFqHoV9x9SaMzTdB1mziT" ], "script": "base64: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", "height": 3150447, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8CsqaH3ELH8i1c5a3a2d3QKkrnqcmCEtELtKFuRjyx3m Next: GJ5fC9BzUXFev2g94uvcUtd3irtNjMzm8X5vCPFeM9fP Diff:
Old | New | Differences | |
---|---|---|---|
20 | 20 | else throw("Attached payment is required") | |
21 | 21 | if ((UserBalance != 0)) | |
22 | 22 | then throw("You already have funds supplied, cannot supply more than once") | |
23 | - | else if (if (((50 * 100000000) > | |
23 | + | else if (if (((50 * 100000000) > pmt.amount)) | |
24 | 24 | then true | |
25 | 25 | else (pmt.assetId != BUsd)) | |
26 | - | then throw("Can only deposit | |
26 | + | then throw("Can only deposit BUSD tokens, and amount should be at least 50 BUSD") | |
27 | 27 | else { | |
28 | 28 | let NewBalance = (UserBalance + pmt.amount) | |
29 | 29 | [IntegerEntry((toBase58String(i.caller.bytes) + "_Liq"), NewBalance), IntegerEntry((toBase58String(i.caller.bytes) + "_Deposit"), NewBalance), IntegerEntry((toBase58String(i.caller.bytes) + "_LastUnstake"), height)] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let BUsd = base58'8DLiYZjo3UUaRBTHU7Ayoqg4ihwb6YH1AfXrrhdjQ7K1' | |
5 | 5 | ||
6 | 6 | let dAppFees = base58'3MwHwPLih1Ndr5aoeE84J15AN5kLcETVnee' | |
7 | 7 | ||
8 | 8 | @Callable(i) | |
9 | 9 | func DepositFunds () = { | |
10 | 10 | let UserLiquidity = (toBase58String(i.caller.bytes) + "_Liq") | |
11 | 11 | let LastUnstakeBlock = (toBase58String(i.caller.bytes) + "_LastUnstake") | |
12 | 12 | let UserBalance = match getInteger(this, UserLiquidity) { | |
13 | 13 | case a: Int => | |
14 | 14 | a | |
15 | 15 | case _ => | |
16 | 16 | 0 | |
17 | 17 | } | |
18 | 18 | let pmt = if ((size(i.payments) == 1)) | |
19 | 19 | then i.payments[0] | |
20 | 20 | else throw("Attached payment is required") | |
21 | 21 | if ((UserBalance != 0)) | |
22 | 22 | then throw("You already have funds supplied, cannot supply more than once") | |
23 | - | else if (if (((50 * 100000000) > | |
23 | + | else if (if (((50 * 100000000) > pmt.amount)) | |
24 | 24 | then true | |
25 | 25 | else (pmt.assetId != BUsd)) | |
26 | - | then throw("Can only deposit | |
26 | + | then throw("Can only deposit BUSD tokens, and amount should be at least 50 BUSD") | |
27 | 27 | else { | |
28 | 28 | let NewBalance = (UserBalance + pmt.amount) | |
29 | 29 | [IntegerEntry((toBase58String(i.caller.bytes) + "_Liq"), NewBalance), IntegerEntry((toBase58String(i.caller.bytes) + "_Deposit"), NewBalance), IntegerEntry((toBase58String(i.caller.bytes) + "_LastUnstake"), height)] | |
30 | 30 | } | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | ||
35 | 35 | @Callable(i) | |
36 | 36 | func WithdrawLiq () = { | |
37 | 37 | let UserLiquidity = (toBase58String(i.caller.bytes) + "_Liq") | |
38 | 38 | let LastUnstakeBlock = (toBase58String(i.caller.bytes) + "_LastUnstake") | |
39 | 39 | let trxUnstakeNum = (toBase58String(i.caller.bytes) + "_trxUnstake") | |
40 | 40 | let User1stDeposit = (toBase58String(i.caller.bytes) + "_Deposit") | |
41 | 41 | let dAppFrees = Address(dAppFees) | |
42 | 42 | let FeePaid = 1 | |
43 | 43 | let User1stDepositValue = match getInteger(this, User1stDeposit) { | |
44 | 44 | case a: Int => | |
45 | 45 | a | |
46 | 46 | case _ => | |
47 | 47 | 0 | |
48 | 48 | } | |
49 | 49 | let amount = match getInteger(this, UserLiquidity) { | |
50 | 50 | case a: Int => | |
51 | 51 | a | |
52 | 52 | case _ => | |
53 | 53 | 0 | |
54 | 54 | } | |
55 | 55 | let trxUnstakeValue = match getInteger(this, trxUnstakeNum) { | |
56 | 56 | case a: Int => | |
57 | 57 | a | |
58 | 58 | case _ => | |
59 | 59 | 0 | |
60 | 60 | } | |
61 | 61 | let LastUnstakeBlockValue = match getInteger(this, LastUnstakeBlock) { | |
62 | 62 | case a: Int => | |
63 | 63 | a | |
64 | 64 | case _ => | |
65 | 65 | 0 | |
66 | 66 | } | |
67 | 67 | if ((amount == 0)) | |
68 | 68 | then throw(("You do not have enough funds to withdraw, your available funds are: " + toString((amount / 100000000)))) | |
69 | 69 | else { | |
70 | 70 | let WaitTime = if ((trxUnstakeValue == 0)) | |
71 | 71 | then (1 * 2) | |
72 | 72 | else (1 * 1440) | |
73 | 73 | if (((LastUnstakeBlockValue + WaitTime) > height)) | |
74 | 74 | then throw((("Second withdraw cannot be done before " + toString(((LastUnstakeBlockValue + WaitTime) - height))) + " min")) | |
75 | 75 | else { | |
76 | 76 | let PaidtrxValue = if ((trxUnstakeValue == 3)) | |
77 | 77 | then 0 | |
78 | 78 | else (trxUnstakeValue + 1) | |
79 | 79 | let WithdrawAmount = ((User1stDepositValue / 4) - (FeePaid * 100000000)) | |
80 | 80 | let UserAccount = if ((trxUnstakeValue == 3)) | |
81 | 81 | then 0 | |
82 | 82 | else (User1stDepositValue - (PaidtrxValue * (WithdrawAmount + (FeePaid * 100000000)))) | |
83 | 83 | $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_trxUnstake"), PaidtrxValue), IntegerEntry((toBase58String(i.caller.bytes) + "_Liq"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_LastUnstake"), height), ScriptTransfer(i.caller, WithdrawAmount, BUsd), ScriptTransfer(dAppFrees, (FeePaid * 100000000), BUsd)], BUsd) | |
84 | 84 | } | |
85 | 85 | } | |
86 | 86 | } | |
87 | 87 | ||
88 | 88 |
github/deemru/w8io/6500d08 29.41 ms ◑