Base64NFT.sol 813 B

123456789101112131415161718192021222324252627
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {ERC721} from "../../../token/ERC721/ERC721.sol";
  4. import {Strings} from "../../../utils/Strings.sol";
  5. import {Base64} from "../../../utils/Base64.sol";
  6. contract Base64NFT is ERC721 {
  7. using Strings for uint256;
  8. constructor() ERC721("Base64NFT", "MTK") {}
  9. // ...
  10. function tokenURI(uint256 tokenId) public pure override returns (string memory) {
  11. // Equivalent to:
  12. // {
  13. // "name": "Base64NFT #1",
  14. // // Replace with extra ERC-721 Metadata properties
  15. // }
  16. // prettier-ignore
  17. string memory dataURI = string.concat("{\"name\": \"Base64NFT #", tokenId.toString(), "\"}");
  18. return string.concat("data:application/json;base64,", Base64.encode(bytes(dataURI)));
  19. }
  20. }