【问题标题】:confusing contract's balance with externalContract's balance将合约余额与外部合约余额混淆
【发布时间】:2022-06-14 23:33:15
【问题描述】:

总代码在我的要点中 https://gist.github.com/supersuperrookie/0cd4584c691c88af9aaa43d67fb730cd

我创建了一个具有以下功能的智能合约,

function execute() public checkExternalStatus checkDeadline(false) {
    uint256 balanceAmount = address(this).balance;
    require(balanceAmount > threshold, "threshold is not reached");
    (bool sent, ) = address(exampleExternalContract).call{
    value: balanceAmount
    }(abi.encodeWithSignature("complete()"));
require(sent, "exampleExternalContract.complete failed");
}

当我像这样测试这个方法时,我不知道为什么stakerContractbalance是0(★)

it('external contract sucessfully completed', async() => {
      const amount = ethers.utils.parseEther('1.1');
      await stakerContract.connect(addr1).stake({
        value :amount,
      });
      await stakerContract.connect(addr1).execute();

      const competed = await exampleExternalContract.completed();
      expect(competed).to.equal(true);

      const externalBalance = await ethers.provider.getBalance(exampleExternalContract.address);
      expect(externalBalance).to.equal(amount);

      const stakerContractbalance = await ethers.provider.getBalance(stakerContract.address);
   --(★)confuing witch this line(why stakerContractbalance is 0?)           
  expect(stakerContractbalance).to.equal(0); 

});

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript solidity smartcontracts ethers.js


猜你喜欢
  • 2021-06-22
  • 1970-01-01
  • 2022-08-12
  • 2021-04-26
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
相关资源
最近更新 更多