// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../token/ERC721/extensions/ERC721URIStorage.sol"; /** * @title ERC721Mock * This mock just provides a public safeMint, mint, and burn functions for testing purposes */ contract ERC721URIStorageMock is ERC721URIStorage { string private _baseTokenURI; constructor(string memory name, string memory symbol) ERC721(name, symbol) {} function _baseURI() internal view virtual override returns (string memory) { return _baseTokenURI; } function setBaseURI(string calldata newBaseTokenURI) public { _baseTokenURI = newBaseTokenURI; } function baseURI() public view returns (string memory) { return _baseURI(); } function setTokenURI(uint256 tokenId, string memory _tokenURI) public { _setTokenURI(tokenId, _tokenURI); } function exists(uint256 tokenId) public view returns (bool) { return _exists(tokenId); } function mint(address to, uint256 tokenId) public { _mint(to, tokenId); } function safeMint(address to, uint256 tokenId) public { _safeMint(to, tokenId); } function safeMint( address to, uint256 tokenId, bytes memory _data ) public { _safeMint(to, tokenId, _data); } function burn(uint256 tokenId) public { _burn(tokenId); } }