Arachne is a scaffolding framework built to streamline the development of large-scale fuzzing suites. It offers a range of helper functions and a solid structure to minimize setup time, allowing users to begin fuzzing quickly and efficiently, while keeping the codebase maintainable.
To use Arachne in a new smart contract repository, run the following command:
forge init --template https://github.com/perimetersec/arachne
This will put all of the Arachne files under the test/fuzzing
directory.
To use Arachne in an existing smart contract repository, clone this repository and follow the instructions below:
-
Install Fuzzlib v0.3.1 using your package manager
-
Copy the following directories/files into the working repository:
test/fuzzing/
echidna-config.yaml
medusa.json
- Append the following files into the working directory:
remappings.txt
.gitignore
(Optional)
To run the fuzzing suite using Echidna, run the following command:
echidna . --contract Fuzz --config echidna-config.yaml
To run the fuzzing suite using Medusa, run the following command:
medusa fuzz
To install Echidna, follow the steps here: Installation Guide using the latest master branch
To install Medusa, follow the steps here: Installation Guide using the latest master branch
Fuzzlib v0.3.1