echidna
echidna copied to clipboard
Ethereum smart contract fuzzer
Would make it 100x easier to debug "crashes". Not sure how hard this is
This small PR is testing to enable the `setUp()` for every type of test (not only dapptools). It will be always executed, if available if it will still be part...
**Use case** This use case is inspired by Damn Vulnerable DeFi - Unstoppable. https://www.damnvulnerabledefi.xyz/challenges/1.html There are 3 users: - Admin. Deploys contracts, is owner, etc. - User. Uses the contracts,...
In the current coverage report, we don't know exactly the execution reverts ``` *r | function f(int val) public { *r | require (val % 100 > 0); *r |...
Example: https://github.com/superfluid-finance/protocol-monorepo/tree/echidna_fuzzing_integration/packages/ethereum-contracts After `yarn install` under the root folder, openzepplin is under the root folder node_modules: ``` $ ls -ld node_modules/\@openzeppelin drwxrwxr-x 5 hellwolf hellwolf 4096 Mar 15 17:56 node_modules/@openzeppelin...
An experiment after a discussion with @agroce.
This PR allows to use the FFI cheatcode from HEVM in Echidna if the `allowFFI: true` is used in the configuration yaml. This is disabled by default.
By default HEVM creates a VM where `vmoptAllowFFI` is set to false: https://github.com/dapphub/dapptools/blob/a2b96cc2dbc28508c9fe699d6438bf6eccafc2ad/src/hevm/src/EVM/Exec.hs#L21-L46 We can add a flag in Echidna to set this to true (or just always enable it...
I’m trying to understand and use `multi-abi` feature. Starting from the [example](https://github.com/crytic/echidna/blob/1af7989379f3d91922bb93924db996754a61b8f5/examples/solidity/basic/multi-abi.sol), I modify it to look like: ``` contract A{ bool public bug = true; function trigger_bug() public{ assert(false);...