Skip to content

Commit bc2da71

Browse files
rvaggStebalien
authored andcommitted
feat: add ipld section to execution trace
1 parent 29b344d commit bc2da71

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

rust/src/fvm/machine.rs

+16
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,13 @@ struct LotusGasCharge {
438438
pub duration_nanos: u64,
439439
}
440440

441+
#[derive(Clone, Debug, Serialize_tuple, Deserialize_tuple)]
442+
struct TraceIpld {
443+
pub op: u64,
444+
pub cid: Cid,
445+
pub size: usize,
446+
}
447+
441448
#[derive(Clone, Debug, Serialize_tuple, Deserialize_tuple)]
442449
struct Trace {
443450
pub msg: TraceMessage,
@@ -446,6 +453,7 @@ struct Trace {
446453
pub gas_charges: Vec<LotusGasCharge>,
447454
pub subcalls: Vec<Trace>,
448455
pub logs: Vec<String>,
456+
pub ipld: Vec<TraceIpld>,
449457
}
450458

451459
#[derive(Serialize_tuple, Deserialize_tuple, Debug, PartialEq, Eq, Clone)]
@@ -507,6 +515,7 @@ fn build_lotus_trace(
507515
gas_charges: vec![],
508516
subcalls: vec![],
509517
logs: vec![],
518+
ipld: vec![],
510519
};
511520

512521
while let Some(trace) = trace_iter.next() {
@@ -579,6 +588,13 @@ fn build_lotus_trace(
579588
ExecutionEvent::Log(s) => {
580589
new_trace.logs.push(s);
581590
}
591+
ExecutionEvent::Ipld { op, cid, size } => {
592+
new_trace.ipld.push(TraceIpld {
593+
op: op as u64,
594+
cid,
595+
size,
596+
});
597+
}
582598
_ => (), // ignore unknown events.
583599
};
584600
}

0 commit comments

Comments
 (0)