@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
@@ -9,8 +9,8 @@
9
9
  "type": "error"
10
10
  }
11
11
  ],
12
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220a82f4123dc620a523cf32b417d00b9472eafbc138490892aba0950faef876e5f64736f6c634300081d0033",
13
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220a82f4123dc620a523cf32b417d00b9472eafbc138490892aba0950faef876e5f64736f6c634300081d0033",
12
+ "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207ac2b5a91bbe8d5c2edc50cd6b8ca65dda1c06dc3baad1b46f94f6cc976f083064736f6c634300081d0033",
13
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212207ac2b5a91bbe8d5c2edc50cd6b8ca65dda1c06dc3baad1b46f94f6cc976f083064736f6c634300081d0033",
14
14
  "linkReferences": {},
15
15
  "deployedLinkReferences": {}
16
16
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "CheckpointsConfidential",
4
4
  "sourceName": "contracts/utils/structs/CheckpointsConfidential.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122057a94665aa47e1eee66c46039103adce039864c0979c586fd3fca3eb7ee1340764736f6c634300081d0033",
7
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea264697066735822122057a94665aa47e1eee66c46039103adce039864c0979c586fd3fca3eb7ee1340764736f6c634300081d0033",
6
+ "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209fe3666278f6df29897de987f7b0712add3bf9ef20aa8543f2e8a089c0d423ea64736f6c634300081d0033",
7
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209fe3666278f6df29897de987f7b0712add3bf9ef20aa8543f2e8a089c0d423ea64736f6c634300081d0033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "ConfidentialFungibleToken",
4
- "sourceName": "contracts/token/ConfidentialFungibleToken.sol",
3
+ "contractName": "ERC7984",
4
+ "sourceName": "contracts/token/ERC7984/ERC7984.sol",
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [
@@ -11,7 +11,7 @@
11
11
  "type": "uint256"
12
12
  }
13
13
  ],
14
- "name": "ConfidentialFungibleTokenInvalidGatewayRequest",
14
+ "name": "ERC7984InvalidGatewayRequest",
15
15
  "type": "error"
16
16
  },
17
17
  {
@@ -22,7 +22,7 @@
22
22
  "type": "address"
23
23
  }
24
24
  ],
25
- "name": "ConfidentialFungibleTokenInvalidReceiver",
25
+ "name": "ERC7984InvalidReceiver",
26
26
  "type": "error"
27
27
  },
28
28
  {
@@ -33,7 +33,7 @@
33
33
  "type": "address"
34
34
  }
35
35
  ],
36
- "name": "ConfidentialFungibleTokenInvalidSender",
36
+ "name": "ERC7984InvalidSender",
37
37
  "type": "error"
38
38
  },
39
39
  {
@@ -44,7 +44,7 @@
44
44
  "type": "address"
45
45
  }
46
46
  ],
47
- "name": "ConfidentialFungibleTokenUnauthorizedCaller",
47
+ "name": "ERC7984UnauthorizedCaller",
48
48
  "type": "error"
49
49
  },
50
50
  {
@@ -60,7 +60,7 @@
60
60
  "type": "address"
61
61
  }
62
62
  ],
63
- "name": "ConfidentialFungibleTokenUnauthorizedSpender",
63
+ "name": "ERC7984UnauthorizedSpender",
64
64
  "type": "error"
65
65
  },
66
66
  {
@@ -76,7 +76,7 @@
76
76
  "type": "address"
77
77
  }
78
78
  ],
79
- "name": "ConfidentialFungibleTokenUnauthorizedUseOfEncryptedAmount",
79
+ "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
80
  "type": "error"
81
81
  },
82
82
  {
@@ -87,12 +87,7 @@
87
87
  "type": "address"
88
88
  }
89
89
  ],
90
- "name": "ConfidentialFungibleTokenZeroBalance",
91
- "type": "error"
92
- },
93
- {
94
- "inputs": [],
95
- "name": "HandlesAlreadySavedForRequestID",
90
+ "name": "ERC7984ZeroBalance",
96
91
  "type": "error"
97
92
  },
98
93
  {
@@ -101,14 +96,23 @@
101
96
  "type": "error"
102
97
  },
103
98
  {
104
- "inputs": [],
105
- "name": "NoHandleFoundForRequestID",
106
- "type": "error"
107
- },
108
- {
109
- "inputs": [],
110
- "name": "UnsupportedHandleType",
111
- "type": "error"
99
+ "anonymous": false,
100
+ "inputs": [
101
+ {
102
+ "indexed": true,
103
+ "internalType": "euint64",
104
+ "name": "encryptedAmount",
105
+ "type": "bytes32"
106
+ },
107
+ {
108
+ "indexed": true,
109
+ "internalType": "address",
110
+ "name": "requester",
111
+ "type": "address"
112
+ }
113
+ ],
114
+ "name": "AmountDiscloseRequested",
115
+ "type": "event"
112
116
  },
113
117
  {
114
118
  "anonymous": false,
@@ -154,19 +158,6 @@
154
158
  "name": "ConfidentialTransfer",
155
159
  "type": "event"
156
160
  },
157
- {
158
- "anonymous": false,
159
- "inputs": [
160
- {
161
- "indexed": true,
162
- "internalType": "uint256",
163
- "name": "requestID",
164
- "type": "uint256"
165
- }
166
- ],
167
- "name": "DecryptionFulfilled",
168
- "type": "event"
169
- },
170
161
  {
171
162
  "anonymous": false,
172
163
  "inputs": [
@@ -192,6 +183,25 @@
192
183
  "name": "OperatorSet",
193
184
  "type": "event"
194
185
  },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "indexed": false,
191
+ "internalType": "bytes32[]",
192
+ "name": "handlesList",
193
+ "type": "bytes32[]"
194
+ },
195
+ {
196
+ "indexed": false,
197
+ "internalType": "bytes",
198
+ "name": "abiEncodedCleartexts",
199
+ "type": "bytes"
200
+ }
201
+ ],
202
+ "name": "PublicDecryptionVerified",
203
+ "type": "event"
204
+ },
195
205
  {
196
206
  "inputs": [
197
207
  {
@@ -478,49 +488,49 @@
478
488
  },
479
489
  {
480
490
  "inputs": [],
481
- "name": "decimals",
491
+ "name": "contractURI",
482
492
  "outputs": [
483
493
  {
484
- "internalType": "uint8",
494
+ "internalType": "string",
485
495
  "name": "",
486
- "type": "uint8"
496
+ "type": "string"
487
497
  }
488
498
  ],
489
499
  "stateMutability": "view",
490
500
  "type": "function"
491
501
  },
492
502
  {
493
- "inputs": [
503
+ "inputs": [],
504
+ "name": "decimals",
505
+ "outputs": [
494
506
  {
495
- "internalType": "euint64",
496
- "name": "encryptedAmount",
497
- "type": "bytes32"
507
+ "internalType": "uint8",
508
+ "name": "",
509
+ "type": "uint8"
498
510
  }
499
511
  ],
500
- "name": "discloseEncryptedAmount",
501
- "outputs": [],
502
- "stateMutability": "nonpayable",
512
+ "stateMutability": "view",
503
513
  "type": "function"
504
514
  },
505
515
  {
506
516
  "inputs": [
507
517
  {
508
- "internalType": "uint256",
509
- "name": "requestId",
510
- "type": "uint256"
518
+ "internalType": "euint64",
519
+ "name": "encryptedAmount",
520
+ "type": "bytes32"
511
521
  },
512
522
  {
513
523
  "internalType": "uint64",
514
- "name": "amount",
524
+ "name": "cleartextAmount",
515
525
  "type": "uint64"
516
526
  },
517
527
  {
518
- "internalType": "bytes[]",
519
- "name": "signatures",
520
- "type": "bytes[]"
528
+ "internalType": "bytes",
529
+ "name": "decryptionProof",
530
+ "type": "bytes"
521
531
  }
522
532
  ],
523
- "name": "finalizeDiscloseEncryptedAmount",
533
+ "name": "discloseEncryptedAmount",
524
534
  "outputs": [],
525
535
  "stateMutability": "nonpayable",
526
536
  "type": "function"
@@ -562,6 +572,19 @@
562
572
  "stateMutability": "view",
563
573
  "type": "function"
564
574
  },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "euint64",
579
+ "name": "encryptedAmount",
580
+ "type": "bytes32"
581
+ }
582
+ ],
583
+ "name": "requestDiscloseEncryptedAmount",
584
+ "outputs": [],
585
+ "stateMutability": "nonpayable",
586
+ "type": "function"
587
+ },
565
588
  {
566
589
  "inputs": [
567
590
  {
@@ -581,13 +604,19 @@
581
604
  "type": "function"
582
605
  },
583
606
  {
584
- "inputs": [],
585
- "name": "symbol",
607
+ "inputs": [
608
+ {
609
+ "internalType": "bytes4",
610
+ "name": "interfaceId",
611
+ "type": "bytes4"
612
+ }
613
+ ],
614
+ "name": "supportsInterface",
586
615
  "outputs": [
587
616
  {
588
- "internalType": "string",
617
+ "internalType": "bool",
589
618
  "name": "",
590
- "type": "string"
619
+ "type": "bool"
591
620
  }
592
621
  ],
593
622
  "stateMutability": "view",
@@ -595,7 +624,7 @@
595
624
  },
596
625
  {
597
626
  "inputs": [],
598
- "name": "tokenURI",
627
+ "name": "symbol",
599
628
  "outputs": [
600
629
  {
601
630
  "internalType": "string",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "ConfidentialFungibleTokenERC20Wrapper",
4
- "sourceName": "contracts/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol",
3
+ "contractName": "ERC7984ERC20Wrapper",
4
+ "sourceName": "contracts/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol",
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [
@@ -11,7 +11,7 @@
11
11
  "type": "uint256"
12
12
  }
13
13
  ],
14
- "name": "ConfidentialFungibleTokenInvalidGatewayRequest",
14
+ "name": "ERC7984InvalidGatewayRequest",
15
15
  "type": "error"
16
16
  },
17
17
  {
@@ -22,7 +22,7 @@
22
22
  "type": "address"
23
23
  }
24
24
  ],
25
- "name": "ConfidentialFungibleTokenInvalidReceiver",
25
+ "name": "ERC7984InvalidReceiver",
26
26
  "type": "error"
27
27
  },
28
28
  {
@@ -33,7 +33,7 @@
33
33
  "type": "address"
34
34
  }
35
35
  ],
36
- "name": "ConfidentialFungibleTokenInvalidSender",
36
+ "name": "ERC7984InvalidSender",
37
37
  "type": "error"
38
38
  },
39
39
  {
@@ -44,7 +44,7 @@
44
44
  "type": "address"
45
45
  }
46
46
  ],
47
- "name": "ConfidentialFungibleTokenUnauthorizedCaller",
47
+ "name": "ERC7984UnauthorizedCaller",
48
48
  "type": "error"
49
49
  },
50
50
  {
@@ -60,7 +60,7 @@
60
60
  "type": "address"
61
61
  }
62
62
  ],
63
- "name": "ConfidentialFungibleTokenUnauthorizedSpender",
63
+ "name": "ERC7984UnauthorizedSpender",
64
64
  "type": "error"
65
65
  },
66
66
  {
@@ -76,7 +76,7 @@
76
76
  "type": "address"
77
77
  }
78
78
  ],
79
- "name": "ConfidentialFungibleTokenUnauthorizedUseOfEncryptedAmount",
79
+ "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
80
  "type": "error"
81
81
  },
82
82
  {
@@ -87,12 +87,7 @@
87
87
  "type": "address"
88
88
  }
89
89
  ],
90
- "name": "ConfidentialFungibleTokenZeroBalance",
91
- "type": "error"
92
- },
93
- {
94
- "inputs": [],
95
- "name": "HandlesAlreadySavedForRequestID",
90
+ "name": "ERC7984ZeroBalance",
96
91
  "type": "error"
97
92
  },
98
93
  {
@@ -101,8 +96,14 @@
101
96
  "type": "error"
102
97
  },
103
98
  {
104
- "inputs": [],
105
- "name": "NoHandleFoundForRequestID",
99
+ "inputs": [
100
+ {
101
+ "internalType": "euint64",
102
+ "name": "amount",
103
+ "type": "bytes32"
104
+ }
105
+ ],
106
+ "name": "InvalidUnwrapRequest",
106
107
  "type": "error"
107
108
  },
108
109
  {
@@ -133,9 +134,23 @@
133
134
  "type": "error"
134
135
  },
135
136
  {
136
- "inputs": [],
137
- "name": "UnsupportedHandleType",
138
- "type": "error"
137
+ "anonymous": false,
138
+ "inputs": [
139
+ {
140
+ "indexed": true,
141
+ "internalType": "euint64",
142
+ "name": "encryptedAmount",
143
+ "type": "bytes32"
144
+ },
145
+ {
146
+ "indexed": true,
147
+ "internalType": "address",
148
+ "name": "requester",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "name": "AmountDiscloseRequested",
153
+ "type": "event"
139
154
  },
140
155
  {
141
156
  "anonymous": false,
@@ -186,12 +201,43 @@
186
201
  "inputs": [
187
202
  {
188
203
  "indexed": true,
189
- "internalType": "uint256",
190
- "name": "requestID",
191
- "type": "uint256"
204
+ "internalType": "address",
205
+ "name": "holder",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "indexed": true,
210
+ "internalType": "address",
211
+ "name": "operator",
212
+ "type": "address"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "uint48",
217
+ "name": "until",
218
+ "type": "uint48"
192
219
  }
193
220
  ],
194
- "name": "DecryptionFulfilled",
221
+ "name": "OperatorSet",
222
+ "type": "event"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": false,
229
+ "internalType": "bytes32[]",
230
+ "name": "handlesList",
231
+ "type": "bytes32[]"
232
+ },
233
+ {
234
+ "indexed": false,
235
+ "internalType": "bytes",
236
+ "name": "abiEncodedCleartexts",
237
+ "type": "bytes"
238
+ }
239
+ ],
240
+ "name": "PublicDecryptionVerified",
195
241
  "type": "event"
196
242
  },
197
243
  {
@@ -200,23 +246,42 @@
200
246
  {
201
247
  "indexed": true,
202
248
  "internalType": "address",
203
- "name": "holder",
249
+ "name": "receiver",
204
250
  "type": "address"
205
251
  },
252
+ {
253
+ "indexed": false,
254
+ "internalType": "euint64",
255
+ "name": "encryptedAmount",
256
+ "type": "bytes32"
257
+ },
258
+ {
259
+ "indexed": false,
260
+ "internalType": "uint64",
261
+ "name": "cleartextAmount",
262
+ "type": "uint64"
263
+ }
264
+ ],
265
+ "name": "UnwrapFinalized",
266
+ "type": "event"
267
+ },
268
+ {
269
+ "anonymous": false,
270
+ "inputs": [
206
271
  {
207
272
  "indexed": true,
208
273
  "internalType": "address",
209
- "name": "operator",
274
+ "name": "receiver",
210
275
  "type": "address"
211
276
  },
212
277
  {
213
278
  "indexed": false,
214
- "internalType": "uint48",
215
- "name": "until",
216
- "type": "uint48"
279
+ "internalType": "euint64",
280
+ "name": "amount",
281
+ "type": "bytes32"
217
282
  }
218
283
  ],
219
- "name": "OperatorSet",
284
+ "name": "UnwrapRequested",
220
285
  "type": "event"
221
286
  },
222
287
  {
@@ -505,49 +570,49 @@
505
570
  },
506
571
  {
507
572
  "inputs": [],
508
- "name": "decimals",
573
+ "name": "contractURI",
509
574
  "outputs": [
510
575
  {
511
- "internalType": "uint8",
576
+ "internalType": "string",
512
577
  "name": "",
513
- "type": "uint8"
578
+ "type": "string"
514
579
  }
515
580
  ],
516
581
  "stateMutability": "view",
517
582
  "type": "function"
518
583
  },
519
584
  {
520
- "inputs": [
585
+ "inputs": [],
586
+ "name": "decimals",
587
+ "outputs": [
521
588
  {
522
- "internalType": "euint64",
523
- "name": "encryptedAmount",
524
- "type": "bytes32"
589
+ "internalType": "uint8",
590
+ "name": "",
591
+ "type": "uint8"
525
592
  }
526
593
  ],
527
- "name": "discloseEncryptedAmount",
528
- "outputs": [],
529
- "stateMutability": "nonpayable",
594
+ "stateMutability": "view",
530
595
  "type": "function"
531
596
  },
532
597
  {
533
598
  "inputs": [
534
599
  {
535
- "internalType": "uint256",
536
- "name": "requestId",
537
- "type": "uint256"
600
+ "internalType": "euint64",
601
+ "name": "encryptedAmount",
602
+ "type": "bytes32"
538
603
  },
539
604
  {
540
605
  "internalType": "uint64",
541
- "name": "amount",
606
+ "name": "cleartextAmount",
542
607
  "type": "uint64"
543
608
  },
544
609
  {
545
- "internalType": "bytes[]",
546
- "name": "signatures",
547
- "type": "bytes[]"
610
+ "internalType": "bytes",
611
+ "name": "decryptionProof",
612
+ "type": "bytes"
548
613
  }
549
614
  ],
550
- "name": "finalizeDiscloseEncryptedAmount",
615
+ "name": "discloseEncryptedAmount",
551
616
  "outputs": [],
552
617
  "stateMutability": "nonpayable",
553
618
  "type": "function"
@@ -555,19 +620,19 @@
555
620
  {
556
621
  "inputs": [
557
622
  {
558
- "internalType": "uint256",
559
- "name": "requestID",
560
- "type": "uint256"
623
+ "internalType": "euint64",
624
+ "name": "burntAmount",
625
+ "type": "bytes32"
561
626
  },
562
627
  {
563
628
  "internalType": "uint64",
564
- "name": "amount",
629
+ "name": "burntAmountCleartext",
565
630
  "type": "uint64"
566
631
  },
567
632
  {
568
- "internalType": "bytes[]",
569
- "name": "signatures",
570
- "type": "bytes[]"
633
+ "internalType": "bytes",
634
+ "name": "decryptionProof",
635
+ "type": "bytes"
571
636
  }
572
637
  ],
573
638
  "name": "finalizeUnwrap",
@@ -659,6 +724,19 @@
659
724
  "stateMutability": "view",
660
725
  "type": "function"
661
726
  },
727
+ {
728
+ "inputs": [
729
+ {
730
+ "internalType": "euint64",
731
+ "name": "encryptedAmount",
732
+ "type": "bytes32"
733
+ }
734
+ ],
735
+ "name": "requestDiscloseEncryptedAmount",
736
+ "outputs": [],
737
+ "stateMutability": "nonpayable",
738
+ "type": "function"
739
+ },
662
740
  {
663
741
  "inputs": [
664
742
  {
@@ -678,13 +756,19 @@
678
756
  "type": "function"
679
757
  },
680
758
  {
681
- "inputs": [],
682
- "name": "symbol",
759
+ "inputs": [
760
+ {
761
+ "internalType": "bytes4",
762
+ "name": "interfaceId",
763
+ "type": "bytes4"
764
+ }
765
+ ],
766
+ "name": "supportsInterface",
683
767
  "outputs": [
684
768
  {
685
- "internalType": "string",
769
+ "internalType": "bool",
686
770
  "name": "",
687
- "type": "string"
771
+ "type": "bool"
688
772
  }
689
773
  ],
690
774
  "stateMutability": "view",
@@ -692,7 +776,7 @@
692
776
  },
693
777
  {
694
778
  "inputs": [],
695
- "name": "tokenURI",
779
+ "name": "symbol",
696
780
  "outputs": [
697
781
  {
698
782
  "internalType": "string",