結論
const wallet = await ethers.getSigners(); //wallet情報取得
await contract.connect(wallet[1]).mint(); //walletを繋いで、トランザクション実行
詳細
localhostでnodeの起動
yarn hardhat node
コントラクトのデプロイ
npx hardhat run --network localhost scripts/deploy.ts
※ scripts/deploy.tsはhardhatのプロジェクトを作ったときに作られたファイルです。デプロイしたいコントラクトに合わせて修正してください。ファイル名を変更した時は、最後のscripts/deploy.ts
のファイル指定の部分を変更してください。
hardhat console
hardhat consoleの立ち上げ
npx hardhat console --network localhost
以下の作業はconsole内で実行 (コントラクトにトランザクションを送るための準備 ~)
コントラクトにトランザクションを送るための準備
const Contract = await ethers.getContractFactory("コントラクト名");
const contract = await Contract.attach("コントラクトのアドレス")
※ depoly.tsを修正していなければ、consoleにアドレスを吐き出すコードが含まれているので、そこで確認できます。(console.log("..${〇〇.address}.")
みたいな箇所)
※ nodeを起動しているターミナルのログにもデプロイしたコントラクトのアドレスは表示されます
コントラクトにトランザクションを送る
await contract.mint()
コントラクトのmint関数を実行しています。(mint関数は自分で定義)
0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 から実行されていることが分かります。
nodeを立ち上げた時に1番上に表示されたアドレスです。
別アカウントからトランザクションを送る
const wallet = await ethers.getSigners();
await contract.connect(wallet[1]).mint();
0x70997970C51812dc3A010C7d01b50e0d17dc79C8から実行されていることが分かります。
nodeを立ち上げた時に2番目に表示されたアドレスです。
これで別アカウントからトランザクションを送ることが出来ました👏