add prove functionality

This commit is contained in:
Rostyslav Tyshko 2024-11-10 02:10:20 +01:00
parent 60d7769ed5
commit 3c72e22346

View File

@ -1 +1,22 @@
//ToDo: Add zkvm module
use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt};
pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, 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)
}