contract KardiachainToken is Ownable, ERC20Pausable {
    string public constant name = "KardiaChain Token";
    string public constant symbol = "KAI";
    uint8 public constant decimals = 18;

    uint256 public constant initialSupply = 5 * 10 ** 9 * 10 ** uint256(decimals); // 5Bn Tokens

    /**
     * @dev Constructor that gives msg.sender all of existing tokens.
     */
    constructor () public {
        _mint(msg.sender, initialSupply);
    }

    /**
     * @dev Destoys `amount` tokens from the caller.
     *
     * See `ERC20._burn`.
     */
    function burn(uint256 amount) public {
        _burn(msg.sender, amount);
    }

    /**
     * @dev See `ERC20._burnFrom`.
     */
    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
    
    event DepositReceived(address indexed from, uint256 value);
}
/*****************************************************************************
 * @title KardiachainToken
 * @dev KardiachainToken is an ERC20 implementation of the KardiaChain ecosystem token. 
 * All tokens are initially pre-assigned to the creator, and can later be distributed 
 * freely using transfer transferFrom and other ERC20 functions.
 */
function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
/**
 * @dev See `ERC20._burnFrom`.
 */