diff --git a/fixtures/mycircuit.circom b/fixtures/mycircuit.circom new file mode 100644 index 0000000..1ca4dae --- /dev/null +++ b/fixtures/mycircuit.circom @@ -0,0 +1,10 @@ +template Multiplier() { + signal private input a; + signal private input b; + signal output c; + + c <== a*b; +} + +component main = Multiplier(); + diff --git a/fixtures/mycircuit.r1cs b/fixtures/mycircuit.r1cs new file mode 100644 index 0000000..0aebe91 Binary files /dev/null and b/fixtures/mycircuit.r1cs differ diff --git a/fixtures/mycircuit.wasm b/fixtures/mycircuit.wasm new file mode 100644 index 0000000..4a28f0c Binary files /dev/null and b/fixtures/mycircuit.wasm differ diff --git a/fixtures/powersOfTau28_hez_final_10.ptau b/fixtures/powersOfTau28_hez_final_10.ptau new file mode 100644 index 0000000..f76c6a9 Binary files /dev/null and b/fixtures/powersOfTau28_hez_final_10.ptau differ diff --git a/fixtures/test.zkey b/fixtures/test.zkey new file mode 100644 index 0000000..882364e Binary files /dev/null and b/fixtures/test.zkey differ diff --git a/src/ffi_types.rs b/src/ffi_types.rs index aed5cb1..932b5d2 100644 --- a/src/ffi_types.rs +++ b/src/ffi_types.rs @@ -147,7 +147,9 @@ impl From for ark_groth16::VerifyingKey { impl From<&ark_groth16::VerifyingKey> for VerifyingKey { fn from(vk: &ark_groth16::VerifyingKey) -> Self { - let ic: Vec = vk.gamma_abc_g1.iter().map(|p| p.into()).collect(); + let mut ic: Vec = vk.gamma_abc_g1.iter().map(|p| p.into()).collect(); + ic.shrink_to_fit(); + let len = ic.len(); Self { alpha1: G1::from(&vk.alpha_g1), @@ -162,11 +164,12 @@ impl From<&ark_groth16::VerifyingKey> for VerifyingKey { impl From<&[Fr]> for Inputs { fn from(src: &[Fr]) -> Self { - let els: Vec<[u8; 32]> = src + let mut els: Vec<[u8; 32]> = src .iter() .map(|point| point_to_slice(*point)) .collect(); + els.shrink_to_fit(); let len = els.len(); Self { elms: Box::leak(els.into_boxed_slice()).as_ptr(),