10 如何查询一个NFT合约里一个地址的全部ID

看标准源码没有什么好方案,opensea是如何做到扫描一个地址下面全部的NFT?

请先 登录 后评论

最佳答案 2022-02-15 12:06

估计是通过 eth_getLogs 接口扫描合约 Transfer 事件实现的,事件里面有地址和tokenId信息,然后保存到自己的数据库里面。

event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
请先 登录 后评论

其它 3 个回答

执灯一盏 - 区块链开发工程师

一种就是先调的 totalsupply,然后根据总量遍历 tokenByIndex查出每个tokenId,接着遍历tokenOfOwnerByIndex,查出用户拥有的tokenid,最后遍历tokenURI查出每个tokenId的元数据,这几个都是标准的ERC721接口

另一种就是监听合约事件,需提前把交易数据存储到数据库

请先 登录 后评论
王long

ERC721扩展方法里面的tokenOfOwnerByIndex函数
通过地址和索引值查询具体的tokenId,
所以会有一个mapping作用是
地址映射到当前地址所拥有的所有tokenID的数组。

请先 登录 后评论
王long

ERC721扩展方法里面的tokenOfOwnerByIndex函数
通过地址和索引值查询具体的tokenId,
所以会有一个mapping作用是
地址映射到当前地址所拥有的所有tokenID,

请先 登录 后评论
  • 3 关注
  • 0 收藏,6953 浏览
  • 木头 提出于 2022-02-15 10:50