diff --git a/Cargo.lock b/Cargo.lock index 5aeae076d2..f6880de458 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1702,7 +1702,7 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "nova-snark" version = "0.21.0" -source = "git+https://github.com/lurk-lab/nova?branch=dev#2c0f1afa821550c9ecbd2b4ac9cfa11ec1ce8c81" +source = "git+https://github.com/lurk-lab/nova?branch=dev#a5190d01e4a639dc175f51951a074bbd82c261cf" dependencies = [ "abomonation", "abomonation_derive", diff --git a/src/proof/nova.rs b/src/proof/nova.rs index 7e4630507a..feec506611 100644 --- a/src/proof/nova.rs +++ b/src/proof/nova.rs @@ -291,17 +291,23 @@ impl<'a: 'b, 'b, C: Coprocessor> Proof<'a, C> { assert!(cs.is_satisfied()); } - - let res = RecursiveSNARK::prove_step( + let mut r_snark = RecursiveSNARK::new( &pp.pp, - recursive_snark, - circuit_primary.clone(), - circuit_secondary.clone(), + circuit_primary, + &circuit_secondary, z0_primary.clone(), z0_secondary.clone(), ); - assert!(res.is_ok()); - recursive_snark = Some(res?); + r_snark + .prove_step( + &pp.pp, + circuit_primary, + &circuit_secondary, + z0_primary.clone(), + z0_secondary.clone(), + ) + .expect("failure to prove Nova step"); + recursive_snark = Some(r_snark); } Ok(Self::Recursive(Box::new(recursive_snark.unwrap()))) @@ -339,7 +345,7 @@ impl<'a: 'b, 'b, C: Coprocessor> Proof<'a, C> { let zi_secondary = z0_secondary.clone(); let (zi_primary_verified, zi_secondary_verified) = match self { - Self::Recursive(p) => p.verify(&pp.pp, num_steps, z0_primary, z0_secondary), + Self::Recursive(p) => p.verify(&pp.pp, num_steps, &z0_primary, &z0_secondary), Self::Compressed(p) => p.verify(&pp.vk, num_steps, z0_primary, z0_secondary), }?;