Skip to content

Commit e01402c

Browse files
starknet_api,starknet_proof_verifier: write PROOF_VERSION_V1 in try_into_proof_facts
1 parent 7e33536 commit e01402c

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
@@ -72,7 +72,7 @@ impl ProgramOutput {
7272
/// The bootloader output for a single task is:
7373
/// `[num_tasks, output_size, program_hash, ...task_output...]`
7474
///
75-
/// We replace `num_tasks` with `[PROOF_VERSION_V0, program_variant]` and skip `output_size`,
75+
/// We replace `num_tasks` with `[PROOF_VERSION_V1, program_variant]` and skip `output_size`,
7676
/// which is a bootloader-internal field not part of the proof facts.
7777
pub fn try_into_proof_facts(
7878
&self,
@@ -87,7 +87,7 @@ impl ProgramOutput {
8787
return Err(ProgramOutputError::TooShort(self.0.len()));
8888
}
8989
// Add the proof version and variant markers in place of num_tasks.
90-
let mut facts = vec![ProofVersion::V0.as_felt()];
90+
let mut facts = vec![ProofVersion::V1.as_felt()];
9191
facts.push(program_variant);
9292
// Skip num_tasks (index 0) and output_size (index 1); add the task output
9393
// (program_hash followed by the virtual OS output).
@@ -104,17 +104,17 @@ impl From<Vec<Felt>> for ProgramOutput {
104104

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