Skip to content

Commit bd5effd

Browse files
starknet_api,starknet_proof_verifier: write PROOF_VERSION_V1 in try_into_proof_facts
1 parent d0f4a98 commit bd5effd

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
@@ -68,7 +68,7 @@ impl ProgramOutput {
6868
/// The bootloader output for a single task is:
6969
/// `[num_tasks, output_size, program_hash, ...task_output...]`
7070
///
71-
/// We replace `num_tasks` with `[PROOF_VERSION_V0, program_variant]` and skip `output_size`,
71+
/// We replace `num_tasks` with `[PROOF_VERSION_V1, program_variant]` and skip `output_size`,
7272
/// which is a bootloader-internal field not part of the proof facts.
7373
pub fn try_into_proof_facts(
7474
&self,
@@ -83,7 +83,7 @@ impl ProgramOutput {
8383
return Err(ProgramOutputError::TooShort(self.0.len()));
8484
}
8585
// Add the proof version and variant markers in place of num_tasks.
86-
let mut facts = vec![PROOF_VERSION_V0];
86+
let mut facts = vec![PROOF_VERSION_V1];
8787
facts.push(program_variant);
8888
// Skip num_tasks (index 0) and output_size (index 1); add the task output
8989
// (program_hash followed by the virtual OS output).
@@ -100,17 +100,17 @@ impl From<Vec<Felt>> for ProgramOutput {
100100

101101
/// Reconstructs the output preimage from proof facts for circuit verification.
102102
///
103-
/// Proof facts layout: `[PROOF_VERSION_V0, variant, program_hash, ...task_output]`
103+
/// Proof facts layout: `[PROOF_VERSION_V*, variant, program_hash, ...task_output]`
104104
/// Output preimage layout: `[num_tasks=1, output_size, program_hash, ...task_output]`
105105
/// where `output_size = task_content.len() + 1` (includes itself).
106106
pub fn reconstruct_output_preimage(
107107
proof_facts: &ProofFacts,
108108
) -> Result<Vec<Felt>, VerifyProofError> {
109-
// Proof facts must contain at least [PROOF_VERSION_V0, variant, program_hash].
109+
// Proof facts must contain at least [PROOF_VERSION_V*, variant, program_hash].
110110
if proof_facts.0.len() < 3 {
111111
return Err(VerifyProofError::ProofFactsTooShort { length: proof_facts.0.len() });
112112
}
113-
// Skip PROOF_VERSION_V0 (index 0) and variant (index 1).
113+
// Skip PROOF_VERSION_V* (index 0) and variant (index 1).
114114
let task_content = &proof_facts.0[2..];
115115
let output_size = Felt::from(
116116
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, PROOF_VERSION_V1};
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], PROOF_VERSION_V1);
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)