use ark_r1cs_std::prelude::*; use ark_relations::r1cs::SynthesisError; use crate::BlindSignatureScheme; use ark_ff::PrimeField; use arkworks_r1cs_gadgets::poseidon::PoseidonGadget; pub trait BlindSigVerifyGadget { type ParametersVar: AllocVar + Clone; type PublicKeyVar: AllocVar + Clone; type SignatureVar: AllocVar + Clone; type Msg; type MsgVar: AllocVar + Clone; fn verify( parameters: &Self::ParametersVar, poseidon_hash: &PoseidonGadget, m: &Self::MsgVar, s: &Self::SignatureVar, q: &Self::PublicKeyVar, ) -> Result, SynthesisError>; }