contract ERC20Interface {
 
    // 代币名称
 
    string public name;
 
    // 代币符号或者说简写
 
    string public symbol;
 
    // 代币小数点位数，代币的最小单位
 
    uint8 public decimals;
 
    // 代币的发行总量
 
    uint public totalSupply;
 
 
 
    // 实现代币交易，用于给某个地址转移代币
 
    function transfer(address to, uint tokens) public returns (bool success);
 
    // 实现代币用户之间的交易，从一个地址转移代币到另一个地址
 
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
 
    // 允许spender多次从你的账户取款，并且最多可取tokens个，主要用于某些场景下授权委托其他用户从你的账户上花费代币
 
    function approve(address spender, uint tokens) public returns (bool success);
 
    // 查询spender允许从tokenOwner上花费的代币数量
 
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);
 
 
 
    // 代币交易时触发的事件，即调用transfer方法时触发
 
    event Transfer(address indexed from, address indexed to, uint tokens);
 
    // 允许其他用户从你的账户上花费代币时触发的事件，即调用approve方法时触发
 
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
 
}
// 定义ERC-20标准接口
function transfer(address to, uint tokens) public returns (bool success);
// 实现代币交易，用于给某个地址转移代币