@zentity/fhevm-contracts 0.1.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 (83) hide show
  1. package/README.md +160 -0
  2. package/abi/ComplianceRules.json +352 -0
  3. package/abi/CompliantERC20.json +493 -0
  4. package/abi/IdentityRegistry.json +712 -0
  5. package/abi/index.d.ts +3 -0
  6. package/abi/index.js +9 -0
  7. package/contracts/ARCHITECTURE.md +66 -0
  8. package/contracts/ARCHITECTURE_EXPLAINER.md +77 -0
  9. package/contracts/compliance/ComplianceRules.sol +255 -0
  10. package/contracts/core/IdentityRegistry.sol +352 -0
  11. package/contracts/interfaces/IIdentityRegistry.sol +226 -0
  12. package/contracts/mocks/.gitkeep +0 -0
  13. package/contracts/tokens/CompliantERC20.sol +379 -0
  14. package/deployments/hardhat/addresses.json +20 -0
  15. package/deployments/localhost/.chainId +1 -0
  16. package/deployments/localhost/ComplianceRules.json +662 -0
  17. package/deployments/localhost/CompliantERC20.json +888 -0
  18. package/deployments/localhost/IdentityRegistry.json +1093 -0
  19. package/deployments/localhost/solcInputs/e36969353329df673b4fae03d39e01c4.json +60 -0
  20. package/deployments/sepolia/.chainId +1 -0
  21. package/deployments/sepolia/.gitkeep +0 -0
  22. package/deployments/sepolia/ComplianceRules.json +662 -0
  23. package/deployments/sepolia/CompliantERC20.json +888 -0
  24. package/deployments/sepolia/IdentityRegistry.json +1093 -0
  25. package/deployments/sepolia/solcInputs/93d280ff0d4e798a18947a9ed6015031.json +60 -0
  26. package/dist/index.d.ts +459 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +135 -0
  29. package/package.json +110 -0
  30. package/typechain-types/@fhevm/index.ts +5 -0
  31. package/typechain-types/@fhevm/solidity/config/ZamaConfig.sol/ZamaConfig.ts +69 -0
  32. package/typechain-types/@fhevm/solidity/config/ZamaConfig.sol/ZamaEthereumConfig.ts +90 -0
  33. package/typechain-types/@fhevm/solidity/config/ZamaConfig.sol/index.ts +5 -0
  34. package/typechain-types/@fhevm/solidity/config/index.ts +5 -0
  35. package/typechain-types/@fhevm/solidity/index.ts +7 -0
  36. package/typechain-types/@fhevm/solidity/lib/FHE.sol/FHE.ts +112 -0
  37. package/typechain-types/@fhevm/solidity/lib/FHE.sol/IKMSVerifier.ts +108 -0
  38. package/typechain-types/@fhevm/solidity/lib/FHE.sol/index.ts +5 -0
  39. package/typechain-types/@fhevm/solidity/lib/Impl.sol/IACL.ts +190 -0
  40. package/typechain-types/@fhevm/solidity/lib/Impl.sol/IFHEVMExecutor.ts +623 -0
  41. package/typechain-types/@fhevm/solidity/lib/Impl.sol/IInputVerifier.ts +90 -0
  42. package/typechain-types/@fhevm/solidity/lib/Impl.sol/index.ts +6 -0
  43. package/typechain-types/@fhevm/solidity/lib/index.ts +7 -0
  44. package/typechain-types/common.ts +131 -0
  45. package/typechain-types/contracts/compliance/ComplianceRules.ts +479 -0
  46. package/typechain-types/contracts/compliance/index.ts +4 -0
  47. package/typechain-types/contracts/core/IdentityRegistry.ts +874 -0
  48. package/typechain-types/contracts/core/index.ts +4 -0
  49. package/typechain-types/contracts/index.ts +11 -0
  50. package/typechain-types/contracts/interfaces/IIdentityRegistry.ts +798 -0
  51. package/typechain-types/contracts/interfaces/index.ts +4 -0
  52. package/typechain-types/contracts/tokens/CompliantERC20.sol/CompliantERC20.ts +572 -0
  53. package/typechain-types/contracts/tokens/CompliantERC20.sol/IComplianceChecker.ts +95 -0
  54. package/typechain-types/contracts/tokens/CompliantERC20.sol/index.ts +5 -0
  55. package/typechain-types/contracts/tokens/index.ts +5 -0
  56. package/typechain-types/factories/@fhevm/index.ts +4 -0
  57. package/typechain-types/factories/@fhevm/solidity/config/ZamaConfig.sol/ZamaConfig__factory.ts +69 -0
  58. package/typechain-types/factories/@fhevm/solidity/config/ZamaConfig.sol/ZamaEthereumConfig__factory.ts +43 -0
  59. package/typechain-types/factories/@fhevm/solidity/config/ZamaConfig.sol/index.ts +5 -0
  60. package/typechain-types/factories/@fhevm/solidity/config/index.ts +4 -0
  61. package/typechain-types/factories/@fhevm/solidity/index.ts +5 -0
  62. package/typechain-types/factories/@fhevm/solidity/lib/FHE.sol/FHE__factory.ts +88 -0
  63. package/typechain-types/factories/@fhevm/solidity/lib/FHE.sol/IKMSVerifier__factory.ts +54 -0
  64. package/typechain-types/factories/@fhevm/solidity/lib/FHE.sol/index.ts +5 -0
  65. package/typechain-types/factories/@fhevm/solidity/lib/Impl.sol/IACL__factory.ts +121 -0
  66. package/typechain-types/factories/@fhevm/solidity/lib/Impl.sol/IFHEVMExecutor__factory.ts +810 -0
  67. package/typechain-types/factories/@fhevm/solidity/lib/Impl.sol/IInputVerifier__factory.ts +32 -0
  68. package/typechain-types/factories/@fhevm/solidity/lib/Impl.sol/index.ts +6 -0
  69. package/typechain-types/factories/@fhevm/solidity/lib/index.ts +5 -0
  70. package/typechain-types/factories/contracts/compliance/ComplianceRules__factory.ts +437 -0
  71. package/typechain-types/factories/contracts/compliance/index.ts +4 -0
  72. package/typechain-types/factories/contracts/core/IdentityRegistry__factory.ts +777 -0
  73. package/typechain-types/factories/contracts/core/index.ts +4 -0
  74. package/typechain-types/factories/contracts/index.ts +7 -0
  75. package/typechain-types/factories/contracts/interfaces/IIdentityRegistry__factory.ts +640 -0
  76. package/typechain-types/factories/contracts/interfaces/index.ts +4 -0
  77. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/CompliantERC20__factory.ts +581 -0
  78. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/IComplianceChecker__factory.ts +44 -0
  79. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/index.ts +5 -0
  80. package/typechain-types/factories/contracts/tokens/index.ts +4 -0
  81. package/typechain-types/factories/index.ts +5 -0
  82. package/typechain-types/hardhat.d.ts +261 -0
  83. package/typechain-types/index.ts +32 -0
@@ -0,0 +1,777 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../common";
12
+ import type {
13
+ IdentityRegistry,
14
+ IdentityRegistryInterface,
15
+ } from "../../../contracts/core/IdentityRegistry";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ stateMutability: "nonpayable",
21
+ type: "constructor",
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: "AccessProhibited",
26
+ type: "error",
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: "AlreadyAttested",
31
+ type: "error",
32
+ },
33
+ {
34
+ inputs: [],
35
+ name: "InvalidOwner",
36
+ type: "error",
37
+ },
38
+ {
39
+ inputs: [],
40
+ name: "NotAttested",
41
+ type: "error",
42
+ },
43
+ {
44
+ inputs: [],
45
+ name: "OnlyOwner",
46
+ type: "error",
47
+ },
48
+ {
49
+ inputs: [],
50
+ name: "OnlyPendingOwner",
51
+ type: "error",
52
+ },
53
+ {
54
+ inputs: [],
55
+ name: "OnlyRegistrar",
56
+ type: "error",
57
+ },
58
+ {
59
+ inputs: [],
60
+ name: "ZamaProtocolUnsupported",
61
+ type: "error",
62
+ },
63
+ {
64
+ anonymous: false,
65
+ inputs: [
66
+ {
67
+ indexed: true,
68
+ internalType: "address",
69
+ name: "user",
70
+ type: "address",
71
+ },
72
+ {
73
+ indexed: true,
74
+ internalType: "address",
75
+ name: "grantee",
76
+ type: "address",
77
+ },
78
+ ],
79
+ name: "AccessGranted",
80
+ type: "event",
81
+ },
82
+ {
83
+ anonymous: false,
84
+ inputs: [
85
+ {
86
+ indexed: true,
87
+ internalType: "address",
88
+ name: "user",
89
+ type: "address",
90
+ },
91
+ {
92
+ indexed: true,
93
+ internalType: "address",
94
+ name: "registrar",
95
+ type: "address",
96
+ },
97
+ ],
98
+ name: "IdentityAttested",
99
+ type: "event",
100
+ },
101
+ {
102
+ anonymous: false,
103
+ inputs: [
104
+ {
105
+ indexed: true,
106
+ internalType: "address",
107
+ name: "user",
108
+ type: "address",
109
+ },
110
+ {
111
+ indexed: true,
112
+ internalType: "address",
113
+ name: "registrar",
114
+ type: "address",
115
+ },
116
+ {
117
+ indexed: true,
118
+ internalType: "uint256",
119
+ name: "attestationId",
120
+ type: "uint256",
121
+ },
122
+ {
123
+ indexed: false,
124
+ internalType: "uint256",
125
+ name: "timestamp",
126
+ type: "uint256",
127
+ },
128
+ ],
129
+ name: "IdentityAttestedDetailed",
130
+ type: "event",
131
+ },
132
+ {
133
+ anonymous: false,
134
+ inputs: [
135
+ {
136
+ indexed: true,
137
+ internalType: "address",
138
+ name: "user",
139
+ type: "address",
140
+ },
141
+ ],
142
+ name: "IdentityRevoked",
143
+ type: "event",
144
+ },
145
+ {
146
+ anonymous: false,
147
+ inputs: [
148
+ {
149
+ indexed: true,
150
+ internalType: "address",
151
+ name: "user",
152
+ type: "address",
153
+ },
154
+ {
155
+ indexed: true,
156
+ internalType: "address",
157
+ name: "registrar",
158
+ type: "address",
159
+ },
160
+ {
161
+ indexed: true,
162
+ internalType: "uint256",
163
+ name: "attestationId",
164
+ type: "uint256",
165
+ },
166
+ {
167
+ indexed: false,
168
+ internalType: "uint256",
169
+ name: "timestamp",
170
+ type: "uint256",
171
+ },
172
+ ],
173
+ name: "IdentityRevokedDetailed",
174
+ type: "event",
175
+ },
176
+ {
177
+ anonymous: false,
178
+ inputs: [
179
+ {
180
+ indexed: true,
181
+ internalType: "address",
182
+ name: "currentOwner",
183
+ type: "address",
184
+ },
185
+ {
186
+ indexed: true,
187
+ internalType: "address",
188
+ name: "pendingOwner",
189
+ type: "address",
190
+ },
191
+ ],
192
+ name: "OwnershipTransferStarted",
193
+ type: "event",
194
+ },
195
+ {
196
+ anonymous: false,
197
+ inputs: [
198
+ {
199
+ indexed: true,
200
+ internalType: "address",
201
+ name: "previousOwner",
202
+ type: "address",
203
+ },
204
+ {
205
+ indexed: true,
206
+ internalType: "address",
207
+ name: "newOwner",
208
+ type: "address",
209
+ },
210
+ ],
211
+ name: "OwnershipTransferred",
212
+ type: "event",
213
+ },
214
+ {
215
+ anonymous: false,
216
+ inputs: [
217
+ {
218
+ indexed: true,
219
+ internalType: "address",
220
+ name: "registrar",
221
+ type: "address",
222
+ },
223
+ ],
224
+ name: "RegistrarAdded",
225
+ type: "event",
226
+ },
227
+ {
228
+ anonymous: false,
229
+ inputs: [
230
+ {
231
+ indexed: true,
232
+ internalType: "address",
233
+ name: "registrar",
234
+ type: "address",
235
+ },
236
+ ],
237
+ name: "RegistrarRemoved",
238
+ type: "event",
239
+ },
240
+ {
241
+ inputs: [],
242
+ name: "acceptOwnership",
243
+ outputs: [],
244
+ stateMutability: "nonpayable",
245
+ type: "function",
246
+ },
247
+ {
248
+ inputs: [
249
+ {
250
+ internalType: "address",
251
+ name: "registrar",
252
+ type: "address",
253
+ },
254
+ ],
255
+ name: "addRegistrar",
256
+ outputs: [],
257
+ stateMutability: "nonpayable",
258
+ type: "function",
259
+ },
260
+ {
261
+ inputs: [
262
+ {
263
+ internalType: "address",
264
+ name: "user",
265
+ type: "address",
266
+ },
267
+ {
268
+ internalType: "externalEuint8",
269
+ name: "encBirthYearOffset",
270
+ type: "bytes32",
271
+ },
272
+ {
273
+ internalType: "externalEuint16",
274
+ name: "encCountryCode",
275
+ type: "bytes32",
276
+ },
277
+ {
278
+ internalType: "externalEuint8",
279
+ name: "encKycLevel",
280
+ type: "bytes32",
281
+ },
282
+ {
283
+ internalType: "externalEbool",
284
+ name: "encIsBlacklisted",
285
+ type: "bytes32",
286
+ },
287
+ {
288
+ internalType: "bytes",
289
+ name: "inputProof",
290
+ type: "bytes",
291
+ },
292
+ ],
293
+ name: "attestIdentity",
294
+ outputs: [],
295
+ stateMutability: "nonpayable",
296
+ type: "function",
297
+ },
298
+ {
299
+ inputs: [
300
+ {
301
+ internalType: "address",
302
+ name: "user",
303
+ type: "address",
304
+ },
305
+ ],
306
+ name: "attestationTimestamp",
307
+ outputs: [
308
+ {
309
+ internalType: "uint256",
310
+ name: "timestamp",
311
+ type: "uint256",
312
+ },
313
+ ],
314
+ stateMutability: "view",
315
+ type: "function",
316
+ },
317
+ {
318
+ inputs: [],
319
+ name: "confidentialProtocolId",
320
+ outputs: [
321
+ {
322
+ internalType: "uint256",
323
+ name: "",
324
+ type: "uint256",
325
+ },
326
+ ],
327
+ stateMutability: "view",
328
+ type: "function",
329
+ },
330
+ {
331
+ inputs: [
332
+ {
333
+ internalType: "address",
334
+ name: "user",
335
+ type: "address",
336
+ },
337
+ ],
338
+ name: "currentAttestationId",
339
+ outputs: [
340
+ {
341
+ internalType: "uint256",
342
+ name: "attestationId",
343
+ type: "uint256",
344
+ },
345
+ ],
346
+ stateMutability: "view",
347
+ type: "function",
348
+ },
349
+ {
350
+ inputs: [
351
+ {
352
+ internalType: "address",
353
+ name: "user",
354
+ type: "address",
355
+ },
356
+ {
357
+ internalType: "uint256",
358
+ name: "attestationId",
359
+ type: "uint256",
360
+ },
361
+ ],
362
+ name: "getAttestationMetadata",
363
+ outputs: [
364
+ {
365
+ internalType: "uint256",
366
+ name: "timestamp",
367
+ type: "uint256",
368
+ },
369
+ {
370
+ internalType: "uint256",
371
+ name: "revokedAt",
372
+ type: "uint256",
373
+ },
374
+ {
375
+ internalType: "address",
376
+ name: "registrar",
377
+ type: "address",
378
+ },
379
+ ],
380
+ stateMutability: "view",
381
+ type: "function",
382
+ },
383
+ {
384
+ inputs: [
385
+ {
386
+ internalType: "address",
387
+ name: "user",
388
+ type: "address",
389
+ },
390
+ ],
391
+ name: "getBirthYearOffset",
392
+ outputs: [
393
+ {
394
+ internalType: "euint8",
395
+ name: "",
396
+ type: "bytes32",
397
+ },
398
+ ],
399
+ stateMutability: "view",
400
+ type: "function",
401
+ },
402
+ {
403
+ inputs: [
404
+ {
405
+ internalType: "address",
406
+ name: "user",
407
+ type: "address",
408
+ },
409
+ ],
410
+ name: "getBlacklistResult",
411
+ outputs: [
412
+ {
413
+ internalType: "ebool",
414
+ name: "",
415
+ type: "bytes32",
416
+ },
417
+ ],
418
+ stateMutability: "view",
419
+ type: "function",
420
+ },
421
+ {
422
+ inputs: [
423
+ {
424
+ internalType: "address",
425
+ name: "user",
426
+ type: "address",
427
+ },
428
+ ],
429
+ name: "getBlacklistStatus",
430
+ outputs: [
431
+ {
432
+ internalType: "ebool",
433
+ name: "",
434
+ type: "bytes32",
435
+ },
436
+ ],
437
+ stateMutability: "view",
438
+ type: "function",
439
+ },
440
+ {
441
+ inputs: [
442
+ {
443
+ internalType: "address",
444
+ name: "user",
445
+ type: "address",
446
+ },
447
+ ],
448
+ name: "getCountryCode",
449
+ outputs: [
450
+ {
451
+ internalType: "euint16",
452
+ name: "",
453
+ type: "bytes32",
454
+ },
455
+ ],
456
+ stateMutability: "view",
457
+ type: "function",
458
+ },
459
+ {
460
+ inputs: [
461
+ {
462
+ internalType: "address",
463
+ name: "user",
464
+ type: "address",
465
+ },
466
+ {
467
+ internalType: "uint16",
468
+ name: "country",
469
+ type: "uint16",
470
+ },
471
+ ],
472
+ name: "getCountryResult",
473
+ outputs: [
474
+ {
475
+ internalType: "ebool",
476
+ name: "",
477
+ type: "bytes32",
478
+ },
479
+ ],
480
+ stateMutability: "view",
481
+ type: "function",
482
+ },
483
+ {
484
+ inputs: [
485
+ {
486
+ internalType: "address",
487
+ name: "user",
488
+ type: "address",
489
+ },
490
+ ],
491
+ name: "getKycLevel",
492
+ outputs: [
493
+ {
494
+ internalType: "euint8",
495
+ name: "",
496
+ type: "bytes32",
497
+ },
498
+ ],
499
+ stateMutability: "view",
500
+ type: "function",
501
+ },
502
+ {
503
+ inputs: [
504
+ {
505
+ internalType: "address",
506
+ name: "user",
507
+ type: "address",
508
+ },
509
+ {
510
+ internalType: "uint8",
511
+ name: "minLevel",
512
+ type: "uint8",
513
+ },
514
+ ],
515
+ name: "getKycLevelResult",
516
+ outputs: [
517
+ {
518
+ internalType: "ebool",
519
+ name: "",
520
+ type: "bytes32",
521
+ },
522
+ ],
523
+ stateMutability: "view",
524
+ type: "function",
525
+ },
526
+ {
527
+ inputs: [
528
+ {
529
+ internalType: "address",
530
+ name: "grantee",
531
+ type: "address",
532
+ },
533
+ ],
534
+ name: "grantAccessTo",
535
+ outputs: [],
536
+ stateMutability: "nonpayable",
537
+ type: "function",
538
+ },
539
+ {
540
+ inputs: [
541
+ {
542
+ internalType: "address",
543
+ name: "user",
544
+ type: "address",
545
+ },
546
+ {
547
+ internalType: "uint8",
548
+ name: "minLevel",
549
+ type: "uint8",
550
+ },
551
+ ],
552
+ name: "hasMinKycLevel",
553
+ outputs: [
554
+ {
555
+ internalType: "ebool",
556
+ name: "",
557
+ type: "bytes32",
558
+ },
559
+ ],
560
+ stateMutability: "nonpayable",
561
+ type: "function",
562
+ },
563
+ {
564
+ inputs: [
565
+ {
566
+ internalType: "address",
567
+ name: "user",
568
+ type: "address",
569
+ },
570
+ ],
571
+ name: "isAttested",
572
+ outputs: [
573
+ {
574
+ internalType: "bool",
575
+ name: "",
576
+ type: "bool",
577
+ },
578
+ ],
579
+ stateMutability: "view",
580
+ type: "function",
581
+ },
582
+ {
583
+ inputs: [
584
+ {
585
+ internalType: "address",
586
+ name: "user",
587
+ type: "address",
588
+ },
589
+ {
590
+ internalType: "uint16",
591
+ name: "country",
592
+ type: "uint16",
593
+ },
594
+ ],
595
+ name: "isFromCountry",
596
+ outputs: [
597
+ {
598
+ internalType: "ebool",
599
+ name: "",
600
+ type: "bytes32",
601
+ },
602
+ ],
603
+ stateMutability: "nonpayable",
604
+ type: "function",
605
+ },
606
+ {
607
+ inputs: [
608
+ {
609
+ internalType: "address",
610
+ name: "user",
611
+ type: "address",
612
+ },
613
+ ],
614
+ name: "isNotBlacklisted",
615
+ outputs: [
616
+ {
617
+ internalType: "ebool",
618
+ name: "",
619
+ type: "bytes32",
620
+ },
621
+ ],
622
+ stateMutability: "nonpayable",
623
+ type: "function",
624
+ },
625
+ {
626
+ inputs: [
627
+ {
628
+ internalType: "address",
629
+ name: "user",
630
+ type: "address",
631
+ },
632
+ ],
633
+ name: "latestAttestationId",
634
+ outputs: [
635
+ {
636
+ internalType: "uint256",
637
+ name: "attestationId",
638
+ type: "uint256",
639
+ },
640
+ ],
641
+ stateMutability: "view",
642
+ type: "function",
643
+ },
644
+ {
645
+ inputs: [],
646
+ name: "owner",
647
+ outputs: [
648
+ {
649
+ internalType: "address",
650
+ name: "",
651
+ type: "address",
652
+ },
653
+ ],
654
+ stateMutability: "view",
655
+ type: "function",
656
+ },
657
+ {
658
+ inputs: [],
659
+ name: "pendingOwner",
660
+ outputs: [
661
+ {
662
+ internalType: "address",
663
+ name: "",
664
+ type: "address",
665
+ },
666
+ ],
667
+ stateMutability: "view",
668
+ type: "function",
669
+ },
670
+ {
671
+ inputs: [
672
+ {
673
+ internalType: "address",
674
+ name: "registrar",
675
+ type: "address",
676
+ },
677
+ ],
678
+ name: "registrars",
679
+ outputs: [
680
+ {
681
+ internalType: "bool",
682
+ name: "authorized",
683
+ type: "bool",
684
+ },
685
+ ],
686
+ stateMutability: "view",
687
+ type: "function",
688
+ },
689
+ {
690
+ inputs: [
691
+ {
692
+ internalType: "address",
693
+ name: "registrar",
694
+ type: "address",
695
+ },
696
+ ],
697
+ name: "removeRegistrar",
698
+ outputs: [],
699
+ stateMutability: "nonpayable",
700
+ type: "function",
701
+ },
702
+ {
703
+ inputs: [
704
+ {
705
+ internalType: "address",
706
+ name: "user",
707
+ type: "address",
708
+ },
709
+ ],
710
+ name: "revokeIdentity",
711
+ outputs: [],
712
+ stateMutability: "nonpayable",
713
+ type: "function",
714
+ },
715
+ {
716
+ inputs: [
717
+ {
718
+ internalType: "address",
719
+ name: "newOwner",
720
+ type: "address",
721
+ },
722
+ ],
723
+ name: "transferOwnership",
724
+ outputs: [],
725
+ stateMutability: "nonpayable",
726
+ type: "function",
727
+ },
728
+ ] as const;
729
+
730
+ const _bytecode =
731
+ "0x608060405234801561000f575f5ffd5b506100c461001b61011c565b80517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e464970080546001600160a01b03199081166001600160a01b039384161790915560208301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497018054831691841691909117905560408301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497028054909216921691909117905550565b600980546001600160a01b031916339081179091555f818152600b6020526040808220805460ff19166001179055517f5c38ce8ff8864a9d2a5ff5aec72a88770e38d181dea59173fde1247cdaa1aea39190a261028b565b604080516060810182525f808252602082018190529181019190915246600103610175575060408051606080820183525f8083526020808401829052928401819052835191820184528082529181018290529182015290565b4662aa36a7036101f4575060408051606080820183525f8083526020808401829052928401528251908101835273f0ffdc93b7e186bc2f8cb3daa75d86d1930a433d81527392c920834ec8941d2c77d188936e1f7a6f49c1279181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b46617a6903610272575060408051606080820183525f808352602080840182905292840152825190810183527350157cffd6bbfa2dece204a89ec419c23ef5755d815273e3a9105a3a932253a70f126eb1e3b589c643dd249181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b6040516373cac13b60e01b815260040160405180910390fd5b611a5c806102985f395ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c80638cb83540116100d9578063b757ce0e11610093578063ceb247971161006e578063ceb24797146103f4578063e30c397814610407578063f2fde38b1461041a578063fdd2132b1461042d575f5ffd5b8063b757ce0e14610359578063ba904eed146103c2578063c736a433146103d5575f5ffd5b80638cb83540146102c35780638da5cb5b146102e257806391b497551461030d578063af92a69314610320578063b3ce9b3d14610333578063b745e8b114610346575f5ffd5b806358d2b4a5116101445780637d1c8e171161011f5780637d1c8e171461027357806381ba6ce2146102865780638927b0301461029957806389aeca76146102a1575f5ffd5b806358d2b4a51461023957806368746e751461024c57806379ba50971461026b575f5ffd5b80630ebddd171461018b578063190258ad146101a057806326a0e06c146101c65780632afc1eeb146101d95780633c23afba146101ec57806355ab78f514610226575b5f5ffd5b61019e61019936600461177e565b610440565b005b6101b36101ae36600461177e565b6105f7565b6040519081526020015b60405180910390f35b6101b36101d4366004611797565b610663565b6101b36101e7366004611797565b6106d4565b6102166101fa36600461177e565b6001600160a01b03165f90815260056020526040902054151590565b60405190151581526020016101bd565b61019e61023436600461177e565b6107d4565b6101b361024736600461177e565b6108a2565b6101b361025a36600461177e565b60066020525f908152604090205481565b61019e610932565b61019e6102813660046117d1565b6109b9565b6101b361029436600461177e565b610ce9565b6101b3610d79565b6102166102af36600461177e565b600b6020525f908152604090205460ff1681565b6101b36102d136600461177e565b60046020525f908152604090205481565b6009546102f5906001600160a01b031681565b6040516001600160a01b0390911681526020016101bd565b6101b361031b366004611875565b610d87565b61019e61032e36600461177e565b610e43565b6101b361034136600461177e565b610eb9565b6101b361035436600461177e565b610f49565b61039e6103673660046118a5565b6001600160a01b039182165f9081526007602090815260408083209383529290522080546001820154600290920154909391921690565b6040805193845260208401929092526001600160a01b0316908201526060016101bd565b61019e6103d036600461177e565b61103d565b6101b36103e336600461177e565b60056020525f908152604090205481565b6101b361040236600461177e565b6110b0565b600a546102f5906001600160a01b031681565b61019e61042836600461177e565b611140565b6101b361043b366004611875565b6111e3565b335f908152600b602052604090205460ff1661046f57604051632fed761f60e01b815260040160405180910390fd5b6001600160a01b0381165f90815260056020526040812054908190036104a85760405163099efb8960e41b815260040160405180910390fd5b6104b15f6111ff565b6001600160a01b0383165f908152602081905260408120919091556104d59061120e565b6001600160a01b0383165f908152600160205260408120919091556104f9906111ff565b6001600160a01b0383165f9081526002602052604081209190915561051d9061121e565b6001600160a01b0383165f9081526003602090815260408083209390935560048152828220829055600581528282208290556007815282822084835290529081206001810154909103610571574260018201555b6040516001600160a01b038416907fccf550e579fbeb7d56da9a0175f8d4526535cab139e73b592516f1916d4075dd905f90a281336001600160a01b0316846001600160a01b03167f3d6883511c0cbeaa2a0e9df1b5c9ec5b0b3af47e1ddb09e4582c62e935ac1bd3426040516105ea91815260200190565b60405180910390a4505050565b5f5f8260025f60405160200161060f939291906118cd565b60408051601f1981840301815291815281516020928301205f818152600890935291205490915061063f81611239565b61065c57604051631a6bd1fd60e01b815260040160405180910390fd5b9392505050565b5f5f835f8460ff1660405160200161067d939291906118cd565b60408051601f1981840301815291815281516020928301205f81815260089093529120549091506106ad81611239565b6106ca57604051631a6bd1fd60e01b815260040160405180910390fd5b9150505b92915050565b6001600160a01b0382165f90815260046020526040812054810361070b5760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0383165f9081526002602052604090205461072c90611239565b61074957604051631a6bd1fd60e01b815260040160405180910390fd5b6001600160a01b0383165f908152600260205260408120546107739061076e856111ff565b611244565b90505f845f8560ff1660405160200161078e939291906118cd565b60408051601f1981840301815291815281516020928301205f8181526008909352912083905590506107bf82611272565b506107ca8233611281565b5090949350505050565b335f9081526004602052604081205490036108025760405163099efb8960e41b815260040160405180910390fd5b335f9081526020819052604090205461081b9082611281565b50335f908152600160205260409020546108359082611281565b50335f9081526002602052604090205461084f9082611281565b50335f908152600360205260409020546108699082611281565b506040516001600160a01b0382169033907f9f520b3bfc56d06f7065d10b4683b3f57ac8895d5026cd176dee95ce1454cb8d905f90a350565b6001600160a01b0381165f9081526004602052604081205481036108d95760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0382165f908152600360205260409020546108fa90611239565b61091757604051631a6bd1fd60e01b815260040160405180910390fd5b506001600160a01b03165f9081526003602052604090205490565b600a546001600160a01b0316331461095d576040516303c25d1960e61b815260040160405180910390fd5b60098054600a80546001600160a01b03198084166001600160a01b038381169182179096559116909155604051929091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a350565b335f908152600b602052604090205460ff166109e857604051632fed761f60e01b815260040160405180910390fd5b6001600160a01b0387165f9081526005602052604090205415610a1e576040516335d9080560e01b815260040160405180910390fd5b5f610a5e8784848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061129392505050565b90505f610aa08785858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506112a092505050565b90505f610ae28786868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061129392505050565b90505f610b248787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506112ad92505050565b6001600160a01b038c165f908152602081815260408083208890556001825280832087905560028252808320869055600390915290208190559050610b6884611272565b50610b7283611272565b50610b7c82611272565b50610b8681611272565b50610b91848c611281565b50610b9c838c611281565b50610ba7828c611281565b50610bb2818c611281565b506001600160a01b038b165f90815260066020526040812054610bd6906001611904565b6001600160a01b038d81165f8181526006602090815260408083208690556005825280832086905580516060810182524280825281840185815233838501818152888852600787528588208b8952875285882094518555915160018501559051600290930180546001600160a01b03191693909816929092179096558484526004909252808320949094559251939450919290917f80e69e903f208f7deaa7841fb5c747e52500a1dd84961857e29cd831bdd90c0b91a380336001600160a01b03168d6001600160a01b03167f3c29af9eea4975bcf019c02a4de64f71debe7fa82dc5974c28bc485fe4a7ba1d42604051610cd391815260200190565b60405180910390a4505050505050505050505050565b6001600160a01b0381165f908152600460205260408120548103610d205760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0382165f90815260016020526040902054610d4190611239565b610d5e57604051631a6bd1fd60e01b815260040160405180910390fd5b506001600160a01b03165f9081526001602052604090205490565b5f610d826112b9565b905090565b6001600160a01b0382165f908152600460205260408120548103610dbe5760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0383165f90815260016020526040902054610ddf90611239565b610dfc57604051631a6bd1fd60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260016020526040812054610e2690610e218561120e565b6112ed565b90505f8460018561ffff1660405160200161078e939291906118cd565b6009546001600160a01b03163314610e6e57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381165f818152600b6020526040808220805460ff19166001179055517f5c38ce8ff8864a9d2a5ff5aec72a88770e38d181dea59173fde1247cdaa1aea39190a250565b6001600160a01b0381165f908152600460205260408120548103610ef05760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0382165f90815260208190526040902054610f1190611239565b610f2e57604051631a6bd1fd60e01b815260040160405180910390fd5b506001600160a01b03165f9081526020819052604090205490565b6001600160a01b0381165f908152600460205260408120548103610f805760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0382165f90815260036020526040902054610fa190611239565b610fbe57604051631a6bd1fd60e01b815260040160405180910390fd5b6001600160a01b0382165f90815260036020526040812054610fdf9061131b565b90505f8360025f604051602001610ff8939291906118cd565b60408051601f1981840301815291815281516020928301205f81815260089093529120839055905061102982611272565b506110348233611281565b50909392505050565b6009546001600160a01b0316331461106857604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381165f818152600b6020526040808220805460ff19169055517f81cb97a294b3ff5f91ef4048b3173c7f8f6943d9750add2071199061165e5f579190a250565b6001600160a01b0381165f9081526004602052604081205481036110e75760405163099efb8960e41b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461110890611239565b61112557604051631a6bd1fd60e01b815260040160405180910390fd5b506001600160a01b03165f9081526002602052604090205490565b6009546001600160a01b0316331461116b57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038116611192576040516349e27cff60e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b03838116918217909255600954604051919216907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700905f90a350565b5f5f8360018461ffff1660405160200161067d939291906118cd565b5f6106ce8260ff166002611325565b5f6106ce8261ffff166003611325565b5f6106ce8261122d575f611230565b60015b60ff165f611325565b5f6106ce82336113bc565b5f82611256576112535f6111ff565b92505b81611267576112645f6111ff565b91505b61065c83835f611440565b5f61127d82306114fd565b5090565b5f61128c83836114fd565b5090919050565b5f61065c83836002611573565b5f61065c83836003611573565b5f61065c83835f611573565b5f466001036112c85750600190565b4662aa36a7036112d9575061271190565b46617a69036112e857505f1990565b505f90565b5f826112ff576112fc5f61120e565b92505b816113105761130d5f61120e565b91505b61065c83835f61166d565b5f6106ce826116e4565b5f5160206119e75f395f51905f5254604051639cd07acb60e01b81525f915f516020611a075f395f51905f52916001600160a01b0390911690639cd07acb906113749087908790600401611943565b6020604051808303815f875af1158015611390573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b49190611957565b949350505050565b5f805f516020611a075f395f51905f5280546040516382027b6d60e01b8152600481018790526001600160a01b0386811660248301529293509116906382027b6d90604401602060405180830381865afa15801561141c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b4919061196e565b5f5f82156114535750600160f81b611456565b505f5b5f5160206119e75f395f51905f5254604051631391547f60e01b815260048101879052602481018690526001600160f81b0319831660448201525f516020611a075f395f51905f52916001600160a01b031690631391547f906064015b6020604051808303815f875af11580156114cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f39190611957565b9695505050505050565b5f5f516020611a075f395f51905f528054604051635ca4b5b160e11b8152600481018690526001600160a01b03858116602483015292935091169063b9496b62906044015f604051808303815f87803b158015611558575f5ffd5b505af115801561156a573d5f5f3e3d5ffd5b50505050505050565b5f5160206119e75f395f51905f525460405163045fc19560e11b81525f915f516020611a075f395f51905f52916001600160a01b03909116906308bf832a906115c690889033908990899060040161198d565b6020604051808303815f875af11580156115e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116069190611957565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b15801561164f575f5ffd5b505af1158015611661573d5f5f3e3d5ffd5b50505050509392505050565b5f5f82156116805750600160f81b611683565b505f5b5f5160206119e75f395f51905f525460405163f77f3f1d60e01b815260048101879052602481018690526001600160f81b0319831660448201525f516020611a075f395f51905f52916001600160a01b03169063f77f3f1d906064016114b3565b5f805f516020611a075f395f51905f526001810154604051630f51ccfb60e41b8152600481018690529192506001600160a01b03169063f51ccfb0906024016020604051808303815f875af115801561173f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065c9190611957565b80356001600160a01b0381168114611779575f5ffd5b919050565b5f6020828403121561178e575f5ffd5b61065c82611763565b5f5f604083850312156117a8575f5ffd5b6117b183611763565b9150602083013560ff811681146117c6575f5ffd5b809150509250929050565b5f5f5f5f5f5f5f60c0888a0312156117e7575f5ffd5b6117f088611763565b96506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611827575f5ffd5b8801601f81018a13611837575f5ffd5b803567ffffffffffffffff81111561184d575f5ffd5b8a602082840101111561185e575f5ffd5b602082019350809250505092959891949750929550565b5f5f60408385031215611886575f5ffd5b61188f83611763565b9150602083013561ffff811681146117c6575f5ffd5b5f5f604083850312156118b6575f5ffd5b6118bf83611763565b946020939093013593505050565b60609390931b6bffffffffffffffffffffffff1916835260f89190911b6001600160f81b0319166014830152601582015260350190565b808201808211156106ce57634e487b7160e01b5f52601160045260245ffd5b6054811061193f57634e487b7160e01b5f52602160045260245ffd5b9052565b8281526040810161065c6020830184611923565b5f60208284031215611967575f5ffd5b5051919050565b5f6020828403121561197e575f5ffd5b8151801515811461065c575f5ffd5b84815260018060a01b0384166020820152608060408201525f8351806080840152806020860160a085015e5f60a0828501015260a0601f19601f8301168401019150506119dd6060830184611923565b9594505050505056fe9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497019e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e4649700a264697066735822122044c4ed776fbf4c58951a0d2640be6e95fa2821945c40492b4e8f9e2a6fbe3d9c64736f6c634300081b0033";
732
+
733
+ type IdentityRegistryConstructorParams =
734
+ | [signer?: Signer]
735
+ | ConstructorParameters<typeof ContractFactory>;
736
+
737
+ const isSuperArgs = (
738
+ xs: IdentityRegistryConstructorParams
739
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
740
+
741
+ export class IdentityRegistry__factory extends ContractFactory {
742
+ constructor(...args: IdentityRegistryConstructorParams) {
743
+ if (isSuperArgs(args)) {
744
+ super(...args);
745
+ } else {
746
+ super(_abi, _bytecode, args[0]);
747
+ }
748
+ }
749
+
750
+ override getDeployTransaction(
751
+ overrides?: NonPayableOverrides & { from?: string }
752
+ ): Promise<ContractDeployTransaction> {
753
+ return super.getDeployTransaction(overrides || {});
754
+ }
755
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
756
+ return super.deploy(overrides || {}) as Promise<
757
+ IdentityRegistry & {
758
+ deploymentTransaction(): ContractTransactionResponse;
759
+ }
760
+ >;
761
+ }
762
+ override connect(runner: ContractRunner | null): IdentityRegistry__factory {
763
+ return super.connect(runner) as IdentityRegistry__factory;
764
+ }
765
+
766
+ static readonly bytecode = _bytecode;
767
+ static readonly abi = _abi;
768
+ static createInterface(): IdentityRegistryInterface {
769
+ return new Interface(_abi) as IdentityRegistryInterface;
770
+ }
771
+ static connect(
772
+ address: string,
773
+ runner?: ContractRunner | null
774
+ ): IdentityRegistry {
775
+ return new Contract(address, _abi, runner) as unknown as IdentityRegistry;
776
+ }
777
+ }