miden_objects/conversion/
protocol_config.rs1use miden_protocol::Word;
2use miden_protocol::protocol_config::{
3 KernelConfig,
4 ProofSecurityPolicy,
5 ProofVerificationConfig,
6 ProtocolConfig,
7};
8
9use crate::proto;
10
11#[cfg(test)]
12mod tests;
13
14impl From<&KernelConfig> for proto::protocol_config::KernelConfig {
15 fn from(config: &KernelConfig) -> Self {
16 Self {
17 main_proc: Some(config.main_proc().into()),
18 kernel_procs: config.kernel_procs().iter().copied().map(Into::into).collect(),
19 }
20 }
21}
22
23impl From<KernelConfig> for proto::protocol_config::KernelConfig {
24 fn from(config: KernelConfig) -> Self {
25 (&config).into()
26 }
27}
28
29impl From<&ProofSecurityPolicy> for proto::protocol_config::ProofSecurityPolicy {
30 fn from(policy: &ProofSecurityPolicy) -> Self {
31 Self {
32 security_estimator_root: Some(policy.security_estimator_root().into()),
33 minimum_bits: u32::from(policy.minimum_bits()),
34 }
35 }
36}
37
38impl From<ProofSecurityPolicy> for proto::protocol_config::ProofSecurityPolicy {
39 fn from(policy: ProofSecurityPolicy) -> Self {
40 (&policy).into()
41 }
42}
43
44impl From<&ProofVerificationConfig> for proto::protocol_config::ProofVerificationConfig {
45 fn from(config: &ProofVerificationConfig) -> Self {
46 Self {
47 vm_verifier_root: Some(config.vm_verifier_root().into()),
48 precompile_verifier_root: Some(config.precompile_verifier_root().into()),
49 security_policy: Some(config.security_policy().into()),
50 }
51 }
52}
53
54impl From<ProofVerificationConfig> for proto::protocol_config::ProofVerificationConfig {
55 fn from(config: ProofVerificationConfig) -> Self {
56 (&config).into()
57 }
58}
59
60impl From<&ProtocolConfig> for proto::protocol_config::ProtocolConfig {
61 fn from(config: &ProtocolConfig) -> Self {
62 Self {
63 fee_asset_id: Some(Word::from(config.fee_asset_id()).into()),
64 tx_kernel: Some(config.tx_kernel().into()),
65 batch_kernel: Some(config.batch_kernel().into()),
66 block_kernel: Some(config.block_kernel().into()),
67 proof_verification: Some(config.proof_verification().into()),
68 }
69 }
70}
71
72impl From<ProtocolConfig> for proto::protocol_config::ProtocolConfig {
73 fn from(config: ProtocolConfig) -> Self {
74 (&config).into()
75 }
76}