如果您使用的是ERC-721标准,那么确定地址在DAPP中拥有哪些令牌的首选方法是什么。
目前,我请求所有的Transfer Events获取一个地址,并基本上将它们分类为传入和传出,然后使用它来确定用户拥有哪些令牌。
有没有更简单的方法我错过了。
Transfer
事件也可能由不是ERC-721令牌的合约或您可能不感兴趣的一些非名称令牌发出。
实际的代币所有权存储在代币合约中(而不是DAPP合约(。
因此,如果您想自动跟踪地址当前拥有的所有令牌(以及一些误报(,那么您当前的方法非常简单。
注意:这也类似于Etherscan的方法,它监听所有Transfer
事件日志,如果发送方合约列在他们的令牌数据库中,他们会使用事件日志数据更新发送方和接收方的余额
如果您愿意/能够创建和维护您想要遵循的令牌列表,我建议使用一种更简单的方法:
- 定义以下代币合约地址的列表(例如ECF或RARI(
- 对于这些令牌合约中的每一个,调用
balanceOf(<your_dapp_address>)
,返回<your_dapp_address>
当前拥有的令牌数量