pub struct StateRoot<T, H> {
pub trie_cursor_factory: T,
pub hashed_cursor_factory: H,
pub prefix_sets: TriePrefixSets,
/* private fields */
}Expand description
StateRoot is used to compute the root node of a state trie.
Fields§
§trie_cursor_factory: TThe factory for trie cursors.
hashed_cursor_factory: HThe factory for hashed cursors.
prefix_sets: TriePrefixSetsA set of prefix sets that have changed.
Implementations§
Source§impl<T, H> StateRoot<T, H>
impl<T, H> StateRoot<T, H>
Sourcepub fn new(trie_cursor_factory: T, hashed_cursor_factory: H) -> Self
pub fn new(trie_cursor_factory: T, hashed_cursor_factory: H) -> Self
Creates StateRoot with trie_cursor_factory and hashed_cursor_factory. All other
parameters are set to reasonable defaults.
The cursors created by given factories are then used to walk through the accounts and calculate the state root value with.
Sourcepub fn with_prefix_sets(self, prefix_sets: TriePrefixSets) -> Self
pub fn with_prefix_sets(self, prefix_sets: TriePrefixSets) -> Self
Set the prefix sets.
Sourcepub const fn with_walk_all_changed_branch_children(self, enabled: bool) -> Self
pub const fn with_walk_all_changed_branch_children(self, enabled: bool) -> Self
Configures the state root walker to visit all children of changed branch paths.
When updates are retained, also removes stored descendants hidden by a changed branch’s tree mask. Regenerated branch updates take precedence over these deletions.
Sourcepub const fn with_threshold(self, threshold: u64) -> Self
pub const fn with_threshold(self, threshold: u64) -> Self
Set the threshold.
Sourcepub const fn with_no_threshold(self) -> Self
pub const fn with_no_threshold(self) -> Self
Set the threshold to maximum value so that intermediate progress is not returned.
Sourcepub fn with_intermediate_state(
self,
state: Option<IntermediateStateRootState>,
) -> Self
pub fn with_intermediate_state( self, state: Option<IntermediateStateRootState>, ) -> Self
Set the previously recorded intermediate state.
Sourcepub fn with_hashed_cursor_factory<HF>(
self,
hashed_cursor_factory: HF,
) -> StateRoot<T, HF>
pub fn with_hashed_cursor_factory<HF>( self, hashed_cursor_factory: HF, ) -> StateRoot<T, HF>
Set the hashed cursor factory.
Sourcepub fn with_trie_cursor_factory<TF>(
self,
trie_cursor_factory: TF,
) -> StateRoot<TF, H>
pub fn with_trie_cursor_factory<TF>( self, trie_cursor_factory: TF, ) -> StateRoot<TF, H>
Set the trie cursor factory.
Source§impl<T, H> StateRoot<T, H>where
T: TrieCursorFactory,
H: HashedCursorFactory,
impl<T, H> StateRoot<T, H>where
T: TrieCursorFactory,
H: HashedCursorFactory,
Sourcepub fn root_with_updates(self) -> Result<(B256, TrieUpdates), StateRootError>
pub fn root_with_updates(self) -> Result<(B256, TrieUpdates), StateRootError>
Walks the intermediate nodes of existing state trie (if any) and hashed entries. Feeds the nodes into the hash builder. Collects the updates in the process.
Ignores the threshold.
§Returns
The state root and the trie updates.
Sourcepub fn root(self) -> Result<B256, StateRootError>
pub fn root(self) -> Result<B256, StateRootError>
Walks the intermediate nodes of existing state trie (if any) and hashed entries. Feeds the nodes into the hash builder.
§Returns
The state root hash.
Sourcepub fn root_with_progress(self) -> Result<StateRootProgress, StateRootError>
pub fn root_with_progress(self) -> Result<StateRootProgress, StateRootError>
Walks the intermediate nodes of existing state trie (if any) and hashed entries. Feeds the nodes into the hash builder. Collects the updates in the process.
§Returns
The intermediate progress of state root computation.
Trait Implementations§
Auto Trait Implementations§
impl<T, H> !RefUnwindSafe for StateRoot<T, H>
impl<T, H> !UnwindSafe for StateRoot<T, H>
impl<T, H> Freeze for StateRoot<T, H>
impl<T, H> Send for StateRoot<T, H>
impl<T, H> Sync for StateRoot<T, H>
impl<T, H> Unpin for StateRoot<T, H>
impl<T, H> UnsafeUnpin for StateRoot<T, H>where
T: UnsafeUnpin,
H: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.