* allow to disable testing of view/pure function, except prefix ones in property mode
* removed unused import
* test/config: fix remaining CI failures for excludeViewPure
- default.yaml: add excludeViewPure (the config test requires every option be
listed; it was failing with 'unset options: fromList ["excludeViewPure"]')
- Tests/Integration: pin basic/excludeviewpure.sol to solc >= 0.8.0 (pragma
^0.8.0), so it is skipped on the <0.8 solc CI matrix instead of failing to
compile.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
* test: prove view/pure functions are excluded, using notPresent
Addresses review feedback: excludeviewpure.sol gains a view function with
a planted assert(false), and a new assertion-mode run checks that no
assertion test is created for any view/pure function (via the previously
unused notPresent helper), so the planted assert can never fire. A control
run without excludeViewPure proves the assert IS found otherwise and pins
the test names the notPresent checks look up.
Co-Authored-By: Claude Fable 5 <[email protected]>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
* Initial Sourcify support
* Refactor onchain support
* Clean up implementation
* Fix conformance with Sourcify
* Clean up implementation
* Reduce amount of fields requested to Sourcify
* Do not request metadata from Sourcify
* Allow disabling Sourcify and Etherscan
This adds a new config option, `disableOnchainSources`, and a new
CLI flag, `--disable-onchain-sources` that allows disabling coverage
reports for onchain contracts.
* HTML coverage report improvements
This brings the coverage report improvements developed for Medusa
into Echidna.
* Fix file tree search behavior
Searching will now only open the file tree branches that contain matches.
Also clearing the search box will now properly clear the highlights and
close the file trees.
* Add timestamp to report
* Small report UI tweaks, linting
* Return to original coloring logic
* Fix hlint warnings
* Refactor report generation
* Add coverage report filtering option `coverageExcludes`
This option takes a list of globs and removes those files from
coverage reports. Example: `coverageExcludes: ["lib/**/*", "test/**/*"]`
Fixes: #1391
* Remove unused code
* removed old solc versions, use 0.8.x only instead
* fixed harvey test
* started to fix symexec using latest hevm
* added RPC support for symbolic execution + some clean up
* better constraints for block timestamp and number
* improved and simplified symexec code
* removed useless code
* some test fixes
* increase the number of random symbolic transaction if the corpus is empty
* added comments on why we only take one method from the shuffle list when doing symbolic exploration
* allow user to select smt solver
* use slither to filter functions with assert, if any
* started adding full verification mode for stateless campaigns
* refactored tons of code
* improved code for exploration/verification
* finished implementation and get back to hevm master
* fixed issue in addBlockConstraints and upgraded hevm
* disable debug mode when using interactive mode
* corrected array size in symbolic output
* fix decoding of negative numbers
* simplified code for decoding of negative numbers
* removed initialize field from default
* use verification mode for sym-assert test
* added some basic verification tests
* make the harvey test more reliable
* simplified exploration code and added shrinking
* added new test for exploration mode (but disabled so far)
* worker related refactoring code to allow other parts of the codebase to send events
* make sure symExecTarget is used to select methods
* keccak preimage support enabled
* reduced code duplication
* added documentation
* use new types in Types/Config.hs
* removed killed-related files
This allows explicitly disabling Slither with a new `--disable-slither` command-line flag
or `disableSlither` configuration option. A blinking, red warning will be shown in the UI
when Slither is disabled or otherwise failed, to disuade people from fuzzing without it.
Closes#1318
* POC of delivering status information using server-sent events
* deliver only events instead of status lines
* Stream JSON events
* Hide event server behind config
---------
Co-authored-by: Artur Cygan <[email protected]>
* Multicore
* Try different approach for stopping workers
* Fix windows warning
* Cleanup
* Distribute corpus replay across workers
* Change jobs to workers in config and CLI
* Fix corpus chunking
* Use better chunksOf
* Fix JSON output
* Fix rebasing mistake
* Fix workers not stopping while fetching RPC
* Fix optimization tests shrinking
* Dont set Solved for optimization tests
* allow ffi to be used
* added allowFFI in default.yaml
* implement a system call to perform a ffi
* allow ffi in the etheno json, if the proper flag is used
* Remove unsafePerformIO and cleanup VM creation
* FFI test
Co-authored-by: Artur Cygan <[email protected]>
* initial support for deployment of certain contracts in specific addresses
* fix
* hlint fixes
* allow to deploy specific bytecode instead of contracts
* fix
* use b16 decoding for bytecodes
* fix
* fix
* added two tests to cover this new feature