首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在什么情况下叫返回非零?

在什么情况下叫返回非零?
EN

Ethereum用户
提问于 2018-02-15 03:11:49
回答 1查看 120关注 0票数 1

阅读黄纸http://yellowpaper.io/文档以获取CALL

如果此操作的代码执行由于异常停止,Z(σ,,I) =>或若S>σb (资金不足)或Ie = 1024 (达到调用深度限制),则为x=1,则为x=1。

所有这些情况是否会导致异常并停止执行,从而阻止CALL返回?

就像投下一枚带有贺卡的核弹.没有用,因为贺卡已经过时了。

EN

回答 1

Ethereum用户

发布于 2018-02-15 08:01:26

所有这些情况是否会导致异常并停止执行,从而阻止调用返回?

它阻止被CALL编辑的代码继续运行,但它以零返回值(指示失败)将控制返回给调用者。

你可以在里米克斯试试:

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

contract Fail {
    function fail() public {
        revert();
    }
}

contract TestCall {
    Fail f = new Fail();

    // This will revert.
    function test1() public {
        f.fail();
    }

    // This transaction will succed, but the CALL returns 0.
    function test2() public {
        f.call(bytes4(keccak256("fail()")));
    }
}

哦,我想你把你的问题说反了,但是对“在什么情况下叫返回非零”的答案呢?是“呼叫成功的时候”

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

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

复制
相关文章

相似问题

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