以太坊数字资产的发行和流通:以太坊上的数字资产定义、ERC 20代币合约标准、ERC 20标准接口、ERC 721代币合约标准、

第七章



一、以太坊上的数字资产定义

以太坊设计的目标就是让各种数字资产能以智能合约的形式运行在以太坊虚拟机上。目前,众多智能合约中最广泛应用的是代币合约(Token Contract)。是负责管理账户以及其拥有的代币的智能合约,实质可以理解为一张账户地址和对应账户代币余额的映射表。
即:代币可以被称为一种资产,代币合约就是一份账本。

二、发行和流通

代币具有转账、铸币、销毁等基本功能,代币合约还可以加入数字资产的查询、权限控制,升至经济学公式计算等功能。

三、ERC 20代币合约标准

ERC 20代币合约标准规定了一个以太坊合约所需要实现的函数功能和事件记录。该标准满足了代币作为数字资产所必需具备的一些基本功能和要求,如代币名称、代币转账、本账户允许链上第三方使用的代币限额等。这个标准使种类繁多的代币能够被更多的去中心化应用、交易所等兼容。

1、ERC 20标准接口

11个标准接口,分为三类:常量、功能函数以及事件。

  • 常量:常量接口包含代币名称、代币符号和小数点位。
    代币名称(name):由代币合约创建者指定的完整名称,一串公开的字符串常量,如CarToken。符合ERC 20标准的代币可以向交易所提供代币名称进行注册,交易所通过注册机制可以检查并保证代币名称与代币合约一一对应,类似于ENS。
    代币符号:
    代币符号(symbol):代币合约创建者指定的代币简称,一串公开的字符串常量。一般由3~4个大写字母组成,便于标识该代币,如EXT。与代币名称相同,它可以在交易所中注册。
    小数点位(decimals):由代币合约创建者指定的一个公开的无符号整数常量,用于指定代币的最小精度值。一般是18.
  • 函数功能包括总供应量、余额、转账、从他人处转账、允许量值以及限额6个功能函数。
    总供应量:totalSupply():用于查看代币当前的总供应量。返回值为无符号整数常量。
    余额balanceOf():查看当前合约中指定账户的代币余额。返回值为账户代币余额,无符号整数常量。
    转账transfer():从当前账户向其他账户进行代币转账。返回值为bool类型。
    从他人处转账transferFrom():从他人账户向其他账户进行代币转账。输入参数为:发起地址、目标地址以及转账数额。返回值bool类型。
    允许量值approve():设定当前账户对指定账户的允许转账量值(allowed)。输入参数:代币使用方地址和允许使用的额度,返回值bool类型。allowed是一个二元组。
    限额allowance():用于查看当前allowed值。输入参数:代币持有方A的地址和代币使用方B的地址,返回值:allowed[A][B].
  • 事件:至少两个事件:转账和允许。
    转账transfer()用于记录代币合约最基本的功能–转账。
    允许approval()用于记录代币合约的进阶功能–允许他人从本账户转出代币。

2、现有的ERC 20标准代币

EOS、REP、BAT

三、ERC 721代币合约标准

1、标准定义

不可替代代币(NFT)的合约接口。最小单位为个,即ERC 20标准中对应小数点位的decimal值为0.每个代币都是独一无二的。每个代币拥有各自的_tokenId标号,并可以附上一些各不相同的特征值。
相比ERC 20增加了一些功能函数:ownerOf()和tokenOfOwnerIndex()分别根据代币ID查询该代币的持有者,以及根据持有者以及其索引查询所持有的代币ID。transferFrom()变更为takeOwnership(),tokenMetadata()函数查看代币的元数据等,根据代币deId查询一个URL格式字符串,包括这一代币的名称、图像、描述等。

2、CryptoKitties DAPP

养猫游戏。小猫代币。

猜你喜欢

转载自blog.csdn.net/qq_53982314/article/details/124409700
今日推荐