solidity-sentinel
v1.0.3
Published
A tool to analyze Ethereum smart contracts using Slither and provide solutions using OpenAI.
Downloads
8
Maintainers
Readme
Solidity Sentinel
Solidity Sentinel is a powerful npm package designed for smart contract developers. It leverages Slither, a static analysis framework for Solidity, to detect vulnerabilities in Ethereum smart contracts. Additionally, it integrates with OpenAI GPT to provide solutions for the issues detected.
Features
- Static Analysis: Analyze Ethereum smart contracts using Slither.
- Error Reporting: Export results in JSON and Excel formats.
- Solutions: Fetch solutions for detected vulnerabilities using OpenAI's GPT (requires OpenAI API key).
- Ease of Use: Simple commands to analyze, report, and fix issues.
Installation
Prerequisites
- Node.js and npm installed on your system.
- Python 3+ and pip for installing Slither.
- Slither Analyzer:
Install Slither globally using:
pip install slither-analyzer
Install Solidity Sentinel
npm install solidity-sentinelUsage
Analyze a Contract
Run the following command to analyze a smart contract:
npx solidity-sentinel analyze <contractAddress>This will run Slither and generate a JSON report at results/errors.json.
Generate an Excel Report
After running the analysis, generate a detailed Excel report for easy readability:
npx solidity-sentinel excelThe report will be saved as results/errors.xlsx.
Fetch Solutions for Errors
To fetch solutions for the detected vulnerabilities:
Add your OpenAI API key to a
.envfile in the project root:OPENAI_API_KEY=your_openai_api_keyRun the command:
npx solidity-sentinel solutionsSolutions will be saved in
results/solutions.json.
Commands
| Command | Description |
|---------------------------------------|-----------------------------------------------|
| npx solidity-sentinel analyze <contractAddress> | Analyze a smart contract and save results in JSON. |
| npx solidity-sentinel excel | Generate an Excel report from the JSON results. |
| npx solidity-sentinel solutions | Fetch solutions for errors using OpenAI GPT. |
Output Structure
results/errors.json: Contains the raw output from Slither.results/errors.xlsx: A formatted Excel report of the errors.results/solutions.json: Suggested solutions for errors (requires OpenAI API key).
Workflow
Analyze a contract:
npx solidity-sentinel analyze MyContract.solGenerate a report in Excel:
npx solidity-sentinel excelFetch solutions (requires OpenAI API key):
npx solidity-sentinel solutions
Prerequisites for Development
- Node.js
- Python and Slither Analyzer (
pip install slither-analyzer) - OpenAI GPT API (optional for solutions)
License
This project is licensed under the MIT License.
Disclaimer
This package is designed to assist developers by analyzing smart contracts and suggesting solutions. However, it is not a substitute for thorough manual review or professional auditing.
