// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../token/ERC721/ERC721Upgradeable.sol"; import "../proxy/utils/Initializable.sol"; /** * @title ERC721Mock * This mock just provides a public safeMint, mint, and burn functions for testing purposes */ contract ERC721MockUpgradeable is Initializable, ERC721Upgradeable { function __ERC721Mock_init(string memory name, string memory symbol) internal onlyInitializing { __ERC721_init_unchained(name, symbol); } function __ERC721Mock_init_unchained(string memory, string memory) internal onlyInitializing {} function baseURI() public view returns (string memory) { return _baseURI(); } 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); } /** * 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[50] private __gap; }