How dropnation/contract-fuzzer works
Solfuzz fuzzes Solidity contracts against Echidna-style boolean properties. The main workflow starts at the CLI, compiles selected sources, extracts ABI properties and mutable call targets, then repeatedly generates arguments, sends transactions to an in-process EVM, and checks properties. On violations it writes a failure artifact and summary; replay is a separate best-effort CLI path. The graph reflects shown calls and README capabilities; diagnostics and replay are included, while details of configuration and artifact behavior are based only on the available excerpts.
Main entry points: cli.py CLI commands · fuzzer.py Fuzz orchestration · utils.py Run artifacts · runtime.py EVM runtime
Components 13
CLI and diagnostics
- CLI commands
src/solfuzz/cli.py - Environment diagnostics
src/solfuzz/system_info.py
Contract preparation
- Solidity compiler
src/solfuzz/compiler.py - ABI discovery
src/solfuzz/abi.py
Fuzz execution
- Fuzz orchestration
src/solfuzz/fuzzer.py - Argument generation
src/solfuzz/generator.py - EVM runtime
src/solfuzz/runtime.py
Artifacts and replay
- Run artifacts
src/solfuzz/utils.py - Run summary
src/solfuzz/report.py - Failure replay
src/solfuzz/cli.py
Other components
- Engineer
- In-process EVM
- Solidity sources
Connections 19
- Engineer → CLI commands: invokes
src/solfuzz/cli.py - CLI commands → Environment diagnostics: gathers info
src/solfuzz/cli.py - CLI commands → Solidity compiler: compiles
src/solfuzz/cli.py - Solidity sources → Solidity compiler: provides sources
README.md - CLI commands → ABI discovery: extracts contracts
src/solfuzz/cli.py - CLI commands → Fuzz orchestration: starts run
src/solfuzz/cli.py - Fuzz orchestration → ABI discovery: discovers functions
src/solfuzz/fuzzer.py - Fuzz orchestration → Argument generation: requests arguments
src/solfuzz/fuzzer.py - Fuzz orchestration → EVM runtime: deploys and transacts
src/solfuzz/fuzzer.py - EVM runtime → In-process EVM: executes transactions
src/solfuzz/runtime.py - Fuzz orchestration → Run artifacts: writes failures
src/solfuzz/fuzzer.py - Fuzz orchestration → Run summary: writes summary
src/solfuzz/fuzzer.py - Run summary → Run artifacts: writes JSON
src/solfuzz/report.py - CLI commands → Run artifacts: creates run files
src/solfuzz/cli.py - Engineer → Failure replay: requests replay
README.md - Failure replay → Solidity compiler: recompiles sources
src/solfuzz/cli.py - Failure replay → ABI discovery: extracts contract
src/solfuzz/cli.py - Failure replay → EVM runtime: replays transaction
src/solfuzz/cli.py - Failure replay → Run artifacts: reads failure
src/solfuzz/cli.py