-
Notifications
You must be signed in to change notification settings - Fork 330
feat(fork,bal): Adds basic Amsterdam fork setup and Block Access List support #1381
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
base: forks/amsterdam
Are you sure you want to change the base?
feat(fork,bal): Adds basic Amsterdam fork setup and Block Access List support #1381
Conversation
16ca33d
to
72cb7e0
Compare
…to RLP - System contracts (parent hash, beacon root) now use block_access_index 0 - Transactions use block_access_index 1 to len(transactions) - Post-execution changes use block_access_index len(transactions) + 1 - Migrated from SSZ to RLP encoding as per updated EIP-7928 spec - Updated all tests to match new API and structure - Replaced tx_index with block_access_index throughout codebase
Keep track of BAL index state in t8n as is done in the Osaka ``fork.py`` implementation.
- Bytes -> Bytes32 type for storage slots - Remove unused imports / fix imports / fix linting - Update function signatures to match tracker
The SSZ implementation is no longer needed as we are now using RLP
- If we send the full object over JSON, we can model_validate() on ESST. - If we send the hash, once we fill the pydantic model, we can get the rlp and the hash and validate that our objects match while only really validating the parts of the BAL we are interested in for each test.
Manually cherry-picked from e72991b Author: nerolation
f4047ce
to
39dcb41
Compare
ce4b394
to
a817b8e
Compare
a817b8e
to
a5c7b29
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #1381 +/- ##
===================================================
- Coverage 94.94% 90.01% -4.94%
===================================================
Files 583 637 +54
Lines 34665 38346 +3681
Branches 3070 3470 +400
===================================================
+ Hits 32914 34518 +1604
- Misses 1198 3267 +2069
- Partials 553 561 +8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
What was wrong?
This builds on #1338 but moves Block Access List (BAL) support to Amsterdam. I worked on this branch in conjunction with the EEST branch (ethereum/execution-spec-tests#2067) to get them talking to each other and they are currently working well. This is meant to be an initial implementation for BAL and for Amsterdam support in general. I fully expect that we will iterate on these changes as new PRs on top of
forks/amsterdam
.How was it fixed?
Notable updates from #1338:
Amsterdam
fork and moves BAL related logic into Amsterdam📣 Some notable changes for ease of review 📣
Some things to note since the PR is quite large (sorry for this):
ForkCriteria
is read by adding an index arg toUnscheduled
here. This leavesOsaka
with the default of0
and I configuredAmsterdam
with the next index here. This keeps the correct expected order when the forks are collected. Without this change theis_after_fork
logic starts to fall apart as "Amsterdam" comes before "Osaka" in the list.ruff.toml
for better readability if this list grows long.Cute Animal Picture