use algebra_core::Field; use r1cs_core::{ConstraintSystem, SynthesisError}; use r1cs_std::prelude::*; use crate::nizk::NIZK; pub trait NIZKVerifierGadget { type VerificationKeyGadget: AllocGadget + ToBytesGadget; type ProofGadget: AllocGadget; fn check_verify<'a, CS, I, T>( cs: CS, verification_key: &Self::VerificationKeyGadget, input: I, proof: &Self::ProofGadget, ) -> Result<(), SynthesisError> where CS: ConstraintSystem, I: Iterator, T: 'a + ToBitsGadget + ?Sized; }