A simple Smart Contract generator for a Standard, Capped, Mintable, Burnable 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.
Try it: https://vittominacori.github.io/erc20-generator
DApp source here https://github.com/vittominacori/erc20-generator/tree/dapp
npm install erc20-generatorpragma solidity ^0.6.0;
import "erc20-generator/contracts/BaseToken.sol";
contract MyToken is BaseToken {
constructor (
string memory name,
string memory symbol,
uint8 decimals,
uint256 cap,
uint256 initialSupply,
bool transferEnabled,
bool mintingFinished
) public payable BaseToken(name, symbol, decimals, cap, initialSupply, transferEnabled, mintingFinished) {}
// your stuff
}npm installOpen the Truffle console
npm run consolenpm run compilenpm run testOpen the Buidler console
npm run buidler:consolenpm run buidler:compilenpm run buidler:testnpm run coverageUse Solhint
npm run lint:solUse ESLint
npm run lint:jsUse ESLint and fix
npm run lint:fixThis allow to flatten the code into a single file
Edit scripts/flat.sh to add your contracts
npm run flatNote: it is better to analyze the flattened code to have a bigger overview on the entire codebase. So run the flattener first.
The describe command shows a summary of the contracts and methods in the files provided
surya describe dist/BaseToken.dist.solThe 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.solEdit scripts/analyze.sh to add your contracts
npm run analyzeThe 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.
Use the dist smart contracts dist/BaseToken.dist.sol
Solc version is 0.6.6
Code released under the MIT License.