From 054f30f43c943999abcb438f8ba51771b72f4472 Mon Sep 17 00:00:00 2001 From: joshieDo <93316087+joshieDo@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:13:45 +0100 Subject: [PATCH] chore: rename `Block*Provider` for `Block*Reader` (#3385) --- bin/reth/src/args/rpc_server_args.rs | 9 ++++---- bin/reth/src/node/mod.rs | 6 +++--- crates/blockchain-tree/src/blockchain_tree.rs | 5 ++--- crates/consensus/auto-seal/src/lib.rs | 4 ++-- crates/consensus/beacon/src/engine/mod.rs | 8 +++---- crates/net/network/src/config.rs | 4 ++-- crates/net/network/src/eth_requests.rs | 6 +++--- crates/net/network/src/lib.rs | 2 +- crates/net/network/src/manager.rs | 6 +++--- crates/net/network/src/state.rs | 4 ++-- crates/net/network/src/swarm.rs | 6 +++--- crates/net/network/src/test_utils/testnet.rs | 14 ++++++------- crates/payload/basic/src/lib.rs | 4 ++-- crates/revm/src/executor.rs | 4 ++-- crates/rpc/rpc-builder/src/auth.rs | 6 +++--- crates/rpc/rpc-builder/src/lib.rs | 21 +++++++++---------- crates/rpc/rpc-engine-api/src/engine_api.rs | 6 +++--- crates/rpc/rpc/src/debug.rs | 6 +++--- crates/rpc/rpc/src/eth/api/block.rs | 4 ++-- crates/rpc/rpc/src/eth/api/call.rs | 4 ++-- crates/rpc/rpc/src/eth/api/fees.rs | 4 ++-- crates/rpc/rpc/src/eth/api/mod.rs | 8 +++---- crates/rpc/rpc/src/eth/api/server.rs | 8 +++---- crates/rpc/rpc/src/eth/api/state.rs | 4 ++-- crates/rpc/rpc/src/eth/api/transactions.rs | 6 +++--- crates/rpc/rpc/src/eth/cache.rs | 10 ++++----- crates/rpc/rpc/src/eth/filter.rs | 8 +++---- crates/rpc/rpc/src/eth/gas_oracle.rs | 4 ++-- crates/rpc/rpc/src/eth/pubsub.rs | 10 ++++----- crates/rpc/rpc/src/trace.rs | 6 +++--- crates/stages/src/stages/execution.rs | 2 +- crates/stages/src/stages/headers.rs | 2 +- crates/storage/provider/src/lib.rs | 16 +++++++------- .../provider/src/providers/database/mod.rs | 17 +++++++-------- .../src/providers/database/provider.rs | 14 ++++++------- crates/storage/provider/src/providers/mod.rs | 16 +++++++------- .../src/providers/post_state_provider.rs | 4 ++-- .../src/providers/state/historical.rs | 4 ++-- .../provider/src/providers/state/latest.rs | 4 ++-- .../provider/src/providers/state/macros.rs | 4 ++-- .../storage/provider/src/test_utils/mock.rs | 18 ++++++++-------- .../storage/provider/src/test_utils/noop.rs | 18 ++++++++-------- crates/storage/provider/src/traits/block.rs | 18 ++++++++-------- .../storage/provider/src/traits/block_hash.rs | 2 +- .../storage/provider/src/traits/block_id.rs | 8 +++---- crates/storage/provider/src/traits/mod.rs | 6 +++--- .../storage/provider/src/traits/receipts.rs | 8 +++---- crates/storage/provider/src/traits/state.rs | 8 +++---- .../provider/src/traits/transactions.rs | 4 ++-- crates/transaction-pool/src/maintain.rs | 6 +++--- docs/crates/discv4.md | 4 ++-- docs/crates/network.md | 2 +- 52 files changed, 188 insertions(+), 194 deletions(-) diff --git a/bin/reth/src/args/rpc_server_args.rs b/bin/reth/src/args/rpc_server_args.rs index b7e7e2b8e..8a6d9162f 100644 --- a/bin/reth/src/args/rpc_server_args.rs +++ b/bin/reth/src/args/rpc_server_args.rs @@ -8,8 +8,7 @@ use clap::{ use futures::{FutureExt, TryFutureExt}; use reth_network_api::{NetworkInfo, Peers}; use reth_provider::{ - BlockProviderIdExt, CanonStateSubscriptions, EvmEnvProvider, HeaderProvider, - StateProviderFactory, + BlockReaderIdExt, CanonStateSubscriptions, EvmEnvProvider, HeaderProvider, StateProviderFactory, }; use reth_rpc::{ eth::{ @@ -248,7 +247,7 @@ impl RpcServerArgs { jwt_secret: JwtSecret, ) -> Result<(RpcServerHandle, AuthServerHandle), RpcError> where - Provider: BlockProviderIdExt + Provider: BlockReaderIdExt + HeaderProvider + StateProviderFactory + EvmEnvProvider @@ -306,7 +305,7 @@ impl RpcServerArgs { events: Events, ) -> Result where - Provider: BlockProviderIdExt + Provider: BlockReaderIdExt + HeaderProvider + StateProviderFactory + EvmEnvProvider @@ -341,7 +340,7 @@ impl RpcServerArgs { jwt_secret: JwtSecret, ) -> Result where - Provider: BlockProviderIdExt + Provider: BlockReaderIdExt + HeaderProvider + StateProviderFactory + EvmEnvProvider diff --git a/bin/reth/src/node/mod.rs b/bin/reth/src/node/mod.rs index 3ee507720..02c160f3a 100644 --- a/bin/reth/src/node/mod.rs +++ b/bin/reth/src/node/mod.rs @@ -41,7 +41,7 @@ use reth_network::{error::NetworkError, NetworkConfig, NetworkHandle, NetworkMan use reth_network_api::NetworkInfo; use reth_primitives::{stage::StageId, BlockHashOrNumber, ChainSpec, Head, SealedHeader, H256}; use reth_provider::{ - BlockHashProvider, BlockProvider, CanonStateSubscriptions, HeaderProvider, ProviderFactory, + BlockHashReader, BlockReader, CanonStateSubscriptions, HeaderProvider, ProviderFactory, StageCheckpointReader, }; use reth_revm::Factory; @@ -498,7 +498,7 @@ impl Command { default_peers_path: PathBuf, ) -> Result where - C: BlockProvider + HeaderProvider + Clone + Unpin + 'static, + C: BlockReader + HeaderProvider + Clone + Unpin + 'static, Pool: TransactionPool + Unpin + 'static, { let client = config.client.clone(); @@ -725,7 +725,7 @@ async fn run_network_until_shutdown( network: NetworkManager, persistent_peers_file: Option, ) where - C: BlockProvider + HeaderProvider + Clone + Unpin + 'static, + C: BlockReader + HeaderProvider + Clone + Unpin + 'static, { pin_mut!(network, shutdown); diff --git a/crates/blockchain-tree/src/blockchain_tree.rs b/crates/blockchain-tree/src/blockchain_tree.rs index 68b7d02c7..920e5ddb0 100644 --- a/crates/blockchain-tree/src/blockchain_tree.rs +++ b/crates/blockchain-tree/src/blockchain_tree.rs @@ -22,9 +22,8 @@ use reth_primitives::{ use reth_provider::{ chain::{ChainSplit, SplitAt}, post_state::PostState, - BlockNumProvider, CanonStateNotification, CanonStateNotificationSender, - CanonStateNotifications, Chain, DatabaseProvider, DisplayBlocksChain, ExecutorFactory, - HeaderProvider, + BlockNumReader, CanonStateNotification, CanonStateNotificationSender, CanonStateNotifications, + Chain, DatabaseProvider, DisplayBlocksChain, ExecutorFactory, HeaderProvider, }; use std::{ collections::{BTreeMap, HashMap}, diff --git a/crates/consensus/auto-seal/src/lib.rs b/crates/consensus/auto-seal/src/lib.rs index 2d6d66da7..54b583457 100644 --- a/crates/consensus/auto-seal/src/lib.rs +++ b/crates/consensus/auto-seal/src/lib.rs @@ -20,7 +20,7 @@ use reth_primitives::{ BlockBody, BlockHash, BlockHashOrNumber, BlockNumber, ChainSpec, Header, SealedBlock, SealedHeader, H256, U256, }; -use reth_provider::{BlockProviderIdExt, CanonStateNotificationSender}; +use reth_provider::{BlockReaderIdExt, CanonStateNotificationSender}; use reth_transaction_pool::TransactionPool; use std::{collections::HashMap, sync::Arc}; use tokio::sync::{mpsc::UnboundedSender, RwLock, RwLockReadGuard, RwLockWriteGuard}; @@ -90,7 +90,7 @@ pub struct AutoSealBuilder { impl AutoSealBuilder where - Client: BlockProviderIdExt, + Client: BlockReaderIdExt, { /// Creates a new builder instance to configure all parts. pub fn new( diff --git a/crates/consensus/beacon/src/engine/mod.rs b/crates/consensus/beacon/src/engine/mod.rs index f206229c0..fd7a90047 100644 --- a/crates/consensus/beacon/src/engine/mod.rs +++ b/crates/consensus/beacon/src/engine/mod.rs @@ -21,7 +21,7 @@ use reth_primitives::{ H256, U256, }; use reth_provider::{ - BlockProvider, BlockSource, CanonChainTracker, ProviderError, StageCheckpointReader, + BlockReader, BlockSource, CanonChainTracker, ProviderError, StageCheckpointReader, }; use reth_rpc_types::engine::{ ExecutionPayload, ForkchoiceUpdated, PayloadAttributes, PayloadStatus, PayloadStatusEnum, @@ -217,7 +217,7 @@ pub struct BeaconConsensusEngine where DB: Database, Client: HeadersClient + BodiesClient, - BT: BlockchainTreeEngine + BlockProvider + CanonChainTracker + StageCheckpointReader, + BT: BlockchainTreeEngine + BlockReader + CanonChainTracker + StageCheckpointReader, { /// Controls syncing triggered by engine updates. sync: EngineSyncController, @@ -257,7 +257,7 @@ where impl BeaconConsensusEngine where DB: Database + Unpin + 'static, - BT: BlockchainTreeEngine + BlockProvider + CanonChainTracker + StageCheckpointReader + 'static, + BT: BlockchainTreeEngine + BlockReader + CanonChainTracker + StageCheckpointReader + 'static, Client: HeadersClient + BodiesClient + Clone + Unpin + 'static, { /// Create a new instance of the [BeaconConsensusEngine]. @@ -1288,7 +1288,7 @@ where DB: Database + Unpin + 'static, Client: HeadersClient + BodiesClient + Clone + Unpin + 'static, BT: BlockchainTreeEngine - + BlockProvider + + BlockReader + CanonChainTracker + StageCheckpointReader + Unpin diff --git a/crates/net/network/src/config.rs b/crates/net/network/src/config.rs index 9cd2dd584..dbfc57087 100644 --- a/crates/net/network/src/config.rs +++ b/crates/net/network/src/config.rs @@ -12,7 +12,7 @@ use reth_dns_discovery::DnsDiscoveryConfig; use reth_ecies::util::pk2id; use reth_eth_wire::{HelloMessage, Status}; use reth_primitives::{ChainSpec, ForkFilter, Head, NodeRecord, PeerId, MAINNET}; -use reth_provider::{BlockProvider, HeaderProvider}; +use reth_provider::{BlockReader, HeaderProvider}; use reth_tasks::{TaskSpawner, TokioTaskExecutor}; use secp256k1::SECP256K1; use std::{ @@ -97,7 +97,7 @@ impl NetworkConfig { impl NetworkConfig where - C: BlockProvider + HeaderProvider + Clone + Unpin + 'static, + C: BlockReader + HeaderProvider + Clone + Unpin + 'static, { /// Starts the networking stack given a [NetworkConfig] and returns a handle to the network. pub async fn start_network(self) -> Result { diff --git a/crates/net/network/src/eth_requests.rs b/crates/net/network/src/eth_requests.rs index 7216a5cf3..09fc31129 100644 --- a/crates/net/network/src/eth_requests.rs +++ b/crates/net/network/src/eth_requests.rs @@ -8,7 +8,7 @@ use reth_eth_wire::{ }; use reth_interfaces::p2p::error::RequestResult; use reth_primitives::{BlockBody, BlockHashOrNumber, Header, HeadersDirection, PeerId}; -use reth_provider::{BlockProvider, HeaderProvider}; +use reth_provider::{BlockReader, HeaderProvider}; use std::{ borrow::Borrow, future::Future, @@ -70,7 +70,7 @@ impl EthRequestHandler { impl EthRequestHandler where - C: BlockProvider + HeaderProvider, + C: BlockReader + HeaderProvider, { /// Returns the list of requested headers fn get_headers_response(&self, request: GetBlockHeaders) -> Vec
{ @@ -190,7 +190,7 @@ where /// This should be spawned or used as part of `tokio::select!`. impl Future for EthRequestHandler where - C: BlockProvider + HeaderProvider + Unpin, + C: BlockReader + HeaderProvider + Unpin, { type Output = (); diff --git a/crates/net/network/src/lib.rs b/crates/net/network/src/lib.rs index acf5f4084..35d6dac79 100644 --- a/crates/net/network/src/lib.rs +++ b/crates/net/network/src/lib.rs @@ -50,7 +50,7 @@ //! ### Configure and launch a standalone network //! //! The [`NetworkConfig`] is used to configure the network. -//! It requires an instance of [`BlockProvider`](reth_provider::BlockProvider). +//! It requires an instance of [`BlockReader`](reth_provider::BlockReader). //! //! ``` //! # async fn launch() { diff --git a/crates/net/network/src/manager.rs b/crates/net/network/src/manager.rs index 8a70a9507..0a997d85a 100644 --- a/crates/net/network/src/manager.rs +++ b/crates/net/network/src/manager.rs @@ -42,7 +42,7 @@ use reth_metrics::common::mpsc::UnboundedMeteredSender; use reth_net_common::bandwidth_meter::BandwidthMeter; use reth_network_api::ReputationChangeKind; use reth_primitives::{listener::EventListeners, NodeRecord, PeerId, H256}; -use reth_provider::BlockProvider; +use reth_provider::BlockReader; use reth_rpc_types::{EthProtocolInfo, NetworkStatus}; use std::{ net::SocketAddr, @@ -156,7 +156,7 @@ impl NetworkManager { impl NetworkManager where - C: BlockProvider, + C: BlockReader, { /// Creates the manager of a new network. /// @@ -586,7 +586,7 @@ where impl Future for NetworkManager where - C: BlockProvider + Unpin, + C: BlockReader + Unpin, { type Output = (); diff --git a/crates/net/network/src/state.rs b/crates/net/network/src/state.rs index 3eb74dda2..05f423a73 100644 --- a/crates/net/network/src/state.rs +++ b/crates/net/network/src/state.rs @@ -16,7 +16,7 @@ use reth_eth_wire::{ }; use reth_network_api::PeerKind; use reth_primitives::{ForkId, PeerId, H256}; -use reth_provider::BlockProvider; +use reth_provider::BlockReader; use std::{ collections::{HashMap, VecDeque}, net::{IpAddr, SocketAddr}, @@ -65,7 +65,7 @@ pub struct NetworkState { impl NetworkState where - C: BlockProvider, + C: BlockReader, { /// Create a new state instance with the given params pub(crate) fn new( diff --git a/crates/net/network/src/swarm.rs b/crates/net/network/src/swarm.rs index 189795926..f296ebe27 100644 --- a/crates/net/network/src/swarm.rs +++ b/crates/net/network/src/swarm.rs @@ -12,7 +12,7 @@ use reth_eth_wire::{ DisconnectReason, EthVersion, Status, }; use reth_primitives::PeerId; -use reth_provider::BlockProvider; +use reth_provider::BlockReader; use std::{ io, net::SocketAddr, @@ -77,7 +77,7 @@ pub(crate) struct Swarm { impl Swarm where - C: BlockProvider, + C: BlockReader, { /// Configures a new swarm instance. pub(crate) fn new( @@ -291,7 +291,7 @@ where impl Stream for Swarm where - C: BlockProvider + Unpin, + C: BlockReader + Unpin, { type Item = SwarmEvent; diff --git a/crates/net/network/src/test_utils/testnet.rs b/crates/net/network/src/test_utils/testnet.rs index d2b149294..e2cbeaca2 100644 --- a/crates/net/network/src/test_utils/testnet.rs +++ b/crates/net/network/src/test_utils/testnet.rs @@ -8,7 +8,7 @@ use futures::{FutureExt, StreamExt}; use pin_project::pin_project; use reth_eth_wire::{capability::Capability, DisconnectReason, HelloBuilder}; use reth_primitives::PeerId; -use reth_provider::{test_utils::NoopProvider, BlockProvider, HeaderProvider}; +use reth_provider::{test_utils::NoopProvider, BlockReader, HeaderProvider}; use secp256k1::SecretKey; use std::{ fmt, @@ -34,7 +34,7 @@ pub struct Testnet { impl Testnet where - C: BlockProvider + HeaderProvider + Clone, + C: BlockReader + HeaderProvider + Clone, { /// Same as [`Self::try_create_with`] but panics on error pub async fn create_with(num_peers: usize, provider: C) -> Self { @@ -122,7 +122,7 @@ where impl Testnet where - C: BlockProvider + HeaderProvider + Unpin + 'static, + C: BlockReader + HeaderProvider + Unpin + 'static, { /// Spawns the testnet to a separate task pub fn spawn(self) -> TestnetHandle { @@ -176,7 +176,7 @@ impl fmt::Debug for Testnet { impl Future for Testnet where - C: BlockProvider + HeaderProvider + Unpin, + C: BlockReader + HeaderProvider + Unpin, { type Output = (); @@ -220,7 +220,7 @@ pub struct Peer { impl Peer where - C: BlockProvider + HeaderProvider + Clone, + C: BlockReader + HeaderProvider + Clone, { /// Returns the number of connected peers. pub fn num_peers(&self) -> usize { @@ -249,7 +249,7 @@ where impl Future for Peer where - C: BlockProvider + HeaderProvider + Unpin, + C: BlockReader + HeaderProvider + Unpin, { type Output = (); @@ -275,7 +275,7 @@ pub struct PeerConfig { impl PeerConfig where - C: BlockProvider + HeaderProvider + Clone, + C: BlockReader + HeaderProvider + Clone, { /// Launches the network and returns the [Peer] that manages it pub async fn launch(self) -> Result, NetworkError> { diff --git a/crates/payload/basic/src/lib.rs b/crates/payload/basic/src/lib.rs index a16e730ab..f136d92cb 100644 --- a/crates/payload/basic/src/lib.rs +++ b/crates/payload/basic/src/lib.rs @@ -23,7 +23,7 @@ use reth_primitives::{ proofs, Block, BlockNumberOrTag, ChainSpec, Header, IntoRecoveredTransaction, Receipt, SealedBlock, Withdrawal, EMPTY_OMMER_ROOT, H256, U256, }; -use reth_provider::{BlockProviderIdExt, BlockSource, PostState, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, BlockSource, PostState, StateProviderFactory}; use reth_revm::{ database::{State, SubState}, env::tx_env_with_recovered, @@ -98,7 +98,7 @@ impl BasicPayloadJobGenerator {} impl PayloadJobGenerator for BasicPayloadJobGenerator where - Client: StateProviderFactory + BlockProviderIdExt + Clone + Unpin + 'static, + Client: StateProviderFactory + BlockReaderIdExt + Clone + Unpin + 'static, Pool: TransactionPool + Unpin + 'static, Tasks: TaskSpawner + Clone + Unpin + 'static, { diff --git a/crates/revm/src/executor.rs b/crates/revm/src/executor.rs index 8f5fcc3e4..dc456d61c 100644 --- a/crates/revm/src/executor.rs +++ b/crates/revm/src/executor.rs @@ -654,7 +654,7 @@ mod tests { }; use reth_provider::{ post_state::{AccountChanges, Storage, StorageTransition, StorageWipe}, - AccountReader, BlockHashProvider, StateProvider, StateRootProvider, + AccountReader, BlockHashReader, StateProvider, StateRootProvider, }; use reth_rlp::Decodable; use std::{collections::HashMap, str::FromStr}; @@ -700,7 +700,7 @@ mod tests { } } - impl BlockHashProvider for StateProviderTest { + impl BlockHashReader for StateProviderTest { fn block_hash(&self, number: u64) -> reth_interfaces::Result> { Ok(self.block_hash.get(&number).cloned()) } diff --git a/crates/rpc/rpc-builder/src/auth.rs b/crates/rpc/rpc-builder/src/auth.rs index edf398117..e44911d4b 100644 --- a/crates/rpc/rpc-builder/src/auth.rs +++ b/crates/rpc/rpc-builder/src/auth.rs @@ -11,7 +11,7 @@ use jsonrpsee::{ }; use reth_network_api::{NetworkInfo, Peers}; use reth_provider::{ - BlockProviderIdExt, EvmEnvProvider, HeaderProvider, ReceiptProviderIdExt, StateProviderFactory, + BlockReaderIdExt, EvmEnvProvider, HeaderProvider, ReceiptProviderIdExt, StateProviderFactory, }; use reth_rpc::{ eth::{cache::EthStateCache, gas_oracle::GasPriceOracle}, @@ -38,7 +38,7 @@ pub async fn launch( secret: JwtSecret, ) -> Result where - Provider: BlockProviderIdExt + Provider: BlockReaderIdExt + ReceiptProviderIdExt + HeaderProvider + StateProviderFactory @@ -82,7 +82,7 @@ pub async fn launch_with_eth_api( secret: JwtSecret, ) -> Result where - Provider: BlockProviderIdExt + Provider: BlockReaderIdExt + HeaderProvider + StateProviderFactory + EvmEnvProvider diff --git a/crates/rpc/rpc-builder/src/lib.rs b/crates/rpc/rpc-builder/src/lib.rs index fb73bddf6..1c48b6d6c 100644 --- a/crates/rpc/rpc-builder/src/lib.rs +++ b/crates/rpc/rpc-builder/src/lib.rs @@ -25,13 +25,13 @@ //! //! ``` //! use reth_network_api::{NetworkInfo, Peers}; -//! use reth_provider::{BlockProviderIdExt, CanonStateSubscriptions, StateProviderFactory, EvmEnvProvider}; +//! use reth_provider::{BlockReaderIdExt, CanonStateSubscriptions, StateProviderFactory, EvmEnvProvider}; //! use reth_rpc_builder::{RethRpcModule, RpcModuleBuilder, RpcServerConfig, ServerBuilder, TransportRpcModuleConfig}; //! use reth_tasks::TokioTaskExecutor; //! use reth_transaction_pool::TransactionPool; //! pub async fn launch(provider: Provider, pool: Pool, network: Network, events: Events) //! where -//! Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, +//! Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, //! Pool: TransactionPool + Clone + 'static, //! Network: NetworkInfo + Peers + Clone + 'static, //! Events: CanonStateSubscriptions + Clone + 'static, @@ -58,7 +58,7 @@ //! ``` //! use tokio::try_join; //! use reth_network_api::{NetworkInfo, Peers}; -//! use reth_provider::{BlockProviderIdExt, CanonStateSubscriptions, StateProviderFactory, EvmEnvProvider}; +//! use reth_provider::{BlockReaderIdExt, CanonStateSubscriptions, StateProviderFactory, EvmEnvProvider}; //! use reth_rpc::JwtSecret; //! use reth_rpc_builder::{RethRpcModule, RpcModuleBuilder, RpcServerConfig, TransportRpcModuleConfig}; //! use reth_tasks::TokioTaskExecutor; @@ -67,7 +67,7 @@ //! use reth_rpc_builder::auth::AuthServerConfig; //! pub async fn launch(provider: Provider, pool: Pool, network: Network, events: Events, engine_api: EngineApi) //! where -//! Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, +//! Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, //! Pool: TransactionPool + Clone + 'static, //! Network: NetworkInfo + Peers + Clone + 'static, //! Events: CanonStateSubscriptions + Clone + 'static, @@ -107,8 +107,7 @@ use jsonrpsee::{ use reth_ipc::server::IpcServer; use reth_network_api::{NetworkInfo, Peers}; use reth_provider::{ - BlockProvider, BlockProviderIdExt, CanonStateSubscriptions, EvmEnvProvider, - StateProviderFactory, + BlockReader, BlockReaderIdExt, CanonStateSubscriptions, EvmEnvProvider, StateProviderFactory, }; use reth_rpc::{ eth::{ @@ -164,7 +163,7 @@ pub async fn launch( events: Events, ) -> Result where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, Pool: TransactionPool + Clone + 'static, Network: NetworkInfo + Peers + Clone + 'static, Tasks: TaskSpawner + Clone + 'static, @@ -214,7 +213,7 @@ impl /// Configure the provider instance. pub fn with_provider

(self, provider: P) -> RpcModuleBuilder where - P: BlockProvider + StateProviderFactory + EvmEnvProvider + 'static, + P: BlockReader + StateProviderFactory + EvmEnvProvider + 'static, { let Self { pool, network, executor, events, .. } = self; RpcModuleBuilder { provider, network, pool, executor, events } @@ -263,7 +262,7 @@ impl impl RpcModuleBuilder where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, Pool: TransactionPool + Clone + 'static, Network: NetworkInfo + Peers + Clone + 'static, Tasks: TaskSpawner + Clone + 'static, @@ -481,7 +480,7 @@ impl RpcModuleSelection { ) -> RpcModule<()> where Provider: - BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, + BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, Pool: TransactionPool + Clone + 'static, Network: NetworkInfo + Peers + Clone + 'static, Tasks: TaskSpawner + Clone + 'static, @@ -687,7 +686,7 @@ where impl RethModuleRegistry where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + Clone + Unpin + 'static, Pool: TransactionPool + Clone + 'static, Network: NetworkInfo + Peers + Clone + 'static, Tasks: TaskSpawner + Clone + 'static, diff --git a/crates/rpc/rpc-engine-api/src/engine_api.rs b/crates/rpc/rpc-engine-api/src/engine_api.rs index 159f2a250..55e631328 100644 --- a/crates/rpc/rpc-engine-api/src/engine_api.rs +++ b/crates/rpc/rpc-engine-api/src/engine_api.rs @@ -5,7 +5,7 @@ use reth_beacon_consensus::BeaconConsensusEngineHandle; use reth_interfaces::consensus::ForkchoiceState; use reth_payload_builder::PayloadStore; use reth_primitives::{BlockHash, BlockHashOrNumber, BlockNumber, ChainSpec, Hardfork, U64}; -use reth_provider::{BlockProvider, EvmEnvProvider, HeaderProvider, StateProviderFactory}; +use reth_provider::{BlockReader, EvmEnvProvider, HeaderProvider, StateProviderFactory}; use reth_rpc_api::EngineApiServer; use reth_rpc_types::engine::{ ExecutionPayload, ExecutionPayloadBodies, ExecutionPayloadEnvelope, ForkchoiceUpdated, @@ -36,7 +36,7 @@ pub struct EngineApi { impl EngineApi where - Provider: HeaderProvider + BlockProvider + StateProviderFactory + EvmEnvProvider + 'static, + Provider: HeaderProvider + BlockReader + StateProviderFactory + EvmEnvProvider + 'static, { /// Create new instance of [EngineApi]. pub fn new( @@ -304,7 +304,7 @@ where #[async_trait] impl EngineApiServer for EngineApi where - Provider: HeaderProvider + BlockProvider + StateProviderFactory + EvmEnvProvider + 'static, + Provider: HeaderProvider + BlockReader + StateProviderFactory + EvmEnvProvider + 'static, { /// Handler for `engine_newPayloadV1` /// See also diff --git a/crates/rpc/rpc/src/debug.rs b/crates/rpc/rpc/src/debug.rs index 6adb46c4b..6f997172c 100644 --- a/crates/rpc/rpc/src/debug.rs +++ b/crates/rpc/rpc/src/debug.rs @@ -12,7 +12,7 @@ use crate::{ use async_trait::async_trait; use jsonrpsee::core::RpcResult; use reth_primitives::{Account, Block, BlockId, BlockNumberOrTag, Bytes, TransactionSigned, H256}; -use reth_provider::{BlockProviderIdExt, HeaderProvider, StateProviderBox}; +use reth_provider::{BlockReaderIdExt, HeaderProvider, StateProviderBox}; use reth_revm::{ database::{State, SubState}, env::tx_env_with_recovered, @@ -70,7 +70,7 @@ impl DebugApi { impl DebugApi where - Provider: BlockProviderIdExt + HeaderProvider + 'static, + Provider: BlockReaderIdExt + HeaderProvider + 'static, Eth: EthTransactions + 'static, { /// Executes the future on a new blocking task. @@ -516,7 +516,7 @@ where #[async_trait] impl DebugApiServer for DebugApi where - Provider: BlockProviderIdExt + HeaderProvider + 'static, + Provider: BlockReaderIdExt + HeaderProvider + 'static, Eth: EthApiSpec + 'static, { /// Handler for `debug_getRawHeader` diff --git a/crates/rpc/rpc/src/eth/api/block.rs b/crates/rpc/rpc/src/eth/api/block.rs index 1aa3108ee..472ac9bd2 100644 --- a/crates/rpc/rpc/src/eth/api/block.rs +++ b/crates/rpc/rpc/src/eth/api/block.rs @@ -5,12 +5,12 @@ use crate::{ EthApi, }; use reth_primitives::BlockId; -use reth_provider::{BlockProviderIdExt, EvmEnvProvider, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, EvmEnvProvider, StateProviderFactory}; use reth_rpc_types::{Block, Index, RichBlock}; impl EthApi where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, { /// Returns the uncle headers of the given block /// diff --git a/crates/rpc/rpc/src/eth/api/call.rs b/crates/rpc/rpc/src/eth/api/call.rs index f7039b3ea..cca5d4b26 100644 --- a/crates/rpc/rpc/src/eth/api/call.rs +++ b/crates/rpc/rpc/src/eth/api/call.rs @@ -14,7 +14,7 @@ use crate::{ use ethers_core::utils::get_contract_address; use reth_network_api::NetworkInfo; use reth_primitives::{AccessList, BlockId, BlockNumberOrTag, Bytes, U256}; -use reth_provider::{BlockProviderIdExt, EvmEnvProvider, StateProvider, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, EvmEnvProvider, StateProvider, StateProviderFactory}; use reth_revm::{ access_list::AccessListInspector, database::{State, SubState}, @@ -34,7 +34,7 @@ const MIN_CREATE_GAS: u64 = 53_000u64; impl EthApi where Pool: TransactionPool + Clone + 'static, - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Network: NetworkInfo + Send + Sync + 'static, { /// Estimate gas needed for execution of the `request` at the [BlockId]. diff --git a/crates/rpc/rpc/src/eth/api/fees.rs b/crates/rpc/rpc/src/eth/api/fees.rs index ba6885240..6077475fc 100644 --- a/crates/rpc/rpc/src/eth/api/fees.rs +++ b/crates/rpc/rpc/src/eth/api/fees.rs @@ -6,7 +6,7 @@ use crate::{ }; use reth_network_api::NetworkInfo; use reth_primitives::{BlockId, BlockNumberOrTag, U256}; -use reth_provider::{BlockProviderIdExt, EvmEnvProvider, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, EvmEnvProvider, StateProviderFactory}; use reth_rpc_types::{FeeHistory, FeeHistoryCacheItem, TxGasAndReward}; use reth_transaction_pool::TransactionPool; use std::collections::BTreeMap; @@ -14,7 +14,7 @@ use std::collections::BTreeMap; impl EthApi where Pool: TransactionPool + Clone + 'static, - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Network: NetworkInfo + Send + Sync + 'static, { /// Returns a suggestion for a gas price for legacy transactions. diff --git a/crates/rpc/rpc/src/eth/api/mod.rs b/crates/rpc/rpc/src/eth/api/mod.rs index 29aebdb6a..f611034fd 100644 --- a/crates/rpc/rpc/src/eth/api/mod.rs +++ b/crates/rpc/rpc/src/eth/api/mod.rs @@ -13,7 +13,7 @@ use async_trait::async_trait; use reth_interfaces::Result; use reth_network_api::NetworkInfo; use reth_primitives::{Address, BlockId, BlockNumberOrTag, ChainInfo, H256, U256, U64}; -use reth_provider::{BlockProviderIdExt, EvmEnvProvider, StateProviderBox, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, EvmEnvProvider, StateProviderBox, StateProviderFactory}; use reth_rpc_types::{FeeHistoryCache, SyncInfo, SyncStatus}; use reth_tasks::{TaskSpawner, TokioTaskExecutor}; use reth_transaction_pool::TransactionPool; @@ -72,7 +72,7 @@ pub struct EthApi { impl EthApi where - Provider: BlockProviderIdExt, + Provider: BlockReaderIdExt, { /// Creates a new, shareable instance using the default tokio task spawner. pub fn new( @@ -175,7 +175,7 @@ where impl EthApi where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, { /// Returns the state at the given [BlockId] enum. pub fn state_at_block_id(&self, at: BlockId) -> EthResult> { @@ -223,7 +223,7 @@ impl Clone for EthApi { impl EthApiSpec for EthApi where Pool: TransactionPool + Clone + 'static, - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Network: NetworkInfo + 'static, { /// Returns the current ethereum protocol version. diff --git a/crates/rpc/rpc/src/eth/api/server.rs b/crates/rpc/rpc/src/eth/api/server.rs index 6d093cb01..f8244dcf5 100644 --- a/crates/rpc/rpc/src/eth/api/server.rs +++ b/crates/rpc/rpc/src/eth/api/server.rs @@ -16,7 +16,7 @@ use reth_primitives::{ H256, H64, U256, U64, }; use reth_provider::{ - BlockIdProvider, BlockProvider, BlockProviderIdExt, EvmEnvProvider, HeaderProvider, + BlockIdReader, BlockReader, BlockReaderIdExt, EvmEnvProvider, HeaderProvider, StateProviderFactory, }; use reth_rpc_api::EthApiServer; @@ -33,9 +33,9 @@ impl EthApiServer for EthApi where Self: EthApiSpec + EthTransactions, Pool: TransactionPool + 'static, - Provider: BlockProvider - + BlockIdProvider - + BlockProviderIdExt + Provider: BlockReader + + BlockIdReader + + BlockReaderIdExt + HeaderProvider + StateProviderFactory + EvmEnvProvider diff --git a/crates/rpc/rpc/src/eth/api/state.rs b/crates/rpc/rpc/src/eth/api/state.rs index 4785ea384..281198be0 100644 --- a/crates/rpc/rpc/src/eth/api/state.rs +++ b/crates/rpc/rpc/src/eth/api/state.rs @@ -9,14 +9,14 @@ use reth_primitives::{ U256, }; use reth_provider::{ - AccountReader, BlockProviderIdExt, EvmEnvProvider, StateProvider, StateProviderFactory, + AccountReader, BlockReaderIdExt, EvmEnvProvider, StateProvider, StateProviderFactory, }; use reth_rpc_types::{EIP1186AccountProofResponse, StorageProof}; use reth_transaction_pool::{PoolTransaction, TransactionPool}; impl EthApi where - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Pool: TransactionPool + Clone + 'static, Network: Send + Sync + 'static, { diff --git a/crates/rpc/rpc/src/eth/api/transactions.rs b/crates/rpc/rpc/src/eth/api/transactions.rs index 1c5a512c5..ece5457e5 100644 --- a/crates/rpc/rpc/src/eth/api/transactions.rs +++ b/crates/rpc/rpc/src/eth/api/transactions.rs @@ -18,7 +18,7 @@ use reth_primitives::{ TransactionKind::{Call, Create}, TransactionMeta, TransactionSigned, TransactionSignedEcRecovered, H256, U128, U256, U64, }; -use reth_provider::{BlockProviderIdExt, EvmEnvProvider, StateProviderBox, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, EvmEnvProvider, StateProviderBox, StateProviderFactory}; use reth_revm::{ database::{State, SubState}, env::{fill_block_env_with_coinbase, tx_env_with_recovered}, @@ -222,7 +222,7 @@ pub trait EthTransactions: Send + Sync { impl EthTransactions for EthApi where Pool: TransactionPool + Clone + 'static, - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Network: NetworkInfo + Send + Sync + 'static, { fn state_at(&self, at: BlockId) -> EthResult> { @@ -652,7 +652,7 @@ where impl EthApi where Pool: TransactionPool + 'static, - Provider: BlockProviderIdExt + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReaderIdExt + StateProviderFactory + EvmEnvProvider + 'static, Network: 'static, { pub(crate) fn sign_request( diff --git a/crates/rpc/rpc/src/eth/cache.rs b/crates/rpc/rpc/src/eth/cache.rs index 717ef5402..8a580f36e 100644 --- a/crates/rpc/rpc/src/eth/cache.rs +++ b/crates/rpc/rpc/src/eth/cache.rs @@ -3,7 +3,7 @@ use futures::{future::Either, Stream, StreamExt}; use reth_interfaces::{provider::ProviderError, Result}; use reth_primitives::{Block, Receipt, SealedBlock, TransactionSigned, H256}; -use reth_provider::{BlockProvider, CanonStateNotification, EvmEnvProvider, StateProviderFactory}; +use reth_provider::{BlockReader, CanonStateNotification, EvmEnvProvider, StateProviderFactory}; use reth_tasks::{TaskSpawner, TokioTaskExecutor}; use revm::primitives::{BlockEnv, CfgEnv}; use schnellru::{ByMemoryUsage, Limiter, LruMap}; @@ -121,7 +121,7 @@ impl EthStateCache { /// See also [Self::spawn_with] pub fn spawn(provider: Provider, config: EthStateCacheConfig) -> Self where - Provider: StateProviderFactory + BlockProvider + EvmEnvProvider + Clone + Unpin + 'static, + Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static, { Self::spawn_with(provider, config, TokioTaskExecutor::default()) } @@ -136,7 +136,7 @@ impl EthStateCache { executor: Tasks, ) -> Self where - Provider: StateProviderFactory + BlockProvider + EvmEnvProvider + Clone + Unpin + 'static, + Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static, Tasks: TaskSpawner + Clone + 'static, { let EthStateCacheConfig { max_block_bytes, max_receipt_bytes, max_env_bytes } = config; @@ -244,7 +244,7 @@ pub(crate) struct EthStateCacheService< impl EthStateCacheService where - Provider: StateProviderFactory + BlockProvider + EvmEnvProvider + Clone + Unpin + 'static, + Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static, Tasks: TaskSpawner + Clone + 'static, { fn on_new_block(&mut self, block_hash: H256, res: Result>) { @@ -287,7 +287,7 @@ where impl Future for EthStateCacheService where - Provider: StateProviderFactory + BlockProvider + EvmEnvProvider + Clone + Unpin + 'static, + Provider: StateProviderFactory + BlockReader + EvmEnvProvider + Clone + Unpin + 'static, Tasks: TaskSpawner + Clone + 'static, { type Output = (); diff --git a/crates/rpc/rpc/src/eth/filter.rs b/crates/rpc/rpc/src/eth/filter.rs index c6eea1fbe..891f24f47 100644 --- a/crates/rpc/rpc/src/eth/filter.rs +++ b/crates/rpc/rpc/src/eth/filter.rs @@ -10,7 +10,7 @@ use crate::{ use async_trait::async_trait; use jsonrpsee::{core::RpcResult, server::IdProvider}; use reth_primitives::{BlockHashOrNumber, Receipt, SealedBlock, H256}; -use reth_provider::{BlockIdProvider, BlockProvider, EvmEnvProvider}; +use reth_provider::{BlockIdReader, BlockReader, EvmEnvProvider}; use reth_rpc_api::EthFilterApiServer; use reth_rpc_types::{Filter, FilterBlockOption, FilterChanges, FilterId, FilteredParams, Log}; use reth_tasks::TaskSpawner; @@ -66,7 +66,7 @@ impl EthFilter { impl EthFilter where - Provider: BlockProvider + BlockIdProvider + EvmEnvProvider + 'static, + Provider: BlockReader + BlockIdReader + EvmEnvProvider + 'static, Pool: TransactionPool + 'static, { /// Executes the given filter on a new task. @@ -178,7 +178,7 @@ where #[async_trait] impl EthFilterApiServer for EthFilter where - Provider: BlockProvider + BlockIdProvider + EvmEnvProvider + 'static, + Provider: BlockReader + BlockIdReader + EvmEnvProvider + 'static, Pool: TransactionPool + 'static, { /// Handler for `eth_newFilter` @@ -274,7 +274,7 @@ struct EthFilterInner { impl EthFilterInner where - Provider: BlockProvider + BlockIdProvider + EvmEnvProvider + 'static, + Provider: BlockReader + BlockIdReader + EvmEnvProvider + 'static, Pool: TransactionPool + 'static, { /// Returns logs matching given filter object. diff --git a/crates/rpc/rpc/src/eth/gas_oracle.rs b/crates/rpc/rpc/src/eth/gas_oracle.rs index fd5ab1942..8a364088d 100644 --- a/crates/rpc/rpc/src/eth/gas_oracle.rs +++ b/crates/rpc/rpc/src/eth/gas_oracle.rs @@ -5,7 +5,7 @@ use crate::eth::{ error::{EthApiError, EthResult, RpcInvalidTransactionError}, }; use reth_primitives::{constants::GWEI_TO_WEI, BlockNumberOrTag, H256, U256}; -use reth_provider::BlockProviderIdExt; +use reth_provider::BlockReaderIdExt; use serde::{Deserialize, Serialize}; use tokio::sync::Mutex; use tracing::warn; @@ -94,7 +94,7 @@ pub struct GasPriceOracle { impl GasPriceOracle where - Provider: BlockProviderIdExt + 'static, + Provider: BlockReaderIdExt + 'static, { /// Creates and returns the [GasPriceOracle]. pub fn new( diff --git a/crates/rpc/rpc/src/eth/pubsub.rs b/crates/rpc/rpc/src/eth/pubsub.rs index f4a4ccebb..ac76d4fab 100644 --- a/crates/rpc/rpc/src/eth/pubsub.rs +++ b/crates/rpc/rpc/src/eth/pubsub.rs @@ -4,7 +4,7 @@ use futures::StreamExt; use jsonrpsee::{server::SubscriptionMessage, PendingSubscriptionSink, SubscriptionSink}; use reth_network_api::NetworkInfo; use reth_primitives::TxHash; -use reth_provider::{BlockProvider, CanonStateSubscriptions, EvmEnvProvider}; +use reth_provider::{BlockReader, CanonStateSubscriptions, EvmEnvProvider}; use reth_rpc_api::EthPubSubApiServer; use reth_rpc_types::FilteredParams; @@ -67,7 +67,7 @@ impl EthPubSub impl EthPubSubApiServer for EthPubSub where - Provider: BlockProvider + EvmEnvProvider + Clone + 'static, + Provider: BlockReader + EvmEnvProvider + Clone + 'static, Pool: TransactionPool + 'static, Events: CanonStateSubscriptions + Clone + 'static, Network: NetworkInfo + Clone + 'static, @@ -97,7 +97,7 @@ async fn handle_accepted( params: Option, ) -> Result<(), jsonrpsee::core::Error> where - Provider: BlockProvider + EvmEnvProvider + Clone + 'static, + Provider: BlockReader + EvmEnvProvider + Clone + 'static, Pool: TransactionPool + 'static, Events: CanonStateSubscriptions + Clone + 'static, Network: NetworkInfo + Clone + 'static, @@ -217,7 +217,7 @@ struct EthPubSubInner { impl EthPubSubInner where - Provider: BlockProvider + 'static, + Provider: BlockReader + 'static, { /// Returns the current sync status for the `syncing` subscription async fn sync_status(&self, is_syncing: bool) -> EthSubscriptionResult { @@ -248,7 +248,7 @@ where impl EthPubSubInner where - Provider: BlockProvider + EvmEnvProvider + 'static, + Provider: BlockReader + EvmEnvProvider + 'static, Events: CanonStateSubscriptions + 'static, Network: NetworkInfo + 'static, Pool: 'static, diff --git a/crates/rpc/rpc/src/trace.rs b/crates/rpc/rpc/src/trace.rs index 8b61a9f10..ae0c1193f 100644 --- a/crates/rpc/rpc/src/trace.rs +++ b/crates/rpc/rpc/src/trace.rs @@ -12,7 +12,7 @@ use crate::{ use async_trait::async_trait; use jsonrpsee::core::RpcResult as Result; use reth_primitives::{BlockId, BlockNumberOrTag, Bytes, H256}; -use reth_provider::{BlockProvider, EvmEnvProvider, StateProviderBox, StateProviderFactory}; +use reth_provider::{BlockReader, EvmEnvProvider, StateProviderBox, StateProviderFactory}; use reth_revm::{ database::{State, SubState}, env::tx_env_with_recovered, @@ -77,7 +77,7 @@ impl TraceApi { impl TraceApi where - Provider: BlockProvider + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReader + StateProviderFactory + EvmEnvProvider + 'static, Eth: EthTransactions + 'static, { /// Executes the future on a new blocking task. @@ -425,7 +425,7 @@ where #[async_trait] impl TraceApiServer for TraceApi where - Provider: BlockProvider + StateProviderFactory + EvmEnvProvider + 'static, + Provider: BlockReader + StateProviderFactory + EvmEnvProvider + 'static, Eth: EthTransactions + 'static, { /// Executes the given call and returns a number of possible traces for it. diff --git a/crates/stages/src/stages/execution.rs b/crates/stages/src/stages/execution.rs index 4dae22d19..259c91b44 100644 --- a/crates/stages/src/stages/execution.rs +++ b/crates/stages/src/stages/execution.rs @@ -19,7 +19,7 @@ use reth_primitives::{ BlockNumber, Header, U256, }; use reth_provider::{ - post_state::PostState, BlockExecutor, BlockProvider, DatabaseProviderRW, ExecutorFactory, + post_state::PostState, BlockExecutor, BlockReader, DatabaseProviderRW, ExecutorFactory, HeaderProvider, LatestStateProviderRef, ProviderError, }; use std::{ops::RangeInclusive, time::Instant}; diff --git a/crates/stages/src/stages/headers.rs b/crates/stages/src/stages/headers.rs index 1984e4d6f..4dd7620cc 100644 --- a/crates/stages/src/stages/headers.rs +++ b/crates/stages/src/stages/headers.rs @@ -404,7 +404,7 @@ mod tests { TestHeadersClient, }; use reth_primitives::U256; - use reth_provider::{BlockHashProvider, BlockNumProvider, HeaderProvider}; + use reth_provider::{BlockHashReader, BlockNumReader, HeaderProvider}; use std::sync::Arc; pub(crate) struct HeadersTestRunner { diff --git a/crates/storage/provider/src/lib.rs b/crates/storage/provider/src/lib.rs index 4e6485fb2..47929cc4f 100644 --- a/crates/storage/provider/src/lib.rs +++ b/crates/storage/provider/src/lib.rs @@ -15,14 +15,14 @@ /// Various provider traits. mod traits; pub use traits::{ - AccountExtReader, AccountReader, BlockExecutor, BlockHashProvider, BlockIdProvider, - BlockNumProvider, BlockProvider, BlockProviderIdExt, BlockSource, - BlockchainTreePendingStateProvider, CanonChainTracker, CanonStateNotification, - CanonStateNotificationSender, CanonStateNotifications, CanonStateSubscriptions, EvmEnvProvider, - ExecutorFactory, HashingWriter, HeaderProvider, HistoryWriter, PostStateDataProvider, - ReceiptProvider, ReceiptProviderIdExt, StageCheckpointReader, StageCheckpointWriter, - StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider, StorageReader, - TransactionsProvider, WithdrawalsProvider, + AccountExtReader, AccountReader, BlockExecutor, BlockHashReader, BlockIdReader, BlockNumReader, + BlockReader, BlockReaderIdExt, BlockSource, BlockchainTreePendingStateProvider, + CanonChainTracker, CanonStateNotification, CanonStateNotificationSender, + CanonStateNotifications, CanonStateSubscriptions, EvmEnvProvider, ExecutorFactory, + HashingWriter, HeaderProvider, HistoryWriter, PostStateDataProvider, ReceiptProvider, + ReceiptProviderIdExt, StageCheckpointReader, StageCheckpointWriter, StateProvider, + StateProviderBox, StateProviderFactory, StateRootProvider, StorageReader, TransactionsProvider, + WithdrawalsProvider, }; /// Provider trait implementations. diff --git a/crates/storage/provider/src/providers/database/mod.rs b/crates/storage/provider/src/providers/database/mod.rs index f04fd9c68..6109a6e63 100644 --- a/crates/storage/provider/src/providers/database/mod.rs +++ b/crates/storage/provider/src/providers/database/mod.rs @@ -1,9 +1,8 @@ use crate::{ providers::state::{historical::HistoricalStateProvider, latest::LatestStateProvider}, traits::{BlockSource, ReceiptProvider}, - BlockHashProvider, BlockNumProvider, BlockProvider, EvmEnvProvider, HeaderProvider, - ProviderError, StageCheckpointReader, StateProviderBox, TransactionsProvider, - WithdrawalsProvider, + BlockHashReader, BlockNumReader, BlockReader, EvmEnvProvider, HeaderProvider, ProviderError, + StageCheckpointReader, StateProviderBox, TransactionsProvider, WithdrawalsProvider, }; use reth_db::{database::Database, models::StoredBlockBodyIndices}; use reth_interfaces::Result; @@ -34,14 +33,14 @@ pub struct ProviderFactory { impl ProviderFactory { /// Returns a provider with a created `DbTx` inside, which allows fetching data from the /// database using different types of providers. Example: [`HeaderProvider`] - /// [`BlockHashProvider`]. This may fail if the inner read database transaction fails to open. + /// [`BlockHashReader`]. This may fail if the inner read database transaction fails to open. pub fn provider(&self) -> Result> { Ok(DatabaseProvider::new(self.db.tx()?, self.chain_spec.clone())) } /// Returns a provider with a created `DbTxMut` inside, which allows fetching and updating /// data from the database using different types of providers. Example: [`HeaderProvider`] - /// [`BlockHashProvider`]. This may fail if the inner read/write database transaction fails to + /// [`BlockHashReader`]. This may fail if the inner read/write database transaction fails to /// open. pub fn provider_rw(&self) -> Result> { Ok(DatabaseProviderRW(DatabaseProvider::new_rw(self.db.tx_mut()?, self.chain_spec.clone()))) @@ -144,7 +143,7 @@ impl HeaderProvider for ProviderFactory { } } -impl BlockHashProvider for ProviderFactory { +impl BlockHashReader for ProviderFactory { fn block_hash(&self, number: u64) -> Result> { self.provider()?.block_hash(number) } @@ -154,7 +153,7 @@ impl BlockHashProvider for ProviderFactory { } } -impl BlockNumProvider for ProviderFactory { +impl BlockNumReader for ProviderFactory { fn chain_info(&self) -> Result { self.provider()?.chain_info() } @@ -172,7 +171,7 @@ impl BlockNumProvider for ProviderFactory { } } -impl BlockProvider for ProviderFactory { +impl BlockReader for ProviderFactory { fn find_block_by_hash(&self, hash: H256, source: BlockSource) -> Result> { self.provider()?.find_block_by_hash(hash, source) } @@ -329,7 +328,7 @@ impl EvmEnvProvider for ProviderFactory { #[cfg(test)] mod tests { use super::ProviderFactory; - use crate::{BlockHashProvider, BlockNumProvider}; + use crate::{BlockHashReader, BlockNumReader}; use reth_db::mdbx::{test_utils::create_test_db, EnvKind, WriteMap}; use reth_primitives::{ChainSpecBuilder, H256}; use std::sync::Arc; diff --git a/crates/storage/provider/src/providers/database/provider.rs b/crates/storage/provider/src/providers/database/provider.rs index f941f5ae9..7d6b389c4 100644 --- a/crates/storage/provider/src/providers/database/provider.rs +++ b/crates/storage/provider/src/providers/database/provider.rs @@ -2,9 +2,9 @@ use crate::{ insert_canonical_block, post_state::StorageChangeset, traits::{AccountExtReader, BlockSource, ReceiptProvider, StageCheckpointWriter}, - AccountReader, BlockHashProvider, BlockNumProvider, BlockProvider, EvmEnvProvider, - HashingWriter, HeaderProvider, HistoryWriter, PostState, ProviderError, StageCheckpointReader, - StorageReader, TransactionsProvider, WithdrawalsProvider, + AccountReader, BlockHashReader, BlockNumReader, BlockReader, EvmEnvProvider, HashingWriter, + HeaderProvider, HistoryWriter, PostState, ProviderError, StageCheckpointReader, StorageReader, + TransactionsProvider, WithdrawalsProvider, }; use itertools::{izip, Itertools}; use reth_db::{ @@ -81,7 +81,7 @@ impl<'this, DB: Database> DatabaseProviderRW<'this, DB> { } /// A provider struct that fetchs data from the database. -/// Wrapper around [`DbTx`] and [`DbTxMut`]. Example: [`HeaderProvider`] [`BlockHashProvider`] +/// Wrapper around [`DbTx`] and [`DbTxMut`]. Example: [`HeaderProvider`] [`BlockHashReader`] #[derive(Debug)] pub struct DatabaseProvider<'this, TX> where @@ -938,7 +938,7 @@ impl<'this, TX: DbTx<'this>> HeaderProvider for DatabaseProvider<'this, TX> { } } -impl<'this, TX: DbTx<'this>> BlockHashProvider for DatabaseProvider<'this, TX> { +impl<'this, TX: DbTx<'this>> BlockHashReader for DatabaseProvider<'this, TX> { fn block_hash(&self, number: u64) -> Result> { Ok(self.tx.get::(number)?) } @@ -953,7 +953,7 @@ impl<'this, TX: DbTx<'this>> BlockHashProvider for DatabaseProvider<'this, TX> { } } -impl<'this, TX: DbTx<'this>> BlockNumProvider for DatabaseProvider<'this, TX> { +impl<'this, TX: DbTx<'this>> BlockNumReader for DatabaseProvider<'this, TX> { fn chain_info(&self) -> Result { let best_number = self.best_block_number()?; let best_hash = self.block_hash(best_number)?.unwrap_or_default(); @@ -976,7 +976,7 @@ impl<'this, TX: DbTx<'this>> BlockNumProvider for DatabaseProvider<'this, TX> { } } -impl<'this, TX: DbTx<'this>> BlockProvider for DatabaseProvider<'this, TX> { +impl<'this, TX: DbTx<'this>> BlockReader for DatabaseProvider<'this, TX> { fn find_block_by_hash(&self, hash: H256, source: BlockSource) -> Result> { if source.is_database() { self.block(hash.into()) diff --git a/crates/storage/provider/src/providers/mod.rs b/crates/storage/provider/src/providers/mod.rs index e3143c60b..bdb9bc4fc 100644 --- a/crates/storage/provider/src/providers/mod.rs +++ b/crates/storage/provider/src/providers/mod.rs @@ -1,5 +1,5 @@ use crate::{ - BlockHashProvider, BlockIdProvider, BlockNumProvider, BlockProvider, BlockProviderIdExt, + BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt, BlockchainTreePendingStateProvider, CanonChainTracker, CanonStateNotifications, CanonStateSubscriptions, EvmEnvProvider, HeaderProvider, PostStateDataProvider, ProviderError, ReceiptProvider, ReceiptProviderIdExt, StageCheckpointReader, StateProviderBox, @@ -144,7 +144,7 @@ where } } -impl BlockHashProvider for BlockchainProvider +impl BlockHashReader for BlockchainProvider where DB: Database, Tree: Send + Sync, @@ -158,7 +158,7 @@ where } } -impl BlockNumProvider for BlockchainProvider +impl BlockNumReader for BlockchainProvider where DB: Database, Tree: BlockchainTreeViewer + Send + Sync, @@ -180,7 +180,7 @@ where } } -impl BlockIdProvider for BlockchainProvider +impl BlockIdReader for BlockchainProvider where DB: Database, Tree: BlockchainTreeViewer + Send + Sync, @@ -198,7 +198,7 @@ where } } -impl BlockProvider for BlockchainProvider +impl BlockReader for BlockchainProvider where DB: Database, Tree: BlockchainTreeViewer + Send + Sync, @@ -637,7 +637,7 @@ impl CanonChainTracker for BlockchainProvider where DB: Send + Sync, Tree: Send + Sync, - Self: BlockProvider, + Self: BlockReader, { fn on_forkchoice_update_received(&self, _update: &ForkchoiceState) { // update timestamp @@ -669,9 +669,9 @@ where } } -impl BlockProviderIdExt for BlockchainProvider +impl BlockReaderIdExt for BlockchainProvider where - Self: BlockProvider + BlockIdProvider + ReceiptProviderIdExt, + Self: BlockReader + BlockIdReader + ReceiptProviderIdExt, Tree: BlockchainTreeEngine, { fn block_by_id(&self, id: BlockId) -> Result> { diff --git a/crates/storage/provider/src/providers/post_state_provider.rs b/crates/storage/provider/src/providers/post_state_provider.rs index 065e5a1ef..517ff50af 100644 --- a/crates/storage/provider/src/providers/post_state_provider.rs +++ b/crates/storage/provider/src/providers/post_state_provider.rs @@ -1,5 +1,5 @@ use crate::{ - AccountReader, BlockHashProvider, PostState, PostStateDataProvider, StateProvider, + AccountReader, BlockHashReader, PostState, PostStateDataProvider, StateProvider, StateRootProvider, }; use reth_interfaces::{provider::ProviderError, Result}; @@ -23,7 +23,7 @@ impl PostStateProvider /* Implement StateProvider traits */ -impl BlockHashProvider +impl BlockHashReader for PostStateProvider { fn block_hash(&self, block_number: BlockNumber) -> Result> { diff --git a/crates/storage/provider/src/providers/state/historical.rs b/crates/storage/provider/src/providers/state/historical.rs index 686dd0469..048d52329 100644 --- a/crates/storage/provider/src/providers/state/historical.rs +++ b/crates/storage/provider/src/providers/state/historical.rs @@ -1,5 +1,5 @@ use crate::{ - providers::state::macros::delegate_provider_impls, AccountReader, BlockHashProvider, PostState, + providers::state::macros::delegate_provider_impls, AccountReader, BlockHashReader, PostState, ProviderError, StateProvider, StateRootProvider, }; use reth_db::{ @@ -122,7 +122,7 @@ impl<'a, 'b, TX: DbTx<'a>> AccountReader for HistoricalStateProviderRef<'a, 'b, } } -impl<'a, 'b, TX: DbTx<'a>> BlockHashProvider for HistoricalStateProviderRef<'a, 'b, TX> { +impl<'a, 'b, TX: DbTx<'a>> BlockHashReader for HistoricalStateProviderRef<'a, 'b, TX> { /// Get block hash by number. fn block_hash(&self, number: u64) -> Result> { self.tx.get::(number).map_err(Into::into) diff --git a/crates/storage/provider/src/providers/state/latest.rs b/crates/storage/provider/src/providers/state/latest.rs index 4d53351cf..77a8692b5 100644 --- a/crates/storage/provider/src/providers/state/latest.rs +++ b/crates/storage/provider/src/providers/state/latest.rs @@ -1,5 +1,5 @@ use crate::{ - providers::state::macros::delegate_provider_impls, AccountReader, BlockHashProvider, PostState, + providers::state::macros::delegate_provider_impls, AccountReader, BlockHashReader, PostState, StateProvider, StateRootProvider, }; use reth_db::{ @@ -35,7 +35,7 @@ impl<'a, 'b, TX: DbTx<'a>> AccountReader for LatestStateProviderRef<'a, 'b, TX> } } -impl<'a, 'b, TX: DbTx<'a>> BlockHashProvider for LatestStateProviderRef<'a, 'b, TX> { +impl<'a, 'b, TX: DbTx<'a>> BlockHashReader for LatestStateProviderRef<'a, 'b, TX> { /// Get block hash by number. fn block_hash(&self, number: u64) -> Result> { self.db.get::(number).map_err(Into::into) diff --git a/crates/storage/provider/src/providers/state/macros.rs b/crates/storage/provider/src/providers/state/macros.rs index 299032e99..8c8c5f709 100644 --- a/crates/storage/provider/src/providers/state/macros.rs +++ b/crates/storage/provider/src/providers/state/macros.rs @@ -24,7 +24,7 @@ pub(crate) use delegate_impls_to_as_ref; /// Delegates the provider trait implementations to the `as_ref` function of the type: /// /// [AccountReader](crate::AccountReader) -/// [BlockHashProvider](crate::BlockHashProvider) +/// [BlockHashReader](crate::BlockHashReader) /// [StateProvider](crate::StateProvider) macro_rules! delegate_provider_impls { ($target:ty $(where [$($generics:tt)*])?) => { @@ -36,7 +36,7 @@ macro_rules! delegate_provider_impls { AccountReader $(where [$($generics)*])? { fn basic_account(&self, address: reth_primitives::Address) -> reth_interfaces::Result>; } - BlockHashProvider $(where [$($generics)*])? { + BlockHashReader $(where [$($generics)*])? { fn block_hash(&self, number: u64) -> reth_interfaces::Result>; fn canonical_hashes_range(&self, start: reth_primitives::BlockNumber, end: reth_primitives::BlockNumber) -> reth_interfaces::Result>; } diff --git a/crates/storage/provider/src/test_utils/mock.rs b/crates/storage/provider/src/test_utils/mock.rs index 0c6cd427b..825bee816 100644 --- a/crates/storage/provider/src/test_utils/mock.rs +++ b/crates/storage/provider/src/test_utils/mock.rs @@ -1,9 +1,9 @@ use crate::{ traits::{BlockSource, ReceiptProvider}, - AccountReader, BlockHashProvider, BlockIdProvider, BlockNumProvider, BlockProvider, - BlockProviderIdExt, EvmEnvProvider, HeaderProvider, PostState, PostStateDataProvider, - ReceiptProviderIdExt, StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider, - TransactionsProvider, WithdrawalsProvider, + AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt, + EvmEnvProvider, HeaderProvider, PostState, PostStateDataProvider, ReceiptProviderIdExt, + StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider, TransactionsProvider, + WithdrawalsProvider, }; use parking_lot::Mutex; use reth_db::models::StoredBlockBodyIndices; @@ -241,7 +241,7 @@ impl ReceiptProvider for MockEthProvider { impl ReceiptProviderIdExt for MockEthProvider {} -impl BlockHashProvider for MockEthProvider { +impl BlockHashReader for MockEthProvider { fn block_hash(&self, number: u64) -> Result> { let lock = self.blocks.lock(); @@ -261,7 +261,7 @@ impl BlockHashProvider for MockEthProvider { } } -impl BlockNumProvider for MockEthProvider { +impl BlockNumReader for MockEthProvider { fn chain_info(&self) -> Result { let best_block_number = self.best_block_number()?; let lock = self.headers.lock(); @@ -293,7 +293,7 @@ impl BlockNumProvider for MockEthProvider { } } -impl BlockIdProvider for MockEthProvider { +impl BlockIdReader for MockEthProvider { fn pending_block_num_hash(&self) -> Result> { Ok(None) } @@ -307,7 +307,7 @@ impl BlockIdProvider for MockEthProvider { } } -impl BlockProvider for MockEthProvider { +impl BlockReader for MockEthProvider { fn find_block_by_hash(&self, hash: H256, _source: BlockSource) -> Result> { self.block(hash.into()) } @@ -337,7 +337,7 @@ impl BlockProvider for MockEthProvider { } } -impl BlockProviderIdExt for MockEthProvider { +impl BlockReaderIdExt for MockEthProvider { fn block_by_id(&self, id: BlockId) -> Result> { match id { BlockId::Number(num) => self.block_by_number_or_tag(num), diff --git a/crates/storage/provider/src/test_utils/noop.rs b/crates/storage/provider/src/test_utils/noop.rs index 253e7982e..9e7f629fb 100644 --- a/crates/storage/provider/src/test_utils/noop.rs +++ b/crates/storage/provider/src/test_utils/noop.rs @@ -1,9 +1,9 @@ use crate::{ traits::{BlockSource, ReceiptProvider}, - AccountReader, BlockHashProvider, BlockIdProvider, BlockNumProvider, BlockProvider, - BlockProviderIdExt, EvmEnvProvider, HeaderProvider, PostState, ReceiptProviderIdExt, - StageCheckpointReader, StateProvider, StateProviderBox, StateProviderFactory, - StateRootProvider, TransactionsProvider, WithdrawalsProvider, + AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt, + EvmEnvProvider, HeaderProvider, PostState, ReceiptProviderIdExt, StageCheckpointReader, + StateProvider, StateProviderBox, StateProviderFactory, StateRootProvider, TransactionsProvider, + WithdrawalsProvider, }; use reth_db::models::StoredBlockBodyIndices; use reth_interfaces::Result; @@ -22,7 +22,7 @@ use std::ops::RangeBounds; pub struct NoopProvider; /// Noop implementation for testing purposes -impl BlockHashProvider for NoopProvider { +impl BlockHashReader for NoopProvider { fn block_hash(&self, _number: u64) -> Result> { Ok(None) } @@ -32,7 +32,7 @@ impl BlockHashProvider for NoopProvider { } } -impl BlockNumProvider for NoopProvider { +impl BlockNumReader for NoopProvider { fn chain_info(&self) -> Result { Ok(ChainInfo::default()) } @@ -50,7 +50,7 @@ impl BlockNumProvider for NoopProvider { } } -impl BlockProvider for NoopProvider { +impl BlockReader for NoopProvider { fn find_block_by_hash(&self, hash: H256, _source: BlockSource) -> Result> { self.block(hash.into()) } @@ -79,7 +79,7 @@ impl BlockProvider for NoopProvider { } } -impl BlockProviderIdExt for NoopProvider { +impl BlockReaderIdExt for NoopProvider { fn block_by_id(&self, _id: BlockId) -> Result> { Ok(None) } @@ -97,7 +97,7 @@ impl BlockProviderIdExt for NoopProvider { } } -impl BlockIdProvider for NoopProvider { +impl BlockIdReader for NoopProvider { fn pending_block_num_hash(&self) -> Result> { Ok(None) } diff --git a/crates/storage/provider/src/traits/block.rs b/crates/storage/provider/src/traits/block.rs index c8fbc16e8..079e12a08 100644 --- a/crates/storage/provider/src/traits/block.rs +++ b/crates/storage/provider/src/traits/block.rs @@ -1,5 +1,5 @@ use crate::{ - BlockIdProvider, BlockNumProvider, HeaderProvider, ReceiptProvider, ReceiptProviderIdExt, + BlockIdReader, BlockNumReader, HeaderProvider, ReceiptProvider, ReceiptProviderIdExt, TransactionsProvider, WithdrawalsProvider, }; use reth_db::models::StoredBlockBodyIndices; @@ -45,8 +45,8 @@ impl BlockSource { /// If not requested otherwise, implementers of this trait should prioritize fetching blocks from /// the database. #[auto_impl::auto_impl(&, Arc)] -pub trait BlockProvider: - BlockNumProvider +pub trait BlockReader: + BlockNumReader + HeaderProvider + TransactionsProvider + ReceiptProvider @@ -102,18 +102,18 @@ pub trait BlockProvider: fn block_with_senders(&self, number: BlockNumber) -> Result>; } -/// Trait extension for `BlockProvider`, for types that implement `BlockId` conversion. +/// Trait extension for `BlockReader`, for types that implement `BlockId` conversion. /// -/// The `BlockProvider` trait should be implemented on types that can retrieve a block from either +/// The `BlockReader` trait should be implemented on types that can retrieve a block from either /// a block number or hash. However, it might be desirable to fetch a block from a `BlockId` type, /// which can be a number, hash, or tag such as `BlockNumberOrTag::Safe`. /// /// Resolving tags requires keeping track of block hashes or block numbers associated with the tag, -/// so this trait can only be implemented for types that implement `BlockIdProvider`. The -/// `BlockIdProvider` methods should be used to resolve `BlockId`s to block numbers or hashes, and -/// retrieving the block should be done using the type's `BlockProvider` methods. +/// so this trait can only be implemented for types that implement `BlockIdReader`. The +/// `BlockIdReader` methods should be used to resolve `BlockId`s to block numbers or hashes, and +/// retrieving the block should be done using the type's `BlockReader` methods. #[auto_impl::auto_impl(&, Arc)] -pub trait BlockProviderIdExt: BlockProvider + BlockIdProvider + ReceiptProviderIdExt { +pub trait BlockReaderIdExt: BlockReader + BlockIdReader + ReceiptProviderIdExt { /// Returns the block with matching tag from the database /// /// Returns `None` if block is not found. diff --git a/crates/storage/provider/src/traits/block_hash.rs b/crates/storage/provider/src/traits/block_hash.rs index ed8249cdd..24cf93284 100644 --- a/crates/storage/provider/src/traits/block_hash.rs +++ b/crates/storage/provider/src/traits/block_hash.rs @@ -4,7 +4,7 @@ use reth_primitives::{BlockHashOrNumber, BlockNumber, H256}; /// Client trait for fetching block hashes by number. #[auto_impl(&, Arc, Box)] -pub trait BlockHashProvider: Send + Sync { +pub trait BlockHashReader: Send + Sync { /// Get the hash of the block with the given number. Returns `None` if no block with this number /// exists. fn block_hash(&self, number: BlockNumber) -> Result>; diff --git a/crates/storage/provider/src/traits/block_id.rs b/crates/storage/provider/src/traits/block_id.rs index f83929acb..4fd3ae4a1 100644 --- a/crates/storage/provider/src/traits/block_id.rs +++ b/crates/storage/provider/src/traits/block_id.rs @@ -1,4 +1,4 @@ -use super::BlockHashProvider; +use super::BlockHashReader; use reth_interfaces::Result; use reth_primitives::{BlockHashOrNumber, BlockId, BlockNumber, BlockNumberOrTag, ChainInfo, H256}; @@ -7,7 +7,7 @@ use reth_primitives::{BlockHashOrNumber, BlockId, BlockNumber, BlockNumberOrTag, /// /// This trait also supports fetching block hashes and block numbers from a [BlockHashOrNumber]. #[auto_impl::auto_impl(&, Arc)] -pub trait BlockNumProvider: BlockHashProvider + Send + Sync { +pub trait BlockNumReader: BlockHashReader + Send + Sync { /// Returns the current info for the chain. fn chain_info(&self) -> Result; @@ -46,10 +46,10 @@ pub trait BlockNumProvider: BlockHashProvider + Send + Sync { /// are provided if the type implements the `pending_block_num_hash`, `finalized_block_num`, and /// `safe_block_num` methods. /// -/// The resulting block numbers can be converted to hashes using the underlying [BlockNumProvider] +/// The resulting block numbers can be converted to hashes using the underlying [BlockNumReader] /// methods, and vice versa. #[auto_impl::auto_impl(&, Arc)] -pub trait BlockIdProvider: BlockNumProvider + Send + Sync { +pub trait BlockIdReader: BlockNumReader + Send + Sync { /// Converts the `BlockNumberOrTag` variants to a block number. fn convert_block_number(&self, num: BlockNumberOrTag) -> Result> { let num = match num { diff --git a/crates/storage/provider/src/traits/mod.rs b/crates/storage/provider/src/traits/mod.rs index 81ad694a5..88b7358f4 100644 --- a/crates/storage/provider/src/traits/mod.rs +++ b/crates/storage/provider/src/traits/mod.rs @@ -7,13 +7,13 @@ mod storage; pub use storage::StorageReader; mod block; -pub use block::{BlockProvider, BlockProviderIdExt, BlockSource}; +pub use block::{BlockReader, BlockReaderIdExt, BlockSource}; mod block_hash; -pub use block_hash::BlockHashProvider; +pub use block_hash::BlockHashReader; mod block_id; -pub use block_id::{BlockIdProvider, BlockNumProvider}; +pub use block_id::{BlockIdReader, BlockNumReader}; mod evm_env; pub use evm_env::EvmEnvProvider; diff --git a/crates/storage/provider/src/traits/receipts.rs b/crates/storage/provider/src/traits/receipts.rs index 3192679f6..3166b6208 100644 --- a/crates/storage/provider/src/traits/receipts.rs +++ b/crates/storage/provider/src/traits/receipts.rs @@ -1,7 +1,7 @@ use reth_interfaces::Result; use reth_primitives::{BlockHashOrNumber, BlockId, BlockNumberOrTag, Receipt, TxHash, TxNumber}; -use crate::BlockIdProvider; +use crate::BlockIdReader; /// Client trait for fetching [Receipt] data . #[auto_impl::auto_impl(&, Arc)] @@ -29,10 +29,10 @@ pub trait ReceiptProvider: Send + Sync { /// which can be a number, hash, or tag such as `BlockNumberOrTag::Safe`. /// /// Resolving tags requires keeping track of block hashes or block numbers associated with the tag, -/// so this trait can only be implemented for types that implement `BlockIdProvider`. The -/// `BlockIdProvider` methods should be used to resolve `BlockId`s to block numbers or hashes, and +/// so this trait can only be implemented for types that implement `BlockIdReader`. The +/// `BlockIdReader` methods should be used to resolve `BlockId`s to block numbers or hashes, and /// retrieving the receipts should be done using the type's `ReceiptProvider` methods. -pub trait ReceiptProviderIdExt: ReceiptProvider + BlockIdProvider { +pub trait ReceiptProviderIdExt: ReceiptProvider + BlockIdReader { /// Get receipt by block id fn receipts_by_block_id(&self, block: BlockId) -> Result>> { let id = match block { diff --git a/crates/storage/provider/src/traits/state.rs b/crates/storage/provider/src/traits/state.rs index 5e9dca995..e09b13522 100644 --- a/crates/storage/provider/src/traits/state.rs +++ b/crates/storage/provider/src/traits/state.rs @@ -1,5 +1,5 @@ use super::AccountReader; -use crate::{post_state::PostState, BlockHashProvider, BlockIdProvider}; +use crate::{post_state::PostState, BlockHashReader, BlockIdReader}; use auto_impl::auto_impl; use reth_interfaces::{provider::ProviderError, Result}; use reth_primitives::{ @@ -12,9 +12,7 @@ pub type StateProviderBox<'a> = Box; /// An abstraction for a type that provides state data. #[auto_impl(&, Arc, Box)] -pub trait StateProvider: - BlockHashProvider + AccountReader + StateRootProvider + Send + Sync -{ +pub trait StateProvider: BlockHashReader + AccountReader + StateRootProvider + Send + Sync { /// Get storage of given account. fn storage(&self, account: Address, storage_key: StorageKey) -> Result>; @@ -96,7 +94,7 @@ pub trait StateProvider: /// This affects tracing, or replaying blocks, which will need to be executed on top of the state of /// the parent block. For example, in order to trace block `n`, the state after block `n - 1` needs /// to be used, since block `n` was executed on its parent block's state. -pub trait StateProviderFactory: BlockIdProvider + Send + Sync { +pub trait StateProviderFactory: BlockIdReader + Send + Sync { /// Storage provider for latest block. fn latest(&self) -> Result>; diff --git a/crates/storage/provider/src/traits/transactions.rs b/crates/storage/provider/src/traits/transactions.rs index e53a03cbf..6bbd17454 100644 --- a/crates/storage/provider/src/traits/transactions.rs +++ b/crates/storage/provider/src/traits/transactions.rs @@ -1,4 +1,4 @@ -use crate::BlockNumProvider; +use crate::BlockNumReader; use reth_interfaces::Result; use reth_primitives::{ Address, BlockHashOrNumber, BlockNumber, TransactionMeta, TransactionSigned, @@ -8,7 +8,7 @@ use std::ops::RangeBounds; /// Client trait for fetching [TransactionSigned] related data. #[auto_impl::auto_impl(&, Arc)] -pub trait TransactionsProvider: BlockNumProvider + Send + Sync { +pub trait TransactionsProvider: BlockNumReader + Send + Sync { /// Get internal transaction identifier by transaction hash. /// /// This is the inverse of [TransactionsProvider::transaction_by_id]. diff --git a/crates/transaction-pool/src/maintain.rs b/crates/transaction-pool/src/maintain.rs index 5805e715a..8fd87e066 100644 --- a/crates/transaction-pool/src/maintain.rs +++ b/crates/transaction-pool/src/maintain.rs @@ -6,7 +6,7 @@ use crate::{ }; use futures_util::{future::BoxFuture, FutureExt, Stream, StreamExt}; use reth_primitives::{Address, BlockHash, BlockNumberOrTag, FromRecoveredTransaction}; -use reth_provider::{BlockProviderIdExt, CanonStateNotification, PostState, StateProviderFactory}; +use reth_provider::{BlockReaderIdExt, CanonStateNotification, PostState, StateProviderFactory}; use std::{ borrow::Borrow, collections::HashSet, @@ -25,7 +25,7 @@ pub fn maintain_transaction_pool_future( events: St, ) -> BoxFuture<'static, ()> where - Client: StateProviderFactory + BlockProviderIdExt + Send + 'static, + Client: StateProviderFactory + BlockReaderIdExt + Send + 'static, V: TransactionValidator + Send + 'static, T: TransactionOrdering::Transaction> + Send + 'static, St: Stream + Send + Unpin + 'static, @@ -45,7 +45,7 @@ pub async fn maintain_transaction_pool( pool: Pool, mut events: St, ) where - Client: StateProviderFactory + BlockProviderIdExt + Send + 'static, + Client: StateProviderFactory + BlockReaderIdExt + Send + 'static, V: TransactionValidator + Send + 'static, T: TransactionOrdering::Transaction> + Send + 'static, St: Stream + Send + Unpin + 'static, diff --git a/docs/crates/discv4.md b/docs/crates/discv4.md index 083ea1b17..fe37cf463 100644 --- a/docs/crates/discv4.md +++ b/docs/crates/discv4.md @@ -26,7 +26,7 @@ During this process, a new `NetworkManager` is created through the `NetworkManag ```rust ignore impl NetworkManager where - C: BlockProvider, + C: BlockReader, { //--snip-- @@ -267,7 +267,7 @@ In Reth, once a new `NetworkState` is initialized as the node starts up and a ne ```rust ignore impl NetworkState where - C: BlockProvider, + C: BlockReader, { /// Advances the state pub(crate) fn poll(&mut self, cx: &mut Context<'_>) -> Poll { diff --git a/docs/crates/network.md b/docs/crates/network.md index c67b7b6ee..f78a5f5d3 100644 --- a/docs/crates/network.md +++ b/docs/crates/network.md @@ -88,7 +88,7 @@ Let's begin by taking a look at the line where the network is started, with the ```rust,ignore async fn start_network(config: NetworkConfig) -> Result where - C: BlockProvider + HeaderProvider + 'static, + C: BlockReader + HeaderProvider + 'static, { let client = config.client.clone(); let (handle, network, _txpool, eth) =