openvm_sdk/prover/vm/
types.rs

1use derivative::Derivative;
2use openvm_stark_backend::{
3    config::{Com, StarkGenericConfig},
4    keygen::types::MultiStarkProvingKey,
5};
6use openvm_stark_sdk::config::FriParameters;
7use serde::{Deserialize, Serialize};
8
9///Proving key for a specific VM.
10#[derive(Serialize, Deserialize, Derivative)]
11#[serde(bound(
12    serialize = "MultiStarkProvingKey<SC>: Serialize, VC: Serialize",
13    deserialize = "MultiStarkProvingKey<SC>: Deserialize<'de>, VC: Deserialize<'de>"
14))]
15#[derivative(Clone(bound = "Com<SC>: Clone, VC: Clone"))]
16pub struct VmProvingKey<SC: StarkGenericConfig, VC> {
17    pub fri_params: FriParameters,
18    pub vm_config: VC,
19    pub vm_pk: MultiStarkProvingKey<SC>,
20}