pub trait ChainInfo<Block>:
Clone
+ Send
+ Sync
+ 'staticwhere
Block: GenericOwnedBlock,{
// Required methods
fn best_root(&self) -> BlockRoot;
fn best_header(&self) -> Block::Header;
fn best_header_with_details(&self) -> (Block::Header, BlockDetails);
fn ancestor_header(
&self,
ancestor_block_number: BlockNumber,
descendant_block_root: &BlockRoot,
) -> Option<Block::Header>;
fn header(&self, block_root: &BlockRoot) -> Option<Block::Header>;
fn header_with_details(
&self,
block_root: &BlockRoot,
) -> Option<(Block::Header, BlockDetails)>;
fn block(
&self,
block_root: &BlockRoot,
) -> impl Future<Output = Result<Block, ReadBlockError>> + Send;
fn last_segment_header(&self) -> Option<SegmentHeader>;
fn get_segment_header(
&self,
segment_index: LocalSegmentIndex,
) -> Option<SegmentHeader>;
fn segment_headers_for_block(
&self,
block_number: BlockNumber,
) -> Vec<SegmentHeader>;
}Expand description
Chain info.
NOTE:
Required Methods§
Sourcefn best_header(&self) -> Block::Header
fn best_header(&self) -> Block::Header
Best block header
Sourcefn best_header_with_details(&self) -> (Block::Header, BlockDetails)
fn best_header_with_details(&self) -> (Block::Header, BlockDetails)
Returns the best block header like Self::best_header() with additional block details
Sourcefn ancestor_header(
&self,
ancestor_block_number: BlockNumber,
descendant_block_root: &BlockRoot,
) -> Option<Block::Header>
fn ancestor_header( &self, ancestor_block_number: BlockNumber, descendant_block_root: &BlockRoot, ) -> Option<Block::Header>
Get the header of the block at ancestor_block_number on the chain ending at
descendant_block_root.
If ancestor_block_number is the descendant’s own number, the descendant’s header is
returned. Returns None if ancestor_block_number is higher than the descendant’s number
or if either block is not available.
Sourcefn header_with_details(
&self,
block_root: &BlockRoot,
) -> Option<(Block::Header, BlockDetails)>
fn header_with_details( &self, block_root: &BlockRoot, ) -> Option<(Block::Header, BlockDetails)>
Returns a block header like Self::header() with additional block details
fn block( &self, block_root: &BlockRoot, ) -> impl Future<Output = Result<Block, ReadBlockError>> + Send
Sourcefn last_segment_header(&self) -> Option<SegmentHeader>
fn last_segment_header(&self) -> Option<SegmentHeader>
Returns the last observed local segment header of this shard
Sourcefn get_segment_header(
&self,
segment_index: LocalSegmentIndex,
) -> Option<SegmentHeader>
fn get_segment_header( &self, segment_index: LocalSegmentIndex, ) -> Option<SegmentHeader>
Get a single segment header
Sourcefn segment_headers_for_block(
&self,
block_number: BlockNumber,
) -> Vec<SegmentHeader>
fn segment_headers_for_block( &self, block_number: BlockNumber, ) -> Vec<SegmentHeader>
Get segment headers that are expected to be included at specified block number
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".