12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.2;
- import "hardhat/console.sol";
- import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
- import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
- import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
- import "@openzeppelin/contracts/security/Pausable.sol";
- import "@openzeppelin/contracts/access/Ownable.sol";
- import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";
- import "@openzeppelin/contracts/utils/Counters.sol";
- contract NFTToken is
- ERC721,
- ERC721Enumerable,
- ERC721URIStorage,
- Pausable,
- Ownable,
- ERC721Burnable
- {
- using Counters for Counters.Counter;
- uint256 public constant MAX_TOKENS = 10000;
- Counters.Counter private _tokenIdCounter;
- constructor() ERC721("TOKEN_NAME_PROTO", "PROTO") {
- console.log("Constructor - This is AWESOME");
- }
- function safeMint(address to, string memory _tokenURI) public onlyOwner {
- _safeMint(to, _tokenIdCounter.current());
- _setTokenURI(_tokenIdCounter.current(), _tokenURI);
- _tokenIdCounter.increment();
- }
- function updateTokenURI(uint256 tokenId, string memory _tokenURI)
- public
- onlyOwner
- {
- _setTokenURI(tokenId, _tokenURI);
- }
- function pause() public onlyOwner {
- _pause();
- }
- function unpause() public onlyOwner {
- _unpause();
- }
- function _beforeTokenTransfer(
- address from,
- address to,
- uint256 tokenId
- ) internal override(ERC721, ERC721Enumerable) whenNotPaused {
- super._beforeTokenTransfer(from, to, tokenId);
- }
- function _burn(uint256 tokenId)
- internal
- override(ERC721, ERC721URIStorage)
- {
- super._burn(tokenId);
- }
- function tokenURI(uint256 tokenId)
- public
- view
- override(ERC721, ERC721URIStorage)
- returns (string memory)
- {
- return super.tokenURI(tokenId);
- }
- function supportsInterface(bytes4 interfaceId)
- public
- view
- override(ERC721, ERC721Enumerable)
- returns (bool)
- {
- return super.supportsInterface(interfaceId);
- }
- }
|