@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,798 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumberish,
7
+ BytesLike,
8
+ FunctionFragment,
9
+ Result,
10
+ Interface,
11
+ EventFragment,
12
+ AddressLike,
13
+ ContractRunner,
14
+ ContractMethod,
15
+ Listener,
16
+ } from "ethers";
17
+ import type {
18
+ TypedContractEvent,
19
+ TypedDeferredTopicFilter,
20
+ TypedEventLog,
21
+ TypedLogDescription,
22
+ TypedListener,
23
+ TypedContractMethod,
24
+ } from "../../common";
25
+
26
+ export interface IIdentityRegistryInterface extends Interface {
27
+ getFunction(
28
+ nameOrSignature:
29
+ | "acceptOwnership"
30
+ | "addRegistrar"
31
+ | "attestIdentity"
32
+ | "attestationTimestamp"
33
+ | "currentAttestationId"
34
+ | "getAttestationMetadata"
35
+ | "getBirthYearOffset"
36
+ | "getBlacklistStatus"
37
+ | "getCountryCode"
38
+ | "getKycLevel"
39
+ | "grantAccessTo"
40
+ | "hasMinKycLevel"
41
+ | "isAttested"
42
+ | "isFromCountry"
43
+ | "isNotBlacklisted"
44
+ | "latestAttestationId"
45
+ | "owner"
46
+ | "pendingOwner"
47
+ | "registrars"
48
+ | "removeRegistrar"
49
+ | "revokeIdentity"
50
+ | "transferOwnership"
51
+ ): FunctionFragment;
52
+
53
+ getEvent(
54
+ nameOrSignatureOrTopic:
55
+ | "AccessGranted"
56
+ | "IdentityAttested"
57
+ | "IdentityAttestedDetailed"
58
+ | "IdentityRevoked"
59
+ | "IdentityRevokedDetailed"
60
+ | "OwnershipTransferStarted"
61
+ | "OwnershipTransferred"
62
+ | "RegistrarAdded"
63
+ | "RegistrarRemoved"
64
+ ): EventFragment;
65
+
66
+ encodeFunctionData(
67
+ functionFragment: "acceptOwnership",
68
+ values?: undefined
69
+ ): string;
70
+ encodeFunctionData(
71
+ functionFragment: "addRegistrar",
72
+ values: [AddressLike]
73
+ ): string;
74
+ encodeFunctionData(
75
+ functionFragment: "attestIdentity",
76
+ values: [AddressLike, BytesLike, BytesLike, BytesLike, BytesLike, BytesLike]
77
+ ): string;
78
+ encodeFunctionData(
79
+ functionFragment: "attestationTimestamp",
80
+ values: [AddressLike]
81
+ ): string;
82
+ encodeFunctionData(
83
+ functionFragment: "currentAttestationId",
84
+ values: [AddressLike]
85
+ ): string;
86
+ encodeFunctionData(
87
+ functionFragment: "getAttestationMetadata",
88
+ values: [AddressLike, BigNumberish]
89
+ ): string;
90
+ encodeFunctionData(
91
+ functionFragment: "getBirthYearOffset",
92
+ values: [AddressLike]
93
+ ): string;
94
+ encodeFunctionData(
95
+ functionFragment: "getBlacklistStatus",
96
+ values: [AddressLike]
97
+ ): string;
98
+ encodeFunctionData(
99
+ functionFragment: "getCountryCode",
100
+ values: [AddressLike]
101
+ ): string;
102
+ encodeFunctionData(
103
+ functionFragment: "getKycLevel",
104
+ values: [AddressLike]
105
+ ): string;
106
+ encodeFunctionData(
107
+ functionFragment: "grantAccessTo",
108
+ values: [AddressLike]
109
+ ): string;
110
+ encodeFunctionData(
111
+ functionFragment: "hasMinKycLevel",
112
+ values: [AddressLike, BigNumberish]
113
+ ): string;
114
+ encodeFunctionData(
115
+ functionFragment: "isAttested",
116
+ values: [AddressLike]
117
+ ): string;
118
+ encodeFunctionData(
119
+ functionFragment: "isFromCountry",
120
+ values: [AddressLike, BigNumberish]
121
+ ): string;
122
+ encodeFunctionData(
123
+ functionFragment: "isNotBlacklisted",
124
+ values: [AddressLike]
125
+ ): string;
126
+ encodeFunctionData(
127
+ functionFragment: "latestAttestationId",
128
+ values: [AddressLike]
129
+ ): string;
130
+ encodeFunctionData(functionFragment: "owner", values?: undefined): string;
131
+ encodeFunctionData(
132
+ functionFragment: "pendingOwner",
133
+ values?: undefined
134
+ ): string;
135
+ encodeFunctionData(
136
+ functionFragment: "registrars",
137
+ values: [AddressLike]
138
+ ): string;
139
+ encodeFunctionData(
140
+ functionFragment: "removeRegistrar",
141
+ values: [AddressLike]
142
+ ): string;
143
+ encodeFunctionData(
144
+ functionFragment: "revokeIdentity",
145
+ values: [AddressLike]
146
+ ): string;
147
+ encodeFunctionData(
148
+ functionFragment: "transferOwnership",
149
+ values: [AddressLike]
150
+ ): string;
151
+
152
+ decodeFunctionResult(
153
+ functionFragment: "acceptOwnership",
154
+ data: BytesLike
155
+ ): Result;
156
+ decodeFunctionResult(
157
+ functionFragment: "addRegistrar",
158
+ data: BytesLike
159
+ ): Result;
160
+ decodeFunctionResult(
161
+ functionFragment: "attestIdentity",
162
+ data: BytesLike
163
+ ): Result;
164
+ decodeFunctionResult(
165
+ functionFragment: "attestationTimestamp",
166
+ data: BytesLike
167
+ ): Result;
168
+ decodeFunctionResult(
169
+ functionFragment: "currentAttestationId",
170
+ data: BytesLike
171
+ ): Result;
172
+ decodeFunctionResult(
173
+ functionFragment: "getAttestationMetadata",
174
+ data: BytesLike
175
+ ): Result;
176
+ decodeFunctionResult(
177
+ functionFragment: "getBirthYearOffset",
178
+ data: BytesLike
179
+ ): Result;
180
+ decodeFunctionResult(
181
+ functionFragment: "getBlacklistStatus",
182
+ data: BytesLike
183
+ ): Result;
184
+ decodeFunctionResult(
185
+ functionFragment: "getCountryCode",
186
+ data: BytesLike
187
+ ): Result;
188
+ decodeFunctionResult(
189
+ functionFragment: "getKycLevel",
190
+ data: BytesLike
191
+ ): Result;
192
+ decodeFunctionResult(
193
+ functionFragment: "grantAccessTo",
194
+ data: BytesLike
195
+ ): Result;
196
+ decodeFunctionResult(
197
+ functionFragment: "hasMinKycLevel",
198
+ data: BytesLike
199
+ ): Result;
200
+ decodeFunctionResult(functionFragment: "isAttested", data: BytesLike): Result;
201
+ decodeFunctionResult(
202
+ functionFragment: "isFromCountry",
203
+ data: BytesLike
204
+ ): Result;
205
+ decodeFunctionResult(
206
+ functionFragment: "isNotBlacklisted",
207
+ data: BytesLike
208
+ ): Result;
209
+ decodeFunctionResult(
210
+ functionFragment: "latestAttestationId",
211
+ data: BytesLike
212
+ ): Result;
213
+ decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
214
+ decodeFunctionResult(
215
+ functionFragment: "pendingOwner",
216
+ data: BytesLike
217
+ ): Result;
218
+ decodeFunctionResult(functionFragment: "registrars", data: BytesLike): Result;
219
+ decodeFunctionResult(
220
+ functionFragment: "removeRegistrar",
221
+ data: BytesLike
222
+ ): Result;
223
+ decodeFunctionResult(
224
+ functionFragment: "revokeIdentity",
225
+ data: BytesLike
226
+ ): Result;
227
+ decodeFunctionResult(
228
+ functionFragment: "transferOwnership",
229
+ data: BytesLike
230
+ ): Result;
231
+ }
232
+
233
+ export namespace AccessGrantedEvent {
234
+ export type InputTuple = [user: AddressLike, grantee: AddressLike];
235
+ export type OutputTuple = [user: string, grantee: string];
236
+ export interface OutputObject {
237
+ user: string;
238
+ grantee: string;
239
+ }
240
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
241
+ export type Filter = TypedDeferredTopicFilter<Event>;
242
+ export type Log = TypedEventLog<Event>;
243
+ export type LogDescription = TypedLogDescription<Event>;
244
+ }
245
+
246
+ export namespace IdentityAttestedEvent {
247
+ export type InputTuple = [user: AddressLike, registrar: AddressLike];
248
+ export type OutputTuple = [user: string, registrar: string];
249
+ export interface OutputObject {
250
+ user: string;
251
+ registrar: string;
252
+ }
253
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
254
+ export type Filter = TypedDeferredTopicFilter<Event>;
255
+ export type Log = TypedEventLog<Event>;
256
+ export type LogDescription = TypedLogDescription<Event>;
257
+ }
258
+
259
+ export namespace IdentityAttestedDetailedEvent {
260
+ export type InputTuple = [
261
+ user: AddressLike,
262
+ registrar: AddressLike,
263
+ attestationId: BigNumberish,
264
+ timestamp: BigNumberish
265
+ ];
266
+ export type OutputTuple = [
267
+ user: string,
268
+ registrar: string,
269
+ attestationId: bigint,
270
+ timestamp: bigint
271
+ ];
272
+ export interface OutputObject {
273
+ user: string;
274
+ registrar: string;
275
+ attestationId: bigint;
276
+ timestamp: bigint;
277
+ }
278
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
279
+ export type Filter = TypedDeferredTopicFilter<Event>;
280
+ export type Log = TypedEventLog<Event>;
281
+ export type LogDescription = TypedLogDescription<Event>;
282
+ }
283
+
284
+ export namespace IdentityRevokedEvent {
285
+ export type InputTuple = [user: AddressLike];
286
+ export type OutputTuple = [user: string];
287
+ export interface OutputObject {
288
+ user: string;
289
+ }
290
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
291
+ export type Filter = TypedDeferredTopicFilter<Event>;
292
+ export type Log = TypedEventLog<Event>;
293
+ export type LogDescription = TypedLogDescription<Event>;
294
+ }
295
+
296
+ export namespace IdentityRevokedDetailedEvent {
297
+ export type InputTuple = [
298
+ user: AddressLike,
299
+ registrar: AddressLike,
300
+ attestationId: BigNumberish,
301
+ timestamp: BigNumberish
302
+ ];
303
+ export type OutputTuple = [
304
+ user: string,
305
+ registrar: string,
306
+ attestationId: bigint,
307
+ timestamp: bigint
308
+ ];
309
+ export interface OutputObject {
310
+ user: string;
311
+ registrar: string;
312
+ attestationId: bigint;
313
+ timestamp: bigint;
314
+ }
315
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
316
+ export type Filter = TypedDeferredTopicFilter<Event>;
317
+ export type Log = TypedEventLog<Event>;
318
+ export type LogDescription = TypedLogDescription<Event>;
319
+ }
320
+
321
+ export namespace OwnershipTransferStartedEvent {
322
+ export type InputTuple = [
323
+ currentOwner: AddressLike,
324
+ pendingOwner: AddressLike
325
+ ];
326
+ export type OutputTuple = [currentOwner: string, pendingOwner: string];
327
+ export interface OutputObject {
328
+ currentOwner: string;
329
+ pendingOwner: string;
330
+ }
331
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
332
+ export type Filter = TypedDeferredTopicFilter<Event>;
333
+ export type Log = TypedEventLog<Event>;
334
+ export type LogDescription = TypedLogDescription<Event>;
335
+ }
336
+
337
+ export namespace OwnershipTransferredEvent {
338
+ export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
339
+ export type OutputTuple = [previousOwner: string, newOwner: string];
340
+ export interface OutputObject {
341
+ previousOwner: string;
342
+ newOwner: string;
343
+ }
344
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
345
+ export type Filter = TypedDeferredTopicFilter<Event>;
346
+ export type Log = TypedEventLog<Event>;
347
+ export type LogDescription = TypedLogDescription<Event>;
348
+ }
349
+
350
+ export namespace RegistrarAddedEvent {
351
+ export type InputTuple = [registrar: AddressLike];
352
+ export type OutputTuple = [registrar: string];
353
+ export interface OutputObject {
354
+ registrar: string;
355
+ }
356
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
357
+ export type Filter = TypedDeferredTopicFilter<Event>;
358
+ export type Log = TypedEventLog<Event>;
359
+ export type LogDescription = TypedLogDescription<Event>;
360
+ }
361
+
362
+ export namespace RegistrarRemovedEvent {
363
+ export type InputTuple = [registrar: AddressLike];
364
+ export type OutputTuple = [registrar: string];
365
+ export interface OutputObject {
366
+ registrar: string;
367
+ }
368
+ export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
369
+ export type Filter = TypedDeferredTopicFilter<Event>;
370
+ export type Log = TypedEventLog<Event>;
371
+ export type LogDescription = TypedLogDescription<Event>;
372
+ }
373
+
374
+ export interface IIdentityRegistry extends BaseContract {
375
+ connect(runner?: ContractRunner | null): IIdentityRegistry;
376
+ waitForDeployment(): Promise<this>;
377
+
378
+ interface: IIdentityRegistryInterface;
379
+
380
+ queryFilter<TCEvent extends TypedContractEvent>(
381
+ event: TCEvent,
382
+ fromBlockOrBlockhash?: string | number | undefined,
383
+ toBlock?: string | number | undefined
384
+ ): Promise<Array<TypedEventLog<TCEvent>>>;
385
+ queryFilter<TCEvent extends TypedContractEvent>(
386
+ filter: TypedDeferredTopicFilter<TCEvent>,
387
+ fromBlockOrBlockhash?: string | number | undefined,
388
+ toBlock?: string | number | undefined
389
+ ): Promise<Array<TypedEventLog<TCEvent>>>;
390
+
391
+ on<TCEvent extends TypedContractEvent>(
392
+ event: TCEvent,
393
+ listener: TypedListener<TCEvent>
394
+ ): Promise<this>;
395
+ on<TCEvent extends TypedContractEvent>(
396
+ filter: TypedDeferredTopicFilter<TCEvent>,
397
+ listener: TypedListener<TCEvent>
398
+ ): Promise<this>;
399
+
400
+ once<TCEvent extends TypedContractEvent>(
401
+ event: TCEvent,
402
+ listener: TypedListener<TCEvent>
403
+ ): Promise<this>;
404
+ once<TCEvent extends TypedContractEvent>(
405
+ filter: TypedDeferredTopicFilter<TCEvent>,
406
+ listener: TypedListener<TCEvent>
407
+ ): Promise<this>;
408
+
409
+ listeners<TCEvent extends TypedContractEvent>(
410
+ event: TCEvent
411
+ ): Promise<Array<TypedListener<TCEvent>>>;
412
+ listeners(eventName?: string): Promise<Array<Listener>>;
413
+ removeAllListeners<TCEvent extends TypedContractEvent>(
414
+ event?: TCEvent
415
+ ): Promise<this>;
416
+
417
+ acceptOwnership: TypedContractMethod<[], [void], "nonpayable">;
418
+
419
+ addRegistrar: TypedContractMethod<
420
+ [registrar: AddressLike],
421
+ [void],
422
+ "nonpayable"
423
+ >;
424
+
425
+ attestIdentity: TypedContractMethod<
426
+ [
427
+ user: AddressLike,
428
+ encBirthYearOffset: BytesLike,
429
+ encCountryCode: BytesLike,
430
+ encKycLevel: BytesLike,
431
+ encIsBlacklisted: BytesLike,
432
+ inputProof: BytesLike
433
+ ],
434
+ [void],
435
+ "nonpayable"
436
+ >;
437
+
438
+ attestationTimestamp: TypedContractMethod<
439
+ [user: AddressLike],
440
+ [bigint],
441
+ "view"
442
+ >;
443
+
444
+ currentAttestationId: TypedContractMethod<
445
+ [user: AddressLike],
446
+ [bigint],
447
+ "view"
448
+ >;
449
+
450
+ getAttestationMetadata: TypedContractMethod<
451
+ [user: AddressLike, attestationId: BigNumberish],
452
+ [
453
+ [bigint, bigint, string] & {
454
+ timestamp: bigint;
455
+ revokedAt: bigint;
456
+ registrar: string;
457
+ }
458
+ ],
459
+ "view"
460
+ >;
461
+
462
+ getBirthYearOffset: TypedContractMethod<
463
+ [user: AddressLike],
464
+ [string],
465
+ "view"
466
+ >;
467
+
468
+ getBlacklistStatus: TypedContractMethod<
469
+ [user: AddressLike],
470
+ [string],
471
+ "view"
472
+ >;
473
+
474
+ getCountryCode: TypedContractMethod<[user: AddressLike], [string], "view">;
475
+
476
+ getKycLevel: TypedContractMethod<[user: AddressLike], [string], "view">;
477
+
478
+ grantAccessTo: TypedContractMethod<
479
+ [grantee: AddressLike],
480
+ [void],
481
+ "nonpayable"
482
+ >;
483
+
484
+ hasMinKycLevel: TypedContractMethod<
485
+ [user: AddressLike, minLevel: BigNumberish],
486
+ [string],
487
+ "nonpayable"
488
+ >;
489
+
490
+ isAttested: TypedContractMethod<[user: AddressLike], [boolean], "view">;
491
+
492
+ isFromCountry: TypedContractMethod<
493
+ [user: AddressLike, country: BigNumberish],
494
+ [string],
495
+ "nonpayable"
496
+ >;
497
+
498
+ isNotBlacklisted: TypedContractMethod<
499
+ [user: AddressLike],
500
+ [string],
501
+ "nonpayable"
502
+ >;
503
+
504
+ latestAttestationId: TypedContractMethod<
505
+ [user: AddressLike],
506
+ [bigint],
507
+ "view"
508
+ >;
509
+
510
+ owner: TypedContractMethod<[], [string], "view">;
511
+
512
+ pendingOwner: TypedContractMethod<[], [string], "view">;
513
+
514
+ registrars: TypedContractMethod<[registrar: AddressLike], [boolean], "view">;
515
+
516
+ removeRegistrar: TypedContractMethod<
517
+ [registrar: AddressLike],
518
+ [void],
519
+ "nonpayable"
520
+ >;
521
+
522
+ revokeIdentity: TypedContractMethod<
523
+ [user: AddressLike],
524
+ [void],
525
+ "nonpayable"
526
+ >;
527
+
528
+ transferOwnership: TypedContractMethod<
529
+ [newOwner: AddressLike],
530
+ [void],
531
+ "nonpayable"
532
+ >;
533
+
534
+ getFunction<T extends ContractMethod = ContractMethod>(
535
+ key: string | FunctionFragment
536
+ ): T;
537
+
538
+ getFunction(
539
+ nameOrSignature: "acceptOwnership"
540
+ ): TypedContractMethod<[], [void], "nonpayable">;
541
+ getFunction(
542
+ nameOrSignature: "addRegistrar"
543
+ ): TypedContractMethod<[registrar: AddressLike], [void], "nonpayable">;
544
+ getFunction(
545
+ nameOrSignature: "attestIdentity"
546
+ ): TypedContractMethod<
547
+ [
548
+ user: AddressLike,
549
+ encBirthYearOffset: BytesLike,
550
+ encCountryCode: BytesLike,
551
+ encKycLevel: BytesLike,
552
+ encIsBlacklisted: BytesLike,
553
+ inputProof: BytesLike
554
+ ],
555
+ [void],
556
+ "nonpayable"
557
+ >;
558
+ getFunction(
559
+ nameOrSignature: "attestationTimestamp"
560
+ ): TypedContractMethod<[user: AddressLike], [bigint], "view">;
561
+ getFunction(
562
+ nameOrSignature: "currentAttestationId"
563
+ ): TypedContractMethod<[user: AddressLike], [bigint], "view">;
564
+ getFunction(
565
+ nameOrSignature: "getAttestationMetadata"
566
+ ): TypedContractMethod<
567
+ [user: AddressLike, attestationId: BigNumberish],
568
+ [
569
+ [bigint, bigint, string] & {
570
+ timestamp: bigint;
571
+ revokedAt: bigint;
572
+ registrar: string;
573
+ }
574
+ ],
575
+ "view"
576
+ >;
577
+ getFunction(
578
+ nameOrSignature: "getBirthYearOffset"
579
+ ): TypedContractMethod<[user: AddressLike], [string], "view">;
580
+ getFunction(
581
+ nameOrSignature: "getBlacklistStatus"
582
+ ): TypedContractMethod<[user: AddressLike], [string], "view">;
583
+ getFunction(
584
+ nameOrSignature: "getCountryCode"
585
+ ): TypedContractMethod<[user: AddressLike], [string], "view">;
586
+ getFunction(
587
+ nameOrSignature: "getKycLevel"
588
+ ): TypedContractMethod<[user: AddressLike], [string], "view">;
589
+ getFunction(
590
+ nameOrSignature: "grantAccessTo"
591
+ ): TypedContractMethod<[grantee: AddressLike], [void], "nonpayable">;
592
+ getFunction(
593
+ nameOrSignature: "hasMinKycLevel"
594
+ ): TypedContractMethod<
595
+ [user: AddressLike, minLevel: BigNumberish],
596
+ [string],
597
+ "nonpayable"
598
+ >;
599
+ getFunction(
600
+ nameOrSignature: "isAttested"
601
+ ): TypedContractMethod<[user: AddressLike], [boolean], "view">;
602
+ getFunction(
603
+ nameOrSignature: "isFromCountry"
604
+ ): TypedContractMethod<
605
+ [user: AddressLike, country: BigNumberish],
606
+ [string],
607
+ "nonpayable"
608
+ >;
609
+ getFunction(
610
+ nameOrSignature: "isNotBlacklisted"
611
+ ): TypedContractMethod<[user: AddressLike], [string], "nonpayable">;
612
+ getFunction(
613
+ nameOrSignature: "latestAttestationId"
614
+ ): TypedContractMethod<[user: AddressLike], [bigint], "view">;
615
+ getFunction(
616
+ nameOrSignature: "owner"
617
+ ): TypedContractMethod<[], [string], "view">;
618
+ getFunction(
619
+ nameOrSignature: "pendingOwner"
620
+ ): TypedContractMethod<[], [string], "view">;
621
+ getFunction(
622
+ nameOrSignature: "registrars"
623
+ ): TypedContractMethod<[registrar: AddressLike], [boolean], "view">;
624
+ getFunction(
625
+ nameOrSignature: "removeRegistrar"
626
+ ): TypedContractMethod<[registrar: AddressLike], [void], "nonpayable">;
627
+ getFunction(
628
+ nameOrSignature: "revokeIdentity"
629
+ ): TypedContractMethod<[user: AddressLike], [void], "nonpayable">;
630
+ getFunction(
631
+ nameOrSignature: "transferOwnership"
632
+ ): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
633
+
634
+ getEvent(
635
+ key: "AccessGranted"
636
+ ): TypedContractEvent<
637
+ AccessGrantedEvent.InputTuple,
638
+ AccessGrantedEvent.OutputTuple,
639
+ AccessGrantedEvent.OutputObject
640
+ >;
641
+ getEvent(
642
+ key: "IdentityAttested"
643
+ ): TypedContractEvent<
644
+ IdentityAttestedEvent.InputTuple,
645
+ IdentityAttestedEvent.OutputTuple,
646
+ IdentityAttestedEvent.OutputObject
647
+ >;
648
+ getEvent(
649
+ key: "IdentityAttestedDetailed"
650
+ ): TypedContractEvent<
651
+ IdentityAttestedDetailedEvent.InputTuple,
652
+ IdentityAttestedDetailedEvent.OutputTuple,
653
+ IdentityAttestedDetailedEvent.OutputObject
654
+ >;
655
+ getEvent(
656
+ key: "IdentityRevoked"
657
+ ): TypedContractEvent<
658
+ IdentityRevokedEvent.InputTuple,
659
+ IdentityRevokedEvent.OutputTuple,
660
+ IdentityRevokedEvent.OutputObject
661
+ >;
662
+ getEvent(
663
+ key: "IdentityRevokedDetailed"
664
+ ): TypedContractEvent<
665
+ IdentityRevokedDetailedEvent.InputTuple,
666
+ IdentityRevokedDetailedEvent.OutputTuple,
667
+ IdentityRevokedDetailedEvent.OutputObject
668
+ >;
669
+ getEvent(
670
+ key: "OwnershipTransferStarted"
671
+ ): TypedContractEvent<
672
+ OwnershipTransferStartedEvent.InputTuple,
673
+ OwnershipTransferStartedEvent.OutputTuple,
674
+ OwnershipTransferStartedEvent.OutputObject
675
+ >;
676
+ getEvent(
677
+ key: "OwnershipTransferred"
678
+ ): TypedContractEvent<
679
+ OwnershipTransferredEvent.InputTuple,
680
+ OwnershipTransferredEvent.OutputTuple,
681
+ OwnershipTransferredEvent.OutputObject
682
+ >;
683
+ getEvent(
684
+ key: "RegistrarAdded"
685
+ ): TypedContractEvent<
686
+ RegistrarAddedEvent.InputTuple,
687
+ RegistrarAddedEvent.OutputTuple,
688
+ RegistrarAddedEvent.OutputObject
689
+ >;
690
+ getEvent(
691
+ key: "RegistrarRemoved"
692
+ ): TypedContractEvent<
693
+ RegistrarRemovedEvent.InputTuple,
694
+ RegistrarRemovedEvent.OutputTuple,
695
+ RegistrarRemovedEvent.OutputObject
696
+ >;
697
+
698
+ filters: {
699
+ "AccessGranted(address,address)": TypedContractEvent<
700
+ AccessGrantedEvent.InputTuple,
701
+ AccessGrantedEvent.OutputTuple,
702
+ AccessGrantedEvent.OutputObject
703
+ >;
704
+ AccessGranted: TypedContractEvent<
705
+ AccessGrantedEvent.InputTuple,
706
+ AccessGrantedEvent.OutputTuple,
707
+ AccessGrantedEvent.OutputObject
708
+ >;
709
+
710
+ "IdentityAttested(address,address)": TypedContractEvent<
711
+ IdentityAttestedEvent.InputTuple,
712
+ IdentityAttestedEvent.OutputTuple,
713
+ IdentityAttestedEvent.OutputObject
714
+ >;
715
+ IdentityAttested: TypedContractEvent<
716
+ IdentityAttestedEvent.InputTuple,
717
+ IdentityAttestedEvent.OutputTuple,
718
+ IdentityAttestedEvent.OutputObject
719
+ >;
720
+
721
+ "IdentityAttestedDetailed(address,address,uint256,uint256)": TypedContractEvent<
722
+ IdentityAttestedDetailedEvent.InputTuple,
723
+ IdentityAttestedDetailedEvent.OutputTuple,
724
+ IdentityAttestedDetailedEvent.OutputObject
725
+ >;
726
+ IdentityAttestedDetailed: TypedContractEvent<
727
+ IdentityAttestedDetailedEvent.InputTuple,
728
+ IdentityAttestedDetailedEvent.OutputTuple,
729
+ IdentityAttestedDetailedEvent.OutputObject
730
+ >;
731
+
732
+ "IdentityRevoked(address)": TypedContractEvent<
733
+ IdentityRevokedEvent.InputTuple,
734
+ IdentityRevokedEvent.OutputTuple,
735
+ IdentityRevokedEvent.OutputObject
736
+ >;
737
+ IdentityRevoked: TypedContractEvent<
738
+ IdentityRevokedEvent.InputTuple,
739
+ IdentityRevokedEvent.OutputTuple,
740
+ IdentityRevokedEvent.OutputObject
741
+ >;
742
+
743
+ "IdentityRevokedDetailed(address,address,uint256,uint256)": TypedContractEvent<
744
+ IdentityRevokedDetailedEvent.InputTuple,
745
+ IdentityRevokedDetailedEvent.OutputTuple,
746
+ IdentityRevokedDetailedEvent.OutputObject
747
+ >;
748
+ IdentityRevokedDetailed: TypedContractEvent<
749
+ IdentityRevokedDetailedEvent.InputTuple,
750
+ IdentityRevokedDetailedEvent.OutputTuple,
751
+ IdentityRevokedDetailedEvent.OutputObject
752
+ >;
753
+
754
+ "OwnershipTransferStarted(address,address)": TypedContractEvent<
755
+ OwnershipTransferStartedEvent.InputTuple,
756
+ OwnershipTransferStartedEvent.OutputTuple,
757
+ OwnershipTransferStartedEvent.OutputObject
758
+ >;
759
+ OwnershipTransferStarted: TypedContractEvent<
760
+ OwnershipTransferStartedEvent.InputTuple,
761
+ OwnershipTransferStartedEvent.OutputTuple,
762
+ OwnershipTransferStartedEvent.OutputObject
763
+ >;
764
+
765
+ "OwnershipTransferred(address,address)": TypedContractEvent<
766
+ OwnershipTransferredEvent.InputTuple,
767
+ OwnershipTransferredEvent.OutputTuple,
768
+ OwnershipTransferredEvent.OutputObject
769
+ >;
770
+ OwnershipTransferred: TypedContractEvent<
771
+ OwnershipTransferredEvent.InputTuple,
772
+ OwnershipTransferredEvent.OutputTuple,
773
+ OwnershipTransferredEvent.OutputObject
774
+ >;
775
+
776
+ "RegistrarAdded(address)": TypedContractEvent<
777
+ RegistrarAddedEvent.InputTuple,
778
+ RegistrarAddedEvent.OutputTuple,
779
+ RegistrarAddedEvent.OutputObject
780
+ >;
781
+ RegistrarAdded: TypedContractEvent<
782
+ RegistrarAddedEvent.InputTuple,
783
+ RegistrarAddedEvent.OutputTuple,
784
+ RegistrarAddedEvent.OutputObject
785
+ >;
786
+
787
+ "RegistrarRemoved(address)": TypedContractEvent<
788
+ RegistrarRemovedEvent.InputTuple,
789
+ RegistrarRemovedEvent.OutputTuple,
790
+ RegistrarRemovedEvent.OutputObject
791
+ >;
792
+ RegistrarRemoved: TypedContractEvent<
793
+ RegistrarRemovedEvent.InputTuple,
794
+ RegistrarRemovedEvent.OutputTuple,
795
+ RegistrarRemovedEvent.OutputObject
796
+ >;
797
+ };
798
+ }