Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ struct BlockContext {
// Some of the fields, which cannot be used in validate mode, are zeroed out.
block_info_for_validate: BlockInfo*,
// StarknetOsConfig instance.
starknet_os_config: StarknetOsConfig,
starknet_os_config: StarknetOsConfig*,
// A function pointer to the 'execute_syscalls' function.
execute_syscalls_ptr: felt*,
// A function pointer to the 'execute_deprecated_syscalls' function.
Expand All @@ -58,6 +58,7 @@ func get_block_context{range_check_ptr}(
execute_deprecated_syscalls_ptr: felt*,
compiled_class_facts_bundle: CompiledClassFactsBundle*,
public_keys_hash: felt,
starknet_os_config: StarknetOsConfig*,
) -> (block_context: BlockContext*) {
alloc_locals;
let (builtin_params) = get_builtin_params();
Expand Down Expand Up @@ -85,11 +86,7 @@ func get_block_context{range_check_ptr}(
block_timestamp=block_timestamp_for_validate,
sequencer_address=0,
),
starknet_os_config=StarknetOsConfig(
chain_id=nondet %{ os_hints_config.starknet_os_config.chain_id %},
fee_token_address=nondet %{ os_hints_config.starknet_os_config.fee_token_address %},
public_keys_hash=public_keys_hash,
),
starknet_os_config=starknet_os_config,
execute_syscalls_ptr=execute_syscalls_ptr,
execute_deprecated_syscalls_ptr=execute_deprecated_syscalls_ptr,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,10 +223,10 @@ func hash_entry_points{hash_state: HashState, range_check_ptr: felt}(
entry_points: CompiledClassEntryPoint*, n_entry_points: felt
) {
let inner_hash_state = hash_init();
hash_entry_points_inner{hash_state=inner_hash_state, range_check_ptr=range_check_ptr}(
hash_entry_points_inner{hash_state=inner_hash_state}(
entry_points=entry_points, n_entry_points=n_entry_points
);
let hash: felt = hash_finalize{range_check_ptr=range_check_ptr}(hash_state=inner_hash_state);
let hash: felt = hash_finalize(hash_state=inner_hash_state);
hash_update_single(item=hash);

return ();
Expand All @@ -243,7 +243,7 @@ func hash_entry_points_inner{hash_state: HashState, range_check_ptr: felt}(
hash_update_single(item=entry_points.offset);

// Hash builtins.
hash_update_with_nested_hash{hash_state=hash_state, range_check_ptr=range_check_ptr}(
hash_update_with_nested_hash(
data_ptr=entry_points.builtin_list, data_length=entry_points.n_builtins
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,6 @@ func main{
) = deprecated_load_compiled_class_facts();

let (local os_outputs: OsOutput*) = alloc();
local initial_txs_range_check_ptr = nondet %{ segments.add_temp_segment() %};
let txs_range_check_ptr = initial_txs_range_check_ptr;
%{
from starkware.starknet.core.os.execution_helper import StateUpdatePointers
state_update_pointers = StateUpdatePointers(segments=segments)
Expand All @@ -124,12 +122,21 @@ func main{
let (public_keys_hash) = get_public_keys_hash{hash_ptr=pedersen_ptr}(
n_public_keys=n_public_keys, public_keys=public_keys
);
local starknet_os_config: StarknetOsConfig* = new StarknetOsConfig(
chain_id=nondet %{ os_hints_config.starknet_os_config.chain_id %},
fee_token_address=nondet %{ os_hints_config.starknet_os_config.fee_token_address %},
public_keys_hash=public_keys_hash,
);

local initial_txs_range_check_ptr = nondet %{ segments.add_temp_segment() %};
let txs_range_check_ptr = initial_txs_range_check_ptr;
with txs_range_check_ptr {
execute_blocks(
n_blocks=n_blocks,
os_output_per_block_dst=os_outputs,
compiled_class_facts_bundle=compiled_class_facts_bundle,
public_keys_hash=public_keys_hash,
starknet_os_config=starknet_os_config,
);
}

Expand Down Expand Up @@ -244,6 +251,7 @@ func execute_blocks{
os_output_per_block_dst: OsOutput*,
compiled_class_facts_bundle: CompiledClassFactsBundle*,
public_keys_hash: felt,
starknet_os_config: StarknetOsConfig*,
) {
%{ print(f"execute_blocks: {ids.n_blocks} blocks remaining.") %}
if (n_blocks == 0) {
Expand Down Expand Up @@ -288,6 +296,7 @@ func execute_blocks{
execute_deprecated_syscalls_ptr=execute_deprecated_syscalls_ptr,
compiled_class_facts_bundle=compiled_class_facts_bundle,
public_keys_hash=public_keys_hash,
starknet_os_config=starknet_os_config,
);

// Pre-process block.
Expand Down Expand Up @@ -341,7 +350,7 @@ func execute_blocks{
let hash_ptr = pedersen_ptr;
with hash_ptr {
let (starknet_os_config_hash) = get_starknet_os_config_hash(
starknet_os_config=&block_context.starknet_os_config
starknet_os_config=block_context.starknet_os_config
);
}

Expand Down Expand Up @@ -371,6 +380,7 @@ func execute_blocks{
os_output_per_block_dst=&os_output_per_block_dst[1],
compiled_class_facts_bundle=compiled_class_facts_bundle,
public_keys_hash=public_keys_hash,
starknet_os_config=starknet_os_config,
);
}

Expand Down
2 changes: 1 addition & 1 deletion crates/apollo_starknet_os_program/src/program_hash.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"os": "0x338203798f8c939bae2c9bd06afd80bb63595007601729b33d6739920416c24",
"os": "0x44cdd552a117eb3c68eaac721c238a482519ef82889fe2711031a4d154c293e",
"aggregator": "0x110273c1890c2e09a34e3995eeeaa7e0a10fe5a8bd98c84ccf6243512f7a7e6",
"aggregator_with_prefix": "0x3ca5d4c4724e45c896bf36d26e28a7e585e61d680b3b06962af652cafa166d7"
}
6 changes: 3 additions & 3 deletions crates/starknet_os/src/hints/enum_definition.rs
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ vm_enter_scope(dict(
(
SegmentsAddTemp,
segments_add_temp,
indoc! {r#"memory[fp + 8] = to_felt_or_relocatable(segments.add_temp_segment())"#
indoc! {r#"memory[fp + 12] = to_felt_or_relocatable(segments.add_temp_segment())"#
}
),
(
Expand Down Expand Up @@ -1115,7 +1115,7 @@ define_hint_enum!(
(
WriteUseKzgDaToMemory,
write_use_kzg_da_to_memory,
indoc! {r#"memory[fp + 23] = to_felt_or_relocatable(os_hints_config.use_kzg_da and (
indoc! {r#"memory[fp + 24] = to_felt_or_relocatable(os_hints_config.use_kzg_da and (
not os_hints_config.full_output
))"#}
),
Expand Down Expand Up @@ -1618,7 +1618,7 @@ ids.contract_class_component_hashes = segments.gen_arg(class_component_hashes)"#
(
WriteFullOutputToMemory,
write_full_output_to_memory,
indoc! {r#"memory[fp + 24] = to_felt_or_relocatable(os_hints_config.full_output)"#}
indoc! {r#"memory[fp + 25] = to_felt_or_relocatable(os_hints_config.full_output)"#}
),
(
ConfigureKzgManager,
Expand Down
6 changes: 3 additions & 3 deletions crates/starknet_os/src/hints/nondet_offsets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ pub(crate) static NONDET_FP_OFFSETS: LazyLock<HashMap<AllHints, usize>> = LazyLo
HashMap::from([
(AllHints::OsHint(OsHint::OsInputTransactions), 12),
(AllHints::OsHint(OsHint::ReadAliasFromKey), 0),
(AllHints::StatelessHint(StatelessHint::SegmentsAddTemp), 8),
(AllHints::StatelessHint(StatelessHint::SegmentsAddTemp), 12),
(AllHints::OsHint(OsHint::SetFpPlus4ToTxNonce), 4),
(AllHints::OsHint(OsHint::GetBlocksNumber), 0),
(AllHints::OsHint(OsHint::TxAccountDeploymentDataLen), 4),
(AllHints::OsHint(OsHint::WriteFullOutputToMemory), 24),
(AllHints::OsHint(OsHint::WriteUseKzgDaToMemory), 23),
(AllHints::OsHint(OsHint::WriteFullOutputToMemory), 25),
(AllHints::OsHint(OsHint::WriteUseKzgDaToMemory), 24),
])
});

Expand Down
Loading