Skip to content

Commit cb6778a

Browse files
Bump blockifier to 0.14.0 (#3416)
<!-- Reference any GitHub issues resolved by this PR --> Towards #3174 **Stack**: - #3417 - #3416 ⬅ ## Introduced changes Bump blockifier to v0.14.0 ## Checklist <!-- Make sure all of these are complete --> - [x] Linked relevant issue - [x] Updated relevant documentation - [x] Added relevant tests - [x] Performed self-review of the code - [x] Added changes to `CHANGELOG.md`
1 parent 9be9e3d commit cb6778a

File tree

38 files changed

+923
-682
lines changed

38 files changed

+923
-682
lines changed

Cargo.lock

Lines changed: 603 additions & 409 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,22 @@ license = "MIT"
2929
license-file = "LICENSE"
3030

3131
[workspace.dependencies]
32-
blockifier = { git = "https://github.com/starkware-libs/sequencer.git", branch = "main-v0.13.6", default-features = false, features = ["testing", "tracing"] }
32+
blockifier = { version = "0.15.0-rc.2", features = ["testing", "tracing"]}
3333
bigdecimal = "0.4.8"
34-
starknet_api = { git = "https://github.com/starkware-libs/sequencer.git", branch = "main-v0.13.6" }
35-
cairo-lang-casm = { version = "2.11.2", features = ["serde"] }
36-
cairo-lang-sierra = "2.11.2"
37-
cairo-lang-utils = "2.11.2"
38-
cairo-lang-starknet = "2.11.2"
39-
cairo-lang-filesystem = "2.11.2"
40-
cairo-lang-diagnostics = "2.11.2"
41-
cairo-lang-sierra-type-size = "2.11.2"
42-
cairo-lang-syntax = "2.11.2"
43-
cairo-lang-test-plugin = "2.11.2"
44-
cairo-lang-starknet-classes = "2.11.2"
45-
cairo-lang-parser = "2.11.2"
46-
cairo-vm = "1.0.2"
47-
cairo-annotations = "0.4.0"
34+
starknet_api = "0.15.0-rc.2"
35+
cairo-lang-casm = { version = "2.12.0-rc.0", features = ["serde"] }
36+
cairo-lang-sierra = "2.12.0-rc.0"
37+
cairo-lang-utils = "2.12.0-rc.0"
38+
cairo-lang-starknet = "2.12.0-rc.0"
39+
cairo-lang-filesystem = "2.12.0-rc.0"
40+
cairo-lang-diagnostics = "2.12.0-rc.0"
41+
cairo-lang-sierra-type-size = "2.12.0-rc.0"
42+
cairo-lang-syntax = "2.12.0-rc.0"
43+
cairo-lang-test-plugin = "2.12.0-rc.0"
44+
cairo-lang-starknet-classes = "2.12.0-rc.0"
45+
cairo-lang-parser = "2.12.0-rc.0"
46+
cairo-vm = "2.2.0"
47+
cairo-annotations = "0.5.0-rc.0"
4848
dirs = "6.0.0"
4949
dialoguer = "0.11.0"
5050
starknet-types-core = { version = "0.1.7", features = ["hash", "prime-bigint"] }

crates/cheatnet/src/predeployment/erc20/eth.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ use crate::predeployment::predeployed_contract::PredeployedContract;
55

66
use super::constructor_data::ERC20ConstructorData;
77

8-
// use super::predeployed_contract::{ERC20ConstructorData, PredeployedContract};
9-
108
pub const ETH_CONTRACT_ADDRESS: &str =
119
"0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
1210

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/execution/cairo1_execution.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use blockifier::execution::entry_point_execution::{
1111
ExecutionRunnerMode, VmExecutionContext, finalize_execution,
1212
initialize_execution_context_with_runner_mode, prepare_call_arguments,
1313
};
14-
use blockifier::execution::syscalls::hint_processor::SyscallUsageMap;
14+
use blockifier::execution::syscalls::vm_syscall_utils::SyscallUsageMap;
1515
use blockifier::{
1616
execution::{
1717
contract_class::EntryPointV1, entry_point::EntryPointExecutionContext,

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/execution/cheated_syscalls.rs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,27 @@ use crate::runtime_extensions::call_to_blockifier_runtime_extension::execution::
55
use blockifier::execution::syscalls::hint_processor::{
66
SyscallExecutionError, SyscallHintProcessor,
77
};
8-
use blockifier::execution::syscalls::{
9-
DeployRequest, DeployResponse, GetBlockHashRequest, GetBlockHashResponse, LibraryCallRequest,
10-
SyscallResponse, syscall_base::SyscallResult,
8+
use blockifier::execution::syscalls::syscall_base::SyscallResult;
9+
use blockifier::execution::syscalls::vm_syscall_utils::{
10+
CallContractRequest, DeployRequest, DeployResponse, EmptyRequest, GetBlockHashRequest,
11+
GetBlockHashResponse, GetExecutionInfoResponse, LibraryCallRequest, SyscallResponse,
12+
SyscallSelector, WriteResponseResult,
1113
};
1214
use blockifier::execution::{call_info::CallInfo, entry_point::ConstructorContext};
1315
use blockifier::execution::{
14-
execution_utils::ReadOnlySegment,
15-
syscalls::{WriteResponseResult, hint_processor::write_segment},
16+
execution_utils::ReadOnlySegment, syscalls::hint_processor::write_segment,
1617
};
1718
use blockifier::state::errors::StateError;
1819
use blockifier::{
19-
execution::execution_utils::update_remaining_gas,
20-
execution::syscalls::{CallContractRequest, hint_processor::create_retdata_segment},
21-
};
22-
use blockifier::{
23-
execution::{
24-
deprecated_syscalls::DeprecatedSyscallSelector,
25-
entry_point::{
26-
CallEntryPoint, CallType, EntryPointExecutionContext, EntryPointExecutionResult,
27-
},
28-
syscalls::{EmptyRequest, GetExecutionInfoResponse},
20+
execution::entry_point::{
21+
CallEntryPoint, CallType, EntryPointExecutionContext, EntryPointExecutionResult,
2922
},
3023
state::state_api::State,
3124
};
25+
use blockifier::{
26+
execution::execution_utils::update_remaining_gas,
27+
execution::syscalls::hint_processor::create_retdata_segment,
28+
};
3229
use cairo_vm::types::relocatable::Relocatable;
3330
use cairo_vm::vm::vm_core::VirtualMachine;
3431
use starknet_api::core::calculate_contract_address;
@@ -38,8 +35,6 @@ use starknet_api::{
3835
transaction::fields::Calldata,
3936
};
4037

41-
pub type SyscallSelector = DeprecatedSyscallSelector;
42-
4338
pub fn get_execution_info_syscall(
4439
_request: EmptyRequest,
4540
vm: &mut VirtualMachine,

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/execution/deprecated/cairo0_execution.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use blockifier::execution::deprecated_entry_point_execution::{
1414
use blockifier::execution::entry_point::{EntryPointExecutionContext, ExecutableCallEntryPoint};
1515
use blockifier::execution::errors::EntryPointExecutionError;
1616
use blockifier::execution::execution_utils::Args;
17-
use blockifier::execution::syscalls::hint_processor::SyscallUsageMap;
17+
use blockifier::execution::syscalls::vm_syscall_utils::SyscallUsageMap;
1818
use blockifier::state::state_api::State;
1919
use cairo_vm::hint_processor::hint_processor_definition::HintProcessor;
2020
use cairo_vm::vm::runners::cairo_runner::{CairoArg, CairoRunner};

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/execution/entry_point.rs

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,43 @@ use crate::runtime_extensions::call_to_blockifier_runtime_extension::execution::
33
use crate::runtime_extensions::call_to_blockifier_runtime_extension::rpc::{AddressOrClassHash, CallResult};
44
use crate::runtime_extensions::call_to_blockifier_runtime_extension::CheatnetState;
55
use crate::runtime_extensions::common::{get_relocated_vm_trace, get_syscalls_gas_consumed, sum_syscall_usage};
6+
use crate::state::CheatStatus;
7+
use blockifier::execution::call_info::{CallExecution, Retdata, StorageAccessTracker};
68
use crate::runtime_extensions::forge_runtime_extension::{get_nested_calls_syscalls_sierra_gas, get_nested_calls_syscalls_vm_resources};
7-
use crate::state::{CheatStatus};
8-
use blockifier::execution::call_info::{CallExecution, Retdata};
99
use blockifier::execution::contract_class::{RunnableCompiledClass, TrackedResource};
10-
use blockifier::execution::syscalls::hint_processor::{SyscallUsageMap, ENTRYPOINT_NOT_FOUND_ERROR, OUT_OF_GAS_ERROR};
10+
11+
use blockifier::execution::entry_point::{EntryPointRevertInfo, ExecutableCallEntryPoint};
12+
use blockifier::execution::stack_trace::{
13+
Cairo1RevertHeader, extract_trailing_cairo1_revert_trace,
14+
};
15+
use blockifier::execution::syscalls::hint_processor::{
16+
ENTRYPOINT_NOT_FOUND_ERROR, OUT_OF_GAS_ERROR,
17+
};
18+
use blockifier::execution::syscalls::vm_syscall_utils::SyscallUsageMap;
1119
use blockifier::{
1220
execution::{
1321
call_info::CallInfo,
1422
entry_point::{
15-
handle_empty_constructor, CallEntryPoint, CallType, ConstructorContext,
16-
EntryPointExecutionContext, EntryPointExecutionResult,
17-
FAULTY_CLASS_HASH,
23+
CallEntryPoint, CallType, ConstructorContext, EntryPointExecutionContext,
24+
EntryPointExecutionResult, FAULTY_CLASS_HASH, handle_empty_constructor,
1825
},
1926
errors::{EntryPointExecutionError, PreExecutionError},
2027
},
2128
state::state_api::State,
2229
};
2330
use cairo_vm::vm::runners::cairo_runner::{CairoRunner, ExecutionResources};
2431
use cairo_vm::vm::trace::trace_entry::RelocatedTraceEntry;
32+
use conversions::FromConv;
2533
use conversions::string::TryFromHexStr;
34+
use shared::vm::VirtualMachineExt;
2635
use starknet_api::{
2736
contract_class::EntryPointType,
2837
core::ClassHash,
29-
transaction::{fields::Calldata, TransactionVersion},
38+
transaction::{TransactionVersion, fields::Calldata},
3039
};
3140
use starknet_types_core::felt::Felt;
3241
use std::collections::{HashMap, HashSet};
33-
use blockifier::execution::entry_point::{EntryPointRevertInfo, ExecutableCallEntryPoint};
34-
use blockifier::execution::stack_trace::{extract_trailing_cairo1_revert_trace, Cairo1RevertHeader};
3542
use thiserror::Error;
36-
use conversions::FromConv;
37-
use shared::vm::VirtualMachineExt;
3843

3944
pub(crate) type ContractClassEntryPointExecutionResult =
4045
Result<CallInfoWithExecutionData, EntryPointExecutionErrorWithTrace>;
@@ -444,12 +449,9 @@ fn mocked_call_info(
444449
gas_consumed: 0,
445450
},
446451
resources: ExecutionResources::default(),
447-
inner_calls: vec![],
448-
storage_read_values: vec![],
449-
accessed_storage_keys: HashSet::new(),
450-
read_class_hash_values: vec![],
451452
tracked_resource,
452-
accessed_contract_addresses: HashSet::default(),
453+
inner_calls: vec![],
454+
storage_access_tracker: StorageAccessTracker::default(),
453455
builtin_counters: HashMap::default(),
454456
}
455457
}

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/mod.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ use std::marker::PhantomData;
22

33
use blockifier::execution::entry_point::{CallEntryPoint, CallType};
44
use blockifier::execution::execution_utils::felt_from_ptr;
5-
use blockifier::execution::syscalls::{
6-
CallContractRequest, LibraryCallRequest, SyscallRequestWrapper,
5+
use blockifier::execution::syscalls::hint_processor::SyscallHintProcessor;
6+
use blockifier::execution::syscalls::syscall_executor::SyscallExecutor;
7+
use blockifier::execution::syscalls::vm_syscall_utils::{
8+
CallContractRequest, LibraryCallRequest, RevertData, SyscallRequestWrapper, SyscallSelector,
79
};
810
use blockifier::execution::{
9-
deprecated_syscalls::DeprecatedSyscallSelector,
1011
execution_utils::ReadOnlySegment,
11-
syscalls::{
12-
SyscallRequest, SyscallResponse, SyscallResponseWrapper,
13-
hint_processor::SyscallHintProcessor,
14-
},
12+
syscalls::vm_syscall_utils::{SyscallRequest, SyscallResponse, SyscallResponseWrapper},
1513
};
1614
use cairo_vm::types::relocatable::MaybeRelocatable;
1715
use cairo_vm::vm::{errors::hint_errors::HintError, vm_core::VirtualMachine};
@@ -48,7 +46,7 @@ impl<'a> ExtensionLogic for CallToBlockifierExtension<'a> {
4846

4947
fn override_system_call(
5048
&mut self,
51-
selector: DeprecatedSyscallSelector,
49+
selector: SyscallSelector,
5250
vm: &mut VirtualMachine,
5351
extended_runtime: &mut Self::Runtime,
5452
) -> Result<SyscallHandlingResult, HintError> {
@@ -58,7 +56,7 @@ impl<'a> ExtensionLogic for CallToBlockifierExtension<'a> {
5856
// and to enable handling call errors with safe dispatchers in the test code
5957
// since call errors cannot be handled on real starknet
6058
// https://docs.starknet.io/architecture-and-concepts/smart-contracts/system-calls-cairo1/#call_contract
61-
DeprecatedSyscallSelector::CallContract => {
59+
SyscallSelector::CallContract => {
6260
execute_syscall::<CallContractRequest>(vm, extended_runtime)?;
6361

6462
extended_runtime
@@ -68,7 +66,7 @@ impl<'a> ExtensionLogic for CallToBlockifierExtension<'a> {
6866

6967
Ok(SyscallHandlingResult::Handled)
7068
}
71-
DeprecatedSyscallSelector::LibraryCall => {
69+
SyscallSelector::LibraryCall => {
7270
execute_syscall::<LibraryCallRequest>(vm, extended_runtime)?;
7371

7472
extended_runtime
@@ -204,7 +202,7 @@ fn write_call_response(
204202
CallResult::Failure(failure_type) => match failure_type {
205203
CallFailure::Panic { panic_data } => SyscallResponseWrapper::Failure {
206204
gas_counter,
207-
error_data: panic_data,
205+
revert_data: RevertData::new_normal(panic_data),
208206
},
209207
CallFailure::Error { msg } => {
210208
return Err(HintError::CustomHint(Box::from(msg.to_string())));

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/rpc.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ use crate::runtime_extensions::{
55
},
66
common::create_execute_calldata,
77
};
8-
use blockifier::execution::entry_point::CallEntryPoint;
98
use blockifier::execution::{
109
call_info::CallInfo,
1110
entry_point::{CallType, EntryPointExecutionResult},
1211
errors::{EntryPointExecutionError, PreExecutionError},
13-
syscalls::hint_processor::{SyscallHintProcessor, SyscallUsageMap},
12+
syscalls::hint_processor::SyscallHintProcessor,
13+
};
14+
use blockifier::execution::{
15+
entry_point::CallEntryPoint, syscalls::vm_syscall_utils::SyscallUsageMap,
1416
};
1517
use blockifier::state::errors::StateError;
1618
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;

crates/cheatnet/src/runtime_extensions/cheatable_starknet_runtime_extension.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@ use crate::runtime_extensions::call_to_blockifier_runtime_extension::execution::
33
};
44
use crate::state::CheatnetState;
55
use anyhow::Result;
6+
use blockifier::blockifier_versioned_constants::SyscallGasCost;
67
use blockifier::execution::entry_point::EntryPointExecutionContext;
78
use blockifier::execution::syscalls::hint_processor::OUT_OF_GAS_ERROR;
8-
use blockifier::execution::syscalls::{
9-
SyscallRequest, SyscallRequestWrapper, SyscallResponse, SyscallResponseWrapper,
10-
syscall_base::SyscallResult,
9+
use blockifier::execution::syscalls::syscall_base::SyscallResult;
10+
use blockifier::execution::syscalls::syscall_executor::SyscallExecutor;
11+
use blockifier::execution::syscalls::vm_syscall_utils::{
12+
RevertData, SyscallRequest, SyscallRequestWrapper, SyscallResponse, SyscallResponseWrapper,
13+
SyscallSelector,
1114
};
1215
use blockifier::execution::{
1316
common_hints::HintExecutionResult,
14-
deprecated_syscalls::DeprecatedSyscallSelector,
1517
syscalls::hint_processor::{SyscallExecutionError, SyscallHintProcessor},
1618
};
1719
use blockifier::utils::u64_from_usize;
18-
use blockifier::versioned_constants::SyscallGasCost;
1920
use cairo_vm::{
2021
types::relocatable::Relocatable,
2122
vm::{
@@ -27,8 +28,6 @@ use conversions::string::TryFromHexStr;
2728
use runtime::{ExtendedRuntime, ExtensionLogic, StarknetRuntime, SyscallHandlingResult};
2829
use starknet_types_core::felt::Felt;
2930

30-
pub type SyscallSelector = DeprecatedSyscallSelector;
31-
3231
pub struct CheatableStarknetRuntimeExtension<'a> {
3332
pub cheatnet_state: &'a mut CheatnetState,
3433
}
@@ -40,7 +39,7 @@ impl<'a> ExtensionLogic for CheatableStarknetRuntimeExtension<'a> {
4039

4140
fn override_system_call(
4241
&mut self,
43-
selector: DeprecatedSyscallSelector,
42+
selector: SyscallSelector,
4443
vm: &mut VirtualMachine,
4544
extended_runtime: &mut Self::Runtime,
4645
) -> Result<SyscallHandlingResult, HintError> {
@@ -94,7 +93,7 @@ impl<'a> ExtensionLogic for CheatableStarknetRuntimeExtension<'a> {
9493

9594
fn handle_system_call_signal(
9695
&mut self,
97-
selector: DeprecatedSyscallSelector,
96+
selector: SyscallSelector,
9897
_vm: &mut VirtualMachine,
9998
extended_runtime: &mut Self::Runtime,
10099
) {
@@ -187,11 +186,11 @@ impl CheatableStarknetRuntimeExtension<'_> {
187186

188187
if gas_counter < required_gas {
189188
// Out of gas failure.
190-
let out_of_gas_error = TryFromHexStr::try_from_hex_str(OUT_OF_GAS_ERROR)
191-
.map_err(SyscallExecutionError::from)?;
189+
let out_of_gas_error =
190+
Felt::try_from_hex_str(OUT_OF_GAS_ERROR).map_err(SyscallExecutionError::from)?;
192191
let response: SyscallResponseWrapper<Response> = SyscallResponseWrapper::Failure {
193192
gas_counter,
194-
error_data: vec![out_of_gas_error],
193+
revert_data: RevertData::new_normal(vec![out_of_gas_error]),
195194
};
196195
response.write(vm, &mut syscall_handler.syscall_ptr)?;
197196

@@ -215,7 +214,7 @@ impl CheatableStarknetRuntimeExtension<'_> {
215214
Err(SyscallExecutionError::Revert { error_data: data }) => {
216215
SyscallResponseWrapper::Failure {
217216
gas_counter: remaining_gas,
218-
error_data: data,
217+
revert_data: RevertData::new_normal(data),
219218
}
220219
}
221220
Err(error) => return Err(error.into()),

0 commit comments

Comments
 (0)