openvm_verify_stark/
host.rs1use openvm_native_recursion::hints::Hintable;
2use openvm_rv32im_guest::hint_load_by_key_encode;
3use openvm_sdk::SC;
4use openvm_stark_sdk::{openvm_stark_backend::proof::Proof, p3_baby_bear::BabyBear};
5
6pub fn compute_hint_key_for_verify_openvm_stark(
9 asm_filename: &str,
10 exe_commit_u32: &[u32; 8],
11 vm_commit_u32: &[u32; 8],
12 pvs: &[u8],
13) -> Vec<u8> {
14 asm_filename
15 .as_bytes()
16 .iter()
17 .cloned()
18 .chain(exe_commit_u32.iter().flat_map(|x| x.to_le_bytes()))
19 .chain(vm_commit_u32.iter().flat_map(|x| x.to_le_bytes()))
20 .chain(pvs.iter().cloned())
21 .collect()
22}
23
24pub fn encode_proof_to_kv_store_value(proof: &Proof<SC>) -> Vec<u8> {
26 let to_encode: Vec<Vec<BabyBear>> = proof.write();
27 hint_load_by_key_encode(&to_encode)
28}