@zentity/fhevm-contracts 0.2.1 → 0.4.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.
- package/abi/ComplianceRules.json +25 -16
- package/abi/CompliantERC20.json +30 -16
- package/abi/IdentityRegistry.json +496 -119
- package/contracts/compliance/ComplianceRules.sol +40 -189
- package/contracts/core/IdentityRegistry.sol +280 -232
- package/contracts/interfaces/IComplianceRules.sol +30 -0
- package/contracts/interfaces/IIdentityRegistry.sol +133 -159
- package/contracts/proxy/ERC1967Proxy.sol +6 -0
- package/contracts/test/MockFacilitator.sol +40 -0
- package/contracts/tokens/CompliantERC20.sol +28 -242
- package/deployments/hardhat/addresses.json +3 -8
- package/deployments/sepolia/addresses.json +18 -0
- package/dist/index.d.ts +178 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -16
- package/package.json +3 -2
- package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -0
- package/typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts +217 -0
- package/typechain-types/@openzeppelin/contracts/access/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts/index.ts +11 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts +168 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
- package/typechain-types/{contracts/tokens/CompliantERC20.sol/IComplianceChecker.ts → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts} +12 -17
- package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +7 -0
- package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +105 -0
- package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +90 -0
- package/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/proxy/index.ts +8 -0
- package/typechain-types/@openzeppelin/contracts/utils/Address.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/Errors.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts/utils/index.ts +10 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
- package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.ts +251 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts +186 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/index.ts +9 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +105 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +196 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +105 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.ts +184 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/cryptography/index.ts +4 -0
- package/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts +6 -0
- package/typechain-types/@openzeppelin/index.ts +7 -0
- package/typechain-types/contracts/compliance/ComplianceRules.ts +18 -7
- package/typechain-types/contracts/core/IdentityRegistry.ts +493 -233
- package/typechain-types/contracts/index.ts +2 -0
- package/typechain-types/contracts/interfaces/IComplianceRules.ts +290 -0
- package/typechain-types/contracts/interfaces/IIdentityRegistry.ts +269 -341
- package/typechain-types/contracts/interfaces/index.ts +1 -0
- package/typechain-types/contracts/test/MockFacilitator.ts +187 -0
- package/typechain-types/contracts/test/index.ts +4 -0
- package/typechain-types/contracts/tokens/{CompliantERC20.sol/CompliantERC20.ts → CompliantERC20.ts} +19 -8
- package/typechain-types/contracts/tokens/index.ts +1 -2
- package/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts +138 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +96 -0
- package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/index.ts +7 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +67 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +38 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +144 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +105 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts +26 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +35 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts +75 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts +101 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +8 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable__factory.ts +165 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts +122 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts +6 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +48 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +153 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +48 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable__factory.ts +97 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/cryptography/index.ts +4 -0
- package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +5 -0
- package/typechain-types/factories/@openzeppelin/index.ts +5 -0
- package/typechain-types/factories/contracts/compliance/ComplianceRules__factory.ts +26 -17
- package/typechain-types/factories/contracts/core/IdentityRegistry__factory.ts +493 -116
- package/typechain-types/factories/contracts/index.ts +1 -0
- package/typechain-types/factories/contracts/interfaces/IComplianceRules__factory.ts +193 -0
- package/typechain-types/factories/contracts/interfaces/IIdentityRegistry__factory.ts +236 -186
- package/typechain-types/factories/contracts/interfaces/index.ts +1 -0
- package/typechain-types/factories/contracts/test/MockFacilitator__factory.ts +194 -0
- package/typechain-types/factories/contracts/test/index.ts +4 -0
- package/typechain-types/factories/contracts/tokens/CompliantERC20__factory.ts +595 -0
- package/typechain-types/factories/contracts/tokens/index.ts +1 -1
- package/typechain-types/factories/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +394 -16
- package/typechain-types/index.ts +48 -4
- package/deployments/hardhat/.chainId +0 -1
- package/typechain-types/contracts/tokens/CompliantERC20.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/CompliantERC20__factory.ts +0 -581
- package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/IComplianceChecker__factory.ts +0 -44
- package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/index.ts +0 -5
package/dist/index.d.ts
CHANGED
|
@@ -29,11 +29,9 @@ export type NetworkName = keyof typeof CHAIN_ID_BY_NETWORK;
|
|
|
29
29
|
export type ChainId = (typeof CHAIN_ID_BY_NETWORK)[NetworkName];
|
|
30
30
|
export declare const DEPLOYMENTS: Partial<Record<NetworkName, DeploymentManifest>>;
|
|
31
31
|
export declare const ADDRESSES: {
|
|
32
|
-
readonly hardhat:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
readonly CompliantERC20: string;
|
|
36
|
-
};
|
|
32
|
+
readonly hardhat: ContractAddresses;
|
|
33
|
+
readonly localhost: ContractAddresses;
|
|
34
|
+
readonly sepolia: ContractAddresses;
|
|
37
35
|
};
|
|
38
36
|
export declare const ABIS: {
|
|
39
37
|
readonly IdentityRegistry: ({
|
|
@@ -44,7 +42,11 @@ export declare const ABIS: {
|
|
|
44
42
|
anonymous?: undefined;
|
|
45
43
|
outputs?: undefined;
|
|
46
44
|
} | {
|
|
47
|
-
inputs:
|
|
45
|
+
inputs: {
|
|
46
|
+
internalType: string;
|
|
47
|
+
name: string;
|
|
48
|
+
type: string;
|
|
49
|
+
}[];
|
|
48
50
|
name: string;
|
|
49
51
|
type: string;
|
|
50
52
|
stateMutability?: undefined;
|
|
@@ -62,6 +64,27 @@ export declare const ABIS: {
|
|
|
62
64
|
type: string;
|
|
63
65
|
stateMutability?: undefined;
|
|
64
66
|
outputs?: undefined;
|
|
67
|
+
} | {
|
|
68
|
+
inputs: ({
|
|
69
|
+
components: {
|
|
70
|
+
internalType: string;
|
|
71
|
+
name: string;
|
|
72
|
+
type: string;
|
|
73
|
+
}[];
|
|
74
|
+
internalType: string;
|
|
75
|
+
name: string;
|
|
76
|
+
type: string;
|
|
77
|
+
} | {
|
|
78
|
+
internalType: string;
|
|
79
|
+
name: string;
|
|
80
|
+
type: string;
|
|
81
|
+
components?: undefined;
|
|
82
|
+
})[];
|
|
83
|
+
name: string;
|
|
84
|
+
outputs: never[];
|
|
85
|
+
stateMutability: string;
|
|
86
|
+
type: string;
|
|
87
|
+
anonymous?: undefined;
|
|
65
88
|
} | {
|
|
66
89
|
inputs: {
|
|
67
90
|
internalType: string;
|
|
@@ -90,7 +113,11 @@ export declare const ABIS: {
|
|
|
90
113
|
anonymous?: undefined;
|
|
91
114
|
outputs?: undefined;
|
|
92
115
|
} | {
|
|
93
|
-
inputs:
|
|
116
|
+
inputs: {
|
|
117
|
+
internalType: string;
|
|
118
|
+
name: string;
|
|
119
|
+
type: string;
|
|
120
|
+
}[];
|
|
94
121
|
name: string;
|
|
95
122
|
type: string;
|
|
96
123
|
stateMutability?: undefined;
|
|
@@ -136,7 +163,11 @@ export declare const ABIS: {
|
|
|
136
163
|
anonymous?: undefined;
|
|
137
164
|
outputs?: undefined;
|
|
138
165
|
} | {
|
|
139
|
-
inputs:
|
|
166
|
+
inputs: {
|
|
167
|
+
internalType: string;
|
|
168
|
+
name: string;
|
|
169
|
+
type: string;
|
|
170
|
+
}[];
|
|
140
171
|
name: string;
|
|
141
172
|
type: string;
|
|
142
173
|
stateMutability?: undefined;
|
|
@@ -184,7 +215,11 @@ export declare function getAbi(name: ContractName): ({
|
|
|
184
215
|
anonymous?: undefined;
|
|
185
216
|
outputs?: undefined;
|
|
186
217
|
} | {
|
|
187
|
-
inputs:
|
|
218
|
+
inputs: {
|
|
219
|
+
internalType: string;
|
|
220
|
+
name: string;
|
|
221
|
+
type: string;
|
|
222
|
+
}[];
|
|
188
223
|
name: string;
|
|
189
224
|
type: string;
|
|
190
225
|
stateMutability?: undefined;
|
|
@@ -229,7 +264,11 @@ export declare function getAbi(name: ContractName): ({
|
|
|
229
264
|
anonymous?: undefined;
|
|
230
265
|
outputs?: undefined;
|
|
231
266
|
} | {
|
|
232
|
-
inputs:
|
|
267
|
+
inputs: {
|
|
268
|
+
internalType: string;
|
|
269
|
+
name: string;
|
|
270
|
+
type: string;
|
|
271
|
+
}[];
|
|
233
272
|
name: string;
|
|
234
273
|
type: string;
|
|
235
274
|
stateMutability?: undefined;
|
|
@@ -270,7 +309,11 @@ export declare function getAbi(name: ContractName): ({
|
|
|
270
309
|
anonymous?: undefined;
|
|
271
310
|
outputs?: undefined;
|
|
272
311
|
} | {
|
|
273
|
-
inputs:
|
|
312
|
+
inputs: {
|
|
313
|
+
internalType: string;
|
|
314
|
+
name: string;
|
|
315
|
+
type: string;
|
|
316
|
+
}[];
|
|
274
317
|
name: string;
|
|
275
318
|
type: string;
|
|
276
319
|
stateMutability?: undefined;
|
|
@@ -288,6 +331,27 @@ export declare function getAbi(name: ContractName): ({
|
|
|
288
331
|
type: string;
|
|
289
332
|
stateMutability?: undefined;
|
|
290
333
|
outputs?: undefined;
|
|
334
|
+
} | {
|
|
335
|
+
inputs: ({
|
|
336
|
+
components: {
|
|
337
|
+
internalType: string;
|
|
338
|
+
name: string;
|
|
339
|
+
type: string;
|
|
340
|
+
}[];
|
|
341
|
+
internalType: string;
|
|
342
|
+
name: string;
|
|
343
|
+
type: string;
|
|
344
|
+
} | {
|
|
345
|
+
internalType: string;
|
|
346
|
+
name: string;
|
|
347
|
+
type: string;
|
|
348
|
+
components?: undefined;
|
|
349
|
+
})[];
|
|
350
|
+
name: string;
|
|
351
|
+
outputs: never[];
|
|
352
|
+
stateMutability: string;
|
|
353
|
+
type: string;
|
|
354
|
+
anonymous?: undefined;
|
|
291
355
|
} | {
|
|
292
356
|
inputs: {
|
|
293
357
|
internalType: string;
|
|
@@ -312,7 +376,11 @@ export declare const IdentityRegistryABI: ({
|
|
|
312
376
|
anonymous?: undefined;
|
|
313
377
|
outputs?: undefined;
|
|
314
378
|
} | {
|
|
315
|
-
inputs:
|
|
379
|
+
inputs: {
|
|
380
|
+
internalType: string;
|
|
381
|
+
name: string;
|
|
382
|
+
type: string;
|
|
383
|
+
}[];
|
|
316
384
|
name: string;
|
|
317
385
|
type: string;
|
|
318
386
|
stateMutability?: undefined;
|
|
@@ -330,6 +398,27 @@ export declare const IdentityRegistryABI: ({
|
|
|
330
398
|
type: string;
|
|
331
399
|
stateMutability?: undefined;
|
|
332
400
|
outputs?: undefined;
|
|
401
|
+
} | {
|
|
402
|
+
inputs: ({
|
|
403
|
+
components: {
|
|
404
|
+
internalType: string;
|
|
405
|
+
name: string;
|
|
406
|
+
type: string;
|
|
407
|
+
}[];
|
|
408
|
+
internalType: string;
|
|
409
|
+
name: string;
|
|
410
|
+
type: string;
|
|
411
|
+
} | {
|
|
412
|
+
internalType: string;
|
|
413
|
+
name: string;
|
|
414
|
+
type: string;
|
|
415
|
+
components?: undefined;
|
|
416
|
+
})[];
|
|
417
|
+
name: string;
|
|
418
|
+
outputs: never[];
|
|
419
|
+
stateMutability: string;
|
|
420
|
+
type: string;
|
|
421
|
+
anonymous?: undefined;
|
|
333
422
|
} | {
|
|
334
423
|
inputs: {
|
|
335
424
|
internalType: string;
|
|
@@ -358,7 +447,11 @@ export declare const ComplianceRulesABI: ({
|
|
|
358
447
|
anonymous?: undefined;
|
|
359
448
|
outputs?: undefined;
|
|
360
449
|
} | {
|
|
361
|
-
inputs:
|
|
450
|
+
inputs: {
|
|
451
|
+
internalType: string;
|
|
452
|
+
name: string;
|
|
453
|
+
type: string;
|
|
454
|
+
}[];
|
|
362
455
|
name: string;
|
|
363
456
|
type: string;
|
|
364
457
|
stateMutability?: undefined;
|
|
@@ -404,7 +497,11 @@ export declare const CompliantERC20ABI: ({
|
|
|
404
497
|
anonymous?: undefined;
|
|
405
498
|
outputs?: undefined;
|
|
406
499
|
} | {
|
|
407
|
-
inputs:
|
|
500
|
+
inputs: {
|
|
501
|
+
internalType: string;
|
|
502
|
+
name: string;
|
|
503
|
+
type: string;
|
|
504
|
+
}[];
|
|
408
505
|
name: string;
|
|
409
506
|
type: string;
|
|
410
507
|
stateMutability?: undefined;
|
|
@@ -447,6 +544,73 @@ export declare function getContractAddresses(networkOrChainId: NetworkName | num
|
|
|
447
544
|
prefer?: NetworkName;
|
|
448
545
|
overrides?: Partial<ContractAddresses>;
|
|
449
546
|
}): ContractAddresses;
|
|
547
|
+
/** Attribute bitmask constants for grantAttributeAccess */
|
|
548
|
+
export declare const ATTR: {
|
|
549
|
+
readonly BIRTH_YEAR: 1;
|
|
550
|
+
readonly COUNTRY: 2;
|
|
551
|
+
readonly COMPLIANCE: 4;
|
|
552
|
+
readonly BLACKLIST: 8;
|
|
553
|
+
readonly ALL: 15;
|
|
554
|
+
};
|
|
555
|
+
/** Purpose enum matching the Solidity `IIdentityRegistry.Purpose` */
|
|
556
|
+
export declare enum Purpose {
|
|
557
|
+
COMPLIANCE_CHECK = 0,
|
|
558
|
+
AGE_VERIFICATION = 1,
|
|
559
|
+
NATIONALITY_CHECK = 2,
|
|
560
|
+
TRANSFER_GATING = 3,
|
|
561
|
+
AUDIT = 4
|
|
562
|
+
}
|
|
563
|
+
/** EIP-712 type definition for the attestation permit (compatible with ethers/viem signTypedData) */
|
|
564
|
+
export declare const ATTEST_PERMIT_TYPES: {
|
|
565
|
+
readonly AttestPermit: readonly [{
|
|
566
|
+
readonly name: "user";
|
|
567
|
+
readonly type: "address";
|
|
568
|
+
}, {
|
|
569
|
+
readonly name: "birthYearOffset";
|
|
570
|
+
readonly type: "uint8";
|
|
571
|
+
}, {
|
|
572
|
+
readonly name: "countryCode";
|
|
573
|
+
readonly type: "uint16";
|
|
574
|
+
}, {
|
|
575
|
+
readonly name: "complianceLevel";
|
|
576
|
+
readonly type: "uint8";
|
|
577
|
+
}, {
|
|
578
|
+
readonly name: "isBlacklisted";
|
|
579
|
+
readonly type: "bool";
|
|
580
|
+
}, {
|
|
581
|
+
readonly name: "proofSetHash";
|
|
582
|
+
readonly type: "bytes32";
|
|
583
|
+
}, {
|
|
584
|
+
readonly name: "policyVersion";
|
|
585
|
+
readonly type: "uint32";
|
|
586
|
+
}, {
|
|
587
|
+
readonly name: "nonce";
|
|
588
|
+
readonly type: "uint256";
|
|
589
|
+
}, {
|
|
590
|
+
readonly name: "deadline";
|
|
591
|
+
readonly type: "uint256";
|
|
592
|
+
}];
|
|
593
|
+
};
|
|
594
|
+
/** Build the EIP-712 domain for attestation permit signing */
|
|
595
|
+
export declare function getAttestPermitDomain(chainId: number, registryAddress: string): {
|
|
596
|
+
name: string;
|
|
597
|
+
version: string;
|
|
598
|
+
chainId: number;
|
|
599
|
+
verifyingContract: string;
|
|
600
|
+
};
|
|
601
|
+
/** TypeScript type for the permit struct (matches Solidity AttestPermitData) */
|
|
602
|
+
export interface AttestPermitData {
|
|
603
|
+
birthYearOffset: number;
|
|
604
|
+
countryCode: number;
|
|
605
|
+
complianceLevel: number;
|
|
606
|
+
isBlacklisted: boolean;
|
|
607
|
+
proofSetHash: string;
|
|
608
|
+
policyVersion: number;
|
|
609
|
+
deadline: number;
|
|
610
|
+
v: number;
|
|
611
|
+
r: string;
|
|
612
|
+
s: string;
|
|
613
|
+
}
|
|
450
614
|
export declare function resolveContractAddresses(networkOrChainId: NetworkName | number, options?: {
|
|
451
615
|
prefer?: NetworkName;
|
|
452
616
|
overrides?: Partial<ContractAddresses>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
9
|
};
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.CompliantERC20ABI = exports.ComplianceRulesABI = exports.IdentityRegistryABI = exports.ABIS = exports.ADDRESSES = exports.DEPLOYMENTS = exports.CHAIN_ID_BY_NETWORK = exports.CONTRACT_NAMES = void 0;
|
|
11
|
+
exports.ATTEST_PERMIT_TYPES = exports.Purpose = exports.ATTR = exports.CompliantERC20ABI = exports.ComplianceRulesABI = exports.IdentityRegistryABI = exports.ABIS = exports.ADDRESSES = exports.DEPLOYMENTS = exports.CHAIN_ID_BY_NETWORK = exports.CONTRACT_NAMES = void 0;
|
|
12
12
|
exports.getAbi = getAbi;
|
|
13
13
|
exports.getDeployment = getDeployment;
|
|
14
14
|
exports.hasDeployment = hasDeployment;
|
|
@@ -16,37 +16,50 @@ exports.isNetworkName = isNetworkName;
|
|
|
16
16
|
exports.getNetworkNames = getNetworkNames;
|
|
17
17
|
exports.getNetworkName = getNetworkName;
|
|
18
18
|
exports.getContractAddresses = getContractAddresses;
|
|
19
|
+
exports.getAttestPermitDomain = getAttestPermitDomain;
|
|
19
20
|
exports.resolveContractAddresses = resolveContractAddresses;
|
|
20
21
|
const ComplianceRules_json_1 = __importDefault(require("../abi/ComplianceRules.json"));
|
|
21
22
|
const CompliantERC20_json_1 = __importDefault(require("../abi/CompliantERC20.json"));
|
|
22
23
|
const IdentityRegistry_json_1 = __importDefault(require("../abi/IdentityRegistry.json"));
|
|
23
24
|
const addresses_json_1 = __importDefault(require("../deployments/hardhat/addresses.json"));
|
|
25
|
+
const addresses_json_2 = __importDefault(require("../deployments/sepolia/addresses.json"));
|
|
24
26
|
exports.CONTRACT_NAMES = ["IdentityRegistry", "ComplianceRules", "CompliantERC20"];
|
|
25
27
|
const hardhatAddresses = addresses_json_1.default;
|
|
28
|
+
const sepoliaAddresses = addresses_json_2.default;
|
|
26
29
|
exports.CHAIN_ID_BY_NETWORK = {
|
|
27
30
|
hardhat: 31337,
|
|
28
31
|
localhost: 31337,
|
|
29
32
|
sepolia: 11155111,
|
|
30
33
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
network:
|
|
34
|
-
chainId:
|
|
35
|
-
deployedAt:
|
|
36
|
-
deployer:
|
|
34
|
+
function toManifest(source, fallbackNetwork, fallbackChainId) {
|
|
35
|
+
return {
|
|
36
|
+
network: source.network ?? fallbackNetwork,
|
|
37
|
+
chainId: source.chainId ?? fallbackChainId,
|
|
38
|
+
deployedAt: source.deployedAt,
|
|
39
|
+
deployer: source.deployer,
|
|
37
40
|
contracts: {
|
|
38
|
-
IdentityRegistry:
|
|
39
|
-
ComplianceRules:
|
|
40
|
-
CompliantERC20:
|
|
41
|
+
IdentityRegistry: source.contracts.IdentityRegistry,
|
|
42
|
+
ComplianceRules: source.contracts.ComplianceRules,
|
|
43
|
+
CompliantERC20: source.contracts.CompliantERC20,
|
|
41
44
|
},
|
|
42
|
-
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
exports.DEPLOYMENTS = {
|
|
48
|
+
hardhat: toManifest(hardhatAddresses, "hardhat", exports.CHAIN_ID_BY_NETWORK.hardhat),
|
|
49
|
+
localhost: toManifest(hardhatAddresses, "localhost", exports.CHAIN_ID_BY_NETWORK.localhost),
|
|
50
|
+
sepolia: toManifest(sepoliaAddresses, "sepolia", exports.CHAIN_ID_BY_NETWORK.sepolia),
|
|
43
51
|
};
|
|
52
|
+
function toAddresses(source) {
|
|
53
|
+
return {
|
|
54
|
+
IdentityRegistry: source.contracts.IdentityRegistry.address,
|
|
55
|
+
ComplianceRules: source.contracts.ComplianceRules.address,
|
|
56
|
+
CompliantERC20: source.contracts.CompliantERC20.address,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
44
59
|
exports.ADDRESSES = {
|
|
45
|
-
hardhat:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
CompliantERC20: hardhatAddresses.contracts.CompliantERC20.address,
|
|
49
|
-
},
|
|
60
|
+
hardhat: toAddresses(hardhatAddresses),
|
|
61
|
+
localhost: toAddresses(hardhatAddresses),
|
|
62
|
+
sepolia: toAddresses(sepoliaAddresses),
|
|
50
63
|
};
|
|
51
64
|
exports.ABIS = {
|
|
52
65
|
IdentityRegistry: IdentityRegistry_json_1.default,
|
|
@@ -96,6 +109,48 @@ function getContractAddresses(networkOrChainId, options) {
|
|
|
96
109
|
};
|
|
97
110
|
return { ...base, ...(options?.overrides ?? {}) };
|
|
98
111
|
}
|
|
112
|
+
// ============ v2: EIP-712 Permit Types ============
|
|
113
|
+
/** Attribute bitmask constants for grantAttributeAccess */
|
|
114
|
+
exports.ATTR = {
|
|
115
|
+
BIRTH_YEAR: 0x01,
|
|
116
|
+
COUNTRY: 0x02,
|
|
117
|
+
COMPLIANCE: 0x04,
|
|
118
|
+
BLACKLIST: 0x08,
|
|
119
|
+
ALL: 0x0f,
|
|
120
|
+
};
|
|
121
|
+
/** Purpose enum matching the Solidity `IIdentityRegistry.Purpose` */
|
|
122
|
+
var Purpose;
|
|
123
|
+
(function (Purpose) {
|
|
124
|
+
Purpose[Purpose["COMPLIANCE_CHECK"] = 0] = "COMPLIANCE_CHECK";
|
|
125
|
+
Purpose[Purpose["AGE_VERIFICATION"] = 1] = "AGE_VERIFICATION";
|
|
126
|
+
Purpose[Purpose["NATIONALITY_CHECK"] = 2] = "NATIONALITY_CHECK";
|
|
127
|
+
Purpose[Purpose["TRANSFER_GATING"] = 3] = "TRANSFER_GATING";
|
|
128
|
+
Purpose[Purpose["AUDIT"] = 4] = "AUDIT";
|
|
129
|
+
})(Purpose || (exports.Purpose = Purpose = {}));
|
|
130
|
+
/** EIP-712 type definition for the attestation permit (compatible with ethers/viem signTypedData) */
|
|
131
|
+
exports.ATTEST_PERMIT_TYPES = {
|
|
132
|
+
AttestPermit: [
|
|
133
|
+
{ name: "user", type: "address" },
|
|
134
|
+
{ name: "birthYearOffset", type: "uint8" },
|
|
135
|
+
{ name: "countryCode", type: "uint16" },
|
|
136
|
+
{ name: "complianceLevel", type: "uint8" },
|
|
137
|
+
{ name: "isBlacklisted", type: "bool" },
|
|
138
|
+
{ name: "proofSetHash", type: "bytes32" },
|
|
139
|
+
{ name: "policyVersion", type: "uint32" },
|
|
140
|
+
{ name: "nonce", type: "uint256" },
|
|
141
|
+
{ name: "deadline", type: "uint256" },
|
|
142
|
+
],
|
|
143
|
+
};
|
|
144
|
+
/** Build the EIP-712 domain for attestation permit signing */
|
|
145
|
+
function getAttestPermitDomain(chainId, registryAddress) {
|
|
146
|
+
return {
|
|
147
|
+
name: "ZentityIdentityRegistry",
|
|
148
|
+
version: "2",
|
|
149
|
+
chainId,
|
|
150
|
+
verifyingContract: registryAddress,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// ============ Address Resolution ============
|
|
99
154
|
function resolveContractAddresses(networkOrChainId, options) {
|
|
100
155
|
const network = typeof networkOrChainId === "number"
|
|
101
156
|
? getNetworkName(networkOrChainId, options?.prefer)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zentity/fhevm-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "fhEVM smart contracts for Zentity privacy-preserving identity attestations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -51,7 +51,8 @@
|
|
|
51
51
|
"typechain": "hardhat typechain",
|
|
52
52
|
"export-abi": "bun scripts/export-abi.ts",
|
|
53
53
|
"print:deployments": "bun scripts/print-deployments.ts",
|
|
54
|
-
"
|
|
54
|
+
"consolidate": "bun scripts/consolidate-deployments.ts",
|
|
55
|
+
"build": "bun run compile && bun run typechain && bun run export-abi && bun run consolidate && tsc -p tsconfig.build.json",
|
|
55
56
|
"prepublishOnly": "bun run build",
|
|
56
57
|
"ci:version": "changeset version",
|
|
57
58
|
"ci:publish": "changeset publish",
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import type {
|
|
5
|
+
BaseContract,
|
|
6
|
+
BytesLike,
|
|
7
|
+
FunctionFragment,
|
|
8
|
+
Result,
|
|
9
|
+
Interface,
|
|
10
|
+
EventFragment,
|
|
11
|
+
AddressLike,
|
|
12
|
+
ContractRunner,
|
|
13
|
+
ContractMethod,
|
|
14
|
+
Listener,
|
|
15
|
+
} from "ethers";
|
|
16
|
+
import type {
|
|
17
|
+
TypedContractEvent,
|
|
18
|
+
TypedDeferredTopicFilter,
|
|
19
|
+
TypedEventLog,
|
|
20
|
+
TypedLogDescription,
|
|
21
|
+
TypedListener,
|
|
22
|
+
TypedContractMethod,
|
|
23
|
+
} from "../../../common";
|
|
24
|
+
|
|
25
|
+
export interface OwnableInterface extends Interface {
|
|
26
|
+
getFunction(
|
|
27
|
+
nameOrSignature: "owner" | "renounceOwnership" | "transferOwnership"
|
|
28
|
+
): FunctionFragment;
|
|
29
|
+
|
|
30
|
+
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
|
|
31
|
+
|
|
32
|
+
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
33
|
+
encodeFunctionData(
|
|
34
|
+
functionFragment: "renounceOwnership",
|
|
35
|
+
values?: undefined
|
|
36
|
+
): string;
|
|
37
|
+
encodeFunctionData(
|
|
38
|
+
functionFragment: "transferOwnership",
|
|
39
|
+
values: [AddressLike]
|
|
40
|
+
): string;
|
|
41
|
+
|
|
42
|
+
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
43
|
+
decodeFunctionResult(
|
|
44
|
+
functionFragment: "renounceOwnership",
|
|
45
|
+
data: BytesLike
|
|
46
|
+
): Result;
|
|
47
|
+
decodeFunctionResult(
|
|
48
|
+
functionFragment: "transferOwnership",
|
|
49
|
+
data: BytesLike
|
|
50
|
+
): Result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export namespace OwnershipTransferredEvent {
|
|
54
|
+
export type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
|
|
55
|
+
export type OutputTuple = [previousOwner: string, newOwner: string];
|
|
56
|
+
export interface OutputObject {
|
|
57
|
+
previousOwner: string;
|
|
58
|
+
newOwner: string;
|
|
59
|
+
}
|
|
60
|
+
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
|
|
61
|
+
export type Filter = TypedDeferredTopicFilter<Event>;
|
|
62
|
+
export type Log = TypedEventLog<Event>;
|
|
63
|
+
export type LogDescription = TypedLogDescription<Event>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface Ownable extends BaseContract {
|
|
67
|
+
connect(runner?: ContractRunner | null): Ownable;
|
|
68
|
+
waitForDeployment(): Promise<this>;
|
|
69
|
+
|
|
70
|
+
interface: OwnableInterface;
|
|
71
|
+
|
|
72
|
+
queryFilter<TCEvent extends TypedContractEvent>(
|
|
73
|
+
event: TCEvent,
|
|
74
|
+
fromBlockOrBlockhash?: string | number | undefined,
|
|
75
|
+
toBlock?: string | number | undefined
|
|
76
|
+
): Promise<Array<TypedEventLog<TCEvent>>>;
|
|
77
|
+
queryFilter<TCEvent extends TypedContractEvent>(
|
|
78
|
+
filter: TypedDeferredTopicFilter<TCEvent>,
|
|
79
|
+
fromBlockOrBlockhash?: string | number | undefined,
|
|
80
|
+
toBlock?: string | number | undefined
|
|
81
|
+
): Promise<Array<TypedEventLog<TCEvent>>>;
|
|
82
|
+
|
|
83
|
+
on<TCEvent extends TypedContractEvent>(
|
|
84
|
+
event: TCEvent,
|
|
85
|
+
listener: TypedListener<TCEvent>
|
|
86
|
+
): Promise<this>;
|
|
87
|
+
on<TCEvent extends TypedContractEvent>(
|
|
88
|
+
filter: TypedDeferredTopicFilter<TCEvent>,
|
|
89
|
+
listener: TypedListener<TCEvent>
|
|
90
|
+
): Promise<this>;
|
|
91
|
+
|
|
92
|
+
once<TCEvent extends TypedContractEvent>(
|
|
93
|
+
event: TCEvent,
|
|
94
|
+
listener: TypedListener<TCEvent>
|
|
95
|
+
): Promise<this>;
|
|
96
|
+
once<TCEvent extends TypedContractEvent>(
|
|
97
|
+
filter: TypedDeferredTopicFilter<TCEvent>,
|
|
98
|
+
listener: TypedListener<TCEvent>
|
|
99
|
+
): Promise<this>;
|
|
100
|
+
|
|
101
|
+
listeners<TCEvent extends TypedContractEvent>(
|
|
102
|
+
event: TCEvent
|
|
103
|
+
): Promise<Array<TypedListener<TCEvent>>>;
|
|
104
|
+
listeners(eventName?: string): Promise<Array<Listener>>;
|
|
105
|
+
removeAllListeners<TCEvent extends TypedContractEvent>(
|
|
106
|
+
event?: TCEvent
|
|
107
|
+
): Promise<this>;
|
|
108
|
+
|
|
109
|
+
owner: TypedContractMethod<[], [string], "view">;
|
|
110
|
+
|
|
111
|
+
renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
|
|
112
|
+
|
|
113
|
+
transferOwnership: TypedContractMethod<
|
|
114
|
+
[newOwner: AddressLike],
|
|
115
|
+
[void],
|
|
116
|
+
"nonpayable"
|
|
117
|
+
>;
|
|
118
|
+
|
|
119
|
+
getFunction<T extends ContractMethod = ContractMethod>(
|
|
120
|
+
key: string | FunctionFragment
|
|
121
|
+
): T;
|
|
122
|
+
|
|
123
|
+
getFunction(
|
|
124
|
+
nameOrSignature: "owner"
|
|
125
|
+
): TypedContractMethod<[], [string], "view">;
|
|
126
|
+
getFunction(
|
|
127
|
+
nameOrSignature: "renounceOwnership"
|
|
128
|
+
): TypedContractMethod<[], [void], "nonpayable">;
|
|
129
|
+
getFunction(
|
|
130
|
+
nameOrSignature: "transferOwnership"
|
|
131
|
+
): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
|
|
132
|
+
|
|
133
|
+
getEvent(
|
|
134
|
+
key: "OwnershipTransferred"
|
|
135
|
+
): TypedContractEvent<
|
|
136
|
+
OwnershipTransferredEvent.InputTuple,
|
|
137
|
+
OwnershipTransferredEvent.OutputTuple,
|
|
138
|
+
OwnershipTransferredEvent.OutputObject
|
|
139
|
+
>;
|
|
140
|
+
|
|
141
|
+
filters: {
|
|
142
|
+
"OwnershipTransferred(address,address)": TypedContractEvent<
|
|
143
|
+
OwnershipTransferredEvent.InputTuple,
|
|
144
|
+
OwnershipTransferredEvent.OutputTuple,
|
|
145
|
+
OwnershipTransferredEvent.OutputObject
|
|
146
|
+
>;
|
|
147
|
+
OwnershipTransferred: TypedContractEvent<
|
|
148
|
+
OwnershipTransferredEvent.InputTuple,
|
|
149
|
+
OwnershipTransferredEvent.OutputTuple,
|
|
150
|
+
OwnershipTransferredEvent.OutputObject
|
|
151
|
+
>;
|
|
152
|
+
};
|
|
153
|
+
}
|