@@ -3,14 +3,12 @@ use crate::runtime_extensions::call_to_blockifier_runtime_extension::execution::
3
3
} ;
4
4
use crate :: state:: CheatnetState ;
5
5
use anyhow:: Result ;
6
- use blockifier:: blockifier_versioned_constants:: SyscallGasCost ;
7
- use blockifier:: execution:: entry_point:: EntryPointExecutionContext ;
8
6
use blockifier:: execution:: syscalls:: hint_processor:: OUT_OF_GAS_ERROR ;
9
7
use blockifier:: execution:: syscalls:: syscall_base:: SyscallResult ;
10
8
use blockifier:: execution:: syscalls:: syscall_executor:: SyscallExecutor ;
11
9
use blockifier:: execution:: syscalls:: vm_syscall_utils:: {
12
- RevertData , SyscallRequest , SyscallRequestWrapper , SyscallResponse , SyscallResponseWrapper ,
13
- SyscallSelector ,
10
+ RevertData , SyscallExecutorBaseError , SyscallRequest , SyscallRequestWrapper , SyscallResponse ,
11
+ SyscallResponseWrapper , SyscallSelector ,
14
12
} ;
15
13
use blockifier:: execution:: {
16
14
common_hints:: HintExecutionResult ,
@@ -136,23 +134,6 @@ pub fn felt_from_ptr_immutable(
136
134
Ok ( felt)
137
135
}
138
136
139
- fn get_syscall_cost (
140
- syscall_selector : SyscallSelector ,
141
- context : & EntryPointExecutionContext ,
142
- ) -> SyscallGasCost {
143
- let gas_costs = context. gas_costs ( ) ;
144
- match syscall_selector {
145
- SyscallSelector :: LibraryCall => gas_costs. syscalls . library_call ,
146
- SyscallSelector :: CallContract => gas_costs. syscalls . call_contract ,
147
- SyscallSelector :: Deploy => gas_costs. syscalls . deploy ,
148
- SyscallSelector :: GetExecutionInfo => gas_costs. syscalls . get_execution_info ,
149
- SyscallSelector :: GetBlockHash => gas_costs. syscalls . get_block_hash ,
150
- SyscallSelector :: StorageRead => gas_costs. syscalls . storage_read ,
151
- SyscallSelector :: StorageWrite => gas_costs. syscalls . storage_write ,
152
- _ => unreachable ! ( "Syscall has no associated cost" ) ,
153
- }
154
- }
155
-
156
137
impl CheatableStarknetRuntimeExtension < ' _ > {
157
138
// crates/blockifier/src/execution/syscalls/hint_processor.rs:280 (SyscallHintProcessor::execute_syscall)
158
139
fn execute_syscall < Request , Response , ExecuteCallback > (
@@ -177,20 +158,18 @@ impl CheatableStarknetRuntimeExtension<'_> {
177
158
syscall_handler. syscall_ptr += 1 ;
178
159
syscall_handler. increment_syscall_count_by ( & selector, 1 ) ;
179
160
161
+ let syscall_gas_cost = syscall_handler
162
+ . get_gas_cost_from_selector ( & selector)
163
+ . map_err ( |error| SyscallExecutorBaseError :: GasCost { error, selector } ) ?;
164
+
180
165
let SyscallRequestWrapper {
181
166
gas_counter,
182
167
request,
183
168
} = SyscallRequestWrapper :: < Request > :: read ( vm, & mut syscall_handler. syscall_ptr ) ?;
184
169
185
- let syscall_gas_cost = get_syscall_cost ( selector, syscall_handler. base . context ) ;
186
170
let syscall_gas_cost =
187
171
syscall_gas_cost. get_syscall_cost ( u64_from_usize ( request. get_linear_factor_length ( ) ) ) ;
188
- let syscall_base_cost = syscall_handler
189
- . base
190
- . context
191
- . gas_costs ( )
192
- . base
193
- . syscall_base_gas_cost ;
172
+ let syscall_base_cost = syscall_handler. get_syscall_base_gas_cost ( ) ;
194
173
195
174
// Sanity check for preventing underflow.
196
175
assert ! (
0 commit comments