pub struct BlockBuilder<Client, Block: BlockT, Backend: Backend<Block>, Exec> { /* private fields */ }Expand description
Utility for building new (valid) blocks from a stream of extrinsics.
Implementations§
Source§impl<Client, Block, Backend, Exec> BlockBuilder<Client, Block, Backend, Exec>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + ExecutorProvider<Block>,
Client::Api: BlockBuilderApi<Block>,
Backend: Backend<Block>,
Exec: CodeExecutor,
impl<Client, Block, Backend, Exec> BlockBuilder<Client, Block, Backend, Exec>where
Block: BlockT,
Client: ProvideRuntimeApi<Block> + ExecutorProvider<Block>,
Client::Api: BlockBuilderApi<Block>,
Backend: Backend<Block>,
Exec: CodeExecutor,
Sourcepub fn new(
client: Arc<Client>,
parent_hash: Block::Hash,
parent_number: NumberFor<Block>,
inherent_digests: Digest,
backend: Arc<Backend>,
exec: Arc<Exec>,
extrinsics: VecDeque<Block::Extrinsic>,
maybe_inherent_data: Option<InherentData>,
) -> Result<Self, Error>
pub fn new( client: Arc<Client>, parent_hash: Block::Hash, parent_number: NumberFor<Block>, inherent_digests: Digest, backend: Arc<Backend>, exec: Arc<Exec>, extrinsics: VecDeque<Block::Extrinsic>, maybe_inherent_data: Option<InherentData>, ) -> Result<Self, Error>
Create a new instance of builder based on the given parent_hash and parent_number.
While proof recording is enabled, all accessed trie nodes are saved. These recorded trie nodes can be used by a third party to prove the output of this block builder without having access to the full storage.
Sourcepub fn prepare_storage_changes_before(
&mut self,
extrinsic_index: usize,
) -> Result<CollectedStorageChanges<HashingFor<Block>>, Error>
pub fn prepare_storage_changes_before( &mut self, extrinsic_index: usize, ) -> Result<CollectedStorageChanges<HashingFor<Block>>, Error>
Returns the state before executing the extrinsic at given extrinsic index.
Sourcepub fn prepare_storage_changes_before_finalize_block(
&mut self,
) -> Result<CollectedStorageChanges<HashingFor<Block>>, Error>
pub fn prepare_storage_changes_before_finalize_block( &mut self, ) -> Result<CollectedStorageChanges<HashingFor<Block>>, Error>
Returns the state before finalizing the block.
Sourcepub fn build(self) -> Result<BuiltBlock<Block>, Error>
pub fn build(self) -> Result<BuiltBlock<Block>, Error>
Consume the builder to build a valid Block containing all pushed extrinsics.
Returns the build Block, the changes to the storage and an optional StorageProof
supplied by self.api, combined as BuiltBlock.
The storage proof will be Some(_) when proof recording was enabled.
Auto Trait Implementations§
impl<Client, Block, Backend, Exec> Freeze for BlockBuilder<Client, Block, Backend, Exec>
impl<Client, Block, Backend, Exec> RefUnwindSafe for BlockBuilder<Client, Block, Backend, Exec>where
<Block as Block>::Hash: RefUnwindSafe,
<<Block as Block>::Header as Header>::Number: RefUnwindSafe,
<Backend as Backend<Block>>::State: RefUnwindSafe,
<Block as Block>::Extrinsic: RefUnwindSafe,
Client: RefUnwindSafe,
Exec: RefUnwindSafe,
<<Block as Block>::Header as Header>::Hashing: RefUnwindSafe,
impl<Client, Block, Backend, Exec> Send for BlockBuilder<Client, Block, Backend, Exec>
impl<Client, Block, Backend, Exec> Sync for BlockBuilder<Client, Block, Backend, Exec>
impl<Client, Block, Backend, Exec> Unpin for BlockBuilder<Client, Block, Backend, Exec>
impl<Client, Block, Backend, Exec> UnwindSafe for BlockBuilder<Client, Block, Backend, Exec>where
<Block as Block>::Hash: UnwindSafe,
<<Block as Block>::Header as Header>::Number: UnwindSafe,
<Backend as Backend<Block>>::State: UnwindSafe,
Client: RefUnwindSafe,
Exec: RefUnwindSafe,
<Block as Block>::Extrinsic: UnwindSafe,
<<Block as Block>::Header as Header>::Hashing: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T.