diff --git a/src/storage_proofs.rs b/src/storage_proofs.rs index 3c93f03..603995e 100644 --- a/src/storage_proofs.rs +++ b/src/storage_proofs.rs @@ -1,7 +1,7 @@ use std::fs::File; use ark_bn254::{Bn254, Fr}; -use ark_circom::{read_zkey, CircomBuilder, CircomConfig}; +use ark_circom::{read_zkey, CircomBuilder, CircomConfig, CircomCircuit}; use ark_groth16::{ create_random_proof as prove, generate_random_parameters, prepare_verifying_key, verify_proof, Proof, ProvingKey, @@ -81,11 +81,9 @@ impl StorageProofs { Ok(()) } - pub fn prove_mpack( + pub fn proof_build_inputs( &mut self, - proof_bytes: &mut Vec, - public_inputs_bytes: &mut Vec, - ) -> Result<(), String> { + ) -> Result>, String> { let mut builder = self.builder.clone(); @@ -104,8 +102,18 @@ impl StorageProofs { // builder.push_input("root", root); // builder.push_input("salt", salt); - let circuit = builder.build() + let circuit: CircomCircuit> = builder.build() .map_err(|e| e.to_string())?; + + Ok(circuit) + } + + pub fn proof_run( + &mut self, + circuit: CircomCircuit>, + proof_bytes: &mut Vec, + public_inputs_bytes: &mut Vec, + ) -> Result<(), String> { let inputs = circuit .get_public_inputs() .ok_or("Unable to get public inputs!")?;