Welcome to the Falcon project! Falcon is designed to provide thorough static analysis for your smart contracts. Here's how to get started with the installation and basic usage of Falcon.
Ensure you have Python (version 3.9 or newer) installed on your system.
-
Navigate to the Falcon project root directory.
-
Run the following command to install Falcon:
pip3 install -r requirements-dev.txt python setup.py install
-
After successful installation, you should have access to the Falcon command-line interface.
This is similar to the slither
folder in the Slither project. The /falcon
folder contains the core functionalities and components of the Falcon static analysis engine, including:
- The main framework for AST analysis.
- Libraries and modules responsible for parsing smart contracts.
- Intermediate representations (IRs) for smart contracts.
- The core logic that drives the Falcon static analysis processes.
This folder contains the set of detectors, primarily inspired by Slither's rules. They are designed to identify vulnerabilities, misconfigurations, and potential issues within the smart contracts:
- Each detector script in this folder targets a specific vulnerability type.
- The detectors parse and analyze the smart contract IRs to discover any potential threats.
- Detected issues will be reported with their severity, type, and a brief description to assist in understanding and mitigation.
To scan a smart contract without installing the package:
-
Navigate to the Falcon project root directory.
-
Run the following command:
pip3 install -r requirements-dev.txt python -m falcon [relative file based on root directory of falcon]
For example, to scan a contract located at contracts/MyContract.sol
:
pip3 install -r requirements-dev.txt
python -m falcon contracts/MyContract.sol
We're always eager to improve Falcon! If you have any suggestions, issues, or would like to contribute to the project, please refer to our contribution guidelines and reach out.
Thank you for choosing Falcon for your smart contract static analysis needs!