Trait BlockAssembler

pub trait BlockAssembler<F>{
    type Block: Block;

    // Required method
    fn assemble_block(
        &self,
        input: BlockAssemblerInput<'_, '_, F, <Self::Block as Block>::Header>,
    ) -> Result<Self::Block, BlockExecutionError>;
}
Available on crate feature evm only.
Expand description

A type that knows how to assemble a block.

Required Associated Types§

type Block: Block

The block type produced by the assembler.

Required Methods§

fn assemble_block( &self, input: BlockAssemblerInput<'_, '_, F, <Self::Block as Block>::Header>, ) -> Result<Self::Block, BlockExecutionError>

Builds a block. see BlockAssemblerInput documentation for more details.

Implementations on Foreign Types§

§

impl<'a, F, T> BlockAssembler<F> for &'a T
where F: BlockExecutorFactory, T: 'a + BlockAssembler<F> + ?Sized,

§

impl<F, T> BlockAssembler<F> for Arc<T>

§

type Block = <T as BlockAssembler<F>>::Block

§

fn assemble_block( &self, input: BlockAssemblerInput<'_, '_, F, <<Arc<T> as BlockAssembler<F>>::Block as Block>::Header>, ) -> Result<<Arc<T> as BlockAssembler<F>>::Block, BlockExecutionError>

Implementors§

Source§

impl<F, ChainSpec> BlockAssembler<F> for OpBlockAssembler<ChainSpec>
where ChainSpec: OpHardforks, F: for<'a> BlockExecutorFactory<ExecutionCtx<'a> = OpBlockExecutionCtx>, <F as BlockExecutorFactory>::Transaction: for<'a> SignedTransaction, <F as BlockExecutorFactory>::Receipt: for<'a> Receipt + for<'a> DepositReceipt,

impl<F, ChainSpec> BlockAssembler<F> for EthBlockAssembler<ChainSpec>
where F: for<'a> BlockExecutorFactory<ExecutionCtx<'a> = EthBlockExecutionCtx<'a>, Transaction = TransactionSigned, Receipt = Receipt>, ChainSpec: EthChainSpec + EthereumHardforks,