ERC20
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,对入门区块链是很有帮助的
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
