こちらの記事はHardhatのTutorialの日本語解説となります。
Web3の勉強をしたいと思ってチュートリアルの日本語記事を探していたのですが、Hardhatのチュートリアル記事ってあんまりないのですね、、、qiitaで調べてみても2,3件しかありませんでした。
先人たちの記事はこちら👇
Hardhatのチュートリアルをやってみた
【Solidity】HardhatでDappを作ってみる ~ チュートリアル編(前半)~
先人たちの解説があるのですが、改めてチュートリアルの日本語Verを作成しました。
Hardhatとは
- ローカルでSolidityを実行可能。
- 開発専用のEthereumネットワーク、Hardhat Networkの提供。
- デバッグに特化し、エラー時の詳細な情報提供。
- 高い柔軟性とカスタマイズ可能性。
- 既存のツールとの統合が容易。
- 完全に拡張可能で、プロジェクト固有のニーズに対応。
- プラグインエコシステムを有し、機能追加やツールの統合をサポート。
- 開発フィードバックループの高速化。
- TypeScriptのネイティブサポートによるミス検出能力の強化。
チュートリアル開始
1. 環境を整える
Node.jsをインストールします。Node.jsがインストールされている方は飛ばしちゃってください。インストールしたことが無い方は「Node.js インストール方法 Mac」などで検索して、出てきた記事を参考にインストールしてください。
参考:【Windows/Mac/Linux(Ubuntu)】Node.jsインストール方法
Hardhatのチュートリアルではバージョン20.~のNode.jsが推奨されています。
2. 新しいHardhatのプロジェクトを作成する
1. ディレクトリの作成と移動
ターミナルを開いて、以下のコマンドを実行する。(hardhat-tutorialディレクトリを作成し、作成したディレクトリに移動します。)
$ mkdir hardhat-tutorial
$ cd hardhat-tutorial
2. package.jsonの作成と、hardhatをインストールする。
$ npm init -y
$ npm install --save-dev hardhat
3. npx hardhatを実行し、hardhat.config.jsを生成する。
自分がhardhat-tutorialディレクトリにいることを確認したら、npx hardhatを実行します。実行後にHardhatと、? What do you want to do? … という選択肢が表示されるので、3つ目のCreate an empty hardhat.config.jsを選択してください。
$ npx hardhat
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
Welcome to Hardhat v2.0.0
? What do you want to do? …
Create a sample project
❯ Create an empty hardhat.config.js
Quit
4. プラグインのインストール
スマートコンラクトを開発する上で必要とするものが全てが揃うプラグインをインストールします。
warningがたくさん出ますが、無視します。
$ npm install --save-dev @nomicfoundation/hardhat-toolbox
プラグインのインストールが終わったら、hardhat.config.jsにrequire("@nomicfoundation/hardhat-toolbox");
を追加します。
require("@nomicfoundation/hardhat-toolbox");
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.19",
};
以上で環境設定は完了です!
次はスマートコントラクトの作成とコンパイルを解説したいと思います。
<参考>
npm initする理由
npm init -yで-yを付ける理由
--save-devの意味は何ですか?
👇の記事を参考に英語を読みました。
3年かけてたどり着いた英語記事を読むための方法