// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4/contracts/token/ERC721/ERC721.sol"; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4/contracts/utils/Counters.sol"; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.4/contracts/access/Ownable.sol"; contract NFTbanet is ERC721, Ownable { using Counters for Counters.Counter; Counters.Counter private _tokenIds; constructor() ERC721("Demo BA.net Series NFT", "DNFT") {} event TokenCreated ( uint256 tokenId, string tokenHash, address receiver ); function mintNft(address receiver, string memory tokenURI, string memory tokenHash) external onlyOwner returns (uint256) { _tokenIds.increment(); uint256 newNftTokenId = _tokenIds.current(); _mint(receiver, newNftTokenId); _setTokenURI(newNftTokenId, tokenURI); emit TokenCreated(newNftTokenId, tokenHash, receiver); return newNftTokenId; } }