1

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

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

令人惊讶的是,我可以在 Mist 中看到一条警告消息“似乎此交易将失败。如果您提交它,它可能会消耗您发送的所有气体。” 这不取决于我提供的气体量。即使我投入了 500,000 的 gas,交易似乎也没有完成。

你可以在这里看到它的结果: https ://testnet.etherscan.io/tx/0x3206118530079d1b416dc649c6f0a89283f9457e9189f259b3429cf0c6a998d0

有消息

警告!合约执行过程中遇到错误【错误跳转目的地】

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

4

1 回答 1

2

Solidity 0.4 开始:

想要接收 Ether 的函数必须指定新的应付修饰符(否则它们会抛出)。

Athrow消耗所有气体,所以使用function t() payable returns (uint)

于 2016-11-27T00:05:50.933 回答