如何使用不同的地址来调用 Hardhat 测试和脚本中的函数?

Nic*_*ico 18 ethereum solidity smartcontracts ethers.js hardhat

运行测试和脚本时,所有函数均由 Hardhat 提供的第一个地址调用。

我想知道是否有办法在同一测试或脚本中更改调用地址。

提前致谢!

Pet*_*jda 27

您可以使用该connect()方法。

来自https://hardhat.org/tutorial/testing-contracts.html#using-a- Different-account 的代码示例

const [owner, addr1, addr2] = await ethers.getSigners();

// Transfer 50 tokens from owner to addr1
await hardhatToken.transfer(addr1.address, 50);

// Transfer 50 tokens from addr1 to addr2
await hardhatToken.connect(addr1).transfer(addr2.address, 50);
Run Code Online (Sandbox Code Playgroud)