Skip to main content

provekit_common/
verifier.rs

1use {
2    crate::{
3        noir_proof_scheme::NoirProofScheme, utils::serde_jsonify, whir_r1cs::WhirR1CSScheme, R1CS,
4    },
5    noirc_abi::Abi,
6    serde::{Deserialize, Serialize},
7};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Verifier {
11    pub r1cs:             R1CS,
12    pub whir_for_witness: Option<WhirR1CSScheme>,
13    #[serde(with = "serde_jsonify")]
14    pub abi:              Abi,
15}
16
17impl Verifier {
18    #[must_use]
19    pub fn from_noir_proof_scheme(scheme: NoirProofScheme) -> Self {
20        Self {
21            r1cs:             scheme.r1cs,
22            whir_for_witness: Some(scheme.whir_for_witness),
23            abi:              scheme.witness_generator.abi.clone(),
24        }
25    }
26}