製作以太坊NFT非同質化代幣

NFT(non-fungible tokens)非同質化代幣是基於以太坊ERC 721標準來製作的。在本文中,我們將創建用於發行和管理 NFT 的智能合約。 例如,我們正在為數位創作和藝術品構建版權解決方案。 每個一次的創作都可以使用唯一的 URL 進行識別和定位。 我們將在這個LAB中建立的智能合約允許我們向以太坊網路上的任何錢包地址發行 NFT。 用戶擁有 NFT 表示他們有權存取和使用位於所提供 URL 的內容。

建立NFT智能合約

我們將使用Remix IDE來建立我們的NFT智能合約(檔案名稱為JasonMFT.sol)。由於以太坊已有NFT的模組可以使用,這讓我們建立自己的NFT智能合約變得非常容易。代碼如下:

//*** SNIPPET 11.1
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;

// This contract will inherit from the Ownable and NFT Token Metadata contracts from 0xcert
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 JasonNFT is NFTokenMetadata, Ownable {

// Contract constructor.
// Runs at deployment.
// Sets name and symbol of NFT.
constructor() {
nftName = "JasonNFT";
nftSymbol = "JNF";
} // constructor

// This function will mint a new NFT and deposit it in the wallet at the _to address.
// Each token must have a Token ID.
// The URL property indicates the digital asset the token holder has access to.
function mint(address _to, uint256 _tokenId, string calldata _url) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _url);
} // mint

} // JasonNFT

編譯與佈署合約

我們使用Remix IDE並結合Metamask佈署到Goerli測試網路中。由於這個至智能合約使用的其他智能合約功能,所以請確認我們將會佈署的智能合約名稱。

到EtherScan查看我們的合約佈署狀況。

發行我們的NFT代幣

部署合約後,使用 Remix Interface 呼叫合約中的“mint”函數。 _to 的欄位填上我們的錢包地址。 _tokenId欄位填上1,並將 _url欄位填入數位資產。 最後點擊“transact”按鈕向我們的錢包發行新的 NFT。

檢查我們的MetaMask錢包,我們會看到有一筆新地址。

確認交易之後,連結到EtherScan確認我們的Mint交易。

點選該筆交易的State頁籤,我們會看到我們發行的第一枚NFT代幣。展開該筆NFT交易,在每一筆的Storage Address的After將選項調整成Text。我們就會看到整個我們數位資產的URL完整路徑。

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet