AlgoFuzz is a property-based fuzzing tool for Algorand smart contracts. The tool itself is a prototype written in python. Users are expected to modify and run the source code directly to be able to test it.
-
AlgoKit and its dependencies
-
Start an Algorand local network with AlgoKit
algokit localnet start
-
Adjust the environment variables in the
.env
file for your localnet if they differ. -
Install all dependencies with poetry
poetry install
-
In the file
property_test.py
write your property tests insideevaluate
using theContractState
to retrieve the global and local state. i.e:def evaluate(exec_account_address: str, contract: ContractState) -> bool: return contract.get_global('nr_users') < 10
-
Execute the program with arguments:
poetry run start -h