tx · DE3hUHkYx9H8rFQc7mXW6UmeaHTsVGVQtjH3YBcvoHfa 3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk: -0.01000000 Waves 2023.02.02 11:22 [3497286] smart account 3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk > SELF 0.00000000 Waves
{ "type": 13, "id": "DE3hUHkYx9H8rFQc7mXW6UmeaHTsVGVQtjH3YBcvoHfa", "fee": 1000000, "feeAssetId": null, "timestamp": 1675326154541, "version": 2, "chainId": 87, "sender": "3PPK7G7BQf3yWQdXapuBhEhYkaqNBfcvNtk", "senderPublicKey": "A7NMFMzFrP68kDc9YuQ5eyn4AvoXyFaRuanTKhzinA7k", "proofs": [ "2F3wNhAq61oLFaqDYmKJ9HrA6r4Y3kaGa2Cc4W3Wy3fwtSWpN3hWWfz6VhDMf5PJfXQLUAJQf5sfuCLQbpmsDZhy" ], "script": "base64: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", "height": 3497286, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EK6tfbE8VauEQgMCo1Hc8gaho8dBdGytmu7uYAZvdfLZ Next: none Diff:
Old | New | Differences | |
---|---|---|---|
37 | 37 | let TCIIssue = Reissue(TCI, amountToIssue, true) | |
38 | 38 | let transfer = ScriptTransfer(i.caller, amountToIssue, TCI) | |
39 | 39 | let transferFee = ScriptTransfer(Address(tw), fee, BA) | |
40 | - | [TCIIssue, transfer] | |
40 | + | [TCIIssue, transfer, transferFee] | |
41 | 41 | } | |
42 | 42 | } | |
43 | 43 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let tw = base58'3P93R2GBkTGVehRPhytHr7sdxYww93jkbhm' | |
5 | 5 | ||
6 | 6 | let BA = base58'8wUmN9Y15f3JR4KZfE81XLXpkdgwnqoBNG6NmocZpKQx' | |
7 | 7 | ||
8 | 8 | let TCI = base58'4CDoUKSAtLTwVTpdxFu6EcbafiCDZUSBXrWGjrAcCPoL' | |
9 | 9 | ||
10 | 10 | let isStopped = false | |
11 | 11 | ||
12 | 12 | let multi8 = 100000000 | |
13 | 13 | ||
14 | 14 | let multi10 = 10000000000 | |
15 | 15 | ||
16 | 16 | @Callable(i) | |
17 | 17 | func stake () = { | |
18 | 18 | let pmt = value(i.payments[0]) | |
19 | 19 | let pmtAmount = pmt.amount | |
20 | 20 | if ((pmt.assetId != BA)) | |
21 | 21 | then throw("You can stake sNSBT only") | |
22 | 22 | else if (isStopped) | |
23 | 23 | then throw("smart contract is on lock") | |
24 | 24 | else { | |
25 | 25 | let inTreasury = assetBalance(this, BA) | |
26 | 26 | let totalIssued = match assetInfo(TCI) { | |
27 | 27 | case asset: Asset => | |
28 | 28 | asset.quantity | |
29 | 29 | case _ => | |
30 | 30 | throw("Can't find asset") | |
31 | 31 | } | |
32 | 32 | let treasury = (inTreasury - pmtAmount) | |
33 | 33 | let singleTCIinValue = fraction(totalIssued, 100000000, treasury) | |
34 | 34 | let fee = fraction(pmtAmount, multi8, multi10) | |
35 | 35 | let depositBalanceAfterFee = (pmtAmount - fee) | |
36 | 36 | let amountToIssue = fraction(depositBalanceAfterFee, singleTCIinValue, 100000000) | |
37 | 37 | let TCIIssue = Reissue(TCI, amountToIssue, true) | |
38 | 38 | let transfer = ScriptTransfer(i.caller, amountToIssue, TCI) | |
39 | 39 | let transferFee = ScriptTransfer(Address(tw), fee, BA) | |
40 | - | [TCIIssue, transfer] | |
40 | + | [TCIIssue, transfer, transferFee] | |
41 | 41 | } | |
42 | 42 | } | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | ||
46 | 46 | @Callable(i) | |
47 | 47 | func withdraw () = { | |
48 | 48 | let w = value(i.payments[0]) | |
49 | 49 | let amount = w.amount | |
50 | 50 | let balance = assetBalance(i.caller, TCI) | |
51 | 51 | if ((w.assetId != TCI)) | |
52 | 52 | then throw("sdasda") | |
53 | 53 | else if ((0 >= amount)) | |
54 | 54 | then throw("Can't withdraw 0 or negative ammount") | |
55 | 55 | else if ((0 >= balance)) | |
56 | 56 | then throw("Unsuficient account balance") | |
57 | 57 | else { | |
58 | 58 | let TCIAmount = match assetInfo(TCI) { | |
59 | 59 | case q: Asset => | |
60 | 60 | q.quantity | |
61 | 61 | case _ => | |
62 | 62 | 0 | |
63 | 63 | } | |
64 | 64 | let vp = fraction(assetBalance(this, BA), multi8, TCIAmount) | |
65 | 65 | let toRep = fraction(vp, amount, multi8) | |
66 | 66 | let tc = fraction(toRep, multi8, multi10) | |
67 | 67 | let brn = Burn(TCI, amount) | |
68 | 68 | let trb = (toRep - tc) | |
69 | 69 | let trsf = ScriptTransfer(i.caller, trb, BA) | |
70 | 70 | let ttr = ScriptTransfer(Address(tw), tc, BA) | |
71 | 71 | [brn, trsf, ttr] | |
72 | 72 | } | |
73 | 73 | } | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | @Verifier(tx) | |
77 | 77 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
78 | 78 |
github/deemru/w8io/6500d08 47.34 ms ◑