* Use `bit` instead of power of two (2 ^ i)
We are computing powers of two, so using `bit` performs better.
* Consider case with i=256
2^256 is not representable in a Word256.
* 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>
* fix crash when minimizing inputs during optimization tests
* better reporting of optimization properties
* hlint fix
* correctly show list of transactions in optimization mode
* Actions: update action versions
* Actions: bump python to 3.8
Newer crytic-compile and slither support 3.8+
* Actions: remove old actions/cache workaround
* Actions: bump cachix action
* Actions: remove leftover branches in triggers
* Actions: run echidna tests in 0.8.x
* Actions: enable dependabot version updates
* Actions: fix cache version
* Revert "Actions: run echidna tests in 0.8.x"
This reverts commit e3749aff39.
harvey_baz.sol test fails too frequently under 0.8, it will need more
investigation.
* docs: add Homebrew installation instructions
During the "Learn how to fuzz like a pro" workshop (16.11.2022) Anish mentioned that it is possible to install echidna with Homebrew. It seems that this information is missing in the main Echidna readme. I've spent some time fighting with the docker container setup and later found out that you can simply `brew install echidna`. I think that adding this information would be helpful for beginner users like me.
Such instruction is already present in the [building secure smart contracts repo](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/echidna#installation).
* docs: add explicit description of 1 line installation
Commit incorporates changes proposed by @elopez:
- More appropriate section title
- Info about dependencies installed with `brew install echidna`
- additional info about `echidna` Homebrew Formula
Co-authored-by: Emilio López <2642849+elopez@users.noreply.github.com>
* Update README.md
Co-authored-by: Emilio López <2642849+elopez@users.noreply.github.com>
Co-authored-by: Gustavo Grieco <31542053+ggrieco-tob@users.noreply.github.com>
* added colored html output based on @samalws code
* hlint fix
* Exclude non-runtime lines from coverage display
* Use a lighter grey as background
* make sure coverage filenames have the same prefix
Co-authored-by: Artur Cygan <artur.cygan@trailofbits.com>
* Dockerfile: make image slimmer, based on distroless
* GitHub Actions: configure docker buildx
* GitHub Actions: move to ghcr.io
* Move dockerfile, add solc-install wrapper
* Add solc-select to python environment
* Disable wheel caching
* Add debian-based image
* Build and tag both debian and distroless images
* Reorganize tags, use build and push action
* Add NVM variant
* Indicate Dockerfile path correctly
* Unify Debian variants
* Switch to Docker metadata action
* Improve Docker section on README
* Enable caching of layers
* Update action versions
* Move back to Ubuntu
To keep the same distro we were using previously
* Disable building distroless
* Publish the images under the previous names
* Fix naming and publishing
* Use ubuntu focal
Try fixing missing __xmknod symbol with ubuntu jammy
* Make apt-get installs non-interactive
* Remove 'ubuntu' ghcr image name
* Add setuptools, distutils and pip
Otherwise the final environment is slightly broken if someone tries
to install extra packages
* Add UTF-8 locale
Echidna prints emojis and will throw an error if the locale is not
set correctly.
* README: fix some markdownlint warnings
* README: adjust Docker documentation
* nix: Bump slither-analyzer and crytic-compile dependencies
hevm is currently marked broken, so only reference the dependencies
from the newer snapshot.
* nix: re-enable tests