Skip to content

Echidna 1.3.0.0

Compare
Choose a tag to compare
@incertia incertia released this 25 Feb 00:38
· 528 commits to master since this release

This is the fourth release of Echidna. With this release, we introduce several new features which can be enabled via various config flags. Some of the major ones are:

# multi-abi enables the calling of all known contract ABIs passed to echidna at runtime,
# rather than just fuzzing the target contract. e.g. echidna can discover how to falsify
# contract A {
#   uint256 public flag = 0;
#   function setflag(uint256 x) public {
#     flag = x;
#   }
# }
# contract B {
#   A public a;
#   constructor() public {
#     a = new A();
#   }
#   function echidna_test() public {
#     return a.flag() == 1;
#   }
# }
multi-abi: true
# Given a JSON file describing how to set up an initial blockchain,
# echidna can load these transactions and start fuzzing from there.
# See examples/solidity/basic_multicontract/export.json for more details.
# Leave this null to disable.
initialize: "/path/to/file"
# Turns on the worst case gas estimator. This causes echidna to print the maximum gas usage it saw.
estimateGas: true

Please note that this release introduces a breaking change from previous releases. The tested contract is now specified with --contract rather than being the 2nd argument. This lets us pass more contracts to the command line driver for multi ABI support. See echidna-test --help for more details.

As always, the full changelog may be viewed here. Attached to this release are a statically built Ubuntu binary from the Docker package and a macOS Catalina binary. You can also find this on Dockerhub under incertia/echidna while we sort out automatic builds on the official repository.