mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-08 03:01:12 -04:00
feat(alloy-provider): implement sealed_header method (#17455)
This commit is contained in:
@@ -301,20 +301,12 @@ where
|
||||
}
|
||||
|
||||
fn header_by_number(&self, num: u64) -> ProviderResult<Option<Self::Header>> {
|
||||
let block_response = self.block_on_async(async {
|
||||
self.provider.get_block_by_number(num.into()).await.map_err(ProviderError::other)
|
||||
})?;
|
||||
|
||||
let Some(block_response) = block_response else {
|
||||
let Some(sealed_header) = self.sealed_header(num)? else {
|
||||
// If the block was not found, return None
|
||||
return Ok(None);
|
||||
};
|
||||
|
||||
// Convert the network block response to primitive block
|
||||
let block = <BlockTy<Node> as TryFromBlockResponse<N>>::from_block_response(block_response)
|
||||
.map_err(ProviderError::other)?;
|
||||
|
||||
Ok(Some(block.into_header()))
|
||||
Ok(Some(sealed_header.into_header()))
|
||||
}
|
||||
|
||||
fn header_td(&self, _hash: &BlockHash) -> ProviderResult<Option<U256>> {
|
||||
@@ -334,9 +326,23 @@ where
|
||||
|
||||
fn sealed_header(
|
||||
&self,
|
||||
_number: BlockNumber,
|
||||
number: BlockNumber,
|
||||
) -> ProviderResult<Option<SealedHeader<Self::Header>>> {
|
||||
Err(ProviderError::UnsupportedProvider)
|
||||
let block_response = self.block_on_async(async {
|
||||
self.provider.get_block_by_number(number.into()).await.map_err(ProviderError::other)
|
||||
})?;
|
||||
|
||||
let Some(block_response) = block_response else {
|
||||
// If the block was not found, return None
|
||||
return Ok(None);
|
||||
};
|
||||
let block_hash = block_response.header().hash();
|
||||
|
||||
// Convert the network block response to primitive block
|
||||
let block = <BlockTy<Node> as TryFromBlockResponse<N>>::from_block_response(block_response)
|
||||
.map_err(ProviderError::other)?;
|
||||
|
||||
Ok(Some(SealedHeader::new(block.into_header(), block_hash)))
|
||||
}
|
||||
|
||||
fn sealed_headers_while(
|
||||
|
||||
Reference in New Issue
Block a user