主页 > imtoken > 一篇文章澄清以太坊代币:ERC-20 & ERC-721

一篇文章澄清以太坊代币:ERC-20 & ERC-721

imtoken 2023-01-17 10:27:39

文章共2000字,预计阅读时间10分钟。

Web3 是一个充满新奇词汇的炫目之地:币、代币、NFT、跨链桥、Defi、Cefi,无一不让初学者迷惑。

新手可能花几天时间,看了好几个项目的白皮书,到头来不明白什么是token,什么是NFT。 有些人终于明白了token的含义,但还是疑惑以太坊链可以转erc20吗,以太坊不是已经有主币ETH了吗,为什么会有wETH这个代币?

本文试图从代码的角度帮助理清以太坊上的各种代币,它们有哪些功能,以及它们通常是如何实现这些功能的。 欢迎交流。

长话短说

“ERC”的全称是“Ethereum Request for Comment”。 它用于发行不可替代的代币(即NFT,non-fungible token)。

合约中记录的符合标准的数据称为通证。 Token和NFT只是记录在合约中的数据,铸造、转移、销毁等操作只是修改合约中记录的价值。

ERC标准规定了合约的接口,其他应用(如OpenSea)可以通过合约的接口操作代币。

人们很容易误解以太坊链可以转erc20吗,认为ERC标准只规定了合约的接口格式。 至于合约如何实现这些接口,ERC标准没有规定,所以可以有各种NFT。

ERC-20

ERC-20标准规定了以下6个函数和2个事件

六个函数的含义分别是

这两个事件的意义是

其中approve、transferFrom、allowance可能比较难理解。 一个简单的例子就是父母给零花钱。 虽然孩子花的是钱,但是钱是从父母的钱包里扣的。

如果合约实现了以上6个功能和2个事件,我们就可以说它符合ERC-20标准。 通常项目方还会在合约中加入铸币功能和销毁功能,用于增发代币和销毁代币。 这是 ERC-20 合约的一个实现。

符合ERC-20标准的合约铸造的代币,可以在uniswap等去中心化交易所上市,兑换其他虚拟货币。 因为去中心化交易所需要调用transferFrom方法,而以太坊的主币ETH没有这个接口,所以查看uniswap中ETH的具体交易情况可以发现,ETH总是先存入wETH合约,然后转换成相同的数量。 wETH代币,然后uniswap调用transferFrom兑换各种代币。

ERC-721

ERC-721标准规定了以下10个函数和3个事件

ERC-721标准继承了ERC-165标准,其中ERC-165标准规定函数supportsInterface(bytes4 interfaceID)用于发布和检测合约实现的是什么接口。

ERC-165标准允许外部查询合约是否支持该接口,如果支持则查询接口的版本,以便用户调整与合约的交互方式。

其余9个函数的含义分别是

3个事件的含义是

由于合约中包含tokenId,所以每个token都是不同的,这正是“非同质化”的意思。 ERC-721和ERC-20在设计思路上没有太大区别,但是由于ERC-721的代币是非同质化的,所以可以通过tokenId单独审批,也可以通过所有者地址的所有代币进行审批. 批准,而ERC-20只能批准固定金额。

在实际使用中,并不需要全部实现九个功能。 这是 ERC-721 合约的实现。

尾注

知道ERC-20和ERC-721有什么用?

了解了标准,我们就可以直接通过ERC标准提供的接口来操作各种代币和NFT。 比如Boring Ape是NFT,那么他的合约也必须符合ERC-721标准。

可以直接通过以太坊浏览器调用ownerOf接口查看2022号无聊猿的主人(当然也可以用代码调用接口,但是以太坊浏览器更直观)

2022号无聊猿的拥有者

Boring Ape 2022 拥有者

我们在最大的NFT交易市场OpenSea上查看2022号Boring Ape,发现它的主人确实是B44618开头的账户

如何登陆以太坊公链_以太坊链可以转erc20吗_启动以太坊私有链

外海

事实上,OpenSea等应用程序是通过调用ERC标准提供的各种接口来实现交易的。 在我们充分理解了ERC标准之后,我们就可以完整的编写代币交易的应用程序了。

今天就这些,再见。

参考文章