概要
仮想通貨開発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つの手順が必要です、
- npx hardhat nodeでノードを起動
- ネットワークオプションを使用してデプロイスクリプトを再実行
おめでとう!あなたはプロジェクトを作成でき、スマート・コントラクトをコンパイル、テスト、デプロイが実行できました。
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開発の基礎の基礎なので最初に環境を整えるにはいいと思います。