Trait reth_provider::BlockWriter

source ·
pub trait BlockWriter: Send + Sync {
    // Required methods
    fn insert_block(
        &self,
        block: SealedBlockWithSenders,
    ) -> ProviderResult<StoredBlockBodyIndices>;
    fn append_blocks_with_state(
        &self,
        blocks: Vec<SealedBlockWithSenders>,
        execution_outcome: ExecutionOutcome,
        hashed_state: HashedPostStateSorted,
        trie_updates: TrieUpdates,
    ) -> ProviderResult<()>;
}
Expand description

Block Writer

Required Methods§

source

fn insert_block( &self, block: SealedBlockWithSenders, ) -> ProviderResult<StoredBlockBodyIndices>

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.

source

fn append_blocks_with_state( &self, blocks: Vec<SealedBlockWithSenders>, execution_outcome: ExecutionOutcome, hashed_state: HashedPostStateSorted, trie_updates: TrieUpdates, ) -> ProviderResult<()>

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 of SealedBlockWithSenders instances to append.
  • state: Post-state information to update after appending.
§Returns

Returns Ok(()) on success, or an error if any operation fails.

Implementations on Foreign Types§

source§

impl<'a, T: 'a + BlockWriter + ?Sized> BlockWriter for &'a T
where &'a T: Send + Sync,

source§

fn insert_block( &self, block: SealedBlockWithSenders, ) -> ProviderResult<StoredBlockBodyIndices>

source§

fn append_blocks_with_state( &self, blocks: Vec<SealedBlockWithSenders>, execution_outcome: ExecutionOutcome, hashed_state: HashedPostStateSorted, trie_updates: TrieUpdates, ) -> ProviderResult<()>

source§

impl<T: BlockWriter + ?Sized> BlockWriter for Box<T>
where Box<T>: Send + Sync,

source§

fn insert_block( &self, block: SealedBlockWithSenders, ) -> ProviderResult<StoredBlockBodyIndices>

source§

fn append_blocks_with_state( &self, blocks: Vec<SealedBlockWithSenders>, execution_outcome: ExecutionOutcome, hashed_state: HashedPostStateSorted, trie_updates: TrieUpdates, ) -> ProviderResult<()>

source§

impl<T: BlockWriter + ?Sized> BlockWriter for Arc<T>
where Arc<T>: Send + Sync,

source§

fn insert_block( &self, block: SealedBlockWithSenders, ) -> ProviderResult<StoredBlockBodyIndices>

source§

fn append_blocks_with_state( &self, blocks: Vec<SealedBlockWithSenders>, execution_outcome: ExecutionOutcome, hashed_state: HashedPostStateSorted, trie_updates: TrieUpdates, ) -> ProviderResult<()>

Implementors§

source§

impl<TX: DbTxMut + DbTx + 'static> BlockWriter for DatabaseProvider<TX>