contract ERC20Interface {
    function totalSupply() public view returns (uint);							//constant -> view : compiler version up
    function balanceOf(address tokenOwner) public view returns (uint balance);				//constant -> view : compiler version up
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);	//constant -> view : compiler version up
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
function transfer(address to, uint tokens) public returns (bool success);

//constant -> view : compiler version up