Skip to content

Commit 4e78c04

Browse files
DaniPopesklkvr
authored andcommitted
chore(deps): bump revm-inspectors (#8300)
* chore(deps): bump revm-inspectors * fix * fix2 * inline * fix3
1 parent 288189c commit 4e78c04

File tree

9 files changed

+36
-33
lines changed

9 files changed

+36
-33
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ solang-parser = "=0.3.3"
155155
# no default features to avoid c-kzg
156156
revm = { version = "10.0.0", default-features = false }
157157
revm-primitives = { version = "5.0.0", default-features = false }
158-
revm-inspectors = { version = "0.2", features = ["serde"] }
158+
revm-inspectors = { version = "0.3", features = ["serde"] }
159159

160160
## ethers
161161
ethers-contract-abigen = { version = "2.0.14", default-features = false }

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: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -415,22 +415,24 @@ impl InspectorStack {
415415
/// Set whether to enable the tracer.
416416
#[inline]
417417
pub fn tracing(&mut self, yes: bool, debug: bool) {
418-
self.tracer = yes.then(|| {
419-
TracingInspector::new(TracingInspectorConfig {
420-
record_steps: debug,
421-
record_memory_snapshots: debug,
422-
record_stack_snapshots: if debug {
423-
StackSnapshotType::Full
424-
} else {
425-
StackSnapshotType::None
426-
},
427-
record_state_diff: false,
428-
exclude_precompile_calls: false,
429-
record_logs: true,
430-
record_opcodes_filter: None,
431-
record_returndata_snapshots: debug,
432-
})
433-
});
418+
if !yes {
419+
self.tracer = None;
420+
return;
421+
}
422+
*self.tracer.get_or_insert_with(Default::default).config_mut() = TracingInspectorConfig {
423+
record_steps: debug,
424+
record_memory_snapshots: debug,
425+
record_stack_snapshots: if debug {
426+
StackSnapshotType::Full
427+
} else {
428+
StackSnapshotType::None
429+
},
430+
record_state_diff: false,
431+
exclude_precompile_calls: false,
432+
record_logs: true,
433+
record_opcodes_filter: None,
434+
record_returndata_snapshots: debug,
435+
};
434436
}
435437

436438
/// Collects all the data gathered during inspection into a single struct.
@@ -447,13 +449,14 @@ impl InspectorStack {
447449
.as_ref()
448450
.map(|cheatcodes| cheatcodes.labels.clone())
449451
.unwrap_or_default(),
450-
traces: tracer.map(|tracer| tracer.get_traces().clone()),
452+
traces: tracer.map(|tracer| tracer.into_traces()),
451453
coverage: coverage.map(|coverage| coverage.maps),
452454
cheatcodes,
453455
chisel_state: chisel_state.and_then(|state| state.state),
454456
}
455457
}
456458

459+
#[inline(always)]
457460
fn as_mut(&mut self) -> InspectorStackRefMut<'_> {
458461
InspectorStackRefMut { cheatcodes: self.cheatcodes.as_mut(), inner: &mut self.inner }
459462
}

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: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -307,18 +307,16 @@ 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 prev_tracer = self.executor.inspector_mut().tracer.take();
313+
self.executor.set_tracing(prev_tracer.is_some() || has_invariants, false);
314+
316315
let setup_time = Instant::now();
317316
let setup = self.setup(call_setup);
318317
debug!("finished setting up in {:?}", setup_time.elapsed());
319-
if tmp_tracing {
320-
self.executor.set_tracing(false, false);
321-
}
318+
319+
self.executor.inspector_mut().tracer = prev_tracer;
322320

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

0 commit comments

Comments
 (0)