Skip to content

Commit 45412de

Browse files
starknet_os: refactor nondet hint IsBlockNumberInBlockHashBuffer (#11096)
1 parent 7052ec5 commit 45412de

File tree

5 files changed

+14
-14
lines changed

5 files changed

+14
-14
lines changed

crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/execution/syscall_impls.cairo

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -718,10 +718,9 @@ func execute_get_block_hash{
718718

719719
// A block number is a u64. STORED_BLOCK_HASH_BUFFER is 10.
720720
// The following computations will not overflow.
721-
if (nondet %{
722-
ids.request_block_number > \
723-
ids.current_block_number - ids.STORED_BLOCK_HASH_BUFFER
724-
%} != FALSE) {
721+
local is_block_number_in_block_hash_buffer;
722+
%{ IsBlockNumberInBlockHashBuffer %}
723+
if (is_block_number_in_block_hash_buffer != FALSE) {
725724
assert_lt(current_block_number, request_block_number + STORED_BLOCK_HASH_BUFFER);
726725
write_failure_response(
727726
remaining_gas=remaining_gas, failure_felt=ERROR_BLOCK_NUMBER_OUT_OF_RANGE
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"os": "0x4637bc6cf77c7dae823d849d8a7b04ba63c2992f7176f7b72a683d2665a352f",
2+
"os": "0x78de920a6e5b0f1d08410961ba9997181139e260a6dcbdce9e185d4f6fb9162",
33
"aggregator": "0x9b8449bd89d58c92904972e8be142e87b00edc38c19e0a331c30790771653",
44
"aggregator_with_prefix": "0x606fbb6fd6b4d56443467ac666fba1dc41e291f2faf3729aff708318d193f63"
55
}

crates/starknet_os/src/hints/enum_definition.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -418,13 +418,7 @@ define_hint_enum!(
418418

419419
define_stateless_hint_enum!(
420420
StatelessHint,
421-
(
422-
IsBlockNumberInBlockHashBuffer,
423-
is_block_number_in_block_hash_buffer,
424-
// CHANGED: whitespaces.
425-
r#"memory[ap] = to_felt_or_relocatable(ids.request_block_number > \
426-
ids.current_block_number - ids.STORED_BLOCK_HASH_BUFFER)"#
427-
),
421+
(IsBlockNumberInBlockHashBuffer, is_block_number_in_block_hash_buffer),
428422
(GetBlockHashMapping, get_block_hash_mapping),
429423
(IsLeaf, is_leaf),
430424
// Builtin selection hints are non-whitelisted hints that are part of cairo common.

crates/starknet_os/src/hints/hint_implementation/execute_syscalls.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use blockifier::state::state_api::StateReader;
22
use cairo_vm::hint_processor::builtin_hint_processor::hint_utils::{
33
get_integer_from_var_name,
44
get_ptr_from_var_name,
5-
insert_value_into_ap,
5+
insert_value_from_var_name,
66
};
77
use starknet_types_core::felt::Felt;
88

@@ -22,7 +22,13 @@ pub(crate) fn is_block_number_in_block_hash_buffer(
2222
let stored_block_hash_buffer = Const::StoredBlockHashBuffer.fetch(constants)?;
2323
let is_block_number_in_block_hash_buffer =
2424
request_block_number > current_block_number - stored_block_hash_buffer;
25-
insert_value_into_ap(vm, Felt::from(is_block_number_in_block_hash_buffer))?;
25+
insert_value_from_var_name(
26+
Ids::IsBlockNumberInBlockHashBuffer.into(),
27+
Felt::from(is_block_number_in_block_hash_buffer),
28+
vm,
29+
ids_data,
30+
ap_tracking,
31+
)?;
2632
Ok(())
2733
}
2834

crates/starknet_os/src/hints/vars.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ define_string_enum! {
191191
(InitialGas),
192192
(InnerRemainingGas),
193193
(InitialRoot),
194+
(IsBlockNumberInBlockHashBuffer),
194195
(IsLeaf),
195196
(IsNUpdatesSmall),
196197
(IsOnCurve),

0 commit comments

Comments
 (0)