diff --git a/src/air/layouts/_generator/main.py b/src/air/layouts/_generator/main.py index 7bbbb745..72a7ee48 100644 --- a/src/air/layouts/_generator/main.py +++ b/src/air/layouts/_generator/main.py @@ -512,7 +512,7 @@ def main(): for layout, settings in layout_settings.items(): handle_github_file( - f"https://raw.githubusercontent.com/starkware-libs/cairo-lang/master/src/starkware/cairo/stark_verifier/air/layouts/{layout}/autogenerated.cairo", + f"https://raw.githubusercontent.com/starkware-libs/cairo-lang/a86e92bfde9c171c0856d7b46580c66e004922f3/src/starkware/cairo/stark_verifier/air/layouts/{layout}/autogenerated.cairo", f"../{layout}/autogenerated.cairo", layout, settings diff --git a/src/air/layouts/dex/public_input.cairo b/src/air/layouts/dex/public_input.cairo index 772fe53e..b1c82f0e 100644 --- a/src/air/layouts/dex/public_input.cairo +++ b/src/air/layouts/dex/public_input.cairo @@ -106,10 +106,7 @@ impl DexPublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/air/layouts/recursive/public_input.cairo b/src/air/layouts/recursive/public_input.cairo index 5a997cf3..beb62ade 100644 --- a/src/air/layouts/recursive/public_input.cairo +++ b/src/air/layouts/recursive/public_input.cairo @@ -106,9 +106,7 @@ impl RecursivePublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *memory.at(memory.len() - 1), 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/air/layouts/recursive_with_poseidon/public_input.cairo b/src/air/layouts/recursive_with_poseidon/public_input.cairo index b33b8879..9243ea4a 100644 --- a/src/air/layouts/recursive_with_poseidon/public_input.cairo +++ b/src/air/layouts/recursive_with_poseidon/public_input.cairo @@ -107,10 +107,7 @@ impl RecursiveWithPoseidonPublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/air/layouts/small/public_input.cairo b/src/air/layouts/small/public_input.cairo index 677536c8..908f8619 100644 --- a/src/air/layouts/small/public_input.cairo +++ b/src/air/layouts/small/public_input.cairo @@ -106,10 +106,7 @@ impl SmallPublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/air/layouts/starknet/public_input.cairo b/src/air/layouts/starknet/public_input.cairo index a8299764..002d478f 100644 --- a/src/air/layouts/starknet/public_input.cairo +++ b/src/air/layouts/starknet/public_input.cairo @@ -107,10 +107,7 @@ impl StarknetPublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/air/layouts/starknet_with_keccak/public_input.cairo b/src/air/layouts/starknet_with_keccak/public_input.cairo index 0a730575..93fe1f4f 100644 --- a/src/air/layouts/starknet_with_keccak/public_input.cairo +++ b/src/air/layouts/starknet_with_keccak/public_input.cairo @@ -107,10 +107,7 @@ impl StarknetWithKeccakPublicInputImpl of PublicInputTrait { let output_hash = poseidon_hash_span(output); // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + assert(memory_index == self.main_page.len(), 'Invalid main page len'); (program_hash, output_hash) } diff --git a/src/fri/fri.cairo b/src/fri/fri.cairo index 25525757..41330862 100644 --- a/src/fri/fri.cairo +++ b/src/fri/fri.cairo @@ -115,6 +115,10 @@ fn fri_commit( ref channel: Channel, unsent_commitment: FriUnsentCommitment, config: FriConfig ) -> FriCommitment { assert((*config.fri_step_sizes.at(0)) == 0, 'Invalid value'); + assert( + unsent_commitment.inner_layers.len().into() == config.n_layers - 1, + 'Invalid inner layer commitments' + ); let (commitments, eval_points) = fri_commit_rounds( ref channel, diff --git a/src/fri/fri_config.cairo b/src/fri/fri_config.cairo index 7bf1bfcf..a7e9ebf2 100644 --- a/src/fri/fri_config.cairo +++ b/src/fri/fri_config.cairo @@ -33,6 +33,9 @@ impl FriConfigImpl of FriConfigTrait { *self.log_last_layer_degree_bound <= MAX_LAST_LAYER_LOG_DEGREE_BOUND, 'Value too big' ); assert(*self.fri_step_sizes[0] == 0, 'Invalid value'); + assert( + (*self.inner_layers).len().into() == *self.n_layers - 1, 'Invalid inner layer config' + ); let mut i: u32 = 1; let n_layers: u32 = (*self.n_layers).try_into().unwrap();