ERC20是Fabian Vogelsteller在2015年末提出的以太坊改进建议,它是许多流行的合约都在遵循的标准。

ERC20使通证智能合约的行为非常类似于传统的加密货币,例如在不同账户之间发送和接收、查看通证总供应量或者查看某个地址可用的通证余额,就像比特币或以太币一样。这类似于用以太坊钱包 发送和接收以太币、查看流通中的以太币总量、查看特定钱包的货币余额等。

ERC20规定了一些标准的接口

  1. contract ERC20Interface {
  2. string public constant name = "Token Name";
  3. string public constant symbol = "SYM";
  4. uint8 public constant decimals = 18; // 18 is the most common number of decimal places
  5. function totalSupply() public constant returns (uint);
  6. function balanceOf(address tokenOwner) public constant returns (uint balance);
  7. function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
  8. function transfer(address to, uint tokens) public returns (bool success);
  9. function approve(address spender, uint tokens) public returns (bool success);
  10. function transferFrom(address from, address to, uint tokens) public returns (bool success);
  11. event Transfer(address indexed from, address indexed to, uint tokens);
  12. event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
  13. }

简单的介绍一下,更加详细的介绍可以在github查看

  1. name : 代币名称
  2. symbol: 代币符号
  3. decimals: 代币小数点位数,代币的最小单位
  4. totalSupply() : 发行代币总量。
  5. balanceOf(): 查看对应账号的代币余额。
  6. transfer(): 实现代币交易,用于给用户发送代币(从我们的账户里)
  7. transferFrom(): 实现代币用户之间的交易
  8. allowance(): 控制代币的交易,如可交易账号及资产
  9. approve(): 允许用户可花费的代币数