From 92396b39c4561d601dfcb79c97ba949f5566df0e Mon Sep 17 00:00:00 2001 From: Abner Zheng Date: Mon, 26 Feb 2024 19:40:15 +0800 Subject: [PATCH] Remove `async-trait` as dependency from crate `stages` (#6771) --- Cargo.lock | 1 - crates/stages/Cargo.toml | 1 - crates/stages/src/stage.rs | 12 +++++++----- crates/stages/src/stages/bodies.rs | 1 - crates/stages/src/stages/hashing_account.rs | 1 - crates/stages/src/stages/hashing_storage.rs | 1 - crates/stages/src/stages/headers.rs | 1 - crates/stages/src/stages/merkle.rs | 1 - crates/stages/src/stages/total_difficulty.rs | 1 - crates/stages/src/test_utils/runner.rs | 4 +--- 10 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61769d545ef..08ac206a990 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6872,7 +6872,6 @@ dependencies = [ "alloy-rlp", "aquamarine", "assert_matches", - "async-trait", "auto_impl", "criterion", "futures-util", diff --git a/crates/stages/Cargo.toml b/crates/stages/Cargo.toml index 3f58fdc837e..337d582e22d 100644 --- a/crates/stages/Cargo.toml +++ b/crates/stages/Cargo.toml @@ -33,7 +33,6 @@ revm.workspace = true # async tokio = { workspace = true, features = ["sync"] } tokio-stream.workspace = true -async-trait.workspace = true futures-util.workspace = true pin-project.workspace = true diff --git a/crates/stages/src/stage.rs b/crates/stages/src/stage.rs index aa8360b7d9d..3e189ab7180 100644 --- a/crates/stages/src/stage.rs +++ b/crates/stages/src/stage.rs @@ -7,7 +7,7 @@ use reth_primitives::{ use reth_provider::{BlockReader, DatabaseProviderRW, ProviderError, TransactionsProvider}; use std::{ cmp::{max, min}, - future::poll_fn, + future::{poll_fn, Future}, ops::{Range, RangeInclusive}, task::{Context, Poll}, }; @@ -96,7 +96,7 @@ impl ExecInput { if all_tx_cnt == 0 { // if there is no more transaction return back. - return Ok((first_tx_num..first_tx_num, start_block..=target_block, true)) + return Ok((first_tx_num..first_tx_num, start_block..=target_block, true)); } // get block of this tx @@ -247,12 +247,14 @@ pub trait Stage: Send + Sync { } /// [Stage] trait extension. -#[async_trait::async_trait] pub trait StageExt: Stage { /// Utility extension for the `Stage` trait that invokes `Stage::poll_execute_ready` /// with [poll_fn] context. For more information see [Stage::poll_execute_ready]. - async fn execute_ready(&mut self, input: ExecInput) -> Result<(), StageError> { - poll_fn(|cx| self.poll_execute_ready(cx, input)).await + fn execute_ready( + &mut self, + input: ExecInput, + ) -> impl Future> + Send { + poll_fn(move |cx| self.poll_execute_ready(cx, input)) } } diff --git a/crates/stages/src/stages/bodies.rs b/crates/stages/src/stages/bodies.rs index 1eb913bf539..cf9b4dc64b6 100644 --- a/crates/stages/src/stages/bodies.rs +++ b/crates/stages/src/stages/bodies.rs @@ -565,7 +565,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for BodyTestRunner { type Seed = Vec; diff --git a/crates/stages/src/stages/hashing_account.rs b/crates/stages/src/stages/hashing_account.rs index d4b5b668a46..6d098d0177d 100644 --- a/crates/stages/src/stages/hashing_account.rs +++ b/crates/stages/src/stages/hashing_account.rs @@ -520,7 +520,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for AccountHashingTestRunner { type Seed = Vec<(Address, Account)>; diff --git a/crates/stages/src/stages/hashing_storage.rs b/crates/stages/src/stages/hashing_storage.rs index f3a20ce155d..b4f8f3582f0 100644 --- a/crates/stages/src/stages/hashing_storage.rs +++ b/crates/stages/src/stages/hashing_storage.rs @@ -477,7 +477,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for StorageHashingTestRunner { type Seed = Vec; diff --git a/crates/stages/src/stages/headers.rs b/crates/stages/src/stages/headers.rs index 33face802b7..bc0dc05ace5 100644 --- a/crates/stages/src/stages/headers.rs +++ b/crates/stages/src/stages/headers.rs @@ -382,7 +382,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for HeadersTestRunner { type Seed = Vec; diff --git a/crates/stages/src/stages/merkle.rs b/crates/stages/src/stages/merkle.rs index bb3345c4b29..b56b6ea7e0c 100644 --- a/crates/stages/src/stages/merkle.rs +++ b/crates/stages/src/stages/merkle.rs @@ -460,7 +460,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for MerkleTestRunner { type Seed = Vec; diff --git a/crates/stages/src/stages/total_difficulty.rs b/crates/stages/src/stages/total_difficulty.rs index 57f63f7a12f..6e2c152c4a3 100644 --- a/crates/stages/src/stages/total_difficulty.rs +++ b/crates/stages/src/stages/total_difficulty.rs @@ -224,7 +224,6 @@ mod tests { } } - #[async_trait::async_trait] impl ExecuteStageTestRunner for TotalDifficultyTestRunner { type Seed = Vec; diff --git a/crates/stages/src/test_utils/runner.rs b/crates/stages/src/test_utils/runner.rs index 70a4df02999..b8ef44084f3 100644 --- a/crates/stages/src/test_utils/runner.rs +++ b/crates/stages/src/test_utils/runner.rs @@ -27,7 +27,6 @@ pub(crate) trait StageTestRunner { fn stage(&self) -> Self::S; } -#[async_trait::async_trait] pub(crate) trait ExecuteStageTestRunner: StageTestRunner { type Seed: Send + Sync; @@ -63,7 +62,6 @@ pub(crate) trait ExecuteStageTestRunner: StageTestRunner { } } -#[async_trait::async_trait] pub(crate) trait UnwindStageTestRunner: StageTestRunner { /// Validate the unwind fn validate_unwind(&self, input: UnwindInput) -> Result<(), TestRunnerError>; @@ -78,7 +76,7 @@ pub(crate) trait UnwindStageTestRunner: StageTestRunner { provider.commit().expect("failed to commit"); tx.send(result).expect("failed to send result"); }); - Box::pin(rx).await.unwrap() + rx.await.unwrap() } /// Run a hook before [Stage::unwind]. Required for MerkleStage.