diff --git a/examples/advanced/Cargo.toml b/examples/advanced/Cargo.toml index b98be13..75821f3 100644 --- a/examples/advanced/Cargo.toml +++ b/examples/advanced/Cargo.toml @@ -19,11 +19,7 @@ revm-primitives.workspace = true revm.workspace = true # reth -reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", rev = "b66e4f5" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", rev = "b66e4f5" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", rev = "b66e4f5" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", rev = "b66e4f5" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", rev = "b66e4f5" } +reth-alloy = { git = "https://github.com/paradigmxyz/reth", package = "reth-alloy", rev = "327d072" } eyre.workspace = true tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } diff --git a/examples/advanced/examples/reth_db_provider.rs b/examples/advanced/examples/reth_db_provider.rs index 6a9a9db..2e30b05 100644 --- a/examples/advanced/examples/reth_db_provider.rs +++ b/examples/advanced/examples/reth_db_provider.rs @@ -10,30 +10,14 @@ //! their own implementation of the `Provider` trait and fetch results from any source. //! //! Learn more about `ProviderCall` [here](https://github.com/alloy-rs/alloy/pull/788). -use std::{marker::PhantomData, path::PathBuf, sync::Arc}; - use alloy::{ - eips::{BlockId, BlockNumberOrTag}, + eips::BlockId, node_bindings::{utils::run_with_tempdir, Reth}, - primitives::{address, Address, U64}, - providers::{ - Provider, ProviderBuilder, ProviderCall, ProviderLayer, RootProvider, RpcWithBlock, - }, - rpc::client::NoParams, - transports::{Transport, TransportErrorKind}, + primitives::address, + providers::{Provider, ProviderBuilder}, }; use eyre::Result; - -use reth_chainspec::ChainSpecBuilder; -use reth_db::{open_db_read_only, DatabaseEnv}; -use reth_node_ethereum::EthereumNode; -use reth_node_types::NodeTypesWithDBAdapter; -use reth_provider::{ - providers::StaticFileProvider, BlockNumReader, DatabaseProviderFactory, ProviderError, - ProviderFactory, StateProvider, TryIntoHistoricalStateProvider, -}; -mod reth_db_layer; -use reth_db_layer::RethDbLayer; +use reth_alloy::RethDbLayer; #[tokio::main] async fn main() -> Result<()> { @@ -93,134 +77,3 @@ async fn main() -> Result<()> { Ok(()) } - -/// Implement the `ProviderLayer` trait for the `RethDBLayer` struct. -impl
ProviderLayer
for RethDbLayer
-where
- P: Provider ;
-
- fn layer(&self, inner: P) -> Self::Provider {
- RethDbProvider::new(inner, self.db_path().clone())
- }
-}
-
-/// A provider that overrides the vanilla `Provider` trait to get results from the reth-db.
-///
-/// It holds the `reth_provider::ProviderFactory` that enables read-only access to the database
-/// tables and static files.
-#[derive(Clone, Debug)]
-pub struct RethDbProvider {
- inner: P,
- db_path: PathBuf,
- provider_factory: DbAccessor,
- _pd: PhantomData RethDbProvider {
- /// Create a new `RethDbProvider` instance.
- pub fn new(inner: P, db_path: PathBuf) -> Self {
- let db = open_db_read_only(&db_path, Default::default()).unwrap();
- let chain_spec = ChainSpecBuilder::mainnet().build();
- let static_file_provider =
- StaticFileProvider::read_only(db_path.join("static_files"), false).unwrap();
-
- let provider_factory =
- ProviderFactory::new(db.into(), chain_spec.into(), static_file_provider);
-
- let db_accessor: DbAccessor<
- ProviderFactory Provider
-where
- P: Provider