什么是ERC20
ERC20是以太坊上为token提供的一种协议,也可以理解成一种token的共同标准。遵循ERC20协议的token都可以兼容以太坊钱包,让用户在钱包中可以查看token余额以及操作token转账,而不需要自己再手动与token合约交互。
ERC20规定了以下基本方法:
contract ERC20 {
// 方法
function name() view returns (string name);
function symbol() view returns (string symbol);
function decimals() view returns (uint8 decimals);
function totalSupply() view returns (uint256 totalSupply);
function balanceOf(address _owner) view returns (uint256 balance);
function transfer(address _to, uint256 _value) returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
function approve(address _spender, uint256 _value) returns (bool success);
function allowance(address _owner, address _spender) view returns (uint256 remaining);
// 事件
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
可以看到,通过上面的几种方法,规定了一种token的基本信息、转账以及授权操作。这些操作基本可以覆盖货币使用的绝大部分场景,该协议一经提出后,立得到了开发者的接纳。
ERC20的局限
ERC20虽然广受开发者喜爱,但是依然有自己局限的一面。
让我们先从一个大家十分熟悉的场景开始谈起。假设某一天,星巴克突然宣布为了拥抱区块链技术,不再接受法币买咖啡了,大家以后可以用以