@@ -31,21 +31,25 @@ pub(crate) fn execute_entry_point_call_native(
31
31
cheatnet_state : & mut CheatnetState , // Added parameter
32
32
context : & mut EntryPointExecutionContext ,
33
33
) -> ContractClassEntryPointExecutionResult {
34
- let syscall_handler = CheatableNativeSyscallHandler {
34
+ let mut syscall_handler = CheatableNativeSyscallHandler {
35
35
cheatnet_state,
36
36
native_syscall_handler : & mut NativeSyscallHandler :: new ( call. clone ( ) , state, context) ,
37
37
} ;
38
38
39
- let call_info = execute_entry_point_call ( call, native_compiled_class_v1, syscall_handler)
39
+ let call_info = execute_entry_point_call ( call, native_compiled_class_v1, & mut syscall_handler)
40
40
. map_err ( |err| EntryPointExecutionErrorWithTrace {
41
41
source : err,
42
42
trace : None ,
43
43
} ) ?;
44
44
45
+ let syscall_usage = & syscall_handler. native_syscall_handler . base . syscalls_usage ;
46
+
45
47
Ok ( CallInfoWithExecutionData {
46
48
call_info,
49
+ // Native execution doesn't support VM resources.
50
+ // If we got to this point, it means tracked resources are SierraGas.
47
51
syscall_usage_vm_resources : HashMap :: default ( ) ,
48
- syscall_usage_sierra_gas : HashMap :: default ( ) ,
52
+ syscall_usage_sierra_gas : syscall_usage . clone ( ) ,
49
53
vm_trace : None ,
50
54
} )
51
55
}
@@ -58,7 +62,7 @@ pub fn execute_entry_point_call(
58
62
compiled_class : & NativeCompiledClassV1 ,
59
63
// state: &mut dyn State,
60
64
// context: &mut EntryPointExecutionContext,
61
- mut syscall_handler : CheatableNativeSyscallHandler ,
65
+ syscall_handler : & mut CheatableNativeSyscallHandler ,
62
66
) -> EntryPointExecutionResult < CallInfo > {
63
67
let entry_point = compiled_class. get_entry_point ( & call. type_and_selector ( ) ) ?;
64
68
@@ -110,7 +114,7 @@ pub fn execute_entry_point_call(
110
114
. clone ( ) ,
111
115
call_initial_gas,
112
116
Some ( builtin_costs) ,
113
- & mut syscall_handler,
117
+ & mut * syscall_handler,
114
118
) ;
115
119
116
120
syscall_handler. native_syscall_handler . finalize ( ) ;
@@ -129,10 +133,9 @@ pub fn execute_entry_point_call(
129
133
130
134
// Copied from blockifier
131
135
#[ allow( clippy:: result_large_err) ]
132
- #[ expect( clippy:: needless_pass_by_value) ]
133
136
fn create_callinfo (
134
137
call_result : ContractExecutionResult ,
135
- syscall_handler : CheatableNativeSyscallHandler < ' _ > ,
138
+ syscall_handler : & mut CheatableNativeSyscallHandler < ' _ > ,
136
139
) -> Result < CallInfo , EntryPointExecutionError > {
137
140
let remaining_gas = call_result. remaining_gas ;
138
141
0 commit comments