tx · HgNctPLGZ5HWN36sGXcU1XAVqvrvHiUDjCYBosZ6zt6p

3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj:  -0.05000000 Waves

2024.02.14 14:01 [2975798] smart account 3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj > SELF 0.00000000 Waves

{ "type": 13, "id": "HgNctPLGZ5HWN36sGXcU1XAVqvrvHiUDjCYBosZ6zt6p", "fee": 5000000, "feeAssetId": null, "timestamp": 1707908482075, "version": 2, "chainId": 84, "sender": "3MriS1yLhFcKRAM51jDyNAdusa6bCWrTCYj", "senderPublicKey": "CgjXoHPsstPW1WBAcTeBgjKtLSNFmLbQ7pLJ19JzkCy9", "proofs": [ "QG8wdgnzpP4SJ3p8g27UZnu66eLd6KcNivmMCojXn9Vfsz1rBevkarzQarDgjPpFHMjXriDKUVHqi76M9eMaD92" ], "script": "base64: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", "height": 2975798, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 89M6nn5Tu9uL2j6m7rJFuEGPoRLmtP8FMeCiMK9PY5WQ Next: none Diff:
OldNewDifferences
66 let b = 100000000
77
88 func c (d) = {
9- let e = getInteger(a, ("dao_user_" + d))
9+ let e = getInteger(this, (d + "_endHeight"))
1010 if ($isInstanceOf(e, "Int"))
1111 then {
1212 let f = e
1616 }
1717
1818
19-func g (h,d) = {
20- let e = getBoolean(this, (((h + "_") + d) + "_voted"))
21- if ($isInstanceOf(e, "Boolean"))
22- then {
23- let i = e
24- i
25- }
26- else false
27- }
28-
29-
30-func j (h) = {
31- let e = getInteger(this, (h + "_yes"))
19+func g (h) = {
20+ let e = getInteger(a, ("dao_user_" + h))
3221 if ($isInstanceOf(e, "Int"))
3322 then {
3423 let f = e
3827 }
3928
4029
41-func k (h) = {
42- let e = getInteger(this, (h + "_no"))
30+func i (d,h) = {
31+ let e = getBoolean(this, (((d + "_") + h) + "_voted"))
32+ if ($isInstanceOf(e, "Boolean"))
33+ then {
34+ let j = e
35+ j
36+ }
37+ else false
38+ }
39+
40+
41+func k (d) = {
42+ let e = getInteger(this, (d + "_yes"))
43+ if ($isInstanceOf(e, "Int"))
44+ then {
45+ let f = e
46+ f
47+ }
48+ else -1
49+ }
50+
51+
52+func l (d) = {
53+ let e = getInteger(this, (d + "_no"))
4354 if ($isInstanceOf(e, "Int"))
4455 then {
4556 let f = e
5061
5162
5263 @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))
64+func registerVote (m,n,o) = {
65+ let p = toBase58String(f.callerPublicKey)
66+ let d = toBase58String(f.transactionId)
67+ let q = (height + 7200)
68+ let r = g(p)
69+ if ((b > r))
5970 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), StringEntry((h + "_initiator"), o), IntegerEntry((h + "_yes"), 0), IntegerEntry((h + "_no"), 0)]
71+ else [IntegerEntry((d + "_endHeight"), q), StringEntry((d + "_title"), m), StringEntry((d + "_description"), n), StringEntry((d + "_link"), o), StringEntry((d + "_initiator"), p), IntegerEntry((d + "_yes"), 0), IntegerEntry((d + "_no"), 0)]
6172 }
6273
6374
6475
6576 @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))
77+func yes (d) = {
78+ let p = toBase58String(f.callerPublicKey)
79+ let s = k(d)
80+ let t = g(p)
81+ let u = i(d, p)
82+ let v = c(d)
83+ if ((s == -1))
7284 then throw("Vote not found!")
73- else if (t)
74- then throw("Address already voted!")
75- else [IntegerEntry((h + "_yes"), (r + s)), IntegerEntry((((h + "_") + o) + "_yes"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)]
85+ else if ((height > v))
86+ then throw("Vote no longer active!")
87+ else if (u)
88+ then throw("Address already voted!")
89+ else [IntegerEntry((d + "_yes"), (s + t)), IntegerEntry((((d + "_") + p) + "_yes"), t), BooleanEntry((((d + "_") + p) + "_voted"), true)]
7690 }
7791
7892
7993
8094 @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))
95+func no (d) = {
96+ let p = toBase58String(f.callerPublicKey)
97+ let w = l(d)
98+ let t = g(p)
99+ let u = i(d, p)
100+ let v = c(d)
101+ if ((w == -1))
87102 then throw("Vote not found!")
88- else if (t)
89- then throw("Address already voted!")
90- else [IntegerEntry((h + "_no"), (u + s)), IntegerEntry((((h + "_") + o) + "_no"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)]
103+ else if ((height > v))
104+ then throw("Vote no longer active!")
105+ else if (u)
106+ then throw("Address already voted!")
107+ else [IntegerEntry((d + "_no"), (w + t)), IntegerEntry((((d + "_") + p) + "_no"), t), BooleanEntry((((d + "_") + p) + "_voted"), true)]
91108 }
92109
93110
94111
95112 @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"))
113+func retractVote (d) = {
114+ let p = toBase58String(f.callerPublicKey)
115+ let w = l(d)
116+ let s = k(d)
117+ let x = {
118+ let e = getInteger(this, (((d + "_") + p) + "_no"))
102119 if ($isInstanceOf(e, "Int"))
103120 then {
104- let w = e
105- w
121+ let y = e
122+ y
106123 }
107124 else 0
108125 }
109- let x = {
110- let e = getInteger(this, (((h + "_") + o) + "_yes"))
126+ let z = {
127+ let e = getInteger(this, (((d + "_") + p) + "_yes"))
111128 if ($isInstanceOf(e, "Int"))
112129 then {
113- let w = e
114- w
130+ let y = e
131+ y
115132 }
116133 else 0
117134 }
118- if (if ((r == -1))
135+ let v = c(d)
136+ if (if ((s == -1))
119137 then true
120- else (u == -1))
138+ else (w == -1))
121139 then throw("No active vote for this vote id!")
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)]
140+ else if ((height > v))
141+ then throw("Vote no longer active!")
142+ else [IntegerEntry((d + "_no"), (w - x)), IntegerEntry((d + "_yes"), (s - z)), IntegerEntry((((d + "_") + p) + "_no"), 0), IntegerEntry((((d + "_") + p) + "_yes"), 0), BooleanEntry((((d + "_") + p) + "_voted"), false)]
123143 }
124144
125145
126-@Verifier(y)
127-func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey)
146+@Verifier(A)
147+func B () = sigVerify(A.bodyBytes, A.proofs[0], A.senderPublicKey)
128148
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = addressFromStringValue("3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV")
55
66 let b = 100000000
77
88 func c (d) = {
9- let e = getInteger(a, ("dao_user_" + d))
9+ let e = getInteger(this, (d + "_endHeight"))
1010 if ($isInstanceOf(e, "Int"))
1111 then {
1212 let f = e
1313 f
1414 }
1515 else -1
1616 }
1717
1818
19-func g (h,d) = {
20- let e = getBoolean(this, (((h + "_") + d) + "_voted"))
21- if ($isInstanceOf(e, "Boolean"))
22- then {
23- let i = e
24- i
25- }
26- else false
27- }
28-
29-
30-func j (h) = {
31- let e = getInteger(this, (h + "_yes"))
19+func g (h) = {
20+ let e = getInteger(a, ("dao_user_" + h))
3221 if ($isInstanceOf(e, "Int"))
3322 then {
3423 let f = e
3524 f
3625 }
3726 else -1
3827 }
3928
4029
41-func k (h) = {
42- let e = getInteger(this, (h + "_no"))
30+func i (d,h) = {
31+ let e = getBoolean(this, (((d + "_") + h) + "_voted"))
32+ if ($isInstanceOf(e, "Boolean"))
33+ then {
34+ let j = e
35+ j
36+ }
37+ else false
38+ }
39+
40+
41+func k (d) = {
42+ let e = getInteger(this, (d + "_yes"))
43+ if ($isInstanceOf(e, "Int"))
44+ then {
45+ let f = e
46+ f
47+ }
48+ else -1
49+ }
50+
51+
52+func l (d) = {
53+ let e = getInteger(this, (d + "_no"))
4354 if ($isInstanceOf(e, "Int"))
4455 then {
4556 let f = e
4657 f
4758 }
4859 else -1
4960 }
5061
5162
5263 @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))
64+func registerVote (m,n,o) = {
65+ let p = toBase58String(f.callerPublicKey)
66+ let d = toBase58String(f.transactionId)
67+ let q = (height + 7200)
68+ let r = g(p)
69+ if ((b > r))
5970 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), StringEntry((h + "_initiator"), o), IntegerEntry((h + "_yes"), 0), IntegerEntry((h + "_no"), 0)]
71+ else [IntegerEntry((d + "_endHeight"), q), StringEntry((d + "_title"), m), StringEntry((d + "_description"), n), StringEntry((d + "_link"), o), StringEntry((d + "_initiator"), p), IntegerEntry((d + "_yes"), 0), IntegerEntry((d + "_no"), 0)]
6172 }
6273
6374
6475
6576 @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))
77+func yes (d) = {
78+ let p = toBase58String(f.callerPublicKey)
79+ let s = k(d)
80+ let t = g(p)
81+ let u = i(d, p)
82+ let v = c(d)
83+ if ((s == -1))
7284 then throw("Vote not found!")
73- else if (t)
74- then throw("Address already voted!")
75- else [IntegerEntry((h + "_yes"), (r + s)), IntegerEntry((((h + "_") + o) + "_yes"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)]
85+ else if ((height > v))
86+ then throw("Vote no longer active!")
87+ else if (u)
88+ then throw("Address already voted!")
89+ else [IntegerEntry((d + "_yes"), (s + t)), IntegerEntry((((d + "_") + p) + "_yes"), t), BooleanEntry((((d + "_") + p) + "_voted"), true)]
7690 }
7791
7892
7993
8094 @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))
95+func no (d) = {
96+ let p = toBase58String(f.callerPublicKey)
97+ let w = l(d)
98+ let t = g(p)
99+ let u = i(d, p)
100+ let v = c(d)
101+ if ((w == -1))
87102 then throw("Vote not found!")
88- else if (t)
89- then throw("Address already voted!")
90- else [IntegerEntry((h + "_no"), (u + s)), IntegerEntry((((h + "_") + o) + "_no"), s), BooleanEntry((((h + "_") + o) + "_voted"), true)]
103+ else if ((height > v))
104+ then throw("Vote no longer active!")
105+ else if (u)
106+ then throw("Address already voted!")
107+ else [IntegerEntry((d + "_no"), (w + t)), IntegerEntry((((d + "_") + p) + "_no"), t), BooleanEntry((((d + "_") + p) + "_voted"), true)]
91108 }
92109
93110
94111
95112 @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"))
113+func retractVote (d) = {
114+ let p = toBase58String(f.callerPublicKey)
115+ let w = l(d)
116+ let s = k(d)
117+ let x = {
118+ let e = getInteger(this, (((d + "_") + p) + "_no"))
102119 if ($isInstanceOf(e, "Int"))
103120 then {
104- let w = e
105- w
121+ let y = e
122+ y
106123 }
107124 else 0
108125 }
109- let x = {
110- let e = getInteger(this, (((h + "_") + o) + "_yes"))
126+ let z = {
127+ let e = getInteger(this, (((d + "_") + p) + "_yes"))
111128 if ($isInstanceOf(e, "Int"))
112129 then {
113- let w = e
114- w
130+ let y = e
131+ y
115132 }
116133 else 0
117134 }
118- if (if ((r == -1))
135+ let v = c(d)
136+ if (if ((s == -1))
119137 then true
120- else (u == -1))
138+ else (w == -1))
121139 then throw("No active vote for this vote id!")
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)]
140+ else if ((height > v))
141+ then throw("Vote no longer active!")
142+ else [IntegerEntry((d + "_no"), (w - x)), IntegerEntry((d + "_yes"), (s - z)), IntegerEntry((((d + "_") + p) + "_no"), 0), IntegerEntry((((d + "_") + p) + "_yes"), 0), BooleanEntry((((d + "_") + p) + "_voted"), false)]
123143 }
124144
125145
126-@Verifier(y)
127-func z () = sigVerify(y.bodyBytes, y.proofs[0], y.senderPublicKey)
146+@Verifier(A)
147+func B () = sigVerify(A.bodyBytes, A.proofs[0], A.senderPublicKey)
128148

github/deemru/w8io/3ef1775 
52.23 ms