@@ -127,7 +127,7 @@ pub fn call<WIRE: InterpreterTypes, H: Host + ?Sized>(
127
127
else {
128
128
return ;
129
129
} ;
130
- let Some ( gas_limit) =
130
+ let Some ( ( gas_limit, bytecode , bytecode_hash ) ) =
131
131
load_acc_and_calc_gas ( & mut context, to, has_transfer, true , local_gas_limit)
132
132
else {
133
133
return ;
@@ -144,6 +144,8 @@ pub fn call<WIRE: InterpreterTypes, H: Host + ?Sized>(
144
144
target_address : to,
145
145
caller : context. interpreter . input . target_address ( ) ,
146
146
bytecode_address : to,
147
+ bytecode,
148
+ bytecode_hash,
147
149
value : CallValue :: Transfer ( value) ,
148
150
scheme : CallScheme :: Call ,
149
151
is_static : context. interpreter . runtime_flag . is_static ( ) ,
@@ -169,7 +171,7 @@ pub fn call_code<WIRE: InterpreterTypes, H: Host + ?Sized>(
169
171
return ;
170
172
} ;
171
173
172
- let Some ( gas_limit) =
174
+ let Some ( ( gas_limit, bytecode , bytecode_hash ) ) =
173
175
load_acc_and_calc_gas ( & mut context, to, has_transfer, false , local_gas_limit)
174
176
else {
175
177
return ;
@@ -186,6 +188,8 @@ pub fn call_code<WIRE: InterpreterTypes, H: Host + ?Sized>(
186
188
target_address : context. interpreter . input . target_address ( ) ,
187
189
caller : context. interpreter . input . target_address ( ) ,
188
190
bytecode_address : to,
191
+ bytecode,
192
+ bytecode_hash,
189
193
value : CallValue :: Transfer ( value) ,
190
194
scheme : CallScheme :: CallCode ,
191
195
is_static : context. interpreter . runtime_flag . is_static ( ) ,
@@ -211,7 +215,8 @@ pub fn delegate_call<WIRE: InterpreterTypes, H: Host + ?Sized>(
211
215
return ;
212
216
} ;
213
217
214
- let Some ( gas_limit) = load_acc_and_calc_gas ( & mut context, to, false , false , local_gas_limit)
218
+ let Some ( ( gas_limit, bytecode, bytecode_hash) ) =
219
+ load_acc_and_calc_gas ( & mut context, to, false , false , local_gas_limit)
215
220
else {
216
221
return ;
217
222
} ;
@@ -227,6 +232,8 @@ pub fn delegate_call<WIRE: InterpreterTypes, H: Host + ?Sized>(
227
232
target_address : context. interpreter . input . target_address ( ) ,
228
233
caller : context. interpreter . input . caller_address ( ) ,
229
234
bytecode_address : to,
235
+ bytecode,
236
+ bytecode_hash,
230
237
value : CallValue :: Apparent ( context. interpreter . input . call_value ( ) ) ,
231
238
scheme : CallScheme :: DelegateCall ,
232
239
is_static : context. interpreter . runtime_flag . is_static ( ) ,
@@ -252,7 +259,8 @@ pub fn static_call<WIRE: InterpreterTypes, H: Host + ?Sized>(
252
259
return ;
253
260
} ;
254
261
255
- let Some ( gas_limit) = load_acc_and_calc_gas ( & mut context, to, false , false , local_gas_limit)
262
+ let Some ( ( gas_limit, bytecode, bytecode_hash) ) =
263
+ load_acc_and_calc_gas ( & mut context, to, false , false , local_gas_limit)
256
264
else {
257
265
return ;
258
266
} ;
@@ -268,6 +276,8 @@ pub fn static_call<WIRE: InterpreterTypes, H: Host + ?Sized>(
268
276
target_address : to,
269
277
caller : context. interpreter . input . target_address ( ) ,
270
278
bytecode_address : to,
279
+ bytecode,
280
+ bytecode_hash,
271
281
value : CallValue :: Transfer ( U256 :: ZERO ) ,
272
282
scheme : CallScheme :: StaticCall ,
273
283
is_static : true ,
0 commit comments