tx · 576cyK2GGuxkAgZi5F8P78aX2wnkyf1ASVyz34ayhiES 3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd: -0.01100000 Waves 2023.12.10 06:54 [2880060] smart account 3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd > SELF 0.00000000 Waves
{ "type": 13, "id": "576cyK2GGuxkAgZi5F8P78aX2wnkyf1ASVyz34ayhiES", "fee": 1100000, "feeAssetId": null, "timestamp": 1702180445612, "version": 2, "chainId": 84, "sender": "3MxJx6npysQdoyyxLsCCb3Yg8fTeH3gEQQd", "senderPublicKey": "EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e", "proofs": [ "4YDA4MGDwo25qPCy4C8YZtynuBfu19X5oFZfLDTZgxtydJqqucZQxaKFDGRsmwB7vnmYKCrC1V4XJK97vBQrteG3" ], "script": "base64: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", "height": 2880060, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 49WRt7adAnCwahufxzZaRqU5cYcC6gbpw7CeybRXHGKc Next: DoYfbVnd18zL3fuDw7J6tTcexT4pxAD8WPNkF765HopW Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | ||
8 | 8 | let c = base58'6SdykacJeMCbeNvVJY71gWMJeXt9ZT44X4KexwZxHEYz' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = base58'DYxtEoj6wasUX8ddENeh7igtcuAv1WG7BcgZVsmzvAGF' | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = "none" | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = "balance_" | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = 3 | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 2 | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "voting" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "reveal" | |
23 | 23 | ||
24 | - | let k = " | |
24 | + | let k = "featured" | |
25 | 25 | ||
26 | - | func l (m) = { | |
27 | - | let n = { | |
28 | - | let o = getInteger(this, m) | |
29 | - | if ($isInstanceOf(o, "Int")) | |
26 | + | let l = "delisted" | |
27 | + | ||
28 | + | func m (n) = { | |
29 | + | let o = { | |
30 | + | let p = getInteger(this, n) | |
31 | + | if ($isInstanceOf(p, "Int")) | |
30 | 32 | then { | |
31 | - | let | |
32 | - | | |
33 | + | let q = p | |
34 | + | q | |
33 | 35 | } | |
34 | 36 | else 0 | |
35 | 37 | } | |
36 | - | | |
38 | + | o | |
37 | 39 | } | |
38 | 40 | ||
39 | 41 | ||
40 | - | func | |
41 | - | let | |
42 | - | let | |
43 | - | if ($isInstanceOf( | |
42 | + | func r (n) = { | |
43 | + | let s = { | |
44 | + | let p = getString(this, n) | |
45 | + | if ($isInstanceOf(p, "String")) | |
44 | 46 | then { | |
45 | - | let | |
46 | - | | |
47 | + | let q = p | |
48 | + | q | |
47 | 49 | } | |
48 | - | else | |
50 | + | else e | |
49 | 51 | } | |
50 | - | | |
52 | + | s | |
51 | 53 | } | |
52 | 54 | ||
53 | 55 | ||
54 | - | func | |
56 | + | func t (u) = (u + "_price") | |
55 | 57 | ||
56 | 58 | ||
57 | - | func | |
59 | + | func v (u) = m(t(u)) | |
58 | 60 | ||
59 | 61 | ||
60 | - | func | |
62 | + | func w (x,u) = (((u + "_") + x) + "_cnt") | |
61 | 63 | ||
62 | 64 | ||
63 | - | func | |
65 | + | func y (x,u) = m(w(x, u)) | |
64 | 66 | ||
65 | 67 | ||
66 | - | func | |
68 | + | func z (A,B) = ("item_" + toBase58String(sha256(toBytes((A + B))))) | |
67 | 69 | ||
68 | 70 | ||
69 | - | func | |
71 | + | func C (u) = (u + "_data") | |
70 | 72 | ||
71 | 73 | ||
72 | - | func | |
74 | + | func D (u) = (u + "_owner") | |
73 | 75 | ||
74 | 76 | ||
75 | - | func | |
77 | + | func E (u) = r(D(u)) | |
76 | 78 | ||
77 | 79 | ||
78 | - | func | |
80 | + | func F (G) = (G + "_balance") | |
79 | 81 | ||
80 | 82 | ||
81 | - | func | |
83 | + | func H (G) = m(F(G)) | |
82 | 84 | ||
83 | 85 | ||
84 | - | func | |
86 | + | func I (u,x) = (((u + "_") + x) + "_commit") | |
85 | 87 | ||
86 | 88 | ||
87 | - | func | |
89 | + | func J (u,x) = r(I(u, x)) | |
88 | 90 | ||
89 | 91 | ||
90 | - | func | |
92 | + | func K (u) = (u + "_comcnt") | |
91 | 93 | ||
92 | 94 | ||
93 | - | func | |
95 | + | func L (u) = m(K(u)) | |
94 | 96 | ||
95 | 97 | ||
96 | - | func | |
98 | + | func M (u,x) = (((u + "_") + x) + "_reveal") | |
97 | 99 | ||
98 | 100 | ||
99 | - | func | |
101 | + | func N (u,x) = r(M(u, x)) | |
100 | 102 | ||
101 | 103 | ||
102 | - | func | |
104 | + | func O (u) = (u + "_status") | |
103 | 105 | ||
104 | 106 | ||
105 | - | func | |
107 | + | func P (u) = r(O(u)) | |
106 | 108 | ||
107 | 109 | ||
108 | - | func | |
110 | + | func Q (u,R) = ((u + "_res:") + R) | |
109 | 111 | ||
110 | 112 | ||
111 | - | func | |
113 | + | func S (u,R) = m(Q(u, R)) | |
112 | 114 | ||
113 | 115 | ||
114 | - | @Callable( | |
115 | - | func purchase ( | |
116 | - | let | |
117 | - | if (isDefined( | |
116 | + | @Callable(T) | |
117 | + | func purchase (u) = { | |
118 | + | let U = extract(T.payment) | |
119 | + | if (isDefined(U.assetId)) | |
118 | 120 | then throw("WAVES tokens only at the moment") | |
119 | 121 | else { | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | if (( | |
122 | + | let V = toBase58String(T.caller.bytes) | |
123 | + | let W = v(u) | |
124 | + | let X = E(u) | |
125 | + | if ((W > U.amount)) | |
124 | 126 | then throw("purchase amount cannot be less than item price") | |
125 | - | else if (( | |
127 | + | else if ((U.amount > W)) | |
126 | 128 | then throw("purchase amount cannot be higher than item price") | |
127 | - | else if (( | |
129 | + | else if ((X == e)) | |
128 | 130 | then throw("supplier does not exist") | |
129 | - | else WriteSet([DataEntry( | |
131 | + | else WriteSet([DataEntry(w(V, u), (y(V, u) + 1)), DataEntry(F(X), (H(X) + U.amount))]) | |
130 | 132 | } | |
131 | 133 | } | |
132 | 134 | ||
133 | 135 | ||
134 | 136 | ||
135 | - | @Callable(S) | |
136 | - | func withdraw () = { | |
137 | - | let X = toBase58String(S.caller.bytes) | |
138 | - | let Y = G(X) | |
139 | - | if ((0 >= Y)) | |
140 | - | then throw("insufficient balance") | |
141 | - | else ScriptResult(WriteSet([DataEntry(E(X), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(X), Y, unit)])) | |
142 | - | } | |
143 | - | ||
144 | - | ||
145 | - | ||
146 | - | @Callable(S) | |
147 | - | func addItem (A,V,Z) = { | |
148 | - | let X = toBase58String(S.caller.bytes) | |
149 | - | let t = y(X, A) | |
150 | - | if ((0 >= V)) | |
151 | - | then throw("purchase amount cannot be less than item price") | |
152 | - | else if ((D(t) != d)) | |
153 | - | then throw("an item is already exist") | |
154 | - | else WriteSet([DataEntry(C(t), X), DataEntry(s(t), V), DataEntry(B(t), Z)]) | |
155 | - | } | |
156 | - | ||
157 | - | ||
158 | - | ||
159 | - | @Callable(S) | |
160 | - | func voteCommit (t,aa) = { | |
161 | - | let w = toBase58String(S.caller.bytes) | |
162 | - | let ab = K(t) | |
163 | - | let ac = O(t) | |
164 | - | if ((ab >= f)) | |
165 | - | then throw("reached max num of voters") | |
166 | - | else if ((I(t, w) != d)) | |
167 | - | then throw("user has already uch") | |
168 | - | else if ((C(t) == d)) | |
169 | - | then throw("item does not exist") | |
170 | - | else if (if ((ac != d)) | |
171 | - | then (ac != h) | |
172 | - | else false) | |
173 | - | then throw("voting is not possible") | |
174 | - | else WriteSet([DataEntry(H(t, w), aa), DataEntry(J(t), (ab + 1)), DataEntry(N(t), if ((ab == f)) | |
175 | - | then i | |
176 | - | else h)]) | |
177 | - | } | |
178 | - | ||
179 | - | ||
180 | - | ||
181 | - | @Callable(S) | |
182 | - | func voteReveal (t,Q,ad) = { | |
183 | - | let w = toBase58String(S.caller.bytes) | |
184 | - | let ac = O(t) | |
185 | - | let ae = (R(t, Q) + 1) | |
186 | - | if ((toBase58String(sha256(toBytes((Q + ad)))) != I(t, w))) | |
187 | - | then throw("reveal data is not valid") | |
188 | - | else if ((f > K(t))) | |
189 | - | then throw("max num of voters hasn't reached yet") | |
190 | - | else if ((M(t, w) != d)) | |
191 | - | then throw("user has already participated") | |
192 | - | else if (if ((ac != h)) | |
193 | - | then (ac != i) | |
194 | - | else false) | |
195 | - | then throw("wrong status") | |
196 | - | else if (if ((Q != j)) | |
197 | - | then (Q != k) | |
198 | - | else false) | |
199 | - | then throw("vote has finished") | |
200 | - | else WriteSet([DataEntry(L(t, w), Q), DataEntry(P(t, Q), ae), DataEntry(N(t), if ((ae >= g)) | |
201 | - | then Q | |
202 | - | else i)]) | |
203 | - | } | |
204 | - | ||
205 | - | ||
206 | - | ||
207 | - | @Callable(S) | |
208 | - | func x_purchase () = { | |
209 | - | let T = extract(S.payment) | |
210 | - | if (isDefined(T.assetId)) | |
211 | - | then throw("can use WAVES only at the moment") | |
137 | + | @Callable(T) | |
138 | + | func deposit () = { | |
139 | + | let U = extract(T.payment) | |
140 | + | if (isDefined(U.assetId)) | |
141 | + | then throw("can hodl waves only at the moment") | |
212 | 142 | else { | |
213 | - | let | |
214 | - | let | |
215 | - | let | |
216 | - | if ($isInstanceOf( | |
143 | + | let Y = toBase58String(T.caller.bytes) | |
144 | + | let Z = { | |
145 | + | let p = getInteger(this, Y) | |
146 | + | if ($isInstanceOf(p, "Int")) | |
217 | 147 | then { | |
218 | - | let | |
219 | - | | |
148 | + | let q = p | |
149 | + | q | |
220 | 150 | } | |
221 | 151 | else 0 | |
222 | 152 | } | |
223 | - | if ((V > T.amount)) | |
224 | - | then throw("purchase amount cannot be less than item price") | |
225 | - | else if ((T.amount > V)) | |
226 | - | then throw("purchase amount cannot be higher than item price") | |
227 | - | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + af), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + af), V)]) | |
153 | + | let aa = { | |
154 | + | let p = getString(this, ("wl_sts_" + Y)) | |
155 | + | if ($isInstanceOf(p, "String")) | |
156 | + | then { | |
157 | + | let q = p | |
158 | + | q | |
159 | + | } | |
160 | + | else throw("User has not deen waitlisted") | |
161 | + | } | |
162 | + | let ab = (Z + U.amount) | |
163 | + | WriteSet([DataEntry((f + Y), ab)]) | |
228 | 164 | } | |
229 | 165 | } | |
230 | 166 | ||
231 | 167 | ||
232 | 168 | ||
233 | - | @Callable( | |
234 | - | func | |
235 | - | let | |
236 | - | if ( | |
237 | - | then throw(" | |
169 | + | @Callable(T) | |
170 | + | func depositEUR () = { | |
171 | + | let U = extract(T.payment) | |
172 | + | if ((U.assetId != d)) | |
173 | + | then throw("wEUR only please") | |
238 | 174 | else { | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | if ($isInstanceOf( | |
175 | + | let Y = toBase58String(T.caller.bytes) | |
176 | + | let Z = { | |
177 | + | let p = getInteger(this, Y) | |
178 | + | if ($isInstanceOf(p, "Int")) | |
243 | 179 | then { | |
244 | - | let | |
245 | - | | |
180 | + | let q = p | |
181 | + | q | |
246 | 182 | } | |
247 | 183 | else 0 | |
248 | 184 | } | |
249 | - | let ai = { | |
250 | - | let o = getString(this, ("wl_sts_" + ag)) | |
251 | - | if ($isInstanceOf(o, "String")) | |
252 | - | then { | |
253 | - | let p = o | |
254 | - | p | |
255 | - | } | |
256 | - | else throw("User has not deen waitlisted") | |
257 | - | } | |
258 | - | let aj = (ah + T.amount) | |
259 | - | WriteSet([DataEntry((e + ag), aj)]) | |
185 | + | let ab = (Z + U.amount) | |
186 | + | WriteSet([DataEntry(Y, ab)]) | |
260 | 187 | } | |
261 | 188 | } | |
262 | 189 | ||
263 | 190 | ||
264 | 191 | ||
265 | - | @Callable(S) | |
266 | - | func x_withdraw (ak) = { | |
267 | - | let ag = toBase58String(S.caller.bytes) | |
268 | - | let ah = { | |
269 | - | let o = getInteger(this, (e + ag)) | |
270 | - | if ($isInstanceOf(o, "Int")) | |
192 | + | @Callable(T) | |
193 | + | func withdraw () = { | |
194 | + | let ac = toBase58String(T.caller.bytes) | |
195 | + | let ad = H(ac) | |
196 | + | if ((0 >= ad)) | |
197 | + | then throw("insufficient balance") | |
198 | + | else ScriptResult(WriteSet([DataEntry(F(ac), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(ac), ad, unit)])) | |
199 | + | } | |
200 | + | ||
201 | + | ||
202 | + | ||
203 | + | @Callable(T) | |
204 | + | func withdrawEUR (ae) = { | |
205 | + | let Y = toBase58String(T.caller.bytes) | |
206 | + | let Z = { | |
207 | + | let p = getInteger(this, Y) | |
208 | + | if ($isInstanceOf(p, "Int")) | |
271 | 209 | then { | |
272 | - | let | |
273 | - | | |
210 | + | let q = p | |
211 | + | q | |
274 | 212 | } | |
275 | 213 | else 0 | |
276 | 214 | } | |
277 | - | let | |
278 | - | if ((0 > | |
279 | - | then throw("Can't withdraw negative | |
280 | - | else if ((0 > | |
215 | + | let ab = (Z - ae) | |
216 | + | if ((0 > ae)) | |
217 | + | then throw("Can't withdraw negative balance") | |
218 | + | else if ((0 > ab)) | |
281 | 219 | then throw("Not enough balance") | |
282 | - | else ScriptResult(WriteSet([DataEntry( | |
220 | + | else ScriptResult(WriteSet([DataEntry(Y, ab)]), TransferSet([ScriptTransfer(T.caller, ae, d)])) | |
283 | 221 | } | |
284 | 222 | ||
285 | 223 | ||
286 | - | @Verifier(al) | |
287 | - | func am () = { | |
288 | - | let an = sigVerify(al.bodyBytes, al.proofs[0], a) | |
289 | - | let ao = sigVerify(al.bodyBytes, al.proofs[1], a) | |
290 | - | let ap = sigVerify(al.bodyBytes, al.proofs[2], a) | |
291 | - | let aq = sigVerify(al.bodyBytes, al.proofs[0], b) | |
292 | - | let ar = sigVerify(al.bodyBytes, al.proofs[1], b) | |
293 | - | let as = sigVerify(al.bodyBytes, al.proofs[2], b) | |
294 | - | let at = sigVerify(al.bodyBytes, al.proofs[0], c) | |
295 | - | let au = sigVerify(al.bodyBytes, al.proofs[1], c) | |
296 | - | let av = sigVerify(al.bodyBytes, al.proofs[2], c) | |
297 | - | let aw = if (if (if (if (if (if (an) | |
298 | - | then ar | |
224 | + | ||
225 | + | @Callable(T) | |
226 | + | func addItem (B,W,af) = { | |
227 | + | let ac = toBase58String(T.caller.bytes) | |
228 | + | let u = z(ac, B) | |
229 | + | if ((0 >= W)) | |
230 | + | then throw("purchase amount cannot be less than item price") | |
231 | + | else if ((E(u) != e)) | |
232 | + | then throw("an item is already exist") | |
233 | + | else WriteSet([DataEntry(D(u), ac), DataEntry(t(u), W), DataEntry(C(u), af)]) | |
234 | + | } | |
235 | + | ||
236 | + | ||
237 | + | ||
238 | + | @Callable(T) | |
239 | + | func voteCommit (u,ag) = { | |
240 | + | let x = toBase58String(T.caller.bytes) | |
241 | + | let ah = L(u) | |
242 | + | let ai = P(u) | |
243 | + | if ((ah >= g)) | |
244 | + | then throw("reached max num of voters") | |
245 | + | else if ((J(u, x) != e)) | |
246 | + | then throw("user has already uch") | |
247 | + | else if ((D(u) == e)) | |
248 | + | then throw("item does not exist") | |
249 | + | else if (if ((ai != e)) | |
250 | + | then (ai != i) | |
251 | + | else false) | |
252 | + | then throw("voting is not possible") | |
253 | + | else WriteSet([DataEntry(I(u, x), ag), DataEntry(K(u), (ah + 1)), DataEntry(O(u), if ((ah == g)) | |
254 | + | then j | |
255 | + | else i)]) | |
256 | + | } | |
257 | + | ||
258 | + | ||
259 | + | ||
260 | + | @Callable(T) | |
261 | + | func x_purchase () = { | |
262 | + | let U = extract(T.payment) | |
263 | + | if (isDefined(U.assetId)) | |
264 | + | then throw("can use WAVES only at the moment") | |
265 | + | else { | |
266 | + | let aj = toBase58String(T.caller.bytes) | |
267 | + | let W = { | |
268 | + | let p = getInteger(this, "item_A_coupon_price") | |
269 | + | if ($isInstanceOf(p, "Int")) | |
270 | + | then { | |
271 | + | let q = p | |
272 | + | q | |
273 | + | } | |
274 | + | else 0 | |
275 | + | } | |
276 | + | if ((W > U.amount)) | |
277 | + | then throw("purchase amount cannot be less than item price") | |
278 | + | else if ((U.amount > W)) | |
279 | + | then throw("purchase amount cannot be higher than item price") | |
280 | + | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + aj), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + aj), W)]) | |
281 | + | } | |
282 | + | } | |
283 | + | ||
284 | + | ||
285 | + | ||
286 | + | @Callable(T) | |
287 | + | func x_withdraw (ae) = { | |
288 | + | let Y = toBase58String(T.caller.bytes) | |
289 | + | let Z = { | |
290 | + | let p = getInteger(this, (f + Y)) | |
291 | + | if ($isInstanceOf(p, "Int")) | |
292 | + | then { | |
293 | + | let q = p | |
294 | + | q | |
295 | + | } | |
296 | + | else 0 | |
297 | + | } | |
298 | + | let ab = (Z - ae) | |
299 | + | if ((0 > ae)) | |
300 | + | then throw("Can't withdraw negative amount") | |
301 | + | else if ((0 > ab)) | |
302 | + | then throw("Not enough balance") | |
303 | + | else ScriptResult(WriteSet([DataEntry((f + Y), ab)]), TransferSet([ScriptTransfer(T.caller, ae, unit)])) | |
304 | + | } | |
305 | + | ||
306 | + | ||
307 | + | @Verifier(ak) | |
308 | + | func al () = { | |
309 | + | let am = sigVerify(ak.bodyBytes, ak.proofs[0], a) | |
310 | + | let an = sigVerify(ak.bodyBytes, ak.proofs[1], a) | |
311 | + | let ao = sigVerify(ak.bodyBytes, ak.proofs[2], a) | |
312 | + | let ap = sigVerify(ak.bodyBytes, ak.proofs[0], b) | |
313 | + | let aq = sigVerify(ak.bodyBytes, ak.proofs[1], b) | |
314 | + | let ar = sigVerify(ak.bodyBytes, ak.proofs[2], b) | |
315 | + | let as = sigVerify(ak.bodyBytes, ak.proofs[0], c) | |
316 | + | let at = sigVerify(ak.bodyBytes, ak.proofs[1], c) | |
317 | + | let au = sigVerify(ak.bodyBytes, ak.proofs[2], c) | |
318 | + | let av = if (if (if (if (if (if (am) | |
319 | + | then aq | |
299 | 320 | else false) | |
321 | + | then true | |
322 | + | else if (am) | |
323 | + | then ar | |
324 | + | else false) | |
325 | + | then true | |
326 | + | else if (an) | |
327 | + | then ap | |
328 | + | else false) | |
329 | + | then true | |
330 | + | else if (an) | |
331 | + | then ar | |
332 | + | else false) | |
333 | + | then true | |
334 | + | else if (ao) | |
335 | + | then ap | |
336 | + | else false) | |
337 | + | then true | |
338 | + | else if (ao) | |
339 | + | then aq | |
340 | + | else false | |
341 | + | let aw = if (if (if (if (if (if (am) | |
342 | + | then at | |
343 | + | else false) | |
344 | + | then true | |
345 | + | else if (am) | |
346 | + | then au | |
347 | + | else false) | |
300 | 348 | then true | |
301 | 349 | else if (an) | |
302 | 350 | then as | |
303 | 351 | else false) | |
304 | 352 | then true | |
305 | - | else if ( | |
306 | - | then | |
353 | + | else if (an) | |
354 | + | then au | |
307 | 355 | else false) | |
308 | 356 | then true | |
309 | 357 | else if (ao) | |
310 | 358 | then as | |
311 | 359 | else false) | |
312 | 360 | then true | |
313 | - | else if (ap) | |
314 | - | then aq | |
361 | + | else if (ao) | |
362 | + | then at | |
363 | + | else false | |
364 | + | let ax = if (if (if (if (if (if (as) | |
365 | + | then aq | |
366 | + | else false) | |
367 | + | then true | |
368 | + | else if (as) | |
369 | + | then ar | |
315 | 370 | else false) | |
316 | 371 | then true | |
317 | - | else if (ap) | |
318 | - | then ar | |
319 | - | else false | |
320 | - | let ax = if (if (if (if (if (if (an) | |
321 | - | then au | |
322 | - | else false) | |
323 | - | then true | |
324 | - | else if (an) | |
325 | - | then av | |
372 | + | else if (at) | |
373 | + | then ap | |
326 | 374 | else false) | |
327 | 375 | then true | |
328 | - | else if ( | |
329 | - | then | |
376 | + | else if (at) | |
377 | + | then ar | |
330 | 378 | else false) | |
331 | 379 | then true | |
332 | - | else if (ao) | |
333 | - | then av | |
334 | - | else false) | |
335 | - | then true | |
336 | - | else if (ap) | |
337 | - | then at | |
338 | - | else false) | |
339 | - | then true | |
340 | - | else if (ap) | |
341 | - | then au | |
342 | - | else false | |
343 | - | let ay = if (if (if (if (if (if (at) | |
344 | - | then ar | |
345 | - | else false) | |
346 | - | then true | |
347 | - | else if (at) | |
348 | - | then as | |
380 | + | else if (au) | |
381 | + | then ap | |
349 | 382 | else false) | |
350 | 383 | then true | |
351 | 384 | else if (au) | |
352 | 385 | then aq | |
353 | - | else false) | |
354 | - | then true | |
355 | - | else if (au) | |
356 | - | then as | |
357 | - | else false) | |
358 | - | then true | |
359 | - | else if (av) | |
360 | - | then aq | |
361 | - | else false) | |
362 | - | then true | |
363 | - | else if (av) | |
364 | - | then ar | |
365 | 386 | else false | |
366 | - | let | |
367 | - | if ($isInstanceOf( | |
387 | + | let p = ak | |
388 | + | if ($isInstanceOf(p, "SetScriptTransaction")) | |
368 | 389 | then { | |
369 | - | let | |
370 | - | sigVerify( | |
390 | + | let ay = p | |
391 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
371 | 392 | } | |
372 | - | else if ($isInstanceOf( | |
393 | + | else if ($isInstanceOf(p, "DataTransaction")) | |
373 | 394 | then { | |
374 | - | let | |
395 | + | let ay = p | |
375 | 396 | true | |
376 | 397 | } | |
377 | - | else if ($isInstanceOf( | |
398 | + | else if ($isInstanceOf(p, "TransferTransaction")) | |
378 | 399 | then { | |
379 | - | let | |
400 | + | let ay = p | |
380 | 401 | true | |
381 | 402 | } | |
382 | - | else if ($isInstanceOf( | |
403 | + | else if ($isInstanceOf(p, "InvokeScriptTransaction")) | |
383 | 404 | then { | |
384 | - | let | |
405 | + | let ay = p | |
385 | 406 | true | |
386 | 407 | } | |
387 | - | else if ($isInstanceOf( | |
408 | + | else if ($isInstanceOf(p, "IssueTransaction")) | |
388 | 409 | then { | |
389 | - | let | |
390 | - | sigVerify( | |
410 | + | let ay = p | |
411 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
391 | 412 | } | |
392 | - | else if ($isInstanceOf( | |
413 | + | else if ($isInstanceOf(p, "ReissueTransaction")) | |
393 | 414 | then { | |
394 | - | let | |
395 | - | sigVerify( | |
415 | + | let ay = p | |
416 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
396 | 417 | } | |
397 | - | else if ($isInstanceOf( | |
418 | + | else if ($isInstanceOf(p, "BurnTransaction")) | |
398 | 419 | then { | |
399 | - | let | |
400 | - | sigVerify( | |
420 | + | let ay = p | |
421 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
401 | 422 | } | |
402 | 423 | else false | |
403 | 424 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'FgdjGJ4tLFiavKEKf4WkWwkgvU8ARWP1WYZfmUrXo4CY' | |
5 | 5 | ||
6 | 6 | let b = base58'EEhsp9Jd5MwVmYJMGAZJL3tTb5KcurTz8Aw7wksZuw3e' | |
7 | 7 | ||
8 | 8 | let c = base58'6SdykacJeMCbeNvVJY71gWMJeXt9ZT44X4KexwZxHEYz' | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = base58'DYxtEoj6wasUX8ddENeh7igtcuAv1WG7BcgZVsmzvAGF' | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = "none" | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = "balance_" | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = 3 | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 2 | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "voting" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "reveal" | |
23 | 23 | ||
24 | - | let k = " | |
24 | + | let k = "featured" | |
25 | 25 | ||
26 | - | func l (m) = { | |
27 | - | let n = { | |
28 | - | let o = getInteger(this, m) | |
29 | - | if ($isInstanceOf(o, "Int")) | |
26 | + | let l = "delisted" | |
27 | + | ||
28 | + | func m (n) = { | |
29 | + | let o = { | |
30 | + | let p = getInteger(this, n) | |
31 | + | if ($isInstanceOf(p, "Int")) | |
30 | 32 | then { | |
31 | - | let | |
32 | - | | |
33 | + | let q = p | |
34 | + | q | |
33 | 35 | } | |
34 | 36 | else 0 | |
35 | 37 | } | |
36 | - | | |
38 | + | o | |
37 | 39 | } | |
38 | 40 | ||
39 | 41 | ||
40 | - | func | |
41 | - | let | |
42 | - | let | |
43 | - | if ($isInstanceOf( | |
42 | + | func r (n) = { | |
43 | + | let s = { | |
44 | + | let p = getString(this, n) | |
45 | + | if ($isInstanceOf(p, "String")) | |
44 | 46 | then { | |
45 | - | let | |
46 | - | | |
47 | + | let q = p | |
48 | + | q | |
47 | 49 | } | |
48 | - | else | |
50 | + | else e | |
49 | 51 | } | |
50 | - | | |
52 | + | s | |
51 | 53 | } | |
52 | 54 | ||
53 | 55 | ||
54 | - | func | |
56 | + | func t (u) = (u + "_price") | |
55 | 57 | ||
56 | 58 | ||
57 | - | func | |
59 | + | func v (u) = m(t(u)) | |
58 | 60 | ||
59 | 61 | ||
60 | - | func | |
62 | + | func w (x,u) = (((u + "_") + x) + "_cnt") | |
61 | 63 | ||
62 | 64 | ||
63 | - | func | |
65 | + | func y (x,u) = m(w(x, u)) | |
64 | 66 | ||
65 | 67 | ||
66 | - | func | |
68 | + | func z (A,B) = ("item_" + toBase58String(sha256(toBytes((A + B))))) | |
67 | 69 | ||
68 | 70 | ||
69 | - | func | |
71 | + | func C (u) = (u + "_data") | |
70 | 72 | ||
71 | 73 | ||
72 | - | func | |
74 | + | func D (u) = (u + "_owner") | |
73 | 75 | ||
74 | 76 | ||
75 | - | func | |
77 | + | func E (u) = r(D(u)) | |
76 | 78 | ||
77 | 79 | ||
78 | - | func | |
80 | + | func F (G) = (G + "_balance") | |
79 | 81 | ||
80 | 82 | ||
81 | - | func | |
83 | + | func H (G) = m(F(G)) | |
82 | 84 | ||
83 | 85 | ||
84 | - | func | |
86 | + | func I (u,x) = (((u + "_") + x) + "_commit") | |
85 | 87 | ||
86 | 88 | ||
87 | - | func | |
89 | + | func J (u,x) = r(I(u, x)) | |
88 | 90 | ||
89 | 91 | ||
90 | - | func | |
92 | + | func K (u) = (u + "_comcnt") | |
91 | 93 | ||
92 | 94 | ||
93 | - | func | |
95 | + | func L (u) = m(K(u)) | |
94 | 96 | ||
95 | 97 | ||
96 | - | func | |
98 | + | func M (u,x) = (((u + "_") + x) + "_reveal") | |
97 | 99 | ||
98 | 100 | ||
99 | - | func | |
101 | + | func N (u,x) = r(M(u, x)) | |
100 | 102 | ||
101 | 103 | ||
102 | - | func | |
104 | + | func O (u) = (u + "_status") | |
103 | 105 | ||
104 | 106 | ||
105 | - | func | |
107 | + | func P (u) = r(O(u)) | |
106 | 108 | ||
107 | 109 | ||
108 | - | func | |
110 | + | func Q (u,R) = ((u + "_res:") + R) | |
109 | 111 | ||
110 | 112 | ||
111 | - | func | |
113 | + | func S (u,R) = m(Q(u, R)) | |
112 | 114 | ||
113 | 115 | ||
114 | - | @Callable( | |
115 | - | func purchase ( | |
116 | - | let | |
117 | - | if (isDefined( | |
116 | + | @Callable(T) | |
117 | + | func purchase (u) = { | |
118 | + | let U = extract(T.payment) | |
119 | + | if (isDefined(U.assetId)) | |
118 | 120 | then throw("WAVES tokens only at the moment") | |
119 | 121 | else { | |
120 | - | let | |
121 | - | let | |
122 | - | let | |
123 | - | if (( | |
122 | + | let V = toBase58String(T.caller.bytes) | |
123 | + | let W = v(u) | |
124 | + | let X = E(u) | |
125 | + | if ((W > U.amount)) | |
124 | 126 | then throw("purchase amount cannot be less than item price") | |
125 | - | else if (( | |
127 | + | else if ((U.amount > W)) | |
126 | 128 | then throw("purchase amount cannot be higher than item price") | |
127 | - | else if (( | |
129 | + | else if ((X == e)) | |
128 | 130 | then throw("supplier does not exist") | |
129 | - | else WriteSet([DataEntry( | |
131 | + | else WriteSet([DataEntry(w(V, u), (y(V, u) + 1)), DataEntry(F(X), (H(X) + U.amount))]) | |
130 | 132 | } | |
131 | 133 | } | |
132 | 134 | ||
133 | 135 | ||
134 | 136 | ||
135 | - | @Callable(S) | |
136 | - | func withdraw () = { | |
137 | - | let X = toBase58String(S.caller.bytes) | |
138 | - | let Y = G(X) | |
139 | - | if ((0 >= Y)) | |
140 | - | then throw("insufficient balance") | |
141 | - | else ScriptResult(WriteSet([DataEntry(E(X), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(X), Y, unit)])) | |
142 | - | } | |
143 | - | ||
144 | - | ||
145 | - | ||
146 | - | @Callable(S) | |
147 | - | func addItem (A,V,Z) = { | |
148 | - | let X = toBase58String(S.caller.bytes) | |
149 | - | let t = y(X, A) | |
150 | - | if ((0 >= V)) | |
151 | - | then throw("purchase amount cannot be less than item price") | |
152 | - | else if ((D(t) != d)) | |
153 | - | then throw("an item is already exist") | |
154 | - | else WriteSet([DataEntry(C(t), X), DataEntry(s(t), V), DataEntry(B(t), Z)]) | |
155 | - | } | |
156 | - | ||
157 | - | ||
158 | - | ||
159 | - | @Callable(S) | |
160 | - | func voteCommit (t,aa) = { | |
161 | - | let w = toBase58String(S.caller.bytes) | |
162 | - | let ab = K(t) | |
163 | - | let ac = O(t) | |
164 | - | if ((ab >= f)) | |
165 | - | then throw("reached max num of voters") | |
166 | - | else if ((I(t, w) != d)) | |
167 | - | then throw("user has already uch") | |
168 | - | else if ((C(t) == d)) | |
169 | - | then throw("item does not exist") | |
170 | - | else if (if ((ac != d)) | |
171 | - | then (ac != h) | |
172 | - | else false) | |
173 | - | then throw("voting is not possible") | |
174 | - | else WriteSet([DataEntry(H(t, w), aa), DataEntry(J(t), (ab + 1)), DataEntry(N(t), if ((ab == f)) | |
175 | - | then i | |
176 | - | else h)]) | |
177 | - | } | |
178 | - | ||
179 | - | ||
180 | - | ||
181 | - | @Callable(S) | |
182 | - | func voteReveal (t,Q,ad) = { | |
183 | - | let w = toBase58String(S.caller.bytes) | |
184 | - | let ac = O(t) | |
185 | - | let ae = (R(t, Q) + 1) | |
186 | - | if ((toBase58String(sha256(toBytes((Q + ad)))) != I(t, w))) | |
187 | - | then throw("reveal data is not valid") | |
188 | - | else if ((f > K(t))) | |
189 | - | then throw("max num of voters hasn't reached yet") | |
190 | - | else if ((M(t, w) != d)) | |
191 | - | then throw("user has already participated") | |
192 | - | else if (if ((ac != h)) | |
193 | - | then (ac != i) | |
194 | - | else false) | |
195 | - | then throw("wrong status") | |
196 | - | else if (if ((Q != j)) | |
197 | - | then (Q != k) | |
198 | - | else false) | |
199 | - | then throw("vote has finished") | |
200 | - | else WriteSet([DataEntry(L(t, w), Q), DataEntry(P(t, Q), ae), DataEntry(N(t), if ((ae >= g)) | |
201 | - | then Q | |
202 | - | else i)]) | |
203 | - | } | |
204 | - | ||
205 | - | ||
206 | - | ||
207 | - | @Callable(S) | |
208 | - | func x_purchase () = { | |
209 | - | let T = extract(S.payment) | |
210 | - | if (isDefined(T.assetId)) | |
211 | - | then throw("can use WAVES only at the moment") | |
137 | + | @Callable(T) | |
138 | + | func deposit () = { | |
139 | + | let U = extract(T.payment) | |
140 | + | if (isDefined(U.assetId)) | |
141 | + | then throw("can hodl waves only at the moment") | |
212 | 142 | else { | |
213 | - | let | |
214 | - | let | |
215 | - | let | |
216 | - | if ($isInstanceOf( | |
143 | + | let Y = toBase58String(T.caller.bytes) | |
144 | + | let Z = { | |
145 | + | let p = getInteger(this, Y) | |
146 | + | if ($isInstanceOf(p, "Int")) | |
217 | 147 | then { | |
218 | - | let | |
219 | - | | |
148 | + | let q = p | |
149 | + | q | |
220 | 150 | } | |
221 | 151 | else 0 | |
222 | 152 | } | |
223 | - | if ((V > T.amount)) | |
224 | - | then throw("purchase amount cannot be less than item price") | |
225 | - | else if ((T.amount > V)) | |
226 | - | then throw("purchase amount cannot be higher than item price") | |
227 | - | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + af), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + af), V)]) | |
153 | + | let aa = { | |
154 | + | let p = getString(this, ("wl_sts_" + Y)) | |
155 | + | if ($isInstanceOf(p, "String")) | |
156 | + | then { | |
157 | + | let q = p | |
158 | + | q | |
159 | + | } | |
160 | + | else throw("User has not deen waitlisted") | |
161 | + | } | |
162 | + | let ab = (Z + U.amount) | |
163 | + | WriteSet([DataEntry((f + Y), ab)]) | |
228 | 164 | } | |
229 | 165 | } | |
230 | 166 | ||
231 | 167 | ||
232 | 168 | ||
233 | - | @Callable( | |
234 | - | func | |
235 | - | let | |
236 | - | if ( | |
237 | - | then throw(" | |
169 | + | @Callable(T) | |
170 | + | func depositEUR () = { | |
171 | + | let U = extract(T.payment) | |
172 | + | if ((U.assetId != d)) | |
173 | + | then throw("wEUR only please") | |
238 | 174 | else { | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | if ($isInstanceOf( | |
175 | + | let Y = toBase58String(T.caller.bytes) | |
176 | + | let Z = { | |
177 | + | let p = getInteger(this, Y) | |
178 | + | if ($isInstanceOf(p, "Int")) | |
243 | 179 | then { | |
244 | - | let | |
245 | - | | |
180 | + | let q = p | |
181 | + | q | |
246 | 182 | } | |
247 | 183 | else 0 | |
248 | 184 | } | |
249 | - | let ai = { | |
250 | - | let o = getString(this, ("wl_sts_" + ag)) | |
251 | - | if ($isInstanceOf(o, "String")) | |
252 | - | then { | |
253 | - | let p = o | |
254 | - | p | |
255 | - | } | |
256 | - | else throw("User has not deen waitlisted") | |
257 | - | } | |
258 | - | let aj = (ah + T.amount) | |
259 | - | WriteSet([DataEntry((e + ag), aj)]) | |
185 | + | let ab = (Z + U.amount) | |
186 | + | WriteSet([DataEntry(Y, ab)]) | |
260 | 187 | } | |
261 | 188 | } | |
262 | 189 | ||
263 | 190 | ||
264 | 191 | ||
265 | - | @Callable(S) | |
266 | - | func x_withdraw (ak) = { | |
267 | - | let ag = toBase58String(S.caller.bytes) | |
268 | - | let ah = { | |
269 | - | let o = getInteger(this, (e + ag)) | |
270 | - | if ($isInstanceOf(o, "Int")) | |
192 | + | @Callable(T) | |
193 | + | func withdraw () = { | |
194 | + | let ac = toBase58String(T.caller.bytes) | |
195 | + | let ad = H(ac) | |
196 | + | if ((0 >= ad)) | |
197 | + | then throw("insufficient balance") | |
198 | + | else ScriptResult(WriteSet([DataEntry(F(ac), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(ac), ad, unit)])) | |
199 | + | } | |
200 | + | ||
201 | + | ||
202 | + | ||
203 | + | @Callable(T) | |
204 | + | func withdrawEUR (ae) = { | |
205 | + | let Y = toBase58String(T.caller.bytes) | |
206 | + | let Z = { | |
207 | + | let p = getInteger(this, Y) | |
208 | + | if ($isInstanceOf(p, "Int")) | |
271 | 209 | then { | |
272 | - | let | |
273 | - | | |
210 | + | let q = p | |
211 | + | q | |
274 | 212 | } | |
275 | 213 | else 0 | |
276 | 214 | } | |
277 | - | let | |
278 | - | if ((0 > | |
279 | - | then throw("Can't withdraw negative | |
280 | - | else if ((0 > | |
215 | + | let ab = (Z - ae) | |
216 | + | if ((0 > ae)) | |
217 | + | then throw("Can't withdraw negative balance") | |
218 | + | else if ((0 > ab)) | |
281 | 219 | then throw("Not enough balance") | |
282 | - | else ScriptResult(WriteSet([DataEntry( | |
220 | + | else ScriptResult(WriteSet([DataEntry(Y, ab)]), TransferSet([ScriptTransfer(T.caller, ae, d)])) | |
283 | 221 | } | |
284 | 222 | ||
285 | 223 | ||
286 | - | @Verifier(al) | |
287 | - | func am () = { | |
288 | - | let an = sigVerify(al.bodyBytes, al.proofs[0], a) | |
289 | - | let ao = sigVerify(al.bodyBytes, al.proofs[1], a) | |
290 | - | let ap = sigVerify(al.bodyBytes, al.proofs[2], a) | |
291 | - | let aq = sigVerify(al.bodyBytes, al.proofs[0], b) | |
292 | - | let ar = sigVerify(al.bodyBytes, al.proofs[1], b) | |
293 | - | let as = sigVerify(al.bodyBytes, al.proofs[2], b) | |
294 | - | let at = sigVerify(al.bodyBytes, al.proofs[0], c) | |
295 | - | let au = sigVerify(al.bodyBytes, al.proofs[1], c) | |
296 | - | let av = sigVerify(al.bodyBytes, al.proofs[2], c) | |
297 | - | let aw = if (if (if (if (if (if (an) | |
298 | - | then ar | |
224 | + | ||
225 | + | @Callable(T) | |
226 | + | func addItem (B,W,af) = { | |
227 | + | let ac = toBase58String(T.caller.bytes) | |
228 | + | let u = z(ac, B) | |
229 | + | if ((0 >= W)) | |
230 | + | then throw("purchase amount cannot be less than item price") | |
231 | + | else if ((E(u) != e)) | |
232 | + | then throw("an item is already exist") | |
233 | + | else WriteSet([DataEntry(D(u), ac), DataEntry(t(u), W), DataEntry(C(u), af)]) | |
234 | + | } | |
235 | + | ||
236 | + | ||
237 | + | ||
238 | + | @Callable(T) | |
239 | + | func voteCommit (u,ag) = { | |
240 | + | let x = toBase58String(T.caller.bytes) | |
241 | + | let ah = L(u) | |
242 | + | let ai = P(u) | |
243 | + | if ((ah >= g)) | |
244 | + | then throw("reached max num of voters") | |
245 | + | else if ((J(u, x) != e)) | |
246 | + | then throw("user has already uch") | |
247 | + | else if ((D(u) == e)) | |
248 | + | then throw("item does not exist") | |
249 | + | else if (if ((ai != e)) | |
250 | + | then (ai != i) | |
251 | + | else false) | |
252 | + | then throw("voting is not possible") | |
253 | + | else WriteSet([DataEntry(I(u, x), ag), DataEntry(K(u), (ah + 1)), DataEntry(O(u), if ((ah == g)) | |
254 | + | then j | |
255 | + | else i)]) | |
256 | + | } | |
257 | + | ||
258 | + | ||
259 | + | ||
260 | + | @Callable(T) | |
261 | + | func x_purchase () = { | |
262 | + | let U = extract(T.payment) | |
263 | + | if (isDefined(U.assetId)) | |
264 | + | then throw("can use WAVES only at the moment") | |
265 | + | else { | |
266 | + | let aj = toBase58String(T.caller.bytes) | |
267 | + | let W = { | |
268 | + | let p = getInteger(this, "item_A_coupon_price") | |
269 | + | if ($isInstanceOf(p, "Int")) | |
270 | + | then { | |
271 | + | let q = p | |
272 | + | q | |
273 | + | } | |
274 | + | else 0 | |
275 | + | } | |
276 | + | if ((W > U.amount)) | |
277 | + | then throw("purchase amount cannot be less than item price") | |
278 | + | else if ((U.amount > W)) | |
279 | + | then throw("purchase amount cannot be higher than item price") | |
280 | + | else WriteSet([DataEntry(("status:purchase_item_A_customer_" + aj), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + aj), W)]) | |
281 | + | } | |
282 | + | } | |
283 | + | ||
284 | + | ||
285 | + | ||
286 | + | @Callable(T) | |
287 | + | func x_withdraw (ae) = { | |
288 | + | let Y = toBase58String(T.caller.bytes) | |
289 | + | let Z = { | |
290 | + | let p = getInteger(this, (f + Y)) | |
291 | + | if ($isInstanceOf(p, "Int")) | |
292 | + | then { | |
293 | + | let q = p | |
294 | + | q | |
295 | + | } | |
296 | + | else 0 | |
297 | + | } | |
298 | + | let ab = (Z - ae) | |
299 | + | if ((0 > ae)) | |
300 | + | then throw("Can't withdraw negative amount") | |
301 | + | else if ((0 > ab)) | |
302 | + | then throw("Not enough balance") | |
303 | + | else ScriptResult(WriteSet([DataEntry((f + Y), ab)]), TransferSet([ScriptTransfer(T.caller, ae, unit)])) | |
304 | + | } | |
305 | + | ||
306 | + | ||
307 | + | @Verifier(ak) | |
308 | + | func al () = { | |
309 | + | let am = sigVerify(ak.bodyBytes, ak.proofs[0], a) | |
310 | + | let an = sigVerify(ak.bodyBytes, ak.proofs[1], a) | |
311 | + | let ao = sigVerify(ak.bodyBytes, ak.proofs[2], a) | |
312 | + | let ap = sigVerify(ak.bodyBytes, ak.proofs[0], b) | |
313 | + | let aq = sigVerify(ak.bodyBytes, ak.proofs[1], b) | |
314 | + | let ar = sigVerify(ak.bodyBytes, ak.proofs[2], b) | |
315 | + | let as = sigVerify(ak.bodyBytes, ak.proofs[0], c) | |
316 | + | let at = sigVerify(ak.bodyBytes, ak.proofs[1], c) | |
317 | + | let au = sigVerify(ak.bodyBytes, ak.proofs[2], c) | |
318 | + | let av = if (if (if (if (if (if (am) | |
319 | + | then aq | |
299 | 320 | else false) | |
321 | + | then true | |
322 | + | else if (am) | |
323 | + | then ar | |
324 | + | else false) | |
325 | + | then true | |
326 | + | else if (an) | |
327 | + | then ap | |
328 | + | else false) | |
329 | + | then true | |
330 | + | else if (an) | |
331 | + | then ar | |
332 | + | else false) | |
333 | + | then true | |
334 | + | else if (ao) | |
335 | + | then ap | |
336 | + | else false) | |
337 | + | then true | |
338 | + | else if (ao) | |
339 | + | then aq | |
340 | + | else false | |
341 | + | let aw = if (if (if (if (if (if (am) | |
342 | + | then at | |
343 | + | else false) | |
344 | + | then true | |
345 | + | else if (am) | |
346 | + | then au | |
347 | + | else false) | |
300 | 348 | then true | |
301 | 349 | else if (an) | |
302 | 350 | then as | |
303 | 351 | else false) | |
304 | 352 | then true | |
305 | - | else if ( | |
306 | - | then | |
353 | + | else if (an) | |
354 | + | then au | |
307 | 355 | else false) | |
308 | 356 | then true | |
309 | 357 | else if (ao) | |
310 | 358 | then as | |
311 | 359 | else false) | |
312 | 360 | then true | |
313 | - | else if (ap) | |
314 | - | then aq | |
361 | + | else if (ao) | |
362 | + | then at | |
363 | + | else false | |
364 | + | let ax = if (if (if (if (if (if (as) | |
365 | + | then aq | |
366 | + | else false) | |
367 | + | then true | |
368 | + | else if (as) | |
369 | + | then ar | |
315 | 370 | else false) | |
316 | 371 | then true | |
317 | - | else if (ap) | |
318 | - | then ar | |
319 | - | else false | |
320 | - | let ax = if (if (if (if (if (if (an) | |
321 | - | then au | |
322 | - | else false) | |
323 | - | then true | |
324 | - | else if (an) | |
325 | - | then av | |
372 | + | else if (at) | |
373 | + | then ap | |
326 | 374 | else false) | |
327 | 375 | then true | |
328 | - | else if ( | |
329 | - | then | |
376 | + | else if (at) | |
377 | + | then ar | |
330 | 378 | else false) | |
331 | 379 | then true | |
332 | - | else if (ao) | |
333 | - | then av | |
334 | - | else false) | |
335 | - | then true | |
336 | - | else if (ap) | |
337 | - | then at | |
338 | - | else false) | |
339 | - | then true | |
340 | - | else if (ap) | |
341 | - | then au | |
342 | - | else false | |
343 | - | let ay = if (if (if (if (if (if (at) | |
344 | - | then ar | |
345 | - | else false) | |
346 | - | then true | |
347 | - | else if (at) | |
348 | - | then as | |
380 | + | else if (au) | |
381 | + | then ap | |
349 | 382 | else false) | |
350 | 383 | then true | |
351 | 384 | else if (au) | |
352 | 385 | then aq | |
353 | - | else false) | |
354 | - | then true | |
355 | - | else if (au) | |
356 | - | then as | |
357 | - | else false) | |
358 | - | then true | |
359 | - | else if (av) | |
360 | - | then aq | |
361 | - | else false) | |
362 | - | then true | |
363 | - | else if (av) | |
364 | - | then ar | |
365 | 386 | else false | |
366 | - | let | |
367 | - | if ($isInstanceOf( | |
387 | + | let p = ak | |
388 | + | if ($isInstanceOf(p, "SetScriptTransaction")) | |
368 | 389 | then { | |
369 | - | let | |
370 | - | sigVerify( | |
390 | + | let ay = p | |
391 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
371 | 392 | } | |
372 | - | else if ($isInstanceOf( | |
393 | + | else if ($isInstanceOf(p, "DataTransaction")) | |
373 | 394 | then { | |
374 | - | let | |
395 | + | let ay = p | |
375 | 396 | true | |
376 | 397 | } | |
377 | - | else if ($isInstanceOf( | |
398 | + | else if ($isInstanceOf(p, "TransferTransaction")) | |
378 | 399 | then { | |
379 | - | let | |
400 | + | let ay = p | |
380 | 401 | true | |
381 | 402 | } | |
382 | - | else if ($isInstanceOf( | |
403 | + | else if ($isInstanceOf(p, "InvokeScriptTransaction")) | |
383 | 404 | then { | |
384 | - | let | |
405 | + | let ay = p | |
385 | 406 | true | |
386 | 407 | } | |
387 | - | else if ($isInstanceOf( | |
408 | + | else if ($isInstanceOf(p, "IssueTransaction")) | |
388 | 409 | then { | |
389 | - | let | |
390 | - | sigVerify( | |
410 | + | let ay = p | |
411 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
391 | 412 | } | |
392 | - | else if ($isInstanceOf( | |
413 | + | else if ($isInstanceOf(p, "ReissueTransaction")) | |
393 | 414 | then { | |
394 | - | let | |
395 | - | sigVerify( | |
415 | + | let ay = p | |
416 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
396 | 417 | } | |
397 | - | else if ($isInstanceOf( | |
418 | + | else if ($isInstanceOf(p, "BurnTransaction")) | |
398 | 419 | then { | |
399 | - | let | |
400 | - | sigVerify( | |
420 | + | let ay = p | |
421 | + | sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey) | |
401 | 422 | } | |
402 | 423 | else false | |
403 | 424 | } | |
404 | 425 |
github/deemru/w8io/3ef1775 133.86 ms ◑