@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,32 @@
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
+ IInputVerifier,
8
+ IInputVerifierInterface,
9
+ } from "../../../../../@fhevm/solidity/lib/Impl.sol/IInputVerifier";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [],
14
+ name: "cleanTransientStorage",
15
+ outputs: [],
16
+ stateMutability: "nonpayable",
17
+ type: "function",
18
+ },
19
+ ] as const;
20
+
21
+ export class IInputVerifier__factory {
22
+ static readonly abi = _abi;
23
+ static createInterface(): IInputVerifierInterface {
24
+ return new Interface(_abi) as IInputVerifierInterface;
25
+ }
26
+ static connect(
27
+ address: string,
28
+ runner?: ContractRunner | null
29
+ ): IInputVerifier {
30
+ return new Contract(address, _abi, runner) as unknown as IInputVerifier;
31
+ }
32
+ }
@@ -0,0 +1,6 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { IACL__factory } from "./IACL__factory";
5
+ export { IFHEVMExecutor__factory } from "./IFHEVMExecutor__factory";
6
+ export { IInputVerifier__factory } from "./IInputVerifier__factory";
@@ -0,0 +1,5 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as fheSol from "./FHE.sol";
5
+ export * as implSol from "./Impl.sol";
@@ -0,0 +1,437 @@
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 {
11
+ Signer,
12
+ BigNumberish,
13
+ AddressLike,
14
+ ContractDeployTransaction,
15
+ ContractRunner,
16
+ } from "ethers";
17
+ import type { NonPayableOverrides } from "../../../common";
18
+ import type {
19
+ ComplianceRules,
20
+ ComplianceRulesInterface,
21
+ } from "../../../contracts/compliance/ComplianceRules";
22
+
23
+ const _abi = [
24
+ {
25
+ inputs: [
26
+ {
27
+ internalType: "address",
28
+ name: "registry",
29
+ type: "address",
30
+ },
31
+ {
32
+ internalType: "uint8",
33
+ name: "initialMinKycLevel",
34
+ type: "uint8",
35
+ },
36
+ ],
37
+ stateMutability: "nonpayable",
38
+ type: "constructor",
39
+ },
40
+ {
41
+ inputs: [],
42
+ name: "AccessProhibited",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [],
47
+ name: "CallerNotAuthorized",
48
+ type: "error",
49
+ },
50
+ {
51
+ inputs: [],
52
+ name: "InvalidOwner",
53
+ type: "error",
54
+ },
55
+ {
56
+ inputs: [],
57
+ name: "OnlyOwner",
58
+ type: "error",
59
+ },
60
+ {
61
+ inputs: [],
62
+ name: "OnlyPendingOwner",
63
+ type: "error",
64
+ },
65
+ {
66
+ inputs: [],
67
+ name: "RegistryNotSet",
68
+ type: "error",
69
+ },
70
+ {
71
+ inputs: [],
72
+ name: "ZamaProtocolUnsupported",
73
+ type: "error",
74
+ },
75
+ {
76
+ anonymous: false,
77
+ inputs: [
78
+ {
79
+ indexed: true,
80
+ internalType: "address",
81
+ name: "caller",
82
+ type: "address",
83
+ },
84
+ {
85
+ indexed: false,
86
+ internalType: "bool",
87
+ name: "allowed",
88
+ type: "bool",
89
+ },
90
+ ],
91
+ name: "AuthorizedCallerUpdated",
92
+ type: "event",
93
+ },
94
+ {
95
+ anonymous: false,
96
+ inputs: [
97
+ {
98
+ indexed: true,
99
+ internalType: "address",
100
+ name: "user",
101
+ type: "address",
102
+ },
103
+ ],
104
+ name: "ComplianceChecked",
105
+ type: "event",
106
+ },
107
+ {
108
+ anonymous: false,
109
+ inputs: [
110
+ {
111
+ indexed: true,
112
+ internalType: "uint8",
113
+ name: "newLevel",
114
+ type: "uint8",
115
+ },
116
+ ],
117
+ name: "MinKycLevelUpdated",
118
+ type: "event",
119
+ },
120
+ {
121
+ anonymous: false,
122
+ inputs: [
123
+ {
124
+ indexed: true,
125
+ internalType: "address",
126
+ name: "currentOwner",
127
+ type: "address",
128
+ },
129
+ {
130
+ indexed: true,
131
+ internalType: "address",
132
+ name: "pendingOwner",
133
+ type: "address",
134
+ },
135
+ ],
136
+ name: "OwnershipTransferStarted",
137
+ type: "event",
138
+ },
139
+ {
140
+ anonymous: false,
141
+ inputs: [
142
+ {
143
+ indexed: true,
144
+ internalType: "address",
145
+ name: "previousOwner",
146
+ type: "address",
147
+ },
148
+ {
149
+ indexed: true,
150
+ internalType: "address",
151
+ name: "newOwner",
152
+ type: "address",
153
+ },
154
+ ],
155
+ name: "OwnershipTransferred",
156
+ type: "event",
157
+ },
158
+ {
159
+ inputs: [],
160
+ name: "acceptOwnership",
161
+ outputs: [],
162
+ stateMutability: "nonpayable",
163
+ type: "function",
164
+ },
165
+ {
166
+ inputs: [
167
+ {
168
+ internalType: "address",
169
+ name: "caller",
170
+ type: "address",
171
+ },
172
+ ],
173
+ name: "authorizedCallers",
174
+ outputs: [
175
+ {
176
+ internalType: "bool",
177
+ name: "authorized",
178
+ type: "bool",
179
+ },
180
+ ],
181
+ stateMutability: "view",
182
+ type: "function",
183
+ },
184
+ {
185
+ inputs: [
186
+ {
187
+ internalType: "address",
188
+ name: "user",
189
+ type: "address",
190
+ },
191
+ ],
192
+ name: "checkCompliance",
193
+ outputs: [
194
+ {
195
+ internalType: "ebool",
196
+ name: "",
197
+ type: "bytes32",
198
+ },
199
+ ],
200
+ stateMutability: "nonpayable",
201
+ type: "function",
202
+ },
203
+ {
204
+ inputs: [
205
+ {
206
+ internalType: "address",
207
+ name: "user",
208
+ type: "address",
209
+ },
210
+ {
211
+ internalType: "uint16",
212
+ name: "allowedCountry",
213
+ type: "uint16",
214
+ },
215
+ ],
216
+ name: "checkComplianceWithCountry",
217
+ outputs: [
218
+ {
219
+ internalType: "ebool",
220
+ name: "",
221
+ type: "bytes32",
222
+ },
223
+ ],
224
+ stateMutability: "nonpayable",
225
+ type: "function",
226
+ },
227
+ {
228
+ inputs: [],
229
+ name: "confidentialProtocolId",
230
+ outputs: [
231
+ {
232
+ internalType: "uint256",
233
+ name: "",
234
+ type: "uint256",
235
+ },
236
+ ],
237
+ stateMutability: "view",
238
+ type: "function",
239
+ },
240
+ {
241
+ inputs: [
242
+ {
243
+ internalType: "address",
244
+ name: "user",
245
+ type: "address",
246
+ },
247
+ ],
248
+ name: "getComplianceResult",
249
+ outputs: [
250
+ {
251
+ internalType: "ebool",
252
+ name: "",
253
+ type: "bytes32",
254
+ },
255
+ ],
256
+ stateMutability: "view",
257
+ type: "function",
258
+ },
259
+ {
260
+ inputs: [
261
+ {
262
+ internalType: "address",
263
+ name: "user",
264
+ type: "address",
265
+ },
266
+ ],
267
+ name: "hasComplianceResult",
268
+ outputs: [
269
+ {
270
+ internalType: "bool",
271
+ name: "",
272
+ type: "bool",
273
+ },
274
+ ],
275
+ stateMutability: "view",
276
+ type: "function",
277
+ },
278
+ {
279
+ inputs: [],
280
+ name: "identityRegistry",
281
+ outputs: [
282
+ {
283
+ internalType: "contract IIdentityRegistry",
284
+ name: "",
285
+ type: "address",
286
+ },
287
+ ],
288
+ stateMutability: "view",
289
+ type: "function",
290
+ },
291
+ {
292
+ inputs: [],
293
+ name: "minKycLevel",
294
+ outputs: [
295
+ {
296
+ internalType: "uint8",
297
+ name: "",
298
+ type: "uint8",
299
+ },
300
+ ],
301
+ stateMutability: "view",
302
+ type: "function",
303
+ },
304
+ {
305
+ inputs: [],
306
+ name: "owner",
307
+ outputs: [
308
+ {
309
+ internalType: "address",
310
+ name: "",
311
+ type: "address",
312
+ },
313
+ ],
314
+ stateMutability: "view",
315
+ type: "function",
316
+ },
317
+ {
318
+ inputs: [],
319
+ name: "pendingOwner",
320
+ outputs: [
321
+ {
322
+ internalType: "address",
323
+ name: "",
324
+ type: "address",
325
+ },
326
+ ],
327
+ stateMutability: "view",
328
+ type: "function",
329
+ },
330
+ {
331
+ inputs: [
332
+ {
333
+ internalType: "address",
334
+ name: "caller",
335
+ type: "address",
336
+ },
337
+ {
338
+ internalType: "bool",
339
+ name: "allowed",
340
+ type: "bool",
341
+ },
342
+ ],
343
+ name: "setAuthorizedCaller",
344
+ outputs: [],
345
+ stateMutability: "nonpayable",
346
+ type: "function",
347
+ },
348
+ {
349
+ inputs: [
350
+ {
351
+ internalType: "uint8",
352
+ name: "newLevel",
353
+ type: "uint8",
354
+ },
355
+ ],
356
+ name: "setMinKycLevel",
357
+ outputs: [],
358
+ stateMutability: "nonpayable",
359
+ type: "function",
360
+ },
361
+ {
362
+ inputs: [
363
+ {
364
+ internalType: "address",
365
+ name: "newOwner",
366
+ type: "address",
367
+ },
368
+ ],
369
+ name: "transferOwnership",
370
+ outputs: [],
371
+ stateMutability: "nonpayable",
372
+ type: "function",
373
+ },
374
+ ] as const;
375
+
376
+ const _bytecode =
377
+ "0x60a060405234801561000f575f5ffd5b5060405161129b38038061129b83398101604081905261002e916102ba565b6100e261003961014b565b80517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e464970080546001600160a01b03199081166001600160a01b039384161790915560208301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497018054831691841691909117905560408301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497028054909216921691909117905550565b6001600160a01b03821661010957604051630e048e7160e41b815260040160405180910390fd5b6001600160a01b039091166080525f80546001600160a01b031916331790556001805460ff909216600160a01b0260ff60a01b19909216919091179055610302565b604080516060810182525f8082526020820181905291810191909152466001036101a4575060408051606080820183525f8083526020808401829052928401819052835191820184528082529181018290529182015290565b4662aa36a703610223575060408051606080820183525f8083526020808401829052928401528251908101835273f0ffdc93b7e186bc2f8cb3daa75d86d1930a433d81527392c920834ec8941d2c77d188936e1f7a6f49c1279181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b46617a69036102a1575060408051606080820183525f808352602080840182905292840152825190810183527350157cffd6bbfa2dece204a89ec419c23ef5755d815273e3a9105a3a932253a70f126eb1e3b589c643dd249181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b6040516373cac13b60e01b815260040160405180910390fd5b5f5f604083850312156102cb575f5ffd5b82516001600160a01b03811681146102e1575f5ffd5b602084015190925060ff811681146102f7575f5ffd5b809150509250929050565b608051610f5161034a5f395f818160ee01528181610329015281816103f20152818161048001528181610518015281816106560152818161073901526107c70152610f515ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c806379ba509711610088578063b4d7ed3b11610063578063b4d7ed3b146101f0578063e30c397814610216578063e451a1b414610229578063f2fde38b1461023c575f5ffd5b806379ba5097146101ce5780638927b030146101d65780638da5cb5b146101de575f5ffd5b80632c289dcf116100c35780632c289dcf14610163578063454bbd2914610176578063536fff6c14610189578063714d3178146101bb575f5ffd5b8063134e18f4146100e95780631cf794b81461012d57806322005b5e14610142575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61014061013b366004610dd0565b61024f565b005b610155610150366004610e0b565b6102c2565b604051908152602001610124565b610155610171366004610e46565b6105ef565b610140610184366004610e6f565b6108ad565b6101ab610197366004610e46565b60036020525f908152604090205460ff1681565b6040519015158152602001610124565b6101ab6101c9366004610e46565b610935565b610140610956565b6101556109da565b5f54610110906001600160a01b031681565b60015461020490600160a01b900460ff1681565b60405160ff9091168152602001610124565b600154610110906001600160a01b031681565b610155610237366004610e46565b6109e8565b61014061024a366004610e46565b610a26565b5f546001600160a01b0316331461027957604051635fc483c560e01b815260040160405180910390fd5b6001805460ff60a01b1916600160a01b60ff8416908102919091179091556040517f4112c9bab84e64484a432251785f83b12087c4e24f7234af674069ee9e94b549905f90a250565b5f82336001600160a01b038216148015906102ec5750335f9081526003602052604090205460ff16155b1561030a5760405163c183bcef60e01b815260040160405180910390fd5b604051631e11d7dd60e11b81526001600160a01b0385811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633c23afba90602401602060405180830381865afa15801561036e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103929190610e99565b6103be575f6103a05f610ac7565b90506103ab81610ae2565b506103b68133610af1565b5091506105e8565b600154604051632afc1eeb60e01b81526001600160a01b038681166004830152600160a01b90920460ff1660248201525f917f00000000000000000000000000000000000000000000000000000000000000001690632afc1eeb906044016020604051808303815f875af1158015610438573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061045c9190610eb4565b60405163b745e8b160e01b81526001600160a01b0387811660048301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063b745e8b1906024016020604051808303815f875af11580156104c6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ea9190610eb4565b6040516391b4975560e01b81526001600160a01b03888116600483015261ffff881660248301529192505f917f000000000000000000000000000000000000000000000000000000000000000016906391b49755906044016020604051808303815f875af115801561055e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190610eb4565b90505f6105986105928585610b03565b83610b03565b90506105a381610ae2565b506105ae8133610af1565b506040516001600160a01b038916907f296fb6ae07b0cc29ce12d17d682365452ebd827f6f17a1ff7478ef0a1edae665905f90a294505050505b5092915050565b5f81336001600160a01b038216148015906106195750335f9081526003602052604090205460ff16155b156106375760405163c183bcef60e01b815260040160405180910390fd5b604051631e11d7dd60e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690633c23afba90602401602060405180830381865afa15801561069b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106bf9190610e99565b610705575f6106cd5f610ac7565b90506106d881610ae2565b506106e38133610af1565b506001600160a01b0384165f90815260026020526040902081905591506108a7565b600154604051632afc1eeb60e01b81526001600160a01b038581166004830152600160a01b90920460ff1660248201525f917f00000000000000000000000000000000000000000000000000000000000000001690632afc1eeb906044016020604051808303815f875af115801561077f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a39190610eb4565b60405163b745e8b160e01b81526001600160a01b0386811660048301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063b745e8b1906024016020604051808303815f875af115801561080d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108319190610eb4565b90505f61083e8383610b03565b6001600160a01b0387165f908152600260205260409020819055905061086381610ae2565b5061086e8133610af1565b506040516001600160a01b038716907f296fb6ae07b0cc29ce12d17d682365452ebd827f6f17a1ff7478ef0a1edae665905f90a2935050505b50919050565b5f546001600160a01b031633146108d757604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0382165f81815260036020908152604091829020805460ff191685151590811790915591519182527fad857fa38c9319cb80848f1ef2f924383b90297eb5d71755738ff037d100faa1910160405180910390a25050565b6001600160a01b0381165f9081526002602052604081205415155b92915050565b6001546001600160a01b03163314610981576040516303c25d1960e61b815260040160405180910390fd5b5f8054600180546001600160a01b038082166001600160a01b031980861682178755909216909255604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b5f6109e3610b38565b905090565b6001600160a01b0381165f90815260026020526040812054610a0981610b6c565b61095057604051631a6bd1fd60e01b815260040160405180910390fd5b5f546001600160a01b03163314610a5057604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b038116610a77576040516349e27cff60e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009190a350565b5f61095082610ad6575f610ad9565b60015b60ff165f610b77565b5f610aed8230610c21565b5090565b5f610afc8383610c21565b5090919050565b5f82610b1557610b125f610ac7565b92505b81610b2657610b235f610ac7565b91505b610b3183835f610c97565b9392505050565b5f46600103610b475750600190565b4662aa36a703610b58575061271190565b46617a6903610b6757505f1990565b505f90565b5f6109508233610d4c565b7f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e464970154604051639cd07acb60e01b81525f915f516020610efc5f395f51905f52916001600160a01b0390911690639cd07acb90610bd99087908790600401610ecb565b6020604051808303815f875af1158015610bf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c199190610eb4565b949350505050565b5f5f516020610efc5f395f51905f528054604051635ca4b5b160e11b8152600481018690526001600160a01b03858116602483015292935091169063b9496b62906044015f604051808303815f87803b158015610c7c575f5ffd5b505af1158015610c8e573d5f5f3e3d5ffd5b50505050505050565b5f5f8215610caa5750600160f81b610cad565b505f5b5f5f516020610efc5f395f51905f52600181015460405163d99882d560e01b815260048101899052602481018890526001600160f81b0319851660448201529192506001600160a01b03169063d99882d5906064016020604051808303815f875af1158015610d1e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d429190610eb4565b9695505050505050565b5f805f516020610efc5f395f51905f5280546040516382027b6d60e01b8152600481018790526001600160a01b0386811660248301529293509116906382027b6d90604401602060405180830381865afa158015610dac573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c199190610e99565b5f60208284031215610de0575f5ffd5b813560ff81168114610b31575f5ffd5b80356001600160a01b0381168114610e06575f5ffd5b919050565b5f5f60408385031215610e1c575f5ffd5b610e2583610df0565b9150602083013561ffff81168114610e3b575f5ffd5b809150509250929050565b5f60208284031215610e56575f5ffd5b610b3182610df0565b8015158114610e6c575f5ffd5b50565b5f5f60408385031215610e80575f5ffd5b610e8983610df0565b91506020830135610e3b81610e5f565b5f60208284031215610ea9575f5ffd5b8151610b3181610e5f565b5f60208284031215610ec4575f5ffd5b5051919050565b8281526040810160548310610eee57634e487b7160e01b5f52602160045260245ffd5b826020830152939250505056fe9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e4649700a2646970667358221220a175d811e808e08bb38fd1de91e102a6f75292eb961ac59f1bb081a6bdba991d64736f6c634300081b0033";
378
+
379
+ type ComplianceRulesConstructorParams =
380
+ | [signer?: Signer]
381
+ | ConstructorParameters<typeof ContractFactory>;
382
+
383
+ const isSuperArgs = (
384
+ xs: ComplianceRulesConstructorParams
385
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
386
+
387
+ export class ComplianceRules__factory extends ContractFactory {
388
+ constructor(...args: ComplianceRulesConstructorParams) {
389
+ if (isSuperArgs(args)) {
390
+ super(...args);
391
+ } else {
392
+ super(_abi, _bytecode, args[0]);
393
+ }
394
+ }
395
+
396
+ override getDeployTransaction(
397
+ registry: AddressLike,
398
+ initialMinKycLevel: BigNumberish,
399
+ overrides?: NonPayableOverrides & { from?: string }
400
+ ): Promise<ContractDeployTransaction> {
401
+ return super.getDeployTransaction(
402
+ registry,
403
+ initialMinKycLevel,
404
+ overrides || {}
405
+ );
406
+ }
407
+ override deploy(
408
+ registry: AddressLike,
409
+ initialMinKycLevel: BigNumberish,
410
+ overrides?: NonPayableOverrides & { from?: string }
411
+ ) {
412
+ return super.deploy(
413
+ registry,
414
+ initialMinKycLevel,
415
+ overrides || {}
416
+ ) as Promise<
417
+ ComplianceRules & {
418
+ deploymentTransaction(): ContractTransactionResponse;
419
+ }
420
+ >;
421
+ }
422
+ override connect(runner: ContractRunner | null): ComplianceRules__factory {
423
+ return super.connect(runner) as ComplianceRules__factory;
424
+ }
425
+
426
+ static readonly bytecode = _bytecode;
427
+ static readonly abi = _abi;
428
+ static createInterface(): ComplianceRulesInterface {
429
+ return new Interface(_abi) as ComplianceRulesInterface;
430
+ }
431
+ static connect(
432
+ address: string,
433
+ runner?: ContractRunner | null
434
+ ): ComplianceRules {
435
+ return new Contract(address, _abi, runner) as unknown as ComplianceRules;
436
+ }
437
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export { ComplianceRules__factory } from "./ComplianceRules__factory";