見出し画像

Hardhat +α(Hardhat network)②アカウントについて ~ブロックチェーンエンジニアになろう~


前回の続きです。

Hardhat公式

Hardhat networkのアカウントが公式で

・0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
・0x70997970C51812dc3A010C7d01b50e0d17dc79C8
・0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC
・0x90F79bf6EB2c4f870365E785982E1f101E93b906
・0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65
・0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc
・・・・・・・

とありましたので前回は1番最初のアカウントを確認しました。

では本日はその続きも正しいか見てみましょう。

const signers = await ethers.getSigners();
   owner = signers[0];
   addr1 = signers[1];
   addr2 = signers[2];
   addr3 = signers[3];

(途中省略)

describe("account test", async () => {
   it("account test", async () => {
     console.log("ownerのaddress : %s", owner.address);
     console.log("addr1のaddress : %s", addr1.address);
     console.log("addr2のaddress : %s", addr2.address);
     console.log("addr3のaddress : %s", addr3.address);

   });
 })​

結果はこちらです。

確かに上のアカウントリストと一致していますね。

スクリーンショット 2021-12-09 8.18.32

では次にこのアカウントに初期設定として格納されている10,000ETHについて確認していきましょう。

console.log("ownerのbalance : %s", await owner.getBalance());
console.log("addr1のbalance : %s", await addr1.getBalance());
console.log("addr2のbalance : %s", await addr2.getBalance());
console.log("addr3のbalance : %s", await addr3.getBalance());

結果はこちらです。

スクリーンショット 2021-12-09 8.30.19

予想と違うと思った方もいるかもしれません。

① ownerのbalance

なんだかピッタリではありませんね。

ここからわかることが2つあります。

実はこの少し上のコードで、コントラクトのデプロイをしていました。その際に

① コントラクトのデプロイによってbalance(ガス代)が消費された。

② コントラクトのデプロイはデフォルトでアカウントリストが
  一番上のownerというアカウントで実行された

ということになると思います。

② balanceの桁数

桁数が多すぎると思った方もいるかもしれません。

実は基本的にはETHという単位ではなく、その最小単位であるweiという単位が使われているからです。

weiはETHの10の18乗分の一の単位です。

この続きは次回です。


サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊