Skip to main content

BlockImport

Trait BlockImport 

Source
pub trait BlockImport<B>
where B: Block,
{ type Error: Error + Send + 'static; // Required methods fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, Self::Error>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, Self::Error>> + Send + 'async_trait>> where 'life0: 'async_trait, Self: 'async_trait; }
Expand description

Block import trait.

Required Associated Types§

Source

type Error: Error + Send + 'static

The error type.

Required Methods§

Source

fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Check block preconditions.

Source

fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Import a block.

Trait Implementations§

Source§

impl<B> BlockImport<B> for Box<dyn BlockImport<B, Error = Error> + Sync + Send>
where B: Block,

Source§

fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <Box<dyn BlockImport<B, Error = Error> + Sync + Send> as BlockImport<B>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<dyn BlockImport<B, Error = Error> + Sync + Send>: 'async_trait,

Check block preconditions.

Source§

fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <Box<dyn BlockImport<B, Error = Error> + Sync + Send> as BlockImport<B>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<dyn BlockImport<B, Error = Error> + Sync + Send>: 'async_trait,

Import a block.

Source§

type Error = Error

The error type.

Implementations on Foreign Types§

Source§

impl<B> BlockImport<B> for Box<dyn BlockImport<B, Error = Error> + Sync + Send>
where B: Block,

Source§

fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <Box<dyn BlockImport<B, Error = Error> + Sync + Send> as BlockImport<B>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<dyn BlockImport<B, Error = Error> + Sync + Send>: 'async_trait,

Check block preconditions.

Source§

fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<B>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <Box<dyn BlockImport<B, Error = Error> + Sync + Send> as BlockImport<B>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Box<dyn BlockImport<B, Error = Error> + Sync + Send>: 'async_trait,

Import a block.

Source§

type Error = Error

Source§

impl<BE, Block, Client, SC> BlockImport<Block> for GrandpaBlockImport<BE, Block, Client, SC>
where Block: Block, <<Block as Block>::Header as Header>::Number: BlockNumberOps, BE: Backend<Block>, Client: ClientForGrandpa<Block, BE>, <Client as ProvideRuntimeApi<Block>>::Api: GrandpaApi<Block>, &'a Client: for<'a> BlockImport<Block, Error = Error>, SC: Send + Sync,

Source§

type Error = Error

Source§

fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<Block>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,

Source§

fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<Block>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <GrandpaBlockImport<BE, Block, Client, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, GrandpaBlockImport<BE, Block, Client, SC>: 'async_trait,

Source§

impl<Block, Client, Inner, CIDP, SC> BlockImport<Block> for BabeBlockImport<Block, Client, Inner, CIDP, SC>
where Block: Block, Inner: BlockImport<Block> + Send + Sync, <Inner as BlockImport<Block>>::Error: Into<Error>, Client: HeaderBackend<Block> + HeaderMetadata<Block, Error = Error> + AuxStore + ProvideRuntimeApi<Block> + Send + Sync, <Client as ProvideRuntimeApi<Block>>::Api: BlockBuilder<Block> + BabeApi<Block> + ApiExt<Block>, CIDP: CreateInherentDataProviders<Block, ()>, <CIDP as CreateInherentDataProviders<Block, ()>>::InherentDataProviders: InherentDataProviderExt + Send + Sync, SC: SelectChain<Block> + 'static,

Source§

type Error = Error

Source§

fn import_block<'life0, 'async_trait>( &'life0 self, block: BlockImportParams<Block>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <BabeBlockImport<Block, Client, Inner, CIDP, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, BabeBlockImport<Block, Client, Inner, CIDP, SC>: 'async_trait,

Source§

fn check_block<'life0, 'async_trait>( &'life0 self, block: BlockCheckParams<Block>, ) -> Pin<Box<dyn Future<Output = Result<ImportResult, <BabeBlockImport<Block, Client, Inner, CIDP, SC> as BlockImport<Block>>::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, BabeBlockImport<Block, Client, Inner, CIDP, SC>: 'async_trait,

Implementors§

Source§

impl<B, E, Block, RA> BlockImport<Block> for &Client<B, E, Block, RA>
where B: Backend<Block>, E: CallExecutor<Block> + Send + Sync, Block: Block, Client<B, E, Block, RA>: ProvideRuntimeApi<Block>, <Client<B, E, Block, RA> as ProvideRuntimeApi<Block>>::Api: Core<Block> + ApiExt<Block>, RA: Sync + Send,

NOTE: only use this implementation when you are sure there are NO consensus-level BlockImport objects. Otherwise, importing blocks directly into the client would be bypassing important verification work.

Source§

impl<B, E, Block, RA> BlockImport<Block> for Client<B, E, Block, RA>
where B: Backend<Block>, E: CallExecutor<Block> + Send + Sync, Block: Block, Client<B, E, Block, RA>: ProvideRuntimeApi<Block>, <Client<B, E, Block, RA> as ProvideRuntimeApi<Block>>::Api: Core<Block> + ApiExt<Block>, RA: Sync + Send,

Source§

impl<B, T, E> BlockImport<B> for Arc<T>
where B: Block, E: Error + Send + 'static, &'r T: for<'r> BlockImport<B, Error = E>, T: Send + Sync,

Source§

type Error = E