合同调用自毁时是否会发出事件?
在下面的示例中,事件不会发出/记录:
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);
}
}发布于 2018-08-30 12:15:19
我刚刚测试了它,事件就会被释放出来。请参见:
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);
}
}发布于 2022-08-19 16:49:10
在实际调用“自毁”之前,您必须发出该事件。调用自毁时,契约代码将被删除,这就是不再发出事件的原因。
因此,只需更改代码的顺序,以便在最后一行进行自毁。
https://ethereum.stackexchange.com/questions/57759
复制相似问题