首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内部函数的DelegateCall不存储变量

内部函数的DelegateCall不存储变量
EN

Ethereum用户
提问于 2019-02-13 07:47:40
回答 1查看 756关注 0票数 2

为什么委托调用不能运行内部函数?

自我定向委托调用与通常调用它的内部功能之一的合同之间有什么区别?

代码语言:javascript
复制
contract DelegateInternal {

    address public senderOne;
    address public senderTwo;

    function dellyCall() payable returns(uint256) {
        senderOne = msg.sender;
        this.delegatecall(bytes4(sha3('otherFunction()')));
    }

    // Not able to set this variable when this function is made internal
    function otherFunction()
    internal {
           senderTwo = msg.sender;

    }
}
EN

回答 1

Ethereum用户

回答已采纳

发布于 2019-02-13 15:53:36

功能是内部的。这意味着无法通过消息调用直接调用它,因为签名(在本例中为bytes4(sha3('otherFunction()')))不在函数表中。如果必须这样做,则必须公开一个公共函数,如果需要,还可以通过执行require(msg.sender == address(this))将其限制为自调用。

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

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

复制
相关文章

相似问题

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