Skip to content

Conversation

@petertdavies
Copy link
Contributor

🗒️ Description

This PR adds two new types for tracking state:

  • TxStateTracking: Tracks reads and writes that happened during a transaction.
  • BlockStateTracking: Tracks reads and writes that happened during a block.

BlockStateTracking should be convertible into a BAL. Most of the functions of the State object have superseded, it is still used to:

  1. Answer queries about the pre-state.
  2. Calculate the state root.
  3. Communicate state changes back to the caller.

A future PR should be replace it with a suitable interface to do those things.

Note: This PR is an early draft. All pre-Amsterdam forks are broken (need back-porting) and code cleanup is required. EIP-7610 is unimplemented.

Next steps

  • Rebase EIP-7928 on this branch and port to use state tracking objects.

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx tox -e static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.- [ ] All: Set appropriate labels for the changes (only maintainers can apply labels).

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

@petertdavies petertdavies added A-spec-specs Area: Specification—The Ethereum specification itself (eg. `src/ethereum/*`) C-feat Category: an improvement or new feature C-refactor Category: refactor labels Jan 22, 2026
@petertdavies petertdavies force-pushed the refactor-state branch 2 times, most recently from 8c455fe to bea89f0 Compare January 23, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-spec-specs Area: Specification—The Ethereum specification itself (eg. `src/ethereum/*`) C-feat Category: an improvement or new feature C-refactor Category: refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant