テック開発者ブログテコテック開発者ブログ読者になるテコテック開発者ブログ2022-08-05Hardhatで始めるDapps開発どうも、次世代デジタル基盤開発事業部の土田です。Blockchainを触ってましたが、Solidity関連のご相談も増えてますので、置いていかれないように頑張ります。これまではTruffleSuiteで開発環境を構築してきましたが、今回はHardhatという開発環境を使ってみたいと思います。2.10.1Hardhatをインストール公式ドキュメントをご参照下さい。npmもyarnも特に問題なくインストールできました。下記コマンドを実行し、サンプルプロジェクトを作成します。metadata.hardhat.orgHardhatで何かをする時にはタスクとして定義して実行する必要があるそうです。サンプルプロジェクトで実行できるタスクは下記コマンドを実行すると確認できます。hardhatJavaScriptのサンプル作成時にはaccountsという独自タスクが定義されていたのですが、TypeScriptでプロジェクトを作成すると無かったので作成してみます。タスクはルートディレクトリのhardhat.config.tsに定義します。config;再度タスクを確認すると・・・accountsが追加されていますね!早速実行してみましょう。accountsデフォルトで用意されているアカウントを確認することができました。ノード起動ノード起動はデフォルトのタスクが用意されていますので、そのまま使いましょう。nodeついでにMetaMaskで起動したノードに接続し、アカウントもインポートしてみます。ChainIDはデフォルトで31337だそうです。hardhat.org無事、接続&インポート完了しました。問題なく送金できましたね!MetaMaskで送金を行った場合、ノードを再起動すると下記エラーが発生することがありますので、MetaMaskのアカウントリセットをお試し下さい。automining.参考medium.comクリプトゾンビを進めるチャプター1の13まで進めます。cryptozombies.io当時、特に出なかったエラーが表示されたので、備忘として残しておきます。(0).0.6以降でpushの戻り値が変わったそうです。anymore.github.com該当箇所を下記の通り修正します。1;コンパイルしてみるコンパイルされたソース一式はルートディレクトリ直下のartifactsフォルダに生成されます。compileまた、abiからTypeScriptも生成されます。HardhatではデフォルトでTypeChainを採用しているようです。hardhat.orggithub.com生成後はルートディレクトリ直下のtypechain-typesに生成されます。ソースコードはこんな感じ。これで型安全にコントラクトの開発を行う準備ができました!テストしてみるテストコードの配置先のデフォルトはルートディレクトリ直下のtestフォルダになります。今回はZombieFactory.tsとしてテストコードを作成しました。});});実行してみます。test無事、テストも通りました!また、未コンパイルの状態ではコンパイルとテストを合わせて実行するようでした。デプロイしてみるデプロイするコントラクトを定義します。scripts/deploy.tsを修正しましょう。1;});デプロイは下記コマンドを実行します。consoleでも確認してみます。nodeを実行中のターミナルにて、実行されていることが確認できます。Problem0.6以降で配列が参照を返すようになったため、要素数を別途取得する必要があります。consoleでコントラクトを実行した際に、下記のようなエラーが発生しました。この場合は、hardhat.config.tsに設定を追加する必要があります。},};参考github.comおわりこれでひと通りHardhatに触れることが出来ました。Truffle、Ganacheも簡単でしたがHardhatも同じくらい簡単ですし、プラグインも充実していてTypeScriptの開発が捗りそうで良さそうです。動作も軽くていい感じなので、今後はHardhatでやると思います。こんにちは、次世代デジタル基盤開発事業部の三島です...2023-03-15Next.jsとSequelizeを使ったアプリ開発に取り組んでみたこんにちは、次世代デジタル基盤開発事業部の渡邊です。今回は...2022-09-02独自コントラクトのNFT発行してみたこんにちは、次世代デジタル基盤開発事業部の近藤です。今回の...2022-07-08NestJSでAPI開発を行うこんにちは、次世代デジタル基盤開発事業部の野口です。株式や投資信託といった伝統的な金融商品から暗号資産を基軸としたWeb3.0などの新事業領域まで、未来のサービス基盤を産み出すテクノロジーのリーディングカンパニーです。TecotecDevはてなブログをはじめよう!tecotecさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。