From b8a80cc06fb1f12c981d5330d96a87c70074f58d Mon Sep 17 00:00:00 2001 From: Rostyslav Tyshko Date: Mon, 18 Nov 2024 02:06:37 +0100 Subject: [PATCH] add result to execute --- zkvm/src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/zkvm/src/lib.rs b/zkvm/src/lib.rs index 8e54a608..eddd4fc1 100644 --- a/zkvm/src/lib.rs +++ b/zkvm/src/lib.rs @@ -18,7 +18,7 @@ pub fn prove(input_vec: Vec, elf: &[u8]) -> (u64, R } // This only executes the program and does not generate a receipt. -pub fn execute(input_vec: Vec, elf: &[u8]) { +pub fn execute serde::Deserialize<'de>>(input_vec: Vec, elf: &[u8]) -> T { let mut builder = ExecutorEnv::builder(); for input in input_vec { @@ -28,8 +28,12 @@ pub fn execute(input_vec: Vec, elf: &[u8]) { let env = builder.build().unwrap(); let exec = default_executor(); + let session = exec.execute(env, elf).unwrap(); - exec.execute(env, elf).unwrap(); + // We read the result committed to the journal by the guest code. + let result: T = session.journal.decode().unwrap(); + + result } pub fn verify(receipt: Receipt, image_id: impl Into) {