refactor(evm): simplify Backend::initialize and CowBackend::backend_mut#13755
Open
figtracer wants to merge 1 commit intofoundry-rs:masterfrom
Open
refactor(evm): simplify Backend::initialize and CowBackend::backend_mut#13755figtracer wants to merge 1 commit intofoundry-rs:masterfrom
Backend::initialize and CowBackend::backend_mut#13755figtracer wants to merge 1 commit intofoundry-rs:masterfrom
Conversation
Backend::initialize and CowBackend::backend_mut
…d_mut` `initialize` now takes `(SpecId, Address, TxKind)` instead of `&Env`, since those are the only fields it reads. This removes the need for `backend_mut` to clone `EvmEnv` — it only needs `&TxEnv` now, because the `SpecId` already comes from `self.spec_id`. Moves towards aligning with alloy-evm's BlockExecutor ownership model where `EvmEnv` is block-scoped and `TxEnv` is tx-scoped.
d33186a to
717297d
Compare
mablr
reviewed
Mar 14, 2026
Contributor
mablr
left a comment
There was a problem hiding this comment.
I'm supportive for this because it removes evm_env/tx_env requirement just to get mutable backend, which probably unlocks further simplifications (eg. on roll fork methods)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Backend::initializenow takes(SpecId, Address, TxKind)instead of&Env, removing the need to construct a fullEnvjust to extract three fieldsCowBackendreplacesspec_id: Option<SpecId>withpending_init: Option<(SpecId, Address, TxKind)>, capturing all init params upfront ininspectCowBackend::backend_mut()becomes zero-arg — no longer needs(evm_env, tx_env)passed through everyDatabaseExtmethod call