@@ -205,7 +205,7 @@ fn fvm_machine_execute_message(
205
205
let exec_trace = if !apply_ret. exec_trace . is_empty ( ) {
206
206
let mut trace_iter = apply_ret. exec_trace . into_iter ( ) ;
207
207
build_lotus_trace (
208
- & ( & mut trace_iter)
208
+ ( & mut trace_iter)
209
209
// Skip gas charges before the first call, if any. Lotus can't handle them.
210
210
. find ( |item| !matches ! ( item, & ExecutionEvent :: GasCharge ( _) ) )
211
211
. expect ( "already checked trace for emptiness" ) ,
@@ -337,7 +337,7 @@ pub struct LotusReceipt {
337
337
}
338
338
339
339
fn build_lotus_trace (
340
- new_call : & ExecutionEvent ,
340
+ new_call : ExecutionEvent ,
341
341
trace_iter : & mut impl Iterator < Item = ExecutionEvent > ,
342
342
) -> anyhow:: Result < LotusTrace > {
343
343
let mut new_trace = LotusTrace {
@@ -350,12 +350,12 @@ fn build_lotus_trace(
350
350
value,
351
351
} => Message {
352
352
version : 0 ,
353
- from : Address :: new_id ( * from) ,
354
- to : * to,
353
+ from : Address :: new_id ( from) ,
354
+ to,
355
+ value,
355
356
sequence : 0 ,
356
- value : value. clone ( ) ,
357
- method_num : * method,
358
- params : params. clone ( ) ,
357
+ method_num : method,
358
+ params : params. map ( |b| b. data ) . unwrap_or_default ( ) . into ( ) ,
359
359
gas_limit : 0 ,
360
360
gas_fee_cap : TokenAmount :: default ( ) ,
361
361
gas_premium : TokenAmount :: default ( ) ,
@@ -379,12 +379,12 @@ fn build_lotus_trace(
379
379
ExecutionEvent :: Call { .. } => {
380
380
new_trace
381
381
. subcalls
382
- . push ( build_lotus_trace ( & trace, trace_iter) ?) ;
382
+ . push ( build_lotus_trace ( trace, trace_iter) ?) ;
383
383
}
384
384
ExecutionEvent :: CallReturn ( exit_code, return_data) => {
385
385
new_trace. msg_receipt = LotusReceipt {
386
386
exit_code,
387
- return_data,
387
+ return_data : return_data . map ( |b| b . data ) . unwrap_or_default ( ) . into ( ) ,
388
388
gas_used : 0 ,
389
389
} ;
390
390
return Ok ( new_trace) ;
@@ -431,7 +431,6 @@ mod test {
431
431
use crate :: fvm:: machine:: build_lotus_trace;
432
432
use fvm3:: kernel:: SyscallError ;
433
433
use fvm3:: trace:: ExecutionEvent ;
434
- use fvm3_ipld_encoding:: RawBytes ;
435
434
use fvm3_shared:: address:: Address ;
436
435
use fvm3_shared:: econ:: TokenAmount ;
437
436
use fvm3_shared:: error:: ErrorNumber :: IllegalArgument ;
@@ -442,7 +441,7 @@ mod test {
442
441
let call_event = ExecutionEvent :: Call {
443
442
from : ActorID :: default ( ) ,
444
443
method : 0 ,
445
- params : RawBytes :: default ( ) ,
444
+ params : None ,
446
445
to : Address :: new_id ( 0 ) ,
447
446
value : TokenAmount :: default ( ) ,
448
447
} ;
@@ -461,7 +460,7 @@ mod test {
461
460
462
461
let mut trace_iter = trace. into_iter ( ) ;
463
462
464
- let lotus_trace = build_lotus_trace ( & trace_iter. next ( ) . unwrap ( ) , & mut trace_iter) . unwrap ( ) ;
463
+ let lotus_trace = build_lotus_trace ( trace_iter. next ( ) . unwrap ( ) , & mut trace_iter) . unwrap ( ) ;
465
464
466
465
assert ! ( trace_iter. next( ) . is_none( ) ) ;
467
466
0 commit comments