tx · 9WTWmrDj3xHekfa78f7sHmGLo7nPf5iyLiRKqVCabkvy 3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj: -0.05000000 Waves 2024.02.07 15:30 [2965821] smart account 3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj > SELF 0.00000000 Waves
{ "type": 13, "id": "9WTWmrDj3xHekfa78f7sHmGLo7nPf5iyLiRKqVCabkvy", "fee": 5000000, "feeAssetId": null, "timestamp": 1707309052546, "version": 2, "chainId": 84, "sender": "3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj", "senderPublicKey": "CgjXoHPsstPW1WBAcTeBgjKtLSNFmLbQ7pLJ19JzkCy9", "proofs": [ "4MQiEEJs5ioYuLwLPRHK9JG8AYBkT9py7j9gA1eiNBEnUPQhkZPHwodz3ESD64E8B6h65dq9EHVscnhpbEeuEnv7" ], "script": "base64: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ZAQAAAAPdm90ZXNGcm9tQ2FsbGVyCQEAAAASZ2V0Vm90ZXNGcm9tQ2FsbGVyAAAAAQUAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhbHJlYWR5Vm90ZWQJAQAAAA9nZXRBbHJlYWR5Vm90ZWQAAAACBQAAAAZ2b3RlSWQFAAAAD2NhbGxlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAPY3VycmVudFllc1ZvdGVzAP//////////CQAAAgAAAAECAAAAD1ZvdGUgbm90IGZvdW5kIQMFAAAADGFscmVhZHlWb3RlZAkAAAIAAAABAgAAABZBZGRyZXNzIGFscmVhZHkgdm90ZWQhCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABnZvdGVJZAIAAAAEX3llcwkAAGQAAAACBQAAAA9jdXJyZW50WWVzVm90ZXMFAAAAD3ZvdGVzRnJvbUNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGdm90ZUlkAgAAAAFfBQAAAA9jYWxsZXJQdWJsaWNLZXkCAAAABF95ZXMFAAAAD3ZvdGVzRnJvbUNhbGxlcgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGdm90ZUlkAgAAAAFfBQAAAA9jYWxsZXJQdWJsaWNLZXkCAAAABl92b3RlZAYFAAAAA25pbAAAAAFpAQAAAAJubwAAAAEAAAAGdm90ZUlkBAAAAA9jYWxsZXJQdWJsaWNLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA5jdXJyZW50Tm9Wb3RlcwkBAAAAFmdldEN1cnJlbnROb1ZvdGVzRm9ySWQAAAABBQAAAAZ2b3RlSWQEAAAAD3ZvdGVzRnJvbUNhbGxlcgkBAAAAEmdldFZvdGVzRnJvbUNhbGxlcgAAAAEFAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYWxyZWFkeVZvdGVkCQEAAAAPZ2V0QWxyZWFkeVZvdGVkAAAAAgUAAAAGdm90ZUlkBQAAAA9jYWxsZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAADmN1cnJl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", "height": 2965821, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6fcRYCzvb6mLmjpGTEqqzn7ZXpaJQ5WcCUzG57Z3T8o9 Next: 89M6nn5Tu9uL2j6m7rJFuEGPoRLmtP8FMeCiMK9PY5WQ Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = addressFromStringValue("3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV") | |
5 | 5 | ||
6 | - | func b (c) = { | |
7 | - | let d = getInteger(a, ("dao_user_" + c)) | |
8 | - | if ($isInstanceOf(d, "Int")) | |
6 | + | let b = 100000000 | |
7 | + | ||
8 | + | func c (d) = { | |
9 | + | let e = getInteger(a, ("dao_user_" + d)) | |
10 | + | if ($isInstanceOf(e, "Int")) | |
9 | 11 | then { | |
10 | - | let | |
11 | - | | |
12 | + | let f = e | |
13 | + | f | |
12 | 14 | } | |
13 | 15 | else -1 | |
14 | 16 | } | |
15 | 17 | ||
16 | 18 | ||
17 | - | func | |
18 | - | let | |
19 | - | if ($isInstanceOf( | |
19 | + | func g (h,d) = { | |
20 | + | let e = getBoolean(this, (((h + "_") + d) + "_voted")) | |
21 | + | if ($isInstanceOf(e, "Boolean")) | |
20 | 22 | then { | |
21 | - | let | |
22 | - | | |
23 | + | let i = e | |
24 | + | i | |
23 | 25 | } | |
24 | 26 | else false | |
25 | 27 | } | |
26 | 28 | ||
27 | 29 | ||
28 | - | func | |
29 | - | let | |
30 | - | if ($isInstanceOf( | |
30 | + | func j (h) = { | |
31 | + | let e = getInteger(this, (h + "_yes")) | |
32 | + | if ($isInstanceOf(e, "Int")) | |
31 | 33 | then { | |
32 | - | let | |
33 | - | | |
34 | + | let f = e | |
35 | + | f | |
34 | 36 | } | |
35 | 37 | else -1 | |
36 | 38 | } | |
37 | 39 | ||
38 | 40 | ||
39 | - | func | |
40 | - | let | |
41 | - | if ($isInstanceOf( | |
41 | + | func k (h) = { | |
42 | + | let e = getInteger(this, (h + "_no")) | |
43 | + | if ($isInstanceOf(e, "Int")) | |
42 | 44 | then { | |
43 | - | let | |
44 | - | | |
45 | + | let f = e | |
46 | + | f | |
45 | 47 | } | |
46 | 48 | else -1 | |
47 | 49 | } | |
48 | 50 | ||
49 | 51 | ||
50 | - | @Callable(e) | |
51 | - | func registerVote (k,l,m) = { | |
52 | - | let g = toBase58String(e.transactionId) | |
53 | - | let n = (height + 7200) | |
54 | - | [IntegerEntry((g + "_endHeight"), n), StringEntry((g + "_title"), k), StringEntry((g + "_description"), l), StringEntry((g + "_link"), m), IntegerEntry((g + "_yes"), 0), IntegerEntry((g + "_no"), 0)] | |
52 | + | @Callable(f) | |
53 | + | func registerVote (l,m,n) = { | |
54 | + | let o = toBase58String(f.callerPublicKey) | |
55 | + | let h = toBase58String(f.transactionId) | |
56 | + | let p = (height + 7200) | |
57 | + | let q = c(o) | |
58 | + | if ((b > q)) | |
59 | + | then throw("User has not been active enough on the platform!") | |
60 | + | else [IntegerEntry((h + "_endHeight"), p), StringEntry((h + "_title"), l), StringEntry((h + "_description"), m), StringEntry((h + "_link"), n), IntegerEntry((h + "_yes"), 0), IntegerEntry((h + "_no"), 0)] | |
55 | 61 | } | |
56 | 62 | ||
57 | 63 | ||
58 | 64 | ||
59 | - | @Callable( | |
60 | - | func yes ( | |
61 | - | let o = toBase58String( | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | if (( | |
65 | + | @Callable(f) | |
66 | + | func yes (h) = { | |
67 | + | let o = toBase58String(f.callerPublicKey) | |
68 | + | let r = j(h) | |
69 | + | let s = c(o) | |
70 | + | let t = g(h, o) | |
71 | + | if ((r == -1)) | |
66 | 72 | then throw("Vote not found!") | |
67 | - | else if ( | |
73 | + | else if (t) | |
68 | 74 | then throw("Address already voted!") | |
69 | - | else [IntegerEntry(( | |
75 | + | else [IntegerEntry((h + "_yes"), (r + s)), IntegerEntry((((h + "_") + o) + "_yes"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)] | |
70 | 76 | } | |
71 | 77 | ||
72 | 78 | ||
73 | 79 | ||
74 | - | @Callable( | |
75 | - | func no ( | |
76 | - | let o = toBase58String( | |
77 | - | let | |
78 | - | let | |
79 | - | let | |
80 | - | if (( | |
80 | + | @Callable(f) | |
81 | + | func no (h) = { | |
82 | + | let o = toBase58String(f.callerPublicKey) | |
83 | + | let u = k(h) | |
84 | + | let s = c(o) | |
85 | + | let t = g(h, o) | |
86 | + | if ((u == -1)) | |
81 | 87 | then throw("Vote not found!") | |
82 | - | else if ( | |
88 | + | else if (t) | |
83 | 89 | then throw("Address already voted!") | |
84 | - | else [IntegerEntry(( | |
90 | + | else [IntegerEntry((h + "_no"), (u + s)), IntegerEntry((((h + "_") + o) + "_no"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)] | |
85 | 91 | } | |
86 | 92 | ||
87 | 93 | ||
88 | 94 | ||
89 | - | @Callable( | |
90 | - | func retractVote ( | |
91 | - | let o = toBase58String( | |
92 | - | let | |
93 | - | let | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | @Callable(f) | |
96 | + | func retractVote (h) = { | |
97 | + | let o = toBase58String(f.callerPublicKey) | |
98 | + | let u = k(h) | |
99 | + | let r = j(h) | |
100 | + | let v = { | |
101 | + | let e = getInteger(this, (((h + "_") + o) + "_no")) | |
102 | + | if ($isInstanceOf(e, "Int")) | |
97 | 103 | then { | |
98 | - | let | |
99 | - | | |
104 | + | let w = e | |
105 | + | w | |
100 | 106 | } | |
101 | 107 | else 0 | |
102 | 108 | } | |
103 | - | let | |
104 | - | let | |
105 | - | if ($isInstanceOf( | |
109 | + | let x = { | |
110 | + | let e = getInteger(this, (((h + "_") + o) + "_yes")) | |
111 | + | if ($isInstanceOf(e, "Int")) | |
106 | 112 | then { | |
107 | - | let | |
108 | - | | |
113 | + | let w = e | |
114 | + | w | |
109 | 115 | } | |
110 | 116 | else 0 | |
111 | 117 | } | |
112 | - | if (if (( | |
118 | + | if (if ((r == -1)) | |
113 | 119 | then true | |
114 | - | else ( | |
120 | + | else (u == -1)) | |
115 | 121 | then throw("No active vote for this vote id!") | |
116 | - | else [IntegerEntry(( | |
122 | + | else [IntegerEntry((h + "_no"), (u - v)), IntegerEntry((h + "_yes"), (r - x)), IntegerEntry((((h + "_") + o) + "_no"), 0), IntegerEntry((((h + "_") + o) + "_yes"), 0), BooleanEntry((((h + "_") + o) + "_voted"), false)] | |
117 | 123 | } | |
118 | 124 | ||
119 | 125 | ||
120 | - | @Verifier( | |
121 | - | func | |
126 | + | @Verifier(y) | |
127 | + | func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey) | |
122 | 128 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = addressFromStringValue("3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV") | |
5 | 5 | ||
6 | - | func b (c) = { | |
7 | - | let d = getInteger(a, ("dao_user_" + c)) | |
8 | - | if ($isInstanceOf(d, "Int")) | |
6 | + | let b = 100000000 | |
7 | + | ||
8 | + | func c (d) = { | |
9 | + | let e = getInteger(a, ("dao_user_" + d)) | |
10 | + | if ($isInstanceOf(e, "Int")) | |
9 | 11 | then { | |
10 | - | let | |
11 | - | | |
12 | + | let f = e | |
13 | + | f | |
12 | 14 | } | |
13 | 15 | else -1 | |
14 | 16 | } | |
15 | 17 | ||
16 | 18 | ||
17 | - | func | |
18 | - | let | |
19 | - | if ($isInstanceOf( | |
19 | + | func g (h,d) = { | |
20 | + | let e = getBoolean(this, (((h + "_") + d) + "_voted")) | |
21 | + | if ($isInstanceOf(e, "Boolean")) | |
20 | 22 | then { | |
21 | - | let | |
22 | - | | |
23 | + | let i = e | |
24 | + | i | |
23 | 25 | } | |
24 | 26 | else false | |
25 | 27 | } | |
26 | 28 | ||
27 | 29 | ||
28 | - | func | |
29 | - | let | |
30 | - | if ($isInstanceOf( | |
30 | + | func j (h) = { | |
31 | + | let e = getInteger(this, (h + "_yes")) | |
32 | + | if ($isInstanceOf(e, "Int")) | |
31 | 33 | then { | |
32 | - | let | |
33 | - | | |
34 | + | let f = e | |
35 | + | f | |
34 | 36 | } | |
35 | 37 | else -1 | |
36 | 38 | } | |
37 | 39 | ||
38 | 40 | ||
39 | - | func | |
40 | - | let | |
41 | - | if ($isInstanceOf( | |
41 | + | func k (h) = { | |
42 | + | let e = getInteger(this, (h + "_no")) | |
43 | + | if ($isInstanceOf(e, "Int")) | |
42 | 44 | then { | |
43 | - | let | |
44 | - | | |
45 | + | let f = e | |
46 | + | f | |
45 | 47 | } | |
46 | 48 | else -1 | |
47 | 49 | } | |
48 | 50 | ||
49 | 51 | ||
50 | - | @Callable(e) | |
51 | - | func registerVote (k,l,m) = { | |
52 | - | let g = toBase58String(e.transactionId) | |
53 | - | let n = (height + 7200) | |
54 | - | [IntegerEntry((g + "_endHeight"), n), StringEntry((g + "_title"), k), StringEntry((g + "_description"), l), StringEntry((g + "_link"), m), IntegerEntry((g + "_yes"), 0), IntegerEntry((g + "_no"), 0)] | |
52 | + | @Callable(f) | |
53 | + | func registerVote (l,m,n) = { | |
54 | + | let o = toBase58String(f.callerPublicKey) | |
55 | + | let h = toBase58String(f.transactionId) | |
56 | + | let p = (height + 7200) | |
57 | + | let q = c(o) | |
58 | + | if ((b > q)) | |
59 | + | then throw("User has not been active enough on the platform!") | |
60 | + | else [IntegerEntry((h + "_endHeight"), p), StringEntry((h + "_title"), l), StringEntry((h + "_description"), m), StringEntry((h + "_link"), n), IntegerEntry((h + "_yes"), 0), IntegerEntry((h + "_no"), 0)] | |
55 | 61 | } | |
56 | 62 | ||
57 | 63 | ||
58 | 64 | ||
59 | - | @Callable( | |
60 | - | func yes ( | |
61 | - | let o = toBase58String( | |
62 | - | let | |
63 | - | let | |
64 | - | let | |
65 | - | if (( | |
65 | + | @Callable(f) | |
66 | + | func yes (h) = { | |
67 | + | let o = toBase58String(f.callerPublicKey) | |
68 | + | let r = j(h) | |
69 | + | let s = c(o) | |
70 | + | let t = g(h, o) | |
71 | + | if ((r == -1)) | |
66 | 72 | then throw("Vote not found!") | |
67 | - | else if ( | |
73 | + | else if (t) | |
68 | 74 | then throw("Address already voted!") | |
69 | - | else [IntegerEntry(( | |
75 | + | else [IntegerEntry((h + "_yes"), (r + s)), IntegerEntry((((h + "_") + o) + "_yes"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)] | |
70 | 76 | } | |
71 | 77 | ||
72 | 78 | ||
73 | 79 | ||
74 | - | @Callable( | |
75 | - | func no ( | |
76 | - | let o = toBase58String( | |
77 | - | let | |
78 | - | let | |
79 | - | let | |
80 | - | if (( | |
80 | + | @Callable(f) | |
81 | + | func no (h) = { | |
82 | + | let o = toBase58String(f.callerPublicKey) | |
83 | + | let u = k(h) | |
84 | + | let s = c(o) | |
85 | + | let t = g(h, o) | |
86 | + | if ((u == -1)) | |
81 | 87 | then throw("Vote not found!") | |
82 | - | else if ( | |
88 | + | else if (t) | |
83 | 89 | then throw("Address already voted!") | |
84 | - | else [IntegerEntry(( | |
90 | + | else [IntegerEntry((h + "_no"), (u + s)), IntegerEntry((((h + "_") + o) + "_no"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)] | |
85 | 91 | } | |
86 | 92 | ||
87 | 93 | ||
88 | 94 | ||
89 | - | @Callable( | |
90 | - | func retractVote ( | |
91 | - | let o = toBase58String( | |
92 | - | let | |
93 | - | let | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | @Callable(f) | |
96 | + | func retractVote (h) = { | |
97 | + | let o = toBase58String(f.callerPublicKey) | |
98 | + | let u = k(h) | |
99 | + | let r = j(h) | |
100 | + | let v = { | |
101 | + | let e = getInteger(this, (((h + "_") + o) + "_no")) | |
102 | + | if ($isInstanceOf(e, "Int")) | |
97 | 103 | then { | |
98 | - | let | |
99 | - | | |
104 | + | let w = e | |
105 | + | w | |
100 | 106 | } | |
101 | 107 | else 0 | |
102 | 108 | } | |
103 | - | let | |
104 | - | let | |
105 | - | if ($isInstanceOf( | |
109 | + | let x = { | |
110 | + | let e = getInteger(this, (((h + "_") + o) + "_yes")) | |
111 | + | if ($isInstanceOf(e, "Int")) | |
106 | 112 | then { | |
107 | - | let | |
108 | - | | |
113 | + | let w = e | |
114 | + | w | |
109 | 115 | } | |
110 | 116 | else 0 | |
111 | 117 | } | |
112 | - | if (if (( | |
118 | + | if (if ((r == -1)) | |
113 | 119 | then true | |
114 | - | else ( | |
120 | + | else (u == -1)) | |
115 | 121 | then throw("No active vote for this vote id!") | |
116 | - | else [IntegerEntry(( | |
122 | + | else [IntegerEntry((h + "_no"), (u - v)), IntegerEntry((h + "_yes"), (r - x)), IntegerEntry((((h + "_") + o) + "_no"), 0), IntegerEntry((((h + "_") + o) + "_yes"), 0), BooleanEntry((((h + "_") + o) + "_voted"), false)] | |
117 | 123 | } | |
118 | 124 | ||
119 | 125 | ||
120 | - | @Verifier( | |
121 | - | func | |
126 | + | @Verifier(y) | |
127 | + | func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey) | |
122 | 128 |
github/deemru/w8io/3ef1775 70.84 ms ◑![]()