tx · 8MLvnGT8QRwu1mmAiNBP6MPqwDBCL7zTyN2nga574mnr 3P7bATTj2FjsT3F8ruFnbBwrPWCMEP8UPhE: -0.00600000 Waves 2022.07.09 17:15 [3197873] smart account 3P7bATTj2FjsT3F8ruFnbBwrPWCMEP8UPhE > SELF 0.00000000 Waves
{ "type": 13, "id": "8MLvnGT8QRwu1mmAiNBP6MPqwDBCL7zTyN2nga574mnr", "fee": 600000, "feeAssetId": null, "timestamp": 1657376149390, "version": 2, "chainId": 87, "sender": "3P7bATTj2FjsT3F8ruFnbBwrPWCMEP8UPhE", "senderPublicKey": "49kbLTtWXVa1N9qfSUWQ68xvw9VHurdMky9CsEujcZ1W", "proofs": [ "2TTis9Joh1X6K4258VkjnBhBPrdDgGcwQxRuiXiky8SxWb2YmcBEMMTRdBe4eN1MzzYvH6DVoHStYiZrsh4mWe4" ], "script": "base64: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", "height": 3197873, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func tryGetInteger (key) = match getInteger(this, key) { | |
5 | + | case b: Int => | |
6 | + | b | |
7 | + | case _ => | |
8 | + | 0 | |
9 | + | } | |
10 | + | ||
11 | + | ||
12 | + | func getVotePower (user) = match getInteger(addressFromStringValue("3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS"), (user + "_staked")) { | |
13 | + | case val: Int => | |
14 | + | val | |
15 | + | case _ => | |
16 | + | throw("you don't have staked PUZZLE") | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | @Callable(i) | |
21 | + | func voteFor () = { | |
22 | + | let user = toString(i.caller) | |
23 | + | let power = getVotePower(user) | |
24 | + | let previousVote = tryGetInteger((user + "_voted")) | |
25 | + | [IntegerEntry((user + "_voted"), power), IntegerEntry("total_value", ((tryGetInteger("total_value") + power) - previousVote)), IntegerEntry("users_voted", (tryGetInteger("users_voted") + (if ((previousVote > 0)) | |
26 | + | then 0 | |
27 | + | else 1)))] | |
28 | + | } | |
29 | + | ||
30 | + | ||
31 | + | ||
32 | + | @Callable(i) | |
33 | + | func voteAgainst () = { | |
34 | + | let user = toString(i.caller) | |
35 | + | let power = getVotePower(user) | |
36 | + | let previousVote = tryGetInteger((user + "_voted")) | |
37 | + | [IntegerEntry((user + "_voted"), -(power)), IntegerEntry("total_value", ((tryGetInteger("total_value") - power) - previousVote)), IntegerEntry("users_voted", (tryGetInteger("users_voted") + (if ((previousVote > 0)) | |
38 | + | then 0 | |
39 | + | else 1)))] | |
40 | + | } | |
41 | + | ||
42 | + | ||
43 | + | ||
44 | + | @Callable(i) | |
45 | + | func getResults () = { | |
46 | + | let totalValue = tryGetInteger("total_value") | |
47 | + | let usersVoted = toString(tryGetInteger("users_voted")) | |
48 | + | throw(((((("current result: " + usersVoted) + " users voted, proposal will be likely ") + (if ((totalValue > 0)) | |
49 | + | then "accepted" | |
50 | + | else "rejected")) + " with a score of ") + toString((totalValue / 100000000)))) | |
51 | + | } | |
52 | + | ||
53 | + | ||
54 | + | @Verifier(tx) | |
55 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
56 | + |
github/deemru/w8io/6500d08 17.59 ms ◑