pub trait ProvingTrie<Hashing, Key, Value>{
// Required methods
fn generate_for<I>(items: I) -> Result<Self, DispatchError>
where I: IntoIterator<Item = (Key, Value)>;
fn root(&self) -> &Hashing::Out;
fn query(&self, key: &Key) -> Option<Value>;
fn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>;
fn verify_proof(
root: &Hashing::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§
Sourcefn generate_for<I>(items: I) -> Result<Self, DispatchError>where
I: IntoIterator<Item = (Key, Value)>,
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.
Sourcefn query(&self, key: &Key) -> Option<Value>
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.
Sourcefn create_proof(&self, key: &Key) -> Result<Vec<u8>, DispatchError>
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.
Sourcefn verify_proof(
root: &Hashing::Out,
proof: &[u8],
key: &Key,
value: &Value,
) -> Result<(), DispatchError>
fn verify_proof( root: &Hashing::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.