@cartesi/devnet 1.6.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 (76) hide show
  1. package/LICENSE +202 -0
  2. package/build/anvil_state.json +1 -0
  3. package/deployments/localhost/.chainId +1 -0
  4. package/deployments/localhost/AuthorityFactory.json +177 -0
  5. package/deployments/localhost/AuthorityHistoryPairFactory.json +276 -0
  6. package/deployments/localhost/Bitmask.json +44 -0
  7. package/deployments/localhost/CartesiDAppFactory.json +231 -0
  8. package/deployments/localhost/CartesiMathV2.json +213 -0
  9. package/deployments/localhost/DAppAddressRelay.json +102 -0
  10. package/deployments/localhost/ERC1155BatchPortal.json +133 -0
  11. package/deployments/localhost/ERC1155SinglePortal.json +132 -0
  12. package/deployments/localhost/ERC20Portal.json +120 -0
  13. package/deployments/localhost/ERC721Portal.json +126 -0
  14. package/deployments/localhost/EtherPortal.json +121 -0
  15. package/deployments/localhost/HistoryFactory.json +177 -0
  16. package/deployments/localhost/InputBox.json +207 -0
  17. package/deployments/localhost/MerkleV2.json +217 -0
  18. package/deployments/localhost/SelfHostedApplicationFactory.json +226 -0
  19. package/deployments/localhost/TestMultiToken.json +829 -0
  20. package/deployments/localhost/TestNFT.json +891 -0
  21. package/deployments/localhost/TestToken.json +1079 -0
  22. package/deployments/localhost/UnrolledCordic.json +54 -0
  23. package/dist/deploy/01_token.js +15 -0
  24. package/dist/deploy/02_nft.js +15 -0
  25. package/dist/deploy/03_multitoken.js +15 -0
  26. package/dist/src/tasks/deploy-anvil.d.ts +6 -0
  27. package/dist/src/tasks/deploy-anvil.d.ts.map +1 -0
  28. package/dist/src/tasks/deploy-anvil.js +38 -0
  29. package/export/abi/localhost.json +3205 -0
  30. package/export/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +128 -0
  31. package/export/artifacts/@openzeppelin/contracts/access/manager/AccessManaged.sol/AccessManaged.json +137 -0
  32. package/export/artifacts/@openzeppelin/contracts/access/manager/AuthorityUtils.sol/AuthorityUtils.json +32 -0
  33. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManaged.sol/IAccessManaged.json +133 -0
  34. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManager.sol/IAccessManager.json +1251 -0
  35. package/export/artifacts/@openzeppelin/contracts/access/manager/IAuthority.sol/IAuthority.json +60 -0
  36. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +401 -0
  37. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC5267.sol/IERC5267.json +84 -0
  38. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +190 -0
  39. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +165 -0
  40. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +197 -0
  41. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +553 -0
  42. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +362 -0
  43. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +156 -0
  44. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +385 -0
  45. package/export/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +436 -0
  46. package/export/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +242 -0
  47. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +472 -0
  48. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol/ERC20Pausable.json +502 -0
  49. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol/ERC20Permit.json +695 -0
  50. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +293 -0
  51. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +114 -0
  52. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +595 -0
  53. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +363 -0
  54. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +66 -0
  55. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +630 -0
  56. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +421 -0
  57. package/export/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.json +38 -0
  58. package/export/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +24 -0
  59. package/export/artifacts/@openzeppelin/contracts/utils/Nonces.sol/Nonces.json +73 -0
  60. package/export/artifacts/@openzeppelin/contracts/utils/Pausable.sol/Pausable.json +103 -0
  61. package/export/artifacts/@openzeppelin/contracts/utils/ShortStrings.sol/ShortStrings.json +55 -0
  62. package/export/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +40 -0
  63. package/export/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +62 -0
  64. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +84 -0
  65. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/EIP712.sol/EIP712.json +105 -0
  66. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +36 -0
  67. package/export/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +50 -0
  68. package/export/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +50 -0
  69. package/export/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +65 -0
  70. package/export/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +173 -0
  71. package/export/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +36 -0
  72. package/export/artifacts/@openzeppelin/contracts/utils/types/Time.sol/Time.json +41 -0
  73. package/export/artifacts/contracts/TestMultiToken.sol/TestMultiToken.json +750 -0
  74. package/export/artifacts/contracts/TestNFT.sol/TestNFT.json +779 -0
  75. package/export/artifacts/contracts/TestToken.sol/TestToken.json +963 -0
  76. package/package.json +41 -0
@@ -0,0 +1,630 @@
1
+ {
2
+ "contractName": "ERC721URIStorage",
3
+ "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
4
+ "abi": [
5
+ {
6
+ "inputs": [
7
+ {
8
+ "internalType": "address",
9
+ "name": "sender",
10
+ "type": "address"
11
+ },
12
+ {
13
+ "internalType": "uint256",
14
+ "name": "tokenId",
15
+ "type": "uint256"
16
+ },
17
+ {
18
+ "internalType": "address",
19
+ "name": "owner",
20
+ "type": "address"
21
+ }
22
+ ],
23
+ "name": "ERC721IncorrectOwner",
24
+ "type": "error"
25
+ },
26
+ {
27
+ "inputs": [
28
+ {
29
+ "internalType": "address",
30
+ "name": "operator",
31
+ "type": "address"
32
+ },
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "tokenId",
36
+ "type": "uint256"
37
+ }
38
+ ],
39
+ "name": "ERC721InsufficientApproval",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "address",
46
+ "name": "approver",
47
+ "type": "address"
48
+ }
49
+ ],
50
+ "name": "ERC721InvalidApprover",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "address",
57
+ "name": "operator",
58
+ "type": "address"
59
+ }
60
+ ],
61
+ "name": "ERC721InvalidOperator",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "owner",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "ERC721InvalidOwner",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "receiver",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "ERC721InvalidReceiver",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "sender",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ERC721InvalidSender",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [
99
+ {
100
+ "internalType": "uint256",
101
+ "name": "tokenId",
102
+ "type": "uint256"
103
+ }
104
+ ],
105
+ "name": "ERC721NonexistentToken",
106
+ "type": "error"
107
+ },
108
+ {
109
+ "anonymous": false,
110
+ "inputs": [
111
+ {
112
+ "indexed": true,
113
+ "internalType": "address",
114
+ "name": "owner",
115
+ "type": "address"
116
+ },
117
+ {
118
+ "indexed": true,
119
+ "internalType": "address",
120
+ "name": "approved",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "indexed": true,
125
+ "internalType": "uint256",
126
+ "name": "tokenId",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "Approval",
131
+ "type": "event"
132
+ },
133
+ {
134
+ "anonymous": false,
135
+ "inputs": [
136
+ {
137
+ "indexed": true,
138
+ "internalType": "address",
139
+ "name": "owner",
140
+ "type": "address"
141
+ },
142
+ {
143
+ "indexed": true,
144
+ "internalType": "address",
145
+ "name": "operator",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "indexed": false,
150
+ "internalType": "bool",
151
+ "name": "approved",
152
+ "type": "bool"
153
+ }
154
+ ],
155
+ "name": "ApprovalForAll",
156
+ "type": "event"
157
+ },
158
+ {
159
+ "anonymous": false,
160
+ "inputs": [
161
+ {
162
+ "indexed": false,
163
+ "internalType": "uint256",
164
+ "name": "_fromTokenId",
165
+ "type": "uint256"
166
+ },
167
+ {
168
+ "indexed": false,
169
+ "internalType": "uint256",
170
+ "name": "_toTokenId",
171
+ "type": "uint256"
172
+ }
173
+ ],
174
+ "name": "BatchMetadataUpdate",
175
+ "type": "event"
176
+ },
177
+ {
178
+ "anonymous": false,
179
+ "inputs": [
180
+ {
181
+ "indexed": false,
182
+ "internalType": "uint256",
183
+ "name": "_tokenId",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "MetadataUpdate",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": true,
195
+ "internalType": "address",
196
+ "name": "from",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "indexed": true,
201
+ "internalType": "address",
202
+ "name": "to",
203
+ "type": "address"
204
+ },
205
+ {
206
+ "indexed": true,
207
+ "internalType": "uint256",
208
+ "name": "tokenId",
209
+ "type": "uint256"
210
+ }
211
+ ],
212
+ "name": "Transfer",
213
+ "type": "event"
214
+ },
215
+ {
216
+ "inputs": [
217
+ {
218
+ "internalType": "address",
219
+ "name": "to",
220
+ "type": "address"
221
+ },
222
+ {
223
+ "internalType": "uint256",
224
+ "name": "tokenId",
225
+ "type": "uint256"
226
+ }
227
+ ],
228
+ "name": "approve",
229
+ "outputs": [],
230
+ "stateMutability": "nonpayable",
231
+ "type": "function"
232
+ },
233
+ {
234
+ "inputs": [
235
+ {
236
+ "internalType": "address",
237
+ "name": "owner",
238
+ "type": "address"
239
+ }
240
+ ],
241
+ "name": "balanceOf",
242
+ "outputs": [
243
+ {
244
+ "internalType": "uint256",
245
+ "name": "",
246
+ "type": "uint256"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [
254
+ {
255
+ "internalType": "uint256",
256
+ "name": "tokenId",
257
+ "type": "uint256"
258
+ }
259
+ ],
260
+ "name": "getApproved",
261
+ "outputs": [
262
+ {
263
+ "internalType": "address",
264
+ "name": "",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "address",
275
+ "name": "owner",
276
+ "type": "address"
277
+ },
278
+ {
279
+ "internalType": "address",
280
+ "name": "operator",
281
+ "type": "address"
282
+ }
283
+ ],
284
+ "name": "isApprovedForAll",
285
+ "outputs": [
286
+ {
287
+ "internalType": "bool",
288
+ "name": "",
289
+ "type": "bool"
290
+ }
291
+ ],
292
+ "stateMutability": "view",
293
+ "type": "function"
294
+ },
295
+ {
296
+ "inputs": [],
297
+ "name": "name",
298
+ "outputs": [
299
+ {
300
+ "internalType": "string",
301
+ "name": "",
302
+ "type": "string"
303
+ }
304
+ ],
305
+ "stateMutability": "view",
306
+ "type": "function"
307
+ },
308
+ {
309
+ "inputs": [
310
+ {
311
+ "internalType": "uint256",
312
+ "name": "tokenId",
313
+ "type": "uint256"
314
+ }
315
+ ],
316
+ "name": "ownerOf",
317
+ "outputs": [
318
+ {
319
+ "internalType": "address",
320
+ "name": "",
321
+ "type": "address"
322
+ }
323
+ ],
324
+ "stateMutability": "view",
325
+ "type": "function"
326
+ },
327
+ {
328
+ "inputs": [
329
+ {
330
+ "internalType": "address",
331
+ "name": "from",
332
+ "type": "address"
333
+ },
334
+ {
335
+ "internalType": "address",
336
+ "name": "to",
337
+ "type": "address"
338
+ },
339
+ {
340
+ "internalType": "uint256",
341
+ "name": "tokenId",
342
+ "type": "uint256"
343
+ }
344
+ ],
345
+ "name": "safeTransferFrom",
346
+ "outputs": [],
347
+ "stateMutability": "nonpayable",
348
+ "type": "function"
349
+ },
350
+ {
351
+ "inputs": [
352
+ {
353
+ "internalType": "address",
354
+ "name": "from",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "internalType": "address",
359
+ "name": "to",
360
+ "type": "address"
361
+ },
362
+ {
363
+ "internalType": "uint256",
364
+ "name": "tokenId",
365
+ "type": "uint256"
366
+ },
367
+ {
368
+ "internalType": "bytes",
369
+ "name": "data",
370
+ "type": "bytes"
371
+ }
372
+ ],
373
+ "name": "safeTransferFrom",
374
+ "outputs": [],
375
+ "stateMutability": "nonpayable",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [
380
+ {
381
+ "internalType": "address",
382
+ "name": "operator",
383
+ "type": "address"
384
+ },
385
+ {
386
+ "internalType": "bool",
387
+ "name": "approved",
388
+ "type": "bool"
389
+ }
390
+ ],
391
+ "name": "setApprovalForAll",
392
+ "outputs": [],
393
+ "stateMutability": "nonpayable",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [
398
+ {
399
+ "internalType": "bytes4",
400
+ "name": "interfaceId",
401
+ "type": "bytes4"
402
+ }
403
+ ],
404
+ "name": "supportsInterface",
405
+ "outputs": [
406
+ {
407
+ "internalType": "bool",
408
+ "name": "",
409
+ "type": "bool"
410
+ }
411
+ ],
412
+ "stateMutability": "view",
413
+ "type": "function"
414
+ },
415
+ {
416
+ "inputs": [],
417
+ "name": "symbol",
418
+ "outputs": [
419
+ {
420
+ "internalType": "string",
421
+ "name": "",
422
+ "type": "string"
423
+ }
424
+ ],
425
+ "stateMutability": "view",
426
+ "type": "function"
427
+ },
428
+ {
429
+ "inputs": [
430
+ {
431
+ "internalType": "uint256",
432
+ "name": "tokenId",
433
+ "type": "uint256"
434
+ }
435
+ ],
436
+ "name": "tokenURI",
437
+ "outputs": [
438
+ {
439
+ "internalType": "string",
440
+ "name": "",
441
+ "type": "string"
442
+ }
443
+ ],
444
+ "stateMutability": "view",
445
+ "type": "function"
446
+ },
447
+ {
448
+ "inputs": [
449
+ {
450
+ "internalType": "address",
451
+ "name": "from",
452
+ "type": "address"
453
+ },
454
+ {
455
+ "internalType": "address",
456
+ "name": "to",
457
+ "type": "address"
458
+ },
459
+ {
460
+ "internalType": "uint256",
461
+ "name": "tokenId",
462
+ "type": "uint256"
463
+ }
464
+ ],
465
+ "name": "transferFrom",
466
+ "outputs": [],
467
+ "stateMutability": "nonpayable",
468
+ "type": "function"
469
+ }
470
+ ],
471
+ "bytecode": "0x",
472
+ "deployedBytecode": "0x",
473
+ "linkReferences": {},
474
+ "deployedLinkReferences": {},
475
+ "devdoc": {
476
+ "details": "ERC721 token with storage based token URI management.",
477
+ "errors": {
478
+ "ERC721IncorrectOwner(address,uint256,address)": [
479
+ {
480
+ "details": "Indicates an error related to the ownership over a particular token. Used in transfers.",
481
+ "params": {
482
+ "owner": "Address of the current owner of a token.",
483
+ "sender": "Address whose tokens are being transferred.",
484
+ "tokenId": "Identifier number of a token."
485
+ }
486
+ }
487
+ ],
488
+ "ERC721InsufficientApproval(address,uint256)": [
489
+ {
490
+ "details": "Indicates a failure with the `operator`’s approval. Used in transfers.",
491
+ "params": {
492
+ "operator": "Address that may be allowed to operate on tokens without being their owner.",
493
+ "tokenId": "Identifier number of a token."
494
+ }
495
+ }
496
+ ],
497
+ "ERC721InvalidApprover(address)": [
498
+ {
499
+ "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
500
+ "params": {
501
+ "approver": "Address initiating an approval operation."
502
+ }
503
+ }
504
+ ],
505
+ "ERC721InvalidOperator(address)": [
506
+ {
507
+ "details": "Indicates a failure with the `operator` to be approved. Used in approvals.",
508
+ "params": {
509
+ "operator": "Address that may be allowed to operate on tokens without being their owner."
510
+ }
511
+ }
512
+ ],
513
+ "ERC721InvalidOwner(address)": [
514
+ {
515
+ "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.",
516
+ "params": {
517
+ "owner": "Address of the current owner of a token."
518
+ }
519
+ }
520
+ ],
521
+ "ERC721InvalidReceiver(address)": [
522
+ {
523
+ "details": "Indicates a failure with the token `receiver`. Used in transfers.",
524
+ "params": {
525
+ "receiver": "Address to which tokens are being transferred."
526
+ }
527
+ }
528
+ ],
529
+ "ERC721InvalidSender(address)": [
530
+ {
531
+ "details": "Indicates a failure with the token `sender`. Used in transfers.",
532
+ "params": {
533
+ "sender": "Address whose tokens are being transferred."
534
+ }
535
+ }
536
+ ],
537
+ "ERC721NonexistentToken(uint256)": [
538
+ {
539
+ "details": "Indicates a `tokenId` whose `owner` is the zero address.",
540
+ "params": {
541
+ "tokenId": "Identifier number of a token."
542
+ }
543
+ }
544
+ ]
545
+ },
546
+ "events": {
547
+ "Approval(address,address,uint256)": {
548
+ "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token."
549
+ },
550
+ "ApprovalForAll(address,address,bool)": {
551
+ "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."
552
+ },
553
+ "BatchMetadataUpdate(uint256,uint256)": {
554
+ "details": "This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs."
555
+ },
556
+ "MetadataUpdate(uint256)": {
557
+ "details": "This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT."
558
+ },
559
+ "Transfer(address,address,uint256)": {
560
+ "details": "Emitted when `tokenId` token is transferred from `from` to `to`."
561
+ }
562
+ },
563
+ "kind": "dev",
564
+ "methods": {
565
+ "approve(address,uint256)": {
566
+ "details": "See {IERC721-approve}."
567
+ },
568
+ "balanceOf(address)": {
569
+ "details": "See {IERC721-balanceOf}."
570
+ },
571
+ "getApproved(uint256)": {
572
+ "details": "See {IERC721-getApproved}."
573
+ },
574
+ "isApprovedForAll(address,address)": {
575
+ "details": "See {IERC721-isApprovedForAll}."
576
+ },
577
+ "name()": {
578
+ "details": "See {IERC721Metadata-name}."
579
+ },
580
+ "ownerOf(uint256)": {
581
+ "details": "See {IERC721-ownerOf}."
582
+ },
583
+ "safeTransferFrom(address,address,uint256)": {
584
+ "details": "See {IERC721-safeTransferFrom}."
585
+ },
586
+ "safeTransferFrom(address,address,uint256,bytes)": {
587
+ "details": "See {IERC721-safeTransferFrom}."
588
+ },
589
+ "setApprovalForAll(address,bool)": {
590
+ "details": "See {IERC721-setApprovalForAll}."
591
+ },
592
+ "supportsInterface(bytes4)": {
593
+ "details": "See {IERC165-supportsInterface}"
594
+ },
595
+ "symbol()": {
596
+ "details": "See {IERC721Metadata-symbol}."
597
+ },
598
+ "tokenURI(uint256)": {
599
+ "details": "See {IERC721Metadata-tokenURI}."
600
+ },
601
+ "transferFrom(address,address,uint256)": {
602
+ "details": "See {IERC721-transferFrom}."
603
+ }
604
+ },
605
+ "version": 1
606
+ },
607
+ "userdoc": {
608
+ "kind": "user",
609
+ "methods": {},
610
+ "version": 1
611
+ },
612
+ "evm": {
613
+ "gasEstimates": null,
614
+ "methodIdentifiers": {
615
+ "approve(address,uint256)": "095ea7b3",
616
+ "balanceOf(address)": "70a08231",
617
+ "getApproved(uint256)": "081812fc",
618
+ "isApprovedForAll(address,address)": "e985e9c5",
619
+ "name()": "06fdde03",
620
+ "ownerOf(uint256)": "6352211e",
621
+ "safeTransferFrom(address,address,uint256)": "42842e0e",
622
+ "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
623
+ "setApprovalForAll(address,bool)": "a22cb465",
624
+ "supportsInterface(bytes4)": "01ffc9a7",
625
+ "symbol()": "95d89b41",
626
+ "tokenURI(uint256)": "c87b56dd",
627
+ "transferFrom(address,address,uint256)": "23b872dd"
628
+ }
629
+ }
630
+ }