foundry_evm/executors/fuzz/
types.rs1use crate::executors::RawCallResult;
2use alloy_primitives::{Bytes, Log, map::HashMap};
3use foundry_common::evm::Breakpoints;
4use foundry_evm_coverage::HitMaps;
5use foundry_evm_fuzz::FuzzCase;
6use foundry_evm_traces::SparsedTraceArena;
7use revm::interpreter::InstructionResult;
8
9#[derive(Debug)]
11pub struct CaseOutcome {
12 pub case: FuzzCase,
14 pub traces: Option<SparsedTraceArena>,
16 pub coverage: Option<HitMaps>,
18 pub breakpoints: Breakpoints,
20 pub logs: Vec<Log>,
22 pub deprecated_cheatcodes: HashMap<&'static str, Option<&'static str>>,
24}
25
26#[derive(Debug)]
28pub struct CounterExampleOutcome {
29 pub counterexample: (Bytes, RawCallResult),
31 pub exit_reason: Option<InstructionResult>,
33 pub breakpoints: Breakpoints,
35}
36
37#[derive(Debug)]
39#[expect(clippy::large_enum_variant)]
40pub enum FuzzOutcome {
41 Case(CaseOutcome),
42 CounterExample(CounterExampleOutcome),
43}