|
|
|
## TODO
|
|
|
|
|
|
|
|
## 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 <ESC> 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` and `MonadReader` (#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 unify `Echidna.RPC` and `Transaction` (#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
|
|
|
|
|
|
|
|
[2cc059b49cae613025b925f0273b906e25484b68]: https://github.com/dapphub/dapptools/tree/2cc059b49cae613025b925f0273b906e25484b68
|
|
|
|
[af84e2ee0a0654fdaa91186384233cf1731ee7ce]: https://github.com/dapphub/dapptools/tree/af84e2ee0a0654fdaa91186384233cf1731ee7ce
|
|
|
|
[150dddc67b6cbad75fd4ae5a689452892f55ea26]: https://github.com/dapphub/dapptools/tree/150dddc67b6cbad75fd4ae5a689452892f55ea26
|