向以太坊智能合约发送价值时出错

时间:2016-11-22 20:21:33

标签: blockchain ethereum solidity smartcontracts

我有1.5.2并使用Mist-linux64-0-8-7在testnet上工作。当我尝试通过调用任何函数向我的合同发送一些以太(值)时,我遇到了一个简单的问题。 例如,即使这个虚函数也不能用于非零值,但通常在零值下工作:

function t() returns (uint){
    return 1;
}

这里有什么令人惊讶的,我可以在Mist中看到一条警告,上面写着“看来此交易会失败。如果你提交,它可能会消耗你发送的所有气体。” 这不取决于我提供的气体量。 即使我放了500,000个气体,交易似乎也没有完成。

您可以在此处查看其结果: https://testnet.etherscan.io/tx/0x3206118530079d1b416dc649c6f0a89283f9457e9189f259b3429cf0c6a998d0

有消息

  

警告!合同执行过程中遇到错误[跳转错误   目的地]

我尝试在不同的合同中运行不同的功能。我甚至使用sendTransaction功能直接从geth控制台执行相同操作,但我仍然无法使其工作。 我没有发现是否有人有类似的问题。如果您有任何想法,请帮助我。

1 个答案:

答案 0 :(得分:2)

来自Solidity 0.4 onwards:

  

想要接收以太网的功能必须指定新的应付款   修饰符(否则抛出)。

throw consumes all gas,请使用function t() payable returns (uint)