Skip to content

Latest commit

 

History

History
28 lines (20 loc) · 1.12 KB

README.md

File metadata and controls

28 lines (20 loc) · 1.12 KB

AlgoFuzz

AlgoFuzz-logo

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.

Prerequisites

Usage

  1. Start an Algorand local network with AlgoKit
    algokit localnet start

  2. Adjust the environment variables in the .env file for your localnet if they differ.

  3. Install all dependencies with poetry poetry install

  4. In the file property_test.py write your property tests inside evaluate using the ContractState 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
  5. Execute the program with arguments:
    poetry run start -h