web3-什么是Web3代币水龙头?一文了解ERC-20免费领币机制
这一章,我们来聊一聊以太坊上的ERC20代币标准,并发行自己的测试代币。虽然在前面的章节讲到过,但是个人认为不够细致;今天这一章详细的聊一聊ERC20。
ERC20介绍
说到ERC20,接触区块链的同学们都不陌生。ERC20是以太坊上的代币标准,来自V神参与的EIP20。他实现了代币转账的基本逻辑:
- 账户余额(balanceOf())
- 转账(transfer())
- 授权转账(transferFrom())
- 授权(approve())
- 代币总供给(totalSupply())
- 授权转账额度(allowance())
- 代币信息(可选):名称(name()),代号(symbol()),小数位数(decimals())
IERC20介绍
IERC20是ERC20代币标准的接口合约,规定了ERC20代币需要实现的函数和事件。 之所以需要定义接口,是因为有了规范后,就存在所有的ERC20代币都通用的函数名称,输入参数,输出参数。 在接口函数中,只需要定义函数名称,输入参数,输出参数,并不关心函数内部如何实现。 由此,函数就分为内部和外部两个内容,一个重点是实现,另一个是对外接口,约定共同数据。 这就是为什么需要ERC20.sol和IERC20.sol两个文件实现一个合约。
事件
IERC20定义了2个事件:Transfer 事件 和 Approval 事件 ,分别在转账和授权时被释放。
/**
*@dev 释放条件 ,当 value 单位的货币从账户(from)转账好另一个帐户(to)时
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
*@dev 释放条件 ,当 value 单位的货币从账户(owner)转账好另一个帐户(spender)时
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
函数
IERC20定义了6个函数,提供了转移代币的基本功能,并且允许代币获得标准,一边其他链上第三方使用。
totalSupply()返回代币总供给
/**
* @dev 返回代币总供给
*/
function totalSupply() external view returns(uint256);
b
