diff --git a/zkvm/src/lib.rs b/zkvm/src/lib.rs index 3216739..2865efb 100644 --- a/zkvm/src/lib.rs +++ b/zkvm/src/lib.rs @@ -1 +1,22 @@ -//ToDo: Add zkvm module +use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt}; + +pub fn prove(input_vec: Vec, elf: &[u8]) -> (u64, Receipt) { + let mut builder = ExecutorEnv::builder(); + + for input in input_vec { + builder + .write(&input) + .unwrap(); + } + + let env = builder + .build() + .unwrap(); + + let prover = default_prover(); + + let receipt = prover.prove(env, elf).unwrap().receipt; + + let digest = receipt.journal.decode().unwrap(); + (digest, receipt) +}