Diffyscan
Diff your Ethereum smart contracts code from GitHub against Etherscan verified source code.
Prerequisites
This project was developed using these dependencies with their exact versions listed below:
- Python 3.10
- Poetry 1.4
Other versions may work as well but were not tested at all.
Setup
- Install Poetry
Use the following command to install poetry:
pip install --user poetry~=1.4
alternatively, you could proceed with pipx
:
pipx install poetry~=1.4
- Activate poetry virtual environment,
poetry shell
- Install Python dependencies
poetry install
Usage
Set your Etherscan token to fetch verified source code,
export ETHERSCAN_TOKEN=<your-etherscan-token>
Set your Github token to query API without strict rate limiting,
export GITHUB_API_TOKEN=<your-github-token>
Create a config file
{
"contract": "0x...",
"network": "mainnet",
"github_repo": "https://github.com/user/repo/tree/ref",
"dependencies": {
"dep_name": "https://github.com/user/repo/tree/ref"
}
}
Start the script
python3 main.py