Solidity Toolkit
A toolkit for Solidity Smart Contracts development.
Install
git clone https://github.com/noncept/solidity-toolkit.git
Development
Install dependencies
npm install
Compile
npm run compile
Test
npm test
Code Coverage
npm run coverage
Linter
Check Solidity files.
npm run lint:sol
Check JS/TS files.
npm run lint:js
Fix JS and Solidity files.
npm run lint:fix
Create Documentation
npm run docs
Use web3 console in your browser (i.e. to use MetaMask)
npm run dev
Read how to interact with your Smart Contracts here.
Flattener
This allows to flatten the code into a single file.
Edit scripts/flat.sh
to add your contracts.
npm run flat
Analysis
IMPORTANT
It is better to analyze the flattened code to have a bigger overview on the entire codebase. So run the flattener first.
Describe
The describe
command shows a summary of the contracts and methods in the files provided
surya describe dist/SampleContract.dist.sol
Dependencies
The dependencies
command outputs the c3-linearization of a given contract's inheirtance graph. Contracts will be listed starting with most-derived, ie. if the same function is defined in more than one contract, the solidity compiler will use the definition in whichever contract is listed first.
surya dependencies SampleContract dist/SampleContract.dist.sol
Generate Report
Edit scripts/analyze.sh
to add your contracts
npm run analyze
The inheritance
command outputs a DOT-formatted graph of the inheritance tree.
The graph
command outputs a DOT-formatted graph of the control flow.
The mdreport
command creates a markdown description report with tables comprising information about the system's files, contracts and their functions.
The sol2uml
generates UML class diagram from Solidity contracts.
License
Code released under the MIT License.