mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: auto impl Arc, & and Box for StateProviderFactory (#7526)
This commit is contained in:
@ -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,
|
||||
|
||||
@ -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>;
|
||||
|
||||
Reference in New Issue
Block a user