Skip to content

Commit 8fece37

Browse files
committed
remove unnecessary StateProviderFactories enum
1 parent 16e786f commit 8fece37

File tree

3 files changed

+21
-99
lines changed

3 files changed

+21
-99
lines changed

crates/rbuilder/src/live_builder/base_config.rs

+1-14
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::{
55
live_builder::{order_input::OrderInputConfig, LiveBuilder},
66
provider::{
77
ipc_state_provider::{IpcProviderConfig, IpcStateProviderFactory},
8-
StateProviderFactories, StateProviderFactory,
8+
StateProviderFactory,
99
},
1010
roothash::RootHashContext,
1111
telemetry::{setup_reloadable_tracing_subscriber, LoggerConfig},
@@ -309,19 +309,6 @@ impl BaseConfig {
309309
))
310310
}
311311

312-
pub fn create_provider_factory_from_config(
313-
&self,
314-
skip_root_hash: bool,
315-
) -> eyre::Result<StateProviderFactories> {
316-
if self.ipc_provider.is_some() {
317-
self.create_ipc_provider_factory()
318-
.map(StateProviderFactories::Ipc)
319-
} else {
320-
self.create_reth_provider_factory(skip_root_hash)
321-
.map(StateProviderFactories::Reth)
322-
}
323-
}
324-
325312
/// live_root_hash_config creates a root hash thread pool
326313
/// so it should be called once on the startup and cloned if needed
327314
pub fn live_root_hash_config(&self) -> eyre::Result<RootHashContext> {

crates/rbuilder/src/live_builder/cli.rs

+19-6
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ where
107107
let config: ConfigType = load_config_toml_and_env(cli.config)?;
108108
config.base_config().setup_tracing_subscriber()?;
109109

110-
let cancel = CancellationToken::new();
111-
112110
// Spawn redacted server that is safe for tdx builders to expose
113111
telemetry::servers::redacted::spawn(config.base_config().redacted_telemetry_server_address())
114112
.await?;
@@ -120,9 +118,25 @@ where
120118
config.base_config().log_enable_dynamic,
121119
)
122120
.await?;
123-
let provider = config
124-
.base_config()
125-
.create_provider_factory_from_config(false)?;
121+
if config.base_config().ipc_provider.is_some() {
122+
let provider = config.base_config().create_ipc_provider_factory()?;
123+
run_builder(provider, config, on_run).await
124+
} else {
125+
let provider = config.base_config().create_reth_provider_factory(false)?;
126+
run_builder(provider, config, on_run).await
127+
}
128+
}
129+
130+
async fn run_builder<P, ConfigType>(
131+
provider: P,
132+
config: ConfigType,
133+
on_run: Option<fn()>,
134+
) -> eyre::Result<()>
135+
where
136+
ConfigType: LiveBuilderConfig,
137+
P: StateProviderFactory + Clone + 'static,
138+
{
139+
let cancel = CancellationToken::new();
126140
let builder = config.new_builder(provider, cancel.clone()).await?;
127141

128142
let ctrlc = tokio::spawn(async move {
@@ -133,7 +147,6 @@ where
133147
on_run();
134148
}
135149
builder.run().await?;
136-
137150
ctrlc.await.unwrap_or_default();
138151
Ok(())
139152
}

crates/rbuilder/src/provider/mod.rs

+1-79
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
use std::sync::Arc;
2-
1+
use crate::live_builder::simulation::SimulatedOrderCommand;
32
use crate::roothash::RootHashError;
4-
use crate::{live_builder::simulation::SimulatedOrderCommand, utils::ProviderFactoryReopener};
53
use alloy_consensus::Header;
64
use alloy_eips::BlockNumHash;
75
use alloy_primitives::{BlockHash, BlockNumber, B256};
8-
use ipc_state_provider::IpcStateProviderFactory;
96
use reth::providers::ExecutionOutcome;
10-
use reth_db::DatabaseEnv;
117
use reth_errors::ProviderResult;
12-
use reth_node_api::NodeTypesWithDBAdapter;
13-
use reth_node_ethereum::EthereumNode;
148
use reth_provider::StateProviderBox;
159
use tokio::sync::broadcast;
1610
use tokio_util::sync::CancellationToken;
@@ -58,75 +52,3 @@ pub trait RootHasher: std::fmt::Debug + Send + Sync {
5852
/// State root for changes outcome on top of parent block.
5953
fn state_root(&self, outcome: &ExecutionOutcome) -> Result<B256, RootHashError>;
6054
}
61-
62-
/// All supported state provider factories
63-
#[derive(Clone)]
64-
pub enum StateProviderFactories {
65-
Reth(ProviderFactoryReopener<NodeTypesWithDBAdapter<EthereumNode, Arc<DatabaseEnv>>>),
66-
Ipc(IpcStateProviderFactory),
67-
}
68-
69-
impl StateProviderFactory for StateProviderFactories {
70-
fn latest(&self) -> ProviderResult<StateProviderBox> {
71-
match self {
72-
StateProviderFactories::Reth(factory) => factory.latest(),
73-
StateProviderFactories::Ipc(factory) => factory.latest(),
74-
}
75-
}
76-
77-
fn history_by_block_number(&self, block: BlockNumber) -> ProviderResult<StateProviderBox> {
78-
match self {
79-
StateProviderFactories::Reth(factory) => factory.history_by_block_number(block),
80-
StateProviderFactories::Ipc(factory) => factory.history_by_block_number(block),
81-
}
82-
}
83-
84-
fn history_by_block_hash(&self, block: BlockHash) -> ProviderResult<StateProviderBox> {
85-
match self {
86-
StateProviderFactories::Reth(factory) => factory.history_by_block_hash(block),
87-
StateProviderFactories::Ipc(factory) => factory.history_by_block_hash(block),
88-
}
89-
}
90-
91-
fn header(&self, block_hash: &BlockHash) -> ProviderResult<Option<Header>> {
92-
match self {
93-
StateProviderFactories::Reth(factory) => factory.header(block_hash),
94-
StateProviderFactories::Ipc(factory) => factory.header(block_hash),
95-
}
96-
}
97-
98-
fn block_hash(&self, number: BlockNumber) -> ProviderResult<Option<B256>> {
99-
match self {
100-
StateProviderFactories::Reth(factory) => factory.block_hash(number),
101-
StateProviderFactories::Ipc(factory) => factory.block_hash(number),
102-
}
103-
}
104-
105-
fn best_block_number(&self) -> ProviderResult<BlockNumber> {
106-
match self {
107-
StateProviderFactories::Reth(factory) => factory.best_block_number(),
108-
StateProviderFactories::Ipc(factory) => factory.best_block_number(),
109-
}
110-
}
111-
112-
fn header_by_number(&self, num: u64) -> ProviderResult<Option<Header>> {
113-
match self {
114-
StateProviderFactories::Reth(factory) => factory.header_by_number(num),
115-
StateProviderFactories::Ipc(factory) => factory.header_by_number(num),
116-
}
117-
}
118-
119-
fn last_block_number(&self) -> ProviderResult<BlockNumber> {
120-
match self {
121-
StateProviderFactories::Reth(factory) => factory.last_block_number(),
122-
StateProviderFactories::Ipc(factory) => factory.last_block_number(),
123-
}
124-
}
125-
126-
fn root_hasher(&self, parent_num_hash: BlockNumHash) -> ProviderResult<Box<dyn RootHasher>> {
127-
match self {
128-
StateProviderFactories::Reth(factory) => factory.root_hasher(parent_num_hash),
129-
StateProviderFactories::Ipc(factory) => factory.root_hasher(parent_num_hash),
130-
}
131-
}
132-
}

0 commit comments

Comments
 (0)