pub struct RangeProof<H: Hasher> {
pub siblings: Vec<Bounds<H::Digest>>,
}Expand description
A Merkle range proof for a contiguous set of leaves in a Binary Merkle Tree.
Fields§
§siblings: Vec<Bounds<H::Digest>>The sibling digests needed to prove all elements in the range.
Organized by level, from leaves to root. Each level can have at most 2 siblings (one on the left boundary and one on the right boundary).
Implementations§
Source§impl<H: Hasher> RangeProof<H>
impl<H: Hasher> RangeProof<H>
Sourcepub fn verify(
&self,
hasher: &mut H,
position: u32,
leaves: &[H::Digest],
root: &H::Digest,
) -> Result<(), Error>
pub fn verify( &self, hasher: &mut H, position: u32, leaves: &[H::Digest], root: &H::Digest, ) -> Result<(), Error>
Verifies that a given range of leaves starting at position are included
in a Binary Merkle Tree with root using the provided hasher.
The proof contains the set of sibling digests needed to reconstruct the root for all elements in the range.
Trait Implementations§
Source§impl<H: Clone + Hasher> Clone for RangeProof<H>
impl<H: Clone + Hasher> Clone for RangeProof<H>
Source§fn clone(&self) -> RangeProof<H>
fn clone(&self) -> RangeProof<H>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<H: Hasher> Default for RangeProof<H>
impl<H: Hasher> Default for RangeProof<H>
Source§impl<H: Hasher> EncodeSize for RangeProof<H>
impl<H: Hasher> EncodeSize for RangeProof<H>
Source§fn encode_size(&self) -> usize
fn encode_size(&self) -> usize
Returns the encoded size of this value (in bytes).
Source§impl<H: Hasher> PartialEq for RangeProof<H>
impl<H: Hasher> PartialEq for RangeProof<H>
Source§impl<H: Hasher> Read for RangeProof<H>
impl<H: Hasher> Read for RangeProof<H>
Source§impl<H: Hasher> Write for RangeProof<H>
impl<H: Hasher> Write for RangeProof<H>
impl<H: Eq + Hasher> Eq for RangeProof<H>
Auto Trait Implementations§
impl<H> Freeze for RangeProof<H>
impl<H> RefUnwindSafe for RangeProof<H>
impl<H> Send for RangeProof<H>
impl<H> Sync for RangeProof<H>
impl<H> Unpin for RangeProof<H>
impl<H> UnwindSafe for RangeProof<H>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Encode for Twhere
T: Write + EncodeSize,
impl<T> Encode for Twhere
T: Write + EncodeSize,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<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>
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 more