,
}
-/// Wrapper over `Provider` that adds concurrency and rate limiting controls
-#[derive(Debug)]
-pub struct Fetcher
{
- /// provider data source
- pub provider: RootProvider
,
- /// semaphore for controlling concurrency
- pub semaphore: Option,
- /// rate limiter for controlling request rate
- pub rate_limiter: Option,
-}
-
type Result = ::core::result::Result;
// impl Fetcher {
@@ -238,9 +227,12 @@ impl Source {
trace_types: Vec,
) -> Result> {
let _permit = self.permit_request().await;
- Self::map_err(
- self.provider.trace_replay_block_transactions(block.into(), &trace_types).await,
- )
+ let trace_result = self
+ .provider
+ .trace_replay_block_transactions(block.into())
+ .trace_types(trace_types)
+ .await;
+ Self::map_err(trace_result)
}
/// Get state diff traces of block
@@ -298,7 +290,9 @@ impl Source {
trace_types: Vec,
) -> Result {
let _permit = self.permit_request().await;
- Self::map_err(self.provider.trace_replay_transaction(tx_hash, &trace_types).await)
+ let trace_result =
+ self.provider.trace_replay_transaction(tx_hash).trace_types(trace_types).await;
+ Self::map_err(trace_result)
}
/// Get state diff traces of transaction
@@ -348,7 +342,8 @@ impl Source {
kind: BlockTransactionsKind,
) -> Result