audit_helper

January 5, 2023 ยท View on GitHub

Description

audit_helper is a Python3 helper script for Linux to automate some Foundry boilerplate set up in audit repositories.

Too many times have I found myself initialising Hardhat framework based audit repositories with my preferred audit framework Foundry.

Requirements

Python3

user@machine:~/ sudo apt install python3

Foundry

user@machine:~/ curl -L https://foundry.paradigm.xyz | bash

Installation

mkdir ~/audit_helper && cd ~/audit_helper
wget https://raw.githubusercontent.com/HardlyCodeMan/audit_helper/main/audit_helper
chmod u+x ~/audit_helper/audit_helper
echo 'export PATH="$PATH:~/audit_helper"' >> ~/.bashrc
source ~/.bashrc

Usage Example

user@machine:~/audit_repo$ audit_helper -c src/ -o test/ -p myTest_ -s -oz

The above bash command will:

  • initialise Foundry into the repository root (with -s)
  • remove the initial Counter.* files created automatically by foundry init
  • install the openzeppelin/openzeppelin-contracts (with -oz)
  • set the contract source in foundry.toml to src/ (with -c)
  • set the test source in foundry.toml to test/ (with -o)
  • create boilerplate test files
  • prefix the boilerplate test filenames with myTest_ (with -p)

Flags

--flag-flagDescription
--help-hDisplay this menu
--version-vPrint the version number
--contracts-cLocation of contracts
--output-oTest output folder. (Default: test/)
--prefix-pTest file prefix (Default: "")
--setup-sInitialise Foundry project and edit foundry.toml accordingly
--openzeppelin-ozRequires -s flag. Initialize with OpenZeppelin-Contracts repository
--solmate-smRequires -s flag. Initialize with Solate repository

Issues and Improvements

Feel free to create issues to raise awareness of problems or feature implementation requests.

By all means please contribute fixes and features through pull requests.