【问题标题】:Solidity event triggering orderSolidity 事件触发顺序
【发布时间】: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% 相信这是安全可靠的。

【问题讨论】:

    标签: events ethereum solidity


    【解决方案1】:

    改变状态的函数被称为事务的一部分,就是这样。要么整个​​事务成功,要么整个事务失败。从外部观察者的角度来看(例如,某物正在监视一个事件),是的,事务是原子的。

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2016-06-03
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      相关资源
      最近更新 更多