【发布时间】: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