tx · 8Q9j5pH4AwJ9VaV9X6KNSGRWzU77TTnJsqGVQiaBXUXJ

3MqiiiD5GiCgJENfvC6HA8MyUeZfX1fB4yD:  -0.01400000 Waves

2019.06.25 20:16 [557927] smart account 3MqiiiD5GiCgJENfvC6HA8MyUeZfX1fB4yD > SELF 0.00000000 Waves

{ "type": 13, "id": "8Q9j5pH4AwJ9VaV9X6KNSGRWzU77TTnJsqGVQiaBXUXJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1561482994267, "version": 1, "sender": "3MqiiiD5GiCgJENfvC6HA8MyUeZfX1fB4yD", "senderPublicKey": "2XEK2wpQ5tXMZdzxJPyGzitzHyVyQxp3WT9Ekxe8br7N", "proofs": [ "2vy2izwpL3M4gFfmv6cjq9jS6Va7zxUbiwSobuqUrh7JdnuuhegzCYaqqpUxLbJ3CZt8qVieahZJmJACcSqgRLXT" ], "script": "base64:AAIDAAAAAAAAAAAAAAAdAAAAAAROT05FAgAAAARub25lAAAAAAZWT1RFUlMAAAAAAAAAAAMAAAAABlFVT1JVTQAAAAAAAAAAAgAAAAAGVk9USU5HAgAAAAZ2b3RpbmcAAAAABlJFVkVBTAIAAAAGcmV2ZWFsAAAAAAhGRUFUVVJFRAIAAAAIZmVhdHVyZWQAAAAACERFTElTVEVEAgAAAAhkZWxpc3RlZAEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAAA9nZXRLZXlJdGVtUHJpY2UAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAGX3ByaWNlAQAAABFnZXRWYWx1ZUl0ZW1QcmljZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1QcmljZQAAAAEFAAAABGl0ZW0BAAAAFWdldEtleVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAARfY250AQAAABdnZXRWYWx1ZVVzZXJJdGVtQ291bnRlcgAAAAIAAAAEdXNlcgAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAKZ2V0S2V5SXRlbQAAAAIAAAAIc3VwcGxpZXIAAAAEaXRlbQkAASwAAAACAgAAAAVpdGVtXwkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhzdXBwbGllcgUAAAAEaXRlbQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABAAAABGl0ZW0JAAEsAAAAAgUAAAAEaXRlbQIAAAAFX2RhdGEBAAAAEmdldEtleUl0ZW1TdXBwbGllcgAAAAEAAAAEaXRlbQkAASwAAAACBQAAAARpdGVtAgAAAAZfb3duZXIBAAAAFGdldFZhbHVlSXRlbVN1cHBsaWVyAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbVN1cHBsaWVyAAAAAQUAAAAEaXRlbQEAAAAVZ2V0S2V5QmFsYW5jZVN1cHBsaWVyAAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAB2FjY291bnQCAAAACF9iYWxhbmNlAQAAABdnZXRWYWx1ZUJhbGFuY2VTdXBwbGllcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldEtleUJhbGFuY2VTdXBwbGllcgAAAAEFAAAABGl0ZW0BAAAADGdldEtleUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARpdGVtAgAAAAFfBQAAAAR1c2VyAgAAAAdfY29tbWl0AQAAAA5nZXRWYWx1ZUNvbW1pdAAAAAIAAAAEaXRlbQAAAAR1c2VyCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAMZ2V0S2V5Q29tbWl0AAAAAgUAAAAEaXRlbQUAAAAEdXNlcgEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19jb21jbnQBAAAAFGdldFZhbHVlQ29tbWl0c0NvdW50AAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5Q29tbWl0c0NvdW50AAAAAQUAAAAEaXRlbQEAAAAMZ2V0S2V5UmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAAAV8FAAAABHVzZXICAAAAB19yZXZlYWwBAAAADmdldFZhbHVlUmV2ZWFsAAAAAgAAAARpdGVtAAAABHVzZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAxnZXRLZXlSZXZlYWwAAAACBQAAAARpdGVtBQAAAAR1c2VyAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQABLAAAAAIFAAAABGl0ZW0CAAAAB19zdGF0dXMBAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACAAAABGl0ZW0AAAAEdm90ZQkAASwAAAACCQABLAAAAAIFAAAABGl0ZW0CAAAABF9yZXMFAAAABHZvdGUBAAAAEWdldFZhbHVlVm90ZUNvdW50AAAAAgAAAARpdGVtAAAABHZvdGUJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRLZXlWb3RlQ291bnQAAAACBQAAAARpdGVtBQAAAAR2b3RlAAAABAAAAAFpAQAAAAhwdXJjaGFzZQAAAAEAAAAEaXRlbQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAIGNhbiB1c2UgV0FWRVMgb25seSBhdCB0aGUgbW9tZW50BAAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAVwcmljZQkBAAAAEWdldFZhbHVlSXRlbVByaWNlAAAAAQUAAAAEaXRlbQQAAAAPc3VwcGxpZXJBZGRyZXNzCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtAwkAAGYAAAACBQAAAAVwcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAucHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gaXRlbSBwcmljZQMJAABmAAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAMHB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgaGlnaGVyIHRoYW4gaXRlbSBwcmljZQMJAAAAAAAAAgUAAAAPc3VwcGxpZXJBZGRyZXNzBQAAAAROT05FCQAAAgAAAAECAAAAF3N1cHBsaWVyIGRvZXMgbm90IGV4aXN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5VXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0JAABkAAAAAgkBAAAAF2dldFZhbHVlVXNlckl0ZW1Db3VudGVyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABGl0ZW0AAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlCYWxhbmNlU3VwcGxpZXIAAAABBQAAAA9zdXBwbGllckFkZHJlc3MJAABkAAAAAgkBAAAAF2dldFZhbHVlQmFsYW5jZVN1cHBsaWVyAAAAAQUAAAAPc3VwcGxpZXJBZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAAB2FkZEl0ZW0AAAADAAAABXRpdGxlAAAABXByaWNlAAAABGRhdGEEAAAAD3N1cHBsaWVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAARpdGVtCQEAAAAKZ2V0S2V5SXRlbQAAAAIFAAAAD3N1cHBsaWVyQWRkcmVzcwUAAAAFdGl0bGUDCQAAZwAAAAIAAAAAAAAAAAAFAAAABXByaWNlCQAAAgAAAAECAAAALnB1cmNoYXNlIGFtb3VudCBjYW5ub3QgYmUgbGVzcyB0aGFuIGl0ZW0gcHJpY2UDCQEAAAACIT0AAAACCQEAAAAUZ2V0VmFsdWVJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAAROT05FCQAAAgAAAAECAAAAE0l0ZW0gYWxyZWFkeSBleGlzdHMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRLZXlJdGVtU3VwcGxpZXIAAAABBQAAAARpdGVtBQAAAA9z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", "chainId": 84, "height": 557927, "spentComplexity": 0 } View: original | compacted Prev: GcqDgYMmS8iQH7AvXpnhZo2fU9wvmK9AKoDswj5SYyJM Next: Fs6icRBs9uCmurrkHrb1UREQkT7vYWmbgp4mT72h3Vfb Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
6-func b (c) = {
7- let d = {
8- let e = getInteger(this, c)
9- if ($isInstanceOf(e, "Int"))
6+let b = 3
7+
8+let c = 2
9+
10+let d = "voting"
11+
12+let e = "reveal"
13+
14+let f = "featured"
15+
16+let g = "delisted"
17+
18+func h (i) = {
19+ let j = {
20+ let k = getInteger(this, i)
21+ if ($isInstanceOf(k, "Int"))
1022 then {
11- let f = e
12- f
23+ let l = k
24+ l
1325 }
1426 else 0
1527 }
16- d
28+ j
1729 }
1830
1931
20-func g (c) = {
21- let h = {
22- let e = getString(this, c)
23- if ($isInstanceOf(e, "String"))
32+func m (i) = {
33+ let n = {
34+ let k = getString(this, i)
35+ if ($isInstanceOf(k, "String"))
2436 then {
25- let f = e
26- f
37+ let l = k
38+ l
2739 }
2840 else a
2941 }
30- h
42+ n
3143 }
3244
3345
34-func i (j) = (j + "_price")
46+func o (p) = (p + "_price")
3547
3648
37-func k (j) = b(i(j))
49+func q (p) = h(o(p))
3850
3951
40-func l (m,j) = (((j + "_") + m) + "_cnt")
52+func r (s,p) = (((p + "_") + s) + "_cnt")
4153
4254
43-func n (m,j) = b(l(m, j))
55+func t (s,p) = h(r(s, p))
4456
4557
46-func o (p,j) = ("item_" + toBase58String(sha256(toBytes((p + j)))))
58+func u (v,p) = ("item_" + toBase58String(sha256(toBytes((v + p)))))
4759
4860
49-func q (j) = (j + "_data")
61+func w (p) = (p + "_data")
5062
5163
52-func r (j) = (j + "_owner")
64+func x (p) = (p + "_owner")
5365
5466
55-func s (j) = g(r(j))
67+func y (p) = m(x(p))
5668
5769
58-func t (u) = (u + "_balance")
70+func z (A) = (A + "_balance")
5971
6072
61-func v (j) = b(t(j))
73+func B (p) = h(z(p))
6274
6375
64-@Callable(w)
65-func purchase (j) = {
66- let x = extract(w.payment)
67- if (isDefined(x.assetId))
76+func C (p,s) = (((p + "_") + s) + "_commit")
77+
78+
79+func D (p,s) = m(C(p, s))
80+
81+
82+func E (p) = (p + "_comcnt")
83+
84+
85+func F (p) = h(E(p))
86+
87+
88+func G (p,s) = (((p + "_") + s) + "_reveal")
89+
90+
91+func H (p,s) = m(G(p, s))
92+
93+
94+func I (p) = (p + "_status")
95+
96+
97+func J (p) = m(I(p))
98+
99+
100+func K (p,L) = ((p + "_res") + L)
101+
102+
103+func M (p,L) = h(K(p, L))
104+
105+
106+@Callable(N)
107+func purchase (p) = {
108+ let O = extract(N.payment)
109+ if (isDefined(O.assetId))
68110 then throw("can use WAVES only at the moment")
69111 else {
70- let y = toBase58String(w.caller.bytes)
71- let z = k(j)
72- let A = s(j)
73- if ((z > x.amount))
112+ let P = toBase58String(N.caller.bytes)
113+ let Q = q(p)
114+ let R = y(p)
115+ if ((Q > O.amount))
74116 then throw("purchase amount cannot be less than item price")
75- else if ((x.amount > z))
117+ else if ((O.amount > Q))
76118 then throw("purchase amount cannot be higher than item price")
77- else if ((A == a))
119+ else if ((R == a))
78120 then throw("supplier does not exist")
79- else WriteSet([DataEntry(l(y, j), (n(y, j) + 1)), DataEntry(t(A), (v(A) + x.amount))])
121+ else WriteSet([DataEntry(r(P, p), (t(P, p) + 1)), DataEntry(z(R), (B(R) + O.amount))])
80122 }
81123 }
82124
83125
84126
85-@Callable(w)
86-func addItem (B,z,C) = {
87- let A = toBase58String(w.caller.bytes)
88- let j = o(A, B)
89- if ((0 >= z))
127+@Callable(N)
128+func addItem (S,Q,T) = {
129+ let R = toBase58String(N.caller.bytes)
130+ let p = u(R, S)
131+ if ((0 >= Q))
90132 then throw("purchase amount cannot be less than item price")
91- else if ((s(j) != a))
133+ else if ((y(p) != a))
92134 then throw("Item already exists")
93- else WriteSet([DataEntry(r(j), A), DataEntry(i(j), z), DataEntry(q(j), C)])
135+ else WriteSet([DataEntry(x(p), R), DataEntry(o(p), Q), DataEntry(w(p), T)])
94136 }
95137
96138
97139
98-@Callable(w)
140+@Callable(N)
99141 func withdraw () = {
100- let A = toBase58String(w.caller.bytes)
101- let D = v(A)
102- if ((0 >= D))
142+ let R = toBase58String(N.caller.bytes)
143+ let U = B(R)
144+ if ((0 >= U))
103145 then throw("insufficient balance")
104- else ScriptResult(WriteSet([DataEntry(t(A), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(A), D, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(z(R), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(R), U, unit)]))
147+ }
148+
149+
150+
151+@Callable(N)
152+func voteCommit (p,V) = {
153+ let s = toBase58String(N.caller.bytes)
154+ let W = F(p)
155+ let X = J(p)
156+ if ((W >= b))
157+ then throw("reached max num of voters")
158+ else if ((D(p, s) != a))
159+ then throw("user has already participated")
160+ else if ((x(p) == a))
161+ then throw("item does not exist")
162+ else if (if ((X != a))
163+ then (X != d)
164+ else false)
165+ then throw("voting is not possible")
166+ else WriteSet([DataEntry(C(p, s), V), DataEntry(E(p), (W + 1)), DataEntry(I(p), if ((W == b))
167+ then e
168+ else d)])
105169 }
106170
107171
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
6-func b (c) = {
7- let d = {
8- let e = getInteger(this, c)
9- if ($isInstanceOf(e, "Int"))
6+let b = 3
7+
8+let c = 2
9+
10+let d = "voting"
11+
12+let e = "reveal"
13+
14+let f = "featured"
15+
16+let g = "delisted"
17+
18+func h (i) = {
19+ let j = {
20+ let k = getInteger(this, i)
21+ if ($isInstanceOf(k, "Int"))
1022 then {
11- let f = e
12- f
23+ let l = k
24+ l
1325 }
1426 else 0
1527 }
16- d
28+ j
1729 }
1830
1931
20-func g (c) = {
21- let h = {
22- let e = getString(this, c)
23- if ($isInstanceOf(e, "String"))
32+func m (i) = {
33+ let n = {
34+ let k = getString(this, i)
35+ if ($isInstanceOf(k, "String"))
2436 then {
25- let f = e
26- f
37+ let l = k
38+ l
2739 }
2840 else a
2941 }
30- h
42+ n
3143 }
3244
3345
34-func i (j) = (j + "_price")
46+func o (p) = (p + "_price")
3547
3648
37-func k (j) = b(i(j))
49+func q (p) = h(o(p))
3850
3951
40-func l (m,j) = (((j + "_") + m) + "_cnt")
52+func r (s,p) = (((p + "_") + s) + "_cnt")
4153
4254
43-func n (m,j) = b(l(m, j))
55+func t (s,p) = h(r(s, p))
4456
4557
46-func o (p,j) = ("item_" + toBase58String(sha256(toBytes((p + j)))))
58+func u (v,p) = ("item_" + toBase58String(sha256(toBytes((v + p)))))
4759
4860
49-func q (j) = (j + "_data")
61+func w (p) = (p + "_data")
5062
5163
52-func r (j) = (j + "_owner")
64+func x (p) = (p + "_owner")
5365
5466
55-func s (j) = g(r(j))
67+func y (p) = m(x(p))
5668
5769
58-func t (u) = (u + "_balance")
70+func z (A) = (A + "_balance")
5971
6072
61-func v (j) = b(t(j))
73+func B (p) = h(z(p))
6274
6375
64-@Callable(w)
65-func purchase (j) = {
66- let x = extract(w.payment)
67- if (isDefined(x.assetId))
76+func C (p,s) = (((p + "_") + s) + "_commit")
77+
78+
79+func D (p,s) = m(C(p, s))
80+
81+
82+func E (p) = (p + "_comcnt")
83+
84+
85+func F (p) = h(E(p))
86+
87+
88+func G (p,s) = (((p + "_") + s) + "_reveal")
89+
90+
91+func H (p,s) = m(G(p, s))
92+
93+
94+func I (p) = (p + "_status")
95+
96+
97+func J (p) = m(I(p))
98+
99+
100+func K (p,L) = ((p + "_res") + L)
101+
102+
103+func M (p,L) = h(K(p, L))
104+
105+
106+@Callable(N)
107+func purchase (p) = {
108+ let O = extract(N.payment)
109+ if (isDefined(O.assetId))
68110 then throw("can use WAVES only at the moment")
69111 else {
70- let y = toBase58String(w.caller.bytes)
71- let z = k(j)
72- let A = s(j)
73- if ((z > x.amount))
112+ let P = toBase58String(N.caller.bytes)
113+ let Q = q(p)
114+ let R = y(p)
115+ if ((Q > O.amount))
74116 then throw("purchase amount cannot be less than item price")
75- else if ((x.amount > z))
117+ else if ((O.amount > Q))
76118 then throw("purchase amount cannot be higher than item price")
77- else if ((A == a))
119+ else if ((R == a))
78120 then throw("supplier does not exist")
79- else WriteSet([DataEntry(l(y, j), (n(y, j) + 1)), DataEntry(t(A), (v(A) + x.amount))])
121+ else WriteSet([DataEntry(r(P, p), (t(P, p) + 1)), DataEntry(z(R), (B(R) + O.amount))])
80122 }
81123 }
82124
83125
84126
85-@Callable(w)
86-func addItem (B,z,C) = {
87- let A = toBase58String(w.caller.bytes)
88- let j = o(A, B)
89- if ((0 >= z))
127+@Callable(N)
128+func addItem (S,Q,T) = {
129+ let R = toBase58String(N.caller.bytes)
130+ let p = u(R, S)
131+ if ((0 >= Q))
90132 then throw("purchase amount cannot be less than item price")
91- else if ((s(j) != a))
133+ else if ((y(p) != a))
92134 then throw("Item already exists")
93- else WriteSet([DataEntry(r(j), A), DataEntry(i(j), z), DataEntry(q(j), C)])
135+ else WriteSet([DataEntry(x(p), R), DataEntry(o(p), Q), DataEntry(w(p), T)])
94136 }
95137
96138
97139
98-@Callable(w)
140+@Callable(N)
99141 func withdraw () = {
100- let A = toBase58String(w.caller.bytes)
101- let D = v(A)
102- if ((0 >= D))
142+ let R = toBase58String(N.caller.bytes)
143+ let U = B(R)
144+ if ((0 >= U))
103145 then throw("insufficient balance")
104- else ScriptResult(WriteSet([DataEntry(t(A), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(A), D, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(z(R), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(R), U, unit)]))
147+ }
148+
149+
150+
151+@Callable(N)
152+func voteCommit (p,V) = {
153+ let s = toBase58String(N.caller.bytes)
154+ let W = F(p)
155+ let X = J(p)
156+ if ((W >= b))
157+ then throw("reached max num of voters")
158+ else if ((D(p, s) != a))
159+ then throw("user has already participated")
160+ else if ((x(p) == a))
161+ then throw("item does not exist")
162+ else if (if ((X != a))
163+ then (X != d)
164+ else false)
165+ then throw("voting is not possible")
166+ else WriteSet([DataEntry(C(p, s), V), DataEntry(E(p), (W + 1)), DataEntry(I(p), if ((W == b))
167+ then e
168+ else d)])
105169 }
106170
107171

github/deemru/w8io/169f3d6 
50.10 ms