From 3089ad9d64573bd2523979f5b1ab4e396418286c Mon Sep 17 00:00:00 2001 From: Femi Bankole Date: Sat, 3 May 2025 20:11:16 +0100 Subject: [PATCH] refactor: move FullRpcProvider trait to storage-api crate (#16056) --- crates/storage/provider/src/traits/full.rs | 32 +------------------ crates/storage/provider/src/traits/mod.rs | 2 +- crates/storage/storage-api/src/full.rs | 36 ++++++++++++++++++++++ crates/storage/storage-api/src/lib.rs | 3 ++ 4 files changed, 41 insertions(+), 32 deletions(-) create mode 100644 crates/storage/storage-api/src/full.rs diff --git a/crates/storage/provider/src/traits/full.rs b/crates/storage/provider/src/traits/full.rs index 5ec3f223de..fe5e167bf0 100644 --- a/crates/storage/provider/src/traits/full.rs +++ b/crates/storage/provider/src/traits/full.rs @@ -2,11 +2,9 @@ use crate::{ AccountReader, BlockReaderIdExt, ChainSpecProvider, ChangeSetReader, DatabaseProviderFactory, - HeaderProvider, StageCheckpointReader, StateProviderFactory, StaticFileProviderFactory, - TransactionsProvider, + StageCheckpointReader, StateProviderFactory, StaticFileProviderFactory, }; use reth_chain_state::{CanonStateSubscriptions, ForkChoiceSubscriptions}; -use reth_chainspec::EthereumHardforks; use reth_node_types::{BlockTy, HeaderTy, NodeTypesWithDB, ReceiptTy, TxTy}; use reth_storage_api::NodePrimitivesProvider; use std::fmt::Debug; @@ -57,31 +55,3 @@ impl FullProvider for T where + 'static { } - -/// Helper trait to unify all provider traits required to support `eth` RPC server behaviour, for -/// simplicity. -pub trait FullRpcProvider: - StateProviderFactory - + ChainSpecProvider - + BlockReaderIdExt - + HeaderProvider - + TransactionsProvider - + StageCheckpointReader - + Clone - + Unpin - + 'static -{ -} - -impl FullRpcProvider for T where - T: StateProviderFactory - + ChainSpecProvider - + BlockReaderIdExt - + HeaderProvider - + TransactionsProvider - + StageCheckpointReader - + Clone - + Unpin - + 'static -{ -} diff --git a/crates/storage/provider/src/traits/mod.rs b/crates/storage/provider/src/traits/mod.rs index c0c8ae4814..2837a4505f 100644 --- a/crates/storage/provider/src/traits/mod.rs +++ b/crates/storage/provider/src/traits/mod.rs @@ -9,4 +9,4 @@ mod static_file_provider; pub use static_file_provider::StaticFileProviderFactory; mod full; -pub use full::{FullProvider, FullRpcProvider}; +pub use full::FullProvider; diff --git a/crates/storage/storage-api/src/full.rs b/crates/storage/storage-api/src/full.rs new file mode 100644 index 0000000000..8ac79ce2d3 --- /dev/null +++ b/crates/storage/storage-api/src/full.rs @@ -0,0 +1,36 @@ +//! Helper trait for full rpc provider + +use reth_chainspec::{ChainSpecProvider, EthereumHardforks}; + +use crate::{ + BlockReaderIdExt, HeaderProvider, StageCheckpointReader, StateProviderFactory, + TransactionsProvider, +}; + +/// Helper trait to unify all provider traits required to support `eth` RPC server behaviour, for +/// simplicity. +pub trait FullRpcProvider: + StateProviderFactory + + ChainSpecProvider + + BlockReaderIdExt + + HeaderProvider + + TransactionsProvider + + StageCheckpointReader + + Clone + + Unpin + + 'static +{ +} + +impl FullRpcProvider for T where + T: StateProviderFactory + + ChainSpecProvider + + BlockReaderIdExt + + HeaderProvider + + TransactionsProvider + + StageCheckpointReader + + Clone + + Unpin + + 'static +{ +} diff --git a/crates/storage/storage-api/src/lib.rs b/crates/storage/storage-api/src/lib.rs index 6ecc1fa45d..c6505c5ae1 100644 --- a/crates/storage/storage-api/src/lib.rs +++ b/crates/storage/storage-api/src/lib.rs @@ -102,3 +102,6 @@ pub use state_writer::*; mod header_sync_gap; pub use header_sync_gap::HeaderSyncGapProvider; + +mod full; +pub use full::*;