zkVK methods return public values (#106)

This commit is contained in:
Han
2025-08-27 14:27:56 +08:00
committed by GitHub
parent 63107268a1
commit 44044a1858
28 changed files with 655 additions and 337 deletions

View File

@@ -1,18 +1,23 @@
#![no_main]
use test_utils::guest::BasicStruct;
use test_utils::guest::{BasicStruct, BASIC_PROGRAM_BYTES_LENGTH};
sp1_zkvm::entrypoint!(main);
pub fn main() {
// Read `Hello world` bytes.
// Read `bytes`.
let bytes = sp1_zkvm::io::read_vec();
assert_eq!(String::from_utf8_lossy(&bytes), "Hello world");
// Read `BasicStruct`.
// Read `basic_struct`.
let basic_struct = sp1_zkvm::io::read::<BasicStruct>();
let output = basic_struct.output();
// Write `output`
sp1_zkvm::io::commit(&output);
// Check `bytes` length is as expected.
assert_eq!(bytes.len(), BASIC_PROGRAM_BYTES_LENGTH);
// Do some computation on `basic_struct`.
let basic_struct_output = basic_struct.output();
// Write reversed `bytes` and `basic_struct_output`
sp1_zkvm::io::commit_slice(&bytes.into_iter().rev().collect::<Vec<_>>());
sp1_zkvm::io::commit(&basic_struct_output);
}