miden_objects/decoded/
protocol_config.rs1pub use proto::protocol_config::DecodedKernelConfig as KernelConfig;
3
4use crate::decoded::VerificationError;
5use crate::{Verify, proto};
6
7#[cfg(test)]
8mod tests;
9
10#[cfg(test)]
11pub(crate) mod test_utils;
12
13impl Verify for KernelConfig {
14 type Verified = miden_protocol::protocol_config::KernelConfig;
15 type Error = miden_protocol::errors::ProtocolConfigError;
16 fn verify(self) -> Result<Self::Verified, Self::Error> {
17 Self::Verified::new(self.main_proc, self.kernel_procs)
18 }
19}
20
21pub use proto::protocol_config::DecodedProofSecurityPolicy as ProofSecurityPolicy;
22
23impl Verify for ProofSecurityPolicy {
24 type Verified = miden_protocol::protocol_config::ProofSecurityPolicy;
25 type Error = VerificationError;
26 fn verify(self) -> Result<Self::Verified, Self::Error> {
27 Ok(Self::Verified::new(
28 self.security_estimator_root,
29 self.minimum_bits.try_into()?,
30 )?)
31 }
32}
33
34pub use proto::protocol_config::DecodedProofVerificationConfig as ProofVerificationConfig;
35
36impl Verify for ProofVerificationConfig {
37 type Verified = miden_protocol::protocol_config::ProofVerificationConfig;
38 type Error = VerificationError;
39 fn verify(self) -> Result<Self::Verified, Self::Error> {
40 Ok(Self::Verified::new(
41 self.vm_verifier_root,
42 self.precompile_verifier_root,
43 self.security_policy.verify()?,
44 ))
45 }
46}
47
48pub use proto::protocol_config::DecodedProtocolConfig as ProtocolConfig;
49
50impl Verify for ProtocolConfig {
51 type Verified = miden_protocol::protocol_config::ProtocolConfig;
52 type Error = VerificationError;
53 fn verify(self) -> Result<Self::Verified, Self::Error> {
54 Ok(Self::Verified::new(
55 miden_protocol::asset::AssetId::try_from(self.fee_asset_id)?,
56 self.tx_kernel.verify()?,
57 self.batch_kernel.verify()?,
58 self.block_kernel.verify()?,
59 self.proof_verification.verify()?,
60 )?)
61 }
62}