【问题标题】:Error sending value to Ethereum smart contract向以太坊智能合约发送价值时出错
【发布时间】:2017-04-06 15:54:24
【问题描述】:

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

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

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

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

有消息

警告!合约执行过程中遇到错误【Bad jump 目的地]

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

【问题讨论】:

    标签: blockchain ethereum solidity smartcontracts


    【解决方案1】:

    来自Solidity 0.4 onwards:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2021-07-22
      • 2021-02-24
      • 1970-01-01
      • 2021-07-26
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多