Skip to main content

DatabaseHashedPostState

Trait DatabaseHashedPostState 

Source
pub trait DatabaseHashedPostState: Sized {
    // Required method
    fn from_reverts(
        provider: &(impl ChangeSetReader + StorageChangeSetReader + BlockNumReader + DBProvider),
        range: impl RangeBounds<BlockNumber>,
    ) -> Result<HashedPostStateSorted, ProviderError>;
}
Expand description

Extends [HashedPostStateSorted] with operations specific for working with a database transaction.

Required Methods§

Source

fn from_reverts( provider: &(impl ChangeSetReader + StorageChangeSetReader + BlockNumReader + DBProvider), range: impl RangeBounds<BlockNumber>, ) -> Result<HashedPostStateSorted, ProviderError>

Initializes [HashedPostStateSorted] from reverts. Iterates over state reverts in the specified range and aggregates them into sorted hashed state.

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.

Implementations on Foreign Types§

Source§

impl DatabaseHashedPostState for HashedPostStateSorted

Source§

fn from_reverts( provider: &(impl ChangeSetReader + StorageChangeSetReader + BlockNumReader + DBProvider), range: impl RangeBounds<BlockNumber>, ) -> Result<Self, ProviderError>

Builds a sorted hashed post-state from reverts.

Reads MDBX data directly into Vecs, using HashSets only to track seen keys. This avoids intermediate HashMap allocations since MDBX data is already sorted.

  • Reads the first occurrence of each changed account/storage slot in the range.
  • Addresses are always keccak256-hashed.
  • Storage keys are always plain and are hashed via keccak256.
  • Returns keys already ordered for trie iteration.

Implementors§