35 lines
1.0 KiB
Solidity
35 lines
1.0 KiB
Solidity
|
// SPDX-License-Identifier: CC0-1.0
|
||
|
pragma solidity ^0.8.0;
|
||
|
|
||
|
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
||
|
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
||
|
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";
|
||
|
import "@openzeppelin/contracts/access/Ownable.sol";
|
||
|
|
||
|
contract NFT is ERC721, ERC721Enumerable, ERC721Burnable, Ownable {
|
||
|
constructor() ERC721("MyToken", "MTK") {}
|
||
|
|
||
|
function safeMint(address to, uint256 tokenId) public onlyOwner {
|
||
|
_safeMint(to, tokenId);
|
||
|
}
|
||
|
|
||
|
function _baseURI() internal pure override returns (string memory) {
|
||
|
return "Test";
|
||
|
}
|
||
|
|
||
|
function _beforeTokenTransfer(address from, address to, uint256 tokenId)
|
||
|
internal
|
||
|
override(ERC721, ERC721Enumerable)
|
||
|
{
|
||
|
super._beforeTokenTransfer(from, to, tokenId);
|
||
|
}
|
||
|
|
||
|
function supportsInterface(bytes4 interfaceId)
|
||
|
public
|
||
|
view
|
||
|
override(ERC721, ERC721Enumerable)
|
||
|
returns (bool)
|
||
|
{
|
||
|
return super.supportsInterface(interfaceId);
|
||
|
}
|
||
|
}
|