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