add execute function

This commit is contained in:
Rostyslav Tyshko 2024-11-18 01:41:30 +01:00
parent 3d86cc745e
commit 54df676a87

View File

@ -1,4 +1,4 @@
use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt};
use risc0_zkvm::{default_prover, sha::Digest, ExecutorEnv, Receipt, default_executor};
pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, Receipt) {
let mut builder = ExecutorEnv::builder();
@ -17,6 +17,21 @@ pub fn prove<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) -> (u64, R
(digest, receipt)
}
// This only executes the program and does not generate a receipt.
pub fn execute<T: serde::ser::Serialize>(input_vec: Vec<T>, elf: &[u8]) {
let mut builder = ExecutorEnv::builder();
for input in input_vec {
builder.write(&input).unwrap();
}
let env = builder.build().unwrap();
let exec = default_executor();
exec.execute(env, elf).unwrap();
}
pub fn verify(receipt: Receipt, image_id: impl Into<Digest>) {
receipt
.verify(image_id)