miden_objects/decoded/primitives/
merkle.rs1pub use proto::primitives::DecodedMerklePath as MerklePath;
2
3use crate::decoded::VerificationError;
4use crate::{Verify, proto};
5
6#[cfg(test)]
7mod tests;
8
9impl Verify for MerklePath {
10 type Verified = miden_protocol::crypto::merkle::MerklePath;
11 type Error = core::convert::Infallible;
12 fn verify(self) -> Result<Self::Verified, Self::Error> {
13 Ok(Self::Verified::new(self.siblings.into_inner()))
14 }
15}
16
17pub use proto::primitives::DecodedSparseMerklePath as SparseMerklePath;
18
19impl Verify for SparseMerklePath {
20 type Verified = miden_protocol::crypto::merkle::SparseMerklePath;
21 type Error = miden_protocol::crypto::merkle::MerkleError;
22 fn verify(self) -> Result<Self::Verified, Self::Error> {
23 Self::Verified::from_parts(self.empty_nodes_mask, self.siblings.into_inner())
24 }
25}
26
27pub use proto::primitives::DecodedMmrDelta as MmrDelta;
28
29impl Verify for MmrDelta {
30 type Verified = miden_protocol::crypto::merkle::mmr::MmrDelta;
31 type Error = VerificationError;
32 fn verify(self) -> Result<Self::Verified, Self::Error> {
33 let forest = miden_protocol::crypto::merkle::mmr::Forest::new(self.forest.try_into()?)?;
34 Ok(Self::Verified {
35 forest,
36 data: self.update_data.into_inner(),
37 })
38 }
39}