我正在尝试将Ether存储在合同中,并在我调用paypackEther()函数时将其退还。在带有JavaScript VM的Remix IDE内,它可以完美运行,但是当我在Rinkeby或Mist的Ropsten上执行它时,我无法获得存储的以太币。这让我发疯...
用Mist调用函数“ paybackEther”时,Input Data只是“ 0x”(以太扫描说)。 我在多台计算机上进行了尝试,但结果保持不变,因此我真的确定它必须对我的代码进行处理。
其他用于接收以太币的代码也可以正常工作,例如https://github.com/PaulRBerg/contractz/blob/master/contracts/Escrow.sol#L42 (合同破坏,功能破坏)
我怎么了?
pragma solidity ^0.4.24;
contract SimpleContract {
function () public payable {
}
constructor() payable public {
}
function paybackEther() public {
selfdestruct(msg.sender);
}
}
合同地址为:0x0b5933fd3D33F7d79C0e19e12A070fafA053Df57 https://rinkeby.etherscan.io/address/0x0b5933fd3d33f7d79c0e19e12a070fafa053df57
您还可以在那里查看我的所有交易。我发布了代码。
预先感谢:)
答案 0 :(得分:0)
要调试此问题,请创建以下方法,然后查看返回的金额。我怀疑,该金额是否首先使您的余额剩下(或者您可能以wei而不是以太币发送金额)。
function getBalanceOfContract() public view returns (uint){
return address(this).balance;
}