contract Token is ERC20, ERC20Detailed, MinterRole {


    //constructor for deploy
    constructor(string memory TOKEN_NAME, string memory SYMBOL, uint8 DECIMALS,uint INITIAL_SUPPLY)
    ERC20Detailed(TOKEN_NAME, SYMBOL,DECIMALS)
    public {
        //tokenDetail

        //token supply
        _mint(msg.sender,INITIAL_SUPPLY);
    }

    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }


}
function burn(uint256 value) public {
    _burn(msg.sender, value);
}

/**
 * @dev Burns a specific amount of tokens.
 * @param value The amount of token to be burned.
 */