はじめに
近所のイオンから米が消えて久しい今日この頃、皆様お元気でしょうか。
私はというと、日々アップデートされ続けるブロックチェーンアーキテクチャにもまれにもまれ、一体何が正解なのかわからぬまま、歳をとっています。
Hardhatのv3が出る予定だよ
いつかは明言されてませんが、Hardhatのv3が出るらしいです。
今回はそのv3に実装される新機能の解説や、結局Foundryとどっちを使うべきなのかなどの所感を書いていきます。
結論からどうぞ
今の所Foundry。
Hardhatを使う理由はhardhat-upgradesのコントラクトチェック機能ぐらいかなという認識。
それ以外は、例えばtestの実行速度もサポートされるSolidityのコンパイラのバージョンもfuzzテストも全てFoundryに軍配が上がる
詳細
下記はHardhatv3について公表したブログを要約したものである
- 2024年3月にリリースされたv2.21.0において、Rustで実装されたランタイムを起動することにより、test速度が2倍から10倍になった(当社比)
- Hardhat3では、OP Stackのシミュレーションもできるようになるらしい
- Optimism特有の動作をシミュレートしてtestできる。
- ArbitrumやzkSyncも
- ロールアップデータフィーのシミュレーションも?
- Solidityでtestが書けるようになる
- Foundryとの互換が気になるところ。それ次第で移民を受け入れられるかも。
- WASMへの移行計画
- ブラウザを使ったオンラインIDEがHardhatで動作する
- 開発環境がOSに依存しなくなる
所感
- web3.jsやGanacheの頃と比べると、ethers+hardhatのtest速度は十分に早くなったと思うが、それでもFoundryに比べると見劣りしてしまっていた。
- やはりRustは正義ということか
- Waffleのことも忘れないであげてください
- zkSync周りのツールの動作が不安定で、zkSync自体に手が出しづらかった。Hardhatでtestケースをかくと、OptimismやEthereum mainnet、Arbitrumなどと同時にzkSyncの動作試験もできるとなると、メリットが大きい。
参考リンク
Rust-powered Hardhat: Present & Future
In March, we released Hardhat v2.21.0, the first version powered by our brand new Ethereum Development Runtime (EDR, for short) implemented in Rust. This was a significant change under the hood, representing the rewriting of Hardhat's largest and most complex component—its Ethereum simulation layer—in a new
https://blog.nomic.foundation/rust-powered-hardhat-present-future/