pub trait ExecuteBlock<Block: BlockT> {
// Required methods
fn verify_and_remove_seal(block: &mut Block::LazyBlock);
fn execute_verified_block(block: Block::LazyBlock);
// Provided method
fn execute_block(block: Block::LazyBlock) { ... }
}Expand description
Something that can execute a given block.
Executing a block means that all extrinsics in a given block will be executed and the resulting header will be checked against the header of the given block.
Required Methods§
Sourcefn verify_and_remove_seal(block: &mut Block::LazyBlock)
fn verify_and_remove_seal(block: &mut Block::LazyBlock)
Verify and remove seal.
Verifies any seal meant for the consensus logic represented by the implementation. An implementation may also chooses to not verify anything.
§Panic
Panics if a seal is invalid or if a seal is required, but not present.
Sourcefn execute_verified_block(block: Block::LazyBlock)
fn execute_verified_block(block: Block::LazyBlock)
Executes the given block after it was verified by [Self::verify_and_remove_seal].
§Panic
Panics when an extrinsics panics or the resulting header doesn’t match the expected header.
Provided Methods§
Sourcefn execute_block(block: Block::LazyBlock)
fn execute_block(block: Block::LazyBlock)
Execute the given block.
This will execute all extrinsics in the block and check that the resulting header is correct.
This function is a wrapper around Self::verify_and_remove_seal and
Self::execute_verified_block.
§Panic
Panics when an extrinsics panics or the resulting header doesn’t match the expected header or the seal is invalid.
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.