Skip to main content

StateRoot

Struct StateRoot 

Source
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: T

The factory for trie cursors.

§hashed_cursor_factory: H

The factory for hashed cursors.

§prefix_sets: TriePrefixSets

A set of prefix sets that have changed.

Implementations§

Source§

impl<T, H> StateRoot<T, H>

Source

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.

Source

pub fn with_prefix_sets(self, prefix_sets: TriePrefixSets) -> Self

Set the prefix sets.

Source

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.

Source

pub const fn with_threshold(self, threshold: u64) -> Self

Set the threshold.

Source

pub const fn with_no_threshold(self) -> Self

Set the threshold to maximum value so that intermediate progress is not returned.

Source

pub fn with_intermediate_state( self, state: Option<IntermediateStateRootState>, ) -> Self

Set the previously recorded intermediate state.

Source

pub fn with_hashed_cursor_factory<HF>( self, hashed_cursor_factory: HF, ) -> StateRoot<T, HF>

Set the hashed cursor factory.

Source

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>

Source

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.

Source

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.

Source

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§

Source§

impl<T: Debug, H: Debug> Debug for StateRoot<T, H>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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>
where T: Freeze, H: Freeze,

§

impl<T, H> Send for StateRoot<T, H>
where T: Send, H: Send,

§

impl<T, H> Sync for StateRoot<T, H>
where T: Sync, H: Sync,

§

impl<T, H> Unpin for StateRoot<T, H>
where T: Unpin, H: Unpin,

§

impl<T, H> UnsafeUnpin for StateRoot<T, H>
where T: UnsafeUnpin, H: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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 more
§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> NonStaticAny for T
where T: ?Sized,

§

fn type_id(&self) -> TypeId

Returns the lifetime-erased type ID of self.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

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.