pub trait ChainInfo<Block>:
Clone
+ Send
+ Sync
+ 'staticwhere
Block: GenericOwnedBlock,{
// Required methods
fn best_root(&self) -> BlockRoot;
fn best_header(&self) -> Block::Header;
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 mmr_with_block(
&self,
block_root: &BlockRoot,
) -> Option<Arc<BlockMerkleMountainRange>>;
}
Expand description
Chain info
Required Methods§
Sourcefn best_header(&self) -> Block::Header
fn best_header(&self) -> Block::Header
Best block header
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 header of ancestor block number for descendant block root
Sourcefn mmr_with_block(
&self,
block_root: &BlockRoot,
) -> Option<Arc<BlockMerkleMountainRange>>
fn mmr_with_block( &self, block_root: &BlockRoot, ) -> Option<Arc<BlockMerkleMountainRange>>
Merkle Mountain Range with block
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.