Skip to content

Commit 3bdf4fa

Browse files
improvement
1 parent 324232c commit 3bdf4fa

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

crates/evm/traces/src/lib.rs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use foundry_common::{
1515
contracts::{ContractsByAddress, ContractsByArtifact},
1616
shell,
1717
};
18+
use foundry_config::NamedChain::SuperpositionTestnet;
1819
use revm::bytecode::opcode::OpCode;
1920
use revm_inspectors::tracing::{
2021
OpcodeFilter,
@@ -210,27 +211,34 @@ pub fn render_trace_arena_inner(
210211
}
211212

212213
// Remove overlapping decoded trace data
213-
let mut cloned_arena = arena.clone();
214-
for node in cloned_arena.nodes_mut() {
215-
for step in &mut node.trace.steps {
216-
if step.decoded.is_some() {
217-
step.storage_change = None;
214+
let mut resolved = arena.resolve_arena();
215+
216+
let mut tempo_changes = String::new();
217+
if with_storage_changes {
218+
append_tempo_channel_storage_decodes(&mut tempo_changes, &resolved);
219+
}
220+
221+
let resolved_mut = resolved.to_mut();
222+
if with_storage_changes {
223+
for node in resolved_mut.nodes_mut() {
224+
for step in &mut node.trace.steps {
225+
if step.decoded.is_some() {
226+
step.storage_change = None;
227+
}
218228
}
219229
}
220230
}
221231

222-
let resolved = cloned_arena.resolve_arena();
223232
let mut w = TraceWriter::new(Vec::<u8>::new())
224233
.color_cheatcodes(true)
225234
.use_colors(convert_color_choice(shell::color_choice()))
226235
.write_bytecodes(with_bytecodes)
227236
.with_storage_changes(with_storage_changes);
228-
w.write_arena(&resolved).expect("Failed to write traces");
237+
w.write_arena(&resolved_mut).expect("Failed to write traces");
229238
let mut rendered =
230239
String::from_utf8(w.into_writer()).expect("trace writer wrote invalid UTF-8");
231-
if with_storage_changes {
232-
append_tempo_channel_storage_decodes(&mut rendered, &arena.resolve_arena());
233-
}
240+
rendered.push_str(&tempo_changes);
241+
234242
rendered
235243
}
236244

0 commit comments

Comments
 (0)