chore: simplify prewarm state providers (#20469)

This commit is contained in:
DaniPopes
2025-12-17 19:11:11 -03:00
committed by GitHub
parent 9ae62aad26
commit 715ca5b980

View File

@@ -29,7 +29,7 @@ use metrics::{Counter, Gauge, Histogram};
use reth_evm::{execute::ExecutableTxFor, ConfigureEvm, Evm, EvmFor, SpecFor};
use reth_metrics::Metrics;
use reth_primitives_traits::NodePrimitives;
use reth_provider::{BlockReader, StateProviderBox, StateProviderFactory, StateReader};
use reth_provider::{BlockReader, StateProviderFactory, StateReader};
use reth_revm::{database::StateProviderDatabase, db::BundleState, state::EvmState};
use reth_trie::MultiProofTargets;
use std::{
@@ -391,7 +391,7 @@ where
mut precompile_cache_map,
} = self;
let state_provider = match provider.build() {
let mut state_provider = match provider.build() {
Ok(provider) => provider,
Err(err) => {
trace!(
@@ -404,17 +404,15 @@ where
};
// Use the caches to create a new provider with caching
let state_provider: StateProviderBox = if let Some(saved_cache) = saved_cache {
if let Some(saved_cache) = saved_cache {
let caches = saved_cache.cache().clone();
let cache_metrics = saved_cache.metrics().clone();
Box::new(
state_provider = Box::new(
CachedStateProvider::new(state_provider, caches, cache_metrics)
// ensure we pre-warm the cache
.prewarm(),
)
} else {
state_provider
};
);
}
let state_provider = StateProviderDatabase::new(state_provider);