美文网首页
附录2 ERC721不可交换代币协议

附录2 ERC721不可交换代币协议

作者: 智能合约大师兄 | 来源:发表于2019-12-01 12:36 被阅读0次

ERC721协议随着以太加密猫游戏的流行而逐渐被大家所熟知。其本质是对不可置换代币(NFT)的所有权转移和流通制定了标准的接口以及触发的事件,并在一定程度上和ERC20协议兼容,方便第三方钱包进行资产展示。ERC721协议更大的想象空间在于和现实世界中物理资产如房产、资源所有权和艺术品等的一一对应。未来有可能成为各种现实资产交易和艺术品拍卖类应用的基石,从而引爆一个新的商业应用模式。

本附录收录了ERC721协议中重要而且常见的函数定义、事件定义以及公共变量定义等作为日常工作的快速参考。如果需要关于该协议全面而细化的描述请参考官方相关文档。

1 元数据类函数

function name() external pure returns (string _name)

返回当前NFT的名称描述, 如”test None exchange token”

function symbol() external pure returns (string _symbol)

返回当前NFT的符号简写,如TNT

function tokenURI(uint256 _tokenId) external view returns (string)

返回指定NFT的外部资源URI通常是ipfs或http(s)路径,外部资源文件需要包含名字、描述、图片

2 枚举查询类函数

function balanceOf(address _owner) external view returns (uint256)

返回由用户持有的NFT数量

function totalSupply() external view returns (uint256)

返回NFT的供应总量

function tokenByIndex(uint256 _index) external view returns (uint256)

通过索引返回指定NFT的ID

function tokenOfOwnerByIndex(address _owner, uint256 _index) 
    external view returns (uint256)

由于一个账户可以拥有多个NFT,因此该函数可以返回目标账户指定索引的NFT

3 所有权转移相关

event Transfer(address indexed _from, address indexed _to, 
    uint256 indexed _tokenId)

完成NFT的所有权转移时必须触发该事件进行日志记录

function transferFrom(address _from, address _to, uint256 _tokenId) 
    external payable

将NFT的所有权转移到目标账户,并触发事件Transfer,目标账户和源账户都必须有效

function safeTransferFrom(address _from, address _to, uint256 _tokenId,  bytes data) external payable

将NFT的所有权转移到目标账户,并触发事件Transfer,实际所有权的转移调用transferFrom来实现,如果接受目标账户to为合约,该合约需实现接口合约onERC721Received中的onERC721Received并返回正确值

function safeTransferFrom(address _from, address _to, uint256 _tokenId)  external payable

将NFT的所有权转移到目标账户并触发事件Transfer,与safeTransferFrom(_from,_to,_tokenId,“”)同义

function ownerOf(uint256 _tokenId) external view returns (address)

返回指定NFT的拥有者

4 授权转移相关

event Approval(address indexed _owner, address indexed _approved,  uint256 indexed _tokenId)

当指定NFT的所有者授权第三方账户管理该NFT的所有权转移时触发该事件,当进行NFT所有权转移时初始的第三方授权账户默认为无效

event ApprovalForAll(address indexed _owner, address indexed _operator,  bool _approved)

当指定用户授权或禁止第三方账户如拍卖所合约管理其全部的NFTs资产时触发该事件

function approve(address _approved, uint256 _tokenId) external payable

授权第三方账户管理当前NFT所有权的转移,执行成功后触发事件Approval

function getApproved(uint256 _tokenId) external view returns (address)

得到指定NFT的授权第三方管理账户

function setApprovalForAll(address _operator, bool _approved) external

授权或禁止第三方账户管理当前账户拥有的所有NFTs

function isApprovedForAll(address _owner, address _operator) 
    external view returns (bool)

查询第三方账户是否被授权或禁止管理当前账户拥有的所有NFTs

相关文章

  • 附录2 ERC721不可交换代币协议

    ERC721协议随着以太加密猫游戏的流行而逐渐被大家所熟知。其本质是对不可置换代币(NFT)的所有权转移和流通制定...

  • ERC721不可互换代币标准

    ERC721标准是在ERC20标准上建立的代币标准,是针对不可互换代币(non-fungible tokens 简...

  • 附录1 ERC20可交换代币协议

    现在基于以太坊的大部分应用都直接或间接与ERC20协议有关,该协议的本质是将各种数字资产的接口标准化,遵循ERC2...

  • ERC721

    基础介绍 ERC 是以太坊代币标准的缩写,常见ERC标准有ERC20、ERC721。 ERC721的主要特性是”N...

  • 以太坊开发实战学习-ERC721标准(七)

    从这节开始,我们将学习代币, ERC721标准, 以及加密收集资产等知识。 一、代币 代币 让我们来聊聊以太坊上的...

  • ERC721分析

    ERC721是什么? ERC是Ethereum非同质化代币(no-fungible token)。官方详细介绍什么...

  • Solidity智能合约:ERC721协议

    ERC721是以太坊的非同志资产协议,由于CryptoKitties的火热吸引了注意,以下是ERC721的框架。 ...

  • 以太坊标准ERC-721

    前一篇文章介绍了以太坊代币标准ERC20,这篇文章主要来介绍以太坊的另一个标准:ERC721,ERC721标准官方...

  • 开源协议选择

    开源项目协议怎么选? 选择开源协议可以帮助选择,各种协议对比参考附录。 站点是英文的,以下是附录(浏览器翻译的截图...

  • Solodity知识点集 — ERC721代币标准详解(十)

    接上篇,这篇将详解介绍ERC721代币标准 balanceOf 这个函数只需要一个传入 address 参数,然后...

网友评论

      本文标题:附录2 ERC721不可交换代币协议

      本文链接:https://www.haomeiwen.com/subject/whezwctx.html