Solidity

幫助 tokenURI (ERC-721 NFT)

  • January 23, 2022

我正在學習如何在 Solidity 中製作 NFT。我有兩個問題:

**1.)**什麼是令牌 URI?這是什麼意思?

**2.)**我正在遵循 ERC-721 指南,但我認為 _setTokenURI 函式已從 OpenZeppelin ERC-721 標準中刪除,因為此程式碼無法編譯,那麼如何設置新的 URI?

pragma solidity ^ 0.8.10;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract EGM_NFT is ERC721 {
   using Counters for Counters.Counter;
   Counters.Counter private _tokenIDs;
   constructor() ERC721("Gato NFT", "GFT") {}

   function createGatoNFT (string memory tokenURI) public returns (uint256) {
       _tokenIDs.increment();
       uint256 newTokenID = _tokenIDs.current();
       _safeMint(msg.sender, newTokenID);
       _setTokenURI(newTokenID, tokenURI);
       return newTokenID;
       
   }

}

我認為是因為您必須先安裝依賴項,然後像使用 Counter.sol 一樣導入。

import "openzeppelin-solidity/contracts/token/ERC721/ERC721.sol";

確保您執行yarn add @openzeppelin/contractsnpm install @openzeppelin/contracts

要回答您的 URI 問題 - 如果您想使用 IPFS,那麼您應該安裝 IPFS CLI 來創建一個本地節點並上傳您的文件以獲得生成的雜湊值,您可以使用它來創建您的 URI。https://docs.ipfs.io/install/command-line/

如果你想要一個關於如何使用 ERC721、IPFS 和一些基本工具鏈來鑄造 NFT 的範例,請在 youtube ( https://www.youtube.com/watch?v=M576WGiDBdQ&t ) 上免費試用 Patrick Collins 訓練營課程中的這個範例。NFT 項目時間戳為09:50.

引用自:https://ethereum.stackexchange.com/questions/115266