首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用selfdestruct()时是否会发出事件?

调用selfdestruct()时是否会发出事件?
EN

Ethereum用户
提问于 2018-08-30 12:12:24
回答 2查看 137关注 0票数 1

合同调用自毁时是否会发出事件?

在下面的示例中,事件不会发出/记录:

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

contract Test {
    address owner;

    constructor() public {
        owner = msg.sender;
    }

    event dying(bool dead);

    function kill() public {
        selfdestruct(owner);
        emit dying(true);
    }
}
EN

回答 2

Ethereum用户

发布于 2018-08-30 12:15:19

我刚刚测试了它,事件就会被释放出来。请参见:

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

contract Test {
    address owner;

    constructor() public {
        owner = msg.sender;
    }

    event dying(bool dead);

    function kill() public {
        emit dying(true);
        selfdestruct(owner);
    }
}
票数 2
EN

Ethereum用户

发布于 2022-08-19 16:49:10

在实际调用“自毁”之前,您必须发出该事件。调用自毁时,契约代码将被删除,这就是不再发出事件的原因。

因此,只需更改代码的顺序,以便在最后一行进行自毁。

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

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

复制
相关文章

相似问题

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