@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,1385 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC7984Rwa",
4
+ "sourceName": "contracts/token/ERC7984/extensions/ERC7984Rwa.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "AccessControlBadConfirmation",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "account",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "bytes32",
20
+ "name": "neededRole",
21
+ "type": "bytes32"
22
+ }
23
+ ],
24
+ "name": "AccessControlUnauthorizedAccount",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "target",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "AddressEmptyCode",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "uint256",
42
+ "name": "requestId",
43
+ "type": "uint256"
44
+ }
45
+ ],
46
+ "name": "ERC7984InvalidGatewayRequest",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "address",
53
+ "name": "receiver",
54
+ "type": "address"
55
+ }
56
+ ],
57
+ "name": "ERC7984InvalidReceiver",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "sender",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "ERC7984InvalidSender",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "caller",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ERC7984UnauthorizedCaller",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "holder",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "internalType": "address",
91
+ "name": "spender",
92
+ "type": "address"
93
+ }
94
+ ],
95
+ "name": "ERC7984UnauthorizedSpender",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [
100
+ {
101
+ "internalType": "euint64",
102
+ "name": "amount",
103
+ "type": "bytes32"
104
+ },
105
+ {
106
+ "internalType": "address",
107
+ "name": "user",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "holder",
119
+ "type": "address"
120
+ }
121
+ ],
122
+ "name": "ERC7984ZeroBalance",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [],
127
+ "name": "EnforcedPause",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [],
132
+ "name": "ExpectedPause",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [],
137
+ "name": "FailedCall",
138
+ "type": "error"
139
+ },
140
+ {
141
+ "inputs": [],
142
+ "name": "InvalidKMSSignatures",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "account",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "UserRestricted",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "anonymous": false,
158
+ "inputs": [
159
+ {
160
+ "indexed": true,
161
+ "internalType": "euint64",
162
+ "name": "encryptedAmount",
163
+ "type": "bytes32"
164
+ },
165
+ {
166
+ "indexed": true,
167
+ "internalType": "address",
168
+ "name": "requester",
169
+ "type": "address"
170
+ }
171
+ ],
172
+ "name": "AmountDiscloseRequested",
173
+ "type": "event"
174
+ },
175
+ {
176
+ "anonymous": false,
177
+ "inputs": [
178
+ {
179
+ "indexed": true,
180
+ "internalType": "euint64",
181
+ "name": "encryptedAmount",
182
+ "type": "bytes32"
183
+ },
184
+ {
185
+ "indexed": false,
186
+ "internalType": "uint64",
187
+ "name": "amount",
188
+ "type": "uint64"
189
+ }
190
+ ],
191
+ "name": "AmountDisclosed",
192
+ "type": "event"
193
+ },
194
+ {
195
+ "anonymous": false,
196
+ "inputs": [
197
+ {
198
+ "indexed": true,
199
+ "internalType": "address",
200
+ "name": "from",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "indexed": true,
205
+ "internalType": "address",
206
+ "name": "to",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "indexed": true,
211
+ "internalType": "euint64",
212
+ "name": "amount",
213
+ "type": "bytes32"
214
+ }
215
+ ],
216
+ "name": "ConfidentialTransfer",
217
+ "type": "event"
218
+ },
219
+ {
220
+ "anonymous": false,
221
+ "inputs": [
222
+ {
223
+ "indexed": true,
224
+ "internalType": "address",
225
+ "name": "holder",
226
+ "type": "address"
227
+ },
228
+ {
229
+ "indexed": true,
230
+ "internalType": "address",
231
+ "name": "operator",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "indexed": false,
236
+ "internalType": "uint48",
237
+ "name": "until",
238
+ "type": "uint48"
239
+ }
240
+ ],
241
+ "name": "OperatorSet",
242
+ "type": "event"
243
+ },
244
+ {
245
+ "anonymous": false,
246
+ "inputs": [
247
+ {
248
+ "indexed": false,
249
+ "internalType": "address",
250
+ "name": "account",
251
+ "type": "address"
252
+ }
253
+ ],
254
+ "name": "Paused",
255
+ "type": "event"
256
+ },
257
+ {
258
+ "anonymous": false,
259
+ "inputs": [
260
+ {
261
+ "indexed": false,
262
+ "internalType": "bytes32[]",
263
+ "name": "handlesList",
264
+ "type": "bytes32[]"
265
+ },
266
+ {
267
+ "indexed": false,
268
+ "internalType": "bytes",
269
+ "name": "abiEncodedCleartexts",
270
+ "type": "bytes"
271
+ }
272
+ ],
273
+ "name": "PublicDecryptionVerified",
274
+ "type": "event"
275
+ },
276
+ {
277
+ "anonymous": false,
278
+ "inputs": [
279
+ {
280
+ "indexed": true,
281
+ "internalType": "bytes32",
282
+ "name": "role",
283
+ "type": "bytes32"
284
+ },
285
+ {
286
+ "indexed": true,
287
+ "internalType": "bytes32",
288
+ "name": "previousAdminRole",
289
+ "type": "bytes32"
290
+ },
291
+ {
292
+ "indexed": true,
293
+ "internalType": "bytes32",
294
+ "name": "newAdminRole",
295
+ "type": "bytes32"
296
+ }
297
+ ],
298
+ "name": "RoleAdminChanged",
299
+ "type": "event"
300
+ },
301
+ {
302
+ "anonymous": false,
303
+ "inputs": [
304
+ {
305
+ "indexed": true,
306
+ "internalType": "bytes32",
307
+ "name": "role",
308
+ "type": "bytes32"
309
+ },
310
+ {
311
+ "indexed": true,
312
+ "internalType": "address",
313
+ "name": "account",
314
+ "type": "address"
315
+ },
316
+ {
317
+ "indexed": true,
318
+ "internalType": "address",
319
+ "name": "sender",
320
+ "type": "address"
321
+ }
322
+ ],
323
+ "name": "RoleGranted",
324
+ "type": "event"
325
+ },
326
+ {
327
+ "anonymous": false,
328
+ "inputs": [
329
+ {
330
+ "indexed": true,
331
+ "internalType": "bytes32",
332
+ "name": "role",
333
+ "type": "bytes32"
334
+ },
335
+ {
336
+ "indexed": true,
337
+ "internalType": "address",
338
+ "name": "account",
339
+ "type": "address"
340
+ },
341
+ {
342
+ "indexed": true,
343
+ "internalType": "address",
344
+ "name": "sender",
345
+ "type": "address"
346
+ }
347
+ ],
348
+ "name": "RoleRevoked",
349
+ "type": "event"
350
+ },
351
+ {
352
+ "anonymous": false,
353
+ "inputs": [
354
+ {
355
+ "indexed": true,
356
+ "internalType": "address",
357
+ "name": "account",
358
+ "type": "address"
359
+ },
360
+ {
361
+ "indexed": false,
362
+ "internalType": "euint64",
363
+ "name": "encryptedAmount",
364
+ "type": "bytes32"
365
+ }
366
+ ],
367
+ "name": "TokensFrozen",
368
+ "type": "event"
369
+ },
370
+ {
371
+ "anonymous": false,
372
+ "inputs": [
373
+ {
374
+ "indexed": false,
375
+ "internalType": "address",
376
+ "name": "account",
377
+ "type": "address"
378
+ }
379
+ ],
380
+ "name": "Unpaused",
381
+ "type": "event"
382
+ },
383
+ {
384
+ "anonymous": false,
385
+ "inputs": [
386
+ {
387
+ "indexed": true,
388
+ "internalType": "address",
389
+ "name": "account",
390
+ "type": "address"
391
+ },
392
+ {
393
+ "indexed": false,
394
+ "internalType": "enum ERC7984Restricted.Restriction",
395
+ "name": "restriction",
396
+ "type": "uint8"
397
+ }
398
+ ],
399
+ "name": "UserRestrictionUpdated",
400
+ "type": "event"
401
+ },
402
+ {
403
+ "inputs": [],
404
+ "name": "AGENT_ROLE",
405
+ "outputs": [
406
+ {
407
+ "internalType": "bytes32",
408
+ "name": "",
409
+ "type": "bytes32"
410
+ }
411
+ ],
412
+ "stateMutability": "view",
413
+ "type": "function"
414
+ },
415
+ {
416
+ "inputs": [],
417
+ "name": "DEFAULT_ADMIN_ROLE",
418
+ "outputs": [
419
+ {
420
+ "internalType": "bytes32",
421
+ "name": "",
422
+ "type": "bytes32"
423
+ }
424
+ ],
425
+ "stateMutability": "view",
426
+ "type": "function"
427
+ },
428
+ {
429
+ "inputs": [
430
+ {
431
+ "internalType": "address",
432
+ "name": "account",
433
+ "type": "address"
434
+ }
435
+ ],
436
+ "name": "addAgent",
437
+ "outputs": [],
438
+ "stateMutability": "nonpayable",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [
443
+ {
444
+ "internalType": "address",
445
+ "name": "account",
446
+ "type": "address"
447
+ }
448
+ ],
449
+ "name": "blockUser",
450
+ "outputs": [],
451
+ "stateMutability": "nonpayable",
452
+ "type": "function"
453
+ },
454
+ {
455
+ "inputs": [
456
+ {
457
+ "internalType": "address",
458
+ "name": "account",
459
+ "type": "address"
460
+ }
461
+ ],
462
+ "name": "confidentialAvailable",
463
+ "outputs": [
464
+ {
465
+ "internalType": "euint64",
466
+ "name": "",
467
+ "type": "bytes32"
468
+ }
469
+ ],
470
+ "stateMutability": "nonpayable",
471
+ "type": "function"
472
+ },
473
+ {
474
+ "inputs": [
475
+ {
476
+ "internalType": "address",
477
+ "name": "account",
478
+ "type": "address"
479
+ }
480
+ ],
481
+ "name": "confidentialBalanceOf",
482
+ "outputs": [
483
+ {
484
+ "internalType": "euint64",
485
+ "name": "",
486
+ "type": "bytes32"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [
494
+ {
495
+ "internalType": "address",
496
+ "name": "account",
497
+ "type": "address"
498
+ },
499
+ {
500
+ "internalType": "euint64",
501
+ "name": "encryptedAmount",
502
+ "type": "bytes32"
503
+ }
504
+ ],
505
+ "name": "confidentialBurn",
506
+ "outputs": [
507
+ {
508
+ "internalType": "euint64",
509
+ "name": "",
510
+ "type": "bytes32"
511
+ }
512
+ ],
513
+ "stateMutability": "nonpayable",
514
+ "type": "function"
515
+ },
516
+ {
517
+ "inputs": [
518
+ {
519
+ "internalType": "address",
520
+ "name": "account",
521
+ "type": "address"
522
+ },
523
+ {
524
+ "internalType": "externalEuint64",
525
+ "name": "encryptedAmount",
526
+ "type": "bytes32"
527
+ },
528
+ {
529
+ "internalType": "bytes",
530
+ "name": "inputProof",
531
+ "type": "bytes"
532
+ }
533
+ ],
534
+ "name": "confidentialBurn",
535
+ "outputs": [
536
+ {
537
+ "internalType": "euint64",
538
+ "name": "",
539
+ "type": "bytes32"
540
+ }
541
+ ],
542
+ "stateMutability": "nonpayable",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [
547
+ {
548
+ "internalType": "address",
549
+ "name": "account",
550
+ "type": "address"
551
+ }
552
+ ],
553
+ "name": "confidentialFrozen",
554
+ "outputs": [
555
+ {
556
+ "internalType": "euint64",
557
+ "name": "",
558
+ "type": "bytes32"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [
566
+ {
567
+ "internalType": "address",
568
+ "name": "to",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "internalType": "externalEuint64",
573
+ "name": "encryptedAmount",
574
+ "type": "bytes32"
575
+ },
576
+ {
577
+ "internalType": "bytes",
578
+ "name": "inputProof",
579
+ "type": "bytes"
580
+ }
581
+ ],
582
+ "name": "confidentialMint",
583
+ "outputs": [
584
+ {
585
+ "internalType": "euint64",
586
+ "name": "",
587
+ "type": "bytes32"
588
+ }
589
+ ],
590
+ "stateMutability": "nonpayable",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "address",
597
+ "name": "to",
598
+ "type": "address"
599
+ },
600
+ {
601
+ "internalType": "euint64",
602
+ "name": "encryptedAmount",
603
+ "type": "bytes32"
604
+ }
605
+ ],
606
+ "name": "confidentialMint",
607
+ "outputs": [
608
+ {
609
+ "internalType": "euint64",
610
+ "name": "",
611
+ "type": "bytes32"
612
+ }
613
+ ],
614
+ "stateMutability": "nonpayable",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [],
619
+ "name": "confidentialTotalSupply",
620
+ "outputs": [
621
+ {
622
+ "internalType": "euint64",
623
+ "name": "",
624
+ "type": "bytes32"
625
+ }
626
+ ],
627
+ "stateMutability": "view",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "address",
634
+ "name": "to",
635
+ "type": "address"
636
+ },
637
+ {
638
+ "internalType": "externalEuint64",
639
+ "name": "encryptedAmount",
640
+ "type": "bytes32"
641
+ },
642
+ {
643
+ "internalType": "bytes",
644
+ "name": "inputProof",
645
+ "type": "bytes"
646
+ }
647
+ ],
648
+ "name": "confidentialTransfer",
649
+ "outputs": [
650
+ {
651
+ "internalType": "euint64",
652
+ "name": "",
653
+ "type": "bytes32"
654
+ }
655
+ ],
656
+ "stateMutability": "nonpayable",
657
+ "type": "function"
658
+ },
659
+ {
660
+ "inputs": [
661
+ {
662
+ "internalType": "address",
663
+ "name": "to",
664
+ "type": "address"
665
+ },
666
+ {
667
+ "internalType": "euint64",
668
+ "name": "amount",
669
+ "type": "bytes32"
670
+ }
671
+ ],
672
+ "name": "confidentialTransfer",
673
+ "outputs": [
674
+ {
675
+ "internalType": "euint64",
676
+ "name": "",
677
+ "type": "bytes32"
678
+ }
679
+ ],
680
+ "stateMutability": "nonpayable",
681
+ "type": "function"
682
+ },
683
+ {
684
+ "inputs": [
685
+ {
686
+ "internalType": "address",
687
+ "name": "to",
688
+ "type": "address"
689
+ },
690
+ {
691
+ "internalType": "euint64",
692
+ "name": "amount",
693
+ "type": "bytes32"
694
+ },
695
+ {
696
+ "internalType": "bytes",
697
+ "name": "data",
698
+ "type": "bytes"
699
+ }
700
+ ],
701
+ "name": "confidentialTransferAndCall",
702
+ "outputs": [
703
+ {
704
+ "internalType": "euint64",
705
+ "name": "transferred",
706
+ "type": "bytes32"
707
+ }
708
+ ],
709
+ "stateMutability": "nonpayable",
710
+ "type": "function"
711
+ },
712
+ {
713
+ "inputs": [
714
+ {
715
+ "internalType": "address",
716
+ "name": "to",
717
+ "type": "address"
718
+ },
719
+ {
720
+ "internalType": "externalEuint64",
721
+ "name": "encryptedAmount",
722
+ "type": "bytes32"
723
+ },
724
+ {
725
+ "internalType": "bytes",
726
+ "name": "inputProof",
727
+ "type": "bytes"
728
+ },
729
+ {
730
+ "internalType": "bytes",
731
+ "name": "data",
732
+ "type": "bytes"
733
+ }
734
+ ],
735
+ "name": "confidentialTransferAndCall",
736
+ "outputs": [
737
+ {
738
+ "internalType": "euint64",
739
+ "name": "transferred",
740
+ "type": "bytes32"
741
+ }
742
+ ],
743
+ "stateMutability": "nonpayable",
744
+ "type": "function"
745
+ },
746
+ {
747
+ "inputs": [
748
+ {
749
+ "internalType": "address",
750
+ "name": "from",
751
+ "type": "address"
752
+ },
753
+ {
754
+ "internalType": "address",
755
+ "name": "to",
756
+ "type": "address"
757
+ },
758
+ {
759
+ "internalType": "externalEuint64",
760
+ "name": "encryptedAmount",
761
+ "type": "bytes32"
762
+ },
763
+ {
764
+ "internalType": "bytes",
765
+ "name": "inputProof",
766
+ "type": "bytes"
767
+ }
768
+ ],
769
+ "name": "confidentialTransferFrom",
770
+ "outputs": [
771
+ {
772
+ "internalType": "euint64",
773
+ "name": "transferred",
774
+ "type": "bytes32"
775
+ }
776
+ ],
777
+ "stateMutability": "nonpayable",
778
+ "type": "function"
779
+ },
780
+ {
781
+ "inputs": [
782
+ {
783
+ "internalType": "address",
784
+ "name": "from",
785
+ "type": "address"
786
+ },
787
+ {
788
+ "internalType": "address",
789
+ "name": "to",
790
+ "type": "address"
791
+ },
792
+ {
793
+ "internalType": "euint64",
794
+ "name": "amount",
795
+ "type": "bytes32"
796
+ }
797
+ ],
798
+ "name": "confidentialTransferFrom",
799
+ "outputs": [
800
+ {
801
+ "internalType": "euint64",
802
+ "name": "transferred",
803
+ "type": "bytes32"
804
+ }
805
+ ],
806
+ "stateMutability": "nonpayable",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [
811
+ {
812
+ "internalType": "address",
813
+ "name": "from",
814
+ "type": "address"
815
+ },
816
+ {
817
+ "internalType": "address",
818
+ "name": "to",
819
+ "type": "address"
820
+ },
821
+ {
822
+ "internalType": "externalEuint64",
823
+ "name": "encryptedAmount",
824
+ "type": "bytes32"
825
+ },
826
+ {
827
+ "internalType": "bytes",
828
+ "name": "inputProof",
829
+ "type": "bytes"
830
+ },
831
+ {
832
+ "internalType": "bytes",
833
+ "name": "data",
834
+ "type": "bytes"
835
+ }
836
+ ],
837
+ "name": "confidentialTransferFromAndCall",
838
+ "outputs": [
839
+ {
840
+ "internalType": "euint64",
841
+ "name": "transferred",
842
+ "type": "bytes32"
843
+ }
844
+ ],
845
+ "stateMutability": "nonpayable",
846
+ "type": "function"
847
+ },
848
+ {
849
+ "inputs": [
850
+ {
851
+ "internalType": "address",
852
+ "name": "from",
853
+ "type": "address"
854
+ },
855
+ {
856
+ "internalType": "address",
857
+ "name": "to",
858
+ "type": "address"
859
+ },
860
+ {
861
+ "internalType": "euint64",
862
+ "name": "amount",
863
+ "type": "bytes32"
864
+ },
865
+ {
866
+ "internalType": "bytes",
867
+ "name": "data",
868
+ "type": "bytes"
869
+ }
870
+ ],
871
+ "name": "confidentialTransferFromAndCall",
872
+ "outputs": [
873
+ {
874
+ "internalType": "euint64",
875
+ "name": "transferred",
876
+ "type": "bytes32"
877
+ }
878
+ ],
879
+ "stateMutability": "nonpayable",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [],
884
+ "name": "contractURI",
885
+ "outputs": [
886
+ {
887
+ "internalType": "string",
888
+ "name": "",
889
+ "type": "string"
890
+ }
891
+ ],
892
+ "stateMutability": "view",
893
+ "type": "function"
894
+ },
895
+ {
896
+ "inputs": [],
897
+ "name": "decimals",
898
+ "outputs": [
899
+ {
900
+ "internalType": "uint8",
901
+ "name": "",
902
+ "type": "uint8"
903
+ }
904
+ ],
905
+ "stateMutability": "view",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "euint64",
912
+ "name": "encryptedAmount",
913
+ "type": "bytes32"
914
+ },
915
+ {
916
+ "internalType": "uint64",
917
+ "name": "cleartextAmount",
918
+ "type": "uint64"
919
+ },
920
+ {
921
+ "internalType": "bytes",
922
+ "name": "decryptionProof",
923
+ "type": "bytes"
924
+ }
925
+ ],
926
+ "name": "discloseEncryptedAmount",
927
+ "outputs": [],
928
+ "stateMutability": "nonpayable",
929
+ "type": "function"
930
+ },
931
+ {
932
+ "inputs": [
933
+ {
934
+ "internalType": "address",
935
+ "name": "from",
936
+ "type": "address"
937
+ },
938
+ {
939
+ "internalType": "address",
940
+ "name": "to",
941
+ "type": "address"
942
+ },
943
+ {
944
+ "internalType": "euint64",
945
+ "name": "encryptedAmount",
946
+ "type": "bytes32"
947
+ }
948
+ ],
949
+ "name": "forceConfidentialTransferFrom",
950
+ "outputs": [
951
+ {
952
+ "internalType": "euint64",
953
+ "name": "transferred",
954
+ "type": "bytes32"
955
+ }
956
+ ],
957
+ "stateMutability": "nonpayable",
958
+ "type": "function"
959
+ },
960
+ {
961
+ "inputs": [
962
+ {
963
+ "internalType": "address",
964
+ "name": "from",
965
+ "type": "address"
966
+ },
967
+ {
968
+ "internalType": "address",
969
+ "name": "to",
970
+ "type": "address"
971
+ },
972
+ {
973
+ "internalType": "externalEuint64",
974
+ "name": "encryptedAmount",
975
+ "type": "bytes32"
976
+ },
977
+ {
978
+ "internalType": "bytes",
979
+ "name": "inputProof",
980
+ "type": "bytes"
981
+ }
982
+ ],
983
+ "name": "forceConfidentialTransferFrom",
984
+ "outputs": [
985
+ {
986
+ "internalType": "euint64",
987
+ "name": "",
988
+ "type": "bytes32"
989
+ }
990
+ ],
991
+ "stateMutability": "nonpayable",
992
+ "type": "function"
993
+ },
994
+ {
995
+ "inputs": [
996
+ {
997
+ "internalType": "address",
998
+ "name": "account",
999
+ "type": "address"
1000
+ }
1001
+ ],
1002
+ "name": "getRestriction",
1003
+ "outputs": [
1004
+ {
1005
+ "internalType": "enum ERC7984Restricted.Restriction",
1006
+ "name": "",
1007
+ "type": "uint8"
1008
+ }
1009
+ ],
1010
+ "stateMutability": "view",
1011
+ "type": "function"
1012
+ },
1013
+ {
1014
+ "inputs": [
1015
+ {
1016
+ "internalType": "bytes32",
1017
+ "name": "role",
1018
+ "type": "bytes32"
1019
+ }
1020
+ ],
1021
+ "name": "getRoleAdmin",
1022
+ "outputs": [
1023
+ {
1024
+ "internalType": "bytes32",
1025
+ "name": "",
1026
+ "type": "bytes32"
1027
+ }
1028
+ ],
1029
+ "stateMutability": "view",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [
1034
+ {
1035
+ "internalType": "bytes32",
1036
+ "name": "role",
1037
+ "type": "bytes32"
1038
+ },
1039
+ {
1040
+ "internalType": "address",
1041
+ "name": "account",
1042
+ "type": "address"
1043
+ }
1044
+ ],
1045
+ "name": "grantRole",
1046
+ "outputs": [],
1047
+ "stateMutability": "nonpayable",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [
1052
+ {
1053
+ "internalType": "bytes32",
1054
+ "name": "role",
1055
+ "type": "bytes32"
1056
+ },
1057
+ {
1058
+ "internalType": "address",
1059
+ "name": "account",
1060
+ "type": "address"
1061
+ }
1062
+ ],
1063
+ "name": "hasRole",
1064
+ "outputs": [
1065
+ {
1066
+ "internalType": "bool",
1067
+ "name": "",
1068
+ "type": "bool"
1069
+ }
1070
+ ],
1071
+ "stateMutability": "view",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "account",
1079
+ "type": "address"
1080
+ }
1081
+ ],
1082
+ "name": "isAdmin",
1083
+ "outputs": [
1084
+ {
1085
+ "internalType": "bool",
1086
+ "name": "",
1087
+ "type": "bool"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "view",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [
1095
+ {
1096
+ "internalType": "address",
1097
+ "name": "account",
1098
+ "type": "address"
1099
+ }
1100
+ ],
1101
+ "name": "isAgent",
1102
+ "outputs": [
1103
+ {
1104
+ "internalType": "bool",
1105
+ "name": "",
1106
+ "type": "bool"
1107
+ }
1108
+ ],
1109
+ "stateMutability": "view",
1110
+ "type": "function"
1111
+ },
1112
+ {
1113
+ "inputs": [
1114
+ {
1115
+ "internalType": "address",
1116
+ "name": "holder",
1117
+ "type": "address"
1118
+ },
1119
+ {
1120
+ "internalType": "address",
1121
+ "name": "spender",
1122
+ "type": "address"
1123
+ }
1124
+ ],
1125
+ "name": "isOperator",
1126
+ "outputs": [
1127
+ {
1128
+ "internalType": "bool",
1129
+ "name": "",
1130
+ "type": "bool"
1131
+ }
1132
+ ],
1133
+ "stateMutability": "view",
1134
+ "type": "function"
1135
+ },
1136
+ {
1137
+ "inputs": [
1138
+ {
1139
+ "internalType": "address",
1140
+ "name": "account",
1141
+ "type": "address"
1142
+ }
1143
+ ],
1144
+ "name": "isUserAllowed",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "bool",
1148
+ "name": "",
1149
+ "type": "bool"
1150
+ }
1151
+ ],
1152
+ "stateMutability": "view",
1153
+ "type": "function"
1154
+ },
1155
+ {
1156
+ "inputs": [
1157
+ {
1158
+ "internalType": "bytes[]",
1159
+ "name": "data",
1160
+ "type": "bytes[]"
1161
+ }
1162
+ ],
1163
+ "name": "multicall",
1164
+ "outputs": [
1165
+ {
1166
+ "internalType": "bytes[]",
1167
+ "name": "results",
1168
+ "type": "bytes[]"
1169
+ }
1170
+ ],
1171
+ "stateMutability": "nonpayable",
1172
+ "type": "function"
1173
+ },
1174
+ {
1175
+ "inputs": [],
1176
+ "name": "name",
1177
+ "outputs": [
1178
+ {
1179
+ "internalType": "string",
1180
+ "name": "",
1181
+ "type": "string"
1182
+ }
1183
+ ],
1184
+ "stateMutability": "view",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [],
1189
+ "name": "pause",
1190
+ "outputs": [],
1191
+ "stateMutability": "nonpayable",
1192
+ "type": "function"
1193
+ },
1194
+ {
1195
+ "inputs": [],
1196
+ "name": "paused",
1197
+ "outputs": [
1198
+ {
1199
+ "internalType": "bool",
1200
+ "name": "",
1201
+ "type": "bool"
1202
+ }
1203
+ ],
1204
+ "stateMutability": "view",
1205
+ "type": "function"
1206
+ },
1207
+ {
1208
+ "inputs": [
1209
+ {
1210
+ "internalType": "address",
1211
+ "name": "account",
1212
+ "type": "address"
1213
+ }
1214
+ ],
1215
+ "name": "removeAgent",
1216
+ "outputs": [],
1217
+ "stateMutability": "nonpayable",
1218
+ "type": "function"
1219
+ },
1220
+ {
1221
+ "inputs": [
1222
+ {
1223
+ "internalType": "bytes32",
1224
+ "name": "role",
1225
+ "type": "bytes32"
1226
+ },
1227
+ {
1228
+ "internalType": "address",
1229
+ "name": "callerConfirmation",
1230
+ "type": "address"
1231
+ }
1232
+ ],
1233
+ "name": "renounceRole",
1234
+ "outputs": [],
1235
+ "stateMutability": "nonpayable",
1236
+ "type": "function"
1237
+ },
1238
+ {
1239
+ "inputs": [
1240
+ {
1241
+ "internalType": "euint64",
1242
+ "name": "encryptedAmount",
1243
+ "type": "bytes32"
1244
+ }
1245
+ ],
1246
+ "name": "requestDiscloseEncryptedAmount",
1247
+ "outputs": [],
1248
+ "stateMutability": "nonpayable",
1249
+ "type": "function"
1250
+ },
1251
+ {
1252
+ "inputs": [
1253
+ {
1254
+ "internalType": "bytes32",
1255
+ "name": "role",
1256
+ "type": "bytes32"
1257
+ },
1258
+ {
1259
+ "internalType": "address",
1260
+ "name": "account",
1261
+ "type": "address"
1262
+ }
1263
+ ],
1264
+ "name": "revokeRole",
1265
+ "outputs": [],
1266
+ "stateMutability": "nonpayable",
1267
+ "type": "function"
1268
+ },
1269
+ {
1270
+ "inputs": [
1271
+ {
1272
+ "internalType": "address",
1273
+ "name": "account",
1274
+ "type": "address"
1275
+ },
1276
+ {
1277
+ "internalType": "externalEuint64",
1278
+ "name": "encryptedAmount",
1279
+ "type": "bytes32"
1280
+ },
1281
+ {
1282
+ "internalType": "bytes",
1283
+ "name": "inputProof",
1284
+ "type": "bytes"
1285
+ }
1286
+ ],
1287
+ "name": "setConfidentialFrozen",
1288
+ "outputs": [],
1289
+ "stateMutability": "nonpayable",
1290
+ "type": "function"
1291
+ },
1292
+ {
1293
+ "inputs": [
1294
+ {
1295
+ "internalType": "address",
1296
+ "name": "account",
1297
+ "type": "address"
1298
+ },
1299
+ {
1300
+ "internalType": "euint64",
1301
+ "name": "encryptedAmount",
1302
+ "type": "bytes32"
1303
+ }
1304
+ ],
1305
+ "name": "setConfidentialFrozen",
1306
+ "outputs": [],
1307
+ "stateMutability": "nonpayable",
1308
+ "type": "function"
1309
+ },
1310
+ {
1311
+ "inputs": [
1312
+ {
1313
+ "internalType": "address",
1314
+ "name": "operator",
1315
+ "type": "address"
1316
+ },
1317
+ {
1318
+ "internalType": "uint48",
1319
+ "name": "until",
1320
+ "type": "uint48"
1321
+ }
1322
+ ],
1323
+ "name": "setOperator",
1324
+ "outputs": [],
1325
+ "stateMutability": "nonpayable",
1326
+ "type": "function"
1327
+ },
1328
+ {
1329
+ "inputs": [
1330
+ {
1331
+ "internalType": "bytes4",
1332
+ "name": "interfaceId",
1333
+ "type": "bytes4"
1334
+ }
1335
+ ],
1336
+ "name": "supportsInterface",
1337
+ "outputs": [
1338
+ {
1339
+ "internalType": "bool",
1340
+ "name": "",
1341
+ "type": "bool"
1342
+ }
1343
+ ],
1344
+ "stateMutability": "view",
1345
+ "type": "function"
1346
+ },
1347
+ {
1348
+ "inputs": [],
1349
+ "name": "symbol",
1350
+ "outputs": [
1351
+ {
1352
+ "internalType": "string",
1353
+ "name": "",
1354
+ "type": "string"
1355
+ }
1356
+ ],
1357
+ "stateMutability": "view",
1358
+ "type": "function"
1359
+ },
1360
+ {
1361
+ "inputs": [
1362
+ {
1363
+ "internalType": "address",
1364
+ "name": "account",
1365
+ "type": "address"
1366
+ }
1367
+ ],
1368
+ "name": "unblockUser",
1369
+ "outputs": [],
1370
+ "stateMutability": "nonpayable",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [],
1375
+ "name": "unpause",
1376
+ "outputs": [],
1377
+ "stateMutability": "nonpayable",
1378
+ "type": "function"
1379
+ }
1380
+ ],
1381
+ "bytecode": "0x",
1382
+ "deployedBytecode": "0x",
1383
+ "linkReferences": {},
1384
+ "deployedLinkReferences": {}
1385
+ }