pub struct MerkleProof<H, L> {
pub root: H,
pub proof: Vec<H>,
pub number_of_leaves: u32,
pub leaf_index: u32,
pub leaf: L,
}
Expand description
A generated merkle proof.
The structure contains all necessary data to later on verify the proof and the leaf itself.
Fields§
§root: H
Root hash of generated merkle tree.
proof: Vec<H>
Proof items (does not contain the leaf hash, nor the root obviously).
This vec contains all inner node hashes necessary to reconstruct the root hash given the leaf hash.
number_of_leaves: u32
Number of leaves in the original tree.
This is needed to detect a case where we have an odd number of leaves that “get promoted” to upper layers.
leaf_index: u32
Index of the leaf the proof is for (0-based).
leaf: L
Leaf content.
Trait Implementations§
Source§impl<H, L> Decode for MerkleProof<H, L>
impl<H, L> Decode for MerkleProof<H, L>
Source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy,
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>
Attempt to deserialise the value from input.
Source§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>,
) -> Result<DecodeFinished, Error>where
I: Input,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
Source§impl<H, L> Encode for MerkleProof<H, L>
impl<H, L> Encode for MerkleProof<H, L>
Source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
Source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy,
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )
Convert self to a slice and append it to the destination.
Source§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
Convert self to a slice and then invoke the given closure with it.
Source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
impl<H, L> EncodeLike for MerkleProof<H, L>
impl<H: Eq, L: Eq> Eq for MerkleProof<H, L>
impl<H, L> StructuralPartialEq for MerkleProof<H, L>
Auto Trait Implementations§
impl<H, L> Freeze for MerkleProof<H, L>
impl<H, L> RefUnwindSafe for MerkleProof<H, L>where
H: RefUnwindSafe,
L: RefUnwindSafe,
impl<H, L> Send for MerkleProof<H, L>
impl<H, L> Sync for MerkleProof<H, L>
impl<H, L> Unpin for MerkleProof<H, L>
impl<H, L> UnwindSafe for MerkleProof<H, L>where
H: UnwindSafe,
L: 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