* Add symbolic execution
Co-authored-by: Ben Siraphob <bensiraphob@gmail.com>
Co-authored-by: Sam Alws <sam.alws@trailofbits.com>
* Add support for concolic execution
---------
Co-authored-by: Artur Cygan <artur.cygan@trailofbits.com>
Co-authored-by: Ben Siraphob <bensiraphob@gmail.com>
* 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 <artur.cygan@trailofbits.com>
* WIP implementation using codehash map
* compiles and runs; significantly faster than master
* use codehash for signaturemap
* remove metadata cache
* use codeContract rather than contract; use env rather than individual pieces of env
* refactor codehash helper functions
* hlint
* cleanup
* added test (don't know if it works yet)
* Add @arcz 's suggestions
* fallback on bytecode metadata if findSrc doesn't work
* fix tests
* rename Echidna.Types.CodehashMap to Echidna.SignatureMapping
* hevm: enable compact-unwind on macOS
Refer to https://gitlab.haskell.org/ghc/ghc/-/issues/11829
* Add test for precompile unwinding
* Revert hevm pin from "hevm: enable compact-unwind on macOS"
This partially reverts commit 37270701a7.
hevm will be upgraded separately.
* 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
RPC test
More complex RPC example, metadata memo and logging
Display the number of fetched contracts/slots
Fetched contracts popup
RPC errors WIP
Show fetch errors to the user
Move metadata cache to IORef
* 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 <artur.cygan@trailofbits.com>
* initialize sender addresses from etheno transactions
* make sure EOA are initialized when replaying etheno transactions
* hlint fix
* properly show the user when a hevm query failed during etheno transaction replay
* added tests
* Minor fixes
Co-authored-by: Artur Cygan <artur.cygan@trailofbits.com>
* 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
* preliminary code for foundry fuzz test support
* added call to setUp
* added some tests, that needed to be fixed
* added missing file, fixed tests and some optimization
* fix solc version
* fix
* show an error if setUp reverts
* fix hlint issues
* fixed and reorganized tests
* renamed test mode