Skip to content

vittominacori/solidity-starter-kit

Repository files navigation

title
Easily build your smart contracts

Solidity Starter Kit

CI Coverage Status MIT licensed

A starter kit for Ethereum Smart Contracts development

⚠️ NOTE: This repository is no longer updated. Please use Solidity Toolkit.

Development

Install dependencies

npm install

Usage (using Truffle)

Open the Truffle console

npm run truffle:console

Compile

npm run truffle:compile

Test

npm run truffle:test

Usage (using Hardhat)

Open the Hardhat console

npm run hardhat:console

Compile

npm run hardhat:compile

Test

npm run hardhat:test

Code Coverage

npm run hardhat:coverage

Linter

Use Solhint

npm run lint:sol

Use ESLint

npm run lint:js

Use ESLint and fix

npm run lint:fix

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

By default it takes contracts compiled with Truffle.

To use Hardhat compiled contracts change ./build/contracts with ./artifacts in bs-config.json

npm run dev

Flattener

This allow to flatten the code into a single file

Edit scripts/flat.sh to add your contracts

npm run flat

Analysis

Note: 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.