// SPDX-License-Identifier: GPL-3.0-or-later // This file is part of the http://github.com/aaronbloomfield/ccc repository, // and is released under the GPL 3.0 license. pragma solidity ^0.8.24; import "./IERC721Metadata.sol"; import "./IERC165.sol"; interface INFTManager is IERC721Metadata { // This creates a NFT for `_to` with the pased file name `_uri`. Note // that `_uri` is just the filename itself -- the prefix is set via // overriding _baseURI() function mintWithURI(address _to, string memory _uri) external returns (uint); // This also creates a NFT, but assumes `msg.sender` is who the NFT is // for; it can just call the previous function. function mintWithURI(string memory _uri) external returns (uint); // This is just a count of how many NFTs have been minted with this // manager; it can be a public variable. function count() external view returns (uint); // Additional functions to implement / override: // supportsInterface(): for the interfaces specified in the HW writeup // _baseURI(): the part of the full path name before the filename itself // tokenURI(): get the file name (with _baseURI() before it) for the passed NFT ID }