在将外部交易发送到另一个合约之前更新状态变量是否很好,并且事件发射也很坚固以防止重入
我对 Solidity 中的重入预防感到非常困惑,在调用外部合约之前需要首先更新状态变量。事件的发射也在该外部调用之前或之后完成。 如果我们在外部调用之前这样做,那么外部调用会失败,但事件已经被触发。帮我解决这个问题。
是的,始终建议在外部调用之前更新状态变量。在这里,检查 Checks-Effects-Interactions 模式以避免重入攻击。
关于事件,如果函数执行失败,则事件不会发出。所以,无需担心发生事件。