Skip to content

A ready to go boilerplate for Smart Contracts creation.

License

Notifications You must be signed in to change notification settings

bc1tech/smart-contract-box

Repository files navigation

Smart Contract Box

Build Status Coverage Status MIT licensed

A ready to go boilerplate for Smart Contracts creation.

Code created using Open Zeppelin (openzeppelin-solidity) and Truffle Framework.

Development

Install dependencies

npm install

Usage

Open the Truffle console

npm run console

Compile

npm run compile

Test

npm run test 

Code Coverage

npm run coverage

Linter

Use Solhint

npm run lint:sol

Use ESLint

npm run lint:js

Use ESLint and fix

npm run lint:fix

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.

License

Code released under the MIT License.

About

A ready to go boilerplate for Smart Contracts creation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published