# Solidity Starter Kit
A starter kit for Ethereum Smart Contracts development
# Install dependencies
# Usage (using Truffle)
Open the Truffle console
npm run truffle:console
npm run truffle:compile
npm run truffle:test
# Usage (using Hardhat)
Open the Hardhat console
npm run hardhat:console
npm run hardhat:compile
npm run hardhat:test
# Code Coverage
npm run hardhat:coverage
npm run lint:sol
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
npm run dev
This allow to flatten the code into a single file
scripts/flat.sh to add your contracts
npm run flat
Note: it is better to analyze the flattened code to have a bigger overview on the entire codebase. So run the flattener first.
describe command shows a summary of the contracts and methods in the files provided
surya describe dist/SampleContract.dist.sol
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
scripts/analyze.sh to add your contracts
npm run analyze
inheritance command outputs a DOT-formatted graph of the inheritance tree.
graph command outputs a DOT-formatted graph of the control flow.
mdreport command creates a markdown description report with tables comprising information about the system's files, contracts and their functions.
sol2uml generates UML class diagram from Solidity contracts.
Code released under the MIT License (opens new window).