スマートコントラクト開発環境Hardhatを学ぶ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Hardhat TypeScript環境構築手順 - 共同管理自動台帳開発を...
** はじめに [#k6f75ff9]
この記事では、'''Hardhat'''を使って'''共同管理自動台帳'''...
(※イーサリアムだと意味不明なので共同管理自動台帳と表現し...
従来のWebサーバーと違い、共同管理自動台帳では''一度デプロ...
** 今回のゴール [#k815e2b6]
- Hardhatプロジェクトの作成
- TypeScript環境の構築
- WindsurfでのAI開発環境準備
- 基本的なプロジェクト構造の理解
** 前提条件 [#f49413fc]
*** 必要な環境 [#n863321a]
- Node.js がインストール済み
- Windsurf(VSCodeベース)エディタ
- 基本的なターミナル操作の知識
*** Node.jsの確認 [#ubcd28df]
まず、Node.jsがインストールされているか確認します。
#code(bash){{{
node --version
}}}
バージョンが表示されればOKです。インストールされていない...
** Step 1: プロジェクトフォルダの作成 [#dfc44c76]
新しいプロジェクト用のフォルダを作成し、移動します。
mkdir my-first-hardhat
cd my-first-hardhat
> '''ポイント''': フォルダ名は英数字とハイフンで構成する...
** Step 2: Hardhatのインストールと初期化 [#od869a8b]
*** Hardhatをインストール [#v96efaa4]
npm install --save-dev hardhat
*** プロジェクトの初期化 [#u1fa4710]
npx hardhat init
*** 設定の選択 [#m7c6fbda]
初期化時に以下の選択肢が表示されます:
- Create a JavaScript project
- '''Create a TypeScript project''' ← '''これを選択'''
- Create an empty hardhat.config.js
'''TypeScriptを選択する理由''':
- 型安全性によりエラーを早期発見
- IDEの補完機能が強力
- WindsurfのAIがより正確に理解
- Solidityとの親和性が高い
その後の質問は全て '''Yes''' で進めます。
** Step 3: 生成されたプロジェクト構造 [#y8a64c8a]
初期化が完了すると、以下のファイル構造が生成されます:
my-first-hardhat/
├── contracts/ # 条件即座実行コード(.sol)
│ └── Lock.sol # サンプルコード
├── scripts/ # デプロイ用スクリプト(.ts)
│ └── deploy.ts
├── test/ # テストコード(.ts)
│ └── Lock.ts
├── hardhat.config.ts # Hardhat設定ファイル
├── tsconfig.json # TypeScript設定
├── package.json # Node.js依存関係
└── README.md # プロジェクト説明
*** 各フォルダの役割 [#nc8069be]
|フォルダ名|役割|ファイル形式|
|contracts|条件即座実行のコードを格納|.sol(Solidity)|
|scripts|デプロイやその他の実行スクリプト|.ts(TypeScript...
|test|テストコードを格納|.ts(TypeScript)|
** Step 4: Windsurfで開く [#yf7d9c91]
プロジェクトフォルダをWindsurfで開きます。
# Windsurfがインストールされている場合
windsurf .
# または手動でWindsurfを開いてフォルダを選択
** WindsurfとHardhatの相性の良さ [#v21d9801]
*** なぜWindsurfが最適なのか [#x630ff57]
- '''VSCodeベース''': HardhatはVSCodeとの相性が抜群
- '''AIサポート''': プロジェクト全体を理解してコード生成
- '''コンテキスト認識''': ファイル間の関係を把握した提案
- '''リアルタイム支援''': 開発中の即座なサポート
*** 開発体験の向上 [#r006061b]
従来の開発フローと比較すると:
|従来の開発|Windsurf + Hardhat|
|ドキュメントを読んで理解|「○○したい」と伝えるだけ|
|コードを手動で書く|AI がプロジェクト全体を考慮してコード...
|エラーをググって解決|エラーが出たら即座に解決案を提示|
|テストを別途作成|テスト・設定・ドキュメントも一緒に生成|
** 次のステップ [#t14e35b6]
環境構築が完了したら、以下の順序で学習を進めることをお勧...
- サンプルコード(Lock.sol)の解読
- 基本的なコンパイルとテストの実行
- 簡単な条件即座実行の作成
- ローカル環境でのテスト
- テストネットへのデプロイ
** まとめ [#c0322804]
Hardhat + TypeScript + Windsurfの組み合わせにより、強力な...
'''主なメリット''':
- '''永久稼働''': 一度デプロイすれば維持費不要
- '''型安全性''': TypeScriptによる開発品質向上
- '''AI支援''': Windsurfによる効率的な開発
- '''Git管理''': 通常のプロジェクトと同様にバージョン管理...
** HardhatのWindsurfのプラグイン [#i831bf74]
Solidity
* Hardhat開発者のための Solidity拡張機能ガイド [#ad492156]
** はじめに [#db613ded]
'''Solidity by Nomic Foundation''' は、Hardhatプロジェク...
Windsurfユーザーにとって、この拡張機能は '''AI開発サポー...
** この拡張機能でできること [#e5c40c68]
*** 基本的な開発支援 [#i34fd746]
- '''コード補完''': 関数名、変数名を自動補完
- '''エラー検出''': タイプミスやコンパイルエラーをリアル...
- '''コードフォーマット''': 見やすいコードに自動整形
- '''ナビゲーション''': 関数の定義場所にジャンプ
*** Hardhat特有の機能 [#pb40b873]
- '''設定ファイル連携''': hardhat.config.ts の設定を自動...
- '''コンパイル統合''': VSCode内で直接コンパイル実行
- '''テスト実行''': ワンクリックでテスト実行
- '''デプロイ支援''': スクリプト実行をGUIから操作
** インストールと設定 [#p818db79]
*** Step 1: 拡張機能のインストール [#r636a76c]
VSCode マーケットプレイスから '''Solidity by Nomic Founda...
*** Step 2: Hardhatプロジェクトを開く [#f61ed1c1]
# Windsurfでプロジェクトフォルダを開く
windsurf my-hardhat-project
拡張機能が '''hardhat.config.ts''' ファイルを自動検出し、...
*** Step 3: デフォルトフォーマッター設定 [#cf0cb86b]
Solidityファイル(.sol)のフォーマッターをこの拡張機能に...
1. .solファイルを開く
2. 右クリック → '''Format Document With...'''
3. '''Configure Default Formatter...'''
4. '''Solidity''' を選択
** 実際の開発での使い方 [#q7ab510b]
*** コード編集時 [#rbd93919]
**** 自動補完機能 [#r07a81b6]
contract MyToken {
// 「fun」と入力すると「function」が補完される
// 関数名や変数名も自動提案
**** リアルタイムエラー検出 [#y01be246]
エラーや警告が '''赤い波線''' や '''黄色い波線''' で即座...
**** ホバーヘルプ [#gc39cdd3]
変数や関数の上にマウスを置くと、詳細情報がポップアップ表...
*** クイックフィックス(自動修正) [#l61c4080]
エラーが出た行に '''💡電球アイコン''' が表示され、クリック...
**** よくある修正例 [#e8a4ae1e]
'''関数の可視性エラー'''
// エラー: 可視性が指定されていない
function transfer(address to, uint256 amount) {
// 💡クリック → 自動修正
function transfer(address to, uint256 amount) public {
'''view/pure修飾子の追加'''
// 警告: 状態を変更しない関数
function getBalance() returns (uint256) {
// 💡クリック → 自動修正
function getBalance() public view returns (uint256) {
'''インターフェース実装'''
// エラー: インターフェースの関数が未実装
contract MyToken is IERC20 {
// 💡クリック → 必要な関数を自動生成
** Hardhat専用コマンド [#u58be4c1]
拡張機能により、以下のコマンドがコマンドパレット(Ctrl+Sh...
*** Hardhat: Compile project [#y607329a]
# 以下と同じ動作
npx hardhat compile
プロジェクト全体をコンパイルし、エラーがあれば表示します。
*** Hardhat: Clear cache and artifacts [#d56674e4]
# 以下と同じ動作
npx hardhat clean
キャッシュとビルド結果をクリアします。
*** Hardhat: Flatten this file and its dependencies [#e45...
開いているSolidityファイルとその依存関係を1つのファイルに...
** タスク統合 [#xbb743c2]
VSCodeのタスクランナーと統合されており、以下が利用できま...
*** ビルドタスク(Ctrl+Shift+P → Tasks: Run Build Task) ...
hardhat compile
*** テストタスク(Ctrl+Shift+P → Tasks: Run Test Task) [...
hardhat test
** 開発ワークフロー例 [#mf5ff6ed]
*** 日常的な開発手順 [#l526929b]
1. '''Windsurfでプロジェクトを開く'''
2. '''contracts/'''フォルダでSolidityファイルを編集
3. '''リアルタイムでエラーチェック'''(自動)
4. '''💡クイックフィックス'''でエラー修正
5. '''Ctrl+Shift+P''' → '''Hardhat: Compile project'''
6. '''test/'''フォルダでテストコード編集
7. '''Ctrl+Shift+P''' → '''Tasks: Run Test Task'''
*** デバッグ時の手順 [#w5860297]
1. '''エラー行の💡アイコンをクリック'''
2. 修正案を確認・適用
3. '''F12キー'''で関数定義にジャンプ
4. '''Shift+F12'''で参照箇所を一覧表示
** 設定とカスタマイズ [#a6068af5]
*** フォーマット設定 [#d0ec523c]
プロジェクトルートに'''.prettierrc.json'''を作成:
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
}
]
}
*** 推奨設定 [#u3a765c9]
VSCodeの設定(settings.json)に追加:
{
"solidity.defaultCompiler": "localHardhat",
"solidity.packageDefaultDependenciesContractsDirectory...
"editor.formatOnSave": true,
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-...
}
}
** WindsurfとAI開発での活用 [#n98ecc24]
*** AI + 拡張機能の相乗効果 [#v30a055b]
'''Windsurf AI'''
- コード生成・提案
- プロジェクト全体の理解
'''Solidity拡張機能'''
- リアルタイムエラーチェック
- 自動修正提案
- Hardhat統合
この組み合わせにより、'''AI生成コード''' → '''即座にエラ...
*** 実践的な使い方 [#a7076dba]
1. WindsurfのAIに「ERC20トークンを作って」
2. 生成されたコードに拡張機能がエラー表示
3. 💡クイックフィックスで瞬時に修正
4. Hardhatコマンドで即座にテスト
** トラブルシューティング [#p77d4ad9]
*** よくある問題と解決法 [#mcacf179]
'''拡張機能が動作しない'''
- hardhat.config.ts が存在するか確認
- プロジェクトをワークスペースとして開いているか確認
'''コンパイルエラーが消えない'''
- '''Hardhat: Clear cache and artifacts''' を実行
- VSCodeを再起動
'''フォーマットが効かない'''
- デフォルトフォーマッターがSolidityに設定されているか確認
** まとめ [#tb34d31e]
Hardhat開発では、この拡張機能は '''必須ツール''' です。
'''メリット'''
- 開発効率が5倍向上
- エラーの早期発見
- 品質の高いコード作成
- Windsurfとの完璧な連携
'''推奨ワークフロー'''
1. Windsurfでプロジェクトを開く
2. Solidity拡張機能で品質チェック
3. AIサポートで高速開発
4. 統合コマンドで簡単テスト・デプロイ
これで、プロフェッショナルレベルのHardhat開発環境の完成で...
** 参考リンク [#le84e83a]
- [[https://hardhat.org/|Hardhat公式サイト]]
- [[https://marketplace.visualstudio.com/items?itemName=N...
- [[https://hardhat.org/discord|Hardhatサポート Discord]]
共同管理自動台帳の世界へようこそ!次回はサンプルコードの...
** 参考リンク [#a74c7d99]
- [Hardhat公式ドキュメント](https://hardhat.org/)
- [Solidity公式ドキュメント](https://soliditylang.org/)
- [TypeScript公式サイト](https://www.typescriptlang.org/)
''この記事が役に立ったら、ぜひシェアしてください!''
終了行:
* Hardhat TypeScript環境構築手順 - 共同管理自動台帳開発を...
** はじめに [#k6f75ff9]
この記事では、'''Hardhat'''を使って'''共同管理自動台帳'''...
(※イーサリアムだと意味不明なので共同管理自動台帳と表現し...
従来のWebサーバーと違い、共同管理自動台帳では''一度デプロ...
** 今回のゴール [#k815e2b6]
- Hardhatプロジェクトの作成
- TypeScript環境の構築
- WindsurfでのAI開発環境準備
- 基本的なプロジェクト構造の理解
** 前提条件 [#f49413fc]
*** 必要な環境 [#n863321a]
- Node.js がインストール済み
- Windsurf(VSCodeベース)エディタ
- 基本的なターミナル操作の知識
*** Node.jsの確認 [#ubcd28df]
まず、Node.jsがインストールされているか確認します。
#code(bash){{{
node --version
}}}
バージョンが表示されればOKです。インストールされていない...
** Step 1: プロジェクトフォルダの作成 [#dfc44c76]
新しいプロジェクト用のフォルダを作成し、移動します。
mkdir my-first-hardhat
cd my-first-hardhat
> '''ポイント''': フォルダ名は英数字とハイフンで構成する...
** Step 2: Hardhatのインストールと初期化 [#od869a8b]
*** Hardhatをインストール [#v96efaa4]
npm install --save-dev hardhat
*** プロジェクトの初期化 [#u1fa4710]
npx hardhat init
*** 設定の選択 [#m7c6fbda]
初期化時に以下の選択肢が表示されます:
- Create a JavaScript project
- '''Create a TypeScript project''' ← '''これを選択'''
- Create an empty hardhat.config.js
'''TypeScriptを選択する理由''':
- 型安全性によりエラーを早期発見
- IDEの補完機能が強力
- WindsurfのAIがより正確に理解
- Solidityとの親和性が高い
その後の質問は全て '''Yes''' で進めます。
** Step 3: 生成されたプロジェクト構造 [#y8a64c8a]
初期化が完了すると、以下のファイル構造が生成されます:
my-first-hardhat/
├── contracts/ # 条件即座実行コード(.sol)
│ └── Lock.sol # サンプルコード
├── scripts/ # デプロイ用スクリプト(.ts)
│ └── deploy.ts
├── test/ # テストコード(.ts)
│ └── Lock.ts
├── hardhat.config.ts # Hardhat設定ファイル
├── tsconfig.json # TypeScript設定
├── package.json # Node.js依存関係
└── README.md # プロジェクト説明
*** 各フォルダの役割 [#nc8069be]
|フォルダ名|役割|ファイル形式|
|contracts|条件即座実行のコードを格納|.sol(Solidity)|
|scripts|デプロイやその他の実行スクリプト|.ts(TypeScript...
|test|テストコードを格納|.ts(TypeScript)|
** Step 4: Windsurfで開く [#yf7d9c91]
プロジェクトフォルダをWindsurfで開きます。
# Windsurfがインストールされている場合
windsurf .
# または手動でWindsurfを開いてフォルダを選択
** WindsurfとHardhatの相性の良さ [#v21d9801]
*** なぜWindsurfが最適なのか [#x630ff57]
- '''VSCodeベース''': HardhatはVSCodeとの相性が抜群
- '''AIサポート''': プロジェクト全体を理解してコード生成
- '''コンテキスト認識''': ファイル間の関係を把握した提案
- '''リアルタイム支援''': 開発中の即座なサポート
*** 開発体験の向上 [#r006061b]
従来の開発フローと比較すると:
|従来の開発|Windsurf + Hardhat|
|ドキュメントを読んで理解|「○○したい」と伝えるだけ|
|コードを手動で書く|AI がプロジェクト全体を考慮してコード...
|エラーをググって解決|エラーが出たら即座に解決案を提示|
|テストを別途作成|テスト・設定・ドキュメントも一緒に生成|
** 次のステップ [#t14e35b6]
環境構築が完了したら、以下の順序で学習を進めることをお勧...
- サンプルコード(Lock.sol)の解読
- 基本的なコンパイルとテストの実行
- 簡単な条件即座実行の作成
- ローカル環境でのテスト
- テストネットへのデプロイ
** まとめ [#c0322804]
Hardhat + TypeScript + Windsurfの組み合わせにより、強力な...
'''主なメリット''':
- '''永久稼働''': 一度デプロイすれば維持費不要
- '''型安全性''': TypeScriptによる開発品質向上
- '''AI支援''': Windsurfによる効率的な開発
- '''Git管理''': 通常のプロジェクトと同様にバージョン管理...
** HardhatのWindsurfのプラグイン [#i831bf74]
Solidity
* Hardhat開発者のための Solidity拡張機能ガイド [#ad492156]
** はじめに [#db613ded]
'''Solidity by Nomic Foundation''' は、Hardhatプロジェク...
Windsurfユーザーにとって、この拡張機能は '''AI開発サポー...
** この拡張機能でできること [#e5c40c68]
*** 基本的な開発支援 [#i34fd746]
- '''コード補完''': 関数名、変数名を自動補完
- '''エラー検出''': タイプミスやコンパイルエラーをリアル...
- '''コードフォーマット''': 見やすいコードに自動整形
- '''ナビゲーション''': 関数の定義場所にジャンプ
*** Hardhat特有の機能 [#pb40b873]
- '''設定ファイル連携''': hardhat.config.ts の設定を自動...
- '''コンパイル統合''': VSCode内で直接コンパイル実行
- '''テスト実行''': ワンクリックでテスト実行
- '''デプロイ支援''': スクリプト実行をGUIから操作
** インストールと設定 [#p818db79]
*** Step 1: 拡張機能のインストール [#r636a76c]
VSCode マーケットプレイスから '''Solidity by Nomic Founda...
*** Step 2: Hardhatプロジェクトを開く [#f61ed1c1]
# Windsurfでプロジェクトフォルダを開く
windsurf my-hardhat-project
拡張機能が '''hardhat.config.ts''' ファイルを自動検出し、...
*** Step 3: デフォルトフォーマッター設定 [#cf0cb86b]
Solidityファイル(.sol)のフォーマッターをこの拡張機能に...
1. .solファイルを開く
2. 右クリック → '''Format Document With...'''
3. '''Configure Default Formatter...'''
4. '''Solidity''' を選択
** 実際の開発での使い方 [#q7ab510b]
*** コード編集時 [#rbd93919]
**** 自動補完機能 [#r07a81b6]
contract MyToken {
// 「fun」と入力すると「function」が補完される
// 関数名や変数名も自動提案
**** リアルタイムエラー検出 [#y01be246]
エラーや警告が '''赤い波線''' や '''黄色い波線''' で即座...
**** ホバーヘルプ [#gc39cdd3]
変数や関数の上にマウスを置くと、詳細情報がポップアップ表...
*** クイックフィックス(自動修正) [#l61c4080]
エラーが出た行に '''💡電球アイコン''' が表示され、クリック...
**** よくある修正例 [#e8a4ae1e]
'''関数の可視性エラー'''
// エラー: 可視性が指定されていない
function transfer(address to, uint256 amount) {
// 💡クリック → 自動修正
function transfer(address to, uint256 amount) public {
'''view/pure修飾子の追加'''
// 警告: 状態を変更しない関数
function getBalance() returns (uint256) {
// 💡クリック → 自動修正
function getBalance() public view returns (uint256) {
'''インターフェース実装'''
// エラー: インターフェースの関数が未実装
contract MyToken is IERC20 {
// 💡クリック → 必要な関数を自動生成
** Hardhat専用コマンド [#u58be4c1]
拡張機能により、以下のコマンドがコマンドパレット(Ctrl+Sh...
*** Hardhat: Compile project [#y607329a]
# 以下と同じ動作
npx hardhat compile
プロジェクト全体をコンパイルし、エラーがあれば表示します。
*** Hardhat: Clear cache and artifacts [#d56674e4]
# 以下と同じ動作
npx hardhat clean
キャッシュとビルド結果をクリアします。
*** Hardhat: Flatten this file and its dependencies [#e45...
開いているSolidityファイルとその依存関係を1つのファイルに...
** タスク統合 [#xbb743c2]
VSCodeのタスクランナーと統合されており、以下が利用できま...
*** ビルドタスク(Ctrl+Shift+P → Tasks: Run Build Task) ...
hardhat compile
*** テストタスク(Ctrl+Shift+P → Tasks: Run Test Task) [...
hardhat test
** 開発ワークフロー例 [#mf5ff6ed]
*** 日常的な開発手順 [#l526929b]
1. '''Windsurfでプロジェクトを開く'''
2. '''contracts/'''フォルダでSolidityファイルを編集
3. '''リアルタイムでエラーチェック'''(自動)
4. '''💡クイックフィックス'''でエラー修正
5. '''Ctrl+Shift+P''' → '''Hardhat: Compile project'''
6. '''test/'''フォルダでテストコード編集
7. '''Ctrl+Shift+P''' → '''Tasks: Run Test Task'''
*** デバッグ時の手順 [#w5860297]
1. '''エラー行の💡アイコンをクリック'''
2. 修正案を確認・適用
3. '''F12キー'''で関数定義にジャンプ
4. '''Shift+F12'''で参照箇所を一覧表示
** 設定とカスタマイズ [#a6068af5]
*** フォーマット設定 [#d0ec523c]
プロジェクトルートに'''.prettierrc.json'''を作成:
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
}
]
}
*** 推奨設定 [#u3a765c9]
VSCodeの設定(settings.json)に追加:
{
"solidity.defaultCompiler": "localHardhat",
"solidity.packageDefaultDependenciesContractsDirectory...
"editor.formatOnSave": true,
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-...
}
}
** WindsurfとAI開発での活用 [#n98ecc24]
*** AI + 拡張機能の相乗効果 [#v30a055b]
'''Windsurf AI'''
- コード生成・提案
- プロジェクト全体の理解
'''Solidity拡張機能'''
- リアルタイムエラーチェック
- 自動修正提案
- Hardhat統合
この組み合わせにより、'''AI生成コード''' → '''即座にエラ...
*** 実践的な使い方 [#a7076dba]
1. WindsurfのAIに「ERC20トークンを作って」
2. 生成されたコードに拡張機能がエラー表示
3. 💡クイックフィックスで瞬時に修正
4. Hardhatコマンドで即座にテスト
** トラブルシューティング [#p77d4ad9]
*** よくある問題と解決法 [#mcacf179]
'''拡張機能が動作しない'''
- hardhat.config.ts が存在するか確認
- プロジェクトをワークスペースとして開いているか確認
'''コンパイルエラーが消えない'''
- '''Hardhat: Clear cache and artifacts''' を実行
- VSCodeを再起動
'''フォーマットが効かない'''
- デフォルトフォーマッターがSolidityに設定されているか確認
** まとめ [#tb34d31e]
Hardhat開発では、この拡張機能は '''必須ツール''' です。
'''メリット'''
- 開発効率が5倍向上
- エラーの早期発見
- 品質の高いコード作成
- Windsurfとの完璧な連携
'''推奨ワークフロー'''
1. Windsurfでプロジェクトを開く
2. Solidity拡張機能で品質チェック
3. AIサポートで高速開発
4. 統合コマンドで簡単テスト・デプロイ
これで、プロフェッショナルレベルのHardhat開発環境の完成で...
** 参考リンク [#le84e83a]
- [[https://hardhat.org/|Hardhat公式サイト]]
- [[https://marketplace.visualstudio.com/items?itemName=N...
- [[https://hardhat.org/discord|Hardhatサポート Discord]]
共同管理自動台帳の世界へようこそ!次回はサンプルコードの...
** 参考リンク [#a74c7d99]
- [Hardhat公式ドキュメント](https://hardhat.org/)
- [Solidity公式ドキュメント](https://soliditylang.org/)
- [TypeScript公式サイト](https://www.typescriptlang.org/)
''この記事が役に立ったら、ぜひシェアしてください!''
ページ名: