|
1 | 1 | use std::path::PathBuf; |
2 | 2 |
|
| 3 | +use risc0_groth16::verifying_key; |
| 4 | +use risc0_zkp::core::digest::{digest, Digest}; |
3 | 5 | use serde::{Deserialize, Serialize}; |
4 | 6 | use zkaleido::ProofReceipt; |
| 7 | +use zkaleido_risc0_groth16_verifier::Risc0Groth16Verifier; |
5 | 8 |
|
6 | 9 | #[derive(Debug, Clone, Serialize, Deserialize)] |
7 | 10 | pub struct Risc0Groth16VerifyInput { |
8 | 11 | pub risc0_receipt: ProofReceipt, |
9 | | - pub risc0_vk: [u8; 32], |
| 12 | + pub risc0_verifier: Risc0Groth16Verifier, |
10 | 13 | } |
11 | 14 |
|
12 | 15 | impl Risc0Groth16VerifyInput { |
13 | 16 | pub fn load() -> Self { |
14 | 17 | let base = PathBuf::from(env!("CARGO_MANIFEST_DIR")); |
15 | 18 |
|
16 | | - let risc0_vk_hex = "7f3599b6e5c45edc6c2dcd88a9df76d1c9fce38cfb2afc8e5615f154d878009b"; |
17 | | - let risc0_vk: [u8; 32] = hex::decode(risc0_vk_hex).unwrap().try_into().unwrap(); |
| 19 | + let image_id_hex = "7f3599b6e5c45edc6c2dcd88a9df76d1c9fce38cfb2afc8e5615f154d878009b"; |
| 20 | + let image_id: [u8; 32] = hex::decode(image_id_hex).unwrap().try_into().unwrap(); |
| 21 | + let image_id = Digest::from_bytes(image_id); |
| 22 | + |
18 | 23 | let proof_file = base.join(format!( |
19 | 24 | "../../adapters/risc0/groth16-verifier/proofs/fibonacci_risc0_{}.proof.bin", |
20 | | - risc0_vk_hex |
| 25 | + image_id_hex |
21 | 26 | )); |
22 | 27 | let risc0_receipt = ProofReceipt::load(proof_file).unwrap(); |
23 | 28 |
|
| 29 | + let vk = verifying_key(); |
| 30 | + |
| 31 | + pub const ALLOWED_CONTROL_ROOT: Digest = |
| 32 | + digest!("884389273e128b32475b334dec75ee619b77cb33d41c332021fe7e44c746ee60"); |
| 33 | + |
| 34 | + pub const BN254_IDENTITY_CONTROL_ID: Digest = |
| 35 | + digest!("c07a65145c3cb48b6101962ea607a4dd93c753bb26975cb47feb00d3666e4404"); |
| 36 | + |
| 37 | + let risc0_verifier = Risc0Groth16Verifier::load( |
| 38 | + vk, |
| 39 | + BN254_IDENTITY_CONTROL_ID, |
| 40 | + ALLOWED_CONTROL_ROOT, |
| 41 | + image_id, |
| 42 | + ) |
| 43 | + .unwrap(); |
| 44 | + |
24 | 45 | Risc0Groth16VerifyInput { |
25 | 46 | risc0_receipt, |
26 | | - risc0_vk, |
| 47 | + risc0_verifier, |
27 | 48 | } |
28 | 49 | } |
29 | 50 | } |
0 commit comments