UNPKG

solidity-sentinel

Version:

A tool to analyze Ethereum smart contracts using Slither and provide solutions using OpenAI.

129 lines (86 loc) 3.37 kB
# 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 1. **Node.js** and **npm** installed on your system. 2. **Python 3+** and **pip** for installing Slither. 3. **Slither Analyzer**: Install Slither globally using: ```bash pip install slither-analyzer ``` ### Install Solidity Sentinel ```bash npm install solidity-sentinel ``` --- ## Usage ### Analyze a Contract Run the following command to analyze a smart contract: ```bash 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: ```bash npx solidity-sentinel excel ``` The report will be saved as `results/errors.xlsx`. --- ### Fetch Solutions for Errors To fetch solutions for the detected vulnerabilities: 1. Add your **OpenAI API key** to a `.env` file in the project root: ```plaintext OPENAI_API_KEY=your_openai_api_key ``` 2. Run the command: ```bash npx solidity-sentinel solutions ``` Solutions 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 1. Analyze a contract: ```bash npx solidity-sentinel analyze MyContract.sol ``` 2. Generate a report in Excel: ```bash npx solidity-sentinel excel ``` 3. Fetch solutions (requires OpenAI API key): ```bash 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.