contract ERC20Token {

    // PUBLIC INTERFACE

    // /// @dev Returns total amount of tokens
    // /// @notice params -> (uint256 totalSupply)
    // It's implamented as a variable which doesn't override this method. Commented to prevent compilation error.
    // function totalSupply    () constant public returns (uint256);

    /// @dev Returns balance of specified account
    /// @notice params -> (address _owner)
    function balanceOf      (address) view public returns (uint256);

    /// @dev  Transfers tokens from msg.sender to a specified address
    /// @notice params -> (address _to, uint256 _value)
    function transfer       (address, uint256) public returns (bool);

    /// @dev  Allowance mechanism - delegated transfer
    /// @notice params -> (address _from, address _to, uint256 _value)
    function transferFrom   (address, address, uint256) public returns (bool);

    /// @dev  Allowance mechanism - approve delegated transfer
    /// @notice params -> (address _spender, uint256 _value)
    function approve        (address, uint256) public returns (bool);

    /// @dev  Allowance mechanism - set allowance for specified address
    /// @notice params -> (address _owner, address _spender)
    function allowance      (address, address) public view returns (uint256);


    // EVENTS

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}
/// @title ERC20 Token Interface
/// @author Hoard Team
/// @notice See https://github.com/ethereum/EIPs/issues/20
function allowance      (address, address) public view returns (uint256);

/// @dev  Allowance mechanism - set allowance for specified address
/// @notice params -> (address _owner, address _spender)