@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,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { IdentityRegistry__factory } from "./IdentityRegistry__factory";
@@ -0,0 +1,7 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as compliance from "./compliance";
5
+ export * as core from "./core";
6
+ export * as interfaces from "./interfaces";
7
+ export * as tokens from "./tokens";
@@ -0,0 +1,640 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Interface, type ContractRunner } from "ethers";
6
+ import type {
7
+ IIdentityRegistry,
8
+ IIdentityRegistryInterface,
9
+ } from "../../../contracts/interfaces/IIdentityRegistry";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [],
14
+ name: "AlreadyAttested",
15
+ type: "error",
16
+ },
17
+ {
18
+ inputs: [],
19
+ name: "InvalidOwner",
20
+ type: "error",
21
+ },
22
+ {
23
+ inputs: [],
24
+ name: "NotAttested",
25
+ type: "error",
26
+ },
27
+ {
28
+ inputs: [],
29
+ name: "OnlyOwner",
30
+ type: "error",
31
+ },
32
+ {
33
+ inputs: [],
34
+ name: "OnlyPendingOwner",
35
+ type: "error",
36
+ },
37
+ {
38
+ inputs: [],
39
+ name: "OnlyRegistrar",
40
+ type: "error",
41
+ },
42
+ {
43
+ anonymous: false,
44
+ inputs: [
45
+ {
46
+ indexed: true,
47
+ internalType: "address",
48
+ name: "user",
49
+ type: "address",
50
+ },
51
+ {
52
+ indexed: true,
53
+ internalType: "address",
54
+ name: "grantee",
55
+ type: "address",
56
+ },
57
+ ],
58
+ name: "AccessGranted",
59
+ type: "event",
60
+ },
61
+ {
62
+ anonymous: false,
63
+ inputs: [
64
+ {
65
+ indexed: true,
66
+ internalType: "address",
67
+ name: "user",
68
+ type: "address",
69
+ },
70
+ {
71
+ indexed: true,
72
+ internalType: "address",
73
+ name: "registrar",
74
+ type: "address",
75
+ },
76
+ ],
77
+ name: "IdentityAttested",
78
+ type: "event",
79
+ },
80
+ {
81
+ anonymous: false,
82
+ inputs: [
83
+ {
84
+ indexed: true,
85
+ internalType: "address",
86
+ name: "user",
87
+ type: "address",
88
+ },
89
+ {
90
+ indexed: true,
91
+ internalType: "address",
92
+ name: "registrar",
93
+ type: "address",
94
+ },
95
+ {
96
+ indexed: true,
97
+ internalType: "uint256",
98
+ name: "attestationId",
99
+ type: "uint256",
100
+ },
101
+ {
102
+ indexed: false,
103
+ internalType: "uint256",
104
+ name: "timestamp",
105
+ type: "uint256",
106
+ },
107
+ ],
108
+ name: "IdentityAttestedDetailed",
109
+ type: "event",
110
+ },
111
+ {
112
+ anonymous: false,
113
+ inputs: [
114
+ {
115
+ indexed: true,
116
+ internalType: "address",
117
+ name: "user",
118
+ type: "address",
119
+ },
120
+ ],
121
+ name: "IdentityRevoked",
122
+ type: "event",
123
+ },
124
+ {
125
+ anonymous: false,
126
+ inputs: [
127
+ {
128
+ indexed: true,
129
+ internalType: "address",
130
+ name: "user",
131
+ type: "address",
132
+ },
133
+ {
134
+ indexed: true,
135
+ internalType: "address",
136
+ name: "registrar",
137
+ type: "address",
138
+ },
139
+ {
140
+ indexed: true,
141
+ internalType: "uint256",
142
+ name: "attestationId",
143
+ type: "uint256",
144
+ },
145
+ {
146
+ indexed: false,
147
+ internalType: "uint256",
148
+ name: "timestamp",
149
+ type: "uint256",
150
+ },
151
+ ],
152
+ name: "IdentityRevokedDetailed",
153
+ type: "event",
154
+ },
155
+ {
156
+ anonymous: false,
157
+ inputs: [
158
+ {
159
+ indexed: true,
160
+ internalType: "address",
161
+ name: "currentOwner",
162
+ type: "address",
163
+ },
164
+ {
165
+ indexed: true,
166
+ internalType: "address",
167
+ name: "pendingOwner",
168
+ type: "address",
169
+ },
170
+ ],
171
+ name: "OwnershipTransferStarted",
172
+ type: "event",
173
+ },
174
+ {
175
+ anonymous: false,
176
+ inputs: [
177
+ {
178
+ indexed: true,
179
+ internalType: "address",
180
+ name: "previousOwner",
181
+ type: "address",
182
+ },
183
+ {
184
+ indexed: true,
185
+ internalType: "address",
186
+ name: "newOwner",
187
+ type: "address",
188
+ },
189
+ ],
190
+ name: "OwnershipTransferred",
191
+ type: "event",
192
+ },
193
+ {
194
+ anonymous: false,
195
+ inputs: [
196
+ {
197
+ indexed: true,
198
+ internalType: "address",
199
+ name: "registrar",
200
+ type: "address",
201
+ },
202
+ ],
203
+ name: "RegistrarAdded",
204
+ type: "event",
205
+ },
206
+ {
207
+ anonymous: false,
208
+ inputs: [
209
+ {
210
+ indexed: true,
211
+ internalType: "address",
212
+ name: "registrar",
213
+ type: "address",
214
+ },
215
+ ],
216
+ name: "RegistrarRemoved",
217
+ type: "event",
218
+ },
219
+ {
220
+ inputs: [],
221
+ name: "acceptOwnership",
222
+ outputs: [],
223
+ stateMutability: "nonpayable",
224
+ type: "function",
225
+ },
226
+ {
227
+ inputs: [
228
+ {
229
+ internalType: "address",
230
+ name: "registrar",
231
+ type: "address",
232
+ },
233
+ ],
234
+ name: "addRegistrar",
235
+ outputs: [],
236
+ stateMutability: "nonpayable",
237
+ type: "function",
238
+ },
239
+ {
240
+ inputs: [
241
+ {
242
+ internalType: "address",
243
+ name: "user",
244
+ type: "address",
245
+ },
246
+ {
247
+ internalType: "externalEuint8",
248
+ name: "encBirthYearOffset",
249
+ type: "bytes32",
250
+ },
251
+ {
252
+ internalType: "externalEuint16",
253
+ name: "encCountryCode",
254
+ type: "bytes32",
255
+ },
256
+ {
257
+ internalType: "externalEuint8",
258
+ name: "encKycLevel",
259
+ type: "bytes32",
260
+ },
261
+ {
262
+ internalType: "externalEbool",
263
+ name: "encIsBlacklisted",
264
+ type: "bytes32",
265
+ },
266
+ {
267
+ internalType: "bytes",
268
+ name: "inputProof",
269
+ type: "bytes",
270
+ },
271
+ ],
272
+ name: "attestIdentity",
273
+ outputs: [],
274
+ stateMutability: "nonpayable",
275
+ type: "function",
276
+ },
277
+ {
278
+ inputs: [
279
+ {
280
+ internalType: "address",
281
+ name: "user",
282
+ type: "address",
283
+ },
284
+ ],
285
+ name: "attestationTimestamp",
286
+ outputs: [
287
+ {
288
+ internalType: "uint256",
289
+ name: "",
290
+ type: "uint256",
291
+ },
292
+ ],
293
+ stateMutability: "view",
294
+ type: "function",
295
+ },
296
+ {
297
+ inputs: [
298
+ {
299
+ internalType: "address",
300
+ name: "user",
301
+ type: "address",
302
+ },
303
+ ],
304
+ name: "currentAttestationId",
305
+ outputs: [
306
+ {
307
+ internalType: "uint256",
308
+ name: "",
309
+ type: "uint256",
310
+ },
311
+ ],
312
+ stateMutability: "view",
313
+ type: "function",
314
+ },
315
+ {
316
+ inputs: [
317
+ {
318
+ internalType: "address",
319
+ name: "user",
320
+ type: "address",
321
+ },
322
+ {
323
+ internalType: "uint256",
324
+ name: "attestationId",
325
+ type: "uint256",
326
+ },
327
+ ],
328
+ name: "getAttestationMetadata",
329
+ outputs: [
330
+ {
331
+ internalType: "uint256",
332
+ name: "timestamp",
333
+ type: "uint256",
334
+ },
335
+ {
336
+ internalType: "uint256",
337
+ name: "revokedAt",
338
+ type: "uint256",
339
+ },
340
+ {
341
+ internalType: "address",
342
+ name: "registrar",
343
+ type: "address",
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
+ name: "getBirthYearOffset",
358
+ outputs: [
359
+ {
360
+ internalType: "euint8",
361
+ name: "",
362
+ type: "bytes32",
363
+ },
364
+ ],
365
+ stateMutability: "view",
366
+ type: "function",
367
+ },
368
+ {
369
+ inputs: [
370
+ {
371
+ internalType: "address",
372
+ name: "user",
373
+ type: "address",
374
+ },
375
+ ],
376
+ name: "getBlacklistStatus",
377
+ outputs: [
378
+ {
379
+ internalType: "ebool",
380
+ name: "",
381
+ type: "bytes32",
382
+ },
383
+ ],
384
+ stateMutability: "view",
385
+ type: "function",
386
+ },
387
+ {
388
+ inputs: [
389
+ {
390
+ internalType: "address",
391
+ name: "user",
392
+ type: "address",
393
+ },
394
+ ],
395
+ name: "getCountryCode",
396
+ outputs: [
397
+ {
398
+ internalType: "euint16",
399
+ name: "",
400
+ type: "bytes32",
401
+ },
402
+ ],
403
+ stateMutability: "view",
404
+ type: "function",
405
+ },
406
+ {
407
+ inputs: [
408
+ {
409
+ internalType: "address",
410
+ name: "user",
411
+ type: "address",
412
+ },
413
+ ],
414
+ name: "getKycLevel",
415
+ outputs: [
416
+ {
417
+ internalType: "euint8",
418
+ name: "",
419
+ type: "bytes32",
420
+ },
421
+ ],
422
+ stateMutability: "view",
423
+ type: "function",
424
+ },
425
+ {
426
+ inputs: [
427
+ {
428
+ internalType: "address",
429
+ name: "grantee",
430
+ type: "address",
431
+ },
432
+ ],
433
+ name: "grantAccessTo",
434
+ outputs: [],
435
+ stateMutability: "nonpayable",
436
+ type: "function",
437
+ },
438
+ {
439
+ inputs: [
440
+ {
441
+ internalType: "address",
442
+ name: "user",
443
+ type: "address",
444
+ },
445
+ {
446
+ internalType: "uint8",
447
+ name: "minLevel",
448
+ type: "uint8",
449
+ },
450
+ ],
451
+ name: "hasMinKycLevel",
452
+ outputs: [
453
+ {
454
+ internalType: "ebool",
455
+ name: "",
456
+ type: "bytes32",
457
+ },
458
+ ],
459
+ stateMutability: "nonpayable",
460
+ type: "function",
461
+ },
462
+ {
463
+ inputs: [
464
+ {
465
+ internalType: "address",
466
+ name: "user",
467
+ type: "address",
468
+ },
469
+ ],
470
+ name: "isAttested",
471
+ outputs: [
472
+ {
473
+ internalType: "bool",
474
+ name: "",
475
+ type: "bool",
476
+ },
477
+ ],
478
+ stateMutability: "view",
479
+ type: "function",
480
+ },
481
+ {
482
+ inputs: [
483
+ {
484
+ internalType: "address",
485
+ name: "user",
486
+ type: "address",
487
+ },
488
+ {
489
+ internalType: "uint16",
490
+ name: "country",
491
+ type: "uint16",
492
+ },
493
+ ],
494
+ name: "isFromCountry",
495
+ outputs: [
496
+ {
497
+ internalType: "ebool",
498
+ name: "",
499
+ type: "bytes32",
500
+ },
501
+ ],
502
+ stateMutability: "nonpayable",
503
+ type: "function",
504
+ },
505
+ {
506
+ inputs: [
507
+ {
508
+ internalType: "address",
509
+ name: "user",
510
+ type: "address",
511
+ },
512
+ ],
513
+ name: "isNotBlacklisted",
514
+ outputs: [
515
+ {
516
+ internalType: "ebool",
517
+ name: "",
518
+ type: "bytes32",
519
+ },
520
+ ],
521
+ stateMutability: "nonpayable",
522
+ type: "function",
523
+ },
524
+ {
525
+ inputs: [
526
+ {
527
+ internalType: "address",
528
+ name: "user",
529
+ type: "address",
530
+ },
531
+ ],
532
+ name: "latestAttestationId",
533
+ outputs: [
534
+ {
535
+ internalType: "uint256",
536
+ name: "",
537
+ type: "uint256",
538
+ },
539
+ ],
540
+ stateMutability: "view",
541
+ type: "function",
542
+ },
543
+ {
544
+ inputs: [],
545
+ name: "owner",
546
+ outputs: [
547
+ {
548
+ internalType: "address",
549
+ name: "",
550
+ type: "address",
551
+ },
552
+ ],
553
+ stateMutability: "view",
554
+ type: "function",
555
+ },
556
+ {
557
+ inputs: [],
558
+ name: "pendingOwner",
559
+ outputs: [
560
+ {
561
+ internalType: "address",
562
+ name: "",
563
+ type: "address",
564
+ },
565
+ ],
566
+ stateMutability: "view",
567
+ type: "function",
568
+ },
569
+ {
570
+ inputs: [
571
+ {
572
+ internalType: "address",
573
+ name: "registrar",
574
+ type: "address",
575
+ },
576
+ ],
577
+ name: "registrars",
578
+ outputs: [
579
+ {
580
+ internalType: "bool",
581
+ name: "",
582
+ type: "bool",
583
+ },
584
+ ],
585
+ stateMutability: "view",
586
+ type: "function",
587
+ },
588
+ {
589
+ inputs: [
590
+ {
591
+ internalType: "address",
592
+ name: "registrar",
593
+ type: "address",
594
+ },
595
+ ],
596
+ name: "removeRegistrar",
597
+ outputs: [],
598
+ stateMutability: "nonpayable",
599
+ type: "function",
600
+ },
601
+ {
602
+ inputs: [
603
+ {
604
+ internalType: "address",
605
+ name: "user",
606
+ type: "address",
607
+ },
608
+ ],
609
+ name: "revokeIdentity",
610
+ outputs: [],
611
+ stateMutability: "nonpayable",
612
+ type: "function",
613
+ },
614
+ {
615
+ inputs: [
616
+ {
617
+ internalType: "address",
618
+ name: "newOwner",
619
+ type: "address",
620
+ },
621
+ ],
622
+ name: "transferOwnership",
623
+ outputs: [],
624
+ stateMutability: "nonpayable",
625
+ type: "function",
626
+ },
627
+ ] as const;
628
+
629
+ export class IIdentityRegistry__factory {
630
+ static readonly abi = _abi;
631
+ static createInterface(): IIdentityRegistryInterface {
632
+ return new Interface(_abi) as IIdentityRegistryInterface;
633
+ }
634
+ static connect(
635
+ address: string,
636
+ runner?: ContractRunner | null
637
+ ): IIdentityRegistry {
638
+ return new Contract(address, _abi, runner) as unknown as IIdentityRegistry;
639
+ }
640
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { IIdentityRegistry__factory } from "./IIdentityRegistry__factory";