pub struct BasicProvingTrie<Hashing, Key, Value>where
Hashing: Hasher,{ /* private fields */ }
Expand description
A helper structure for building a basic base-2 merkle trie and creating compact proofs for that trie.
Trait Implementations§
Source§impl<Hashing, Key, Value> ProofToHashes for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> ProofToHashes for BasicProvingTrie<Hashing, Key, Value>
Source§fn proof_to_hashes(proof: &[u8]) -> Result<u32, DispatchError>
fn proof_to_hashes(proof: &[u8]) -> Result<u32, DispatchError>
This function returns the number of hashes we expect to calculate based on the
size of the proof. This is used for benchmarking, so for worst case scenario, we should
round up. Read more
Source§impl<Hashing, Key, Value> ProvingTrie<Hashing, Key, Value> for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> ProvingTrie<Hashing, Key, Value> for BasicProvingTrie<Hashing, Key, Value>
Source§fn generate_for<I>(items: I) -> Result<Self, DispatchError>where
I: IntoIterator<Item = (Key, Value)>,
fn generate_for<I>(items: I) -> Result<Self, DispatchError>where
I: IntoIterator<Item = (Key, Value)>,
Create a new instance of a ProvingTrie
using an iterator of key/value pairs.
Source§fn query(&self, key: &Key) -> Option<Value>
fn query(&self, key: &Key) -> Option<Value>
Query a value contained within the current trie. Returns None
if the
nodes within the current db
are insufficient to query the item.
Source§fn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>
fn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>
Create a compact merkle proof needed to prove a single key and its value are in the trie.
Returns an error if the nodes within the current db
are insufficient to create a proof.
Source§fn verify_proof(
root: &Hashing::Out,
proof: &[u8],
key: &Key,
value: &Value,
) -> Result<(), DispatchError>
fn verify_proof( root: &Hashing::Out, proof: &[u8], key: &Key, value: &Value, ) -> Result<(), DispatchError>
Verify the existence of key
and value
in a given trie root and proof.
Auto Trait Implementations§
impl<Hashing, Key, Value> Freeze for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> RefUnwindSafe for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> Send for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> Sync for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> Unpin for BasicProvingTrie<Hashing, Key, Value>
impl<Hashing, Key, Value> UnwindSafe for BasicProvingTrie<Hashing, Key, Value>where
<Hashing as Hasher>::Out: UnwindSafe,
Key: RefUnwindSafe + UnwindSafe,
Value: RefUnwindSafe + UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
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> ⓘ
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 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> ⓘ
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 moreSource§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
Source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
Source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
Source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read moreSource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
Source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.Source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
Source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.