/erc20-generator

A simple Smart Contract for a Standard, Mintable, Burnable ERC20 Token.

Primary LanguageJavaScriptMIT LicenseMIT

ERC20 Token Generator

Build Status Coverage Status MIT licensed

A simple Smart Contract generator for a Standard, Capped, Mintable, Burnable, Payable ERC20 Token.

Token has a Role Based Access Control so you can add the MINTER permission to users or Smart Contracts.

Token has a trasferEnabled property. Nobody can transfer tokens until the property will be enabled or you can define users as OPERATOR allowed to transfer also if not enabled.

Token has the ERC1363 behaviors. ERC1363 is an ERC20 compatible token that can make a callback on the receiver contract to notify token transfers or token approvals.

Token extends from ERC20Base.

DApp source here https://github.com/vittominacori/erc20-generator/tree/dapp.

Try it

https://vittominacori.github.io/erc20-generator

Development

Install dependencies

npm install

Usage (using Truffle)

Open the Truffle console

npm run console

Compile

npm run compile

Test

npm run test

Usage (using Buidler)

Open the Buidler console

npm run buidler:console

Compile

npm run buidler:compile

Test

npm run buidler: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/BaseToken.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 BaseToken dist/BaseToken.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.

Token verification on Etherscan

Use the dist smart contracts dist/BaseToken.dist.sol

Solc version is 0.6.12

License

Code released under the MIT License.