Trait pallet_mmr_primitives::LeafDataProvider [−][src]
Expand description
A provider of the MMR’s leaf data.
Associated Types
Required methods
Implementations on Foreign Types
The most common use case for MMRs is to store historical block hashes, so that any point in time in the future we can receive a proof about some past blocks without using excessive on-chain storage.
Hence we implement the LeafDataProvider for frame_system::Pallet. Since the
current block hash is not available (since the block is not finished yet),
we use the parent_hash
here along with parent block number.
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
impl<A, B> LeafDataProvider for (A, B) where
(A::LeafData, B::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
impl<A, B> LeafDataProvider for (A, B) where
(A::LeafData, B::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
impl<A, B, C> LeafDataProvider for (A, B, C) where
(A::LeafData, B::LeafData, C::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
impl<A, B, C> LeafDataProvider for (A, B, C) where
(A::LeafData, B::LeafData, C::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
impl<A, B, C, D> LeafDataProvider for (A, B, C, D) where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
impl<A, B, C, D> LeafDataProvider for (A, B, C, D) where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
impl<A, B, C, D, E> LeafDataProvider for (A, B, C, D, E) where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData, E::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
E: LeafDataProvider,
impl<A, B, C, D, E> LeafDataProvider for (A, B, C, D, E) where
(A::LeafData, B::LeafData, C::LeafData, D::LeafData, E::LeafData): FullLeaf,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
E: LeafDataProvider,
LeafDataProvider implementation for (Tuple, ...)
This provides regular (non-compactable) composition of LeafDataProviders.
Implementors
impl<H, A, B> LeafDataProvider for Compact<H, (A, B)> where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
impl<H, A, B, C> LeafDataProvider for Compact<H, (A, B, C)> where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
impl<H, A, B, C, D> LeafDataProvider for Compact<H, (A, B, C, D)> where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
impl<H, A, B, C, D, E> LeafDataProvider for Compact<H, (A, B, C, D, E)> where
H: Hash,
A: LeafDataProvider,
B: LeafDataProvider,
C: LeafDataProvider,
D: LeafDataProvider,
E: LeafDataProvider,