Cointime

Download App
iOS & Android

3 つのリンク サービスを使用して動的な NFT を作成する方法を説明します

Validated Project

著者チェーンリンク2023 年7 月12

概要

難易度:初級・中級

完了までの推定時間: 60 分

このチュートリアルでは、Remix を使用して Polygon Mumbai テストネットにスマート コントラクトをデプロイする方法を学習します。このスマート コントラクトは、米ドル建て ETH 価格に基づいて動的に更新される NFT を作成します。

以下に、その方法を段階的に説明します。

1. MetaMaskウォレットを作成する

2. Polygon Mumbai テストネットで資金を獲得する

3. Chainlink VRF サブスクリプションを作成する

4. Remix を使用して動的 NFT (dNFT) スマート コントラクトを展開する

5. dNFT スマート コントラクトを VRF コンシューマーとして追加します

6. Chainlink Automation で NFT を自動化する

7. OpenSea で NFT を表示および操作する

ステップ 1: MetaMaskウォレットを作成する

注: すでに MetaMask ウォレット (またはその他のウォレット) をお持ちの場合は、この手順をスキップしてください。

MetaMask ウォレットを作成するには、 https://metamask.io/にアクセスし、指示に従ってウォレットを作成します。

ステップ 2: Polygon Mumbai テストネットの資金を調達する

A) https://faucets.chain.link/mumbaiにアクセスします。

B) 右上隅の「Connect Wallet」をクリックします。

C) Polygon Mumbai と初めて対話する場合は、MetaMask が「このサイトにネットワークの追加を許可しますか?」というプロンプトを表示したら、「承認」をクリックしてください。

D) 「ネットワークの切り替え」をクリックします。

E) 「私は人間です」チェックボックスをオンにして、キャプチャを完了します。

F) 「リクエストを送信」をクリックします。

G) トランザクションが完了するまで待ちます。

おめでとう!テストネット Polygon Mumbai MATIC とテストネット LINK が正常に申請され、受信されました。

おめでとう!テストネット Polygon Mumbai MATIC とテストネット LINK が正常に申請され、受信されました。

注: Chainlink フォーセットのテストネット MATIC が使い果たされた場合は、 Polygon Mumbaiフォーセットを使用してテストネット MATIC を受信して​​ください。テストネット LINK を受信するには、Chainlink フォーセットを使用する必要があります。

ステップ3 : VRFサブスクリプションを作成する

dNFT スマート コントラクトを展開する前に、まず VRF サブスクリプションを作成します。これは、コントラクトが乱数を生成するときに使用するお金のバケツと考えてください。スマート コントラクトをデプロイするにはサブスクリプション ID が必要です。

A) https://vrf.chain.link/mumbaiにアクセスします。

B) 右上隅の「Connect Wallet」をクリックします。

C) 「サブスクリプションの作成」をクリックします。

D) もう一度「サブスクリプションの作成」をクリックします。

E) MetaMask プロンプトが表示されます。 「署名」をクリックします。

F) MetaMask で「確認」をクリックし、トランザクションが確認されるまで待ちます。

G) トランザクションが確認され、サブスクリプションが作成されたら、[資金を追加] をクリックします。

H) [資金の追加 (リンク)] 入力ボックスに 2 つのリンクを追加し、[資金の追加] をクリックします。

I) MetaMask でトランザクションを確認します。

おめでとう! VRF サブスクリプションが正常に作成され、テストネット リンクで資金が投入されました。次のステップで VRF サブスクリプションについて説明します。

ステップ4 : Remix動的NFTスマート コントラクトをデプロイする

Remix は、イーサリアム ブロックチェーン上のスマート コントラクトの開発とテストに特化したオンライン統合開発環境 (IDE) です。ユーザーフレンドリーなインターフェイスと、Ethereum スマート コントラクトの作成、コンパイル、デプロイ、デバッグのための強力なツール セットを提供します。

このステップでは、新しい Remix ワークスペースを作成し、スマート コントラクトをデプロイする方法を学習します。心配しないでください。スマート コントラクトはすでに作成されているため、コピーして貼り付けるだけで済みます。

このステップでは、新しい Remix ワークスペースを作成し、スマート コントラクトをデプロイする方法を学習します。心配しないでください。スマート コントラクトはすでに作成されているため、コピーして貼り付けるだけで済みます。

A) https://remix.ethereum.org/にアクセスします。

B) 画面の左上隅にある「+」アイコンをクリックして、新しいワークスペースを作成します。

C) 新しいワークスペースの名前を入力し、「OK」をクリックします。

D) 左側のサイドバーの「契約」を右クリックし、「新規ファイル」をクリックします。

E) ファイルに「demo.sol」または他の任意の名前を付けて、Enter キーを押します。

F) このコードをコピーします。

// SPDX ライセンス識別子: MIT

// これはデモのみを目的としており、運用環境では使用しないでください。

プラグマ ソリッドティ ^0.8.10;

// 他のコントラクトをインポートする

インポート "@openzeppelin/contracts/token/ERC721/ERC721.sol";

// 他のコントラクトをインポートする

インポート "@openzeppelin/contracts/token/ERC721/ERC721.sol";

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URISTorage.sol";

インポート "@openzeppelin/contracts/utils/Strings.sol";

インポート "@openzeppelin/contracts/utils/Base64.sol";

import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

import "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol";

import "@chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol";

// ERC721、ERC721URIStorage、VRFConsumerBaseV2 を継承する SuperDynamicNFT コントラクトを定義します

SuperDynamicNFT のコントラクトは ERC721、ERC721URIStorage、VRFConsumerBaseV2 {

// ETH価格と対応する絵文字を追跡するための状態変数

int256 前の EthPrice = 0;

文字列 ethIndicatorUp = unicode"

G) Remix に戻り、新しく作成した demo.sol ファイルにコードを貼り付けます。

注: 大量のコードを貼り付けているというポップアップ警告が表示される場合があります。[OK] をクリックします。

H) 左側のサイドバーにある「Solidity Compiler」アイコンをクリックします。

I) 「demo.sol をコンパイル」をクリックします。

I) 「demo.sol をコンパイル」をクリックします。

J) 左側のサイドバーにある「トランザクションのデプロイと実行」アイコンをクリックします。

K) [環境] ドロップダウン メニューをクリックし、[Remix VM (Shanghai)] から [Injected Provider - MetaMask] に変更し、MetaMask からのプロンプトに従ってウォレットに接続します。

L) スマート コントラクトを Polygon Mumbai ブロックチェーンにデプロイする前に、前の手順で作成した VRF サブスクリプションのサブスクリプション ID が必要です。 https://vrf.chain.link/mumbaiに戻り、作成したばかりの VRF サブスクリプションの ID をメモします。 ID は例のものとは異なります。まず、契約にサブスクリプションを認識させる必要があります。後のステップで、サブスクリプションに契約を認識させます。

M) Remix で、オレンジ色の [デプロイ] ボタンの横にある入力ボックスにサブスクリプション ID を入力します。

N) 「デプロイ」をクリックして、MetaMask でトランザクションを確認します。

O) 画面の下のコンソールに緑色のチェックマークが表示されたら、成功です。コントラクトを Polygon Mumbai ブロックチェーンに正常にデプロイしました。

ステップ5 : VRFサブスクリプションコンシューマを追加する

おめでとう!スマート コントラクトを Polygon Mumbai ブロックチェーンに正常にデプロイしました。スマート コントラクトが正常にデプロイされました。次に、ステップ 3 で作成した VRF サブスクリプションにスマート コントラクトをコンシューマとして追加します。

A) Remix で、契約アドレスをコピーします。

B) https://vrf.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

C) 手順 3 で作成したサブスクリプション ID をクリックします。サブスクリプションは「私のサブスクリプション」で見つけることができます。

D) 「コンシューマーの追加」をクリックします。

E) 「消費者アドレス」入力ボックスに契約アドレスを貼り付けます。これにより、展開するコントラクトについてサブスクリプションに通知されます。

F) 「Add Consumer」をクリックし、MetaMask からのプロンプトに従います。

G) トランザクションが確認されたら、「閉じる」をクリックしてページを更新します。以下の画像に示すコンシューマがサブスクリプションに追加されていることが確認できれば、このステップは正常に完了しています。

ステップ 6: Chainlink Automationを使用してNFTを自動化する

このステップでは、Chainlink Automation を使用して、NFT の背景色と表現を動的に更新する時間ベースのメンテナンスを作成します。

A) https://automation.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

A) https://automation.chain.link/mumbaiに移動し、右上隅にある「ウォレットを接続」をクリックしてウォレットを接続します。ウォレットがすでに接続されている場合は、この手順をスキップできます。

B) 「新規メンテナンス登録」をクリックします。

C) 「時間ベース」を選択します。

D) 契約アドレスを貼り付けて、「次へ」をクリックします (契約アドレスを見つけるのにサポートが必要な場合は、ステップ 5A を参照してください)。

E) 「ABI を取得できません。別のタブで、Remix に戻り、左側のサイドバーにある [Solidity コンパイラー] タブを選択します。」というプロンプトが表示されます。

F) [契約] ドロップダウン メニューで契約を選択し、[ABI をコピー] ボタンをクリックします。

F) [契約] ドロップダウン メニューで契約を選択し、[ABI をコピー] ボタンをクリックします。

G) メンテナンス登録に戻り、入力ボックスに ABI を貼り付け、[次へ] をクリックします。

H) 「目的関数」で「requestRandomWords」を選択し、「次へ」をクリックします。

I) 「スケジュールの指定」で、次のCRON式を入力して、2 分ごとに NFT の新しい背景色を生成します: */2 * * * * 。

J) 「次へ」をクリックします。

K) メンテナンスに名前を付け (例: Dynamic NFT Demo)、開始残高として 2 LINK を入力します。

L) [Register Upkeep] をクリックし、MetaMask に CRON ジョブ コントラクトを展開するトランザクションを承認します。

L) [Register Upkeep] をクリックし、MetaMask に CRON ジョブ コントラクトを展開するトランザクションを承認します。

M) トランザクションが承認されると、MetaMask は 2 番目のトランザクション「時間ベースのメンテナンス登録のリクエスト」を確認するよう求めます。

N) トランザクションが確認されるまで待ち、[メンテナンスの表示] をクリックします。

O) 新しく作成されたメンテナンス ステータスに「有効化」が表示されていれば、このステップは正常に完了しています。おめでとう!

ステップ7 : OpenSeaNFTを表示する

A) https://testnets.opensea.io/に移動し、右上隅のドロップダウン メニューから「プロファイル」を選択します。

B) 以下に示すようにウォレットを接続します。 OpenSea とのトランザクションに署名する必要がある場合があります。

C) プロフィールで、「ETH Watching SVG」というラベルの付いた NFT をクリックします。

D) 右上隅にある 3 つの点をクリックし、[メタデータの更新] を選択します。

E) 30 秒待ってからページを更新すると、新しく作成された dNFT が表示されます。

おめでとう!チュートリアルは完了しました。サブスクリプション資金がなくなるまで 2 分ごとに、NFT は ETH の価格を確認し、新しい背景色をリクエストします。次回メタデータを更新すると、何か違うものが表示されるはずです。

結論は

ここまで進んだなら、おめでとうございます!これで、Chainlink Price Feed を使用してイーサリアムの価格を追跡し、Chainlink VRF を使用してランダムな背景色を選択し、Chainlink Automation を使用して画像を 2 分ごとに更新します。

コメント

全てのコメント

Recommended for you