ERC721 内置函数 -- 当手册备查

Posted zmy2022

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERC721 内置函数 -- 当手册备查相关的知识,希望对你有一定的参考价值。

ERC721BasicToken:

uint256 uiTokenCount = balanceOf( 某人地址 ); // 获得某人拥有多少物品。

address addr = ownerOf( ui256TokenID ); // 某个使用权归谁所有。

bool b = exists( ui256TokenID ); // 某个tokenID是否存在

void approve( 某人地址 , ui256TokenID ); // 调用者授权某人可以操作自己的 ui256TokenID

address addr = getApproved( ui256TokenID ); // 检查某个 ui256TokenID 当前归谁代为操作。

void setApprovalForAll( 某人地址 , 是否允许 ); // 调用者允许/不允许某人全权操作自己所拥有的所有物品。

bool b = isApprovedForAll( 某个拥有者,某人地址 ); // 检测某个拥有者是否已经全权授权某人地址来操作他所有物品。

void transferFrom( 张三地址,李四地址,ui256TokenID ); // 张三将物品ui256TokenID转移给李四。

void safeTransferFrom( 张三地址,李四地址,ui256TokenID[ , 一段bytes ] ); // 对方地址必须是一个合约地址(不能是人),而且该合约地址还必须实现 onERC721Received 函数,而且该函数还要返回 ERC721_RECEIVED 写死的返回值。否则该转账无效。

-- - 私有函数: void _mint( 某人地址,ui256TokenID ); // 给某人新分配一个物品 ui256TokenID。(新产生物品)

-- - 私有函数: void _burn( 某人地址 , ui256TokenID ); // 从某人手中删除物品。

-- - 私有函数: void clearApproval( 某人地址 , ui256TokenID ); // 清除某个人对某物品的授权。

-- - 私有函数: addTokenTo 与 _mint 几乎相同(请使用 _mint)

-- - 私有函数 : removeTokenFrom 与 _burn 几乎相同(请使用 _burn)

 

 

--------以下是子类函数(子类增加很多map,小心gas消耗)----

ERC721Token:

string str = name( ); // 获取代币名字(可以中文utf8)

string str = symbol( ); // 获取代币在交易所里的代号(不超过12字节英文+数字)

string str = tokenURI( ui256TokenID ); // 获取某物品对应的URI(任意自定义说明)

uint256 uiID = tokenOfOwnerByIndex( 某人地址 , 下标 ); // 取出某人手中第“下标”个物品。下标从0开始计。必须 < balanceOf(addrOwner)。

uint256 uiCount = totalSupply( ); // 获取物品总数

uint256 uiID = tokenByIndex( 下标 ); // 获取某个下标的物品, 下标 >= 0 && < totalSupply();

-- - 私有函数: void _setTokenURI( ui256TokenID , strURI ); // 给某个物品关联一个自定义字符串

以上是关于ERC721 内置函数 -- 当手册备查的主要内容,如果未能解决你的问题,请参考以下文章

ERC721标准合约接口事件和方法分析

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

剖析非同质化代币ERC721-全面解析ERC721标准

如何从以太坊地址获取 ERC20、ERC721 和 ERC827 代币列表

ERC1155

什么是以太坊ERC20和ERC721