Skip to content

Commit d0d2b99

Browse files
committed
Keep resources of failed calls in trace
1 parent 130b2ea commit d0d2b99

File tree

2 files changed

+9
-36
lines changed

2 files changed

+9
-36
lines changed

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use blockifier::execution::call_info::CallInfo;
1010
use blockifier::execution::entry_point::{CallEntryPoint, CallType, ExecutableCallEntryPoint};
1111
use blockifier::execution::errors::EntryPointExecutionError;
1212
use blockifier::execution::syscalls::vm_syscall_utils::SyscallUsageMap;
13-
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
1413

1514
pub(crate) fn resolve_cheated_data_for_call(
1615
entry_point: &mut CallEntryPoint,
@@ -75,14 +74,8 @@ pub(crate) fn exit_error_call(
7574
CallType::Call => AddressOrClassHash::ContractAddress(entry_point.storage_address),
7675
CallType::Delegate => AddressOrClassHash::ClassHash(entry_point.class_hash),
7776
};
78-
cheatnet_state.trace_data.update_and_exit_nested_call(
79-
ExecutionResources::default(),
80-
u64::default(),
81-
SyscallUsageMap::default(),
82-
SyscallUsageMap::default(),
83-
CallResult::from_err(error, &identifier),
84-
&[],
85-
vec![],
86-
vec![],
87-
);
77+
cheatnet_state
78+
.trace_data
79+
.update_call_result(CallResult::from_err(error, &identifier));
80+
cheatnet_state.trace_data.exit_nested_call();
8881
}

crates/cheatnet/src/state.rs

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,11 @@ impl TraceData {
588588
current_call.borrow_mut().vm_trace = Some(vm_trace);
589589
}
590590

591+
pub fn update_call_result(&mut self, result: CallResult) {
592+
let current_call = self.current_call_stack.top();
593+
current_call.borrow_mut().result = result;
594+
}
595+
591596
#[expect(clippy::too_many_arguments)]
592597
pub fn update_current_call(
593598
&mut self,
@@ -618,31 +623,6 @@ impl TraceData {
618623
current_call.events = events;
619624
}
620625

621-
#[expect(clippy::too_many_arguments)]
622-
pub fn update_and_exit_nested_call(
623-
&mut self,
624-
execution_resources: ExecutionResources,
625-
gas_consumed: u64,
626-
used_syscalls_vm_resources: SyscallUsageMap,
627-
used_syscalls_sierra_gas: SyscallUsageMap,
628-
result: CallResult,
629-
l2_to_l1_messages: &[OrderedL2ToL1Message],
630-
signature: Vec<Felt>,
631-
events: Vec<OrderedEvent>,
632-
) {
633-
self.update_current_call(
634-
execution_resources,
635-
gas_consumed,
636-
used_syscalls_vm_resources,
637-
used_syscalls_sierra_gas,
638-
result,
639-
l2_to_l1_messages,
640-
signature,
641-
events,
642-
);
643-
self.exit_nested_call();
644-
}
645-
646626
pub fn exit_nested_call(&mut self) {
647627
self.current_call_stack.pop();
648628
}

0 commit comments

Comments
 (0)