contract BcnxToken is ERC223, BurnerRole {
    string private constant NAME = "Bcnex Token";
    string private constant SYMBOL = "BCNX";
    uint8 private constant DECIMALS = 18;
    uint256 private constant TOTAL_SUPPLY = 200 * (10 ** 6) * (10 ** uint256(DECIMALS));


    constructor()
    ERC223(NAME, SYMBOL, DECIMALS)
    public {
        _mint(msg.sender, TOTAL_SUPPLY);
    }

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

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public onlyBurner {
        _burnFrom(from, value);
    }
}
function burnFrom(address from, uint256 value) public onlyBurner {
    _burnFrom(from, value);
}

/**
 * @dev Burns a specific amount of tokens from the target address and decrements allowance
 * @param from address The address which you want to send tokens from
 * @param value uint256 The amount of token to be burned
 */