🎉

Polygon zkEVM Testnetにスマートコントラクトを導入する。

2023/02/17に公開

※当記事は、こちらの記事を翻訳したものです。
https://blog.thirdweb.com/guides/how-to-deploy-a-smart-contract-to-polyon-zkevm-testnet/

このガイドでは、Ethereumメインネットの上に構築されたゼロ知識ロールアップであるPolygonのzkEVMテストネットに任意のスマートコントラクトをデプロイする方法を説明します。

このガイドでは、Solidityを使用してシンプルなNFTコレクションのスマートコントラクトを作成し、それをPolygon zkEVMネットワークにデプロイし、スマートコントラクト上でNFTを作成する方法を学びます。

さあ、はじめましょう

Polygon zkEVMとは?

Polygon zkEVMは、Ethereumメインネットのスケーラビリティの問題(1秒あたりのトランザクション数やガス料金など)に対処するために構築されたレイヤー2ネットワークです。

「EVM」とは、イーサリアム仮想マシンのことで、イーサリアムネットワークの状態、トランザクション、スマートコントラクトを保存する役割を担っています。

「ZK」は、ゼロ知識ロールアップであることを意味し、トランザクションの束を作成または一緒に「ロールアップ」し、オフチェーン(すなわち、EVM上ではない)で実行することを意味します。

ゼロ知識証明は、ブロックチェーン上のトランザクションを確定するために送信される有効性証明で、これらのトランザクションが発生した結果を暗号的に証明することができます。

ウォレットにPolygon zkEVMを追加する

まず、Polygon zkEVM ネットワークをウォレットに追加する必要があります。

もしまだウォレットが必要な場合は、以下のガイドを参照してウォレットを作成してください。

https://blog.thirdweb.com/web3-wallet/

ウォレットの設定が完了したら、Polygon zkEVM Bridgeに向かい、Add to MetaMaskボタンをクリックして、ウォレットにネットワークを追加してください。


zkEVMネットワークをウォレットに追加する

次に、zkEVMテストネットワーク上でテストトークンを使用してウォレットをセットアップする必要があります。

これを行うには、Ethereum Goerli テストネットワークから zkEVM にトークンをブリッジすることができます。

zkEVM Bridgeアプリケーションにウォレットを接続します。


zkEVMブリッジにウォレットを接続する

そして、このようにして、GoerliからzkEVMのテストネットワークへのブリッジ資金を行なってください。


GoerliテストネットからzkEVMテストネットへのブリッジ資金

数分後、Finaliseを押してブリッジを完成させましょう


必ず「Finalise」をクリックして、ブリッジを完成させてください

このプロセスが完了すると、ブリッジした資金がzkEVMネットワーク上のウォレットに入ります。

つまり、スマートコントラクトをデプロイする準備が整ったということです!

スマートコントラクトを作成する

このガイドでは、ContractKitDeploy を使用して Solidity でシンプルな NFT 収集スマートコントラクトを記述します。

もしご希望であれば、Exploreページでweb3のトッププロトコルによって構築されたスマートコントラクトを閲覧し、わずか数クリックでzkEVMテストネットにデプロイすることができます!

https://thirdweb.com/explore

NFTコレクションスマートコントラクトの作成

まずはCLIを使って、ターミナルから以下のコマンドを実行して、スマートコントラクトの環境を構築します。

npx thirdweb create contract

このコマンドを実行すると、スマートコントラクトをどのようにセットアップするかについての一連の対話式の質問が始まります。

この例では、NFTDropスマートコントラクトを作成します。


CLIを使用して、簡単なスマートコントラクトプロジェクトをセットアップすることができます。

スマートコントラクトをPolygon zkEVM Testnetにデプロイする

プロジェクトが作成されたら、新しいプロジェクトにディレクトリを変更し、Deploy を使用してデプロイ処理を開始します。

npx thirdweb deploy

このコマンドを実行すると、次の手順が実行されます。

  1. 現在のディレクトリにあるすべてのコントラクトをコンパイルします。
  2. デプロイしたいコントラクトを選択できるようにします。
  3. コントラクトのソース コード (ABI) を IPFS にアップロードします。

最後に、ダッシュボードでデプロイメント フローを開くための URL を提供します。

このURLを開くと、スマートコントラクトのコンストラクタのパラメータを入力し、EVMと互換性のあるネットワークにデプロイできるページが表示されます。

Polygon zkEVMにデプロイするためには、まずウォレットからダッシュボードにネットワークとして追加する必要があります。

これを行うには、ウォレットを接続し、「˅」アイコンをクリックします。開いたメニューから、「Configure Networks」を選択します。


ウォレットを接続後、「ネットワークの設定」を選択します

このアクションにより、スマートコントラクトをデプロイするためのオプションとしてPolygon zkEVM testnetを追加できるモーダルが表示されます。

カスタムタブを選択し、以下のテストネットの詳細を追加します。

  • ネットワーク名: ポリゴンzkEVMテストネット
  • ネットワークID: polygon-zkevm
  • RPC URL: https://rpc.public.zkevm-test.net
  • チェーンID:1422
  • 通貨記号: ETH
  • ネットワークタイプ テストネット
  • Icon: 好きなアイコンを追加してもいいし、そのままでもOK

準備ができたら、「Add Network」をクリックします。

これでモーダルを閉じてコントラクトパラメータページに戻り、スマートコントラクタに必要な各フィールドに値を入力することができます。


スマートコントラクトのコンストラクタにパラメータを設定します。

最後に、Deploy Now ボタンをクリックし、トランザクションを承認してください。

トランザクションが成立したら、他のスマートコントラクトと同じように使用することができます。

スマートコントラクトの関数を呼び出す

スマートコントラクトの関数を呼び出して、スマートコントラクトをどのように使用できるかを見てみましょう。

Explorerタブから、スマートコントラクトで利用可能なすべての関数を表示し、接続されているウォレットから直接実行することができます。


スマートコントラクトの関数を実行するには、エクスプローラを使用します

NFT コレクションのセットアップ

この例では、NFTドロップスマートコントラクトを作成したので、次の手順を実行して、すばやくセットアップし、最初のNFTをミントします。

  1. NFT のバッチをLazyミントする。(ミントはせずに、メタデータを設定すること)
  2. 請求条件を設定する。
  3. ドロップから NFT をミントします!

NFTの設定が完了したら、NFTsタブにあるClaimボタンをクリックして、最初のNFTをミントしてみましょう。

Polygon zkEVMでNFTをミントしたところです。


「Claim」ボタンをクリックして、NFTをミントする

次は何をする?

スマートコントラクトをデプロイしたら、SDKを使用してWeb3アプリケーションを構築できます。
ここでユーザーは自分のウォレットを接続し、スマートコントラクトの機能を利用することができます。詳細は以下のガイドをご覧ください。

https://www.youtube.com/watch?v=Ti_wdhHn42Q&t=1s
スマートコントラクトと対話するためのWeb3アプリの構築方法について説明します

まとめ

PolygonのzkEVMは、ゼロ知識暗号とトランザクション実行のオフチェーンバッチングの組み合わせにより、Ethereumのスケーラビリティを向上させる強力でエキサイティングな技術です。

thirdwebを使えば、zkEVMのようなレイヤー2のロールアップを含む、あらゆるEVM互換チェーンにスマートコントラクトをシームレスにデプロイすることが可能です。

このガイドでは、NFTコレクションスマートコントラクトをデプロイする方法の簡単な例を示しました!
質問がある場合は、thirdweb Discordに飛び込んで、私たちのチームと直接話してください!

Discussion