testprivacycash-evm 1.2.0

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.
Files changed (52) hide show
  1. package/.github/workflows/npm-publish.yml +55 -0
  2. package/README.md +17 -0
  3. package/circuits/transaction2.wasm +0 -0
  4. package/circuits/transaction2.zkey +0 -0
  5. package/dist/balance.d.ts +10 -0
  6. package/dist/balance.js +57 -0
  7. package/dist/deposit.d.ts +10 -0
  8. package/dist/deposit.js +345 -0
  9. package/dist/index.d.ts +10 -0
  10. package/dist/index.js +8 -0
  11. package/dist/utils/ERCPool.abi.json +929 -0
  12. package/dist/utils/EtherPool.abi.json +798 -0
  13. package/dist/utils/constants.d.ts +8 -0
  14. package/dist/utils/constants.js +11 -0
  15. package/dist/utils/db.d.ts +17 -0
  16. package/dist/utils/db.js +276 -0
  17. package/dist/utils/encryption.d.ts +8 -0
  18. package/dist/utils/encryption.js +34 -0
  19. package/dist/utils/keypair.d.ts +9 -0
  20. package/dist/utils/keypair.js +19 -0
  21. package/dist/utils/logger.d.ts +9 -0
  22. package/dist/utils/logger.js +35 -0
  23. package/dist/utils/networkConfig.d.ts +54 -0
  24. package/dist/utils/networkConfig.js +126 -0
  25. package/dist/utils/prover.d.ts +15 -0
  26. package/dist/utils/prover.js +30 -0
  27. package/dist/utils/remoteConfig.d.ts +21 -0
  28. package/dist/utils/remoteConfig.js +24 -0
  29. package/dist/utils/utils.d.ts +83 -0
  30. package/dist/utils/utils.js +275 -0
  31. package/dist/utils/utxo.d.ts +20 -0
  32. package/dist/utils/utxo.js +55 -0
  33. package/dist/withdraw.d.ts +12 -0
  34. package/dist/withdraw.js +253 -0
  35. package/package.json +37 -0
  36. package/src/balance.ts +74 -0
  37. package/src/deposit.ts +406 -0
  38. package/src/index.ts +16 -0
  39. package/src/utils/ERCPool.abi.json +929 -0
  40. package/src/utils/EtherPool.abi.json +798 -0
  41. package/src/utils/constants.ts +15 -0
  42. package/src/utils/db.ts +311 -0
  43. package/src/utils/encryption.ts +40 -0
  44. package/src/utils/keypair.ts +24 -0
  45. package/src/utils/logger.ts +42 -0
  46. package/src/utils/networkConfig.ts +169 -0
  47. package/src/utils/prover.ts +39 -0
  48. package/src/utils/remoteConfig.ts +49 -0
  49. package/src/utils/utils.ts +387 -0
  50. package/src/utils/utxo.ts +74 -0
  51. package/src/withdraw.ts +351 -0
  52. package/tsconfig.json +29 -0
@@ -0,0 +1,929 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "contract Verifier2",
6
+ "name": "_verifier2",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "uint32",
11
+ "name": "_levels",
12
+ "type": "uint32"
13
+ },
14
+ {
15
+ "internalType": "address",
16
+ "name": "_hasher",
17
+ "type": "address"
18
+ },
19
+ {
20
+ "internalType": "contract IERC20",
21
+ "name": "_token",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "stateMutability": "nonpayable",
26
+ "type": "constructor"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "target",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "AddressEmptyCode",
37
+ "type": "error"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "internalType": "address",
43
+ "name": "implementation",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "ERC1967InvalidImplementation",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "ERC1967NonPayable",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [],
57
+ "name": "EnforcedPause",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [],
62
+ "name": "ExpectedPause",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [],
67
+ "name": "FailedCall",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "InvalidInitialization",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [],
77
+ "name": "NotInitializing",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "ReentrancyGuardReentrantCall",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "address",
89
+ "name": "token",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "SafeERC20FailedOperation",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "UUPSUnauthorizedCallContext",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [
103
+ {
104
+ "internalType": "bytes32",
105
+ "name": "slot",
106
+ "type": "bytes32"
107
+ }
108
+ ],
109
+ "name": "UUPSUnsupportedProxiableUUID",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "anonymous": false,
114
+ "inputs": [
115
+ {
116
+ "indexed": true,
117
+ "internalType": "address",
118
+ "name": "oldAdmin",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "indexed": true,
123
+ "internalType": "address",
124
+ "name": "newAdmin",
125
+ "type": "address"
126
+ }
127
+ ],
128
+ "name": "AdminChanged",
129
+ "type": "event"
130
+ },
131
+ {
132
+ "anonymous": false,
133
+ "inputs": [
134
+ {
135
+ "indexed": false,
136
+ "internalType": "uint64",
137
+ "name": "version",
138
+ "type": "uint64"
139
+ }
140
+ ],
141
+ "name": "Initialized",
142
+ "type": "event"
143
+ },
144
+ {
145
+ "anonymous": false,
146
+ "inputs": [
147
+ {
148
+ "indexed": false,
149
+ "internalType": "uint256",
150
+ "name": "maximumDepositAmount",
151
+ "type": "uint256"
152
+ }
153
+ ],
154
+ "name": "MaximumDepositAmountConfigured",
155
+ "type": "event"
156
+ },
157
+ {
158
+ "anonymous": false,
159
+ "inputs": [
160
+ {
161
+ "indexed": false,
162
+ "internalType": "uint256",
163
+ "name": "minimumAmount",
164
+ "type": "uint256"
165
+ }
166
+ ],
167
+ "name": "MinimumAmountConfigured",
168
+ "type": "event"
169
+ },
170
+ {
171
+ "anonymous": false,
172
+ "inputs": [
173
+ {
174
+ "indexed": false,
175
+ "internalType": "bytes32",
176
+ "name": "commitment",
177
+ "type": "bytes32"
178
+ },
179
+ {
180
+ "indexed": false,
181
+ "internalType": "uint256",
182
+ "name": "index",
183
+ "type": "uint256"
184
+ },
185
+ {
186
+ "indexed": false,
187
+ "internalType": "bytes",
188
+ "name": "encryptedOutput",
189
+ "type": "bytes"
190
+ }
191
+ ],
192
+ "name": "NewCommitment",
193
+ "type": "event"
194
+ },
195
+ {
196
+ "anonymous": false,
197
+ "inputs": [
198
+ {
199
+ "indexed": false,
200
+ "internalType": "bytes32",
201
+ "name": "nullifier",
202
+ "type": "bytes32"
203
+ }
204
+ ],
205
+ "name": "NewNullifier",
206
+ "type": "event"
207
+ },
208
+ {
209
+ "anonymous": false,
210
+ "inputs": [
211
+ {
212
+ "indexed": false,
213
+ "internalType": "address",
214
+ "name": "account",
215
+ "type": "address"
216
+ }
217
+ ],
218
+ "name": "Paused",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "indexed": false,
226
+ "internalType": "address",
227
+ "name": "account",
228
+ "type": "address"
229
+ }
230
+ ],
231
+ "name": "Unpaused",
232
+ "type": "event"
233
+ },
234
+ {
235
+ "anonymous": false,
236
+ "inputs": [
237
+ {
238
+ "indexed": true,
239
+ "internalType": "address",
240
+ "name": "implementation",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "Upgraded",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "inputs": [],
249
+ "name": "FIELD_SIZE",
250
+ "outputs": [
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "stateMutability": "view",
258
+ "type": "function"
259
+ },
260
+ {
261
+ "inputs": [],
262
+ "name": "MAX_ENCRYPTED_OUTPUT_SIZE",
263
+ "outputs": [
264
+ {
265
+ "internalType": "uint256",
266
+ "name": "",
267
+ "type": "uint256"
268
+ }
269
+ ],
270
+ "stateMutability": "view",
271
+ "type": "function"
272
+ },
273
+ {
274
+ "inputs": [],
275
+ "name": "MAX_EXT_AMOUNT",
276
+ "outputs": [
277
+ {
278
+ "internalType": "int256",
279
+ "name": "",
280
+ "type": "int256"
281
+ }
282
+ ],
283
+ "stateMutability": "view",
284
+ "type": "function"
285
+ },
286
+ {
287
+ "inputs": [],
288
+ "name": "MAX_FEE",
289
+ "outputs": [
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "stateMutability": "view",
297
+ "type": "function"
298
+ },
299
+ {
300
+ "inputs": [],
301
+ "name": "ROOT_HISTORY_SIZE",
302
+ "outputs": [
303
+ {
304
+ "internalType": "uint32",
305
+ "name": "",
306
+ "type": "uint32"
307
+ }
308
+ ],
309
+ "stateMutability": "view",
310
+ "type": "function"
311
+ },
312
+ {
313
+ "inputs": [],
314
+ "name": "UPGRADE_INTERFACE_VERSION",
315
+ "outputs": [
316
+ {
317
+ "internalType": "string",
318
+ "name": "",
319
+ "type": "string"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [],
327
+ "name": "admin",
328
+ "outputs": [
329
+ {
330
+ "internalType": "address",
331
+ "name": "",
332
+ "type": "address"
333
+ }
334
+ ],
335
+ "stateMutability": "view",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [
340
+ {
341
+ "internalType": "int256",
342
+ "name": "_extAmount",
343
+ "type": "int256"
344
+ },
345
+ {
346
+ "internalType": "uint256",
347
+ "name": "_fee",
348
+ "type": "uint256"
349
+ }
350
+ ],
351
+ "name": "calculatePublicAmount",
352
+ "outputs": [
353
+ {
354
+ "internalType": "uint256",
355
+ "name": "",
356
+ "type": "uint256"
357
+ }
358
+ ],
359
+ "stateMutability": "pure",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [],
364
+ "name": "claimAdmin",
365
+ "outputs": [],
366
+ "stateMutability": "nonpayable",
367
+ "type": "function"
368
+ },
369
+ {
370
+ "inputs": [
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "_maximumDepositAmount",
374
+ "type": "uint256"
375
+ }
376
+ ],
377
+ "name": "configureMaximumDepositAmount",
378
+ "outputs": [],
379
+ "stateMutability": "nonpayable",
380
+ "type": "function"
381
+ },
382
+ {
383
+ "inputs": [
384
+ {
385
+ "internalType": "uint256",
386
+ "name": "_minimumAmount",
387
+ "type": "uint256"
388
+ }
389
+ ],
390
+ "name": "configureMinimumAmount",
391
+ "outputs": [],
392
+ "stateMutability": "nonpayable",
393
+ "type": "function"
394
+ },
395
+ {
396
+ "inputs": [],
397
+ "name": "currentRootIndex",
398
+ "outputs": [
399
+ {
400
+ "internalType": "uint32",
401
+ "name": "",
402
+ "type": "uint32"
403
+ }
404
+ ],
405
+ "stateMutability": "view",
406
+ "type": "function"
407
+ },
408
+ {
409
+ "inputs": [
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "",
413
+ "type": "uint256"
414
+ }
415
+ ],
416
+ "name": "filledSubtrees",
417
+ "outputs": [
418
+ {
419
+ "internalType": "bytes32",
420
+ "name": "",
421
+ "type": "bytes32"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "inputs": [],
429
+ "name": "getLastRoot",
430
+ "outputs": [
431
+ {
432
+ "internalType": "bytes32",
433
+ "name": "",
434
+ "type": "bytes32"
435
+ }
436
+ ],
437
+ "stateMutability": "view",
438
+ "type": "function"
439
+ },
440
+ {
441
+ "inputs": [
442
+ {
443
+ "internalType": "bytes32",
444
+ "name": "_left",
445
+ "type": "bytes32"
446
+ },
447
+ {
448
+ "internalType": "bytes32",
449
+ "name": "_right",
450
+ "type": "bytes32"
451
+ }
452
+ ],
453
+ "name": "hashLeftRight",
454
+ "outputs": [
455
+ {
456
+ "internalType": "bytes32",
457
+ "name": "",
458
+ "type": "bytes32"
459
+ }
460
+ ],
461
+ "stateMutability": "view",
462
+ "type": "function"
463
+ },
464
+ {
465
+ "inputs": [],
466
+ "name": "hasher",
467
+ "outputs": [
468
+ {
469
+ "internalType": "contract IHasher",
470
+ "name": "",
471
+ "type": "address"
472
+ }
473
+ ],
474
+ "stateMutability": "view",
475
+ "type": "function"
476
+ },
477
+ {
478
+ "inputs": [
479
+ {
480
+ "internalType": "uint256",
481
+ "name": "_maximumDepositAmount",
482
+ "type": "uint256"
483
+ },
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "_minimumAmount",
487
+ "type": "uint256"
488
+ },
489
+ {
490
+ "internalType": "address",
491
+ "name": "_admin",
492
+ "type": "address"
493
+ }
494
+ ],
495
+ "name": "initialize",
496
+ "outputs": [],
497
+ "stateMutability": "nonpayable",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "bytes32",
504
+ "name": "_root",
505
+ "type": "bytes32"
506
+ }
507
+ ],
508
+ "name": "isKnownRoot",
509
+ "outputs": [
510
+ {
511
+ "internalType": "bool",
512
+ "name": "",
513
+ "type": "bool"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "bytes32",
523
+ "name": "_nullifierHash",
524
+ "type": "bytes32"
525
+ }
526
+ ],
527
+ "name": "isSpent",
528
+ "outputs": [
529
+ {
530
+ "internalType": "bool",
531
+ "name": "",
532
+ "type": "bool"
533
+ }
534
+ ],
535
+ "stateMutability": "view",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [
540
+ {
541
+ "internalType": "bytes32[]",
542
+ "name": "_nullifierHashes",
543
+ "type": "bytes32[]"
544
+ }
545
+ ],
546
+ "name": "isSpentArray",
547
+ "outputs": [
548
+ {
549
+ "internalType": "bool[]",
550
+ "name": "spent",
551
+ "type": "bool[]"
552
+ }
553
+ ],
554
+ "stateMutability": "view",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [],
559
+ "name": "levels",
560
+ "outputs": [
561
+ {
562
+ "internalType": "uint32",
563
+ "name": "",
564
+ "type": "uint32"
565
+ }
566
+ ],
567
+ "stateMutability": "view",
568
+ "type": "function"
569
+ },
570
+ {
571
+ "inputs": [],
572
+ "name": "maximumDepositAmount",
573
+ "outputs": [
574
+ {
575
+ "internalType": "uint256",
576
+ "name": "",
577
+ "type": "uint256"
578
+ }
579
+ ],
580
+ "stateMutability": "view",
581
+ "type": "function"
582
+ },
583
+ {
584
+ "inputs": [],
585
+ "name": "minimumAmount",
586
+ "outputs": [
587
+ {
588
+ "internalType": "uint256",
589
+ "name": "",
590
+ "type": "uint256"
591
+ }
592
+ ],
593
+ "stateMutability": "view",
594
+ "type": "function"
595
+ },
596
+ {
597
+ "inputs": [],
598
+ "name": "nextIndex",
599
+ "outputs": [
600
+ {
601
+ "internalType": "uint32",
602
+ "name": "",
603
+ "type": "uint32"
604
+ }
605
+ ],
606
+ "stateMutability": "view",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [
611
+ {
612
+ "internalType": "bytes32",
613
+ "name": "",
614
+ "type": "bytes32"
615
+ }
616
+ ],
617
+ "name": "nullifierHashes",
618
+ "outputs": [
619
+ {
620
+ "internalType": "bool",
621
+ "name": "",
622
+ "type": "bool"
623
+ }
624
+ ],
625
+ "stateMutability": "view",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [],
630
+ "name": "pause",
631
+ "outputs": [],
632
+ "stateMutability": "nonpayable",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [],
637
+ "name": "paused",
638
+ "outputs": [
639
+ {
640
+ "internalType": "bool",
641
+ "name": "",
642
+ "type": "bool"
643
+ }
644
+ ],
645
+ "stateMutability": "view",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [],
650
+ "name": "pendingAdmin",
651
+ "outputs": [
652
+ {
653
+ "internalType": "address",
654
+ "name": "",
655
+ "type": "address"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [],
663
+ "name": "proxiableUUID",
664
+ "outputs": [
665
+ {
666
+ "internalType": "bytes32",
667
+ "name": "",
668
+ "type": "bytes32"
669
+ }
670
+ ],
671
+ "stateMutability": "view",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [
676
+ {
677
+ "internalType": "uint256",
678
+ "name": "",
679
+ "type": "uint256"
680
+ }
681
+ ],
682
+ "name": "roots",
683
+ "outputs": [
684
+ {
685
+ "internalType": "bytes32",
686
+ "name": "",
687
+ "type": "bytes32"
688
+ }
689
+ ],
690
+ "stateMutability": "view",
691
+ "type": "function"
692
+ },
693
+ {
694
+ "inputs": [],
695
+ "name": "token",
696
+ "outputs": [
697
+ {
698
+ "internalType": "contract IERC20",
699
+ "name": "",
700
+ "type": "address"
701
+ }
702
+ ],
703
+ "stateMutability": "view",
704
+ "type": "function"
705
+ },
706
+ {
707
+ "inputs": [
708
+ {
709
+ "components": [
710
+ {
711
+ "internalType": "uint256[2]",
712
+ "name": "pA",
713
+ "type": "uint256[2]"
714
+ },
715
+ {
716
+ "internalType": "uint256[2][2]",
717
+ "name": "pB",
718
+ "type": "uint256[2][2]"
719
+ },
720
+ {
721
+ "internalType": "uint256[2]",
722
+ "name": "pC",
723
+ "type": "uint256[2]"
724
+ },
725
+ {
726
+ "internalType": "bytes32",
727
+ "name": "root",
728
+ "type": "bytes32"
729
+ },
730
+ {
731
+ "internalType": "bytes32[2]",
732
+ "name": "inputNullifiers",
733
+ "type": "bytes32[2]"
734
+ },
735
+ {
736
+ "internalType": "bytes32[2]",
737
+ "name": "outputCommitments",
738
+ "type": "bytes32[2]"
739
+ },
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "publicAmount",
743
+ "type": "uint256"
744
+ },
745
+ {
746
+ "internalType": "bytes32",
747
+ "name": "extDataHash",
748
+ "type": "bytes32"
749
+ }
750
+ ],
751
+ "internalType": "struct ERCPool.Proof",
752
+ "name": "_args",
753
+ "type": "tuple"
754
+ },
755
+ {
756
+ "components": [
757
+ {
758
+ "internalType": "address",
759
+ "name": "recipient",
760
+ "type": "address"
761
+ },
762
+ {
763
+ "internalType": "int256",
764
+ "name": "extAmount",
765
+ "type": "int256"
766
+ },
767
+ {
768
+ "internalType": "address",
769
+ "name": "feeRecipient",
770
+ "type": "address"
771
+ },
772
+ {
773
+ "internalType": "uint256",
774
+ "name": "fee",
775
+ "type": "uint256"
776
+ },
777
+ {
778
+ "internalType": "bytes",
779
+ "name": "encryptedOutput1",
780
+ "type": "bytes"
781
+ },
782
+ {
783
+ "internalType": "bytes",
784
+ "name": "encryptedOutput2",
785
+ "type": "bytes"
786
+ }
787
+ ],
788
+ "internalType": "struct ERCPool.ExtData",
789
+ "name": "_extData",
790
+ "type": "tuple"
791
+ }
792
+ ],
793
+ "name": "transact",
794
+ "outputs": [],
795
+ "stateMutability": "nonpayable",
796
+ "type": "function"
797
+ },
798
+ {
799
+ "inputs": [
800
+ {
801
+ "internalType": "address",
802
+ "name": "_newAdmin",
803
+ "type": "address"
804
+ }
805
+ ],
806
+ "name": "transferAdmin",
807
+ "outputs": [],
808
+ "stateMutability": "nonpayable",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [],
813
+ "name": "unpause",
814
+ "outputs": [],
815
+ "stateMutability": "nonpayable",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "address",
822
+ "name": "newImplementation",
823
+ "type": "address"
824
+ },
825
+ {
826
+ "internalType": "bytes",
827
+ "name": "data",
828
+ "type": "bytes"
829
+ }
830
+ ],
831
+ "name": "upgradeToAndCall",
832
+ "outputs": [],
833
+ "stateMutability": "payable",
834
+ "type": "function"
835
+ },
836
+ {
837
+ "inputs": [],
838
+ "name": "verifier2",
839
+ "outputs": [
840
+ {
841
+ "internalType": "contract Verifier2",
842
+ "name": "",
843
+ "type": "address"
844
+ }
845
+ ],
846
+ "stateMutability": "view",
847
+ "type": "function"
848
+ },
849
+ {
850
+ "inputs": [
851
+ {
852
+ "components": [
853
+ {
854
+ "internalType": "uint256[2]",
855
+ "name": "pA",
856
+ "type": "uint256[2]"
857
+ },
858
+ {
859
+ "internalType": "uint256[2][2]",
860
+ "name": "pB",
861
+ "type": "uint256[2][2]"
862
+ },
863
+ {
864
+ "internalType": "uint256[2]",
865
+ "name": "pC",
866
+ "type": "uint256[2]"
867
+ },
868
+ {
869
+ "internalType": "bytes32",
870
+ "name": "root",
871
+ "type": "bytes32"
872
+ },
873
+ {
874
+ "internalType": "bytes32[2]",
875
+ "name": "inputNullifiers",
876
+ "type": "bytes32[2]"
877
+ },
878
+ {
879
+ "internalType": "bytes32[2]",
880
+ "name": "outputCommitments",
881
+ "type": "bytes32[2]"
882
+ },
883
+ {
884
+ "internalType": "uint256",
885
+ "name": "publicAmount",
886
+ "type": "uint256"
887
+ },
888
+ {
889
+ "internalType": "bytes32",
890
+ "name": "extDataHash",
891
+ "type": "bytes32"
892
+ }
893
+ ],
894
+ "internalType": "struct ERCPool.Proof",
895
+ "name": "_args",
896
+ "type": "tuple"
897
+ }
898
+ ],
899
+ "name": "verifyProof",
900
+ "outputs": [
901
+ {
902
+ "internalType": "bool",
903
+ "name": "",
904
+ "type": "bool"
905
+ }
906
+ ],
907
+ "stateMutability": "view",
908
+ "type": "function"
909
+ },
910
+ {
911
+ "inputs": [
912
+ {
913
+ "internalType": "uint256",
914
+ "name": "i",
915
+ "type": "uint256"
916
+ }
917
+ ],
918
+ "name": "zeros",
919
+ "outputs": [
920
+ {
921
+ "internalType": "bytes32",
922
+ "name": "",
923
+ "type": "bytes32"
924
+ }
925
+ ],
926
+ "stateMutability": "pure",
927
+ "type": "function"
928
+ }
929
+ ]