Closed skosito closed 1 month ago
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 84.23%. Comparing base (
d40d2e2
) to head (36c6a2e
). Report is 1 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
in this PR for illustration its removed from execute and executeWithERC20 since same applies for this one as well.
You mean this is the opposite here? It is removed from the entrypoint functions, not the endpoint?
yes this was initial PR description, will update
Use case:
Call from zetachain to evm chain reaches
gatewayEVM.execute
function which is calling arbitrary function on provided contract. That arbitrary function can call back gateway, eg:gatewayEVM.call
gatewayEVM.depositAndCall
. Because bothexecute
andcall/depositAndCall
havenonReentrant
modifier, this is not possible currently.Solution can be to remove
nonReentrant
from either of those - it is better to remove from entrypoint functions since they do not interact with arbitrary contract, just interact with system contracts or addresses (eg. tss, custody, zrc20), and just emit events. On the other side, execute functions interact with arbitrary contracts so leaving it there makes more sense.Summary by CodeRabbit
New Features
Bug Fixes
These updates improve overall contract security and ensure safer handling of transactions.