Skip to content

Commit ed24639

Browse files
authored
Use SingleSegmentResponse from blockifier (#3663)
Related #3658 commit-id:9aa72e2d --- **Stack**: - #3672 - #3664 - #3663⚠️ *Part of a stack created by [spr](https://github.com/ejoffe/spr). Do not merge manually using the UI - doing so may have unexpected results.*
1 parent 941979d commit ed24639

File tree

2 files changed

+12
-30
lines changed

2 files changed

+12
-30
lines changed

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

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,12 @@ use blockifier::execution::syscalls::hint_processor::{
77
};
88
use blockifier::execution::syscalls::syscall_base::SyscallResult;
99
use blockifier::execution::syscalls::vm_syscall_utils::{
10-
CallContractRequest, DeployRequest, DeployResponse, EmptyRequest, GetBlockHashRequest,
11-
GetBlockHashResponse, GetExecutionInfoResponse, LibraryCallRequest, StorageReadRequest,
12-
StorageReadResponse, StorageWriteRequest, StorageWriteResponse, SyscallResponse,
13-
SyscallSelector, WriteResponseResult,
10+
CallContractRequest, CallContractResponse, DeployRequest, DeployResponse, EmptyRequest,
11+
GetBlockHashRequest, GetBlockHashResponse, GetExecutionInfoResponse, LibraryCallRequest,
12+
LibraryCallResponse, StorageReadRequest, StorageReadResponse, StorageWriteRequest,
13+
StorageWriteResponse, SyscallSelector,
1414
};
1515
use blockifier::execution::{call_info::CallInfo, entry_point::ConstructorContext};
16-
use blockifier::execution::{
17-
execution_utils::ReadOnlySegment, syscalls::hint_processor::write_segment,
18-
};
1916
use blockifier::state::errors::StateError;
2017
use blockifier::{
2118
execution::entry_point::{
@@ -27,7 +24,6 @@ use blockifier::{
2724
execution::execution_utils::update_remaining_gas,
2825
execution::syscalls::hint_processor::create_retdata_segment,
2926
};
30-
use cairo_vm::types::relocatable::Relocatable;
3127
use cairo_vm::vm::vm_core::VirtualMachine;
3228
use conversions::string::TryFromHexStr;
3329
use runtime::starknet::constants::TEST_ADDRESS;
@@ -156,7 +152,7 @@ pub fn library_call_syscall(
156152
syscall_handler: &mut SyscallHintProcessor<'_>,
157153
cheatnet_state: &mut CheatnetState,
158154
remaining_gas: &mut u64,
159-
) -> SyscallResult<SingleSegmentResponse> {
155+
) -> SyscallResult<LibraryCallResponse> {
160156
let call_to_external = true;
161157
let retdata_segment = execute_library_call(
162158
syscall_handler,
@@ -177,7 +173,7 @@ pub fn library_call_syscall(
177173
),
178174
})?;
179175

180-
Ok(SingleSegmentResponse {
176+
Ok(LibraryCallResponse {
181177
segment: retdata_segment,
182178
})
183179
}
@@ -190,7 +186,7 @@ pub fn call_contract_syscall(
190186
syscall_handler: &mut SyscallHintProcessor<'_>,
191187
cheatnet_state: &mut CheatnetState,
192188
remaining_gas: &mut u64,
193-
) -> SyscallResult<SingleSegmentResponse> {
189+
) -> SyscallResult<CallContractResponse> {
194190
let storage_address = request.contract_address;
195191
let class_hash = syscall_handler
196192
.base
@@ -222,7 +218,7 @@ pub fn call_contract_syscall(
222218
})?;
223219

224220
// region: Modified blockifier code
225-
Ok(SingleSegmentResponse {
221+
Ok(CallContractResponse {
226222
segment: retdata_segment,
227223
})
228224
// endregion
@@ -331,17 +327,3 @@ fn maybe_modify_storage_address(
331327

332328
Ok(())
333329
}
334-
335-
#[derive(Debug)]
336-
// crates/blockifier/src/execution/syscalls/mod.rs:127 (SingleSegmentResponse)
337-
// It is created here because fields in the original structure are private
338-
// so we cannot create it in call_contract_syscall
339-
pub struct SingleSegmentResponse {
340-
pub segment: ReadOnlySegment,
341-
}
342-
// crates/blockifier/src/execution/syscalls/mod.rs:131 (SyscallResponse for SingleSegmentResponse)
343-
impl SyscallResponse for SingleSegmentResponse {
344-
fn write(self, vm: &mut VirtualMachine, ptr: &mut Relocatable) -> WriteResponseResult {
345-
write_segment(vm, ptr, self.segment)
346-
}
347-
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ use blockifier::execution::execution_utils::felt_from_ptr;
55
use blockifier::execution::syscalls::hint_processor::SyscallHintProcessor;
66
use blockifier::execution::syscalls::syscall_executor::SyscallExecutor;
77
use blockifier::execution::syscalls::vm_syscall_utils::{
8-
CallContractRequest, LibraryCallRequest, RevertData, SyscallRequestWrapper, SyscallSelector,
8+
CallContractRequest, LibraryCallRequest, RevertData, SingleSegmentResponse,
9+
SyscallRequestWrapper, SyscallSelector,
910
};
1011
use blockifier::execution::{
1112
execution_utils::ReadOnlySegment,
@@ -22,9 +23,8 @@ use crate::state::CheatnetState;
2223
use crate::runtime_extensions::call_to_blockifier_runtime_extension::rpc::{
2324
AddressOrClassHash, call_entry_point,
2425
};
25-
use crate::runtime_extensions::call_to_blockifier_runtime_extension::{
26-
execution::cheated_syscalls::SingleSegmentResponse,
27-
rpc::{CallFailure, CallResult},
26+
use crate::runtime_extensions::call_to_blockifier_runtime_extension::rpc::{
27+
CallFailure, CallResult,
2828
};
2929

3030
use super::cheatable_starknet_runtime_extension::CheatableStarknetRuntime;

0 commit comments

Comments
 (0)