pub trait BlockBuildingInfoProvider<Block: BlockT, ExtraArgs = ()> {
    type InherentDataProviders: InherentDataProvider;

    // Required method
    fn get_inherent_providers_and_pre_digest<'life0, 'async_trait>(
        &'life0 self,
        parent_hash: Block::Hash,
        extra_args: ExtraArgs
    ) -> Pin<Box<dyn Future<Output = Result<(Self::InherentDataProviders, Vec<DigestItem>)>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Something that can create inherent data providers and pre-runtime digest.

It is possible for the caller to provide custom arguments to the callee by setting the ExtraArgs generic parameter.

This module already provides some convenience implementation of this trait for closures. So, it should not be required to implement it directly.

Required Associated Types§

Required Methods§

source

fn get_inherent_providers_and_pre_digest<'life0, 'async_trait>( &'life0 self, parent_hash: Block::Hash, extra_args: ExtraArgs ) -> Pin<Box<dyn Future<Output = Result<(Self::InherentDataProviders, Vec<DigestItem>)>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Implementors§

source§

impl<F, Block, IDP, ExtraArgs, Fut> BlockBuildingInfoProvider<Block, ExtraArgs> for Fwhere Block: BlockT, F: Fn(Block::Hash, ExtraArgs) -> Fut + Sync + Send, Fut: Future<Output = Result<(IDP, Vec<DigestItem>)>> + Send + 'static, IDP: InherentDataProvider + 'static, ExtraArgs: Send + 'static,