發布 PRC-721 Token

在開始之前,您將需要準備以下內容:

  1. Metamask錢包

  2. 擁有至少1個PSC

將文件添加到IPFS

我們需要託管好NFT所對應的藝術作品,並創建一個元數據文件;為此,我們將使用IPFS--一個點對點文件存儲和共享的分佈式系統。按照IPFS文檔中的安裝指南下載並安裝基於你的操作系統的IPFS CLI。

以下是託管圖像和元數據文件的步驟:

創建IPFS repo。在終端窗口中輸入以下內容來初始化IPFS repo

 $ ipfs init

啟動IPFS守護進程。打開一個單獨的終端窗口,輸入以下內容:

$ ipfs daemon

添加圖像到IPFS , 進入第一個終端窗口,將圖像添加到IPFS中(這裡是art.png)。

$ ipfs add art.png

複製從Qm開始的哈希值,並添加 https://ipfs.io/ipfs/前綴,它必須看起來像這樣https://ipfs.io/ipfs/QmdrswwrbcfPeknN2BRLVmyWbWRsKSC3vSNhV9Gkvhk1mL

向IPFS添加JSON文件。創建一個JSON文件nft.json,並將其保存在與圖像相同的目錄中。 JSON文件格式:

{
    "name": "NFT Art",
    "description": "This image shows the true nature of NFT.",
    "image": "https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC",
}

現在添加JSON文件:

$ ipfs add nft.json

複製從Qm開始的哈希值,並添加 https://ipfs.io/ipfs/前綴,它必須看起來像這樣https://ipfs.io/ipfs/QmWKqwMJQHSfpfRFGUVGPFFtkBJ5WkFzhjQpruhSLtLWXB, 保存這個網址。我們需要這個來鑄造NFT。 創建我們自己的代幣

創建我們自己的代幣

為了方便和安全,我們將使用0xcert/ethereum-erc721合約來創建我們的NFT合約。有了0xcert/ethereum-erc721,我們不需要寫整個ERC-721接口。相反,我們可以導入庫合約並使用它的函數。前往以太坊 Remix IDE,製作一個新的Solidity文件,例如 nft.sol, 將以下代碼粘貼到Solidity 文件中。

// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
 
import "https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol";
import "https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol";
 
contract newNFT is NFTokenMetadata, Ownable {
 
  constructor() {
    nftName = "Synth NFT";
    nftSymbol = "SYN";
  }
 
  function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
    super._mint(_to, _tokenId);
    super._setTokenUri(_tokenId, _uri);
  }
 
}

以下是代碼的解釋:

第1行:指定SPDX許可證類型,這是在Solidity ^0.6.8之後增加的。每當智能合約的源代碼向公眾開放時,這些許可證可以幫助解決/避免版權問題。如果你不想指定任何許可證類型,你可以使用一個特殊的值UNLICENSED,或者直接跳過整個註釋(它不會導致錯誤,只是一個警告)。

第2行: 聲明 Solidity 版本。

第4-5行:導入0xcert/ethereum-erc721合約。

第7行: 合約命名為newNFT,它繼承了NFTokenMetadata和Ownable合約。

第9-12行: 初始化構造函數並設置名稱及代幣符號。

第14行:聲明函數mint有三個參數,類型為地址的變量_to,存儲NFT代幣接收者的地址,類型為uint256的變量_tokenId,將保存代幣id,類型為字符串的變量_uri,將存儲JSON文件的URI。將mint聲明為外部函數,可以從其他智能合約和當前合約之外訪問。

第15行:使用接收方的地址和代幣ID來鑄造代幣。

第16行:使用代幣id和JSON文件的URI設置代幣URI。

編譯智能合約,並使用Injected Web3進行部署(編譯合約前一定要在Metamask上選擇Ropsten testnet)。批准來metamask的交易。

如果如果你在部署前收到一條錯誤消息:此合約可能是抽象的,請確保在合約選項卡下選擇適當的合約。在Metamask中確認交易。

現在進入Remix中的 Deployed Contracts(部署的合約) 部分,展開部署的合約。你會看到一堆函數/方法。展開mint函數並添加以下參數:

  1. 在_to中添加你的Ropsten地址。

  2. 在 _tokenid 中輸入任何數字值 (建議為1,因為它是第一個)。

  3. 在_uri字段中,添加上一節獲得的JSON文件的URI。

點擊交易,並從metamask確認交易。 (需要你已經有了Ropsten鏈上的ETH)

你可以通過輸入我們之前提到的token id來查看其他細節,如名稱、符號、所有者或tokenuri。

恭喜你创建了自己的NFT,帮助你的艺术家朋友把他们的艺术作品发布到以太坊区块链上,或者自己也成为一名艺术家。

Last updated