diff --git a/crates/cli/commands/src/init_state/mod.rs b/crates/cli/commands/src/init_state/mod.rs index 4f0ae05d8b..76e7791e1d 100644 --- a/crates/cli/commands/src/init_state/mod.rs +++ b/crates/cli/commands/src/init_state/mod.rs @@ -1,6 +1,7 @@ //! Command that initializes the node from a genesis file. use crate::common::{AccessRights, CliNodeTypes, Environment, EnvironmentArgs}; +use alloy_consensus::Header; use alloy_primitives::{B256, U256}; use clap::Parser; use reth_chainspec::{EthChainSpec, EthereumHardforks}; @@ -102,6 +103,7 @@ impl> InitStateC &provider_rw, SealedHeader::new(header, header_hash), total_difficulty, + |number| Header { number, ..Default::default() }, )?; // SAFETY: it's safe to commit static files, since in the event of a crash, they diff --git a/crates/cli/commands/src/init_state/without_evm.rs b/crates/cli/commands/src/init_state/without_evm.rs index 9c8bfcfe96..c839aaf268 100644 --- a/crates/cli/commands/src/init_state/without_evm.rs +++ b/crates/cli/commands/src/init_state/without_evm.rs @@ -25,24 +25,26 @@ pub(crate) fn read_header_from_file(path: PathBuf) -> Result( +pub fn setup_without_evm( provider_rw: &Provider, header: SealedHeader<::BlockHeader>, total_difficulty: U256, + header_factory: F, ) -> ProviderResult<()> where - Provider: StaticFileProviderFactory> + Provider: StaticFileProviderFactory + StageCheckpointWriter + BlockWriter::Block>, + F: Fn(BlockNumber) -> ::BlockHeader + + Send + + Sync + + 'static, { info!(target: "reth::cli", new_tip = ?header.num_hash(), "Setting up dummy EVM chain before importing state."); let static_file_provider = provider_rw.static_file_provider(); // Write EVM dummy data up to `header - 1` block - append_dummy_chain(&static_file_provider, header.number() - 1, |number| Header { - number, - ..Default::default() - })?; + append_dummy_chain(&static_file_provider, header.number() - 1, header_factory)?; info!(target: "reth::cli", "Appending first valid block."); diff --git a/crates/optimism/cli/src/commands/init_state.rs b/crates/optimism/cli/src/commands/init_state.rs index 850f2b65bf..da574239d5 100644 --- a/crates/optimism/cli/src/commands/init_state.rs +++ b/crates/optimism/cli/src/commands/init_state.rs @@ -1,5 +1,6 @@ //! Command that initializes the node from a genesis file. +use alloy_consensus::Header; use clap::Parser; use reth_cli::chainspec::ChainSpecParser; use reth_cli_commands::common::{AccessRights, CliNodeTypes, Environment}; @@ -58,6 +59,7 @@ impl> InitStateCommandOp { &provider_rw, SealedHeader::new(BEDROCK_HEADER, BEDROCK_HEADER_HASH), BEDROCK_HEADER_TTD, + |number| Header { number, ..Default::default() }, )?; // SAFETY: it's safe to commit static files, since in the event of a crash, they