mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-08 03:01:12 -04:00
feat: change evm trait bound (#7463)
This commit is contained in:
5
Cargo.lock
generated
5
Cargo.lock
generated
@@ -6836,7 +6836,6 @@ dependencies = [
|
||||
"alloy-sol-types",
|
||||
"assert_matches",
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"derive_more",
|
||||
"dyn-clone",
|
||||
"futures",
|
||||
@@ -6851,13 +6850,11 @@ dependencies = [
|
||||
"rand 0.8.5",
|
||||
"reqwest",
|
||||
"reth-consensus-common",
|
||||
"reth-evm",
|
||||
"reth-interfaces",
|
||||
"reth-metrics",
|
||||
"reth-network",
|
||||
"reth-network-api",
|
||||
"reth-node-api",
|
||||
"reth-node-ethereum",
|
||||
"reth-node-optimism",
|
||||
"reth-primitives",
|
||||
"reth-provider",
|
||||
"reth-revm",
|
||||
|
||||
@@ -14,7 +14,7 @@ use clap::{
|
||||
};
|
||||
use rand::Rng;
|
||||
use reth_network_api::{NetworkInfo, Peers};
|
||||
use reth_node_api::{ConfigureEvmEnv, EngineTypes};
|
||||
use reth_node_api::{ConfigureEvm, EngineTypes};
|
||||
use reth_provider::{
|
||||
AccountReader, BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider, ChangeSetReader,
|
||||
EvmEnvProvider, HeaderProvider, StateProviderFactory,
|
||||
@@ -288,7 +288,7 @@ impl RpcServerArgs {
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
Events: CanonStateSubscriptions + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
reth_rpc_builder::launch(
|
||||
provider,
|
||||
@@ -328,7 +328,7 @@ impl RpcServerArgs {
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
EngineT: EngineTypes + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
let socket_address = SocketAddr::new(self.auth_addr, self.auth_port);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ use jsonrpsee::{
|
||||
Methods,
|
||||
};
|
||||
use reth_network_api::{NetworkInfo, Peers};
|
||||
use reth_node_api::{ConfigureEvmEnv, EngineTypes};
|
||||
use reth_node_api::{ConfigureEvm, EngineTypes};
|
||||
use reth_provider::{
|
||||
BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, HeaderProvider, ReceiptProviderIdExt,
|
||||
StateProviderFactory,
|
||||
@@ -60,7 +60,7 @@ where
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
EngineT: EngineTypes + 'static,
|
||||
EngineApi: EngineApiServer<EngineT>,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
// spawn a new cache task
|
||||
let eth_cache = EthStateCache::spawn_with(
|
||||
@@ -115,7 +115,7 @@ where
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
EngineT: EngineTypes + 'static,
|
||||
EngineApi: EngineApiServer<EngineT>,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
// Configure the module and start the server.
|
||||
let mut module = RpcModule::new(());
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
//!
|
||||
//! ```
|
||||
//! use reth_network_api::{NetworkInfo, Peers};
|
||||
//! use reth_node_api::ConfigureEvmEnv;
|
||||
//! use reth_node_api::ConfigureEvm;
|
||||
//! use reth_provider::{
|
||||
//! AccountReader, BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider,
|
||||
//! ChangeSetReader, EvmEnvProvider, StateProviderFactory,
|
||||
@@ -47,7 +47,7 @@
|
||||
//! Pool: TransactionPool + Clone + 'static,
|
||||
//! Network: NetworkInfo + Peers + Clone + 'static,
|
||||
//! Events: CanonStateSubscriptions + Clone + 'static,
|
||||
//! EvmConfig: ConfigureEvmEnv + 'static,
|
||||
//! EvmConfig: ConfigureEvm + 'static,
|
||||
//! {
|
||||
//! // configure the rpc module per transport
|
||||
//! let transports = TransportRpcModuleConfig::default().with_http(vec![
|
||||
@@ -78,7 +78,7 @@
|
||||
//!
|
||||
//! ```
|
||||
//! use reth_network_api::{NetworkInfo, Peers};
|
||||
//! use reth_node_api::{ConfigureEvmEnv, EngineTypes};
|
||||
//! use reth_node_api::{ConfigureEvm, EngineTypes};
|
||||
//! use reth_provider::{
|
||||
//! AccountReader, BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider,
|
||||
//! ChangeSetReader, EvmEnvProvider, StateProviderFactory,
|
||||
@@ -114,7 +114,7 @@
|
||||
//! Events: CanonStateSubscriptions + Clone + 'static,
|
||||
//! EngineApi: EngineApiServer<EngineT>,
|
||||
//! EngineT: EngineTypes + 'static,
|
||||
//! EvmConfig: ConfigureEvmEnv + 'static,
|
||||
//! EvmConfig: ConfigureEvm + 'static,
|
||||
//! {
|
||||
//! // configure the rpc module per transport
|
||||
//! let transports = TransportRpcModuleConfig::default().with_http(vec![
|
||||
@@ -169,7 +169,7 @@ use jsonrpsee::{
|
||||
use reth_ipc::server::IpcServer;
|
||||
pub use reth_ipc::server::{Builder as IpcServerBuilder, Endpoint};
|
||||
use reth_network_api::{noop::NoopNetwork, NetworkInfo, Peers};
|
||||
use reth_node_api::{ConfigureEvmEnv, EngineTypes};
|
||||
use reth_node_api::{ConfigureEvm, EngineTypes};
|
||||
use reth_provider::{
|
||||
AccountReader, BlockReader, BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider,
|
||||
ChangeSetReader, EvmEnvProvider, StateProviderFactory,
|
||||
@@ -251,7 +251,7 @@ where
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
Events: CanonStateSubscriptions + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
let module_config = module_config.into();
|
||||
let server_config = server_config.into();
|
||||
@@ -419,7 +419,7 @@ impl<Provider, Pool, Network, Tasks, Events, EvmConfig>
|
||||
evm_config: E,
|
||||
) -> RpcModuleBuilder<Provider, Pool, Network, Tasks, Events, E>
|
||||
where
|
||||
E: ConfigureEvmEnv + 'static,
|
||||
E: ConfigureEvm + 'static,
|
||||
{
|
||||
let Self { provider, pool, executor, network, events, .. } = self;
|
||||
RpcModuleBuilder { provider, network, pool, executor, events, evm_config }
|
||||
@@ -442,7 +442,7 @@ where
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
Events: CanonStateSubscriptions + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Configures all [RpcModule]s specific to the given [TransportRpcModuleConfig] which can be
|
||||
/// used to start the transport server(s).
|
||||
@@ -496,13 +496,13 @@ where
|
||||
///
|
||||
/// ```no_run
|
||||
/// use reth_network_api::noop::NoopNetwork;
|
||||
/// use reth_node_api::ConfigureEvmEnv;
|
||||
/// use reth_node_api::ConfigureEvm;
|
||||
/// use reth_provider::test_utils::{NoopProvider, TestCanonStateSubscriptions};
|
||||
/// use reth_rpc_builder::RpcModuleBuilder;
|
||||
/// use reth_tasks::TokioTaskExecutor;
|
||||
/// use reth_transaction_pool::noop::NoopTransactionPool;
|
||||
///
|
||||
/// fn init<Evm: ConfigureEvmEnv + 'static>(evm: Evm) {
|
||||
/// fn init<Evm: ConfigureEvm + 'static>(evm: Evm) {
|
||||
/// let mut registry = RpcModuleBuilder::default()
|
||||
/// .with_provider(NoopProvider::default())
|
||||
/// .with_pool(NoopTransactionPool::default())
|
||||
@@ -738,7 +738,7 @@ impl RpcModuleSelection {
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
Events: CanonStateSubscriptions + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
let mut registry =
|
||||
RethModuleRegistry::new(provider, pool, network, executor, events, config, evm_config);
|
||||
@@ -1060,7 +1060,7 @@ where
|
||||
Network: NetworkInfo + Peers + Clone + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
Events: CanonStateSubscriptions + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Register Eth Namespace
|
||||
///
|
||||
|
||||
@@ -20,14 +20,13 @@ reth-rpc-types.workspace = true
|
||||
reth-provider = { workspace = true, features = ["test-utils"] }
|
||||
reth-transaction-pool = { workspace = true, features = ["test-utils"] }
|
||||
reth-network-api.workspace = true
|
||||
reth-network.workspace = true
|
||||
reth-rpc-engine-api.workspace = true
|
||||
reth-revm = { workspace = true, features = ["js-tracer"] }
|
||||
reth-tasks = { workspace = true, features = ["rayon"] }
|
||||
reth-consensus-common.workspace = true
|
||||
reth-rpc-types-compat.workspace = true
|
||||
revm-inspectors.workspace = true
|
||||
reth-node-api.workspace = true
|
||||
reth-evm.workspace = true
|
||||
|
||||
# eth
|
||||
alloy-rlp.workspace = true
|
||||
@@ -66,7 +65,6 @@ reth-metrics.workspace = true
|
||||
metrics.workspace = true
|
||||
|
||||
# misc
|
||||
bytes.workspace = true
|
||||
secp256k1 = { workspace = true, features = [
|
||||
"global-context",
|
||||
"rand-std",
|
||||
@@ -84,12 +82,11 @@ derive_more.workspace = true
|
||||
dyn-clone.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
reth-node-ethereum.workspace = true
|
||||
jsonrpsee = { workspace = true, features = ["client"] }
|
||||
assert_matches.workspace = true
|
||||
tempfile.workspace = true
|
||||
reth-interfaces = { workspace = true, features = ["test-utils"] }
|
||||
reth-node-ethereum.workspace = true
|
||||
reth-node-optimism.workspace = true
|
||||
|
||||
[features]
|
||||
optimism = [
|
||||
@@ -97,6 +94,5 @@ optimism = [
|
||||
"reth-primitives/optimism",
|
||||
"reth-rpc-types-compat/optimism",
|
||||
"reth-network-api/optimism",
|
||||
"reth-network/optimism",
|
||||
"reth-provider/optimism",
|
||||
]
|
||||
|
||||
@@ -7,8 +7,8 @@ use crate::{
|
||||
},
|
||||
EthApi,
|
||||
};
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{BlockId, TransactionMeta};
|
||||
use reth_provider::{BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, StateProviderFactory};
|
||||
use reth_rpc_types::{AnyTransactionReceipt, Header, Index, RichBlock};
|
||||
@@ -22,7 +22,7 @@ where
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Pool: TransactionPool + Clone + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Returns the uncle headers of the given block
|
||||
///
|
||||
|
||||
@@ -12,8 +12,8 @@ use crate::{
|
||||
},
|
||||
EthApi,
|
||||
};
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{revm::env::tx_env_with_recovered, BlockId, BlockNumberOrTag, Bytes, U256};
|
||||
use reth_provider::{
|
||||
BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, StateProvider, StateProviderFactory,
|
||||
@@ -46,7 +46,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Estimate gas needed for execution of the `request` at the [BlockId].
|
||||
pub async fn estimate_gas_at(
|
||||
|
||||
@@ -7,8 +7,8 @@ use crate::{
|
||||
},
|
||||
EthApi,
|
||||
};
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{basefee::calculate_next_block_base_fee, BlockNumberOrTag, U256};
|
||||
use reth_provider::{BlockReaderIdExt, ChainSpecProvider, EvmEnvProvider, StateProviderFactory};
|
||||
use reth_rpc_types::FeeHistory;
|
||||
@@ -21,7 +21,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Returns a suggestion for a gas price for legacy transactions.
|
||||
///
|
||||
|
||||
@@ -13,9 +13,9 @@ use crate::eth::{
|
||||
};
|
||||
|
||||
use async_trait::async_trait;
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_interfaces::RethResult;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{
|
||||
revm_primitives::{BlockEnv, CfgEnvWithHandlerCfg},
|
||||
Address, BlockId, BlockNumberOrTag, ChainInfo, SealedBlockWithSenders, SealedHeader, B256,
|
||||
@@ -265,7 +265,7 @@ where
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Pool: TransactionPool + Clone + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + Clone + 'static,
|
||||
EvmConfig: ConfigureEvm + Clone + 'static,
|
||||
{
|
||||
/// Configures the [CfgEnvWithHandlerCfg] and [BlockEnv] for the pending block
|
||||
///
|
||||
@@ -381,7 +381,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Returns the current ethereum protocol version.
|
||||
///
|
||||
|
||||
@@ -11,8 +11,8 @@ use crate::{
|
||||
result::{internal_rpc_err, ToRpcResult},
|
||||
};
|
||||
use jsonrpsee::core::RpcResult as Result;
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{
|
||||
serde_helper::{num::U64HexOrNumber, JsonStorageKey},
|
||||
Address, BlockId, BlockNumberOrTag, Bytes, B256, B64, U256, U64,
|
||||
@@ -45,7 +45,7 @@ where
|
||||
+ EvmEnvProvider
|
||||
+ 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Handler for: `eth_protocolVersion`
|
||||
async fn protocol_version(&self) -> Result<U64> {
|
||||
|
||||
@@ -4,7 +4,7 @@ use crate::{
|
||||
eth::error::{EthApiError, EthResult, RpcInvalidTransactionError},
|
||||
EthApi,
|
||||
};
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_primitives::{
|
||||
serde_helper::JsonStorageKey, Address, BlockId, BlockNumberOrTag, Bytes, B256, U256,
|
||||
};
|
||||
@@ -21,7 +21,7 @@ where
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Pool: TransactionPool + Clone + 'static,
|
||||
Network: Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
pub(crate) fn get_code(&self, address: Address, block_id: Option<BlockId>) -> EthResult<Bytes> {
|
||||
Ok(self
|
||||
|
||||
@@ -9,8 +9,8 @@ use crate::{
|
||||
EthApi, EthApiSpec,
|
||||
};
|
||||
use async_trait::async_trait;
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_network_api::NetworkInfo;
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{
|
||||
eip4844::calc_blob_gasprice,
|
||||
revm::env::{fill_block_env_with_coinbase, tx_env_with_recovered},
|
||||
@@ -542,7 +542,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
fn transact<DB>(
|
||||
&self,
|
||||
@@ -1342,7 +1342,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Spawns the given closure on a new blocking tracing task
|
||||
async fn spawn_tracing_task_with<F, T>(&self, f: F) -> EthResult<T>
|
||||
@@ -1365,7 +1365,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
/// Returns the gas price if it is set, otherwise fetches a suggested gas price for legacy
|
||||
/// transactions.
|
||||
@@ -1550,7 +1550,7 @@ where
|
||||
Provider:
|
||||
BlockReaderIdExt + ChainSpecProvider + StateProviderFactory + EvmEnvProvider + 'static,
|
||||
Network: NetworkInfo + Send + Sync + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
pub(crate) fn sign_request(
|
||||
&self,
|
||||
|
||||
10
crates/rpc/rpc/src/eth/cache/mod.rs
vendored
10
crates/rpc/rpc/src/eth/cache/mod.rs
vendored
@@ -1,8 +1,8 @@
|
||||
//! Async caching support for eth RPC
|
||||
|
||||
use futures::{future::Either, Stream, StreamExt};
|
||||
use reth_evm::ConfigureEvm;
|
||||
use reth_interfaces::provider::{ProviderError, ProviderResult};
|
||||
use reth_node_api::ConfigureEvmEnv;
|
||||
use reth_primitives::{
|
||||
Block, BlockHashOrNumber, BlockWithSenders, Receipt, SealedBlock, SealedBlockWithSenders,
|
||||
TransactionSigned, TransactionSignedEcRecovered, B256,
|
||||
@@ -107,7 +107,7 @@ impl EthStateCache {
|
||||
) -> Self
|
||||
where
|
||||
Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
Self::spawn_with(provider, config, TokioTaskExecutor::default(), evm_config)
|
||||
}
|
||||
@@ -125,7 +125,7 @@ impl EthStateCache {
|
||||
where
|
||||
Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
let EthStateCacheConfig { max_blocks, max_receipts, max_envs, max_concurrent_db_requests } =
|
||||
config;
|
||||
@@ -316,7 +316,7 @@ impl<Provider, Tasks, EvmConfig> EthStateCacheService<Provider, Tasks, EvmConfig
|
||||
where
|
||||
Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
fn on_new_block(&mut self, block_hash: B256, res: ProviderResult<Option<BlockWithSenders>>) {
|
||||
if let Some(queued) = self.full_block_cache.remove(&block_hash) {
|
||||
@@ -403,7 +403,7 @@ impl<Provider, Tasks, EvmConfig> Future for EthStateCacheService<Provider, Tasks
|
||||
where
|
||||
Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static,
|
||||
Tasks: TaskSpawner + Clone + 'static,
|
||||
EvmConfig: ConfigureEvmEnv + 'static,
|
||||
EvmConfig: ConfigureEvm + 'static,
|
||||
{
|
||||
type Output = ();
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
|
||||
)]
|
||||
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
||||
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
||||
|
||||
mod admin;
|
||||
mod debug;
|
||||
|
||||
Reference in New Issue
Block a user