@semaphore-protocol/utils 4.0.0-beta.16 → 4.0.0-beta.17

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.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module @semaphore-protocol/utils
3
- * @version 4.0.0-beta.16
3
+ * @version 4.0.0-beta.17
4
4
  * @file A library to provide utility functions to the other Semaphore packages.
5
5
  * @copyright Ethereum Foundation 2024
6
6
  * @license MIT
@@ -9,15 +9,937 @@
9
9
  import { decodeBytes32String } from 'ethers/abi';
10
10
  import { toBeHex } from 'ethers/utils';
11
11
 
12
+ var _format = "hh-sol-artifact-1";
13
+ var contractName = "Semaphore";
14
+ var sourceName = "contracts/Semaphore.sol";
15
+ var abi = [
16
+ {
17
+ inputs: [
18
+ {
19
+ internalType: "contract ISemaphoreVerifier",
20
+ name: "_verifier",
21
+ type: "address"
22
+ }
23
+ ],
24
+ stateMutability: "nonpayable",
25
+ type: "constructor"
26
+ },
27
+ {
28
+ inputs: [
29
+ ],
30
+ name: "LeafAlreadyExists",
31
+ type: "error"
32
+ },
33
+ {
34
+ inputs: [
35
+ ],
36
+ name: "LeafCannotBeZero",
37
+ type: "error"
38
+ },
39
+ {
40
+ inputs: [
41
+ ],
42
+ name: "LeafDoesNotExist",
43
+ type: "error"
44
+ },
45
+ {
46
+ inputs: [
47
+ ],
48
+ name: "LeafGreaterThanSnarkScalarField",
49
+ type: "error"
50
+ },
51
+ {
52
+ inputs: [
53
+ ],
54
+ name: "Semaphore__CallerIsNotTheGroupAdmin",
55
+ type: "error"
56
+ },
57
+ {
58
+ inputs: [
59
+ ],
60
+ name: "Semaphore__CallerIsNotThePendingGroupAdmin",
61
+ type: "error"
62
+ },
63
+ {
64
+ inputs: [
65
+ ],
66
+ name: "Semaphore__GroupDoesNotExist",
67
+ type: "error"
68
+ },
69
+ {
70
+ inputs: [
71
+ ],
72
+ name: "Semaphore__GroupHasNoMembers",
73
+ type: "error"
74
+ },
75
+ {
76
+ inputs: [
77
+ ],
78
+ name: "Semaphore__InvalidProof",
79
+ type: "error"
80
+ },
81
+ {
82
+ inputs: [
83
+ ],
84
+ name: "Semaphore__MerkleTreeDepthIsNotSupported",
85
+ type: "error"
86
+ },
87
+ {
88
+ inputs: [
89
+ ],
90
+ name: "Semaphore__MerkleTreeRootIsExpired",
91
+ type: "error"
92
+ },
93
+ {
94
+ inputs: [
95
+ ],
96
+ name: "Semaphore__MerkleTreeRootIsNotPartOfTheGroup",
97
+ type: "error"
98
+ },
99
+ {
100
+ inputs: [
101
+ ],
102
+ name: "Semaphore__YouAreUsingTheSameNullifierTwice",
103
+ type: "error"
104
+ },
105
+ {
106
+ inputs: [
107
+ ],
108
+ name: "WrongSiblingNodes",
109
+ type: "error"
110
+ },
111
+ {
112
+ anonymous: false,
113
+ inputs: [
114
+ {
115
+ indexed: true,
116
+ internalType: "uint256",
117
+ name: "groupId",
118
+ type: "uint256"
119
+ },
120
+ {
121
+ indexed: true,
122
+ internalType: "address",
123
+ name: "oldAdmin",
124
+ type: "address"
125
+ },
126
+ {
127
+ indexed: true,
128
+ internalType: "address",
129
+ name: "newAdmin",
130
+ type: "address"
131
+ }
132
+ ],
133
+ name: "GroupAdminPending",
134
+ type: "event"
135
+ },
136
+ {
137
+ anonymous: false,
138
+ inputs: [
139
+ {
140
+ indexed: true,
141
+ internalType: "uint256",
142
+ name: "groupId",
143
+ type: "uint256"
144
+ },
145
+ {
146
+ indexed: true,
147
+ internalType: "address",
148
+ name: "oldAdmin",
149
+ type: "address"
150
+ },
151
+ {
152
+ indexed: true,
153
+ internalType: "address",
154
+ name: "newAdmin",
155
+ type: "address"
156
+ }
157
+ ],
158
+ name: "GroupAdminUpdated",
159
+ type: "event"
160
+ },
161
+ {
162
+ anonymous: false,
163
+ inputs: [
164
+ {
165
+ indexed: true,
166
+ internalType: "uint256",
167
+ name: "groupId",
168
+ type: "uint256"
169
+ }
170
+ ],
171
+ name: "GroupCreated",
172
+ type: "event"
173
+ },
174
+ {
175
+ anonymous: false,
176
+ inputs: [
177
+ {
178
+ indexed: true,
179
+ internalType: "uint256",
180
+ name: "groupId",
181
+ type: "uint256"
182
+ },
183
+ {
184
+ indexed: false,
185
+ internalType: "uint256",
186
+ name: "oldMerkleTreeDuration",
187
+ type: "uint256"
188
+ },
189
+ {
190
+ indexed: false,
191
+ internalType: "uint256",
192
+ name: "newMerkleTreeDuration",
193
+ type: "uint256"
194
+ }
195
+ ],
196
+ name: "GroupMerkleTreeDurationUpdated",
197
+ type: "event"
198
+ },
199
+ {
200
+ anonymous: false,
201
+ inputs: [
202
+ {
203
+ indexed: true,
204
+ internalType: "uint256",
205
+ name: "groupId",
206
+ type: "uint256"
207
+ },
208
+ {
209
+ indexed: false,
210
+ internalType: "uint256",
211
+ name: "index",
212
+ type: "uint256"
213
+ },
214
+ {
215
+ indexed: false,
216
+ internalType: "uint256",
217
+ name: "identityCommitment",
218
+ type: "uint256"
219
+ },
220
+ {
221
+ indexed: false,
222
+ internalType: "uint256",
223
+ name: "merkleTreeRoot",
224
+ type: "uint256"
225
+ }
226
+ ],
227
+ name: "MemberAdded",
228
+ type: "event"
229
+ },
230
+ {
231
+ anonymous: false,
232
+ inputs: [
233
+ {
234
+ indexed: true,
235
+ internalType: "uint256",
236
+ name: "groupId",
237
+ type: "uint256"
238
+ },
239
+ {
240
+ indexed: false,
241
+ internalType: "uint256",
242
+ name: "index",
243
+ type: "uint256"
244
+ },
245
+ {
246
+ indexed: false,
247
+ internalType: "uint256",
248
+ name: "identityCommitment",
249
+ type: "uint256"
250
+ },
251
+ {
252
+ indexed: false,
253
+ internalType: "uint256",
254
+ name: "merkleTreeRoot",
255
+ type: "uint256"
256
+ }
257
+ ],
258
+ name: "MemberRemoved",
259
+ type: "event"
260
+ },
261
+ {
262
+ anonymous: false,
263
+ inputs: [
264
+ {
265
+ indexed: true,
266
+ internalType: "uint256",
267
+ name: "groupId",
268
+ type: "uint256"
269
+ },
270
+ {
271
+ indexed: false,
272
+ internalType: "uint256",
273
+ name: "index",
274
+ type: "uint256"
275
+ },
276
+ {
277
+ indexed: false,
278
+ internalType: "uint256",
279
+ name: "identityCommitment",
280
+ type: "uint256"
281
+ },
282
+ {
283
+ indexed: false,
284
+ internalType: "uint256",
285
+ name: "newIdentityCommitment",
286
+ type: "uint256"
287
+ },
288
+ {
289
+ indexed: false,
290
+ internalType: "uint256",
291
+ name: "merkleTreeRoot",
292
+ type: "uint256"
293
+ }
294
+ ],
295
+ name: "MemberUpdated",
296
+ type: "event"
297
+ },
298
+ {
299
+ anonymous: false,
300
+ inputs: [
301
+ {
302
+ indexed: true,
303
+ internalType: "uint256",
304
+ name: "groupId",
305
+ type: "uint256"
306
+ },
307
+ {
308
+ indexed: false,
309
+ internalType: "uint256",
310
+ name: "startIndex",
311
+ type: "uint256"
312
+ },
313
+ {
314
+ indexed: false,
315
+ internalType: "uint256[]",
316
+ name: "identityCommitments",
317
+ type: "uint256[]"
318
+ },
319
+ {
320
+ indexed: false,
321
+ internalType: "uint256",
322
+ name: "merkleTreeRoot",
323
+ type: "uint256"
324
+ }
325
+ ],
326
+ name: "MembersAdded",
327
+ type: "event"
328
+ },
329
+ {
330
+ anonymous: false,
331
+ inputs: [
332
+ {
333
+ indexed: true,
334
+ internalType: "uint256",
335
+ name: "groupId",
336
+ type: "uint256"
337
+ },
338
+ {
339
+ indexed: false,
340
+ internalType: "uint256",
341
+ name: "merkleTreeDepth",
342
+ type: "uint256"
343
+ },
344
+ {
345
+ indexed: true,
346
+ internalType: "uint256",
347
+ name: "merkleTreeRoot",
348
+ type: "uint256"
349
+ },
350
+ {
351
+ indexed: false,
352
+ internalType: "uint256",
353
+ name: "nullifier",
354
+ type: "uint256"
355
+ },
356
+ {
357
+ indexed: false,
358
+ internalType: "uint256",
359
+ name: "message",
360
+ type: "uint256"
361
+ },
362
+ {
363
+ indexed: true,
364
+ internalType: "uint256",
365
+ name: "scope",
366
+ type: "uint256"
367
+ },
368
+ {
369
+ indexed: false,
370
+ internalType: "uint256[8]",
371
+ name: "points",
372
+ type: "uint256[8]"
373
+ }
374
+ ],
375
+ name: "ProofValidated",
376
+ type: "event"
377
+ },
378
+ {
379
+ inputs: [
380
+ {
381
+ internalType: "uint256",
382
+ name: "groupId",
383
+ type: "uint256"
384
+ }
385
+ ],
386
+ name: "acceptGroupAdmin",
387
+ outputs: [
388
+ ],
389
+ stateMutability: "nonpayable",
390
+ type: "function"
391
+ },
392
+ {
393
+ inputs: [
394
+ {
395
+ internalType: "uint256",
396
+ name: "groupId",
397
+ type: "uint256"
398
+ },
399
+ {
400
+ internalType: "uint256",
401
+ name: "identityCommitment",
402
+ type: "uint256"
403
+ }
404
+ ],
405
+ name: "addMember",
406
+ outputs: [
407
+ ],
408
+ stateMutability: "nonpayable",
409
+ type: "function"
410
+ },
411
+ {
412
+ inputs: [
413
+ {
414
+ internalType: "uint256",
415
+ name: "groupId",
416
+ type: "uint256"
417
+ },
418
+ {
419
+ internalType: "uint256[]",
420
+ name: "identityCommitments",
421
+ type: "uint256[]"
422
+ }
423
+ ],
424
+ name: "addMembers",
425
+ outputs: [
426
+ ],
427
+ stateMutability: "nonpayable",
428
+ type: "function"
429
+ },
430
+ {
431
+ inputs: [
432
+ {
433
+ internalType: "address",
434
+ name: "admin",
435
+ type: "address"
436
+ },
437
+ {
438
+ internalType: "uint256",
439
+ name: "merkleTreeDuration",
440
+ type: "uint256"
441
+ }
442
+ ],
443
+ name: "createGroup",
444
+ outputs: [
445
+ {
446
+ internalType: "uint256",
447
+ name: "groupId",
448
+ type: "uint256"
449
+ }
450
+ ],
451
+ stateMutability: "nonpayable",
452
+ type: "function"
453
+ },
454
+ {
455
+ inputs: [
456
+ ],
457
+ name: "createGroup",
458
+ outputs: [
459
+ {
460
+ internalType: "uint256",
461
+ name: "groupId",
462
+ type: "uint256"
463
+ }
464
+ ],
465
+ stateMutability: "nonpayable",
466
+ type: "function"
467
+ },
468
+ {
469
+ inputs: [
470
+ {
471
+ internalType: "address",
472
+ name: "admin",
473
+ type: "address"
474
+ }
475
+ ],
476
+ name: "createGroup",
477
+ outputs: [
478
+ {
479
+ internalType: "uint256",
480
+ name: "groupId",
481
+ type: "uint256"
482
+ }
483
+ ],
484
+ stateMutability: "nonpayable",
485
+ type: "function"
486
+ },
487
+ {
488
+ inputs: [
489
+ {
490
+ internalType: "uint256",
491
+ name: "groupId",
492
+ type: "uint256"
493
+ }
494
+ ],
495
+ name: "getGroupAdmin",
496
+ outputs: [
497
+ {
498
+ internalType: "address",
499
+ name: "",
500
+ type: "address"
501
+ }
502
+ ],
503
+ stateMutability: "view",
504
+ type: "function"
505
+ },
506
+ {
507
+ inputs: [
508
+ {
509
+ internalType: "uint256",
510
+ name: "groupId",
511
+ type: "uint256"
512
+ }
513
+ ],
514
+ name: "getMerkleTreeDepth",
515
+ outputs: [
516
+ {
517
+ internalType: "uint256",
518
+ name: "",
519
+ type: "uint256"
520
+ }
521
+ ],
522
+ stateMutability: "view",
523
+ type: "function"
524
+ },
525
+ {
526
+ inputs: [
527
+ {
528
+ internalType: "uint256",
529
+ name: "groupId",
530
+ type: "uint256"
531
+ }
532
+ ],
533
+ name: "getMerkleTreeRoot",
534
+ outputs: [
535
+ {
536
+ internalType: "uint256",
537
+ name: "",
538
+ type: "uint256"
539
+ }
540
+ ],
541
+ stateMutability: "view",
542
+ type: "function"
543
+ },
544
+ {
545
+ inputs: [
546
+ {
547
+ internalType: "uint256",
548
+ name: "groupId",
549
+ type: "uint256"
550
+ }
551
+ ],
552
+ name: "getMerkleTreeSize",
553
+ outputs: [
554
+ {
555
+ internalType: "uint256",
556
+ name: "",
557
+ type: "uint256"
558
+ }
559
+ ],
560
+ stateMutability: "view",
561
+ type: "function"
562
+ },
563
+ {
564
+ inputs: [
565
+ ],
566
+ name: "groupCounter",
567
+ outputs: [
568
+ {
569
+ internalType: "uint256",
570
+ name: "",
571
+ type: "uint256"
572
+ }
573
+ ],
574
+ stateMutability: "view",
575
+ type: "function"
576
+ },
577
+ {
578
+ inputs: [
579
+ {
580
+ internalType: "uint256",
581
+ name: "",
582
+ type: "uint256"
583
+ }
584
+ ],
585
+ name: "groups",
586
+ outputs: [
587
+ {
588
+ internalType: "uint256",
589
+ name: "merkleTreeDuration",
590
+ type: "uint256"
591
+ }
592
+ ],
593
+ stateMutability: "view",
594
+ type: "function"
595
+ },
596
+ {
597
+ inputs: [
598
+ {
599
+ internalType: "uint256",
600
+ name: "groupId",
601
+ type: "uint256"
602
+ },
603
+ {
604
+ internalType: "uint256",
605
+ name: "identityCommitment",
606
+ type: "uint256"
607
+ }
608
+ ],
609
+ name: "hasMember",
610
+ outputs: [
611
+ {
612
+ internalType: "bool",
613
+ name: "",
614
+ type: "bool"
615
+ }
616
+ ],
617
+ stateMutability: "view",
618
+ type: "function"
619
+ },
620
+ {
621
+ inputs: [
622
+ {
623
+ internalType: "uint256",
624
+ name: "groupId",
625
+ type: "uint256"
626
+ },
627
+ {
628
+ internalType: "uint256",
629
+ name: "identityCommitment",
630
+ type: "uint256"
631
+ }
632
+ ],
633
+ name: "indexOf",
634
+ outputs: [
635
+ {
636
+ internalType: "uint256",
637
+ name: "",
638
+ type: "uint256"
639
+ }
640
+ ],
641
+ stateMutability: "view",
642
+ type: "function"
643
+ },
644
+ {
645
+ inputs: [
646
+ {
647
+ internalType: "uint256",
648
+ name: "groupId",
649
+ type: "uint256"
650
+ },
651
+ {
652
+ internalType: "uint256",
653
+ name: "identityCommitment",
654
+ type: "uint256"
655
+ },
656
+ {
657
+ internalType: "uint256[]",
658
+ name: "merkleProofSiblings",
659
+ type: "uint256[]"
660
+ }
661
+ ],
662
+ name: "removeMember",
663
+ outputs: [
664
+ ],
665
+ stateMutability: "nonpayable",
666
+ type: "function"
667
+ },
668
+ {
669
+ inputs: [
670
+ {
671
+ internalType: "uint256",
672
+ name: "groupId",
673
+ type: "uint256"
674
+ },
675
+ {
676
+ internalType: "address",
677
+ name: "newAdmin",
678
+ type: "address"
679
+ }
680
+ ],
681
+ name: "updateGroupAdmin",
682
+ outputs: [
683
+ ],
684
+ stateMutability: "nonpayable",
685
+ type: "function"
686
+ },
687
+ {
688
+ inputs: [
689
+ {
690
+ internalType: "uint256",
691
+ name: "groupId",
692
+ type: "uint256"
693
+ },
694
+ {
695
+ internalType: "uint256",
696
+ name: "newMerkleTreeDuration",
697
+ type: "uint256"
698
+ }
699
+ ],
700
+ name: "updateGroupMerkleTreeDuration",
701
+ outputs: [
702
+ ],
703
+ stateMutability: "nonpayable",
704
+ type: "function"
705
+ },
706
+ {
707
+ inputs: [
708
+ {
709
+ internalType: "uint256",
710
+ name: "groupId",
711
+ type: "uint256"
712
+ },
713
+ {
714
+ internalType: "uint256",
715
+ name: "identityCommitment",
716
+ type: "uint256"
717
+ },
718
+ {
719
+ internalType: "uint256",
720
+ name: "newIdentityCommitment",
721
+ type: "uint256"
722
+ },
723
+ {
724
+ internalType: "uint256[]",
725
+ name: "merkleProofSiblings",
726
+ type: "uint256[]"
727
+ }
728
+ ],
729
+ name: "updateMember",
730
+ outputs: [
731
+ ],
732
+ stateMutability: "nonpayable",
733
+ type: "function"
734
+ },
735
+ {
736
+ inputs: [
737
+ {
738
+ internalType: "uint256",
739
+ name: "groupId",
740
+ type: "uint256"
741
+ },
742
+ {
743
+ components: [
744
+ {
745
+ internalType: "uint256",
746
+ name: "merkleTreeDepth",
747
+ type: "uint256"
748
+ },
749
+ {
750
+ internalType: "uint256",
751
+ name: "merkleTreeRoot",
752
+ type: "uint256"
753
+ },
754
+ {
755
+ internalType: "uint256",
756
+ name: "nullifier",
757
+ type: "uint256"
758
+ },
759
+ {
760
+ internalType: "uint256",
761
+ name: "message",
762
+ type: "uint256"
763
+ },
764
+ {
765
+ internalType: "uint256",
766
+ name: "scope",
767
+ type: "uint256"
768
+ },
769
+ {
770
+ internalType: "uint256[8]",
771
+ name: "points",
772
+ type: "uint256[8]"
773
+ }
774
+ ],
775
+ internalType: "struct ISemaphore.SemaphoreProof",
776
+ name: "proof",
777
+ type: "tuple"
778
+ }
779
+ ],
780
+ name: "validateProof",
781
+ outputs: [
782
+ ],
783
+ stateMutability: "nonpayable",
784
+ type: "function"
785
+ },
786
+ {
787
+ inputs: [
788
+ ],
789
+ name: "verifier",
790
+ outputs: [
791
+ {
792
+ internalType: "contract ISemaphoreVerifier",
793
+ name: "",
794
+ type: "address"
795
+ }
796
+ ],
797
+ stateMutability: "view",
798
+ type: "function"
799
+ },
800
+ {
801
+ inputs: [
802
+ {
803
+ internalType: "uint256",
804
+ name: "groupId",
805
+ type: "uint256"
806
+ },
807
+ {
808
+ components: [
809
+ {
810
+ internalType: "uint256",
811
+ name: "merkleTreeDepth",
812
+ type: "uint256"
813
+ },
814
+ {
815
+ internalType: "uint256",
816
+ name: "merkleTreeRoot",
817
+ type: "uint256"
818
+ },
819
+ {
820
+ internalType: "uint256",
821
+ name: "nullifier",
822
+ type: "uint256"
823
+ },
824
+ {
825
+ internalType: "uint256",
826
+ name: "message",
827
+ type: "uint256"
828
+ },
829
+ {
830
+ internalType: "uint256",
831
+ name: "scope",
832
+ type: "uint256"
833
+ },
834
+ {
835
+ internalType: "uint256[8]",
836
+ name: "points",
837
+ type: "uint256[8]"
838
+ }
839
+ ],
840
+ internalType: "struct ISemaphore.SemaphoreProof",
841
+ name: "proof",
842
+ type: "tuple"
843
+ }
844
+ ],
845
+ name: "verifyProof",
846
+ outputs: [
847
+ {
848
+ internalType: "bool",
849
+ name: "",
850
+ type: "bool"
851
+ }
852
+ ],
853
+ stateMutability: "view",
854
+ type: "function"
855
+ }
856
+ ];
857
+ var bytecode = "0x608060405234801561001057600080fd5b5060405161201538038061201583398101604081905261002f91610054565b600380546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611f82806100936000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636389e107116100b8578063a9961c941161007c578063a9961c94146102b5578063d0d898dd146102de578063d24924fe146102f1578063da3cda52146102fa578063dabc4d511461030d578063fcf0b6ec1461032057600080fd5b80636389e1071461022c5780636cdd32fe1461024f5780637ee35a0c1461026257806390509d441461028257806396324bd41461029557600080fd5b80634178c4d5116100ff5780634178c4d5146101c8578063456f4188146101db578063568ee826146101fe578063575185ed146102115780635c3f3b601461021957600080fd5b8063042453711461013c57806306dd8485146101515780631783efc3146101775780632b7ac3f31461018a5780632c880363146101b5575b600080fd5b61014f61014a3660046119e2565b610333565b005b61016461015f366004611a2e565b610366565b6040519081526020015b60405180910390f35b61014f610185366004611a2e565b610387565b60035461019d906001600160a01b031681565b6040516001600160a01b03909116815260200161016e565b6101646101c3366004611a6c565b6103b8565b61014f6101d6366004611a96565b6103f0565b6101ee6101e9366004611af7565b610427565b604051901515815260200161016e565b61014f61020c366004611b31565b61068c565b61016461069a565b610164610227366004611b5d565b6106d1565b61016461023a366004611b78565b60009081526020819052604090206001015490565b61014f61025d366004611b91565b61070a565b610164610270366004611b78565b60009081526020819052604090205490565b6101ee610290366004611a2e565b61073f565b6101646102a3366004611b78565b60046020526000908152604090205481565b61019d6102c3366004611b78565b6000908152600160205260409020546001600160a01b031690565b61014f6102ec366004611af7565b610761565b61016460055481565b61014f610308366004611b78565b61084b565b61016461031b366004611b78565b610857565b61014f61032e366004611a2e565b61087b565b600061034084848461090b565b600094855260046020908152604080872092875260019092019052909320429055505050565b600082815260208190526040812061037e90836109a9565b90505b92915050565b600061039383836109f6565b6000938452600460209081526040808620928652600190920190529092204290555050565b60058054600091826103c983611bfa565b9190505590506103d98184610a98565b600081815260046020526040902091909155919050565b60006103ff8686868686610b22565b6000968752600460209081526040808920928952600190920190529095204290555050505050565b60008281526001602052604081205483906001600160a01b031661045e5760405163029f057960e01b815260040160405180910390fd5b60018335108061046f575060208335115b1561048d5760405163767b278960e11b815260040160405180910390fd5b600084815260208190526040812054908190036104bd5760405163c8b02e0160e01b815260040160405180910390fd5b60006104c886610857565b90508085602001351461054d576000868152600460208181526040808420898301358552600181018352908420548a855292909152549091829003610520576040516326994ac360e11b815260040160405180910390fd5b61052a8183611c13565b42111561054a576040516309581a9960e41b815260040160405180910390fd5b50505b60035460408051808201825260a0880135815260c088013560208083019190915282516080808201855260e08b01358286019081526101008c0135606080850191909152908352855180870187526101208d013581526101408d01358186015283850152855180870187526101608d013581526101808d01358186015286519283018752848d013583528c870135948301949094526001600160a01b039096169563a23f019995929392820190610606908d0135610be9565b81526020016106188c60800135610be9565b90526040516001600160e01b031960e087901b16815261064194939291908c3590600401611c88565b602060405180830381865afa15801561065e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106829190611d1b565b9695505050505050565b6106968282610c20565b5050565b60058054600091826106ab83611bfa565b9190505590506106bb8133610a98565b6000818152600460205260409020610e10905590565b60058054600091826106e283611bfa565b9190505590506106f28183610a98565b6000818152600460205260409020610e109055919050565b600061071885858585610cb4565b60009586526004602090815260408088209288526001909201905290942042905550505050565b600082815260208181526040808320848452600301909152812054151561037e565b600082815260046020908152604080832084820135845260020190915290205460ff16156107a25760405163041162bd60e31b815260040160405180910390fd5b6107ac8282610427565b6107c95760405163012a9af160e61b815260040160405180910390fd5b6000828152600460209081526040808320848201358085526002909101835292819020805460ff1916600117905551608084013592918401359185917f0c32e14cfe81a05d371c248d22de6b7ae849e981b76a1f8842e7b6da73fc405a9161083f918735919060608901359060a08a0190611d44565b60405180910390a45050565b61085481610d72565b50565b60008181526020818152604080832060018101548452600201909152812054610381565b60008281526001602052604090205482906001600160a01b031633146108b4576040516317737e4f60e31b815260040160405180910390fd5b60008381526004602090815260409182902080549085905582518181529182018590529185917f264b2a8f6763c084235fe832ba903482b2ef1a521336881fc75b987c2dfd29c5910160405180910390a250505050565b60008381526001602052604081205484906001600160a01b03163314610944576040516317737e4f60e31b815260040160405180910390fd5b6000858152602081905260409020805490610960908686610e17565b9250857f61e5e8054e3daf084a0c6c646c065e8bf5e7ca4d5567bda942309bd1652f349d828787876040516109989493929190611d6c565b60405180910390a250509392505050565b600081815260038301602052604081205481036109d957604051631c811d5b60e21b815260040160405180910390fd5b600082815260038401602052604090205461037e90600190611db2565b60008281526001602052604081205483906001600160a01b03163314610a2f576040516317737e4f60e31b815260040160405180910390fd5b6000848152602081905260409020805490610a4a9085611344565b604080518381526020810187905290810182905290935085907f19239b3f93cd10558aaf11423af70c77763bf54f52bcc75bfa74d4d13548cde99060600160405180910390a2505092915050565b60008281526001602052604080822080546001600160a01b0319166001600160a01b0385161790555183917ff0adfb94eab6daf835deb69c5738fe636150c3dfd08094a76f39b963dc8cb05a91a26040516001600160a01b0382169060009084907f0ba83579a0e79193ef649b9f5a8759d35af086ba62a3e207b52e4a8ae30d49e3908390a45050565b60008581526001602052604081205486906001600160a01b03163314610b5b576040516317737e4f60e31b815260040160405180910390fd5b6000878152602081905260408120610b7390886109a9565b6000898152602081905260409020909150610b91908888888861150d565b60408051838152602081018a90529081018890526060810182905290935088907fea3588e4a2a0c93d6a0e69dfeaf7496f43ccccf02ad9ce0a5b7627cbca4b61b19060800160405180910390a2505095945050505050565b6000600882604051602001610c0091815260200190565b60408051601f198184030181529190528051602090910120901c92915050565b60008281526001602052604090205482906001600160a01b03163314610c59576040516317737e4f60e31b815260040160405180910390fd5b60008381526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339186917f1018365553cce55d9cb02ef73e18cc9311894f3fe1d1eafd235ac2d26cd8ba5891a4505050565b60008481526001602052604081205485906001600160a01b03163314610ced576040516317737e4f60e31b815260040160405180910390fd5b6000868152602081905260408120610d0590876109a9565b6000888152602081905260409020909150610d229087878761197d565b604080518381526020810189905290810182905290935087907f3108849c053c77b8073a11256dffb5ffd5b55e93e105a355e1c9061db890d8719060600160405180910390a25050949350505050565b6000818152600260205260409020546001600160a01b03163314610da9576040516334c4245d60e01b815260040160405180910390fd5b60008181526001602090815260408083208054336001600160a01b031980831682179093556002909452828520805490921690915590516001600160a01b0390911692839185917f0ba83579a0e79193ef649b9f5a8759d35af086ba62a3e207b52e4a8ae30d49e391a45050565b8254600090815b83811015610f4857600080516020611f2d833981519152858583818110610e4757610e47611c26565b9050602002013510610e6c576040516361c0541760e11b815260040160405180910390fd5b848482818110610e7e57610e7e611c26565b90506020020135600003610ea5576040516314b48df160e11b815260040160405180910390fd5b610eda86868684818110610ebb57610ebb611c26565b9050602002013560009081526003919091016020526040902054151590565b15610ef8576040516312c50cad60e11b815260040160405180910390fd5b80610f04836001611c13565b610f0e9190611c13565b866003016000878785818110610f2657610f26611c26565b6020908102929092013583525081019190915260400160002055600101610e1e565b50606084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050506001880154919250505b610f918584611c13565b610f9c826002611ea9565b1015610fb257610fab81611bfa565b9050610f87565b60018701819055826000610fc68783611c13565b9050600182811c90600090610fdb8185611db2565b610fe7911c6001611c13565b905060005b858110156112d85760006110008484611db2565b905060008167ffffffffffffffff81111561101d5761101d611eb5565b604051908082528060200260200182016040528015611046578160200160208202803683370190505b50905060005b82811015611203576000886110618884611c13565b61106c906002611ecb565b101561108f578f60020160008681526020019081526020016000205490506110cb565b8a8961109b8985611c13565b6110a6906002611ecb565b6110b09190611db2565b815181106110c0576110c0611c26565b602002602001015190505b6000886110d88985611c13565b6110e3906002611ecb565b6110ee906001611c13565b101561113b578b8a6111008a86611c13565b61110b906002611ecb565b611116906001611c13565b6111209190611db2565b8151811061113057611130611c26565b602002602001015190505b600081156111d357604080518082018252848152602081018490529051632b0aac7f60e11b815273__$75f79a42d9bcbdbb69ad79ebd80f556f39$__9163561558fe9161118b9190600401611ee2565b602060405180830381865af41580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190611f13565b90506111d6565b50815b808585815181106111e9576111e9611c26565b60200260200101818152505083600101935050505061104c565b5085600116600103611254578860018a5161121e9190611db2565b8151811061122e5761122e611c26565b60200260200101518e60020160008581526020019081526020016000208190555061129f565b60018951111561129f578860028a5161126d9190611db2565b8151811061127d5761127d611c26565b60200260200101518e6002016000858152602001908152602001600020819055505b849650600185901c9450809850839550600180856112bd9190611db2565b6112c9911c6001611c13565b93508260010192505050610fec565b506112e38988611c13565b8b55855186906000906112f8576112f8611c26565b60200260200101518b6002016000878152602001908152602001600020819055508560008151811061132c5761132c611c26565b60200260200101519750505050505050509392505050565b6000600080516020611f2d8339815191528210611374576040516361c0541760e11b815260040160405180910390fd5b81600003611395576040516314b48df160e11b815260040160405180910390fd5b6000828152600384016020526040902054156113c4576040516312c50cad60e11b815260040160405180910390fd5b8254600180850154906113d8908390611c13565b6113e3826002611ea9565b10156113f5576113f281611bfa565b90505b600185018190558360005b828110156114d2578084901c6001166001036114b657604080518082018252600083815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$75f79a42d9bcbdbb69ad79ebd80f556f39$__9163561558fe9161146e9190600401611ee2565b602060405180830381865af415801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190611f13565b91506114ca565b600081815260028801602052604090208290555b600101611400565b506114dc83611bfa565b8087556000928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6000600080516020611f2d833981519152841061153d576040516361c0541760e11b815260040160405180910390fd5b600085815260038701602052604090205461156b57604051631c811d5b60e21b815260040160405180910390fd5b60008481526003870160205260409020541561159a576040516312c50cad60e11b815260040160405180910390fd5b60006115a687876109a9565b8754909150859087906000906115be90600190611db2565b60018b0154909150600090815b818110156118f4578087901c60011660010361177e57600080516020611f2d8339815191528a8a8581811061160257611602611c26565b9050602002013510611627576040516361c0541760e11b815260040160405180910390fd5b73__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808d8d8881811061165e5761165e611c26565b905060200201358152602001898152506040518263ffffffff1660e01b815260040161168a9190611ee2565b602060405180830381865af41580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cb9190611f13565b955073__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808d8d8881811061170457611704611c26565b905060200201358152602001888152506040518263ffffffff1660e01b81526004016117309190611ee2565b602060405180830381865af415801561174d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117719190611f13565b94508260010192506118ec565b86811c84821c146118d857600080516020611f2d8339815191528a8a858181106117aa576117aa611c26565b90506020020135106117cf576040516361c0541760e11b815260040160405180910390fd5b73__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808981526020018d8d8881811061180c5761180c611c26565b905060200201358152506040518263ffffffff1660e01b81526004016118329190611ee2565b602060405180830381865af415801561184f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118739190611f13565b955073__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808881526020018d8d888181106118b2576118b2611c26565b905060200201358152506040518263ffffffff1660e01b81526004016117309190611ee2565b600083815260028e01602052604090208690555b6001016115cb565b5060018c0154600090815260028d016020526040902054841461192a57604051631fd4986360e11b815260040160405180910390fd5b600081815260028d0160205260409020859055891561195c5760008b815260038d016020526040808220548c83529120555b505050600088815260038a0160205260408120555091505095945050505050565b600061198d85856000868661150d565b95945050505050565b60008083601f8401126119a857600080fd5b50813567ffffffffffffffff8111156119c057600080fd5b6020830191508360208260051b85010111156119db57600080fd5b9250929050565b6000806000604084860312156119f757600080fd5b83359250602084013567ffffffffffffffff811115611a1557600080fd5b611a2186828701611996565b9497909650939450505050565b60008060408385031215611a4157600080fd5b50508035926020909101359150565b80356001600160a01b0381168114611a6757600080fd5b919050565b60008060408385031215611a7f57600080fd5b611a8883611a50565b946020939093013593505050565b600080600080600060808688031215611aae57600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611ada57600080fd5b611ae688828901611996565b969995985093965092949392505050565b6000808284036101c0811215611b0c57600080fd5b833592506101a0601f1982011215611b2357600080fd5b506020830190509250929050565b60008060408385031215611b4457600080fd5b82359150611b5460208401611a50565b90509250929050565b600060208284031215611b6f57600080fd5b61037e82611a50565b600060208284031215611b8a57600080fd5b5035919050565b60008060008060608587031215611ba757600080fd5b8435935060208501359250604085013567ffffffffffffffff811115611bcc57600080fd5b611bd887828801611996565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c0c57611c0c611be4565b5060010190565b8082018082111561038157610381611be4565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015611c5f578151845260209384019390910190600101611c40565b50505050565b8060005b6004811015611c5f578151845260209384019390910190600101611c69565b6101a08101611c978288611c3c565b6040808301876000805b6002808210611cb05750611cea565b835185845b83811015611cd3578251825260209283019290910190600101611cb5565b505050938501935060209290920191600101611ca1565b5050505050611cfc60c0830186611c3c565b611d0a610100830185611c65565b826101808301529695505050505050565b600060208284031215611d2d57600080fd5b81518015158114611d3d57600080fd5b9392505050565b8481526020810184905260408101839052610160810161010083606084013795945050505050565b848152606060208201819052810183905260006001600160fb1b03841115611d9357600080fd5b8360051b80866080850137604083019390935250016080019392505050565b8181038181111561038157610381611be4565b600181815b80851115611e00578160001904821115611de657611de6611be4565b80851615611df357918102915b93841c9390800290611dca565b509250929050565b600082611e1757506001610381565b81611e2457506000610381565b8160018114611e3a5760028114611e4457611e60565b6001915050610381565b60ff841115611e5557611e55611be4565b50506001821b610381565b5060208310610133831016604e8410600b8410161715611e83575081810a610381565b611e8d8383611dc5565b8060001904821115611ea157611ea1611be4565b029392505050565b600061037e8383611e08565b634e487b7160e01b600052604160045260246000fd5b808202811582820484141761038157610381611be4565b60408101818360005b6002811015611f0a578151835260209283019290910190600101611eeb565b50505092915050565b600060208284031215611f2557600080fd5b505191905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220164ddea4e67fb9956ad9d73065c0b85ecf9b8062f67bcc5be446364b9475660664736f6c63430008170033";
858
+ var deployedBytecode = "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80636389e107116100b8578063a9961c941161007c578063a9961c94146102b5578063d0d898dd146102de578063d24924fe146102f1578063da3cda52146102fa578063dabc4d511461030d578063fcf0b6ec1461032057600080fd5b80636389e1071461022c5780636cdd32fe1461024f5780637ee35a0c1461026257806390509d441461028257806396324bd41461029557600080fd5b80634178c4d5116100ff5780634178c4d5146101c8578063456f4188146101db578063568ee826146101fe578063575185ed146102115780635c3f3b601461021957600080fd5b8063042453711461013c57806306dd8485146101515780631783efc3146101775780632b7ac3f31461018a5780632c880363146101b5575b600080fd5b61014f61014a3660046119e2565b610333565b005b61016461015f366004611a2e565b610366565b6040519081526020015b60405180910390f35b61014f610185366004611a2e565b610387565b60035461019d906001600160a01b031681565b6040516001600160a01b03909116815260200161016e565b6101646101c3366004611a6c565b6103b8565b61014f6101d6366004611a96565b6103f0565b6101ee6101e9366004611af7565b610427565b604051901515815260200161016e565b61014f61020c366004611b31565b61068c565b61016461069a565b610164610227366004611b5d565b6106d1565b61016461023a366004611b78565b60009081526020819052604090206001015490565b61014f61025d366004611b91565b61070a565b610164610270366004611b78565b60009081526020819052604090205490565b6101ee610290366004611a2e565b61073f565b6101646102a3366004611b78565b60046020526000908152604090205481565b61019d6102c3366004611b78565b6000908152600160205260409020546001600160a01b031690565b61014f6102ec366004611af7565b610761565b61016460055481565b61014f610308366004611b78565b61084b565b61016461031b366004611b78565b610857565b61014f61032e366004611a2e565b61087b565b600061034084848461090b565b600094855260046020908152604080872092875260019092019052909320429055505050565b600082815260208190526040812061037e90836109a9565b90505b92915050565b600061039383836109f6565b6000938452600460209081526040808620928652600190920190529092204290555050565b60058054600091826103c983611bfa565b9190505590506103d98184610a98565b600081815260046020526040902091909155919050565b60006103ff8686868686610b22565b6000968752600460209081526040808920928952600190920190529095204290555050505050565b60008281526001602052604081205483906001600160a01b031661045e5760405163029f057960e01b815260040160405180910390fd5b60018335108061046f575060208335115b1561048d5760405163767b278960e11b815260040160405180910390fd5b600084815260208190526040812054908190036104bd5760405163c8b02e0160e01b815260040160405180910390fd5b60006104c886610857565b90508085602001351461054d576000868152600460208181526040808420898301358552600181018352908420548a855292909152549091829003610520576040516326994ac360e11b815260040160405180910390fd5b61052a8183611c13565b42111561054a576040516309581a9960e41b815260040160405180910390fd5b50505b60035460408051808201825260a0880135815260c088013560208083019190915282516080808201855260e08b01358286019081526101008c0135606080850191909152908352855180870187526101208d013581526101408d01358186015283850152855180870187526101608d013581526101808d01358186015286519283018752848d013583528c870135948301949094526001600160a01b039096169563a23f019995929392820190610606908d0135610be9565b81526020016106188c60800135610be9565b90526040516001600160e01b031960e087901b16815261064194939291908c3590600401611c88565b602060405180830381865afa15801561065e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106829190611d1b565b9695505050505050565b6106968282610c20565b5050565b60058054600091826106ab83611bfa565b9190505590506106bb8133610a98565b6000818152600460205260409020610e10905590565b60058054600091826106e283611bfa565b9190505590506106f28183610a98565b6000818152600460205260409020610e109055919050565b600061071885858585610cb4565b60009586526004602090815260408088209288526001909201905290942042905550505050565b600082815260208181526040808320848452600301909152812054151561037e565b600082815260046020908152604080832084820135845260020190915290205460ff16156107a25760405163041162bd60e31b815260040160405180910390fd5b6107ac8282610427565b6107c95760405163012a9af160e61b815260040160405180910390fd5b6000828152600460209081526040808320848201358085526002909101835292819020805460ff1916600117905551608084013592918401359185917f0c32e14cfe81a05d371c248d22de6b7ae849e981b76a1f8842e7b6da73fc405a9161083f918735919060608901359060a08a0190611d44565b60405180910390a45050565b61085481610d72565b50565b60008181526020818152604080832060018101548452600201909152812054610381565b60008281526001602052604090205482906001600160a01b031633146108b4576040516317737e4f60e31b815260040160405180910390fd5b60008381526004602090815260409182902080549085905582518181529182018590529185917f264b2a8f6763c084235fe832ba903482b2ef1a521336881fc75b987c2dfd29c5910160405180910390a250505050565b60008381526001602052604081205484906001600160a01b03163314610944576040516317737e4f60e31b815260040160405180910390fd5b6000858152602081905260409020805490610960908686610e17565b9250857f61e5e8054e3daf084a0c6c646c065e8bf5e7ca4d5567bda942309bd1652f349d828787876040516109989493929190611d6c565b60405180910390a250509392505050565b600081815260038301602052604081205481036109d957604051631c811d5b60e21b815260040160405180910390fd5b600082815260038401602052604090205461037e90600190611db2565b60008281526001602052604081205483906001600160a01b03163314610a2f576040516317737e4f60e31b815260040160405180910390fd5b6000848152602081905260409020805490610a4a9085611344565b604080518381526020810187905290810182905290935085907f19239b3f93cd10558aaf11423af70c77763bf54f52bcc75bfa74d4d13548cde99060600160405180910390a2505092915050565b60008281526001602052604080822080546001600160a01b0319166001600160a01b0385161790555183917ff0adfb94eab6daf835deb69c5738fe636150c3dfd08094a76f39b963dc8cb05a91a26040516001600160a01b0382169060009084907f0ba83579a0e79193ef649b9f5a8759d35af086ba62a3e207b52e4a8ae30d49e3908390a45050565b60008581526001602052604081205486906001600160a01b03163314610b5b576040516317737e4f60e31b815260040160405180910390fd5b6000878152602081905260408120610b7390886109a9565b6000898152602081905260409020909150610b91908888888861150d565b60408051838152602081018a90529081018890526060810182905290935088907fea3588e4a2a0c93d6a0e69dfeaf7496f43ccccf02ad9ce0a5b7627cbca4b61b19060800160405180910390a2505095945050505050565b6000600882604051602001610c0091815260200190565b60408051601f198184030181529190528051602090910120901c92915050565b60008281526001602052604090205482906001600160a01b03163314610c59576040516317737e4f60e31b815260040160405180910390fd5b60008381526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339186917f1018365553cce55d9cb02ef73e18cc9311894f3fe1d1eafd235ac2d26cd8ba5891a4505050565b60008481526001602052604081205485906001600160a01b03163314610ced576040516317737e4f60e31b815260040160405180910390fd5b6000868152602081905260408120610d0590876109a9565b6000888152602081905260409020909150610d229087878761197d565b604080518381526020810189905290810182905290935087907f3108849c053c77b8073a11256dffb5ffd5b55e93e105a355e1c9061db890d8719060600160405180910390a25050949350505050565b6000818152600260205260409020546001600160a01b03163314610da9576040516334c4245d60e01b815260040160405180910390fd5b60008181526001602090815260408083208054336001600160a01b031980831682179093556002909452828520805490921690915590516001600160a01b0390911692839185917f0ba83579a0e79193ef649b9f5a8759d35af086ba62a3e207b52e4a8ae30d49e391a45050565b8254600090815b83811015610f4857600080516020611f2d833981519152858583818110610e4757610e47611c26565b9050602002013510610e6c576040516361c0541760e11b815260040160405180910390fd5b848482818110610e7e57610e7e611c26565b90506020020135600003610ea5576040516314b48df160e11b815260040160405180910390fd5b610eda86868684818110610ebb57610ebb611c26565b9050602002013560009081526003919091016020526040902054151590565b15610ef8576040516312c50cad60e11b815260040160405180910390fd5b80610f04836001611c13565b610f0e9190611c13565b866003016000878785818110610f2657610f26611c26565b6020908102929092013583525081019190915260400160002055600101610e1e565b50606084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050506001880154919250505b610f918584611c13565b610f9c826002611ea9565b1015610fb257610fab81611bfa565b9050610f87565b60018701819055826000610fc68783611c13565b9050600182811c90600090610fdb8185611db2565b610fe7911c6001611c13565b905060005b858110156112d85760006110008484611db2565b905060008167ffffffffffffffff81111561101d5761101d611eb5565b604051908082528060200260200182016040528015611046578160200160208202803683370190505b50905060005b82811015611203576000886110618884611c13565b61106c906002611ecb565b101561108f578f60020160008681526020019081526020016000205490506110cb565b8a8961109b8985611c13565b6110a6906002611ecb565b6110b09190611db2565b815181106110c0576110c0611c26565b602002602001015190505b6000886110d88985611c13565b6110e3906002611ecb565b6110ee906001611c13565b101561113b578b8a6111008a86611c13565b61110b906002611ecb565b611116906001611c13565b6111209190611db2565b8151811061113057611130611c26565b602002602001015190505b600081156111d357604080518082018252848152602081018490529051632b0aac7f60e11b815273__$75f79a42d9bcbdbb69ad79ebd80f556f39$__9163561558fe9161118b9190600401611ee2565b602060405180830381865af41580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc9190611f13565b90506111d6565b50815b808585815181106111e9576111e9611c26565b60200260200101818152505083600101935050505061104c565b5085600116600103611254578860018a5161121e9190611db2565b8151811061122e5761122e611c26565b60200260200101518e60020160008581526020019081526020016000208190555061129f565b60018951111561129f578860028a5161126d9190611db2565b8151811061127d5761127d611c26565b60200260200101518e6002016000858152602001908152602001600020819055505b849650600185901c9450809850839550600180856112bd9190611db2565b6112c9911c6001611c13565b93508260010192505050610fec565b506112e38988611c13565b8b55855186906000906112f8576112f8611c26565b60200260200101518b6002016000878152602001908152602001600020819055508560008151811061132c5761132c611c26565b60200260200101519750505050505050509392505050565b6000600080516020611f2d8339815191528210611374576040516361c0541760e11b815260040160405180910390fd5b81600003611395576040516314b48df160e11b815260040160405180910390fd5b6000828152600384016020526040902054156113c4576040516312c50cad60e11b815260040160405180910390fd5b8254600180850154906113d8908390611c13565b6113e3826002611ea9565b10156113f5576113f281611bfa565b90505b600185018190558360005b828110156114d2578084901c6001166001036114b657604080518082018252600083815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$75f79a42d9bcbdbb69ad79ebd80f556f39$__9163561558fe9161146e9190600401611ee2565b602060405180830381865af415801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190611f13565b91506114ca565b600081815260028801602052604090208290555b600101611400565b506114dc83611bfa565b8087556000928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6000600080516020611f2d833981519152841061153d576040516361c0541760e11b815260040160405180910390fd5b600085815260038701602052604090205461156b57604051631c811d5b60e21b815260040160405180910390fd5b60008481526003870160205260409020541561159a576040516312c50cad60e11b815260040160405180910390fd5b60006115a687876109a9565b8754909150859087906000906115be90600190611db2565b60018b0154909150600090815b818110156118f4578087901c60011660010361177e57600080516020611f2d8339815191528a8a8581811061160257611602611c26565b9050602002013510611627576040516361c0541760e11b815260040160405180910390fd5b73__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808d8d8881811061165e5761165e611c26565b905060200201358152602001898152506040518263ffffffff1660e01b815260040161168a9190611ee2565b602060405180830381865af41580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cb9190611f13565b955073__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808d8d8881811061170457611704611c26565b905060200201358152602001888152506040518263ffffffff1660e01b81526004016117309190611ee2565b602060405180830381865af415801561174d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117719190611f13565b94508260010192506118ec565b86811c84821c146118d857600080516020611f2d8339815191528a8a858181106117aa576117aa611c26565b90506020020135106117cf576040516361c0541760e11b815260040160405180910390fd5b73__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808981526020018d8d8881811061180c5761180c611c26565b905060200201358152506040518263ffffffff1660e01b81526004016118329190611ee2565b602060405180830381865af415801561184f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118739190611f13565b955073__$75f79a42d9bcbdbb69ad79ebd80f556f39$__63561558fe60405180604001604052808881526020018d8d888181106118b2576118b2611c26565b905060200201358152506040518263ffffffff1660e01b81526004016117309190611ee2565b600083815260028e01602052604090208690555b6001016115cb565b5060018c0154600090815260028d016020526040902054841461192a57604051631fd4986360e11b815260040160405180910390fd5b600081815260028d0160205260409020859055891561195c5760008b815260038d016020526040808220548c83529120555b505050600088815260038a0160205260408120555091505095945050505050565b600061198d85856000868661150d565b95945050505050565b60008083601f8401126119a857600080fd5b50813567ffffffffffffffff8111156119c057600080fd5b6020830191508360208260051b85010111156119db57600080fd5b9250929050565b6000806000604084860312156119f757600080fd5b83359250602084013567ffffffffffffffff811115611a1557600080fd5b611a2186828701611996565b9497909650939450505050565b60008060408385031215611a4157600080fd5b50508035926020909101359150565b80356001600160a01b0381168114611a6757600080fd5b919050565b60008060408385031215611a7f57600080fd5b611a8883611a50565b946020939093013593505050565b600080600080600060808688031215611aae57600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611ada57600080fd5b611ae688828901611996565b969995985093965092949392505050565b6000808284036101c0811215611b0c57600080fd5b833592506101a0601f1982011215611b2357600080fd5b506020830190509250929050565b60008060408385031215611b4457600080fd5b82359150611b5460208401611a50565b90509250929050565b600060208284031215611b6f57600080fd5b61037e82611a50565b600060208284031215611b8a57600080fd5b5035919050565b60008060008060608587031215611ba757600080fd5b8435935060208501359250604085013567ffffffffffffffff811115611bcc57600080fd5b611bd887828801611996565b95989497509550505050565b634e487b7160e01b600052601160045260246000fd5b600060018201611c0c57611c0c611be4565b5060010190565b8082018082111561038157610381611be4565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015611c5f578151845260209384019390910190600101611c40565b50505050565b8060005b6004811015611c5f578151845260209384019390910190600101611c69565b6101a08101611c978288611c3c565b6040808301876000805b6002808210611cb05750611cea565b835185845b83811015611cd3578251825260209283019290910190600101611cb5565b505050938501935060209290920191600101611ca1565b5050505050611cfc60c0830186611c3c565b611d0a610100830185611c65565b826101808301529695505050505050565b600060208284031215611d2d57600080fd5b81518015158114611d3d57600080fd5b9392505050565b8481526020810184905260408101839052610160810161010083606084013795945050505050565b848152606060208201819052810183905260006001600160fb1b03841115611d9357600080fd5b8360051b80866080850137604083019390935250016080019392505050565b8181038181111561038157610381611be4565b600181815b80851115611e00578160001904821115611de657611de6611be4565b80851615611df357918102915b93841c9390800290611dca565b509250929050565b600082611e1757506001610381565b81611e2457506000610381565b8160018114611e3a5760028114611e4457611e60565b6001915050610381565b60ff841115611e5557611e55611be4565b50506001821b610381565b5060208310610133831016604e8410600b8410161715611e83575081810a610381565b611e8d8383611dc5565b8060001904821115611ea157611ea1611be4565b029392505050565b600061037e8383611e08565b634e487b7160e01b600052604160045260246000fd5b808202811582820484141761038157610381611be4565b60408101818360005b6002811015611f0a578151835260209283019290910190600101611eeb565b50505092915050565b600060208284031215611f2557600080fd5b505191905056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220164ddea4e67fb9956ad9d73065c0b85ecf9b8062f67bcc5be446364b9475660664736f6c63430008170033";
859
+ var linkReferences = {
860
+ "poseidon-solidity/PoseidonT3.sol": {
861
+ PoseidonT3: [
862
+ {
863
+ length: 20,
864
+ start: 4599
865
+ },
866
+ {
867
+ length: 20,
868
+ start: 5338
869
+ },
870
+ {
871
+ length: 20,
872
+ start: 5820
873
+ },
874
+ {
875
+ length: 20,
876
+ start: 5986
877
+ },
878
+ {
879
+ length: 20,
880
+ start: 6244
881
+ },
882
+ {
883
+ length: 20,
884
+ start: 6410
885
+ }
886
+ ]
887
+ }
888
+ };
889
+ var deployedLinkReferences = {
890
+ "poseidon-solidity/PoseidonT3.sol": {
891
+ PoseidonT3: [
892
+ {
893
+ length: 20,
894
+ start: 4452
895
+ },
896
+ {
897
+ length: 20,
898
+ start: 5191
899
+ },
900
+ {
901
+ length: 20,
902
+ start: 5673
903
+ },
904
+ {
905
+ length: 20,
906
+ start: 5839
907
+ },
908
+ {
909
+ length: 20,
910
+ start: 6097
911
+ },
912
+ {
913
+ length: 20,
914
+ start: 6263
915
+ }
916
+ ]
917
+ }
918
+ };
919
+ var _interface = {
920
+ _format: _format,
921
+ contractName: contractName,
922
+ sourceName: sourceName,
923
+ abi: abi,
924
+ bytecode: bytecode,
925
+ deployedBytecode: deployedBytecode,
926
+ linkReferences: linkReferences,
927
+ deployedLinkReferences: deployedLinkReferences
928
+ };
929
+
12
930
  // Minimum supported tree depth.
13
931
  const MIN_DEPTH = 1;
14
932
  // Maximum supported tree depth.
15
933
  const MAX_DEPTH = 32;
934
+ const SemaphoreABI = _interface.abi;
935
+ const SemaphoreBytecode = _interface.bytecode;
16
936
 
17
937
  var constants = /*#__PURE__*/Object.freeze({
18
938
  __proto__: null,
19
939
  MAX_DEPTH: MAX_DEPTH,
20
- MIN_DEPTH: MIN_DEPTH
940
+ MIN_DEPTH: MIN_DEPTH,
941
+ SemaphoreABI: SemaphoreABI,
942
+ SemaphoreBytecode: SemaphoreBytecode
21
943
  });
22
944
 
23
945
  /**
@@ -40,18 +962,18 @@ var deployedContracts = [
40
962
  contracts: [
41
963
  {
42
964
  name: "SemaphoreVerifier",
43
- address: "0x521fCd9d3049DEc8a893A422f57C155ddB30BB45",
44
- startBlock: 6198270
965
+ address: "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
966
+ startBlock: 6333999
45
967
  },
46
968
  {
47
969
  name: "PoseidonT3",
48
- address: "0x4EFfF6a6a7BB31cdAd9Ee742b0faAA6Bb9BF096B",
49
- startBlock: 6198270
970
+ address: "0xB43122Ecb241DD50062641f089876679fd06599a",
971
+ startBlock: 6333999
50
972
  },
51
973
  {
52
974
  name: "Semaphore",
53
- address: "0x42C0e6780B60E18E44B3AB031B216B6360009baB",
54
- startBlock: 6198270
975
+ address: "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
976
+ startBlock: 6333999
55
977
  }
56
978
  ]
57
979
  },
@@ -60,18 +982,18 @@ var deployedContracts = [
60
982
  contracts: [
61
983
  {
62
984
  name: "SemaphoreVerifier",
63
- address: "0xF864ABa335073e01234c9a88888BfFfa965650bD",
64
- startBlock: 58900259
985
+ address: "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
986
+ startBlock: 64798522
65
987
  },
66
988
  {
67
989
  name: "PoseidonT3",
68
- address: "0x181B7f34538cE3BceC68597d4A212aB3f7881648",
69
- startBlock: 58900259
990
+ address: "0xB43122Ecb241DD50062641f089876679fd06599a",
991
+ startBlock: 64798522
70
992
  },
71
993
  {
72
994
  name: "Semaphore",
73
- address: "0xE5269ae1E996C6FEEf6E832c7032401E73087568",
74
- startBlock: 58900259
995
+ address: "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
996
+ startBlock: 64798522
75
997
  }
76
998
  ]
77
999
  },
@@ -80,18 +1002,18 @@ var deployedContracts = [
80
1002
  contracts: [
81
1003
  {
82
1004
  name: "SemaphoreVerifier",
83
- address: "0x220fBdB6F996827b1Cf12f0C181E8d5e6de3a36F",
84
- startBlock: 13847620
1005
+ address: "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
1006
+ startBlock: 14757931
85
1007
  },
86
1008
  {
87
1009
  name: "PoseidonT3",
88
- address: "0x5f4edC58142f4395D1D536e793137A0252dA5a49",
89
- startBlock: 13847620
1010
+ address: "0xB43122Ecb241DD50062641f089876679fd06599a",
1011
+ startBlock: 14757931
90
1012
  },
91
1013
  {
92
1014
  name: "Semaphore",
93
- address: "0xF864ABa335073e01234c9a88888BfFfa965650bD",
94
- startBlock: 13847620
1015
+ address: "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
1016
+ startBlock: 14757931
95
1017
  }
96
1018
  ]
97
1019
  },
@@ -100,18 +1022,18 @@ var deployedContracts = [
100
1022
  contracts: [
101
1023
  {
102
1024
  name: "SemaphoreVerifier",
103
- address: "0xEFD83f827FA5B0496359D817c6CD8a5AA5D2aCe5",
104
- startBlock: 8788886
1025
+ address: "0xe538f9DeeE04A397decb1E7dc5D16fD6f123c043",
1026
+ startBlock: 9636193
105
1027
  },
106
1028
  {
107
1029
  name: "PoseidonT3",
108
- address: "0x3d3df6CFc6BFf68d9693e097F32bF4a9903E77a5",
109
- startBlock: 8788886
1030
+ address: "0xB43122Ecb241DD50062641f089876679fd06599a",
1031
+ startBlock: 9636193
110
1032
  },
111
1033
  {
112
1034
  name: "Semaphore",
113
- address: "0x5f4edC58142f4395D1D536e793137A0252dA5a49",
114
- startBlock: 8788886
1035
+ address: "0x1e0d7FF1610e480fC93BdEC510811ea2Ba6d7c2f",
1036
+ startBlock: 9636193
115
1037
  }
116
1038
  ]
117
1039
  }