首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调度Aion调用时的气体估计错误

调度Aion调用时的气体估计错误
EN

Ethereum用户
提问于 2020-02-06 05:46:18
回答 1查看 149关注 0票数 0

我试图理解Aion scheduling system,所以我尝试了这里的代码示例。

下面是代码片段:

代码语言:javascript
复制
pragma solidity ^0.4.24;

// interface Aion
contract Aion {
    uint256 public serviceFee;
    function ScheduleCall(uint256 blocknumber, address to, uint256 value, uint256 gaslimit, uint256 gasprice, bytes data, bool schedType) public payable returns (uint,address);

}

// Main contract
contract MyContract{
    uint256 public sqrtValue;
    Aion aion;

    function schedule_rqsr(uint256 number) public {
        aion = Aion(0xFcFB45679539667f7ed55FA59A15c8Cad73d9a4E);
        bytes memory data = abi.encodeWithSelector(bytes4(keccak256('sqrt(uint256)')),number);
        uint callCost = 200000*1e9 + aion.serviceFee();
        aion.ScheduleCall.value(callCost)( block.number+15, address(this), 0, 200000, 1e9, data, false);
    }

    function sqrt(uint256 number) public {
        sqrtValue = number**2;
    }

    function () public payable {}

}

合同成功部署在ropsten地址0x91FDda60342d55B249A05083A5e9cB8102674D05

在启动函数schedule_rqsr时,我面临一个问题。当触发此函数时,我将面临“气体估计失败”的错误。

气体上限:3 000 000

在这里找到错误截图:

EN

回答 1

Ethereum用户

发布于 2020-09-01 19:10:38

通常情况下,当你被警告气体评估失败时,它只是一个警告。这意味着系统试图估计您应该提供多少气体(应该是gas limit),但是失败了。在这种情况下,您可能需要手动提供气体限制,只需发送事务。如果你提供足够大的汽油限制,一切都会很好。

气体估计可能由于各种原因而失败,但肯定会失败;这意味着,由于相同的契约和功能调用,每次都会失败。通常,契约具有过于复杂的内部逻辑或调用外部契约,这将导致评估失败。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/79655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档