reth_storage_api/
ommers.rs

1use crate::HeaderProvider;
2use alloy_eips::BlockHashOrNumber;
3use reth_storage_errors::provider::ProviderResult;
4
5/// Client trait for fetching ommers.
6pub trait OmmersProvider: HeaderProvider + Send + Sync {
7    /// Returns the ommers/uncle headers of the given block from the database.
8    ///
9    /// Returns `None` if block is not found.
10    fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Vec<Self::Header>>>;
11}
12
13impl<T: OmmersProvider> OmmersProvider for std::sync::Arc<T> {
14    fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Vec<Self::Header>>> {
15        T::ommers(self, id)
16    }
17}
18
19impl<T: OmmersProvider> OmmersProvider for &T {
20    fn ommers(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Vec<Self::Header>>> {
21        T::ommers(self, id)
22    }
23}