feat: auto impl Arc, & and Box for StateProviderFactory (#7526)

This commit is contained in:
0xDmtri
2024-04-09 16:13:25 +01:00
committed by GitHub
parent e43b2f4829
commit cfd335b9b7
2 changed files with 1 additions and 33 deletions

View File

@ -659,39 +659,6 @@ impl StateProviderFactory for MockEthProvider {
}
}
impl StateProviderFactory for Arc<MockEthProvider> {
fn latest(&self) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
fn history_by_block_number(&self, _block: BlockNumber) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
fn history_by_block_hash(&self, _block: BlockHash) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
fn state_by_block_hash(&self, _block: BlockHash) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
fn pending(&self) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
fn pending_state_by_hash(&self, _block_hash: B256) -> ProviderResult<Option<StateProviderBox>> {
Ok(Some(Box::new(self.clone())))
}
fn pending_with_provider<'a>(
&'a self,
_bundle_state_data: Box<dyn BundleStateDataProvider + 'a>,
) -> ProviderResult<StateProviderBox> {
Ok(Box::new(self.clone()))
}
}
impl WithdrawalsProvider for MockEthProvider {
fn withdrawals_by_block(
&self,

View File

@ -97,6 +97,7 @@ pub trait StateProvider: BlockHashReader + AccountReader + StateRootProvider + S
/// 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.
#[auto_impl(&, Arc, Box)]
pub trait StateProviderFactory: BlockIdReader + Send + Sync {
/// Storage provider for latest block.
fn latest(&self) -> ProviderResult<StateProviderBox>;