Solidity
幫助 tokenURI (ERC-721 NFT)
我正在學習如何在 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/contracts
或npm 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
.