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.