Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix contract call reversion #709

Merged
merged 2 commits into from
Oct 8, 2024
Merged

Fix contract call reversion #709

merged 2 commits into from
Oct 8, 2024

Conversation

Nashtare
Copy link
Collaborator

@Nashtare Nashtare commented Oct 8, 2024

Contract creations mark a checkpoint prior deployment, but regular contract calls do not, which can cause discrepancies in final state tries upon reversion if the recipient does not have enough funds to send back the initial txn amount to the sender. This unfortunately wasn't caught with the original Eth test suite because TO targets were always funded enough at the start.

This added checkpoint now makes sure every transfers are being reverted, before sending the initial value back to the initial.

@praetoriansentry 3.5/5

@Nashtare Nashtare self-assigned this Oct 8, 2024
@github-actions github-actions bot added the crate: evm_arithmetization Anything related to the evm_arithmetization crate. label Oct 8, 2024
Copy link
Contributor

@LindaGuiga LindaGuiga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@Nashtare
Copy link
Collaborator Author

Nashtare commented Oct 8, 2024

I'll add a regression test covering this in the follow-up PR as it needs DDOS protection to run.

@Nashtare Nashtare merged commit 4c8035e into develop Oct 8, 2024
20 checks passed
@Nashtare Nashtare deleted the fix/call_call_revert_wtf branch October 8, 2024 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crate: evm_arithmetization Anything related to the evm_arithmetization crate.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants