0

我试图将 Ether 存储在合同中并在调用函数 paypackEther() 时将其退还。在带有 JavaScript VM 的 Remix IDE 内部,它运行良好,但是当我在 Rinkeby 或 Ropsten 上使用 Mist 执行它时,我无法获得存储的以太。这让我疯了...

当使用 Mist 调用函数“paybackEther”时,输入数据只是“0x”(Etherscan 说)。我在多台计算机上尝试过,但结果保持不变,所以我很确定它必须对我的代码做些什么。

其他用于接收 Ether 的代码可以完美运行,例如https://github.com/PaulRBerg/contractz/blob/master/contracts/Escrow.sol#L42(Contract Destructible,fuction destroy)

我的错误是什么?

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

在那里你还可以看到我所有的交易。我发布了代码。

提前致谢 :)

4

1 回答 1

0

要调试此问题,可以创建以下方法并查看其返回的数量。我怀疑,如果金额一开始就离开了你的余额(或者你可能会用 wei 发送金额而不是用以太币发送)。

    function getBalanceOfContract() public view returns (uint){
       return address(this).balance;
    }
于 2018-12-11T16:11:51.583 回答