Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ArslanKathia/d336f1b39dc9b7e41fdc66a01783c625 to your computer and use it in GitHub Desktop.
Save ArslanKathia/d336f1b39dc9b7e41fdc66a01783c625 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.17+commit.8df45f5f.js&optimize=false&runs=200&gist=
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
/// @custom:security contact [email protected]
contract HelloNFT is ERC721,ERC721URIStorage,Ownable,Pausable {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() ERC721("HelloNFT","HHFT"){
}
function awardNFT(address receiver,string memory uri)
public onlyOwner
returns(uint256)
{
uint256 newItemId = _tokenIds.current();
_safeMint(receiver,newItemId);
_setTokenURI(newItemId,uri);
_tokenIds.increment();
return newItemId;
}
function pause() public onlyOwner{
_pause();
}
function unpause() public onlyOwner{
_unpause();
}
function _beforeTokenTransfer(address from,address to,uint256 tokenId,uint256 batchSize)
internal
whenNotPaused
override
{
super._beforeTokenTransfer(from,to,tokenId,batchSize);
}
//required by solidity when addd ERC721 in derived seciton
function _burn(uint256 tokenId) internal onlyOwner
override(ERC721,ERC721URIStorage)
{
super._burn(tokenId);
}
function tokenURI(uint256 tokenId)
public view
override(ERC721,ERC721URIStorage)
returns(string memory)
{
return super.tokenURI(tokenId);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment