El código total está aquí en mi esencia https://gist.github.com/supersuperrookie/0cd4584c691c88af9aaa43d67fb730cd
Creé un contrato inteligente que tiene la siguiente función,
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"); } y cuando pruebo este método así, no sé por qué stakerContractbalance es 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); });