@openzeppelin/confidential-contracts 0.2.0 → 0.3.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 (35) hide show
  1. package/build/contracts/Checkpoints.json +2 -2
  2. package/build/contracts/CheckpointsConfidential.json +2 -2
  3. package/build/contracts/{ConfidentialFungibleToken.json → ERC7984.json} +87 -58
  4. package/build/contracts/{ConfidentialFungibleTokenERC20Wrapper.json → ERC7984ERC20Wrapper.json} +143 -59
  5. package/build/contracts/ERC7984Freezable.json +700 -0
  6. package/build/contracts/ERC7984ObserverAccess.json +710 -0
  7. package/build/contracts/ERC7984Omnibus.json +1028 -0
  8. package/build/contracts/ERC7984Restricted.json +711 -0
  9. package/build/contracts/ERC7984Rwa.json +1385 -0
  10. package/build/contracts/{ConfidentialFungibleTokenUtils.json → ERC7984Utils.json} +4 -4
  11. package/build/contracts/{ConfidentialFungibleTokenVotes.json → ERC7984Votes.json} +142 -113
  12. package/build/contracts/FHESafeMath.json +2 -2
  13. package/build/contracts/{IConfidentialFungibleToken.json → IERC7984.json} +26 -7
  14. package/build/contracts/{IConfidentialFungibleTokenReceiver.json → IERC7984Receiver.json} +2 -2
  15. package/build/contracts/IERC7984Rwa.json +797 -0
  16. package/build/contracts/VestingWalletConfidentialFactory.json +2 -2
  17. package/finance/ERC7821WithExecutor.sol +3 -4
  18. package/finance/VestingWalletCliffConfidential.sol +3 -4
  19. package/finance/VestingWalletConfidential.sol +8 -12
  20. package/finance/VestingWalletConfidentialFactory.sol +7 -12
  21. package/interfaces/{IConfidentialFungibleToken.sol → IERC7984.sol} +6 -5
  22. package/interfaces/{IConfidentialFungibleTokenReceiver.sol → IERC7984Receiver.sol} +3 -3
  23. package/interfaces/IERC7984Rwa.sol +63 -0
  24. package/package.json +4 -4
  25. package/token/{ConfidentialFungibleToken.sol → ERC7984/ERC7984.sol} +81 -82
  26. package/token/{extensions/ConfidentialFungibleTokenERC20Wrapper.sol → ERC7984/extensions/ERC7984ERC20Wrapper.sol} +40 -35
  27. package/token/ERC7984/extensions/ERC7984Freezable.sol +75 -0
  28. package/token/ERC7984/extensions/ERC7984ObserverAccess.sol +63 -0
  29. package/token/ERC7984/extensions/ERC7984Omnibus.sol +209 -0
  30. package/token/ERC7984/extensions/ERC7984Restricted.sol +110 -0
  31. package/token/ERC7984/extensions/ERC7984Rwa.sol +248 -0
  32. package/token/{extensions/ConfidentialFungibleTokenVotes.sol → ERC7984/extensions/ERC7984Votes.sol} +8 -14
  33. package/token/{utils/ConfidentialFungibleTokenUtils.sol → ERC7984/utils/ERC7984Utils.sol} +14 -13
  34. package/utils/FHESafeMath.sol +45 -7
  35. package/utils/structs/temporary-Checkpoints.sol +2 -2
@@ -0,0 +1,711 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC7984Restricted",
4
+ "sourceName": "contracts/token/ERC7984/extensions/ERC7984Restricted.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint256",
10
+ "name": "requestId",
11
+ "type": "uint256"
12
+ }
13
+ ],
14
+ "name": "ERC7984InvalidGatewayRequest",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "receiver",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "name": "ERC7984InvalidReceiver",
26
+ "type": "error"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "sender",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "ERC7984InvalidSender",
37
+ "type": "error"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "internalType": "address",
43
+ "name": "caller",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "ERC7984UnauthorizedCaller",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "internalType": "address",
54
+ "name": "holder",
55
+ "type": "address"
56
+ },
57
+ {
58
+ "internalType": "address",
59
+ "name": "spender",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ERC7984UnauthorizedSpender",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "euint64",
70
+ "name": "amount",
71
+ "type": "bytes32"
72
+ },
73
+ {
74
+ "internalType": "address",
75
+ "name": "user",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "holder",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "ERC7984ZeroBalance",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "InvalidKMSSignatures",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [
100
+ {
101
+ "internalType": "address",
102
+ "name": "account",
103
+ "type": "address"
104
+ }
105
+ ],
106
+ "name": "UserRestricted",
107
+ "type": "error"
108
+ },
109
+ {
110
+ "anonymous": false,
111
+ "inputs": [
112
+ {
113
+ "indexed": true,
114
+ "internalType": "euint64",
115
+ "name": "encryptedAmount",
116
+ "type": "bytes32"
117
+ },
118
+ {
119
+ "indexed": true,
120
+ "internalType": "address",
121
+ "name": "requester",
122
+ "type": "address"
123
+ }
124
+ ],
125
+ "name": "AmountDiscloseRequested",
126
+ "type": "event"
127
+ },
128
+ {
129
+ "anonymous": false,
130
+ "inputs": [
131
+ {
132
+ "indexed": true,
133
+ "internalType": "euint64",
134
+ "name": "encryptedAmount",
135
+ "type": "bytes32"
136
+ },
137
+ {
138
+ "indexed": false,
139
+ "internalType": "uint64",
140
+ "name": "amount",
141
+ "type": "uint64"
142
+ }
143
+ ],
144
+ "name": "AmountDisclosed",
145
+ "type": "event"
146
+ },
147
+ {
148
+ "anonymous": false,
149
+ "inputs": [
150
+ {
151
+ "indexed": true,
152
+ "internalType": "address",
153
+ "name": "from",
154
+ "type": "address"
155
+ },
156
+ {
157
+ "indexed": true,
158
+ "internalType": "address",
159
+ "name": "to",
160
+ "type": "address"
161
+ },
162
+ {
163
+ "indexed": true,
164
+ "internalType": "euint64",
165
+ "name": "amount",
166
+ "type": "bytes32"
167
+ }
168
+ ],
169
+ "name": "ConfidentialTransfer",
170
+ "type": "event"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": true,
177
+ "internalType": "address",
178
+ "name": "holder",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "indexed": true,
183
+ "internalType": "address",
184
+ "name": "operator",
185
+ "type": "address"
186
+ },
187
+ {
188
+ "indexed": false,
189
+ "internalType": "uint48",
190
+ "name": "until",
191
+ "type": "uint48"
192
+ }
193
+ ],
194
+ "name": "OperatorSet",
195
+ "type": "event"
196
+ },
197
+ {
198
+ "anonymous": false,
199
+ "inputs": [
200
+ {
201
+ "indexed": false,
202
+ "internalType": "bytes32[]",
203
+ "name": "handlesList",
204
+ "type": "bytes32[]"
205
+ },
206
+ {
207
+ "indexed": false,
208
+ "internalType": "bytes",
209
+ "name": "abiEncodedCleartexts",
210
+ "type": "bytes"
211
+ }
212
+ ],
213
+ "name": "PublicDecryptionVerified",
214
+ "type": "event"
215
+ },
216
+ {
217
+ "anonymous": false,
218
+ "inputs": [
219
+ {
220
+ "indexed": true,
221
+ "internalType": "address",
222
+ "name": "account",
223
+ "type": "address"
224
+ },
225
+ {
226
+ "indexed": false,
227
+ "internalType": "enum ERC7984Restricted.Restriction",
228
+ "name": "restriction",
229
+ "type": "uint8"
230
+ }
231
+ ],
232
+ "name": "UserRestrictionUpdated",
233
+ "type": "event"
234
+ },
235
+ {
236
+ "inputs": [
237
+ {
238
+ "internalType": "address",
239
+ "name": "account",
240
+ "type": "address"
241
+ }
242
+ ],
243
+ "name": "confidentialBalanceOf",
244
+ "outputs": [
245
+ {
246
+ "internalType": "euint64",
247
+ "name": "",
248
+ "type": "bytes32"
249
+ }
250
+ ],
251
+ "stateMutability": "view",
252
+ "type": "function"
253
+ },
254
+ {
255
+ "inputs": [],
256
+ "name": "confidentialTotalSupply",
257
+ "outputs": [
258
+ {
259
+ "internalType": "euint64",
260
+ "name": "",
261
+ "type": "bytes32"
262
+ }
263
+ ],
264
+ "stateMutability": "view",
265
+ "type": "function"
266
+ },
267
+ {
268
+ "inputs": [
269
+ {
270
+ "internalType": "address",
271
+ "name": "to",
272
+ "type": "address"
273
+ },
274
+ {
275
+ "internalType": "externalEuint64",
276
+ "name": "encryptedAmount",
277
+ "type": "bytes32"
278
+ },
279
+ {
280
+ "internalType": "bytes",
281
+ "name": "inputProof",
282
+ "type": "bytes"
283
+ }
284
+ ],
285
+ "name": "confidentialTransfer",
286
+ "outputs": [
287
+ {
288
+ "internalType": "euint64",
289
+ "name": "",
290
+ "type": "bytes32"
291
+ }
292
+ ],
293
+ "stateMutability": "nonpayable",
294
+ "type": "function"
295
+ },
296
+ {
297
+ "inputs": [
298
+ {
299
+ "internalType": "address",
300
+ "name": "to",
301
+ "type": "address"
302
+ },
303
+ {
304
+ "internalType": "euint64",
305
+ "name": "amount",
306
+ "type": "bytes32"
307
+ }
308
+ ],
309
+ "name": "confidentialTransfer",
310
+ "outputs": [
311
+ {
312
+ "internalType": "euint64",
313
+ "name": "",
314
+ "type": "bytes32"
315
+ }
316
+ ],
317
+ "stateMutability": "nonpayable",
318
+ "type": "function"
319
+ },
320
+ {
321
+ "inputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "to",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "euint64",
329
+ "name": "amount",
330
+ "type": "bytes32"
331
+ },
332
+ {
333
+ "internalType": "bytes",
334
+ "name": "data",
335
+ "type": "bytes"
336
+ }
337
+ ],
338
+ "name": "confidentialTransferAndCall",
339
+ "outputs": [
340
+ {
341
+ "internalType": "euint64",
342
+ "name": "transferred",
343
+ "type": "bytes32"
344
+ }
345
+ ],
346
+ "stateMutability": "nonpayable",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "address",
353
+ "name": "to",
354
+ "type": "address"
355
+ },
356
+ {
357
+ "internalType": "externalEuint64",
358
+ "name": "encryptedAmount",
359
+ "type": "bytes32"
360
+ },
361
+ {
362
+ "internalType": "bytes",
363
+ "name": "inputProof",
364
+ "type": "bytes"
365
+ },
366
+ {
367
+ "internalType": "bytes",
368
+ "name": "data",
369
+ "type": "bytes"
370
+ }
371
+ ],
372
+ "name": "confidentialTransferAndCall",
373
+ "outputs": [
374
+ {
375
+ "internalType": "euint64",
376
+ "name": "transferred",
377
+ "type": "bytes32"
378
+ }
379
+ ],
380
+ "stateMutability": "nonpayable",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [
385
+ {
386
+ "internalType": "address",
387
+ "name": "from",
388
+ "type": "address"
389
+ },
390
+ {
391
+ "internalType": "address",
392
+ "name": "to",
393
+ "type": "address"
394
+ },
395
+ {
396
+ "internalType": "externalEuint64",
397
+ "name": "encryptedAmount",
398
+ "type": "bytes32"
399
+ },
400
+ {
401
+ "internalType": "bytes",
402
+ "name": "inputProof",
403
+ "type": "bytes"
404
+ }
405
+ ],
406
+ "name": "confidentialTransferFrom",
407
+ "outputs": [
408
+ {
409
+ "internalType": "euint64",
410
+ "name": "transferred",
411
+ "type": "bytes32"
412
+ }
413
+ ],
414
+ "stateMutability": "nonpayable",
415
+ "type": "function"
416
+ },
417
+ {
418
+ "inputs": [
419
+ {
420
+ "internalType": "address",
421
+ "name": "from",
422
+ "type": "address"
423
+ },
424
+ {
425
+ "internalType": "address",
426
+ "name": "to",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "internalType": "euint64",
431
+ "name": "amount",
432
+ "type": "bytes32"
433
+ }
434
+ ],
435
+ "name": "confidentialTransferFrom",
436
+ "outputs": [
437
+ {
438
+ "internalType": "euint64",
439
+ "name": "transferred",
440
+ "type": "bytes32"
441
+ }
442
+ ],
443
+ "stateMutability": "nonpayable",
444
+ "type": "function"
445
+ },
446
+ {
447
+ "inputs": [
448
+ {
449
+ "internalType": "address",
450
+ "name": "from",
451
+ "type": "address"
452
+ },
453
+ {
454
+ "internalType": "address",
455
+ "name": "to",
456
+ "type": "address"
457
+ },
458
+ {
459
+ "internalType": "externalEuint64",
460
+ "name": "encryptedAmount",
461
+ "type": "bytes32"
462
+ },
463
+ {
464
+ "internalType": "bytes",
465
+ "name": "inputProof",
466
+ "type": "bytes"
467
+ },
468
+ {
469
+ "internalType": "bytes",
470
+ "name": "data",
471
+ "type": "bytes"
472
+ }
473
+ ],
474
+ "name": "confidentialTransferFromAndCall",
475
+ "outputs": [
476
+ {
477
+ "internalType": "euint64",
478
+ "name": "transferred",
479
+ "type": "bytes32"
480
+ }
481
+ ],
482
+ "stateMutability": "nonpayable",
483
+ "type": "function"
484
+ },
485
+ {
486
+ "inputs": [
487
+ {
488
+ "internalType": "address",
489
+ "name": "from",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "internalType": "address",
494
+ "name": "to",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "euint64",
499
+ "name": "amount",
500
+ "type": "bytes32"
501
+ },
502
+ {
503
+ "internalType": "bytes",
504
+ "name": "data",
505
+ "type": "bytes"
506
+ }
507
+ ],
508
+ "name": "confidentialTransferFromAndCall",
509
+ "outputs": [
510
+ {
511
+ "internalType": "euint64",
512
+ "name": "transferred",
513
+ "type": "bytes32"
514
+ }
515
+ ],
516
+ "stateMutability": "nonpayable",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [],
521
+ "name": "contractURI",
522
+ "outputs": [
523
+ {
524
+ "internalType": "string",
525
+ "name": "",
526
+ "type": "string"
527
+ }
528
+ ],
529
+ "stateMutability": "view",
530
+ "type": "function"
531
+ },
532
+ {
533
+ "inputs": [],
534
+ "name": "decimals",
535
+ "outputs": [
536
+ {
537
+ "internalType": "uint8",
538
+ "name": "",
539
+ "type": "uint8"
540
+ }
541
+ ],
542
+ "stateMutability": "view",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [
547
+ {
548
+ "internalType": "euint64",
549
+ "name": "encryptedAmount",
550
+ "type": "bytes32"
551
+ },
552
+ {
553
+ "internalType": "uint64",
554
+ "name": "cleartextAmount",
555
+ "type": "uint64"
556
+ },
557
+ {
558
+ "internalType": "bytes",
559
+ "name": "decryptionProof",
560
+ "type": "bytes"
561
+ }
562
+ ],
563
+ "name": "discloseEncryptedAmount",
564
+ "outputs": [],
565
+ "stateMutability": "nonpayable",
566
+ "type": "function"
567
+ },
568
+ {
569
+ "inputs": [
570
+ {
571
+ "internalType": "address",
572
+ "name": "account",
573
+ "type": "address"
574
+ }
575
+ ],
576
+ "name": "getRestriction",
577
+ "outputs": [
578
+ {
579
+ "internalType": "enum ERC7984Restricted.Restriction",
580
+ "name": "",
581
+ "type": "uint8"
582
+ }
583
+ ],
584
+ "stateMutability": "view",
585
+ "type": "function"
586
+ },
587
+ {
588
+ "inputs": [
589
+ {
590
+ "internalType": "address",
591
+ "name": "holder",
592
+ "type": "address"
593
+ },
594
+ {
595
+ "internalType": "address",
596
+ "name": "spender",
597
+ "type": "address"
598
+ }
599
+ ],
600
+ "name": "isOperator",
601
+ "outputs": [
602
+ {
603
+ "internalType": "bool",
604
+ "name": "",
605
+ "type": "bool"
606
+ }
607
+ ],
608
+ "stateMutability": "view",
609
+ "type": "function"
610
+ },
611
+ {
612
+ "inputs": [
613
+ {
614
+ "internalType": "address",
615
+ "name": "account",
616
+ "type": "address"
617
+ }
618
+ ],
619
+ "name": "isUserAllowed",
620
+ "outputs": [
621
+ {
622
+ "internalType": "bool",
623
+ "name": "",
624
+ "type": "bool"
625
+ }
626
+ ],
627
+ "stateMutability": "view",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [],
632
+ "name": "name",
633
+ "outputs": [
634
+ {
635
+ "internalType": "string",
636
+ "name": "",
637
+ "type": "string"
638
+ }
639
+ ],
640
+ "stateMutability": "view",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [
645
+ {
646
+ "internalType": "euint64",
647
+ "name": "encryptedAmount",
648
+ "type": "bytes32"
649
+ }
650
+ ],
651
+ "name": "requestDiscloseEncryptedAmount",
652
+ "outputs": [],
653
+ "stateMutability": "nonpayable",
654
+ "type": "function"
655
+ },
656
+ {
657
+ "inputs": [
658
+ {
659
+ "internalType": "address",
660
+ "name": "operator",
661
+ "type": "address"
662
+ },
663
+ {
664
+ "internalType": "uint48",
665
+ "name": "until",
666
+ "type": "uint48"
667
+ }
668
+ ],
669
+ "name": "setOperator",
670
+ "outputs": [],
671
+ "stateMutability": "nonpayable",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [
676
+ {
677
+ "internalType": "bytes4",
678
+ "name": "interfaceId",
679
+ "type": "bytes4"
680
+ }
681
+ ],
682
+ "name": "supportsInterface",
683
+ "outputs": [
684
+ {
685
+ "internalType": "bool",
686
+ "name": "",
687
+ "type": "bool"
688
+ }
689
+ ],
690
+ "stateMutability": "view",
691
+ "type": "function"
692
+ },
693
+ {
694
+ "inputs": [],
695
+ "name": "symbol",
696
+ "outputs": [
697
+ {
698
+ "internalType": "string",
699
+ "name": "",
700
+ "type": "string"
701
+ }
702
+ ],
703
+ "stateMutability": "view",
704
+ "type": "function"
705
+ }
706
+ ],
707
+ "bytecode": "0x",
708
+ "deployedBytecode": "0x",
709
+ "linkReferences": {},
710
+ "deployedLinkReferences": {}
711
+ }