Skip to content

Conversation

@meyer9
Copy link
Contributor

@meyer9 meyer9 commented Jan 7, 2026

Moves transaction processing logic of build_pending_state to a new struct. Also separates out reusing a cached execution from executing using the EVM.

This also removes block_hash from receipts and transactions which matches the spec and removes the need for calculating a useless block hash for every flashblock.

The next step is to move the for loop into this struct which will return an iterator of results.

Using this, we'll be able to prewarm accessed addresses using FALs and eventually process transactions in parallel. Moving execution to a new struct allows us to implement a trait for building flashblocks and switch out different implementations (prewarming, parallel, sequential).

@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Jan 7, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 2/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

@meyer9 meyer9 marked this pull request as draft January 7, 2026 23:55
@meyer9 meyer9 marked this pull request as ready for review January 7, 2026 23:55
Moves transaction processing logic of build_pending_state to a new
struct. Also separates out reusing a cached execution from executing
using the EVM.

This also removes block_hash from receipts and transactions which
matches the spec and removes the need for calculating a useless block
hash for every flashblock.

The next step is to move the for loop into this struct which will
return an iterator of results.

Using this, we'll be able to prewarm accessed addresses using FALs
and eventually process transactions in parallel. Moving execution to a
new struct allows us to implement a trait for building flashblocks and
switch out different implementations (prewarming, parallel,
sequential).
@meyer9 meyer9 force-pushed the meyer9/extract-transaction-execution branch from 658461f to bf20816 Compare January 8, 2026 00:09
Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

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

If we're going to refactor the pending logic into a struct, could we take the extra step and move it into a new module to try to make this code a bit easier to read?

@meyer9
Copy link
Contributor Author

meyer9 commented Jan 8, 2026

Yup, good idea! Made a few changes: moved the state builder it to a new state_builder module, passed tx reference to transact to avoid cloning, and removed touched_account_balances since that's duplicating EvmState that's already returned.

Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

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

Looks great thanks @meyer9

@refcell refcell merged commit a152be7 into main Jan 8, 2026
19 checks passed
@refcell refcell deleted the meyer9/extract-transaction-execution branch January 8, 2026 14:24
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.

5 participants