From 3e8bf7d68e95d9bcce88258ad7e130495b9e0559 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Mon, 11 Dec 2023 16:27:03 -0700 Subject: [PATCH] refactor --- src/ffi.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/ffi.rs b/src/ffi.rs index cecef83..5635a90 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -144,6 +144,31 @@ pub unsafe extern "C" fn prove( Box::into_raw(Box::new(ProofCtx::new(proof_bytes, public_inputs_bytes))) } +/// # Safety +/// +/// Use after constructing a StorageProofs object with init +#[no_mangle] +pub unsafe extern "C" fn prove_mpack( + prover_ptr: *mut StorageProofs, + args: *const Buffer, +) -> *mut ProofCtx { + let inputs = std::slice::from_raw_parts((*args).data, (*args).len); + + let proof_bytes = &mut Vec::new(); + let public_inputs_bytes = &mut Vec::new(); + + let mut _prover = &mut *prover_ptr; + _prover + .prove( + inputs, + proof_bytes, + public_inputs_bytes, + ) + .unwrap(); + + Box::into_raw(Box::new(ProofCtx::new(proof_bytes, public_inputs_bytes))) +} + #[no_mangle] /// # Safety ///