diff --git a/multiplier/src/public.rs b/multiplier/src/public.rs index d3c40c1..0b033ab 100644 --- a/multiplier/src/public.rs +++ b/multiplier/src/public.rs @@ -2,8 +2,13 @@ use ark_circom::{CircomBuilder, CircomConfig, CircomCircuit}; use ark_std::rand::thread_rng; use ark_bn254::Bn254; -use ark_groth16::generate_random_parameters; -use ark_groth16::ProvingKey; +use ark_groth16::{ + ProvingKey, + generate_random_parameters, + create_random_proof as prove, + prepare_verifying_key, + verify_proof +}; pub struct Multiplier { @@ -48,3 +53,19 @@ impl Multiplier { false } } + +#[test] +fn multiplier_proof() { + let mul = Multiplier::new(); + let inputs = mul.circom.get_public_inputs().unwrap(); + + let mut rng = thread_rng(); + + let proof = prove(mul.circom, &mul.params, &mut rng).unwrap(); + + let pvk = prepare_verifying_key(&mul.params.vk); + + let verified = verify_proof(&pvk, &proof, &inputs).unwrap(); + + assert!(verified); +}