ERC-721:如何确定地址拥有哪些代币

时间:2021-04-12 14:50:01

标签: ethereum

如果您使用 ERC-721 标准,确定地址在 DAPP 中拥有哪些代币的首选方法是什么。

目前我正在请求一个地址的所有转移事件,并基本上将它们分类为转入和转出,然后使用它来确定用户拥有哪些代币。

有没有我错过的更简单的方法。

1 个答案:

答案 0 :(得分:0)

Transfer 事件也可能由非 ERC-721 代币的合约或您可能不感兴趣的一些无名代币发出。

实际的代币所有权存储在代币合约(而不是 DAPP 合约)中。

因此,如果您想自动跟踪地址当前拥有的所有令牌(以及一些误报),那么您当前的方法非常简单。 >

注意:这也类似于 Etherscan 的方法,它侦听所有 Transfer 事件日志,如果发送方合约列在其令牌数据库中,则它们使用事件日志数据来更新发送方和接收方的余额。


如果您愿意/能够创建和维护您想要关注的令牌列表,我会推荐一种更简单的方法:

  1. 定义跟踪的代币合约地址列表(例如 ECFRARI
  2. 对于这些代币合约中的每一个,调用 balanceOf(<your_dapp_address>) 以返回 <your_dapp_address> 当前拥有的代币数量。