truffle/hardhat 单元测试如何切换不同的账号(地址)

  • Air
  • 更新于 2021-05-25 16:14
  • 阅读 3623

truffle/hardhat 单元测试如何切换不同的账号(地址)

truffle/hardhat 单元测试如何切换不同的账号(地址)

背景

truffle/hardhat 部署完合约之后,调用合约的方法,此时msg.sender是合约的owner

it("转币测试", async function () {
    await deployments.fixture(["KanamitTrade"]);
    const { tokenOwner, deployer, user0, user1 } = await getNamedAccounts();
    const KanamitTrade = await ethers.getContract("KanamitTrade");

    //deposit
    KanamitTrade.deposit({ value: ethers.utils.parseEther("1.2345678") });    
  }

直接改 msg.sender会报错

//deposit
    KanamitTrade.deposit({ sender:user0, value: ethers.utils.parseEther("1.2345678") });

可以用合约的 .connect() 来切换账号(地址)

it("222222222", async function () {        
    const ftryKTrade = await ethers.getContractFactory("KanamitTrade");

    const KanamitTrade = await ftryKTrade.deploy(KanamitCore.address);
    await KanamitTrade.deployed();

    let signer1 = ethers.provider.getSigner(1);    

    //deposit
    await KanamitTrade.connect(signer1).deposit({ value: ethers.utils.parseEther("1.2345678") });
}
点赞 3
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Air
Air
江湖只有他的大名,没有他的介绍。