【发布时间】:2018-01-14 06:59:45
【问题描述】:
我一直在查看 OpenZeppelin 的 Ownable 合约,遇到了以下方法:
/**
* @dev Allows the current owner to transfer control of the contract to a wOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
在这里,事件OwnershipTransferred 在实际所有者设置为新所有者之前被触发。 EVM 中的方法执行是否是原子的,从某种意义上说,事件只会在方法执行完成后才被触发?否则,我看到某些事件侦听器可能会在 EVM 尚未处于正确状态时对此事件采取行动。我不是 100% 相信这是安全可靠的。
【问题讨论】: