@semaphore-protocol/proof 2.6.1 → 3.0.0-beta.6

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module @semaphore-protocol/proof
3
- * @version 2.6.1
3
+ * @version 3.0.0-beta.6
4
4
  * @file A library to generate and verify Semaphore proofs.
5
5
  * @copyright Ethereum Foundation 2022
6
6
  * @license MIT
@@ -10,21 +10,10 @@
10
10
 
11
11
  Object.defineProperty(exports, '__esModule', { value: true });
12
12
 
13
- var circomlibjs = require('circomlibjs');
14
13
  var snarkjs = require('snarkjs');
14
+ var bignumber = require('@ethersproject/bignumber');
15
15
  var bytes = require('@ethersproject/bytes');
16
- var solidity = require('@ethersproject/solidity');
17
- var strings = require('@ethersproject/strings');
18
-
19
- /**
20
- * Generates a nullifier by hashing the external and the identity nullifiers.
21
- * @param externalNullifier The external nullifier.
22
- * @param identityNullifier The identity nullifier.
23
- * @returns The nullifier hash.
24
- */
25
- function generateNullifierHash(externalNullifier, identityNullifier) {
26
- return circomlibjs.poseidon([BigInt(externalNullifier), BigInt(identityNullifier)]);
27
- }
16
+ var keccak256 = require('@ethersproject/keccak256');
28
17
 
29
18
  /******************************************************************************
30
19
  Copyright (c) Microsoft Corporation.
@@ -41,6 +30,17 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
41
30
  PERFORMANCE OF THIS SOFTWARE.
42
31
  ***************************************************************************** */
43
32
 
33
+ var __assign = function() {
34
+ __assign = Object.assign || function __assign(t) {
35
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
36
+ s = arguments[i];
37
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
38
+ }
39
+ return t;
40
+ };
41
+ return __assign.apply(this, arguments);
42
+ };
43
+
44
44
  function __awaiter(thisArg, _arguments, P, generator) {
45
45
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
46
46
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -80,15 +80,14 @@ function __generator(thisArg, body) {
80
80
  }
81
81
 
82
82
  /**
83
- * Hashes a signal string with Keccak256.
84
- * @param signal The Semaphore signal.
85
- * @returns The signal hash.
83
+ * Creates a keccak256 hash of a message compatible with the SNARK scalar modulus.
84
+ * @param message The message to be hashed.
85
+ * @returns The message digest.
86
86
  */
87
- function genSignalHash(signal) {
88
- if (!bytes.isHexString(signal, 32)) {
89
- signal = strings.formatBytes32String(signal);
90
- }
91
- return BigInt(solidity.keccak256(["bytes32"], [signal])) >> BigInt(8);
87
+ function hash(message) {
88
+ message = bignumber.BigNumber.from(message).toTwos(256).toHexString();
89
+ message = bytes.zeroPad(message, 32);
90
+ return BigInt(keccak256.keccak256(message)) >> BigInt(8);
92
91
  }
93
92
 
94
93
  function generateProof(_a, groupOrMerkleProof, externalNullifier, signal, snarkArtifacts) {
@@ -103,7 +102,7 @@ function generateProof(_a, groupOrMerkleProof, externalNullifier, signal, snarkA
103
102
  if (index === -1) {
104
103
  throw new Error("The identity is not part of the group");
105
104
  }
106
- merkleProof = groupOrMerkleProof.generateProofOfMembership(index);
105
+ merkleProof = groupOrMerkleProof.generateMerkleProof(index);
107
106
  }
108
107
  else {
109
108
  merkleProof = groupOrMerkleProof;
@@ -119,15 +118,15 @@ function generateProof(_a, groupOrMerkleProof, externalNullifier, signal, snarkA
119
118
  identityNullifier: nullifier,
120
119
  treePathIndices: merkleProof.pathIndices,
121
120
  treeSiblings: merkleProof.siblings,
122
- externalNullifier: externalNullifier,
123
- signalHash: genSignalHash(signal)
121
+ externalNullifier: hash(externalNullifier),
122
+ signalHash: hash(signal)
124
123
  }, snarkArtifacts.wasmFilePath, snarkArtifacts.zkeyFilePath)];
125
124
  case 1:
126
125
  _b = _c.sent(), proof = _b.proof, publicSignals = _b.publicSignals;
127
126
  return [2 /*return*/, {
128
127
  proof: proof,
129
128
  publicSignals: {
130
- merkleRoot: publicSignals[0],
129
+ merkleTreeRoot: publicSignals[0],
131
130
  nullifierHash: publicSignals[1],
132
131
  signalHash: publicSignals[2],
133
132
  externalNullifier: publicSignals[3]
@@ -138,16 +137,799 @@ function generateProof(_a, groupOrMerkleProof, externalNullifier, signal, snarkA
138
137
  });
139
138
  }
140
139
 
140
+ var protocol = "groth16";
141
+ var curve = "bn128";
142
+ var nPublic = 4;
143
+ var vk_alpha_1 = [
144
+ "20491192805390485299153009773594534940189261866228447918068658471970481763042",
145
+ "9383485363053290200918347156157836566562967994039712273449902621266178545958",
146
+ "1"
147
+ ];
148
+ var vk_beta_2 = [
149
+ [
150
+ "6375614351688725206403948262868962793625744043794305715222011528459656738731",
151
+ "4252822878758300859123897981450591353533073413197771768651442665752259397132"
152
+ ],
153
+ [
154
+ "10505242626370262277552901082094356697409835680220590971873171140371331206856",
155
+ "21847035105528745403288232691147584728191162732299865338377159692350059136679"
156
+ ],
157
+ [
158
+ "1",
159
+ "0"
160
+ ]
161
+ ];
162
+ var vk_gamma_2 = [
163
+ [
164
+ "10857046999023057135944570762232829481370756359578518086990519993285655852781",
165
+ "11559732032986387107991004021392285783925812861821192530917403151452391805634"
166
+ ],
167
+ [
168
+ "8495653923123431417604973247489272438418190587263600148770280649306958101930",
169
+ "4082367875863433681332203403145435568316851327593401208105741076214120093531"
170
+ ],
171
+ [
172
+ "1",
173
+ "0"
174
+ ]
175
+ ];
176
+ var vk_delta_2 = [
177
+ [
178
+ [
179
+ "16243966861079634958125511652590761846958471358623040426599000904006426210032",
180
+ "13406811599156507528361773763681356312643537981039994686313383243831956396116"
181
+ ],
182
+ [
183
+ "15688083679237922164673518758181461582601853873216319711156397437601833996222",
184
+ "11781596534582143578120404722739278517564025497573071755253972265891888117374"
185
+ ],
186
+ [
187
+ "1",
188
+ "0"
189
+ ]
190
+ ],
191
+ [
192
+ [
193
+ "13589689305661231568162336263197960570915890299814486885851912452076929115480",
194
+ "15629200772768268814959330350023920183087521275477047626405113853190187031523"
195
+ ],
196
+ [
197
+ "16004221700357242255845535848024178544616388017965468694776181247983831995562",
198
+ "11464919285924930973853174493551975632739604254498590354200272115844983493029"
199
+ ],
200
+ [
201
+ "1",
202
+ "0"
203
+ ]
204
+ ],
205
+ [
206
+ [
207
+ "19717684456458906358368865507225121991585492363133107109865920739019288468011",
208
+ "9218320951536642499143228327011901814587826948504871816273184688188019956292"
209
+ ],
210
+ [
211
+ "18221695645112467945186983098720611586049108689347006136423489099202471884089",
212
+ "16717590750910963405756115910371408378114896008824240863060392362901176601412"
213
+ ],
214
+ [
215
+ "1",
216
+ "0"
217
+ ]
218
+ ],
219
+ [
220
+ [
221
+ "15953239752392927777442331623182226063776310198012173504208557434319753428770",
222
+ "3995128789564535587814512245259203300137618476815456454931286633947953135662"
223
+ ],
224
+ [
225
+ "2523786679709693946058523307330825034772478122295850507521258983130425334580",
226
+ "20957319343912866335583737646657534123362052690050674068142580221965936605075"
227
+ ],
228
+ [
229
+ "1",
230
+ "0"
231
+ ]
232
+ ],
233
+ [
234
+ [
235
+ "1382518990777992893805140303684642328066746531257780279226677247567004248173",
236
+ "18976133691706015337908381757202123182841901611067930614519324084182946094218"
237
+ ],
238
+ [
239
+ "21806956747910197517744499423107239699428979652113081469385876768212706694581",
240
+ "6627710380771660558660627878547223719795356903257079198333641681330388499309"
241
+ ],
242
+ [
243
+ "1",
244
+ "0"
245
+ ]
246
+ ],
247
+ [
248
+ [
249
+ "9032545080831535702239063467087720597970266046938395860207839433937324718536",
250
+ "3811592683283527904145155808200366192489850711742363953668998371801696238057"
251
+ ],
252
+ [
253
+ "12429982191499850873612518410809641163252887523090441166572590809691267943605",
254
+ "16308433125974933290258540904373317426123214107276055539769464205982500660715"
255
+ ],
256
+ [
257
+ "1",
258
+ "0"
259
+ ]
260
+ ],
261
+ [
262
+ [
263
+ "17626503110323089701269363177710295379967225765713250625279671011873619640598",
264
+ "9485639152672984144988597737758037391807993615552051606205480347442429414340"
265
+ ],
266
+ [
267
+ "18953587685067712486092665232725058638563458484886448540567142557894080640927",
268
+ "12391874700409435648975069978280047983726144854114915177376036190441913967689"
269
+ ],
270
+ [
271
+ "1",
272
+ "0"
273
+ ]
274
+ ],
275
+ [
276
+ [
277
+ "11408965575174993375815840422438995549652812400401163392501956884932167624437",
278
+ "9830856103389248449121962275587399130605902703453384856543071762984116567573"
279
+ ],
280
+ [
281
+ "19969543376625663966419118899515353499678204573709836615846115182224340858492",
282
+ "11814906841949499037550820576929552248172160643991870665022770052632331265834"
283
+ ],
284
+ [
285
+ "1",
286
+ "0"
287
+ ]
288
+ ],
289
+ [
290
+ [
291
+ "10090041889587324002759549286390619541526396451963494627957072069124011137562",
292
+ "15035335306919942325459417688135340085377315274625768597233474641923619728582"
293
+ ],
294
+ [
295
+ "10507786999799841055999967456762679569286329319056926475375760604262707147294",
296
+ "21342049717074059749518233491526445388158772701642182532370641230478027030319"
297
+ ],
298
+ [
299
+ "1",
300
+ "0"
301
+ ]
302
+ ],
303
+ [
304
+ [
305
+ "43456740675249348549891878341522275183186932745162972528932808393415299552",
306
+ "15718373132479769904443326381037437528372212185108294117696143473979328398658"
307
+ ],
308
+ [
309
+ "4289247401578837038775845192875793775418122783738936298355403103074020081838",
310
+ "11236864934894600819960883124570686936554376109344998527334431594565774237827"
311
+ ],
312
+ [
313
+ "1",
314
+ "0"
315
+ ]
316
+ ],
317
+ [
318
+ [
319
+ "4023016874169005249382064394379671330447496454371261692205411970999350949293",
320
+ "1723458149089715907994189658689343304709709060535625667210252753337752162173"
321
+ ],
322
+ [
323
+ "17710652158212212080502343565075513548898593397103675832636832371532093744857",
324
+ "7651670126664625790835334090273463062538865895183205964669372719235003083565"
325
+ ],
326
+ [
327
+ "1",
328
+ "0"
329
+ ]
330
+ ],
331
+ [
332
+ [
333
+ "13132169670125192016391258838554965176628317453468870968867717287446623320643",
334
+ "745924679191739894055143748466112994378439645681039136007774787076115375124"
335
+ ],
336
+ [
337
+ "20909608709868730010029182074820840312550443752829480953667886902663547957991",
338
+ "2126777833939378028304266129616145667925849332481755567268747182629795296580"
339
+ ],
340
+ [
341
+ "1",
342
+ "0"
343
+ ]
344
+ ],
345
+ [
346
+ [
347
+ "16835654219229187428071649241190746119082269636345872682107941472241044260584",
348
+ "4553625243522856553165922942982108474187282402890756796515747778282922584601"
349
+ ],
350
+ [
351
+ "873742823867191038535544062852920538566418819521732785500614249239215175476",
352
+ "3272293478534046729728233267765357195255129499603632413158978822084188871854"
353
+ ],
354
+ [
355
+ "1",
356
+ "0"
357
+ ]
358
+ ],
359
+ [
360
+ [
361
+ "7601443214415704135008588588192028557655441716696726549510699770097979655628",
362
+ "7252337675475138150830402909353772156046809729627064992143762325769537840623"
363
+ ],
364
+ [
365
+ "18500126298578278987997086114400065402270866280547473913420536595663876273004",
366
+ "436607343827794507835462908831699962173244647704538949914686722631806931932"
367
+ ],
368
+ [
369
+ "1",
370
+ "0"
371
+ ]
372
+ ],
373
+ [
374
+ [
375
+ "15028154694713144242204861571552635520290993855826554325002991692907421516918",
376
+ "10202326166286888893675634318107715186834588694714750762952081034135561546271"
377
+ ],
378
+ [
379
+ "12766289885372833812620582632847872978085960777075662988932200910695848591357",
380
+ "18486039841380105976272577521609866666900576498507352937328726490052296469859"
381
+ ],
382
+ [
383
+ "1",
384
+ "0"
385
+ ]
386
+ ],
387
+ [
388
+ [
389
+ "13682963731073238132274278610660469286329368216526659590944079211949686450402",
390
+ "14930624777162656776068112402283260602512252179767747308433194885322661150422"
391
+ ],
392
+ [
393
+ "21315724107376627085778492378001676935454590984229146391746301404292016287653",
394
+ "18705481657148807016785305378773304476425591636333098330324049960258682574070"
395
+ ],
396
+ [
397
+ "1",
398
+ "0"
399
+ ]
400
+ ],
401
+ [
402
+ [
403
+ "18994803742708336446369128568423705404354655742604689352630273180469431952708",
404
+ "12315240965742683516581565369496371929586281338862761742109651525191835544242"
405
+ ],
406
+ [
407
+ "12707009780301102830224094192984906206920666691015255692741008594808694787917",
408
+ "18019403342409608922812569436317484250134945386869657285229378095251425778096"
409
+ ],
410
+ [
411
+ "1",
412
+ "0"
413
+ ]
414
+ ]
415
+ ];
416
+ var vk_alphabeta_12 = [
417
+ [
418
+ [
419
+ "2029413683389138792403550203267699914886160938906632433982220835551125967885",
420
+ "21072700047562757817161031222997517981543347628379360635925549008442030252106"
421
+ ],
422
+ [
423
+ "5940354580057074848093997050200682056184807770593307860589430076672439820312",
424
+ "12156638873931618554171829126792193045421052652279363021382169897324752428276"
425
+ ],
426
+ [
427
+ "7898200236362823042373859371574133993780991612861777490112507062703164551277",
428
+ "7074218545237549455313236346927434013100842096812539264420499035217050630853"
429
+ ]
430
+ ],
431
+ [
432
+ [
433
+ "7077479683546002997211712695946002074877511277312570035766170199895071832130",
434
+ "10093483419865920389913245021038182291233451549023025229112148274109565435465"
435
+ ],
436
+ [
437
+ "4595479056700221319381530156280926371456704509942304414423590385166031118820",
438
+ "19831328484489333784475432780421641293929726139240675179672856274388269393268"
439
+ ],
440
+ [
441
+ "11934129596455521040620786944827826205713621633706285934057045369193958244500",
442
+ "8037395052364110730298837004334506829870972346962140206007064471173334027475"
443
+ ]
444
+ ]
445
+ ];
446
+ var IC = [
447
+ [
448
+ [
449
+ "1964404930528116823793003656764176108669615750422202377358993070935069307720",
450
+ "2137714996673694828207437580381836490878070731768805974506391024595988817424",
451
+ "1"
452
+ ],
453
+ [
454
+ "19568893707760843340848992184233194433177372925415116053368211122719346671126",
455
+ "11639469568629189918046964192305250472192697612201524135560178632824282818614",
456
+ "1"
457
+ ],
458
+ [
459
+ "5317268879687484957437879782519918549127939892210247573193613900261494313825",
460
+ "528174394975085006443543773707702838726735933116136102590448357278717993744",
461
+ "1"
462
+ ],
463
+ [
464
+ "14865918005176722116473730206622066845866539143554731094374354951675249722731",
465
+ "3197770568483953664363740385883457803041685902965668289308665954510373380344",
466
+ "1"
467
+ ],
468
+ [
469
+ "6863358721495494421022713667808247652425178970453300712435830652679038918987",
470
+ "15025816433373311798308762709072064417001390853103872064614174594927359131281",
471
+ "1"
472
+ ]
473
+ ],
474
+ [
475
+ [
476
+ "17789438292552571310739605737896030466581277887660997531707911256058650850910",
477
+ "4112657509505371631825493224748310061184972897405589115208158208294581472016",
478
+ "1"
479
+ ],
480
+ [
481
+ "3322052920119834475842380240689494113984887785733316517680891208549118967155",
482
+ "381029395779795399840019487059126246243641886087320875571067736504031557148",
483
+ "1"
484
+ ],
485
+ [
486
+ "8777645223617381095463415690983421308854368583891690388850387317049320450400",
487
+ "11923582117369144413749726090967341613266070909169947059497952692052020331958",
488
+ "1"
489
+ ],
490
+ [
491
+ "15493263571528401950994933073246603557158047091963487223668240334879173885581",
492
+ "6315532173951617115856055775098532808695228294437279844344466163873167020700",
493
+ "1"
494
+ ],
495
+ [
496
+ "3481637421055377106140197938175958155334313900824697193932986771017625492245",
497
+ "20088416136090515091300914661950097694450984520235647990572441134215240947932",
498
+ "1"
499
+ ]
500
+ ],
501
+ [
502
+ [
503
+ "4691595252082380256698158158199364410440273386659834000993210659508747323919",
504
+ "9205801980459323513061837717352821162780471027241700646145937351740096374660",
505
+ "1"
506
+ ],
507
+ [
508
+ "16150531426263112884093068164597994126623437929929609532055221646496813246000",
509
+ "20245743178241899668170758952526381872637304119026868520579207157118516761827",
510
+ "1"
511
+ ],
512
+ [
513
+ "6063536446992770713985314309889717594240410784717230886576072989709763902848",
514
+ "18258781411255795973918859665416013869184055573057512603788635470145328981347",
515
+ "1"
516
+ ],
517
+ [
518
+ "10109932964756104512054045207253535333686585863745296080906925765480296575285",
519
+ "4174640428253153601540284363759502713687021920150940723252842152556151210349",
520
+ "1"
521
+ ],
522
+ [
523
+ "18049428534741480832385046397049175120355008065781483226058177421025493210952",
524
+ "591730261265040164434889324846001338201068482543108348317417391345612814922",
525
+ "1"
526
+ ]
527
+ ],
528
+ [
529
+ [
530
+ "9877211178693075145402462781884120278654771727348087433632224794894486095150",
531
+ "19972682062587174829535281061580296764150591339640180868104711395548066529340",
532
+ "1"
533
+ ],
534
+ [
535
+ "6324578424031095537345184040149690238371517387586958921377481904541316423724",
536
+ "15513931720576048544404512239839508014664224085062729779520992909505663748296",
537
+ "1"
538
+ ],
539
+ [
540
+ "11371337652479737143800707796204655130812036287859296372695832558127430723628",
541
+ "11757275188600040111649009832378343123994225623498773406233261322165903848967",
542
+ "1"
543
+ ],
544
+ [
545
+ "13282496583564708104981015168203451877588903263486398132954741568835583461335",
546
+ "1746144324840370907926720490289700342734912534857331743685374514401176014195",
547
+ "1"
548
+ ],
549
+ [
550
+ "7993952462467372951144011615584426050192046712674662254138390197508963352374",
551
+ "5156942148925224345709309361345680948125600198010285179548841917923439945819",
552
+ "1"
553
+ ]
554
+ ],
555
+ [
556
+ [
557
+ "19918517214839406678907482305035208173510172567546071380302965459737278553528",
558
+ "7151186077716310064777520690144511885696297127165278362082219441732663131220",
559
+ "1"
560
+ ],
561
+ [
562
+ "690581125971423619528508316402701520070153774868732534279095503611995849608",
563
+ "21271996888576045810415843612869789314680408477068973024786458305950370465558",
564
+ "1"
565
+ ],
566
+ [
567
+ "16461282535702132833442937829027913110152135149151199860671943445720775371319",
568
+ "2814052162479976678403678512565563275428791320557060777323643795017729081887",
569
+ "1"
570
+ ],
571
+ [
572
+ "4319780315499060392574138782191013129592543766464046592208884866569377437627",
573
+ "13920930439395002698339449999482247728129484070642079851312682993555105218086",
574
+ "1"
575
+ ],
576
+ [
577
+ "3554830803181375418665292545416227334138838284686406179598687755626325482686",
578
+ "5951609174746846070367113593675211691311013364421437923470787371738135276998",
579
+ "1"
580
+ ]
581
+ ],
582
+ [
583
+ [
584
+ "9494885690931955877467315318223108618392113101843890678090902614660136056680",
585
+ "11783514256715757384821021009301806722951917744219075907912683963173706887379",
586
+ "1"
587
+ ],
588
+ [
589
+ "7562082660623781416745328104576133910743071878837764423695105915778139873834",
590
+ "17954307004260053757579194018551114133664721761483240877658498973152950708099",
591
+ "1"
592
+ ],
593
+ [
594
+ "19338184851116432029108109461622579541195083625346674255186169347975445785058",
595
+ "38361206266360048012365562393026952048730052530888439195454086987795985927",
596
+ "1"
597
+ ],
598
+ [
599
+ "21178537742782571863590222710872928190886000600239072595684369348717288330049",
600
+ "9786438258541172244884631831247223050494423968411444302812755467521949734320",
601
+ "1"
602
+ ],
603
+ [
604
+ "11330504221972341797183339350494223413034293674225690456356444509688810101433",
605
+ "1490009915387901405464437253469086864085891770312035292355706249426866485365",
606
+ "1"
607
+ ]
608
+ ],
609
+ [
610
+ [
611
+ "21791720972262589799021600767292883644106575897307484548888696814333235336885",
612
+ "11092962469758788187888592619035811117815082357439060720677582048880121542623",
613
+ "1"
614
+ ],
615
+ [
616
+ "9418924955930663972575130074928583215922927562059194231976193350658171304436",
617
+ "16113558481826020406162261319744796072664750077095575593106901121115073101408",
618
+ "1"
619
+ ],
620
+ [
621
+ "20054934960262983176880675919444457578562219675808407582143519621873973120773",
622
+ "14877415271301547911435683263206245199959943680225555496786470669330176961657",
623
+ "1"
624
+ ],
625
+ [
626
+ "4215199263810110748751715719957184804379752373072771007598572158043965517488",
627
+ "5225943468606602818132879686778547605180105897615251160509064537462109826521",
628
+ "1"
629
+ ],
630
+ [
631
+ "6250242626034734280813142093008675407723196706248829741247204621913994561803",
632
+ "1472231555266678689888727724824566171966416459791722465278225775922487343641",
633
+ "1"
634
+ ]
635
+ ],
636
+ [
637
+ [
638
+ "3047486363455933831148688762823238723024952519326207356549121929667745957778",
639
+ "20241836359289449005887237560564358543646542598344362915541027571505243817211",
640
+ "1"
641
+ ],
642
+ [
643
+ "5965631918800530319167124148627450454569264331058008407732200168631989208657",
644
+ "20463557477532480934514091877628554948892025887087712764683631108388998871350",
645
+ "1"
646
+ ],
647
+ [
648
+ "16605042322692983282732511249912403956057999815658038166796858627082222971215",
649
+ "12219061498275616585164456833410962809536084885494309093787669879221959361956",
650
+ "1"
651
+ ],
652
+ [
653
+ "1548998572074037722622224303222294716243074837074272552644853986075252666508",
654
+ "10393312002885367652301897874262367916506364670364584602554176742602334134772",
655
+ "1"
656
+ ],
657
+ [
658
+ "16180907689593358346406392015123900260925622357393826746385511046141256905390",
659
+ "12267326749885120640972074479210537480053065569337817484467225562817467244765",
660
+ "1"
661
+ ]
662
+ ],
663
+ [
664
+ [
665
+ "19590996174696909242575628014943555633938195923520472786993379268302478708283",
666
+ "2673753072556442230312995111304911178679525806396134504594492458566941824354",
667
+ "1"
668
+ ],
669
+ [
670
+ "13411253172375451489380472831999887223592471057462692619008484995624281735092",
671
+ "17181767455563581254432161119660408482332423481128600038352147258951772423229",
672
+ "1"
673
+ ],
674
+ [
675
+ "19138864631164378176055647711995352935065134904103255748190268290992108588628",
676
+ "14282526277736365863821375748687709839392307698935143595732632710176778519757",
677
+ "1"
678
+ ],
679
+ [
680
+ "20183773658676161990469276414858234178608794783112866811307579993999118293429",
681
+ "5223464433544489066271184294750886227362580875255044558831927430970236355539",
682
+ "1"
683
+ ],
684
+ [
685
+ "12333466991139269670298178539679773509487545471126920233507132846828588847444",
686
+ "3787586478923104354547687861486563468235879611952775292288436085429794222238",
687
+ "1"
688
+ ]
689
+ ],
690
+ [
691
+ [
692
+ "18580370382199518848261939652153768394883698461842792002922164533882262019935",
693
+ "20516185953882700254387267244708111605796661864845495645678049276372075842359",
694
+ "1"
695
+ ],
696
+ [
697
+ "20041291712709610738573661974551517833120775539593003477018637287434210072702",
698
+ "6326630253906616820412999166182553773360987412889775567442543181359104720511",
699
+ "1"
700
+ ],
701
+ [
702
+ "13268971611130152315428629919012388924225656285593904211561391821918930327614",
703
+ "9247437189452353488017802041158840512956111558640958728149597697508914590433",
704
+ "1"
705
+ ],
706
+ [
707
+ "6267384495557139339708615182113725421733376438932580472141549274050146739549",
708
+ "1832264154031452148715318442722960696977572389206897240030908464579133134237",
709
+ "1"
710
+ ],
711
+ [
712
+ "16650684165487873559901140599157559153018449083939294496255590830891994564285",
713
+ "14140282729498011406186082176268025578697081678243955538935501306868500498994",
714
+ "1"
715
+ ]
716
+ ],
717
+ [
718
+ [
719
+ "4247947150009812467217672970806328247513830308400387953244764907353849211641",
720
+ "14500381439127180474801393438175928191199696177607750163263715436006533630877",
721
+ "1"
722
+ ],
723
+ [
724
+ "21213779524495874664157797605662894019112036728653622806607467354233012380232",
725
+ "1429370857470083395421401524518861545167550347090873730934256398864585069083",
726
+ "1"
727
+ ],
728
+ [
729
+ "12465277751642747637430517396067173985821959773399832969105187923427872239200",
730
+ "4377704428607835904642653580543541241155601291484645500691968624389522190030",
731
+ "1"
732
+ ],
733
+ [
734
+ "11283027832501128633761619552392013253304972822086786857121687098087331014745",
735
+ "21463394238922953607096052056881931791797740737164052798044623278557203313720",
736
+ "1"
737
+ ],
738
+ [
739
+ "19687293493101130967741578773742597470558958652351513582962108464055656171331",
740
+ "4445165696525061401582979300506082669540223774145877762689724631935313716632",
741
+ "1"
742
+ ]
743
+ ],
744
+ [
745
+ [
746
+ "3388767735894417381503201756905214431625081913405504580464345986403824999889",
747
+ "21014112837214011009096825602791072748195337199912773858499588477762724153070",
748
+ "1"
749
+ ],
750
+ [
751
+ "10521317016331497094903116740581271122844131442882845700567581775404872949272",
752
+ "13201921794561774338466680421903602920184688290946713194187958007088351657367",
753
+ "1"
754
+ ],
755
+ [
756
+ "16170260722059932609965743383032703380650557609693540121262881902248073364496",
757
+ "6004983491336500911294872035126141746032033211872472427212274143945425740617",
758
+ "1"
759
+ ],
760
+ [
761
+ "10275615677574391293596971122111363003313434841806630200532546038183081960924",
762
+ "5955568702561336410725734958627459212680756023420452791680213386065159525989",
763
+ "1"
764
+ ],
765
+ [
766
+ "19059081014385850734732058652137664919364805650872154944590269874395511868415",
767
+ "19202365837673729366500417038229950532560250566916189579621883380623278182155",
768
+ "1"
769
+ ]
770
+ ],
771
+ [
772
+ [
773
+ "7856986171681248404396064225772749784181602218562773063185003409958949630985",
774
+ "11707218736744382138692483591389641607570557654489363179025201039696228471230",
775
+ "1"
776
+ ],
777
+ [
778
+ "2902255937308264958973169948617099471543255757887963647238093192858290079050",
779
+ "4092153880227661899721872164083575597602963673456107552146583620177664115673",
780
+ "1"
781
+ ],
782
+ [
783
+ "18380478859138320895837407377103009470968863533040661874531861881638854174636",
784
+ "14502773952184441371657781525836310753176308880224816843041318743809785835984",
785
+ "1"
786
+ ],
787
+ [
788
+ "2781117248053224106149213822307598926495461873135153638774638501111353469325",
789
+ "3500056595279027698683405880585654897391289317486204483344715855049598477604",
790
+ "1"
791
+ ],
792
+ [
793
+ "8880120765926282932795149634761705738498809569874317407549203808931092257005",
794
+ "19080036326648068547894941015038877788526324720587349784852594495705578761000",
795
+ "1"
796
+ ]
797
+ ],
798
+ [
799
+ [
800
+ "18427701611614193839908361166447988195308352665132182219164437649866377475111",
801
+ "5299493942596042045861137432338955179078182570752746487573709678936617478454",
802
+ "1"
803
+ ],
804
+ [
805
+ "4188155714164125069834512529839479682516489319499446390214266838952761728656",
806
+ "2720966082507704094346897998659841489771837229143573083003847010258396944787",
807
+ "1"
808
+ ],
809
+ [
810
+ "13256461570028177373135283778770729308216900804505379897951455548375840027026",
811
+ "10722074030307391322177899534114921764931623271723882054692012663305322382747",
812
+ "1"
813
+ ],
814
+ [
815
+ "9824147497244652955949696442395586567974424828238608972020527958186701134273",
816
+ "15755269950882650791869946186461432242513999576056199368058858215068920022191",
817
+ "1"
818
+ ],
819
+ [
820
+ "21172488506061181949536573476893375313339715931330476837156243346077173297265",
821
+ "13892434487977776248366965108031841947713544939953824768291380177301871559945",
822
+ "1"
823
+ ]
824
+ ],
825
+ [
826
+ [
827
+ "1452272927738590248356371174422184656932731110936062990115610832462181634644",
828
+ "3608050114233210789542189629343107890943266759827387991788718454179833288695",
829
+ "1"
830
+ ],
831
+ [
832
+ "14798240452388909327945424685903532333765637883272751382037716636327236955001",
833
+ "10773894897711848209682368488916121016695006898681985691467605219098835500201",
834
+ "1"
835
+ ],
836
+ [
837
+ "17204267933132009093604099819536245144503489322639121825381131096467570698650",
838
+ "7704298975420304156332734115679983371345754866278811368869074990486717531131",
839
+ "1"
840
+ ],
841
+ [
842
+ "8060465662017324080560848316478407038163145149983639907596180500095598669247",
843
+ "20475082166427284188002500222093571716651248980245637602667562336751029856573",
844
+ "1"
845
+ ],
846
+ [
847
+ "7457566682692308112726332096733260585025339741083447785327706250123165087868",
848
+ "11904519443874922292602150685069370036383697877657723976244907400392778002614",
849
+ "1"
850
+ ]
851
+ ],
852
+ [
853
+ [
854
+ "12628427235010608529869146871556870477182704310235373946877240509680742038961",
855
+ "15093298104438768585559335868663959710321348106117735180051519837845319121254",
856
+ "1"
857
+ ],
858
+ [
859
+ "6593907467779318957599440584793099005109789224774644007604434924706249001015",
860
+ "18549596630007199540674697114946251030815675677713256327810772799104711621483",
861
+ "1"
862
+ ],
863
+ [
864
+ "6271101737045248834759003849256661059806617144229427987717476992610974162336",
865
+ "355748132218964841305454070022507122319085542484477110563322753565651576458",
866
+ "1"
867
+ ],
868
+ [
869
+ "2116139772133141967317791473319540620104888687412078412336248003979594158546",
870
+ "4004400204967325849492155713520296687406035356901102254880522534085890616486",
871
+ "1"
872
+ ],
873
+ [
874
+ "4206647028595764233995379982714022410660284578620723510907006350595207905228",
875
+ "19380634286337609988098517090003334645113675227742745065381519159322795845003",
876
+ "1"
877
+ ]
878
+ ],
879
+ [
880
+ [
881
+ "2592407181901686208061988776764501828311271519595797153264758207470081204331",
882
+ "11847594161160074962679125411562687287595382335410213641115001866587988494499",
883
+ "1"
884
+ ],
885
+ [
886
+ "3346927026869562921166545684451290646273836362895645367665514203662899621366",
887
+ "15758185693543979820528128025093553492246135914029575732836221618882836493143",
888
+ "1"
889
+ ],
890
+ [
891
+ "20528686657810499188368147206002308531447185877994439397529705707372170337045",
892
+ "18025396678079701612906003769476076600196287001844168390936182972248852818155",
893
+ "1"
894
+ ],
895
+ [
896
+ "9799815250059685769827017947834627563597884023490186073806184882963949644596",
897
+ "4998495094322372762314630336611134866447406022687118703953312157819349892603",
898
+ "1"
899
+ ],
900
+ [
901
+ "16176535527670849161173306151058200762642157343823553073439957507563856439772",
902
+ "21877331533292960470552563236986670222564955589137303622102707801351340670855",
903
+ "1"
904
+ ]
905
+ ]
906
+ ];
907
+ var verificationKeys = {
908
+ protocol: protocol,
909
+ curve: curve,
910
+ nPublic: nPublic,
911
+ vk_alpha_1: vk_alpha_1,
912
+ vk_beta_2: vk_beta_2,
913
+ vk_gamma_2: vk_gamma_2,
914
+ vk_delta_2: vk_delta_2,
915
+ vk_alphabeta_12: vk_alphabeta_12,
916
+ IC: IC
917
+ };
918
+
141
919
  /**
142
920
  * Verifies a SnarkJS proof.
143
- * @param verificationKey The zero-knowledge verification key.
144
921
  * @param fullProof The SnarkJS full proof.
922
+ * @param treeDepth The Merkle tree depth.
145
923
  * @returns True if the proof is valid, false otherwise.
146
924
  */
147
- function verifyProof(verificationKey, _a) {
925
+ function verifyProof(_a, treeDepth) {
148
926
  var proof = _a.proof, publicSignals = _a.publicSignals;
927
+ if (treeDepth < 16 || treeDepth > 32) {
928
+ throw new TypeError("The tree depth must be a number between 16 and 32");
929
+ }
930
+ var verificationKey = __assign(__assign({}, verificationKeys), { vk_delta_2: verificationKeys.vk_delta_2[treeDepth - 16], IC: verificationKeys.IC[treeDepth - 16] });
149
931
  return snarkjs.groth16.verify(verificationKey, [
150
- publicSignals.merkleRoot,
932
+ publicSignals.merkleTreeRoot,
151
933
  publicSignals.nullifierHash,
152
934
  publicSignals.signalHash,
153
935
  publicSignals.externalNullifier
@@ -172,8 +954,6 @@ function packToSolidityProof(proof) {
172
954
  ];
173
955
  }
174
956
 
175
- exports.generateNullifierHash = generateNullifierHash;
176
957
  exports.generateProof = generateProof;
177
- exports.generateSignalHash = genSignalHash;
178
958
  exports.packToSolidityProof = packToSolidityProof;
179
959
  exports.verifyProof = verifyProof;