ERC20

ERC20是以太坊上的代币标准,它实现了代币转账的基本逻辑:

  • 账户余额(balanceOf())
  • 转账(transfer())
  • 授权转账(transferFrom())
  • 授权(approve())
  • 代币总供给(totalSupply())
  • 授权转账额度(allowance())
  • 代币信息(可选):名称(name()),代号(symbol()),小数位数(decimals())

除了ERC20,还有它的接口合约IERC20,就是为了统一规范,以便好使用,接下来就介绍一下IERC20合约的功能

俩个事件

  • 释放条件:当 value 单位的货币从账户 (from) 转账到另一账户 (to)时.
    event Transfer(address indexed from, address indexed to, uint256 value);
  • 释放条件:当 value 单位的货币从账户 (owner) 授权给另一账户 (spender)时.
    event Approval(address indexed owner, address indexed spender, uint256 value);

六个函数

  • totalSupply()返回代币总供给
    function totalSupply() external view returns (uint256);
  • balanceOf()返回账户account所持有的代币数.
    function balanceOf(address account) external view returns (uint256);
  • transfer()转账 amount 单位代币,从调用者账户到另一账户 to,如果成功,返回 true,释放 {Transfer} 事件.
    function transfer(address to, uint256 amount) external returns (bool);
  • allowance()返回owner账户授权给spender账户的额度,默认为0,当{approve} 或 {transferFrom} 被调用时,allowance会改变
    function allowance(address owner, address spender) external view returns (uint256);
  • approve()调用者账户给spender账户授权 amount数量代币,如果成功,返回 true,释放 {Approval} 事件
    function approve(address spender, uint256 amount) external returns (bool);
  • transferFrom()通过授权机制,从from账户向to账户转账amount数量代币。转账的部分会从调用者的allowance中扣除。 如果成功,返回 true. 释放 {Transfer} 事件.
     function transferFrom(
    address from,
    address to,
    uint256 amount
    ) external returns (bool);
    以上须记住,以便好用

说白了,它就是以太坊发行代币的一个标准,学会了如何实现ERC20,对入门区块链是很有帮助的