pub trait BlockWriter: Send + Sync {
// Required methods
fn insert_block(
&self,
block: SealedBlockWithSenders,
) -> Result<StoredBlockBodyIndices, ProviderError>;
fn append_blocks_with_state(
&self,
blocks: Vec<SealedBlockWithSenders>,
execution_outcome: ExecutionOutcome,
hashed_state: HashedPostStateSorted,
trie_updates: TrieUpdates,
) -> Result<(), ProviderError>;
}
Expand description
Block Writer
Required Methods§
sourcefn insert_block(
&self,
block: SealedBlockWithSenders,
) -> Result<StoredBlockBodyIndices, ProviderError>
fn insert_block( &self, block: SealedBlockWithSenders, ) -> Result<StoredBlockBodyIndices, ProviderError>
Insert full block and make it canonical. Parent tx num and transition id is taken from parent block in database.
Return [StoredBlockBodyIndices] that contains indices of the first and last transactions and transition in the block.
sourcefn append_blocks_with_state(
&self,
blocks: Vec<SealedBlockWithSenders>,
execution_outcome: ExecutionOutcome,
hashed_state: HashedPostStateSorted,
trie_updates: TrieUpdates,
) -> Result<(), ProviderError>
fn append_blocks_with_state( &self, blocks: Vec<SealedBlockWithSenders>, execution_outcome: ExecutionOutcome, hashed_state: HashedPostStateSorted, trie_updates: TrieUpdates, ) -> Result<(), ProviderError>
Appends a batch of sealed blocks to the blockchain, including sender information, and updates the post-state.
Inserts the blocks into the database and updates the state with
provided BundleState
.
§Parameters
blocks
: Vector ofSealedBlockWithSenders
instances to append.state
: Post-state information to update after appending.
§Returns
Returns Ok(())
on success, or an error if any operation fails.