// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../token/ERC721/extensions/ERC721URIStorageUpgradeable.sol"; import "../proxy/utils/Initializable.sol"; /** * @title ERC721Mock * This mock just provides a public safeMint, mint, and burn functions for testing purposes */ contract ERC721URIStorageMockUpgradeable is Initializable, ERC721URIStorageUpgradeable { string private _baseTokenURI; function __ERC721URIStorageMock_init(string memory name, string memory symbol) internal onlyInitializing { __ERC721_init_unchained(name, symbol); } function __ERC721URIStorageMock_init_unchained(string memory, string memory) internal onlyInitializing {} 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); } /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ uint256[49] private __gap; }