mirror of https://github.com/crytic/echidna
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.9 KiB
8.9 KiB
TODO
2.0.4
- Added colored html for coverage output code (#816)
- Fixed crash when parsing solc versions (#835)
- Fixed long transactions and event lines in UI (#832)
- Added Homebrew installation instructions (#848)
- Moved all nix stuff to flake and use nix-bundle-exe for macOS release (#851)
- Updated codebase to GHC 9.0.2 (#846)
- Refactored code and removed useless dependencies (#854, #853, #829, #827, #828)
2.0.3
- Clean up Docker containers (#706)
- Avoid resetting accounts if there is a deployed contract (#795)
- Fixed decoding non-utf8 strings from slither printer (#799)
- Fixed generation and mutation of extreme signed integers (#791)
- Removed fallback from signature map when it is not defined (#772)
2.0.2
- Improved shrinking of dynamic arrays (#775)
- Added support for deployment of certain contracts or bytecode in specific addresses (#758)
- Fixed git attribute to support building docker containers in Windows (#773)
- Fixed crash when the EVM execution triggers more than one query (#760)
- Added support for detection and handling of ancient solc versions (#675)
- Added explicit static flag and removed pthread one from ghc options (#768)
2.0.1
- Optimized stateless mutators (#747)
- Expanded and improved command-line help (#741)
- Added dapptest support: compatibility mode to run foundry and dapptool fuzz tests (#733, #745)
- Generate more values closer to the maximum (#736)
- Fix TERMINFO path for Nix release builds (#731)
- Mitigate large memory consumption when replaying corpus (#725)
- Fix --shrink-limit to change shrink limit instead of test limit (#728)
- Correctly show lines with multiple types of coverage
- Restored nix support (#717, #743)
2.0.0
- Refactored test internal data structures and code
- Refactored unit test code and moved the related files to the
tests
directory - Added support to show events and custom errors when a property/assertion fails
- Added support for catching assertion failure in Solidity 0.8.x
- Added two new testing mode: optimization and overflow (only in Solidity 0.8.x)
- Added optional checks for contract destruction
- Added
testMode
option and removed related flags - Simplified contract deployer and property sender addresses to be easier to read
- Updated hevm to 0.49.0
1.7.3
- Removed old compilation artifacts before starting a new fuzzing campaign (#697)
- Fixed incorrect function filtering when using assertion mode (#695)
- Improved handling of negative constants (#683)
- Updated hevm to 0.48.0 (#691)
- Removed nix workaround for Slither (#680)
- Fixed source printing when some lines are not covered (#678)
1.7.2
- Fixed check-asserts and multi-abi cli switches (#665)
- Updated to hevm 0.4.6 (#660)
- Support for loading multiple files with compiled contracts from hardhat/brownie (#659)
1.7.1
- Tweaked mutators and improved test stability (#628)
- Documented known issues and limitations (#655)
- Automatically initialize addresses when used (#657)
- Improved coverage to count number of EVM frames (#624)
- Avoid mutations to generate inputs outside their expected ABI range (#650)
- Various small to run Vyper contracts (#645)
- Improved integer generation to use small values (#644)
- Added two CLI options: --corpus-dir and --check-asserts (#640)
- Refactored shrinkSeq to improve readability (#639)
- Fixed UI to fit long function calls (#635)
- Refactor coverage types and added corpus size in UI (#627)
- Fixed link to macOS binary in binaries.soliditylang.org (#629)
- Fixed default.nix to use 1.7.0 as version (#623)
- Refactored Test type (#622)
1.7.0
- Refactored and improved etheno support to be more useful (#615)
- Coverage filenames are not overwritten (#620)
- Refactored the mutator code (#618)
- More corpus and array mutations implemented (#372)
- Source coverage is printed after fuzzing campaign (#516)
- Nix improvements and fixes (#603, #604, #608, #612)
- Simplified slither information parsing (#543)
- Enabled use of coverage by default (#605)
- Run echidna tests in parallel (#571)
1.6.1
- Use a sensible default value for
block.gaslimit
(#596) - Use metadata to detect deployed contracts (#593)
- Semver integration for improving testing with different solc versions (#594)
- Added some performance improvement in property execution (#576)
- Fixed wait bug when shrinking (#584)
- Added funwithnumber example from Sabre (#565)
- Improved function filtering to be more precise (#570)
- Small fixes in the macOS CI (#597), the README (#590) and Nix (#581)
1.6.0
- Slither is now a required dependency.
- Made sure that gets mapped correctly, fixing #474 (#503)
- Fix library timestamp/block delay issue (#510)
- Make stack limit exceeded a revert (#517)
- Add some default transaction constants (#532)
- Make large constants work better with dictionaries (#523)
- Fix "flanky" corpus tests (#537)
- HEVM updated to 150dddc67b6cbad75fd4ae5a689452892f55ea26 (0.42) (#511)
- this may introduce a slight performance hit as everything is partially symbolic
- Improved shrinking and pretty printing (#518)
- Integrate slither results (#451)
- Disagreements about
MonadState
andMonadReader
(#545, #513) - Simplified a bunch of code (#548, #549, #513)
- Fix negative address bug (#552)
- Various Github Actions improvements (#527, #554)
- Allow to bypass EIP-170 and set up a custom max code size (#544)
1.5.1
- Fix timestamp and block delays having the initial timestamp/block added to them (#460, #469)
- Fix GitHub actions due to new macOS image (#468)
- Relax
package.yaml
constraints (#466) - Fix
extcodesize
by creating contracts correctly (#453, #454, #465) - Refactor unit tests (#457)
- Add seed to UI (#456)
- Set an initial timestamp and block number (#455)
- Better README (#450)
- Code simplifications (#448)
- Detect contract deployment failures (#447)
- DockerHub containers in addition to GitHub (#445)
- Brought back print reporting after exiting the UI (#441)
- Refactor
Tx
(#437)
1.5.0
- Switch to x.y.z versioning scheme
- Refactor campaign-related code (#384)
- Fixed hevm-related memory leak (#423)
- Fixed array mutation memory leak (#442)
- Benchmark mode to run without tests (#420, #409)
- Migrated to GitHub actions (#414, #402)
- Corpus mutation handling fixes (#395, #403)
- Improved JSON output and reworked UI handling to better handle interactive and non-interactive mode (#405)
- Use safe mutation parameters to favor purely random generation (#393)
- Show address in hex using "0x" (#386)
- Enable addresses shrinking (#385)
- Fixed coverage counting when a contract is deployed multiple times (#410)
- Prioritization to mutate each list of transactions from the corpus (#376, #395)
- Improved array generation using generic mutations (#357)
- Multiple coverage tracking according to the result of a transaction (#369)
- Allow to control corpus mutation constans using a configuration file (#373)
1.4.0.1
- HEVM updated to af84e2ee0a0654fdaa91186384233cf1731ee7ce
1.4.0.0
- Filtering functions either blacklisting or whitelisting functions to call during a fuzzing campaign (#341)
- Support to collect, save and load a corpus of transactions in JSON (#352, #353)
- Basic mutations based on collected corpus (#370)
- Use of
hlint
as Github action to verify new PR (#366)
1.3.0.0
- Gaining knowledge of contract-created contract addresses (#295)
- Improved
crytic-compile
error handling when missing (#335) - Support testing from arbitrary blockchain state via etheno (#333)
- Some shrinking improvements (#336)
- UI improvements (#339)
- UI updates are now threaded separately from fuzzing campaign (#345)
Tx
rework to unifyEchidna.RPC
andTransaction
(#346)- Adjustment of testsuite parameters (#347)
- Multi-ABI support by fuzzing all known ABIs (#344)
- Fix indefinite
MVar
blocking (#350) - AddressArrayExample (#348)
Tx
JSON conversions (#352)- Smaller docker container, multi-stage build (#349)
- Gas worst case estimation (#355)
1.2.0.0
- Warn on unused config keys (#301)
default.yaml
kept up to date via CI checks (#301)- Improved shrinking (#310)
- Solidity ABIv2 support (#284, #303, #317)
- Early termination on property falure (#323)
- Timeouts (#320)
- HEVM updated to 2cc059b49cae613025b925f0273b906e25484b68
- Dictionary control (#312, #321)
- Gas price fuzzing (#307)
- Coverage bug fixed (#300)
- Contract creation bug fixed (#293)
- New startup message (#290)
- Add
--version
flag (#285) - Support time/block delays (#282)
- Support
crytic
arguments (#280) - Detect assertion failure (#276)
- Use return values as constants (#262)
- Reproducible testing with seeds (#254)
1.0.0.0
- Initial stable release