ERC-721协议发行的货币是非同质化代币,以前搞ICO发的货币,是使用ERC-20发的区块链货币、同质化货币。
2.
ERC-721只是NFT稚嫩合约必须实现的最小接口,它包括代币管理、持有和交易功能。然而它并不包括代币元数据的相关内容,也缺少对一些实用的功能支持。也就是说,单纯的ERC-721上面只记录了一个TOKENID(NFT编号)的归属者,并不具体指明这个TOKENID所指向的物品是个什么东西,它的内容是什么,元数据是什么。一般的NFT合约都要加上其它功能。
因此常用的组合为:
ERC721标准+ IERC721Enumerable + IERC721Metadata,再加上自定义的mintable。
IERC721标准的合约方法:
balanceOf(): 返回由_owner 持有的NFTs的数量。
ownerOf(): 返回tokenId代币持有者的地址。
approve(): 授予地址_to具有_tokenId的控制权,方法成功后需触发Approval 事件。
setApprovalForAll(): 授予地址_operator具有所有NFTs的控制权,成功后需触发ApprovalForAll事件。
getApproved()、isApprovedForAll(): 用来查询授权。
safeTransferFrom(): 安全转移NFT所有权,一次成功的转移操作必须发起 Transer 事件。
transferFrom(): 用来转移NFTs, 方法成功后需触发Transfer事件。调用者自己确认_to地址能正常接收NFT,否则将丢失此NFT。此函数实现时需要检查上面条件的前4条。
approve()和 transferFrom()的意义是什么?