@zentity/fhevm-contracts 0.3.0 → 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.
Files changed (117) hide show
  1. package/abi/ComplianceRules.json +25 -16
  2. package/abi/CompliantERC20.json +30 -16
  3. package/abi/IdentityRegistry.json +496 -119
  4. package/contracts/compliance/ComplianceRules.sol +40 -189
  5. package/contracts/core/IdentityRegistry.sol +280 -232
  6. package/contracts/interfaces/IComplianceRules.sol +30 -0
  7. package/contracts/interfaces/IIdentityRegistry.sol +133 -159
  8. package/contracts/proxy/ERC1967Proxy.sol +6 -0
  9. package/contracts/test/MockFacilitator.sol +40 -0
  10. package/contracts/tokens/CompliantERC20.sol +28 -242
  11. package/deployments/hardhat/addresses.json +3 -8
  12. package/dist/index.d.ts +175 -9
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +44 -1
  15. package/package.json +1 -1
  16. package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -0
  17. package/typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts +217 -0
  18. package/typechain-types/@openzeppelin/contracts/access/index.ts +5 -0
  19. package/typechain-types/@openzeppelin/contracts/index.ts +11 -0
  20. package/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.ts +168 -0
  21. package/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts +151 -0
  22. package/typechain-types/{contracts/tokens/CompliantERC20.sol/IComplianceChecker.ts → @openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.ts} +12 -17
  23. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
  24. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +7 -0
  25. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +105 -0
  26. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.ts +69 -0
  27. package/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  28. package/typechain-types/@openzeppelin/contracts/proxy/Proxy.ts +69 -0
  29. package/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.ts +90 -0
  30. package/typechain-types/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
  31. package/typechain-types/@openzeppelin/contracts/proxy/index.ts +8 -0
  32. package/typechain-types/@openzeppelin/contracts/utils/Address.ts +69 -0
  33. package/typechain-types/@openzeppelin/contracts/utils/Errors.ts +69 -0
  34. package/typechain-types/@openzeppelin/contracts/utils/Strings.ts +69 -0
  35. package/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +69 -0
  36. package/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +4 -0
  37. package/typechain-types/@openzeppelin/contracts/utils/index.ts +10 -0
  38. package/typechain-types/@openzeppelin/contracts/utils/math/SafeCast.ts +69 -0
  39. package/typechain-types/@openzeppelin/contracts/utils/math/index.ts +4 -0
  40. package/typechain-types/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.ts +251 -0
  41. package/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts +186 -0
  42. package/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
  43. package/typechain-types/@openzeppelin/contracts-upgradeable/index.ts +9 -0
  44. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts +5 -0
  45. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts +105 -0
  46. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts +196 -0
  47. package/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
  48. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts +105 -0
  49. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.ts +184 -0
  50. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/cryptography/index.ts +4 -0
  51. package/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts +6 -0
  52. package/typechain-types/@openzeppelin/index.ts +7 -0
  53. package/typechain-types/contracts/compliance/ComplianceRules.ts +18 -7
  54. package/typechain-types/contracts/core/IdentityRegistry.ts +493 -233
  55. package/typechain-types/contracts/index.ts +2 -0
  56. package/typechain-types/contracts/interfaces/IComplianceRules.ts +290 -0
  57. package/typechain-types/contracts/interfaces/IIdentityRegistry.ts +269 -341
  58. package/typechain-types/contracts/interfaces/index.ts +1 -0
  59. package/typechain-types/contracts/test/MockFacilitator.ts +187 -0
  60. package/typechain-types/contracts/test/index.ts +4 -0
  61. package/typechain-types/contracts/tokens/{CompliantERC20.sol/CompliantERC20.ts → CompliantERC20.ts} +19 -8
  62. package/typechain-types/contracts/tokens/index.ts +1 -2
  63. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts +138 -0
  64. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +96 -0
  65. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +5 -0
  66. package/typechain-types/factories/@openzeppelin/contracts/index.ts +7 -0
  67. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.ts +67 -0
  68. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC5267__factory.ts +71 -0
  69. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable__factory.ts +38 -0
  70. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/index.ts +4 -0
  71. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +6 -0
  72. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +144 -0
  73. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +105 -0
  74. package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +5 -0
  75. package/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.ts +26 -0
  76. package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.ts +35 -0
  77. package/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.ts +4 -0
  78. package/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +6 -0
  79. package/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts +75 -0
  80. package/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts +101 -0
  81. package/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +90 -0
  82. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +91 -0
  83. package/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +4 -0
  84. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +8 -0
  85. package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +118 -0
  86. package/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +4 -0
  87. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable__factory.ts +165 -0
  88. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts +122 -0
  89. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts +5 -0
  90. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts +6 -0
  91. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts +4 -0
  92. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts +48 -0
  93. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts +153 -0
  94. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts +5 -0
  95. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts +48 -0
  96. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable__factory.ts +97 -0
  97. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/cryptography/index.ts +4 -0
  98. package/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts +5 -0
  99. package/typechain-types/factories/@openzeppelin/index.ts +5 -0
  100. package/typechain-types/factories/contracts/compliance/ComplianceRules__factory.ts +26 -17
  101. package/typechain-types/factories/contracts/core/IdentityRegistry__factory.ts +493 -116
  102. package/typechain-types/factories/contracts/index.ts +1 -0
  103. package/typechain-types/factories/contracts/interfaces/IComplianceRules__factory.ts +193 -0
  104. package/typechain-types/factories/contracts/interfaces/IIdentityRegistry__factory.ts +236 -186
  105. package/typechain-types/factories/contracts/interfaces/index.ts +1 -0
  106. package/typechain-types/factories/contracts/test/MockFacilitator__factory.ts +194 -0
  107. package/typechain-types/factories/contracts/test/index.ts +4 -0
  108. package/typechain-types/factories/contracts/tokens/CompliantERC20__factory.ts +595 -0
  109. package/typechain-types/factories/contracts/tokens/index.ts +1 -1
  110. package/typechain-types/factories/index.ts +1 -0
  111. package/typechain-types/hardhat.d.ts +394 -16
  112. package/typechain-types/index.ts +48 -4
  113. package/deployments/hardhat/.chainId +0 -1
  114. package/typechain-types/contracts/tokens/CompliantERC20.sol/index.ts +0 -5
  115. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/CompliantERC20__factory.ts +0 -581
  116. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/IComplianceChecker__factory.ts +0 -44
  117. package/typechain-types/factories/contracts/tokens/CompliantERC20.sol/index.ts +0 -5
@@ -0,0 +1,595 @@
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
+ AddressLike,
13
+ ContractDeployTransaction,
14
+ ContractRunner,
15
+ } from "ethers";
16
+ import type { NonPayableOverrides } from "../../../common";
17
+ import type {
18
+ CompliantERC20,
19
+ CompliantERC20Interface,
20
+ } from "../../../contracts/tokens/CompliantERC20";
21
+
22
+ const _abi = [
23
+ {
24
+ inputs: [
25
+ {
26
+ internalType: "string",
27
+ name: "tokenName",
28
+ type: "string",
29
+ },
30
+ {
31
+ internalType: "string",
32
+ name: "tokenSymbol",
33
+ type: "string",
34
+ },
35
+ {
36
+ internalType: "address",
37
+ name: "checker",
38
+ type: "address",
39
+ },
40
+ ],
41
+ stateMutability: "nonpayable",
42
+ type: "constructor",
43
+ },
44
+ {
45
+ inputs: [],
46
+ name: "ComplianceCheckerNotSet",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [
51
+ {
52
+ internalType: "address",
53
+ name: "owner",
54
+ type: "address",
55
+ },
56
+ ],
57
+ name: "OwnableInvalidOwner",
58
+ type: "error",
59
+ },
60
+ {
61
+ inputs: [
62
+ {
63
+ internalType: "address",
64
+ name: "account",
65
+ type: "address",
66
+ },
67
+ ],
68
+ name: "OwnableUnauthorizedAccount",
69
+ type: "error",
70
+ },
71
+ {
72
+ inputs: [],
73
+ name: "TotalSupplyOverflow",
74
+ type: "error",
75
+ },
76
+ {
77
+ inputs: [],
78
+ name: "UnauthorizedCiphertext",
79
+ type: "error",
80
+ },
81
+ {
82
+ inputs: [],
83
+ name: "ZamaProtocolUnsupported",
84
+ type: "error",
85
+ },
86
+ {
87
+ anonymous: false,
88
+ inputs: [
89
+ {
90
+ indexed: true,
91
+ internalType: "address",
92
+ name: "owner",
93
+ type: "address",
94
+ },
95
+ {
96
+ indexed: true,
97
+ internalType: "address",
98
+ name: "spender",
99
+ type: "address",
100
+ },
101
+ ],
102
+ name: "Approval",
103
+ type: "event",
104
+ },
105
+ {
106
+ anonymous: false,
107
+ inputs: [
108
+ {
109
+ indexed: true,
110
+ internalType: "address",
111
+ name: "newChecker",
112
+ type: "address",
113
+ },
114
+ ],
115
+ name: "ComplianceCheckerUpdated",
116
+ type: "event",
117
+ },
118
+ {
119
+ anonymous: false,
120
+ inputs: [
121
+ {
122
+ indexed: true,
123
+ internalType: "address",
124
+ name: "to",
125
+ type: "address",
126
+ },
127
+ {
128
+ indexed: true,
129
+ internalType: "uint256",
130
+ name: "amount",
131
+ type: "uint256",
132
+ },
133
+ ],
134
+ name: "Mint",
135
+ type: "event",
136
+ },
137
+ {
138
+ anonymous: false,
139
+ inputs: [
140
+ {
141
+ indexed: true,
142
+ internalType: "address",
143
+ name: "previousOwner",
144
+ type: "address",
145
+ },
146
+ {
147
+ indexed: true,
148
+ internalType: "address",
149
+ name: "newOwner",
150
+ type: "address",
151
+ },
152
+ ],
153
+ name: "OwnershipTransferStarted",
154
+ type: "event",
155
+ },
156
+ {
157
+ anonymous: false,
158
+ inputs: [
159
+ {
160
+ indexed: true,
161
+ internalType: "address",
162
+ name: "previousOwner",
163
+ type: "address",
164
+ },
165
+ {
166
+ indexed: true,
167
+ internalType: "address",
168
+ name: "newOwner",
169
+ type: "address",
170
+ },
171
+ ],
172
+ name: "OwnershipTransferred",
173
+ type: "event",
174
+ },
175
+ {
176
+ anonymous: false,
177
+ inputs: [
178
+ {
179
+ indexed: true,
180
+ internalType: "address",
181
+ name: "from",
182
+ type: "address",
183
+ },
184
+ {
185
+ indexed: true,
186
+ internalType: "address",
187
+ name: "to",
188
+ type: "address",
189
+ },
190
+ ],
191
+ name: "Transfer",
192
+ type: "event",
193
+ },
194
+ {
195
+ inputs: [],
196
+ name: "DECIMALS",
197
+ outputs: [
198
+ {
199
+ internalType: "uint8",
200
+ name: "",
201
+ type: "uint8",
202
+ },
203
+ ],
204
+ stateMutability: "view",
205
+ type: "function",
206
+ },
207
+ {
208
+ inputs: [],
209
+ name: "acceptOwnership",
210
+ outputs: [],
211
+ stateMutability: "nonpayable",
212
+ type: "function",
213
+ },
214
+ {
215
+ inputs: [
216
+ {
217
+ internalType: "address",
218
+ name: "account",
219
+ type: "address",
220
+ },
221
+ {
222
+ internalType: "address",
223
+ name: "spender",
224
+ type: "address",
225
+ },
226
+ ],
227
+ name: "allowance",
228
+ outputs: [
229
+ {
230
+ internalType: "euint64",
231
+ name: "",
232
+ type: "bytes32",
233
+ },
234
+ ],
235
+ stateMutability: "view",
236
+ type: "function",
237
+ },
238
+ {
239
+ inputs: [
240
+ {
241
+ internalType: "address",
242
+ name: "spender",
243
+ type: "address",
244
+ },
245
+ {
246
+ internalType: "externalEuint64",
247
+ name: "encryptedAmount",
248
+ type: "bytes32",
249
+ },
250
+ {
251
+ internalType: "bytes",
252
+ name: "inputProof",
253
+ type: "bytes",
254
+ },
255
+ ],
256
+ name: "approve",
257
+ outputs: [
258
+ {
259
+ internalType: "bool",
260
+ name: "",
261
+ type: "bool",
262
+ },
263
+ ],
264
+ stateMutability: "nonpayable",
265
+ type: "function",
266
+ },
267
+ {
268
+ inputs: [
269
+ {
270
+ internalType: "address",
271
+ name: "account",
272
+ type: "address",
273
+ },
274
+ ],
275
+ name: "balanceOf",
276
+ outputs: [
277
+ {
278
+ internalType: "euint64",
279
+ name: "",
280
+ type: "bytes32",
281
+ },
282
+ ],
283
+ stateMutability: "view",
284
+ type: "function",
285
+ },
286
+ {
287
+ inputs: [],
288
+ name: "complianceChecker",
289
+ outputs: [
290
+ {
291
+ internalType: "contract IComplianceRules",
292
+ name: "",
293
+ type: "address",
294
+ },
295
+ ],
296
+ stateMutability: "view",
297
+ type: "function",
298
+ },
299
+ {
300
+ inputs: [],
301
+ name: "confidentialProtocolId",
302
+ outputs: [
303
+ {
304
+ internalType: "uint256",
305
+ name: "",
306
+ type: "uint256",
307
+ },
308
+ ],
309
+ stateMutability: "view",
310
+ type: "function",
311
+ },
312
+ {
313
+ inputs: [],
314
+ name: "decimals",
315
+ outputs: [
316
+ {
317
+ internalType: "uint8",
318
+ name: "",
319
+ type: "uint8",
320
+ },
321
+ ],
322
+ stateMutability: "pure",
323
+ type: "function",
324
+ },
325
+ {
326
+ inputs: [
327
+ {
328
+ internalType: "address",
329
+ name: "to",
330
+ type: "address",
331
+ },
332
+ {
333
+ internalType: "uint256",
334
+ name: "amount",
335
+ type: "uint256",
336
+ },
337
+ ],
338
+ name: "mint",
339
+ outputs: [],
340
+ stateMutability: "nonpayable",
341
+ type: "function",
342
+ },
343
+ {
344
+ inputs: [],
345
+ name: "name",
346
+ outputs: [
347
+ {
348
+ internalType: "string",
349
+ name: "",
350
+ type: "string",
351
+ },
352
+ ],
353
+ stateMutability: "view",
354
+ type: "function",
355
+ },
356
+ {
357
+ inputs: [],
358
+ name: "owner",
359
+ outputs: [
360
+ {
361
+ internalType: "address",
362
+ name: "",
363
+ type: "address",
364
+ },
365
+ ],
366
+ stateMutability: "view",
367
+ type: "function",
368
+ },
369
+ {
370
+ inputs: [],
371
+ name: "pendingOwner",
372
+ outputs: [
373
+ {
374
+ internalType: "address",
375
+ name: "",
376
+ type: "address",
377
+ },
378
+ ],
379
+ stateMutability: "view",
380
+ type: "function",
381
+ },
382
+ {
383
+ inputs: [],
384
+ name: "renounceOwnership",
385
+ outputs: [],
386
+ stateMutability: "nonpayable",
387
+ type: "function",
388
+ },
389
+ {
390
+ inputs: [
391
+ {
392
+ internalType: "address",
393
+ name: "checker",
394
+ type: "address",
395
+ },
396
+ ],
397
+ name: "setComplianceChecker",
398
+ outputs: [],
399
+ stateMutability: "nonpayable",
400
+ type: "function",
401
+ },
402
+ {
403
+ inputs: [],
404
+ name: "symbol",
405
+ outputs: [
406
+ {
407
+ internalType: "string",
408
+ name: "",
409
+ type: "string",
410
+ },
411
+ ],
412
+ stateMutability: "view",
413
+ type: "function",
414
+ },
415
+ {
416
+ inputs: [],
417
+ name: "totalSupply",
418
+ outputs: [
419
+ {
420
+ internalType: "uint256",
421
+ name: "",
422
+ type: "uint256",
423
+ },
424
+ ],
425
+ stateMutability: "view",
426
+ type: "function",
427
+ },
428
+ {
429
+ inputs: [
430
+ {
431
+ internalType: "address",
432
+ name: "to",
433
+ type: "address",
434
+ },
435
+ {
436
+ internalType: "externalEuint64",
437
+ name: "encryptedAmount",
438
+ type: "bytes32",
439
+ },
440
+ {
441
+ internalType: "bytes",
442
+ name: "inputProof",
443
+ type: "bytes",
444
+ },
445
+ ],
446
+ name: "transfer",
447
+ outputs: [
448
+ {
449
+ internalType: "bool",
450
+ name: "",
451
+ type: "bool",
452
+ },
453
+ ],
454
+ stateMutability: "nonpayable",
455
+ type: "function",
456
+ },
457
+ {
458
+ inputs: [
459
+ {
460
+ internalType: "address",
461
+ name: "to",
462
+ type: "address",
463
+ },
464
+ {
465
+ internalType: "euint64",
466
+ name: "amount",
467
+ type: "bytes32",
468
+ },
469
+ ],
470
+ name: "transfer",
471
+ outputs: [
472
+ {
473
+ internalType: "bool",
474
+ name: "",
475
+ type: "bool",
476
+ },
477
+ ],
478
+ stateMutability: "nonpayable",
479
+ type: "function",
480
+ },
481
+ {
482
+ inputs: [
483
+ {
484
+ internalType: "address",
485
+ name: "from",
486
+ type: "address",
487
+ },
488
+ {
489
+ internalType: "address",
490
+ name: "to",
491
+ type: "address",
492
+ },
493
+ {
494
+ internalType: "externalEuint64",
495
+ name: "encryptedAmount",
496
+ type: "bytes32",
497
+ },
498
+ {
499
+ internalType: "bytes",
500
+ name: "inputProof",
501
+ type: "bytes",
502
+ },
503
+ ],
504
+ name: "transferFrom",
505
+ outputs: [
506
+ {
507
+ internalType: "bool",
508
+ name: "",
509
+ type: "bool",
510
+ },
511
+ ],
512
+ stateMutability: "nonpayable",
513
+ type: "function",
514
+ },
515
+ {
516
+ inputs: [
517
+ {
518
+ internalType: "address",
519
+ name: "newOwner",
520
+ type: "address",
521
+ },
522
+ ],
523
+ name: "transferOwnership",
524
+ outputs: [],
525
+ stateMutability: "nonpayable",
526
+ type: "function",
527
+ },
528
+ ] as const;
529
+
530
+ const _bytecode =
531
+ "0x608060405234801561000f575f5ffd5b50604051611af1380380611af183398101604081905261002e916103da565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c816100ba565b5061006d6100686100d6565b610245565b600261007984826104e3565b50600361008683826104e3565b506001600160a01b038116156100b257600780546001600160a01b0319166001600160a01b0383161790555b50505061059d565b600180546001600160a01b03191690556100d3816102ee565b50565b604080516060810182525f80825260208201819052918101919091524660010361012f575060408051606080820183525f8083526020808401829052928401819052835191820184528082529181018290529182015290565b4662aa36a7036101ae575060408051606080820183525f8083526020808401829052928401528251908101835273f0ffdc93b7e186bc2f8cb3daa75d86d1930a433d81527392c920834ec8941d2c77d188936e1f7a6f49c1279181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b46617a690361022c575060408051606080820183525f808352602080840182905292840152825190810183527350157cffd6bbfa2dece204a89ec419c23ef5755d815273e3a9105a3a932253a70f126eb1e3b589c643dd249181019190915273be0e383937d564d7ff0bc3b46c51f0bf8d5c311a9181019190915290565b6040516373cac13b60e01b815260040160405180910390fd5b80517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e464970080546001600160a01b03199081166001600160a01b039384161790915560208301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497018054831691841691909117905560408301517f9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497028054909216921691909117905550565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610360575f5ffd5b81516001600160401b038111156103795761037961033d565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103a7576103a761033d565b6040528181528382016020018510156103be575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f606084860312156103ec575f5ffd5b83516001600160401b03811115610401575f5ffd5b61040d86828701610351565b602086015190945090506001600160401b0381111561042a575f5ffd5b61043686828701610351565b604086015190935090506001600160a01b0381168114610454575f5ffd5b809150509250925092565b600181811c9082168061047357607f821691505b60208210810361049157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104de57805f5260205f20601f840160051c810160208510156104bc5750805b601f840160051c820191505b818110156104db575f81556001016104c8565b50505b505050565b81516001600160401b038111156104fc576104fc61033d565b6105108161050a845461045f565b84610497565b6020601f821160018114610542575f831561052b5750848201515b5f19600385901b1c1916600184901b1784556104db565b5f84815260208120601f198516915b828110156105715787850151825560209485019460019092019101610551565b508482101561058e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b611547806105aa5f395ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c80637d32e7bd116100a9578063b32c10011161006e578063b32c10011461025e578063c8fbd4b314610271578063dd62ed3e14610284578063e30c3978146102bc578063f2fde38b146102cd575f5ffd5b80637d32e7bd146102045780638927b030146102175780638da5cb5b1461021f57806395d89b41146102435780639a0943521461024b575f5ffd5b80636015992b116100ef5780636015992b1461019657806370a08231146101a9578063715018a6146101d157806379ba5097146101d95780637b7e0a5a146101e1575f5ffd5b806306fdde031461012b57806318160ddd146101495780632e0f262514610160578063313ce5671461017a57806340c10f1914610181575b5f5ffd5b6101336102e0565b6040516101409190611214565b60405180910390f35b61015260045481565b604051908152602001610140565b610168601281565b60405160ff9091168152602001610140565b6012610168565b61019461018f366004611241565b61036c565b005b6101946101a4366004611269565b61049a565b6101526101b7366004611269565b6001600160a01b03165f9081526005602052604090205490565b6101946104eb565b6101946104fe565b6101f46101ef3660046112c7565b610547565b6040519015158152602001610140565b6101f4610212366004611241565b61059f565b6101526105da565b5f546001600160a01b03165b6040516001600160a01b039091168152602001610140565b6101336105e8565b6101f461025936600461131d565b6105f5565b6101f461026c3660046112c7565b61073f565b60075461022b906001600160a01b031681565b610152610292366004611387565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b6001546001600160a01b031661022b565b6101946102db366004611269565b610808565b600280546102ed906113b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610319906113b8565b80156103645780601f1061033b57610100808354040283529160200191610364565b820191905f5260205f20905b81548152906001019060200180831161034757829003601f168201915b505050505081565b610374610878565b67ffffffffffffffff81111561039d5760405163e5cfe95760e01b815260040160405180910390fd5b60045467ffffffffffffffff906103b59083906113f0565b11156103d45760405163e5cfe95760e01b815260040160405180910390fd5b5f6103de826108a4565b6001600160a01b0384165f9081526005602052604090205490915061040390826108ba565b6001600160a01b0384165f908152600560205260409020819055610426906108e8565b506001600160a01b0383165f9081526005602052604090205461044990846108f7565b508160045f82825461045b91906113f0565b909155505060405182906001600160a01b038516907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885905f90a3505050565b6104a2610878565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f7c1403a777cb1caaa0258a821061f56fd1e6bc77b3d5f81c0f5630a299947d16905f90a250565b6104f3610878565b6104fc5f610909565b565b60015433906001600160a01b0316811461053b5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61054481610909565b50565b5f5f6105888585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061092292505050565b905061059533878361092f565b9695505050505050565b5f6105a982610b90565b6105c657604051631a93b31b60e31b815260040160405180910390fd5b6105d133848461092f565b90505b92915050565b5f6105e3610b9b565b905090565b600380546102ed906113b8565b5f5f6106368585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061092292505050565b6001600160a01b0388165f90815260066020908152604080832033845290915281205491925090610668908390610bcf565b6001600160a01b0389165f908152600660209081526040808320338452909152812054919250906106c790839061069f9086610bfd565b6001600160a01b038c165f908152600660209081526040808320338452909152902054610c2b565b6001600160a01b038a165f908152600660209081526040808320338452909152902081905590506106f7816108e8565b50610702818a6108f7565b5061070d81336108f7565b505f610722838561071d5f6108a4565b610c2b565b905061072f8a8a8361092f565b9450505050505b95945050505050565b5f5f6107808585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061092292505050565b335f9081526006602090815260408083206001600160a01b038b168452909152902081905590506107b0816108e8565b506107bb81336108f7565b506107c681876108f7565b506040516001600160a01b0387169033907ff37f546c25e850257cc0c94f92bec94a17e2f0e884ddda268a25d8144b70eb6a905f90a350600195945050505050565b610810610878565b600180546001600160a01b0383166001600160a01b031990911681179091556108405f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146104fc5760405163118cdaa760e01b8152336004820152602401610532565b5f6105d48267ffffffffffffffff166005610c72565b5f826108cc576108c95f6108a4565b92505b816108dd576108da5f6108a4565b91505b6105d183835f610d01565b5f6108f38230610da4565b5090565b5f6109028383610da4565b5090919050565b600180546001600160a01b031916905561054481610e1a565b5f6105d183836005610e69565b6007545f9081906001600160a01b031615610a6e57600754604051632c289dcf60e01b81526001600160a01b0387811660048301525f921690632c289dcf906024016020604051808303815f875af115801561098d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b1919061140f565b600754604051632c289dcf60e01b81526001600160a01b0388811660048301529293505f9290911690632c289dcf906024016020604051808303815f875af11580156109ff573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a23919061140f565b90505f610a308383610f63565b6001600160a01b0389165f9081526005602052604081205491925090610a57908890610bcf565b9050610a638282610f63565b945050505050610a94565b6001600160a01b0385165f90815260056020526040902054610a91908490610bcf565b90505b5f610aa3828561071d5f6108a4565b6001600160a01b0387165f9081526005602052604081205491925090610ac99083610bfd565b6001600160a01b0387165f9081526005602052604081205491925090610aef90846108ba565b6001600160a01b03808a165f90815260056020526040808220869055918a168152208190559050610b1f826108e8565b50610b29816108e8565b50610b3482896108f7565b50610b3f81886108f7565b50866001600160a01b0316886001600160a01b03167f4853ae1b4d437c4255ac16cd3ceda3465975023f27cb141584cd9d44440fed8260405160405180910390a360019450505050505b9392505050565b5f6105d48233610f91565b5f46600103610baa5750600190565b4662aa36a703610bbb575061271190565b46617a6903610bca57505f1990565b505f90565b5f82610be157610bde5f6108a4565b92505b81610bf257610bef5f6108a4565b91505b6105d183835f611015565b5f82610c0f57610c0c5f6108a4565b92505b81610c2057610c1d5f6108a4565b91505b6105d183835f611078565b5f83610c3d57610c3a5f6110db565b93505b82610c4e57610c4b5f6108a4565b92505b81610c5f57610c5c5f6108a4565b91505b610c6a8484846110f6565b949350505050565b5f5160206114d25f395f51905f5254604051639cd07acb60e01b81525f915f5160206114f25f395f51905f52916001600160a01b0390911690639cd07acb90610cc19087908790600401611446565b6020604051808303815f875af1158015610cdd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a919061140f565b5f5f8215610d145750600160f81b610d17565b505f5b5f5160206114d25f395f51905f525460405163022f65e760e31b81525f5160206114f25f395f51905f52916001600160a01b03169063117b2f3890610d649089908990879060040161145a565b6020604051808303815f875af1158015610d80573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610595919061140f565b5f5f5160206114f25f395f51905f528054604051635ca4b5b160e11b8152600481018690526001600160a01b03858116602483015292935091169063b9496b62906044015f604051808303815f87803b158015610dff575f5ffd5b505af1158015610e11573d5f5f3e3d5ffd5b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5160206114d25f395f51905f525460405163045fc19560e11b81525f915f5160206114f25f395f51905f52916001600160a01b03909116906308bf832a90610ebc90889033908990899060040161147a565b6020604051808303815f875af1158015610ed8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efc919061140f565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b158015610f45575f5ffd5b505af1158015610f57573d5f5f3e3d5ffd5b50505050509392505050565b5f82610f7557610f725f6110db565b92505b81610f8657610f835f6110db565b91505b6105d183835f611183565b5f805f5160206114f25f395f51905f5280546040516382027b6d60e01b8152600481018790526001600160a01b0386811660248301529293509116906382027b6d90604401602060405180830381865afa158015610ff1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a91906114b2565b5f5f82156110285750600160f81b61102b565b505f5b5f5160206114d25f395f51905f5254604051631d44e90160e21b81525f5160206114f25f395f51905f52916001600160a01b031690637513a40490610d649089908990879060040161145a565b5f5f821561108b5750600160f81b61108e565b505f5b5f5160206114d25f395f51905f52546040516303056db360e31b81525f5160206114f25f395f51905f52916001600160a01b03169063182b6d9890610d649089908990879060040161145a565b5f6105d4826110ea575f6110ed565b60015b60ff165f610c72565b5f805f5160206114f25f395f51905f526001810154604051637702dcff60e01b81526004810188905260248101879052604481018690529192506001600160a01b031690637702dcff906064016020604051808303815f875af115801561115f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610736919061140f565b5f5f82156111965750600160f81b611199565b505f5b5f5160206114d25f395f51905f525460405163d99882d560e01b81525f5160206114f25f395f51905f52916001600160a01b03169063d99882d590610d649089908990879060040161145a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6105d160208301846111e6565b80356001600160a01b038116811461123c575f5ffd5b919050565b5f5f60408385031215611252575f5ffd5b61125b83611226565b946020939093013593505050565b5f60208284031215611279575f5ffd5b6105d182611226565b5f5f83601f840112611292575f5ffd5b50813567ffffffffffffffff8111156112a9575f5ffd5b6020830191508360208285010111156112c0575f5ffd5b9250929050565b5f5f5f5f606085870312156112da575f5ffd5b6112e385611226565b935060208501359250604085013567ffffffffffffffff811115611305575f5ffd5b61131187828801611282565b95989497509550505050565b5f5f5f5f5f60808688031215611331575f5ffd5b61133a86611226565b945061134860208701611226565b935060408601359250606086013567ffffffffffffffff81111561136a575f5ffd5b61137688828901611282565b969995985093965092949392505050565b5f5f60408385031215611398575f5ffd5b6113a183611226565b91506113af60208401611226565b90509250929050565b600181811c908216806113cc57607f821691505b6020821081036113ea57634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156105d457634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561141f575f5ffd5b5051919050565b6054811061144257634e487b7160e01b5f52602160045260245ffd5b9052565b82815260408101610b896020830184611426565b92835260208301919091526001600160f81b031916604082015260600190565b8481526001600160a01b03841660208201526080604082018190525f906114a3908301856111e6565b90506107366060830184611426565b5f602082840312156114c2575f5ffd5b81518015158114610b89575f5ffdfe9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497019e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e4649700a2646970667358221220d716932c361595f8f6903b603a02c88d9aaef74df36f59e4d37054766d40c47364736f6c634300081b0033";
532
+
533
+ type CompliantERC20ConstructorParams =
534
+ | [signer?: Signer]
535
+ | ConstructorParameters<typeof ContractFactory>;
536
+
537
+ const isSuperArgs = (
538
+ xs: CompliantERC20ConstructorParams
539
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
540
+
541
+ export class CompliantERC20__factory extends ContractFactory {
542
+ constructor(...args: CompliantERC20ConstructorParams) {
543
+ if (isSuperArgs(args)) {
544
+ super(...args);
545
+ } else {
546
+ super(_abi, _bytecode, args[0]);
547
+ }
548
+ }
549
+
550
+ override getDeployTransaction(
551
+ tokenName: string,
552
+ tokenSymbol: string,
553
+ checker: AddressLike,
554
+ overrides?: NonPayableOverrides & { from?: string }
555
+ ): Promise<ContractDeployTransaction> {
556
+ return super.getDeployTransaction(
557
+ tokenName,
558
+ tokenSymbol,
559
+ checker,
560
+ overrides || {}
561
+ );
562
+ }
563
+ override deploy(
564
+ tokenName: string,
565
+ tokenSymbol: string,
566
+ checker: AddressLike,
567
+ overrides?: NonPayableOverrides & { from?: string }
568
+ ) {
569
+ return super.deploy(
570
+ tokenName,
571
+ tokenSymbol,
572
+ checker,
573
+ overrides || {}
574
+ ) as Promise<
575
+ CompliantERC20 & {
576
+ deploymentTransaction(): ContractTransactionResponse;
577
+ }
578
+ >;
579
+ }
580
+ override connect(runner: ContractRunner | null): CompliantERC20__factory {
581
+ return super.connect(runner) as CompliantERC20__factory;
582
+ }
583
+
584
+ static readonly bytecode = _bytecode;
585
+ static readonly abi = _abi;
586
+ static createInterface(): CompliantERC20Interface {
587
+ return new Interface(_abi) as CompliantERC20Interface;
588
+ }
589
+ static connect(
590
+ address: string,
591
+ runner?: ContractRunner | null
592
+ ): CompliantERC20 {
593
+ return new Contract(address, _abi, runner) as unknown as CompliantERC20;
594
+ }
595
+ }
@@ -1,4 +1,4 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- export * as compliantErc20Sol from "./CompliantERC20.sol";
4
+ export { CompliantERC20__factory } from "./CompliantERC20__factory";
@@ -2,4 +2,5 @@
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
4
  export * as fhevm from "./@fhevm";
5
+ export * as openzeppelin from "./@openzeppelin";
5
6
  export * as contracts from "./contracts";