v0.1.1
This marks the second release of medusa
. Version 0.1.1 introduces coverage report generation, initial value shrinking logic, improved logging, and various fixes.
What's Changed
- Introduced initial coverage report generation. This produces a report showing coverage across a fuzzer run. Note: view/pure methods in Solidity are currently not called by the fuzzer and it does not capture property test call coverage.
- Added support for
optimization
mode: Similar to echidna's optimization mode, this mode returns a call sequence which maximizes a given value returned by a function call. - Added extensions to the assertion testing mode. Users can now configure different panic codes that will trigger an assertion failure (e.g. arithmetic overflow).
- Introduced initial value shrinking. This will attempt to find more human-readable values to trigger a failure, after one has been discovered. This is currently used for a minimal number of iterations and will be further iterated on in a later release.
- Added colorized output to the CLI, with support for structured JSON logging (to be integrated in a later release).
- Added support for CLI autocompletion.
- Fixed an issue where the
addr
andsign
cheatcodes may error. - Fixed a panic that would occur when changing Solidity function input arguments between runs, by ensuring corpus validation on startup disables any outdated corpus items.
- Fixes an issue where some event defined outside of the immediate contract (e.g. through inheritance) would not be resolved in execution traces.
- Fixed a bug where arrays/slices would not properly copy during mutations.
Full Changelog: v0.1.0...v0.1.1