Trait BlockBuilderApi

Source
pub trait BlockBuilderApi: RuntimeApi {
    type ApplyExtrinsicResult;
    type Block;
    type InherentData;
    type CheckInherentsResult;
    type Header;

    // Required methods
    fn apply_extrinsic<'life0, 'async_trait, Address, Call, Signature, TransactionExtension>(
        &'life0 self,
        extrinsic: UncheckedExtrinsic<Address, Call, Signature, TransactionExtension>,
        at_block: Option<Self::Hash>,
    ) -> Pin<Box<dyn Future<Output = Result<Self::ApplyExtrinsicResult>> + 'async_trait>>
       where Address: Encode + 'async_trait,
             Call: Encode + 'async_trait,
             Signature: Encode + 'async_trait,
             TransactionExtension: Encode + 'async_trait,
             Self: 'async_trait,
             'life0: 'async_trait;
    fn apply_opaque_extrinsic<'life0, 'async_trait>(
        &'life0 self,
        extrinsic: Vec<u8>,
        at_block: Option<Self::Hash>,
    ) -> Pin<Box<dyn Future<Output = Result<Self::ApplyExtrinsicResult>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn check_inherents<'life0, 'async_trait>(
        &'life0 self,
        block: Self::Block,
        data: Self::InherentData,
        at_block: Option<Self::Hash>,
    ) -> Pin<Box<dyn Future<Output = Result<Self::CheckInherentsResult>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn finalize_block<'life0, 'async_trait>(
        &'life0 self,
        at_block: Option<Self::Hash>,
    ) -> Pin<Box<dyn Future<Output = Result<Self::Header>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn inherent_extrinsics<'life0, 'async_trait>(
        &'life0 self,
        inherent: Self::InherentData,
        at_block: Option<Self::Hash>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Bytes>>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}

Required Associated Types§

Required Methods§

Source

fn apply_extrinsic<'life0, 'async_trait, Address, Call, Signature, TransactionExtension>( &'life0 self, extrinsic: UncheckedExtrinsic<Address, Call, Signature, TransactionExtension>, at_block: Option<Self::Hash>, ) -> Pin<Box<dyn Future<Output = Result<Self::ApplyExtrinsicResult>> + 'async_trait>>
where Address: Encode + 'async_trait, Call: Encode + 'async_trait, Signature: Encode + 'async_trait, TransactionExtension: Encode + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

Apply the given extrinsic.

Source

fn apply_opaque_extrinsic<'life0, 'async_trait>( &'life0 self, extrinsic: Vec<u8>, at_block: Option<Self::Hash>, ) -> Pin<Box<dyn Future<Output = Result<Self::ApplyExtrinsicResult>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Apply the given opaque extrinsic.

Source

fn check_inherents<'life0, 'async_trait>( &'life0 self, block: Self::Block, data: Self::InherentData, at_block: Option<Self::Hash>, ) -> Pin<Box<dyn Future<Output = Result<Self::CheckInherentsResult>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Check that the inherents are valid.

Source

fn finalize_block<'life0, 'async_trait>( &'life0 self, at_block: Option<Self::Hash>, ) -> Pin<Box<dyn Future<Output = Result<Self::Header>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Finish the current block.

Source

fn inherent_extrinsics<'life0, 'async_trait>( &'life0 self, inherent: Self::InherentData, at_block: Option<Self::Hash>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Bytes>>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Generate inherent extrinsics and return them as encoded Bytes.

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.

Implementors§