contract ERC20Interface {
    // token总量，默认会为public变量生成一个getter函数接口，名称为totalSupply().
    function totalSupply() public constant returns (uint);
    //获取账tokenOwner拥有token的数量 
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    //从消息发送者账户中往_to账户转数量为_value的token（就是从创建合约账户往to账户转数量tokens的token）
    function transfer(address to, uint tokens) public returns (bool success);
    //消息发送账户设置账户spender能从发送账户中转出数量为tokens的token
    function approve(address spender, uint tokens) public returns (bool success);
    //从账户from中往账户to转数量为tokens的token，与approve方法配合使用
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
    //获取账户_spender可以从账户_owner中转出token的数量
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);


    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
    event ReportFormEvent(address indexed spender,string content);
}
function transferFrom(address from, address to, uint tokens) public returns (bool success);

//从账户from中往账户to转数量为tokens的token，与approve方法配合使用