foundry_evm::executors::invariant::shrink

Function shrink_sequence

Source
pub(crate) fn shrink_sequence(
    failed_case: &FailedInvariantCaseData,
    calls: &[BasicTxDetails],
    executor: &Executor,
    call_after_invariant: bool,
    progress: Option<&ProgressBar>,
) -> Result<Vec<BasicTxDetails>>
Expand description

Shrinks the failure case to its smallest sequence of calls.

Maximal shrinkage is guaranteed if the shrink_run_limit is not set to a value lower than the length of failed call sequence.

The shrunk call sequence always respect the order failure is reproduced as it is tested top-down.