35 lines
1.1 KiB
Solidity
35 lines
1.1 KiB
Solidity
// SPDX-License-Identifier: GPL-3.0
|
|
|
|
pragma solidity ^0.8.7;
|
|
|
|
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
|
|
import "@openzeppelin/contracts/utils/Counters.sol";
|
|
import "base64-sol/base64.sol";
|
|
|
|
contract SitesNFTs is ERC721URIStorage {
|
|
|
|
using Counters for Counters.Counter;
|
|
Counters.Counter private _tokenIds;
|
|
|
|
constructor() ERC721("Fleek Sites NFTs", "SNFT") {}
|
|
|
|
// Token uri is the Base64 encoded json metadata
|
|
function mintNFT(string memory _tokenURI) public returns (uint256) {
|
|
uint256 newItemId = _tokenIds.current();
|
|
_safeMint(msg.sender, newItemId);
|
|
_setTokenURI(newItemId, _tokenURI);
|
|
|
|
_tokenIds.increment();
|
|
return newItemId;
|
|
}
|
|
|
|
function _htmlToImageURI(string memory html) internal pure returns (string memory) {
|
|
// text/html;charset=UTF-8,
|
|
string memory baseURL = "data:text/html;charset=UTF-8,";
|
|
return string(abi.encodePacked(baseURL, html));
|
|
}
|
|
|
|
function _baseURI() internal pure override returns (string memory) {
|
|
return "data:application/json;base64,";
|
|
}
|
|
} |