crytic / crytic/echidna

Increased documentation on config values and how they skew

Open
#1,212 0 comments 0 reactions 0 assignees View on GitHub
documentation
Dominant language
Haskell
Stars
3.2k
Forks
432
Avg merge
1d 20h
Merged PRs (30d)
5

Description

### Describe the desired feature

While I try to use the [default yaml](https://github.com/crytic/echidna/blob/25361bdd16b022fc0e967b43f1bce6a6d91740bb/tests/solidity/basic/default.yaml) as reference, it seems that there's a lot more information around the state of these variables and how their amounts are calculated. It would be incredibly helpful to document the use of each, and if they rely on modulo values, how they skew.

The prime example of this was for `maxBlockDelay` and `maxTimeDelay` operate on a modulo, thus Echidna only really explores a smaller range than what is specified, and not realizing that this would skew towards the lower bound.

The impact of this was Medusa finding a bug before Echidna could, as the modulo skew was resulting in Echidna not hitting those cases until the block delay was expanded significantly.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.