Trait frame_support::traits::ProvingTrie

source ·
pub trait ProvingTrie<Hashing, Key, Value>: Sized
where Hashing: Hasher,
{ // Required methods fn generate_for<I>(items: I) -> Result<Self, DispatchError> where I: IntoIterator<Item = (Key, Value)>; fn root(&self) -> &<Hashing as Hasher>::Out; fn query(&self, key: &Key) -> Option<Value>; fn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>; fn verify_proof( root: &<Hashing as Hasher>::Out, proof: &[u8], key: &Key, value: &Value, ) -> Result<(), DispatchError>; }
Expand description

An interface for creating, interacting with, and creating proofs in a merkle trie.

Required Methods§

source

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 root(&self) -> &<Hashing as Hasher>::Out

Access the underlying trie root.

source

fn query(&self, key: &Key) -> Option<Value>

Query a value contained within the current trie. Returns None if the the value does not exist in the trie.

source

fn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>

Create a proof that can be used to verify a key and its value are in the trie.

source

fn verify_proof( root: &<Hashing as Hasher>::Out, proof: &[u8], key: &Key, value: &Value, ) -> Result<(), DispatchError>

Verify the existence of key and value in a given trie root and proof.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Hashing, Key, Value> ProvingTrie<Hashing, Key, Value> for frame_support::traits::base2::BasicProvingTrie<Hashing, Key, Value>
where Hashing: Hasher, <Hashing as Hasher>::Out: Encode + Decode, Key: Encode + Decode + Ord, Value: Encode + Decode + Clone,

source§

impl<Hashing, Key, Value> ProvingTrie<Hashing, Key, Value> for frame_support::traits::base16::BasicProvingTrie<Hashing, Key, Value>
where Hashing: Hasher, Key: Encode, Value: Encode + Decode,