文储研习社是文储区块链技术人员自发组织的学习交流社区,旨在于追踪区块链时下最新热点,解码热点蕴含的未知领域,享受思想交流的碰撞,欢迎志同道合的小伙伴加入我们,共同学习与成长。 第01期:ERC721介绍 作者:小范 NFT全名为Non-Fungible Token,中文为非同质化Token,其特点为不可替代性,不可分割性,以及独一无二的三种特性。与其相对应的概念就是FT(Fungble Token),也就是同质化Token,比如以太坊ETH、UNI等等在交易所中的代币。非同质化Token,顾名思义,是本质不同的Token,每个Token都是独一无二的。有时小伙伴会在opensea等平台看到一些音乐或者美术作品,有的每个作品只有一份,有的作品会有多份的copy,但是每一份会有不同的编号,这些就是非同质化Token了。 目前主流的NFT都以智能合约的形式出现,较多分布在以太坊,bsc,solana,Waves 等支持智能合约的平台。本文将简单介绍NFT在以太坊以及类似公链上的实现逻辑。 ERC721是以太坊上的标准版型,只有满足的这个版中的函数以及事件,才会被叫做NFT Token。而这些函数以及事件其实是一些最基本的功能,我们在openzeppelin的网站中可以看到对其的描述: https://docs.openzeppelin.com/contracts/4.x/api/token/erc721 首先是函数: balanceOf(owner) 返回这个地址中有几个token(返回owner 的token数量) ownerOf(tokenId) 返回这个token的持有地址(查找tokenID的持有address) safeTransferFrom(from, to, tokenId) 转移token(从from地址将token转移到to地址,检查to地址是否有接受的能力) transferFrom(from, to, tokenId) 转移token(从from地址将token转移到to地址) approve(to, tokenId) 授权token(将tokenId授权到to地址) getApproved(tokenId) 查询token被授权给谁(token被授权的address) setApprovalForAll(operator, _approved) 授权给他人所有token的控制权(approve所有token给operator) isApprovedForAll(owner, operator) 检查是否setApprovalForAll(operator, _approved) safeTransferFrom(from, to, tokenId, data) 转移token(从from地址将token转移到to地址,检查to地址是否有接受的能力) 同时,还有三个事件(event)是必须要有的。简单来讲,event就是记录,为了能够方便地查询或者统计,在发生某些函数时,我们同时把它们记录下来,这样就可以方便查询,同时也能提醒区块链中的所有人发生了什么事情。这三个事件分别是: Transfer(from, to, tokenId)转移 Approval(owner, approved, tokenId)授权 ApprovalForAll(owner,operator, approved)授权所有 也就是说,当我们转移Token和授权Token的时候,我们需要将信息记录下来。 以上是erc721需要implement 的功能。 非同质化Token的智能合约也像erc20一样,是一个小的数据结构,其中有几个map是实现的关键: mapping(uint256 => address) private _owners; tokenid和owner一一对应的map mapping(address => uint256) private _balances; owner和owner持有数量的对应 mapping(uint256=>address)private_tokenApprovals; tokenid 和 授权地址的对应 mapping(address => mapping(address => bool)) private _operatorApprovals; owner和operator的对应 mapping(uint256=>string)private_tokenURIs;(可选,可以存储更多的信息) tokenid和数据URI的对应 从上面的map中我们可以梳理出,NFT?Token的实现是很清晰明了的:首先是将tokenid和owner address对应起来,我们就能知道Token的归属权,然后再将Tokenid与数据对应起来,我们就能知道每个Token代表着什么,与哪些数据相连,以及数据归属的问题。 查看更多 —- 编译者/作者:文储区块链 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
文储研习社第01期|ERC721介绍
2021-09-07 文储区块链 来源:区块链网络
LOADING...
相关阅读:
- 大资金为啥要买买买,咋屯了6百万BTC还不够,会不会下一秒就砸盘2021-09-07
- 虎符交易所甄选优质资产SOL等优质代币迎来全线上涨2021-09-07
- 不一样的智能合约安全视角——solidity逆向2021-09-07
- NFT游戏为什么会火?2021-09-07
- 币中乾坤:Tether再次充值比特币继续推进!2021-09-07