Skip to content

Commit fd7c0dd

Browse files
committed
Remove copied code from cairo1_execution.rs
commit-id:b10cef50
1 parent bbb2a19 commit fd7c0dd

File tree

2 files changed

+10
-104
lines changed

2 files changed

+10
-104
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ license = "MIT"
2727
license-file = "LICENSE"
2828

2929
[workspace.dependencies]
30-
blockifier = { git = "https://github.com/ddoktorski/sequencer.git", branch = "main-v0.13.5-modified-sierra-dep", default-features = false, features = ["testing"] }
30+
blockifier = { git = "https://github.com/ddoktorski/sequencer.git", branch = "main-v0.13.5-modified-sierra-dep", default-features = false, features = ["testing", "tracing"] }
3131
starknet_api = { git = "https://github.com/ddoktorski/sequencer.git", branch = "main-v0.13.5-modified-sierra-dep" }
3232
cairo-lang-casm = { version = "2.11.2", features = ["serde"] }
3333
cairo-lang-runner = "2.11.2"

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

+9-103
Original file line numberDiff line numberDiff line change
@@ -7,125 +7,25 @@ use crate::runtime_extensions::common::get_relocated_vm_trace;
77
use blockifier::execution::contract_class::CompiledClassV1;
88
use blockifier::execution::entry_point::ExecutableCallEntryPoint;
99
use blockifier::execution::entry_point_execution::{
10-
VmExecutionContext, finalize_execution, prepare_call_arguments,
11-
};
12-
use blockifier::execution::errors::PreExecutionError;
13-
use blockifier::execution::execution_utils::{
14-
ReadOnlySegments, write_felt, write_maybe_relocatable,
10+
ExecutionRunnerMode, VmExecutionContext, finalize_execution,
11+
initialize_execution_context_with_runner_mode, prepare_call_arguments,
1512
};
1613
use blockifier::execution::stack_trace::{
1714
Cairo1RevertHeader, extract_trailing_cairo1_revert_trace,
1815
};
19-
use blockifier::execution::syscalls::hint_processor::SyscallHintProcessor;
20-
use blockifier::versioned_constants::GasCosts;
2116
use blockifier::{
2217
execution::{
2318
contract_class::EntryPointV1, entry_point::EntryPointExecutionContext,
2419
errors::EntryPointExecutionError, execution_utils::Args,
2520
},
2621
state::state_api::State,
2722
};
28-
use cairo_vm::types::layout_name::LayoutName;
29-
use cairo_vm::types::relocatable::MaybeRelocatable;
3023
use cairo_vm::vm::errors::cairo_run_errors::CairoRunError;
3124
use cairo_vm::{
3225
hint_processor::hint_processor_definition::HintProcessor,
3326
vm::runners::cairo_runner::{CairoArg, CairoRunner},
3427
};
3528
use runtime::{ExtendedRuntime, StarknetRuntime};
36-
use starknet_types_core::felt::Felt;
37-
38-
// TODO(#2957) remove copied code
39-
// Copied from https://github.com/starkware-libs/sequencer/blob/545761f29b859d06f125bd6c332b6182845734f0/crates/blockifier/src/execution/entry_point_execution.rs#L145
40-
fn prepare_program_extra_data(
41-
runner: &mut CairoRunner,
42-
contract_class: &CompiledClassV1,
43-
read_only_segments: &mut ReadOnlySegments,
44-
gas_costs: &GasCosts,
45-
) -> Result<usize, PreExecutionError> {
46-
// Create the builtin cost segment, the builtin order should be the same as the price builtin
47-
// array in the os in compiled_class.cairo in load_compiled_class_facts.
48-
let builtin_price_array = [
49-
gas_costs.builtins.pedersen,
50-
gas_costs.builtins.bitwise,
51-
gas_costs.builtins.ecop,
52-
gas_costs.builtins.poseidon,
53-
gas_costs.builtins.add_mod,
54-
gas_costs.builtins.mul_mod,
55-
];
56-
57-
let data = builtin_price_array
58-
.iter()
59-
.map(|&x| MaybeRelocatable::from(Felt::from(x)))
60-
.collect::<Vec<_>>();
61-
let builtin_cost_segment_start = read_only_segments.allocate(&mut runner.vm, &data)?;
62-
63-
// Put a pointer to the builtin cost segment at the end of the program (after the
64-
// additional `ret` statement).
65-
let mut ptr = (runner.vm.get_pc() + contract_class.bytecode_length())?;
66-
// Push a `ret` opcode.
67-
write_felt(
68-
&mut runner.vm,
69-
&mut ptr,
70-
Felt::from(0x208b_7fff_7fff_7ffe_u128),
71-
)?;
72-
// Push a pointer to the builtin cost segment.
73-
write_maybe_relocatable(&mut runner.vm, &mut ptr, builtin_cost_segment_start)?;
74-
75-
let program_extra_data_length = 2;
76-
Ok(program_extra_data_length)
77-
}
78-
79-
// TODO(#2957) remove copied code
80-
// Copied from https://github.com/starkware-libs/sequencer/blob/0e1e92e0b90790e4bec20721c069c312d6a60a13/crates/blockifier/src/execution/entry_point_execution.rs#L98
81-
fn initialize_execution_context<'a>(
82-
call: ExecutableCallEntryPoint,
83-
compiled_class: &'a CompiledClassV1,
84-
state: &'a mut dyn State,
85-
context: &'a mut EntryPointExecutionContext,
86-
) -> Result<VmExecutionContext<'a>, PreExecutionError> {
87-
let entry_point = compiled_class.get_entry_point(&call.type_and_selector())?;
88-
89-
// Instantiate Cairo runner.
90-
let proof_mode = false;
91-
// region: Modified blockifier code
92-
let trace_enabled = true;
93-
let mut runner = CairoRunner::new(
94-
&compiled_class.0.program,
95-
LayoutName::starknet,
96-
proof_mode,
97-
trace_enabled,
98-
)?;
99-
// endregion
100-
101-
runner.initialize_function_runner_cairo_1(&entry_point.builtins)?;
102-
let mut read_only_segments = ReadOnlySegments::default();
103-
let program_extra_data_length = prepare_program_extra_data(
104-
&mut runner,
105-
compiled_class,
106-
&mut read_only_segments,
107-
&context.versioned_constants().os_constants.gas_costs,
108-
)?;
109-
110-
// Instantiate syscall handler.
111-
let initial_syscall_ptr = runner.vm.add_memory_segment();
112-
let syscall_handler = SyscallHintProcessor::new(
113-
state,
114-
context,
115-
initial_syscall_ptr,
116-
call,
117-
&compiled_class.hints,
118-
read_only_segments,
119-
);
120-
121-
Ok(VmExecutionContext {
122-
runner,
123-
syscall_handler,
124-
initial_syscall_ptr,
125-
entry_point,
126-
program_extra_data_length,
127-
})
128-
}
12929

13030
// blockifier/src/execution/cairo1_execution.rs:48 (execute_entry_point_call)
13131
pub fn execute_entry_point_call_cairo1(
@@ -147,7 +47,13 @@ pub fn execute_entry_point_call_cairo1(
14747
initial_syscall_ptr,
14848
entry_point,
14949
program_extra_data_length,
150-
} = initialize_execution_context(call, compiled_class_v1, state, context)?;
50+
} = initialize_execution_context_with_runner_mode(
51+
call,
52+
compiled_class_v1,
53+
state,
54+
context,
55+
ExecutionRunnerMode::Tracing,
56+
)?;
15157

15258
let args = prepare_call_arguments(
15359
&syscall_handler.base.call,

0 commit comments

Comments
 (0)