referrerpolicy=no-referrer-when-downgrade
polkadot_sdk_frame::traits

Trait ProvingTrie

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§

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.

fn root(&self) -> &<Hashing as Hasher>::Out

Access the underlying trie root.

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.

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.

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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

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

§

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