diff --git a/src/ffi.rs b/src/ffi.rs index 4942034..f56c677 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -10,7 +10,7 @@ use ark_bn254::{Bn254, Fr}; use ark_circom::{read_zkey, CircomBuilder, CircomConfig, CircomReduction}; use ark_crypto_primitives::snark::SNARK; use ark_groth16::{prepare_verifying_key, Groth16, ProvingKey}; -use ark_std::rand::{rngs::ThreadRng, thread_rng}; +use ark_std::rand::thread_rng; use ruint::aliases::U256; use crate::ffi_types::*; @@ -50,7 +50,6 @@ struct CircomBn254 { #[derive(Debug, Clone)] struct CircomCompatCtx { circom: *mut CircomBn254, - rng: ThreadRng, _marker: core::marker::PhantomData<(*mut CircomCompatCtx, core::marker::PhantomPinned)>, } @@ -144,7 +143,6 @@ pub unsafe extern "C" fn init_circom_compat( ctx_ptr: &mut *mut CircomCompatCtx, ) -> i32 { let result = catch_unwind(AssertUnwindSafe(|| { - let rng = thread_rng(); // TODO: use a shared rng - how? let builder = CircomBuilder::new((*(*cfg_ptr).cfg).clone()); // clone the config let circom_bn254 = CircomBn254 { builder: Box::into_raw(Box::new(builder)), @@ -153,7 +151,6 @@ pub unsafe extern "C" fn init_circom_compat( let circom_compat_ctx = CircomCompatCtx { circom: Box::into_raw(Box::new(circom_bn254)), - rng: rng, _marker: core::marker::PhantomData, }; @@ -242,7 +239,7 @@ pub unsafe extern "C" fn prove_circuit( let result = catch_unwind(AssertUnwindSafe(|| { let circom = &mut *to_circom(ctx_ptr); let proving_key = (*(*cfg_ptr).proving_key).clone(); - let rng = &mut (*ctx_ptr).rng; + let rng = &mut thread_rng(); let circuit = (*circom.builder) .clone()