@@ -0,0 +1,34 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
||||
|
||||
contract BasicNft is ERC721 {
|
||||
error BasicNft__TokenUriNotFound();
|
||||
uint256 private s_tokenCounter;
|
||||
mapping(uint256 => string) private s_tokenIdToUri;
|
||||
|
||||
constructor() ERC721("Hoelee", "HOE") {
|
||||
s_tokenCounter = 0;
|
||||
}
|
||||
|
||||
function mintNft(string memory tokenUri) public {
|
||||
s_tokenIdToUri[s_tokenCounter] = tokenUri;
|
||||
_safeMint(msg.sender, s_tokenCounter);
|
||||
s_tokenCounter = s_tokenCounter + 1;
|
||||
}
|
||||
|
||||
function tokenURI(
|
||||
uint256 tokenId
|
||||
) public view override returns (string memory) {
|
||||
if (ownerOf(tokenId) == address(0)) {
|
||||
revert BasicNft__TokenUriNotFound();
|
||||
}
|
||||
return s_tokenIdToUri[tokenId];
|
||||
}
|
||||
|
||||
function getTokenCounter() public view returns (uint256) {
|
||||
return s_tokenCounter;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
// SPDX-License-Identifier: UNLICENSED
|
||||
pragma solidity ^0.8.13;
|
||||
|
||||
contract Counter {
|
||||
uint256 public number;
|
||||
|
||||
function setNumber(uint256 newNumber) public {
|
||||
number = newNumber;
|
||||
}
|
||||
|
||||
function increment() public {
|
||||
number++;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user