Skip to content

Commit eb6e2a7

Browse files
committed
chore(deps): bump revm-inspectors
1 parent 07b0ec3 commit eb6e2a7

File tree

9 files changed

+19
-16
lines changed

9 files changed

+19
-16
lines changed

Cargo.lock

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,6 @@ tower = "0.4"
250250
tower-http = "0.5"
251251
# soldeer
252252
soldeer = "0.2.15"
253+
254+
[patch.crates-io]
255+
revm-inspectors = { git = "https://github.com/h3lio5/evm-inspectors", branch = "optimize-memory-recording" }

crates/anvil/src/eth/otterscan/types.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,11 +306,13 @@ impl OtsInternalOperation {
306306
};
307307
let mut from = node.trace.caller;
308308
let mut to = node.trace.address;
309+
let mut value = node.trace.value;
309310
if node.is_selfdestruct() {
310311
from = node.trace.address;
311312
to = node.trace.selfdestruct_refund_target.unwrap_or_default();
313+
value = node.trace.selfdestruct_transferred_value.unwrap_or_default();
312314
}
313-
Some(Self { r#type, from, to, value: node.trace.value })
315+
Some(Self { r#type, from, to, value })
314316
})
315317
.collect()
316318
}

crates/debugger/src/tui/context.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ impl<'a> DebuggerContext<'a> {
129129

130130
fn active_buffer(&self) -> &[u8] {
131131
match self.active_buffer {
132-
BufferKind::Memory => self.current_step().memory.as_bytes(),
132+
BufferKind::Memory => self.current_step().memory.as_ref().unwrap().as_bytes(),
133133
BufferKind::Calldata => &self.debug_call().calldata,
134134
BufferKind::Returndata => &self.current_step().returndata,
135135
}

crates/debugger/src/tui/draw.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ impl DebuggerContext<'_> {
502502
let call = self.debug_call();
503503
let step = self.current_step();
504504
let buf = match self.active_buffer {
505-
BufferKind::Memory => step.memory.as_ref(),
505+
BufferKind::Memory => step.memory.as_ref().unwrap().as_ref(),
506506
BufferKind::Calldata => call.calldata.as_ref(),
507507
BufferKind::Returndata => step.returndata.as_ref(),
508508
};

crates/evm/evm/src/inspectors/stack.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ impl InspectorStack {
447447
.as_ref()
448448
.map(|cheatcodes| cheatcodes.labels.clone())
449449
.unwrap_or_default(),
450-
traces: tracer.map(|tracer| tracer.get_traces().clone()),
450+
traces: tracer.map(|tracer| tracer.into_traces()),
451451
coverage: coverage.map(|coverage| coverage.maps),
452452
cheatcodes,
453453
chisel_state: chisel_state.and_then(|state| state.state),

crates/evm/traces/src/decoder/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ impl CallTraceDecoder {
575575

576576
let events_it = nodes
577577
.iter()
578-
.flat_map(|node| node.logs.iter().filter_map(|log| log.topics().first()))
578+
.flat_map(|node| node.logs.iter().filter_map(|log| log.raw_log.topics().first()))
579579
.unique();
580580
identifier.write().await.identify_events(events_it).await;
581581

crates/evm/traces/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ pub async fn render_trace_arena(
9595
for child in &node.ordering {
9696
match child {
9797
TraceMemberOrder::Log(index) => {
98-
let log = render_trace_log(&node.logs[*index], decoder).await?;
98+
let log = render_trace_log(&node.logs[*index].raw_log, decoder).await?;
9999

100100
// Prepend our tree structure symbols to each line of the displayed log
101101
log.lines().enumerate().try_for_each(|(i, line)| {

crates/forge/src/runner.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -307,18 +307,17 @@ impl<'a> ContractRunner<'a> {
307307
});
308308

309309
// Invariant testing requires tracing to figure out what contracts were created.
310+
// We also want to disable `debug` for setup since we won't be using those traces.
310311
let has_invariants = self.contract.abi.functions().any(|func| func.is_invariant_test());
311-
let tmp_tracing =
312-
self.executor.inspector().tracer.is_none() && has_invariants && call_setup;
313-
if tmp_tracing {
314-
self.executor.set_tracing(true, false);
315-
}
312+
let tmp_tracing = has_invariants && call_setup;
313+
let prev_tracer = std::mem::take(&mut self.executor.inspector_mut().tracer);
314+
self.executor.set_tracing(tmp_tracing, false);
315+
316316
let setup_time = Instant::now();
317317
let setup = self.setup(call_setup);
318318
debug!("finished setting up in {:?}", setup_time.elapsed());
319-
if tmp_tracing {
320-
self.executor.set_tracing(false, false);
321-
}
319+
320+
self.executor.inspector_mut().tracer = prev_tracer;
322321

323322
if setup.reason.is_some() {
324323
// The setup failed, so we return a single test result for `setUp`

0 commit comments

Comments
 (0)