@semaphore-protocol/group 3.2.1 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,17 +1,1052 @@
1
1
  /**
2
2
  * @module @semaphore-protocol/group
3
- * @version 3.2.1
3
+ * @version 3.2.3
4
4
  * @file A library to create and manage Semaphore groups.
5
5
  * @copyright Ethereum Foundation 2022
6
6
  * @license MIT
7
7
  * @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/group}
8
8
  */
9
9
  import { IncrementalMerkleTree } from '@zk-kit/incremental-merkle-tree';
10
- import { poseidon2 } from 'poseidon-lite/poseidon2';
10
+ import require$$1 from 'crypto';
11
11
  import { BigNumber } from '@ethersproject/bignumber';
12
12
  import { zeroPad } from '@ethersproject/bytes';
13
13
  import { keccak256 } from '@ethersproject/keccak256';
14
14
 
15
+ var poseidon2$1 = {};
16
+
17
+ var scalar = {};
18
+
19
+ Object.defineProperty(scalar, "__esModule", {
20
+ value: true
21
+ });
22
+ scalar.abs = abs;
23
+ scalar.add = add;
24
+ scalar.band = band;
25
+ scalar.bitLength = bitLength;
26
+ scalar.bits = bits;
27
+ scalar.bor = bor;
28
+ scalar.bxor = bxor;
29
+ scalar.div = div;
30
+ scalar.e = void 0;
31
+ scalar.eq = eq;
32
+ scalar.exp = exp$1;
33
+ scalar.fromArray = fromArray;
34
+ scalar.fromRprBE = fromRprBE;
35
+ scalar.fromRprLE = fromRprLE;
36
+ scalar.fromString = fromString;
37
+ scalar.geq = geq;
38
+ scalar.gt = gt;
39
+ scalar.isNegative = isNegative;
40
+ scalar.isOdd = isOdd;
41
+ scalar.isZero = isZero;
42
+ scalar.land = land;
43
+ scalar.leq = leq;
44
+ scalar.lnot = lnot;
45
+ scalar.lor = lor;
46
+ scalar.lt = lt;
47
+ scalar.mod = mod;
48
+ scalar.mul = mul;
49
+ scalar.naf = naf;
50
+ scalar.neg = neg;
51
+ scalar.neq = neq;
52
+ scalar.one = void 0;
53
+ scalar.pow = pow;
54
+ scalar.shiftLeft = shiftLeft;
55
+ scalar.shiftRight = shiftRight;
56
+ scalar.shr = scalar.shl = void 0;
57
+ scalar.square = square;
58
+ scalar.sub = sub;
59
+ scalar.toArray = toArray;
60
+ scalar.toLEBuff = toLEBuff;
61
+ scalar.toNumber = toNumber;
62
+ scalar.toRprBE = toRprBE;
63
+ scalar.toRprLE = toRprLE;
64
+ scalar.toString = toString;
65
+ scalar.zero = void 0;
66
+ const hexLen = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];
67
+ function fromString(s, radix) {
68
+ if (!radix || radix == 10) {
69
+ return BigInt(s);
70
+ } else if (radix == 16) {
71
+ if (s.slice(0, 2) == "0x") {
72
+ return BigInt(s);
73
+ } else {
74
+ return BigInt("0x" + s);
75
+ }
76
+ }
77
+ }
78
+ const e = fromString;
79
+ scalar.e = e;
80
+ function fromArray(a, radix) {
81
+ let acc = BigInt(0);
82
+ radix = BigInt(radix);
83
+ for (let i = 0; i < a.length; i++) {
84
+ acc = acc * radix + BigInt(a[i]);
85
+ }
86
+ return acc;
87
+ }
88
+ function bitLength(a) {
89
+ const aS = a.toString(16);
90
+ return (aS.length - 1) * 4 + hexLen[parseInt(aS[0], 16)];
91
+ }
92
+ function isNegative(a) {
93
+ return BigInt(a) < BigInt(0);
94
+ }
95
+ function isZero(a) {
96
+ return !a;
97
+ }
98
+ function shiftLeft(a, n) {
99
+ return BigInt(a) << BigInt(n);
100
+ }
101
+ function shiftRight(a, n) {
102
+ return BigInt(a) >> BigInt(n);
103
+ }
104
+ const shl = shiftLeft;
105
+ scalar.shl = shl;
106
+ const shr = shiftRight;
107
+ scalar.shr = shr;
108
+ function isOdd(a) {
109
+ return (BigInt(a) & BigInt(1)) == BigInt(1);
110
+ }
111
+ function naf(n) {
112
+ let E = BigInt(n);
113
+ const res = [];
114
+ while (E) {
115
+ if (E & BigInt(1)) {
116
+ const z = 2 - Number(E % BigInt(4));
117
+ res.push(z);
118
+ E = E - BigInt(z);
119
+ } else {
120
+ res.push(0);
121
+ }
122
+ E = E >> BigInt(1);
123
+ }
124
+ return res;
125
+ }
126
+ function bits(n) {
127
+ let E = BigInt(n);
128
+ const res = [];
129
+ while (E) {
130
+ if (E & BigInt(1)) {
131
+ res.push(1);
132
+ } else {
133
+ res.push(0);
134
+ }
135
+ E = E >> BigInt(1);
136
+ }
137
+ return res;
138
+ }
139
+ function toNumber(s) {
140
+ if (s > BigInt(Number.MAX_SAFE_INTEGER)) {
141
+ throw new Error("Number too big");
142
+ }
143
+ return Number(s);
144
+ }
145
+ function toArray(s, radix) {
146
+ const res = [];
147
+ let rem = BigInt(s);
148
+ radix = BigInt(radix);
149
+ while (rem) {
150
+ res.unshift(Number(rem % radix));
151
+ rem = rem / radix;
152
+ }
153
+ return res;
154
+ }
155
+ function add(a, b) {
156
+ return BigInt(a) + BigInt(b);
157
+ }
158
+ function sub(a, b) {
159
+ return BigInt(a) - BigInt(b);
160
+ }
161
+ function neg(a) {
162
+ return -BigInt(a);
163
+ }
164
+ function mul(a, b) {
165
+ return BigInt(a) * BigInt(b);
166
+ }
167
+ function square(a) {
168
+ return BigInt(a) * BigInt(a);
169
+ }
170
+ function pow(a, b) {
171
+ return BigInt(a) ** BigInt(b);
172
+ }
173
+ function exp$1(a, b) {
174
+ return BigInt(a) ** BigInt(b);
175
+ }
176
+ function abs(a) {
177
+ return BigInt(a) >= 0 ? BigInt(a) : -BigInt(a);
178
+ }
179
+ function div(a, b) {
180
+ return BigInt(a) / BigInt(b);
181
+ }
182
+ function mod(a, b) {
183
+ return BigInt(a) % BigInt(b);
184
+ }
185
+ function eq(a, b) {
186
+ return BigInt(a) == BigInt(b);
187
+ }
188
+ function neq(a, b) {
189
+ return BigInt(a) != BigInt(b);
190
+ }
191
+ function lt(a, b) {
192
+ return BigInt(a) < BigInt(b);
193
+ }
194
+ function gt(a, b) {
195
+ return BigInt(a) > BigInt(b);
196
+ }
197
+ function leq(a, b) {
198
+ return BigInt(a) <= BigInt(b);
199
+ }
200
+ function geq(a, b) {
201
+ return BigInt(a) >= BigInt(b);
202
+ }
203
+ function band(a, b) {
204
+ return BigInt(a) & BigInt(b);
205
+ }
206
+ function bor(a, b) {
207
+ return BigInt(a) | BigInt(b);
208
+ }
209
+ function bxor(a, b) {
210
+ return BigInt(a) ^ BigInt(b);
211
+ }
212
+ function land(a, b) {
213
+ return BigInt(a) && BigInt(b);
214
+ }
215
+ function lor(a, b) {
216
+ return BigInt(a) || BigInt(b);
217
+ }
218
+ function lnot(a) {
219
+ return !BigInt(a);
220
+ }
221
+ function toRprLE(buff, o, e, n8) {
222
+ const s = "0000000" + e.toString(16);
223
+ const v = new Uint32Array(buff.buffer, o, n8 / 4);
224
+ const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
225
+ for (let i = 0; i < l; i++) v[i] = parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16);
226
+ for (let i = l; i < v.length; i++) v[i] = 0;
227
+ for (let i = v.length * 4; i < n8; i++) buff[i] = toNumber(band(shiftRight(e, i * 8), 0xFF));
228
+ }
229
+ function toRprBE(buff, o, e, n8) {
230
+ const s = "0000000" + e.toString(16);
231
+ const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
232
+ const l = ((s.length - 7) * 4 - 1 >> 5) + 1;
233
+ for (let i = 0; i < l; i++) v.setUint32(n8 - i * 4 - 4, parseInt(s.substring(s.length - 8 * i - 8, s.length - 8 * i), 16), false);
234
+ for (let i = 0; i < n8 / 4 - l; i++) v[i] = 0;
235
+ }
236
+ function fromRprLE(buff, o, n8) {
237
+ n8 = n8 || buff.byteLength;
238
+ o = o || 0;
239
+ const v = new Uint32Array(buff.buffer, o, n8 / 4);
240
+ const a = new Array(n8 / 4);
241
+ v.forEach((ch, i) => a[a.length - i - 1] = ch.toString(16).padStart(8, "0"));
242
+ return fromString(a.join(""), 16);
243
+ }
244
+ function fromRprBE(buff, o, n8) {
245
+ n8 = n8 || buff.byteLength;
246
+ o = o || 0;
247
+ const v = new DataView(buff.buffer, buff.byteOffset + o, n8);
248
+ const a = new Array(n8 / 4);
249
+ for (let i = 0; i < n8 / 4; i++) {
250
+ a[i] = v.getUint32(i * 4, false).toString(16).padStart(8, "0");
251
+ }
252
+ return fromString(a.join(""), 16);
253
+ }
254
+ function toString(a, radix) {
255
+ return a.toString(radix);
256
+ }
257
+ function toLEBuff(a) {
258
+ const buff = new Uint8Array(Math.floor((bitLength(a) - 1) / 8) + 1);
259
+ toRprLE(buff, 0, a, buff.byteLength);
260
+ return buff;
261
+ }
262
+ const zero = e(0);
263
+ scalar.zero = zero;
264
+ const one = e(1);
265
+ scalar.one = one;
266
+
267
+ var f1field = {};
268
+
269
+ var futils$1 = {};
270
+
271
+ Object.defineProperty(futils$1, "__esModule", {
272
+ value: true
273
+ });
274
+ futils$1.exp = exp;
275
+ futils$1.mulScalar = mulScalar;
276
+ var Scalar$4 = _interopRequireWildcard$3(scalar);
277
+ function _getRequireWildcardCache$3(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$3 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
278
+ function _interopRequireWildcard$3(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$3(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
279
+ function mulScalar(F, base, e) {
280
+ let res;
281
+ if (Scalar$4.isZero(e)) return F.zero;
282
+ const n = Scalar$4.naf(e);
283
+ if (n[n.length - 1] == 1) {
284
+ res = base;
285
+ } else if (n[n.length - 1] == -1) {
286
+ res = F.neg(base);
287
+ } else {
288
+ throw new Error("invlaud NAF");
289
+ }
290
+ for (let i = n.length - 2; i >= 0; i--) {
291
+ res = F.double(res);
292
+ if (n[i] == 1) {
293
+ res = F.add(res, base);
294
+ } else if (n[i] == -1) {
295
+ res = F.sub(res, base);
296
+ }
297
+ }
298
+ return res;
299
+ }
300
+ function exp(F, base, e) {
301
+ if (Scalar$4.isZero(e)) return F.one;
302
+ const n = Scalar$4.bits(e);
303
+ if (n.length == 0) return F.one;
304
+ let res = base;
305
+ for (let i = n.length - 2; i >= 0; i--) {
306
+ res = F.square(res);
307
+ if (n[i]) {
308
+ res = F.mul(res, base);
309
+ }
310
+ }
311
+ return res;
312
+ }
313
+
314
+ var fsqrt = {};
315
+
316
+ Object.defineProperty(fsqrt, "__esModule", {
317
+ value: true
318
+ });
319
+ fsqrt.default = buildSqrt;
320
+ var Scalar$3 = _interopRequireWildcard$2(scalar);
321
+ function _getRequireWildcardCache$2(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$2 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
322
+ function _interopRequireWildcard$2(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$2(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
323
+ function buildSqrt(F) {
324
+ if (F.m % 2 == 1) {
325
+ if (Scalar$3.eq(Scalar$3.mod(F.p, 4), 1)) {
326
+ if (Scalar$3.eq(Scalar$3.mod(F.p, 8), 1)) {
327
+ if (Scalar$3.eq(Scalar$3.mod(F.p, 16), 1)) {
328
+ alg5_tonelliShanks(F);
329
+ } else if (Scalar$3.eq(Scalar$3.mod(F.p, 16), 9)) {
330
+ alg4_kong(F);
331
+ } else {
332
+ throw new Error("Field withot sqrt");
333
+ }
334
+ } else if (Scalar$3.eq(Scalar$3.mod(F.p, 8), 5)) {
335
+ alg3_atkin(F);
336
+ } else {
337
+ throw new Error("Field withot sqrt");
338
+ }
339
+ } else if (Scalar$3.eq(Scalar$3.mod(F.p, 4), 3)) {
340
+ alg2_shanks(F);
341
+ }
342
+ } else {
343
+ const pm2mod4 = Scalar$3.mod(Scalar$3.pow(F.p, F.m / 2), 4);
344
+ if (pm2mod4 == 1) {
345
+ alg10_adj(F);
346
+ } else if (pm2mod4 == 3) {
347
+ alg9_adj(F);
348
+ } else {
349
+ alg8_complex(F);
350
+ }
351
+ }
352
+ }
353
+ function alg5_tonelliShanks(F) {
354
+ F.sqrt_q = Scalar$3.pow(F.p, F.m);
355
+ F.sqrt_s = 0;
356
+ F.sqrt_t = Scalar$3.sub(F.sqrt_q, 1);
357
+ while (!Scalar$3.isOdd(F.sqrt_t)) {
358
+ F.sqrt_s = F.sqrt_s + 1;
359
+ F.sqrt_t = Scalar$3.div(F.sqrt_t, 2);
360
+ }
361
+ let c0 = F.one;
362
+ while (F.eq(c0, F.one)) {
363
+ const c = F.random();
364
+ F.sqrt_z = F.pow(c, F.sqrt_t);
365
+ c0 = F.pow(F.sqrt_z, 2 ** (F.sqrt_s - 1));
366
+ }
367
+ F.sqrt_tm1d2 = Scalar$3.div(Scalar$3.sub(F.sqrt_t, 1), 2);
368
+ F.sqrt = function (a) {
369
+ const F = this;
370
+ if (F.isZero(a)) return F.zero;
371
+ let w = F.pow(a, F.sqrt_tm1d2);
372
+ const a0 = F.pow(F.mul(F.square(w), a), 2 ** (F.sqrt_s - 1));
373
+ if (F.eq(a0, F.negone)) return null;
374
+ let v = F.sqrt_s;
375
+ let x = F.mul(a, w);
376
+ let b = F.mul(x, w);
377
+ let z = F.sqrt_z;
378
+ while (!F.eq(b, F.one)) {
379
+ let b2k = F.square(b);
380
+ let k = 1;
381
+ while (!F.eq(b2k, F.one)) {
382
+ b2k = F.square(b2k);
383
+ k++;
384
+ }
385
+ w = z;
386
+ for (let i = 0; i < v - k - 1; i++) {
387
+ w = F.square(w);
388
+ }
389
+ z = F.square(w);
390
+ b = F.mul(b, z);
391
+ x = F.mul(x, w);
392
+ v = k;
393
+ }
394
+ return F.geq(x, F.zero) ? x : F.neg(x);
395
+ };
396
+ }
397
+ function alg4_kong(F) {
398
+ F.sqrt = function () {
399
+ throw new Error("Sqrt alg 4 not implemented");
400
+ };
401
+ }
402
+ function alg3_atkin(F) {
403
+ F.sqrt = function () {
404
+ throw new Error("Sqrt alg 3 not implemented");
405
+ };
406
+ }
407
+ function alg2_shanks(F) {
408
+ F.sqrt_q = Scalar$3.pow(F.p, F.m);
409
+ F.sqrt_e1 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 3), 4);
410
+ F.sqrt = function (a) {
411
+ if (this.isZero(a)) return this.zero;
412
+ const a1 = this.pow(a, this.sqrt_e1);
413
+ const a0 = this.mul(this.square(a1), a);
414
+ if (this.eq(a0, this.negone)) return null;
415
+ const x = this.mul(a1, a);
416
+ return F.geq(x, F.zero) ? x : F.neg(x);
417
+ };
418
+ }
419
+ function alg10_adj(F) {
420
+ F.sqrt = function () {
421
+ throw new Error("Sqrt alg 10 not implemented");
422
+ };
423
+ }
424
+ function alg9_adj(F) {
425
+ F.sqrt_q = Scalar$3.pow(F.p, F.m / 2);
426
+ F.sqrt_e34 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 3), 4);
427
+ F.sqrt_e12 = Scalar$3.div(Scalar$3.sub(F.sqrt_q, 1), 2);
428
+ F.frobenius = function (n, x) {
429
+ if (n % 2 == 1) {
430
+ return F.conjugate(x);
431
+ } else {
432
+ return x;
433
+ }
434
+ };
435
+ F.sqrt = function (a) {
436
+ const F = this;
437
+ const a1 = F.pow(a, F.sqrt_e34);
438
+ const alfa = F.mul(F.square(a1), a);
439
+ const a0 = F.mul(F.frobenius(1, alfa), alfa);
440
+ if (F.eq(a0, F.negone)) return null;
441
+ const x0 = F.mul(a1, a);
442
+ let x;
443
+ if (F.eq(alfa, F.negone)) {
444
+ x = F.mul(x0, [F.F.zero, F.F.one]);
445
+ } else {
446
+ const b = F.pow(F.add(F.one, alfa), F.sqrt_e12);
447
+ x = F.mul(b, x0);
448
+ }
449
+ return F.geq(x, F.zero) ? x : F.neg(x);
450
+ };
451
+ }
452
+ function alg8_complex(F) {
453
+ F.sqrt = function () {
454
+ throw new Error("Sqrt alg 8 not implemented");
455
+ };
456
+ }
457
+
458
+ var random = {};
459
+
460
+ var chacha = {};
461
+
462
+ Object.defineProperty(chacha, "__esModule", {
463
+ value: true
464
+ });
465
+ chacha.default = void 0;
466
+ var Scalar$2 = _interopRequireWildcard$1(scalar);
467
+ function _getRequireWildcardCache$1(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache$1 = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
468
+ function _interopRequireWildcard$1(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache$1(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
469
+ function quarterRound(st, a, b, c, d) {
470
+ st[a] = st[a] + st[b] >>> 0;
471
+ st[d] = (st[d] ^ st[a]) >>> 0;
472
+ st[d] = (st[d] << 16 | st[d] >>> 16 & 0xFFFF) >>> 0;
473
+ st[c] = st[c] + st[d] >>> 0;
474
+ st[b] = (st[b] ^ st[c]) >>> 0;
475
+ st[b] = (st[b] << 12 | st[b] >>> 20 & 0xFFF) >>> 0;
476
+ st[a] = st[a] + st[b] >>> 0;
477
+ st[d] = (st[d] ^ st[a]) >>> 0;
478
+ st[d] = (st[d] << 8 | st[d] >>> 24 & 0xFF) >>> 0;
479
+ st[c] = st[c] + st[d] >>> 0;
480
+ st[b] = (st[b] ^ st[c]) >>> 0;
481
+ st[b] = (st[b] << 7 | st[b] >>> 25 & 0x7F) >>> 0;
482
+ }
483
+ function doubleRound(st) {
484
+ quarterRound(st, 0, 4, 8, 12);
485
+ quarterRound(st, 1, 5, 9, 13);
486
+ quarterRound(st, 2, 6, 10, 14);
487
+ quarterRound(st, 3, 7, 11, 15);
488
+ quarterRound(st, 0, 5, 10, 15);
489
+ quarterRound(st, 1, 6, 11, 12);
490
+ quarterRound(st, 2, 7, 8, 13);
491
+ quarterRound(st, 3, 4, 9, 14);
492
+ }
493
+ class ChaCha {
494
+ constructor(seed) {
495
+ seed = seed || [0, 0, 0, 0, 0, 0, 0, 0];
496
+ this.state = [0x61707865, 0x3320646E, 0x79622D32, 0x6B206574, seed[0], seed[1], seed[2], seed[3], seed[4], seed[5], seed[6], seed[7], 0, 0, 0, 0];
497
+ this.idx = 16;
498
+ this.buff = new Array(16);
499
+ }
500
+ nextU32() {
501
+ if (this.idx == 16) this.update();
502
+ return this.buff[this.idx++];
503
+ }
504
+ nextU64() {
505
+ return Scalar$2.add(Scalar$2.mul(this.nextU32(), 0x100000000), this.nextU32());
506
+ }
507
+ nextBool() {
508
+ return (this.nextU32() & 1) == 1;
509
+ }
510
+ update() {
511
+ for (let i = 0; i < 16; i++) this.buff[i] = this.state[i];
512
+ for (let i = 0; i < 10; i++) doubleRound(this.buff);
513
+ for (let i = 0; i < 16; i++) this.buff[i] = this.buff[i] + this.state[i] >>> 0;
514
+ this.idx = 0;
515
+ this.state[12] = this.state[12] + 1 >>> 0;
516
+ if (this.state[12] != 0) return;
517
+ this.state[13] = this.state[13] + 1 >>> 0;
518
+ if (this.state[13] != 0) return;
519
+ this.state[14] = this.state[14] + 1 >>> 0;
520
+ if (this.state[14] != 0) return;
521
+ this.state[15] = this.state[15] + 1 >>> 0;
522
+ }
523
+ }
524
+ chacha.default = ChaCha;
525
+
526
+ Object.defineProperty(random, "__esModule", {
527
+ value: true
528
+ });
529
+ random.getRandomBytes = getRandomBytes;
530
+ random.getRandomSeed = getRandomSeed;
531
+ random.getThreadRng = getThreadRng;
532
+ var _chacha = _interopRequireDefault$2(chacha);
533
+ function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
534
+ function getRandomBytes(n) {
535
+ let array = new Uint8Array(n);
536
+ if (typeof window !== 'undefined') {
537
+ if (typeof window.crypto !== "undefined") {
538
+ window.crypto.getRandomValues(array);
539
+ } else {
540
+ for (let i = 0; i < n; i++) {
541
+ array[i] = Math.random() * 4294967296 >>> 0;
542
+ }
543
+ }
544
+ } else {
545
+ const crypto = require$$1;
546
+ crypto.randomFillSync(array);
547
+ }
548
+ return array;
549
+ }
550
+ function getRandomSeed() {
551
+ const arr = getRandomBytes(32);
552
+ const arrV = new Uint32Array(arr.buffer);
553
+ const seed = [];
554
+ for (let i = 0; i < 8; i++) {
555
+ seed.push(arrV[i]);
556
+ }
557
+ return seed;
558
+ }
559
+ let threadRng = null;
560
+ function getThreadRng() {
561
+ if (threadRng) return threadRng;
562
+ threadRng = new _chacha.default(getRandomSeed());
563
+ return threadRng;
564
+ }
565
+
566
+ var fft = {};
567
+
568
+ Object.defineProperty(fft, "__esModule", {
569
+ value: true
570
+ });
571
+ fft.default = void 0;
572
+ class FFT {
573
+ constructor(G, F, opMulGF) {
574
+ this.F = F;
575
+ this.G = G;
576
+ this.opMulGF = opMulGF;
577
+ let rem = F.sqrt_t || F.t;
578
+ let s = F.sqrt_s || F.s;
579
+ let nqr = F.one;
580
+ while (F.eq(F.pow(nqr, F.half), F.one)) nqr = F.add(nqr, F.one);
581
+ this.w = new Array(s + 1);
582
+ this.wi = new Array(s + 1);
583
+ this.w[s] = this.F.pow(nqr, rem);
584
+ this.wi[s] = this.F.inv(this.w[s]);
585
+ let n = s - 1;
586
+ while (n >= 0) {
587
+ this.w[n] = this.F.square(this.w[n + 1]);
588
+ this.wi[n] = this.F.square(this.wi[n + 1]);
589
+ n--;
590
+ }
591
+ this.roots = [];
592
+ this._setRoots(Math.min(s, 15));
593
+ }
594
+ _setRoots(n) {
595
+ for (let i = n; i >= 0 && !this.roots[i]; i--) {
596
+ let r = this.F.one;
597
+ const nroots = 1 << i;
598
+ const rootsi = new Array(nroots);
599
+ for (let j = 0; j < nroots; j++) {
600
+ rootsi[j] = r;
601
+ r = this.F.mul(r, this.w[i]);
602
+ }
603
+ this.roots[i] = rootsi;
604
+ }
605
+ }
606
+ fft(p) {
607
+ if (p.length <= 1) return p;
608
+ const bits = log2(p.length - 1) + 1;
609
+ this._setRoots(bits);
610
+ const m = 1 << bits;
611
+ if (p.length != m) {
612
+ throw new Error("Size must be multiple of 2");
613
+ }
614
+ const res = __fft(this, p, bits, 0, 1);
615
+ return res;
616
+ }
617
+ ifft(p) {
618
+ if (p.length <= 1) return p;
619
+ const bits = log2(p.length - 1) + 1;
620
+ this._setRoots(bits);
621
+ const m = 1 << bits;
622
+ if (p.length != m) {
623
+ throw new Error("Size must be multiple of 2");
624
+ }
625
+ const res = __fft(this, p, bits, 0, 1);
626
+ const twoinvm = this.F.inv(this.F.mulScalar(this.F.one, m));
627
+ const resn = new Array(m);
628
+ for (let i = 0; i < m; i++) {
629
+ resn[i] = this.opMulGF(res[(m - i) % m], twoinvm);
630
+ }
631
+ return resn;
632
+ }
633
+ }
634
+ fft.default = FFT;
635
+ function log2(V) {
636
+ return ((V & 0xFFFF0000) !== 0 ? (V &= 0xFFFF0000, 16) : 0) | ((V & 0xFF00FF00) !== 0 ? (V &= 0xFF00FF00, 8) : 0) | ((V & 0xF0F0F0F0) !== 0 ? (V &= 0xF0F0F0F0, 4) : 0) | ((V & 0xCCCCCCCC) !== 0 ? (V &= 0xCCCCCCCC, 2) : 0) | (V & 0xAAAAAAAA) !== 0;
637
+ }
638
+ function __fft(PF, pall, bits, offset, step) {
639
+ const n = 1 << bits;
640
+ if (n == 1) {
641
+ return [pall[offset]];
642
+ } else if (n == 2) {
643
+ return [PF.G.add(pall[offset], pall[offset + step]), PF.G.sub(pall[offset], pall[offset + step])];
644
+ }
645
+ const ndiv2 = n >> 1;
646
+ const p1 = __fft(PF, pall, bits - 1, offset, step * 2);
647
+ const p2 = __fft(PF, pall, bits - 1, offset + step, step * 2);
648
+ const out = new Array(n);
649
+ for (let i = 0; i < ndiv2; i++) {
650
+ out[i] = PF.G.add(p1[i], PF.opMulGF(p2[i], PF.roots[bits][i]));
651
+ out[i + ndiv2] = PF.G.sub(p1[i], PF.opMulGF(p2[i], PF.roots[bits][i]));
652
+ }
653
+ return out;
654
+ }
655
+
656
+ Object.defineProperty(f1field, "__esModule", {
657
+ value: true
658
+ });
659
+ f1field.default = void 0;
660
+ var Scalar$1 = _interopRequireWildcard(scalar);
661
+ var futils = _interopRequireWildcard(futils$1);
662
+ var _fsqrt = _interopRequireDefault$1(fsqrt);
663
+ var _random = random;
664
+ var _fft = _interopRequireDefault$1(fft);
665
+ function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
666
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
667
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
668
+ class ZqField$1 {
669
+ constructor(p) {
670
+ this.type = "F1";
671
+ this.one = BigInt(1);
672
+ this.zero = BigInt(0);
673
+ this.p = BigInt(p);
674
+ this.m = 1;
675
+ this.negone = this.p - this.one;
676
+ this.two = BigInt(2);
677
+ this.half = this.p >> this.one;
678
+ this.bitLength = Scalar$1.bitLength(this.p);
679
+ this.mask = (this.one << BigInt(this.bitLength)) - this.one;
680
+ this.n64 = Math.floor((this.bitLength - 1) / 64) + 1;
681
+ this.n32 = this.n64 * 2;
682
+ this.n8 = this.n64 * 8;
683
+ this.R = this.e(this.one << BigInt(this.n64 * 64));
684
+ this.Ri = this.inv(this.R);
685
+ const e = this.negone >> this.one;
686
+ this.nqr = this.two;
687
+ let r = this.pow(this.nqr, e);
688
+ while (!this.eq(r, this.negone)) {
689
+ this.nqr = this.nqr + this.one;
690
+ r = this.pow(this.nqr, e);
691
+ }
692
+ this.s = 0;
693
+ this.t = this.negone;
694
+ while ((this.t & this.one) == this.zero) {
695
+ this.s = this.s + 1;
696
+ this.t = this.t >> this.one;
697
+ }
698
+ this.nqr_to_t = this.pow(this.nqr, this.t);
699
+ (0, _fsqrt.default)(this);
700
+ this.FFT = new _fft.default(this, this, this.mul.bind(this));
701
+ this.fft = this.FFT.fft.bind(this.FFT);
702
+ this.ifft = this.FFT.ifft.bind(this.FFT);
703
+ this.w = this.FFT.w;
704
+ this.wi = this.FFT.wi;
705
+ this.shift = this.square(this.nqr);
706
+ this.k = this.exp(this.nqr, 2 ** this.s);
707
+ }
708
+ e(a, b) {
709
+ let res;
710
+ if (!b) {
711
+ res = BigInt(a);
712
+ } else if (b == 16) {
713
+ res = BigInt("0x" + a);
714
+ }
715
+ if (res < 0) {
716
+ let nres = -res;
717
+ if (nres >= this.p) nres = nres % this.p;
718
+ return this.p - nres;
719
+ } else {
720
+ return res >= this.p ? res % this.p : res;
721
+ }
722
+ }
723
+ add(a, b) {
724
+ const res = a + b;
725
+ return res >= this.p ? res - this.p : res;
726
+ }
727
+ sub(a, b) {
728
+ return a >= b ? a - b : this.p - b + a;
729
+ }
730
+ neg(a) {
731
+ return a ? this.p - a : a;
732
+ }
733
+ mul(a, b) {
734
+ return a * b % this.p;
735
+ }
736
+ mulScalar(base, s) {
737
+ return base * this.e(s) % this.p;
738
+ }
739
+ square(a) {
740
+ return a * a % this.p;
741
+ }
742
+ eq(a, b) {
743
+ return a == b;
744
+ }
745
+ neq(a, b) {
746
+ return a != b;
747
+ }
748
+ lt(a, b) {
749
+ const aa = a > this.half ? a - this.p : a;
750
+ const bb = b > this.half ? b - this.p : b;
751
+ return aa < bb;
752
+ }
753
+ gt(a, b) {
754
+ const aa = a > this.half ? a - this.p : a;
755
+ const bb = b > this.half ? b - this.p : b;
756
+ return aa > bb;
757
+ }
758
+ leq(a, b) {
759
+ const aa = a > this.half ? a - this.p : a;
760
+ const bb = b > this.half ? b - this.p : b;
761
+ return aa <= bb;
762
+ }
763
+ geq(a, b) {
764
+ const aa = a > this.half ? a - this.p : a;
765
+ const bb = b > this.half ? b - this.p : b;
766
+ return aa >= bb;
767
+ }
768
+ div(a, b) {
769
+ return this.mul(a, this.inv(b));
770
+ }
771
+ idiv(a, b) {
772
+ if (!b) throw new Error("Division by zero");
773
+ return a / b;
774
+ }
775
+ inv(a) {
776
+ if (!a) throw new Error("Division by zero");
777
+ let t = this.zero;
778
+ let r = this.p;
779
+ let newt = this.one;
780
+ let newr = a % this.p;
781
+ while (newr) {
782
+ let q = r / newr;
783
+ [t, newt] = [newt, t - q * newt];
784
+ [r, newr] = [newr, r - q * newr];
785
+ }
786
+ if (t < this.zero) t += this.p;
787
+ return t;
788
+ }
789
+ mod(a, b) {
790
+ return a % b;
791
+ }
792
+ pow(b, e) {
793
+ return futils.exp(this, b, e);
794
+ }
795
+ exp(b, e) {
796
+ return futils.exp(this, b, e);
797
+ }
798
+ band(a, b) {
799
+ const res = a & b & this.mask;
800
+ return res >= this.p ? res - this.p : res;
801
+ }
802
+ bor(a, b) {
803
+ const res = (a | b) & this.mask;
804
+ return res >= this.p ? res - this.p : res;
805
+ }
806
+ bxor(a, b) {
807
+ const res = (a ^ b) & this.mask;
808
+ return res >= this.p ? res - this.p : res;
809
+ }
810
+ bnot(a) {
811
+ const res = a ^ this.mask;
812
+ return res >= this.p ? res - this.p : res;
813
+ }
814
+ shl(a, b) {
815
+ if (Number(b) < this.bitLength) {
816
+ const res = a << b & this.mask;
817
+ return res >= this.p ? res - this.p : res;
818
+ } else {
819
+ const nb = this.p - b;
820
+ if (Number(nb) < this.bitLength) {
821
+ return a >> nb;
822
+ } else {
823
+ return this.zero;
824
+ }
825
+ }
826
+ }
827
+ shr(a, b) {
828
+ if (Number(b) < this.bitLength) {
829
+ return a >> b;
830
+ } else {
831
+ const nb = this.p - b;
832
+ if (Number(nb) < this.bitLength) {
833
+ const res = a << nb & this.mask;
834
+ return res >= this.p ? res - this.p : res;
835
+ } else {
836
+ return 0;
837
+ }
838
+ }
839
+ }
840
+ land(a, b) {
841
+ return a && b ? this.one : this.zero;
842
+ }
843
+ lor(a, b) {
844
+ return a || b ? this.one : this.zero;
845
+ }
846
+ lnot(a) {
847
+ return a ? this.zero : this.one;
848
+ }
849
+ sqrt_old(n) {
850
+ if (n == this.zero) return this.zero;
851
+ const res = this.pow(n, this.negone >> this.one);
852
+ if (res != this.one) return null;
853
+ let m = this.s;
854
+ let c = this.nqr_to_t;
855
+ let t = this.pow(n, this.t);
856
+ let r = this.pow(n, this.add(this.t, this.one) >> this.one);
857
+ while (t != this.one) {
858
+ let sq = this.square(t);
859
+ let i = 1;
860
+ while (sq != this.one) {
861
+ i++;
862
+ sq = this.square(sq);
863
+ }
864
+ let b = c;
865
+ for (let j = 0; j < m - i - 1; j++) b = this.square(b);
866
+ m = i;
867
+ c = this.square(b);
868
+ t = this.mul(t, c);
869
+ r = this.mul(r, b);
870
+ }
871
+ if (r > this.p >> this.one) {
872
+ r = this.neg(r);
873
+ }
874
+ return r;
875
+ }
876
+ normalize(a, b) {
877
+ a = BigInt(a, b);
878
+ if (a < 0) {
879
+ let na = -a;
880
+ if (na >= this.p) na = na % this.p;
881
+ return this.p - na;
882
+ } else {
883
+ return a >= this.p ? a % this.p : a;
884
+ }
885
+ }
886
+ random() {
887
+ const nBytes = this.bitLength * 2 / 8;
888
+ let res = this.zero;
889
+ for (let i = 0; i < nBytes; i++) {
890
+ res = (res << BigInt(8)) + BigInt((0, _random.getRandomBytes)(1)[0]);
891
+ }
892
+ return res % this.p;
893
+ }
894
+ toString(a, base) {
895
+ base = base || 10;
896
+ let vs;
897
+ if (a > this.half && base == 10) {
898
+ const v = this.p - a;
899
+ vs = "-" + v.toString(base);
900
+ } else {
901
+ vs = a.toString(base);
902
+ }
903
+ return vs;
904
+ }
905
+ isZero(a) {
906
+ return a == this.zero;
907
+ }
908
+ fromRng(rng) {
909
+ let v;
910
+ do {
911
+ v = this.zero;
912
+ for (let i = 0; i < this.n64; i++) {
913
+ v += rng.nextU64() << BigInt(64 * i);
914
+ }
915
+ v &= this.mask;
916
+ } while (v >= this.p);
917
+ v = v * this.Ri % this.p;
918
+ return v;
919
+ }
920
+ fft(a) {
921
+ return this.FFT.fft(a);
922
+ }
923
+ ifft(a) {
924
+ return this.FFT.ifft(a);
925
+ }
926
+ toRprLE(buff, o, e) {
927
+ Scalar$1.toRprLE(buff, o, e, this.n64 * 8);
928
+ }
929
+ toRprBE(buff, o, e) {
930
+ Scalar$1.toRprBE(buff, o, e, this.n64 * 8);
931
+ }
932
+ toRprBEM(buff, o, e) {
933
+ return this.toRprBE(buff, o, this.mul(this.R, e));
934
+ }
935
+ toRprLEM(buff, o, e) {
936
+ return this.toRprLE(buff, o, this.mul(this.R, e));
937
+ }
938
+ fromRprLE(buff, o) {
939
+ return Scalar$1.fromRprLE(buff, o, this.n8);
940
+ }
941
+ fromRprBE(buff, o) {
942
+ return Scalar$1.fromRprBE(buff, o, this.n8);
943
+ }
944
+ fromRprLEM(buff, o) {
945
+ return this.mul(this.fromRprLE(buff, o), this.Ri);
946
+ }
947
+ fromRprBEM(buff, o) {
948
+ return this.mul(this.fromRprBE(buff, o), this.Ri);
949
+ }
950
+ toObject(a) {
951
+ return a;
952
+ }
953
+ }
954
+ f1field.default = ZqField$1;
955
+
956
+ const Scalar = scalar;
957
+ const {
958
+ default: ZqField
959
+ } = f1field;
960
+ const F = new ZqField(Scalar.fromString("21888242871839275222246405745257275088548364400416034343698204186575808495617"));
961
+ const N_ROUNDS_F = 8;
962
+ const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
963
+ const pow5 = a => F.mul(a, F.square(F.square(a, a)));
964
+ function poseidon(inputs, opt) {
965
+ if (inputs.length <= 0) {
966
+ throw new Error('poseidon-lite: Not enough inputs');
967
+ }
968
+ if (inputs.length > N_ROUNDS_P.length) {
969
+ throw new Error('poseidon-lite: Too many inputs');
970
+ }
971
+ const t = inputs.length + 1;
972
+ const nRoundsF = N_ROUNDS_F;
973
+ const nRoundsP = N_ROUNDS_P[t - 2];
974
+ const {
975
+ C,
976
+ M
977
+ } = opt;
978
+ if (M.length !== t) {
979
+ throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
980
+ }
981
+ let state = [F.zero, ...inputs.map(a => F.e(a))];
982
+ for (let r = 0; r < nRoundsF + nRoundsP; r++) {
983
+ state = state.map((a, i) => F.add(a, C[r * t + i]));
984
+ if (r < nRoundsF / 2 || r >= nRoundsF / 2 + nRoundsP) {
985
+ state = state.map(a => pow5(a));
986
+ } else {
987
+ state[0] = pow5(state[0]);
988
+ }
989
+ state = state.map((_, i) => state.reduce((acc, a, j) => F.add(acc, F.mul(M[i][j], a)), F.zero));
990
+ }
991
+ return F.normalize(state[0]);
992
+ }
993
+ var slow = poseidon;
994
+
995
+ var unstringify = {};
996
+
997
+ Object.defineProperty(unstringify, "__esModule", {
998
+ value: true
999
+ });
1000
+ unstringify.default = unstringifyBigInts;
1001
+ function unstringifyBigInts(o) {
1002
+ if (typeof o == "string" && /^[0-9]+$/.test(o)) {
1003
+ return BigInt(o);
1004
+ } else if (typeof o == "string" && /^0x[0-9a-fA-F]+$/.test(o)) {
1005
+ return BigInt(o);
1006
+ } else if (typeof o == 'string' && /^[a-zA-Z0-9+\/]+={0,2}$/.test(o)) {
1007
+ const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
1008
+ const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
1009
+ return BigInt(`0x${hex}`);
1010
+ } else if (Array.isArray(o)) {
1011
+ return o.map(unstringifyBigInts);
1012
+ } else if (typeof o == "object") {
1013
+ if (o === null) return null;
1014
+ const res = {};
1015
+ const keys = Object.keys(o);
1016
+ keys.forEach(k => {
1017
+ res[k] = unstringifyBigInts(o[k]);
1018
+ });
1019
+ return res;
1020
+ } else {
1021
+ return o;
1022
+ }
1023
+ }
1024
+
1025
+ var _2 = {};
1026
+
1027
+ Object.defineProperty(_2, "__esModule", {
1028
+ value: true
1029
+ });
1030
+ _2.default = void 0;
1031
+ var _default = {
1032
+ "C": ["DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=", "APFEUjXyFIxZhlhxafwbzYh7CNTQCGjfVpb/9AlW6GQ=", "CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=", "Lye+aQ/a7kbDzij3UysTyFbDU0LIS9puIJZjEPrcAdA=", "KyrhrPaLe40kFr6/PU9iNLdj/gS4BD7ki4MnvryhbPI=", "AxnQYgcr737MperAb5fU1VlSwXWrawPq5ktEx9vxHPo=", "KIE9yuuuqoKKN234evSmO8i3vyetScYpjvezh78oUm0=", "JydnOyzLyQPxgb844cHUDSAzhlIAw1K8FQkord35y3g=", "I07EXKJ3J8LnSr0rKhSUzW771D40BYfWuPueMeZcxjI=", "FbUlNAMa4Y9/hiyyz3z3YKsQqBUKM3sczZn/boeX1Cg=", "Dcj61tnks19e2aPRhrec444Oio0bWLEy1wHU7s9o0fY=", "G82V/8IR+8pgD3BfrT+1Z+pOs3j2Lh/sl4BVGKR+TZw=", "EFILCrchyt/p7/gbAW/DTcdto2wleJN4F8uXjQad5Vk=", "H21IFJuOf32bJX2O1fu69CkySYB1/tCs6IqeuB9WJ/Y=", "HZZV9lIwkBTSngDvNaIIm//43ByBbw3JyjS9tUYMhwU=", "BN9aVv+VvK+wUfexzUOpm6cx/2fkcDIFj+PUGFaXzH0=", "BnLZlfj/9kAVGz0pDO2vFIaQoQqMhCSn9uwoK25L6Cg=", "CZlStBSIRFSyEgDX/6/dXwyancwG8nCOn8HYIJtcdbk=", "BSy6IlXf0Ax8SDFDuo1GlEjkNYaptM2Rg/0OhDprn6Y=", "C4ut7mkK246wvXRxK3mZr4LeVXByUa13Fgd8uTxGTdw=", "EZsVkPEzB69aHuZRAgwHx0nBXWBoOoBQuWPQqOSyvdE=", "AxULfNbV0XslKdNr4PZ7gyxKz8iE707lzhW+C/tKjQk=", "LMYYLF4UVG488ZUfFzkSNVN077g9gImKvmnLMXyepWU=", "AFAyVR5jeMRQz+EppASzdkIYyt7awU4rktLNcxEb8Pk=", "IzI34yibqjS7FH6XLry5UWRpw5n8wGn7iPnaLMKCdrU=", "Bcj09OvUpuPJgNMWdL++YyMDfyGzSuWk6AwtTCTWAoA=", "CnsdsTBC05a6BdgYoxnyUlK8817zru2R7h8JslkPxls=", "KnO3H5shDPWxQpZXLJ0y2/FW4rCG/0fcXfVCNlpATsA=", "GsmwQXq8yaGTUQfp/8kdw+wY8sTb5/Ipdqdgu1xQxGA=", "EsAzmuCDdII/q7B2cH70eSafPk1ssQQ0kBXuBG3JP8A=", "C3R1sQKhZa1/WxjbTh5wT1KQCqMlO6rGgkZoLlbpoo4=", "A3woSeGRyj7bHF5J9ui4kXyEPjeTZvLqMqs6qI1/hEg=", "BaaBH4VW8BTpJnRmHiF+m9UgbFyToH3BRf2xdqcWNG8=", "KaeV59mAKJRulHt11U6fBEB26Hp7KIO0e2de9fOL1m4=", "IEOaDISzIutFo4V6/Bj1gm6Mc4LIoVhcUHvhmZgf0i8=", "Lguo2U2ez0qU7CBQxzcf8btQ8neZqEttSipvKgmCyIc=", "FD/RFc4I+yfKOOt8zoIrRReCLNIQkEjS5tDdzKF9ccg=", "DGTL7LHHNLhXlo273PgTzfhhFlkyPby/yEMjYjvpyvE=", "AoowWEfGg/ZG/KklwWP/WudPNI1iwrZw8UJs75QD2lM=", "Lk71EP8Lb9pfqUCrTEOA8mpry2TYlCe4JNZ1W1254ww=", "AIHJW8QzhOZj15JwyVbOO4kltPbQM7B4uWOE9QV5QA4=", "LtXwyRy9l0kYfi+t5ofgXuJJGzScA5oLuoqfQCOguzg=", "MFCZkfiNo1BLvzdO1ari8DRIoix2I0yMmQ8B8zpzUgY=", "HD8g/VVAmlMiG3xNSaNWufChEZ+yBntBp1KQlEJOxq0=", "ELTn86td8AMElRRFm24Y7sRrsiE+jhMeFwiHtH3cuWw=", "KhmCl5w/9/Q93VQ9iRwqvd2A+ATAd9d1A5qjUC5Dre8=", "HHTuZPFeHbb+3b6tVtbVXbpDHrw5bJr5XK0PExW9XJE=", "B1M+yFC6f5jquTA8rOAbS55PLouCcIz6nC/kWgrhRqA=", "IVdrQ45QBEmhUeTurxexVChcaPQtQsGAihGr83ZMB1A=", "LxfAVZuP55YIrVyhk9YvELzoOEyBXwkGdD1pMINtSp4=", "LUd+OGLQdwinnoqulGFwvJd1pCATGEdK5mWwsbficw4=", "Fi9SQ5ZwZMOQ4JVXeYTyka+6ImbDj1q82Jvg9bJ0fqs=", "K0yyM+3pukgmTs0siuUNGteoWWqH8p+Kd3enAJI5MxE=", "LI+8st2Fc9wduvj0YihUd22y7s5thcTPQlTnw14DsHo=", "HW80dyXkgWry/0U/DNVrGZ4bYen2Aemt5eiNuHCUnak=", "IEsMOX9OvnHrwtiz31uRPfnmrAK2jTEyTNSa9cRWVSk=", "DEy53DxP2BdPEUmzxjw8L57LgnzX3CVTT/j7dbx5xQI=", "F0rWGhRIyJmiVBZHT0kwMB5cSUdSeeBjmmFt3EW8e1Q=", "GpYXe89NjYn3Wd9OwvPN4uqqKMF3zA+hOpgW1Jo40u8=", "Bm0EskMx1xzQ74BUvGDE/wUgLBJqIzwagkKs42C4owo=", "KkxPxuwLDPUhlXgoccbdOzgcxl9y4CrVJwN6Yqob2AQ=", "E6stE2zPN9RH6fLhSnztyV5yf4RG9tnX5Vr8ASGf1kk=", "ESFVL8omBhYZ0k2EPcgnacGwT87Cb1UZTC4+hprMapo=", "AO9lMyKxPWyIm8gXFcN9d6bNJn1ZXEqJCaVUbHyXz/E=", "DiVIPkWmZSCLJh2Lp0BR5kAMd21lJZXZhFrKNdijl9M=", "KfU23LnddoIkUmRlnhXYjjlaw9Td6S2MRkSNuXnuuok=", "KlbvnyxT/rrf2jNXXb29iFoSTieAu+oXDkVrqs4Ppb4=", "HINhx461z13s+3otF7XECfKuKZmkZ2Lo7kFiQKjLmvE=", "FRr/XziyCg/ARzCJqvAga4Po5op2RQe/09CrS+dDGcU=", "BMYYfkHtiB3BsjnIj3+dQ6n1L8jIts3R525HYVtR8QA=", "E7N72A9NJ/sQ2EMx9vttU0uBxh7RV3ZEnoAbfdycKWc=", "AaXFNic8LZ31eL+9MsF7eizjZkwqUgMskyHOscToqOQ=", "KrNWGDTKc4Na0F9desuVC0qaLGZrlybagyI5Blt8OwI=", "HU2OwpHnINsgD+bWhsDWE6yvavTpXTv2n37VFqWXtkY=", "BBKU0sxITSKPV4T+eRn9K7klNRJAoEtxFRTJyAtlrx0=", "FUrJjgFwjGEcT6cVmR8ASJj1eTnRJuOSBClx3ZDoH8Y=", "CzOdisyn1Pg+7dhAk671EFCzaEyI+LCwRSRWO8bqTaQ=", "CVXknmYQyUJUpPhM+6s0RZjw5x6v9Kfdge2VtQg5yC4=", "BnRqYVbrpUQmueIiBvFavKmm9B5vU1xvNSVAHqBlRiY=", "Dxj1oOzRQjxJbzggxUnCeDjleQ4r0KGWrJF8f/Mgd/s=", "BPbuyhdR9zCKxZ7/W+smHku1Y1g+3nvJKnOCI9b3bhM=", "K1aXM2TExPXBo+xNo83OA4gR6xFvs+RbwXaNJvwLN1g=", "Ejdp3UnVsFTc12uJgEsby44TkrOFcWpdg/62XUN/Ke8=", "IUe0JPxIyAqI7lK5EWmqzqmJ9kRkcRUJlCV7L7AcY+k=", "D9wfWFSLhXAabFUF6jMqKWR+bzStQkPC6lStiXzr5U0=", "Ejc6glH+oATfaKvPD3eG1Lzv8oxdu+DDlE9oXMCgsfI=", "IeT06l81+FutfqUv90LJ6KZCdWtq9EID3YofNcGpADU=", "FiQ5FtadLKPftHIiJNTEYrVzZkkvRekNioGTTxvDsUc=", "HvvkbdeleLT2b5rbyItDeKvCFWbhoEU8oTpBWcrASsI=", "B+pehTfPXdCIhgIOI6fzh9Ro1VJb5m+FO2csyWqIlpo=", "BajE+ZaLiqO3tHijD5pbY2UPGadefOEcqf4WwLdsALw=", "IPBXcSzCFlT7/lm9NF6NrD94GMcBuceILZ1Xtyoy6D8=", "BKEu3tqd/WiWcvjGf+4xY23NjojQHUkBm9kLM+sz22k=", "J+iNjBXzfc7kTx5UJaUd7L0TbOUJGmdn5J7JVEzNEBo=", "L+7Re4QoXtm4pcjF6VpB9m4JZhmncDIjF2xB7kM95NE=", "HtfMdu30XHxAQkFCD3Kc85TllCkRMSoNaXK4vVOv8rg=", "FXQumbm/oyMVf/jFhvVmDqxng0dhRM3K3yh0vkVGaxo=", "GqwoU4f2XoLIlfxoh930BXcQdFTG7AMXKE8DPyfQx4U=", "JYUcPIRdR5D53a29tgVzV4MuLnpJd19x7HWpZVTWfHc=", "FaWCFWXMLsLOeEV9sZft81O367osVSM3DdzMPZ8Uamc=", "JBHVekgTuZgO+n4xodtZZtz2TzYEQndQLxVIXyjHFyc=", "AC5vjWUgzUcT4zW4wLbS5kfpqY4S9M0lWIKLXvbLTJs=", "L/e8j0OAzemX2gC2FrD80a+PDpHi/h7XOYg0YJ4DFdI=", "ALmDG5SFJVle4CckRxvNGC6VIfa3u2jx6Tvk/rsNPL4=", "Ci9TdouOv2qGkTsOV8BOARykCGSKR0OofXetvwycNRI=", "ACSBVhQv0Dc6R5+R/yOelg9Zn/fpS+abfyopAwXhGY0=", "Fx1WILh7+xMoz4wCqz8MmjlxlqpqVCwjUOtRKisrzak=", "FwpPVVNvfclwCHx8ENb612DJUhct1U3ZnRBF5Ow0qAg=", "KaujP3mf5mwu8xNK6gQzbsw344wc0hG6SC7KF+Lb+uE=", "HpvBeaT911j90bsZRQiNR+cNEUoD9qDotbplA2nmSXM=", "HdJpeZtmD61Y9/SJLfsLWv6q2GmpxLRPnJ4cQ72vjwk=", "Is28i3ARetFAEYHQLhVFnnzNQm/oacfJXR3Syw8krzg=", "DvBC5FR3HFM6n1elXFA/zv0xUPUu2Up81bqTucfazv0=", "EWCeBq1sj+Lyh/MDYDfohRMY6LCKA1mgOzBP/KYugoQ=", "EWbZ5VRhbbqedT7qQnwXt/7NWMB23+QnCLCPW3g6qa8=", "LeUpiUMahZWTQTAmNUQT2xd/v0zSrAtW+FWoiDV+5GY=", "MAbrT/x6hYGabaSS86isHfUa7lsXuOiddL8Bz19x6a0=", "KvQfu2G6ioD9z2//nj9vQimT/o8KRjn5YjRMgiUUUIY=", "EZ5oTeR2FV/lprQajryF24cYqyeInoXngbIUus5IJ8M=", "GDW3huLokl4Yi+pZrjY1N7USSMI4KPBHz/eEuXs/2AA=", "KCAaNMWU36NNeUmWxkM6INFSusKnkFySbEDihasy7rY=", "CD79eifRdRCU6A/vr3iwAIZMgutXEYdySnYfiMIsxOc=", "C2+Io1dxmVJhWOYc7qJ76BHBbfd3TdhRngeVZPYf0Ts=", "Dsho5tFeUdlkT2bh1kcalFiVEcoA0p4QFDkObuQlT1s=", "KvM+P4ZncScawMmz7S4RQuzT50uTnNQNANk3q4TJhZE=", "C1ICEfkEtefQm12WHGrOdzRWjFR91oWLNkzl5HlR8Xg=", "Cy1yLQkZoarY21jxAGKpLqDFasQnDoIsyiKGIBiKHUA=", "H3kNTX+M8JTZgM6zfCRT6Ve1SpmRyji74AYdHtblYtQ=", "AXHrld+/fR6uqXzThfeAFQiFwWI1oqao2pLOsB5QQjM=", "DC0OO1/VdUkym/aIXaZrm3kLQN79LIZQdiMFOBsWiHM=", "EWL7KGicJxVOWoIotOcrN3y8r6WJ4oPDXTgDBUQHoY0=", "LxRZtl3uRBtkrThqkegxDygsWpKonhmSFiPvgklxG8A=", "Hm/zIWtojD2ZbXQ2fVzUwbxInUZ1TrcSwkP3DRtTz7s=", "AcqL5zgyuNBoFIfSfRV4AtdBpvNs3CoFdogfkyZHiHU=", "H3c1cG/+n8WG+XbVvfIj3GgChggLEM6gC5td4xX5ZQ4=", "JSK2D06jMHZAoMLc4EH7qSGsEKPV8JbvR0XKg4KF8Bk=", "I/C+4AGxAp1SVQdd3JV/gzQYytT1K2w/jOFsI1VyV1s=", "K8Gui43buB/KrC1EVV7VaF0UJjPp35BfZtlAEJMILVk=", "D5QGuCllZKNzBFB7jbo+0WI3EnOgex/JgBH81q1yIF8=", "I2Co6wzH3vpntymY3pBxThfnWxdKUu5KyxJsjNmV8Kg=", "FYcaXN3q2XaATIA8uu8lXrSBWl6W34sAbcu8J2f4iUg=", "GTpWdmmY7p4KhlLdLzsdoDYvT1T3I3lUT5V8ze77Qg8=", "KjlKQ5NPhpgvm+Vv9PqxcDsuY8itM0g05DCYBed3rg8=", "GFmVTP64aV8+i2NdyzRRkoks0RIjRDuntBZuiHbA0UI=", "BOEYF2MFDlgBNETby5nxkCsRvCXZC73KQI04GfT+0ys=", "D9slPe6Dhp1AwzXqZN6MW7EOuC2wi16LH15VUr/QXyM=", "BYy+ippQJ72qTvtiOt6tYnXwhobxwImEqdfFuum08cA=", "E4Ltzplx4YZJfq2xrrH1KyO0uDvvAjqw0VIotMzspZo=", "A0ZJkPBFxu4IGcpR/RGwvn9huOuZ8Ut34eZjRgHZ6LU=", "I/e/yHINwpb/8ztB+Y/4PG/KtGBdsutaqlvBN663Clg=", "ClmhWOPuwhF+bpTn8OnezxjD/9XhUxqSGWNhWLuvYvI=", "BuxUyAOBwFK1i/I7MS/9POLE66BlQgr49MI+0Adf0Hs=", "EYhy3IMuDrVHa1ZkjoZ+yLCTQPenvLG0li8P+e0fnQE=", "E9afoSfYNBZa1cfLp61Z7VLgsPDkLX/qleGQa1IJIbE=", "FpoXf2PqaBJwscaHenPSG94UOUL7cdxV/YpJ8Z8Qx3s=", "BO9RWRxurZfvQvKHrc5A2Tq+sDK5IvZv+36aWnRQVE0=", "JW4XWh3AeTkOzXynA/suOxnsYYBdTwPO1fRe5t0Paew=", "MBAtKGNqvV/l8q9BL/YAT3XMNg0yBd0toAKBPT4s7rI=", "EJmOQt/NO78cBxS8c+sb9ARDo/qZvvSjH9Mb4YL8x5I=", "GT7djp/PPXYl+n0ktZih2J8zYur01YLv7K12+HnjaGA=", "GBaK/TTy2RXQNozoC3szR9HHpWHOYRQl8mZNeqUfC10=", "KTg8AevTtqsMAXZW6+ZYtqMo7He8M2JuKeLpWzPqYRE=", "EGRtLyYD3jmh9K5ed3GmSnAttuhvt2q2AL9XP5AQxxE=", "C+teB9GycUX1dfE5WlW/Ey+QwltA2ns4ZNAkLcsRF/s=", "FtaFJSB4wTPcDT7K1itciDD5W7LlS1mr3/vwGNlvozY=", "Cmq9HYM5OPM8dBVOBAS0tApVW7vsId36/Wct1iBH8Bo=", "GmefXTbre1yOoSpMLe3I/rEt/+7EUDFycKbxmzTPGGA=", "CYD7IzvUVsI5dNUODr/eRyakI+raTo9v+8dZLj8bk9Y=", "FhtCIy5huEy/GBCvk6OPwM7OPVYoySggA+ustcMSxys=", "CtoQqQx/BSCVD31Hpg1eakk/CXh/FWTl0JID20feGgs=", "GnMNNyMQuoIyA0WimsQjjtPweoorThIbtQ3bmvQH9FE=", "LIEg8mjvBU+BcGTDad2n6pCDd/6rpcTf+9oQ71joxVY=", "HHyIJPdYdT+lfAB4nGhCF7kw6VMTvLc+bnuGSaSWj3A=", "LNntMfX4aRyOOeQHenT6oPQArYtJHrP3tHsn+j/Rz3c=", "I/9PnUaBNFfPYNkvV2GDmaXgIqwyHKVQhUriORiiLuo=", "CZRaXRR6T2bO7OZAXd3Z0K9aLFEDUpQH3/HqWPGAQm0=", "GI2cUoAl1MK2dmDGt3G5D3x9puqinT8mim3SI+xvxjA=", "MFDjeZZZa3+B9oMRQx2HNNun2SbTYzWV4MDY3fTw9H8=", "Fa8RaTloMKkWAMqBAsNcQmzq5UYeP5XYnYKVGNMK/Xg=", "HabQmIVDLqmgbZ83+HPZhdrpM+NRRmspBChNozINisw=", "J5bqkNJpryn1+KzzOSESTk5PrT2+ZYlF5UbuQR3aqcs=", "IC190doPa0sDJcizMHdC8B4VYS7I6TBKfLAxngHTLWA=", "CW1nkNBbt1kVapUromPWcqLX+ceI9Mgxop2s5MD4vl8=", "BU76H2Ww/OKDgIllJ12He0ONojzlsT4ZY3mMsUR9JaQ=", "GxYvg9kX6T7bMwjCmALeudiqaQETsuFIZMz24Y5BZfE=", "IeUkHhJWTdb9nxzdKg3jnu3+/BRmzFaOxc63RaBQbtw=", "HPtWYujPWskiaoDuF7Nqvstzq1+H4WGSe0NJ4Q5L3wg=", "DyEXfjAqdxu65tjR7LNztiyZrzRiIKwBKcU/Zm6yQQA=", "FnFSI3RgaZKv+w3X9xsSvsQjau3mKQVGvO9+H1FcIyA=", "D6PsW5SIJZwutM8kUBv62b4uyeQsXMjM1BnSppLK2HA=", "GTwOBOC9KYNXyyZsFQYIDtNu3OhcZIzAhejFexq1S7o=", "ECrfjvdHNaJ+kSgwbcvDyZ9vcpHNQGV4zhTqKtq6aPg=", "D+CveFjkmFnipU1vGtlFsTFqokv73SOuQKbQy3DD6rE=", "IW9nF7vH3tsIU2oiIIQ/Ti2l8dqp69796KXqc0R5jSI=", "HaVcyQDw0h9KPmlDkZGKGzwjsqx3PGs++I4uQigyUWE="],
1033
+ "M": [["EJt/QRug5MmytwyvXDansZS+fBGtJDeL/ttoWSuoEYs=", "Fu1B4Tu5wMZq4RlCT928vJMU3J/b3upV1sZFQ9xJA+A=", "K5C7oA/KBYn2F+fcv+guDfcGq2QM6yR7eRqTt042c20="], ["KWnyfu0xpIC5w2x2Q3nbyizI/dFBXD3e1ilAvN4L13E=", "LiQZ+ewC7DlMmHHIMpY9wbiddDyMe5ZAKbIxFoex/iM=", "EBBx8AMjebaXMVh2aQ8FPRSNThCfX7BlyKrMVaD4m/o="], ["FDAh7GhqPzMNX55lRjgGXObNeeKMWzdTMmJE7mWhsac=", "F2zAKWla0CWCpw7/CKb9mdBX4S5Y59e2sWzfq8juKRE=", "GaP8ClZwK/QXun/uOAJZP6ZERwMHBD93cyec1x0l1eA="]]
1034
+ };
1035
+ _2.default = _default;
1036
+
1037
+ Object.defineProperty(poseidon2$1, "__esModule", {
1038
+ value: true
1039
+ });
1040
+ var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
1041
+ var _slow = _interopRequireDefault(slow);
1042
+ var _unstringify = _interopRequireDefault(unstringify);
1043
+ var _ = _interopRequireDefault(_2);
1044
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1045
+ const c = (0, _unstringify.default)(_.default);
1046
+ function poseidon2(inputs) {
1047
+ return (0, _slow.default)(inputs, c);
1048
+ }
1049
+
15
1050
  /**
16
1051
  * Creates a keccak256 hash of a message compatible with the SNARK scalar modulus.
17
1052
  * @param message The message to be hashed.
@@ -35,7 +1070,7 @@ var Group = /** @class */ (function () {
35
1070
  throw new Error("The tree depth must be between 16 and 32");
36
1071
  }
37
1072
  this._id = id;
38
- this.merkleTree = new IncrementalMerkleTree(poseidon2, treeDepth, hash(id), 2);
1073
+ this.merkleTree = new IncrementalMerkleTree(poseidon2_2, treeDepth, hash(id), 2);
39
1074
  }
40
1075
  Object.defineProperty(Group.prototype, "id", {
41
1076
  /**