Skip to content

Commit 5762c7a

Browse files
starknet_os: os resources test - add 3 more syscalls
1 parent 98571a1 commit 5762c7a

6 files changed

Lines changed: 29 additions & 18 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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"os": "0x3b216483cdefd7903a48dd65009f8a02dd5e069419d91e2ea4e5a9f22217cf5",
3-
"virtual_os": "0x28619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0",
2+
"os": "0x6953c7279f84f553ce738d580de5df707feef830c3ca1840829b6bbdf79db4e",
3+
"virtual_os": "0x6e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea",
44
"aggregator": "0x700786d51b3854af43d8e12180380bda3029be6c1767e007858de6ca2edac40",
55
"aggregator_with_prefix": "0xe08d300e3f5996e43d6d7cc5a20068e0e58cf1309089f2348317ac580f6c1f"
6-
}
6+
}

crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
"allowed_virtual_os_program_hashes": [
129129
"0x3e98c2d7703b03a7edb73ed7f075f97f1dcbaa8f717cdf6e1a57bf058265473",
130130
"0x6ecb73d21c7d98ddd4148f5bcd91cc2747c65364245fbf32a63b05cca1685c2",
131-
"0x28619dbc9767792fb536aaba7a2d55f70faadf808c95ec66b956d33fdee1bc0"
131+
"0x6e0e4653c9bf533daba4c89a969a78f082fd2b7ebd38912ca8138441a897bea"
132132
],
133133
"constructor_entry_point_selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194",
134134
"default_entry_point_selector": "0x0",
@@ -270,10 +270,10 @@
270270
}
271271
},
272272
"GetBlockHash": {
273-
"n_steps": 107,
273+
"n_steps": 106,
274274
"n_memory_holes": 0,
275275
"builtin_instance_counter": {
276-
"range_check_builtin": 2
276+
"range_check_builtin": 3
277277
}
278278
},
279279
"GetBlockNumber": {
@@ -294,7 +294,7 @@
294294
}
295295
},
296296
"GetClassHashAt": {
297-
"n_steps": 89,
297+
"n_steps": 75,
298298
"n_memory_holes": 0,
299299
"builtin_instance_counter": {
300300
"range_check_builtin": 1
@@ -308,7 +308,7 @@
308308
}
309309
},
310310
"GetExecutionInfo": {
311-
"n_steps": 125,
311+
"n_steps": 111,
312312
"n_memory_holes": 0,
313313
"builtin_instance_counter": {
314314
"range_check_builtin": 2

crates/blockifier/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
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/LibraryCall/n_steps: 874
44
~ /os_resources/execute_syscalls/MetaTxV0/constant/builtin_instance_counter/pedersen_builtin: 13

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__");
@@ -78,5 +79,18 @@ mod OsResourcesTestContract {
7879

7980
// emit event syscall.
8081
emit_event_syscall(array![5].span(), array![7].span()).unwrap_syscall();
82+
83+
// get block hash syscall.
84+
// Only block numbers between `CURRENT_BLOCK_NUMBER - BLOCK_HASH_HISTORY_RANGE` and
85+
// `CURRENT_BLOCK_NUMBER - 10` are set in storage during OS flow tests; at the time of
86+
// writing this contract, `CURRENT_BLOCK_NUMBER` is 2001 and `BLOCK_HASH_HISTORY_RANGE` is
87+
// 51.
88+
get_block_hash_syscall(1970_u64).unwrap_syscall();
89+
90+
// get class hash at syscall.
91+
get_class_hash_at_syscall(stable_address).unwrap_syscall();
92+
93+
// get execution info syscall.
94+
get_execution_info_v3_syscall().unwrap_syscall();
8195
}
8296
}

crates/starknet_os_flow_tests/src/os_resources_test.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,13 @@ use crate::test_manager::{
4444
use crate::tests::NON_TRIVIAL_RESOURCE_BOUNDS;
4545

4646
// TODO(Dori): Delete this, or at least reduce it to a minimal set of unmeasurable syscalls.
47-
const UNMEASURABLE_SYSCALLS: [Selector; 31] = [
47+
const UNMEASURABLE_SYSCALLS: [Selector; 28] = [
4848
Selector::DelegateCall,
4949
Selector::DelegateL1Handler,
50-
Selector::GetBlockHash,
5150
Selector::GetBlockNumber,
5251
Selector::GetBlockTimestamp,
5352
Selector::GetCallerAddress,
54-
Selector::GetClassHashAt,
5553
Selector::GetContractAddress,
56-
Selector::GetExecutionInfo,
5754
Selector::GetSequencerAddress,
5855
Selector::GetTxInfo,
5956
Selector::GetTxSignature,

0 commit comments

Comments
 (0)