I'm interested to know; I received advice that emit event should be called before erc20 safeTransfer in my contract because of a possible re-entrancy attack. The offending code:
\\ checks
\\ effects
ERC20.safeTransfer(to, amount);
emit Rewarded(to, amount);
should be changed to:
\\ checks
\\ effects
emit Rewarded(to, amount);
ERC20.safeTransfer(to, amount);
I've never heard of event emitting after an erc20 transfer to be a potential security concern. Can anyone enlighten me?