防止重入

问题描述 投票:0回答:1

在将外部交易发送到另一个合约之前更新状态变量是否很好,并且事件发射也很坚固以防止重入

我对 Solidity 中的重入预防感到非常困惑,在调用外部合约之前需要首先更新状态变量。事件的发射也在该外部调用之前或之后完成。 如果我们在外部调用之前这样做,那么外部调用会失败,但事件已经被触发。帮我解决这个问题。

blockchain solidity reentrancy
1个回答
0
投票

是的,始终建议在外部调用之前更新状态变量。在这里,检查 Checks-Effects-Interactions 模式以避免重入攻击。

关于事件,如果函数执行失败,则事件不会发出。所以,无需担心发生事件。

© www.soinside.com 2019 - 2024. All rights reserved.