Skip to content

Commit 716761a

Browse files
starknet_os: os resources test - add 3 more syscalls
1 parent 39d2dc3 commit 716761a

12 files changed

Lines changed: 45 additions & 30 deletions

File tree

crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/constants.cairo

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const ALLOWED_VIRTUAL_OS_PROGRAM_HASHES_1 = (
7272
0x06ecb73d21c7d98ddd4148f5bcd91cc2747c65364245fbf32a63b05cca1685c2
7373
);
7474
const ALLOWED_VIRTUAL_OS_PROGRAM_HASHES_2 = (
75-
0x028619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0
75+
0x06e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea
7676
);
7777
const ALLOWED_VIRTUAL_OS_PROGRAM_HASHES_LEN = 3;
7878

@@ -110,9 +110,9 @@ const SYSCALL_BASE_GAS_COST = 10000;
110110
const CALL_CONTRACT_GAS_COST = 91360;
111111
const DEPLOY_GAS_COST = 147120;
112112
const DEPLOY_CALLDATA_FACTOR_GAS_COST = 4850;
113-
const GET_BLOCK_HASH_GAS_COST = 10840;
113+
const GET_BLOCK_HASH_GAS_COST = 10810;
114114
const GET_CLASS_HASH_AT_GAS_COST = 10000;
115-
const GET_EXECUTION_INFO_GAS_COST = 12640;
115+
const GET_EXECUTION_INFO_GAS_COST = 11240;
116116
const LIBRARY_CALL_GAS_COST = 88660;
117117
const REPLACE_CLASS_GAS_COST = 10670;
118118
// TODO(Yoni, 1/1/2026): take into account Patricia updates and dict squash.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"os": "0x3b216483cdefd7903a48dd65009f8a02dd5e069419d91e2ea4e5a9f22217cf5",
3-
"virtual_os": "0x28619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0",
2+
"os": "0xb641e53a41bb87cb8f71b6e80fda261c4ab2cde062235cacbe79e2c88564de",
3+
"virtual_os": "0x6e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea",
44
"aggregator": "0x700786d51b3854af43d8e12180380bda3029be6c1767e007858de6ca2edac40",
55
"aggregator_with_prefix": "0xe08d300e3f5996e43d6d7cc5a20068e0e58cf1309089f2348317ac580f6c1f"
66
}

crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
"allowed_virtual_os_program_hashes": [
130130
"0x3e98c2d7703b03a7edb73ed7f075f97f1dcbaa8f717cdf6e1a57bf058265473",
131131
"0x6ecb73d21c7d98ddd4148f5bcd91cc2747c65364245fbf32a63b05cca1685c2",
132-
"0x28619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0"
132+
"0x6e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea"
133133
],
134134
"constructor_entry_point_selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194",
135135
"default_entry_point_selector": "0x0",
@@ -271,10 +271,10 @@
271271
}
272272
},
273273
"GetBlockHash": {
274-
"n_steps": 107,
274+
"n_steps": 106,
275275
"n_memory_holes": 0,
276276
"builtin_instance_counter": {
277-
"range_check_builtin": 2
277+
"range_check_builtin": 3
278278
}
279279
},
280280
"GetBlockNumber": {
@@ -295,7 +295,7 @@
295295
}
296296
},
297297
"GetClassHashAt": {
298-
"n_steps": 89,
298+
"n_steps": 75,
299299
"n_memory_holes": 0,
300300
"builtin_instance_counter": {
301301
"range_check_builtin": 1
@@ -309,7 +309,7 @@
309309
}
310310
},
311311
"GetExecutionInfo": {
312-
"n_steps": 125,
312+
"n_steps": 111,
313313
"n_memory_holes": 0,
314314
"builtin_instance_counter": {
315315
"range_check_builtin": 2
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
+ /os_constants/allowed_virtual_os_program_hashes/2: "0x28619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0"
1+
+ /os_constants/allowed_virtual_os_program_hashes/2: "0x6e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea"
22
~ /os_resources/execute_syscalls/CallContract/n_steps: 901
33
~ /os_resources/execute_syscalls/EmitEvent/n_steps: 47
4+
~ /os_resources/execute_syscalls/GetBlockHash/builtin_instance_counter/range_check_builtin: 3
5+
~ /os_resources/execute_syscalls/GetBlockHash/n_steps: 106
6+
~ /os_resources/execute_syscalls/GetClassHashAt/n_steps: 75
7+
~ /os_resources/execute_syscalls/GetExecutionInfo/n_steps: 111
48
~ /os_resources/execute_syscalls/LibraryCall/n_steps: 874
59
~ /os_resources/execute_syscalls/MetaTxV0/constant/n_steps: 1307
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pub const REQUIRED_GAS_GET_BLOCK_HASH_TEST: u64 = 10840;
1+
pub const REQUIRED_GAS_GET_BLOCK_HASH_TEST: u64 = 10810;

crates/blockifier/src/execution/syscalls/syscall_tests/get_block_hash.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ fn positive_flow(runnable_version: RunnableCairo1) {
8383
l2_to_l1_messages: [],
8484
cairo_native: false,
8585
failed: false,
86-
gas_consumed: 14850,
86+
gas_consumed: 14820,
8787
}
8888
"#]]
8989
.assert_debug_eq(&call_info.execution);

crates/blockifier/src/execution/syscalls/syscall_tests/meta_tx.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ fn test_meta_tx_v0(
176176
assert_eq!(call_info.execution.gas_consumed, 0);
177177
expect![[r#"
178178
DeterministicExecutionResources {
179-
n_steps: 14851,
179+
n_steps: 14795,
180180
n_memory_holes: 10,
181181
builtin_instance_counter: {
182182
"pedersen_builtin": 12,
@@ -197,7 +197,7 @@ fn test_meta_tx_v0(
197197
l2_to_l1_messages: [],
198198
cairo_native: false,
199199
failed: false,
200-
gas_consumed: 1538850,
200+
gas_consumed: 1533250,
201201
}
202202
"#]]
203203
.assert_debug_eq(&call_info.execution);

crates/blockifier/src/transaction/transactions_test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ fn expected_fee_transfer_call_info(
441441
};
442442
let expected_gas_consumed = match cairo_version {
443443
CairoVersion::Cairo0 => 0_u64,
444-
CairoVersion::Cairo1(_) => 414470_u64,
444+
CairoVersion::Cairo1(_) => 413070_u64,
445445
};
446446
let expected_resources = match cairo_version {
447447
CairoVersion::Cairo0 => Prices::FeeTransfer(account_address, *fee_type).into(),
@@ -591,15 +591,15 @@ fn add_kzg_da_resources_to_resources_mapping(
591591
resources: ExtendedExecutionResources::default(),
592592
validate_gas_consumed: 7820, // The gas consumption results from parsing the input
593593
// arguments.
594-
execute_gas_consumed: 113720,
594+
execute_gas_consumed: 112320,
595595
},
596596
CairoVersion::Cairo1(RunnableCairo1::Casm))]
597597
#[cfg_attr(feature = "cairo_native", case::with_cairo1_native_account(
598598
ExpectedResultTestInvokeTx{
599599
resources: ExtendedExecutionResources::default(),
600600
validate_gas_consumed: 7820, // The gas consumption results from parsing the input
601601
// arguments.
602-
execute_gas_consumed: 113720,
602+
execute_gas_consumed: 112320,
603603
},
604604
CairoVersion::Cairo1(RunnableCairo1::Native)))]
605605
// TODO(Tzahi): Add calls to cairo1 test contracts (where gas flows to and from the inner call).

crates/blockifier_test_utils/resources/feature_contracts/cairo1/os_resources_test_contract.cairo

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
mod OsResourcesTestContract {
44
use starknet::info::SyscallResultTrait;
55
use starknet::syscalls::{
6-
call_contract_syscall, deploy_syscall, emit_event_syscall, library_call_syscall,
6+
call_contract_syscall, deploy_syscall, emit_event_syscall, get_execution_info_v3_syscall,
7+
library_call_syscall,
78
};
8-
use starknet::{ClassHash, ContractAddress};
9+
use starknet::{ClassHash, ContractAddress, get_block_hash_syscall, get_class_hash_at_syscall};
910

1011
const STABLE_EXTERNAL_ENTRY_POINT_SELECTOR: felt252 = selector!("external");
1112
const EXECUTE_FUNCTION_SELECTOR: felt252 = selector!("__execute__");
@@ -83,5 +84,18 @@ mod OsResourcesTestContract {
8384

8485
// emit event syscall.
8586
emit_event_syscall(array![5].span(), array![7].span()).unwrap_syscall();
87+
88+
// get block hash syscall.
89+
// Only block numbers between `CURRENT_BLOCK_NUMBER - BLOCK_HASH_HISTORY_RANGE` and
90+
// `CURRENT_BLOCK_NUMBER - 10` are set in storage during OS flow tests; at the time of
91+
// writing this contract, `CURRENT_BLOCK_NUMBER` is 2001 and `BLOCK_HASH_HISTORY_RANGE` is
92+
// 51.
93+
get_block_hash_syscall(1970_u64).unwrap_syscall();
94+
95+
// get class hash at syscall.
96+
get_class_hash_at_syscall(stable_address).unwrap_syscall();
97+
98+
// get execution info syscall.
99+
get_execution_info_v3_syscall().unwrap_syscall();
86100
}
87101
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
29
1+
31

0 commit comments

Comments
 (0)