PRC-721トークンをリリースします

開始する前に、以下を準備する必要があります。

  1. メタマスク財布

  2. 少なくとも1つのPSCがあります

IPFにファイルを追加します

NFTに対応するアートワークをホストし、メタデータファイルを作成する必要があります。これを行うには、ピアツーピアファイルのストレージと共有に分散システムであるIPFSを使用します。IPFSドキュメントのインストール手順に従って、オペレーティングシステムに基づいてIPFS CLIをダウンロードしてインストールします。

以下は、画像とメタデータファイルをホストする手順です:

IPFSレポを作成します。ターミナルウィンドウで次のように入力してIPFSリポジトリを初期化します。

 $ ipfs init

IPFSデーモンを起動します。別の端末ウィンドウを開き、次のように入力します。

$ ipfs daemon

IPFSに画像を追加するには、最初の端末ウィンドウに移動してIPFSに画像を追加します(ここではart.pngです)。

$ ipfs add art.png

QMから開始するハッシュをコピーして、https://ipfs.io/ipfs/prefixを追加してください。https://ipfs.io/ipfs/qmdrswwrbcfpeknn2brlvmywbwrsksksc3vsnhv9gkvhk1ml JSONファイルをIPFSに追加します。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/prefix,itを追加する必要があります:https://ipfs.io/ipfs/qmwkqwmjqhsfpfrfguvgpfftkbj5wkfzhjjqpruhslwxbを追加します。これがNFTをミントするために必要です。

独自のトークンを作成します

便利さとセキュリティのために、0xcert/Ethereum-ERC721契約を使用してNFT契約を作成します。0xcert/Ethereum-ERC721を使用して、ERC-721インターフェイス全体を記述する必要はありません。代わりに、ライブラリ契約をインポートし、そのfunctions.goをEther Remix IDEに使用し、NFT.SOLなどの新しいSolidityファイルを作成し、次のコードを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行目:STDXライセンスタイプを指定します。これは、Solidity ^0.6.8の後に追加されました。これらのライセンスは、スマート契約のソースコードが一般に公開されるたびに、著作権の問題を解決/回避するのに役立ちます。ライセンスの種類を指定したくない場合は、特別な値の無許可を使用するか、コメント全体をスキップするだけです(エラーは発生しません。警告だけです)。

2行目:堅実なバージョンを宣言します。

行4-5:0xcert / ethereum-erc721契約をインポートします。

7行目:契約の名前はNewnftと名付けられ、NFTOKENMETADATAと所有可能な契約を継承します。

行9-12:コンストラクタを初期化して、名前とトークンシンボルを設定します。

行14:アドレスの変数_toを3つのパラメータで宣言します。これは、NFTトークン受信者のアドレスを格納します。トークンIDを保持するUINT256の変数_tokenID。JSONファイルのURIを格納する文字列の変数_URI。他のスマート契約の外部からアクセスできる外部関数としてMintを宣言し、現在の契約を宣言します。

15行目:受信者のアドレスとトークンIDを使用してトークンをミントします。

行16:トークンIDとJSONファイルのURIを使用してトークンURIを設定します。

スマートコントラクトをコンパイルし、注入されたWeb3を使用して展開します(契約をコンパイルする前に、メタマスクでロプステンテストネットを選択してください)。メタマスクに来るトランザクションを承認します。

展開前にエラーメッセージが表示された場合:この契約は抽象化されている可能性があるため、適切な契約が[契約]タブで選択されていることを確認してください。Metamaskでトランザクションを確認してください。

次に、リミックスの展開契約セクションに移動し、展開された契約を拡張します。たくさんの機能/メソッドが表示されます。ミント関数を展開し、次のパラメーターを追加します。

  1. Ropstenアドレスを_TOに追加します。

  2. _tokenidに数値を入力します(1つ目が推奨されます)。

  3. _uriフィールドで、前のセクションで取得したJSONファイルのURIを追加します。

トランザクションをクリックして、トランザクションをメタマスクから確認します。(あなたがすでにropstenチェーンでethを持っていることを要求されます)

以前に言及したトークンIDを入力することにより、名前、シンボル、所有者、トークネリなどの他の詳細を確認できます。

あなた自身のNFTを作成し、アーティストの友人が自分のアートワークをエーテルブロックチェーンに投稿するのを手伝う、または自分でアーティストになることをお祝いします。

Last updated