@@ -216,13 +216,17 @@ fn fvm_machine_execute_message(
216
216
method,
217
217
params,
218
218
value,
219
+ gas_limit,
220
+ read_only,
219
221
} ) => {
220
222
break build_lotus_trace (
221
223
from,
222
224
to,
223
225
method,
224
226
params,
225
227
value,
228
+ gas_limit,
229
+ read_only,
226
230
& mut initial_gas_charges. into_iter ( ) . chain ( & mut trace_iter) ,
227
231
)
228
232
. ok ( )
@@ -378,6 +382,8 @@ pub struct TraceMessage {
378
382
#[ serde( with = "strict_bytes" ) ]
379
383
pub params : Vec < u8 > ,
380
384
pub codec : u64 ,
385
+ pub gas_limit : u64 ,
386
+ pub read_only : bool ,
381
387
}
382
388
383
389
#[ derive( Serialize_tuple , Deserialize_tuple , Debug , PartialEq , Eq , Clone ) ]
@@ -394,6 +400,8 @@ fn build_lotus_trace(
394
400
method : u64 ,
395
401
params : Option < IpldBlock > ,
396
402
value : TokenAmount ,
403
+ gas_limit : u64 ,
404
+ read_only : bool ,
397
405
trace_iter : & mut impl Iterator < Item = ExecutionEvent > ,
398
406
) -> anyhow:: Result < Trace > {
399
407
let params = params. unwrap_or_default ( ) ;
@@ -405,6 +413,8 @@ fn build_lotus_trace(
405
413
method_num : method,
406
414
params : params. data ,
407
415
codec : params. codec ,
416
+ gas_limit,
417
+ read_only,
408
418
} ,
409
419
msg_ret : TraceReturn {
410
420
exit_code : ExitCode :: OK ,
@@ -423,9 +433,11 @@ fn build_lotus_trace(
423
433
method,
424
434
params,
425
435
value,
436
+ gas_limit,
437
+ read_only,
426
438
} => {
427
439
new_trace. subcalls . push ( build_lotus_trace (
428
- from, to, method, params, value, trace_iter,
440
+ from, to, method, params, value, gas_limit , read_only , trace_iter,
429
441
) ?) ;
430
442
}
431
443
ExecutionEvent :: CallReturn ( exit_code, return_data) => {
@@ -501,6 +513,8 @@ mod test {
501
513
params : None ,
502
514
to : Address :: new_id ( 0 ) ,
503
515
value : TokenAmount :: default ( ) ,
516
+ gas_limit : u64:: MAX ,
517
+ read_only : false ,
504
518
} ;
505
519
let return_result =
506
520
ExecutionEvent :: CallError ( SyscallError :: new ( IllegalArgument , "illegal" ) ) ;
@@ -524,6 +538,8 @@ mod test {
524
538
0 ,
525
539
None ,
526
540
TokenAmount :: default ( ) ,
541
+ u64:: MAX ,
542
+ false ,
527
543
& mut trace_iter,
528
544
)
529
545
. unwrap ( ) ;
0 commit comments