/erc20-token

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

Primary LanguageJavaScriptMIT LicenseMIT

ERC20 Token

NPM Package Build Status Coverage Status MIT licensed

A simple Smart Contract 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.

Install

npm install @vittominacori/erc20-token

Usage

pragma solidity ^0.6.0;

import "@vittominacori/erc20-token/contracts/ERC20Base.sol";

contract MyToken is ERC20Base {

    constructor (
        string memory name,
        string memory symbol,
        uint8 decimals,
        uint256 cap,
        uint256 initialSupply,
        bool transferEnabled,
        bool mintingFinished
    ) public payable ERC20Base(name, symbol, decimals, cap, initialSupply, transferEnabled, mintingFinished) {}

  // your stuff
}

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

License

Code released under the MIT License.