Skip to content

Commit 23c4d2f

Browse files
starknet_api,starknet_proof_verifier: write PROOF_VERSION_V1 in try_into_proof_facts
1 parent 8436836 commit 23c4d2f

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

crates/starknet_proof_verifier/src/proof_verifier.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ impl ProgramOutput {
7575
/// The bootloader output for a single task is:
7676
/// `[num_tasks, output_size, program_hash, ...task_output...]`
7777
///
78-
/// We replace `num_tasks` with `[PROOF_VERSION_V0, program_variant]` and skip `output_size`,
78+
/// We replace `num_tasks` with `[PROOF_VERSION_V1, program_variant]` and skip `output_size`,
7979
/// which is a bootloader-internal field not part of the proof facts.
8080
pub fn try_into_proof_facts(
8181
&self,
@@ -90,7 +90,7 @@ impl ProgramOutput {
9090
return Err(ProgramOutputError::TooShort(self.0.len()));
9191
}
9292
// Add the proof version and variant markers in place of num_tasks.
93-
let mut facts = vec![ProofVersion::V0.as_felt()];
93+
let mut facts = vec![ProofVersion::V1.as_felt()];
9494
facts.push(program_variant);
9595
// Skip num_tasks (index 0) and output_size (index 1); add the task output
9696
// (program_hash followed by the virtual OS output).
@@ -107,17 +107,17 @@ impl From<Vec<Felt>> for ProgramOutput {
107107

108108
/// Reconstructs the output preimage from proof facts for circuit verification.
109109
///
110-
/// Proof facts layout: `[PROOF_VERSION_V0, variant, program_hash, ...task_output]`
110+
/// Proof facts layout: `[PROOF_VERSION_V*, variant, program_hash, ...task_output]`
111111
/// Output preimage layout: `[num_tasks=1, output_size, program_hash, ...task_output]`
112112
/// where `output_size = task_content.len() + 1` (includes itself).
113113
pub fn reconstruct_output_preimage(
114114
proof_facts: &ProofFacts,
115115
) -> Result<Vec<Felt>, VerifyProofError> {
116-
// Proof facts must contain at least [PROOF_VERSION_V0, variant, program_hash].
116+
// Proof facts must contain at least [PROOF_VERSION_V*, variant, program_hash].
117117
if proof_facts.0.len() < 3 {
118118
return Err(VerifyProofError::ProofFactsTooShort { length: proof_facts.0.len() });
119119
}
120-
// Skip PROOF_VERSION_V0 (index 0) and variant (index 1).
120+
// Skip PROOF_VERSION_V* (index 0) and variant (index 1).
121121
let task_content = &proof_facts.0[2..];
122122
let output_size = Felt::from(
123123
u64::try_from(task_content.len() + 1).expect("task content length exceeds u64::MAX"),

crates/starknet_proof_verifier/src/proof_verifier_test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use rstest::rstest;
22
use starknet_api::test_utils::{path_in_resources, read_json_file};
3-
use starknet_api::transaction::fields::{Proof, ProofFacts, PROOF_VERSION_V0};
3+
use starknet_api::transaction::fields::{Proof, ProofFacts, ProofVersion};
44
use starknet_types_core::felt::Felt;
55

66
use crate::{reconstruct_output_preimage, verify_proof, ProgramOutput};
@@ -21,8 +21,8 @@ fn roundtrip_program_output_to_proof_facts_and_back() {
2121
let program_variant = Felt::from(0x42_u64);
2222
let proof_facts = program_output.try_into_proof_facts(program_variant).unwrap();
2323

24-
// Verify the proof facts structure: [PROOF_VERSION_V0, variant, program_hash, ...task_output].
25-
assert_eq!(proof_facts.0[0], PROOF_VERSION_V0);
24+
// Verify the proof facts structure: [PROOF_VERSION_V1, variant, program_hash, ...task_output].
25+
assert_eq!(proof_facts.0[0], ProofVersion::V1.as_felt());
2626
assert_eq!(proof_facts.0[1], program_variant);
2727
assert_eq!(proof_facts.0[2], program_hash);
2828
assert_eq!(&proof_facts.0[3..], &task_output);

0 commit comments

Comments
 (0)