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

Throw on non-empty storage #7194

Merged
merged 9 commits into from
Jun 25, 2024
Merged

Throw on non-empty storage #7194

merged 9 commits into from
Jun 25, 2024

Conversation

flcl42
Copy link
Contributor

@flcl42 flcl42 commented Jun 19, 2024

Fixes some hive tests

Clarifications

The check is applied in two places: on top level - when we have a create contract transacation; in a CREATE/CREATE call.
On top level we should not expect storqage to be non zero because selfdestructed contract - so we don't need to clean up
When CREATE* call is executed we return due to collision and do not reach post-selfdestruct clean up
We revert in any case

Changes

  • Throw on non-empty storage according to EIP-7610
  • Save from metrics failures
  • Update tests

Types of changes

What types of changes does your code introduce?

  • Bugfix (a non-breaking change that fixes an issue)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (a change that causes existing functionality not to work as expected)
  • Optimization
  • Refactoring
  • Documentation update
  • Build-related changes
  • Other: Description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes, will add a bit later
  • No

Save from metrics failures
Update tests
@flcl42 flcl42 marked this pull request as ready for review June 21, 2024 15:51
@flcl42 flcl42 force-pushed the acc-collision-consensus branch from 1587578 to 1f96c33 Compare June 21, 2024 15:54
@flcl42 flcl42 requested a review from alexb5dh June 25, 2024 06:53
Copy link
Member

@benaadams benaadams left a comment

Choose a reason for hiding this comment

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

Does it need to be gated behind an eip7610 chianspec flag?

Also has test submodule changes in PR, not sure if you want those

@flcl42
Copy link
Contributor Author

flcl42 commented Jun 25, 2024

Does it need to be gated behind an eip7610 chianspec flag?

Rare case of retroactive application, starting from block 0

Also has test submodule changes in PR, not sure if you want those

Yup, it's an Ethereum tests update.

@flcl42 flcl42 merged commit 28ce1fe into master Jun 25, 2024
68 checks passed
@flcl42 flcl42 deleted the acc-collision-consensus branch June 25, 2024 07:59
@benaadams
Copy link
Member

Does it need to be gated behind an eip7610 chianspec flag?

Rare case of retroactive application, starting from block 0

Yeah but does it apply to every chain?

Could it cause consensus issue if we include it in next release but other EL's haven't included it yet?

@flcl42
Copy link
Contributor Author

flcl42 commented Jun 25, 2024

Does it need to be gated behind an eip7610 chianspec flag?

Rare case of retroactive application, starting from block 0

Yeah but does it apply to every chain?

Yes

Could it cause consensus issue if we include it in next release but other EL's haven't included it yet?

Should not, the case covers theoretically possible collision, that are not expected to happen in practice. And some clients already added it the same way

And if some custom chain would try to make use of just storage accounts, we would be aware of that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants