PolySmartChain
中文繁體
中文繁體
  • PSC開發文檔
  • 概述
    • PolySmartChain簡介
    • PSC令牌
    • PolySmartChain網絡
  • 區塊鏈基礎
    • 區塊鏈的類型
    • 共識機制
    • GAS
    • 區塊
    • 帳戶
    • WEB2與WEB3
    • DAPP
    • 交易
  • 經濟學
    • PSC Token經濟學
    • PSC Token 效用
  • 開發者
    • 虛擬機 (EVM)
    • 部署第一個合約
    • 發布 PRC-20 Token
    • 發布 PRC-721 Token
  • Node
    • RPC節點
    • 部署
    • 私有鏈
    • 開發者工具
    • 基礎設施
    • 智能合約庫
  • Explorer
    • Explorer
  • 錢包
    • 支持钱包
    • 使用Metamask
    • 使用TokenPocket
    • 使用Imtoken
  • Poly Bridge
    • PolyBridge 介紹
    • PolyBridge 非EVM操作教程
      • WDC to PSC(WDCSpace)
      • TRON to PSC(TronLink)
    • PolyBridge EVM操作教程
      • BNB Chain to PSC(Metamask)
      • BNB Chain to PSC(Imtoken )
      • BNB Chain to PSC(TokenPocket)
    • PolyBridge常見問題
  • DAPP
    • Swanswap
      • 如何在SwanSwap交易
      • 如何在SwanSwap獲得LP Token
    • NFT Auction
      • Claim PolyJetClub
      • 在MetaMask錢包中查看PolyJetClub
    • Social
      • 註冊Social
    • 礦池
      • 質押LP Token到礦池
      • 礦池常見問題解答
    • 遷移到V2礦池
      • 使用MetaMask遷移
    • PolyDao 提案說明
      • PolyDao 提案常見問題
  • 資源
    • 資源
    • 合約
Powered by GitBook
On this page
  • 將文件添加到IPFS
  • 創建我們自己的代幣
  1. 開發者

發布 PRC-721 Token

Previous發布 PRC-20 TokenNextRPC節點

Last updated 3 years ago

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

  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

向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

創建我們自己的代幣

為了方便和安全,我們將使用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,帮助你的艺术家朋友把他们的艺术作品发布到以太坊区块链上,或者自己也成为一名艺术家。

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

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

https://ipfs.io/ipfs/QmdrswwrbcfPeknN2BRLVmyWbWRsKSC3vSNhV9Gkvhk1mL
https://ipfs.io/ipfs/QmWKqwMJQHSfpfRFGUVGPFFtkBJ5WkFzhjQpruhSLtLWXB