Web3 HardhatによるローカルネットでMetamask(メタマスク)に接続

2023年7月14日

ローカル環境でメタマスク接続

概要

仮想通貨の学校

仮想通貨開発Web3でEVM(Etherium Virtual Machine)の環境構築手順の公開です。

開発にあたって何が必要なのか、また、最初のスタートであるローカル環境でのMetamask(メタマスク)接続を紹介していきます。

Hardhatについて

Hardhatとは

Hardhatは、暗号資産の送受金を含むWeb3プロジェクトをライブ環境を扱うことなく、コントラクトのデプロイ、テストの実行、Solidityコードのデバッグを簡単にできます。Hardhat Network は開発用に設計されたローカル環境の Ethereum ネットワークです。

前提条件

Hardhatは、暗号資産の送受金を含むWeb3プロジェクトをローカル環境で使用できます。これで、暗号資産の環境を自分のPCで再現可能になり、将来のSolidityバージョンの衝突を避けることができます。

インストール方法はこちらの手順です。

  • 空のフォルダに移動
  • npm initコマンドを実行
  • npmプロジェクトを作成

yarnのような他のパッケージマネージャを使うえますが、Hardhatプラグインのインストールが簡単になるので、npmを使うことをおすすめします。

  • nodeインストール
  • npm実行

Hardhatの実行手順

Hardhatインストール

nodeのインストールが完了すればコマンドをご入力ください。

npm install --save-dev hardhat 

Hardhatプロジェクト作成

ここでは、サンプルプロジェクトのコントラクトのテストおよびデプロイ用のスクリプトを含むHardhatプロジェクトの作成の基本を探ります。

サンプルプロジェクトの作成は、プロジェクトフォルダで 下のコマンド実行で開始します。:

npx hardhat

上記コマンドの実行で以下の3つの選択肢が出力されます。

  • Javascriptでプロジェクトを作成
  • Typescriptでプロジェクトを作成
  • 空のhardhat.confi.jsを作成

上記3つの選択肢で「TypeScriptのプロジェクトを作成」をおすすめします。

それでは以下はサンプル・コントラクトを「コンパイル」、「テスト」、「デプロイ」する手順です。

Hardhat nodeコンパイル

プロジェクトのコンパイル実行は以下のコマンドです。

npx hardhat compile

Hardhat node テスト

テストコードの実行は以下のコマンドです。

npx hardhat test

コントラクトのデプロイ

次に、コントラクトのデプロイに、Hardhatスクリプトを使用します。

$ npx hardhat run scripts/deploy.ts
Lock with 1 ETH deployed to: 0x5FbDB2315678afecb367f032d93F642f64180aa3

Hardhat node起動

デフォルトでは、Hardhat は、起動時に Hardhat Network の新しいインメモリ・インスタンスをスピンアップします。外部クライアントが接続できるように、スタンドアロンでHardhat Networkの実行も可能です。これは、ウォレット、Dappフロントエンド、またはスクリプトです。

$ npx hardhat node
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/

上記コマンドは、Hardhat NetworkへのJSON-RPCインタフェースの公開です。利用方法は、ウォレットまたはアプリケーションをローカル環境に接続します。

ローカル環境のノードにデプロイ スクリプトの実行等、Hardhatをこのノードに接続する場合は、単に--network localhostを使って実行する必要があります。

npx hardhat run scripts/deploy.ts --network localhost

これを試すには以下2つの手順が必要です、

  1. npx hardhat nodeでノードを起動
  2. ネットワークオプションを使用してデプロイスクリプトを再実行

おめでとう!あなたはプロジェクトを作成でき、スマート・コントラクトをコンパイル、テスト、デプロイが実行できました。

Metamask(メタマスク)にローカルネットワーク追加

前提条件

Metamask(メタマスク)がchromeにインストールされていること

ローカルネットワーク追加

ネットワーク名

Local Ethereum

新しいRPC URL

http://127.0.0.1:8545

チェーンID

31337

通過記号

ETH

アカウント作成

先ほどノード起動時に複数のAccountとPrivate Keyが出力されました。全てのアカウントは利用できますが、とりあえず一番上のアカウントをMetamask(メタマスク)に登録します。

Metamask(メタマスク)のアカウント追加

秘密鍵に入れるのは

コマンドラインにあるPrivate Keyを入れてください。

表示

アカウントをインポートすると10,000ETH入ってます。

メインネットでは当然使えないのですがローカルからローカルの別のアカウントへの送金は可能です。

まとめ

EVM環境をローカルで起動させる方法です。Web3開発の基礎の基礎なので最初に環境を整えるにはいいと思います。

-EVM