You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-8Lines changed: 3 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,6 @@ More seriously, Echidna is a Haskell program designed for fuzzing/property-based
15
15
* Interactive terminal UI, text-only or JSON output
16
16
* Automatic test case minimization for quick triage
17
17
* Seamless integration into the development workflow
18
-
* Maximum gas usage reporting of the fuzzing campaign
19
-
* Support for a complex contract initialization with [Etheno](https://github.com/crytic/etheno) and Truffle
20
18
21
19
.. and [a beautiful high-resolution handcrafted logo](https://raw.githubusercontent.com/crytic/echidna/master/echidna.png).
22
20
@@ -85,7 +83,7 @@ Our tool signals each execution trace in the corpus with the following "line mar
85
83
86
84
Echidna can test contracts compiled with different smart contract build systems, including [Foundry](https://book.getfoundry.sh/), [Hardhat](https://hardhat.org/), and [Truffle](https://archive.trufflesuite.com/), using [crytic-compile](https://github.com/crytic/crytic-compile). To invoke Echidna with the current compilation framework, use `echidna .`.
87
85
88
-
On top of that, Echidna supports two modes of testing complex contracts. Firstly, one can [describe an initialization procedure with Truffle and Etheno](https://github.com/crytic/building-secure-contracts/blob/master/program-analysis/echidna/advanced/end-to-end-testing.md) and use that as the base state for Echidna. Secondly, Echidna can call into any contract with a known ABI by passing in the corresponding Solidity source in the CLI. Use `allContracts: true` in your config to turn this on.
86
+
On top of that, Echidna supports two modes of testing complex contracts. Firstly, one can [take advantage of existing network state](https://secure-contracts.com/program-analysis/echidna/advanced/state-network-forking.html) and use that as the base state for Echidna. Secondly, Echidna can call into any contract with a known ABI by passing in the corresponding Solidity source in the CLI. Use `allContracts: true` in your config to turn this on.
89
87
90
88
### Crash course on Echidna
91
89
@@ -124,8 +122,7 @@ Campaign = {
124
122
"error" : string?,
125
123
"tests" : [Test],
126
124
"seed" : number,
127
-
"coverage" : Coverage,
128
-
"gas_info" : [GasInfo]
125
+
"coverage" : Coverage
129
126
}
130
127
Test = {
131
128
"contract" : string,
@@ -144,9 +141,7 @@ Transaction = {
144
141
}
145
142
```
146
143
147
-
`Coverage` is a dict describing certain coverage-increasing calls.
148
-
Each `GasInfo` entry is a tuple that describes how maximal
149
-
gas usage was achieved, and is also not too important. These interfaces are
144
+
`Coverage` is a dict describing certain coverage-increasing calls. These interfaces are
150
145
subject to change to be slightly more user-friendly at a later date. `testType`
151
146
will either be `property` or `assertion`, and `status` always takes on either
152
147
`fuzzing`, `shrinking`, `solved`, `passed`, or `error`.
0 commit comments