arnaucube
arnaucube/circom-compatPublic Self-hosted repository
When constraints are unsatisfied, show first one (#21)

Useful for debugging
oskarth ot@oskarthoren.com
Fri, 25 Feb 2022 18:25:03 +0800
commit

d0478d1538d229302f33cc2a6d753ab3c7d73bf3

parent

e81fd92a67b33ea87c67c188e85a5e4ec3a04ade

1 files changed, 9 insertions(+), 1 deletions(-)

jump to
M src/circom/builder.rs → src/circom/builder.rs

@@ -83,7 +83,15 @@ debug_assert!({

use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystem}; let cs = ConstraintSystem::<E::Fr>::new_ref(); circom.clone().generate_constraints(cs.clone()).unwrap(); - cs.is_satisfied().unwrap() + let is_satisfied = cs.is_satisfied().unwrap(); + if !is_satisfied { + println!( + "Unsatisfied constraint: {:?}", + cs.which_is_unsatisfied().unwrap() + ); + } + + is_satisfied }); Ok(circom)