Hardhat入門⑦(別のネットワークでの実施) ~ブロックチェーンエンジニアになろう~
今日もHardhat公式からやっていきます。
なんと、今日はとうとう別のネットワークにデプロイする日がやってきましたよ。
本番環境までもう少しですね。
まず、Ethereumの本番環境は「mainnet」と呼ばれますが、そこで実際に行うとガス代というお金がかかります。
そのため、テストでは基本「mainnet」は使わずに、本番環境に近いテストネットを使いましょう。
それが Ropsten, Kovan, Rinkeby and Goerliという4つのテストネットです。
このチュートリアルではRopstenを推奨していましたが、私が普段やっているのはRinkebyですのでRinkebyでやってみたいと思います。
実はこれらのテストネットで実施する場合、ガス代がかかります。
しかし、これはテストネットであるため、ここにかかるガス代は自由に取得することができます。
そのため、実際にガスを使って実行するという、かなり本番に近い状態でテストを行うことができます。
まずは「scripts」というフォルダに「deploy.js」というファイルを作り、以下のコードをコピペしましょう。(公式そのままです。)
こちらのコードです。
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);
console.log("Account balance:", (await deployer.getBalance()).toString());
const Token = await ethers.getContractFactory("Token");
const token = await Token.deploy();
console.log("Token address:", token.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
...どうでしょう???
なんとなく上の部分、よく見ると見覚えがありませんか??
そう、こちら大体がテストコードと同じです。
そのため、わかりにくいなと思った方はテストコードの章を復習すればなんとなくイメージが湧くと思います。
今回新しく出てきたのは
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
になりますが、これはいつも実施するため、おまじないのような感覚でいいのではと思います。
ネットワークの設定
使いたいネットワークを設置するためには「hardhat.config.js」に書いていくことになります。
覚えていますでしょうか?Hardhatの設定が書いてあるようなファイルでしたね。
では、ここからは少し長いですので、次回にまわしたいと思います。