-
Notifications
You must be signed in to change notification settings - Fork 284
feat(witness): include access-list in witness #1258
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
Conversation
WalkthroughAdds preloading of access list entries into the execution witness for all transactions in a block. The change iterates through each transaction's AccessList entries and loads corresponding account balances and storage keys into the witness state before block processing begins. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds access-list preloading to the execution witness generation process to maintain compatibility with revm's eager loading behavior. Since revm always loads access-list entries even if they aren't used during execution, the witness must include these entries to match the behavior expected by l2geth.
- Preload all access-list addresses and storage slots into the witness before block processing
- Increment patch version from 14 to 15
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| params/version.go | Increments patch version to 15 to reflect the witness generation change |
| eth/api.go | Adds logic to iterate through all transactions and preload access-list entries (accounts and storage) into the witness before block processing |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1. Purpose or design rationale of this PR
During stateless execution, revm eagerly loads access list entries, even if they are not used during execution. To ensure compatibility with witnesses produced by l2geth, we explicitly add access list items in
debug_executionWitness.2. PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:
3. Deployment tag versioning
Has the version in
params/version.gobeen updated?4. Breaking change label
Does this PR have the
breaking-changelabel?Summary by CodeRabbit
Refactor
Chores
✏️ Tip: You can customize this high-level summary in your review settings.