Solidity Fuzzing Boilerplate

screenshot of Solidity Fuzzing Boilerplate

Template repository intended to ease fuzzing components of Solidity projects, especially libraries.

Overview

This content provides instructions and guidelines for fuzzing components of Solidity projects. It introduces a Solidity Fuzzing Boilerplate, a template repository that aims to simplify the fuzzing process for Solidity projects. It mentions two fuzzing tools, Echidna and Foundry, and provides information on how to set up and use these tools. The content also highlights the importance of adjusting configurations and the build script to suit specific use cases.

Features

  • Fuzzing with Echidna and Foundry: The template repository allows users to write tests once and run them with both Echidna and Foundry's fuzzing tools.
  • Fuzz components using different Solidity versions: The template repository enables users to fuzz components that use incompatible Solidity versions by deploying them into a Ganache instance via Etheno.
  • Use of HEVM's FFI cheatcode: Users can utilize HEVM's FFI cheatcode to generate complex fuzzing inputs or compare outputs with non-EVM executables during differential fuzzing.
  • Ease of publishing fuzzing experiments: The template repository provides the ability to extend the shell script to download specific files, making it easier to publish fuzzing experiments without concerns about licensing.

Summary

This content introduces the Solidity Fuzzing Boilerplate, a template repository that simplifies the fuzzing process for Solidity projects. It outlines the key features of the template, including the ability to use Echidna and Foundry's fuzzing tools, fuzz components with different Solidity versions, utilize HEVM's FFI cheatcode, and ease the publishing of fuzzing experiments. The installation guide provides step-by-step instructions for setting up and using the template to conduct fuzzing.