pub trait HashingWriter: Send + Sync {
// Required methods
fn unwind_account_hashing<'a>(
&self,
changesets: impl Iterator<Item = &'a (BlockNumber, AccountBeforeTx)>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>;
fn unwind_account_hashing_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>;
fn insert_account_for_hashing(
&self,
accounts: impl IntoIterator<Item = (Address, Option<Account>)>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>;
fn unwind_storage_hashing(
&self,
changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>;
fn unwind_storage_hashing_range(
&self,
range: impl RangeBounds<BlockNumberAddress>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>;
fn insert_storage_for_hashing(
&self,
storages: impl IntoIterator<Item = (Address, impl IntoIterator<Item = StorageEntry>)>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>;
}
db-api
only.Expand description
Hashing Writer
Required Methods§
Sourcefn unwind_account_hashing<'a>(
&self,
changesets: impl Iterator<Item = &'a (BlockNumber, AccountBeforeTx)>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>
fn unwind_account_hashing<'a>( &self, changesets: impl Iterator<Item = &'a (BlockNumber, AccountBeforeTx)>, ) -> ProviderResult<BTreeMap<B256, Option<Account>>>
Sourcefn unwind_account_hashing_range(
&self,
range: impl RangeBounds<BlockNumber>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>
fn unwind_account_hashing_range( &self, range: impl RangeBounds<BlockNumber>, ) -> ProviderResult<BTreeMap<B256, Option<Account>>>
Unwind and clear account hashing in a given block range.
§Returns
Set of hashed keys of updated accounts.
Sourcefn insert_account_for_hashing(
&self,
accounts: impl IntoIterator<Item = (Address, Option<Account>)>,
) -> ProviderResult<BTreeMap<B256, Option<Account>>>
fn insert_account_for_hashing( &self, accounts: impl IntoIterator<Item = (Address, Option<Account>)>, ) -> ProviderResult<BTreeMap<B256, Option<Account>>>
Inserts all accounts into [AccountsHistory
][reth_db_api::tables::AccountsHistory] table.
§Returns
Set of hashed keys of updated accounts.
Sourcefn unwind_storage_hashing(
&self,
changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
fn unwind_storage_hashing( &self, changesets: impl Iterator<Item = (BlockNumberAddress, StorageEntry)>, ) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
Unwind and clear storage hashing.
§Returns
Mapping of hashed keys of updated accounts to their respective updated hashed slots.
Sourcefn unwind_storage_hashing_range(
&self,
range: impl RangeBounds<BlockNumberAddress>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
fn unwind_storage_hashing_range( &self, range: impl RangeBounds<BlockNumberAddress>, ) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
Unwind and clear storage hashing in a given block range.
§Returns
Mapping of hashed keys of updated accounts to their respective updated hashed slots.
Sourcefn insert_storage_for_hashing(
&self,
storages: impl IntoIterator<Item = (Address, impl IntoIterator<Item = StorageEntry>)>,
) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
fn insert_storage_for_hashing( &self, storages: impl IntoIterator<Item = (Address, impl IntoIterator<Item = StorageEntry>)>, ) -> ProviderResult<HashMap<B256, BTreeSet<B256>>>
Iterates over storages and inserts them to hashing table.
§Returns
Mapping of hashed keys of updated accounts to their respective updated hashed slots.
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.