Skip to content

Solidity Toolkit ​

CICoverage StatusMIT licensed

A toolkit for Solidity Smart Contracts development.

Install ​

bash
git clone https://github.com/noncept/solidity-toolkit.git

Development ​

Install dependencies ​

bash
npm install

Compile ​

bash
npm run compile

Test ​

bash
npm test

Code Coverage ​

bash
npm run coverage

Linter ​

Check Solidity files.

bash
npm run lint:sol

Check JS/TS files.

bash
npm run lint:js

Fix JS and Solidity files.

bash
npm run lint:fix

Create Documentation ​

bash
npm run docs

Use web3 console in your browser (i.e. to use MetaMask) ​

bash
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.

bash
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

bash
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.

bash
surya dependencies SampleContract dist/SampleContract.dist.sol

Generate Report ​

Edit scripts/analyze.sh to add your contracts

bash
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.