0

好奇钱包(例如元掩码/其他)究竟是如何知道可能在其所有权下的任何 ERC1155 代币的?

例如,我可能有一个 ERC1155 合同,它发出 100000 个不同类型的令牌(每个都有不同的 tokenId)

ERC1155 接口确实有一个balanceOf(account, id)功能,但这当然需要钱包预先了解各种 tokenId 才能使用它。

钱包可以监听钱包地址的所有 TransferSingle 事件并从中获取代币余额,但这肯定也是有问题的,因为代币可能已经转移到其他钱包。

可以在合约中维护一个映射,该映射维护一个地址持有的 tokenIds,例如

mapping(address => uint256[] ) tokenIdsInWallet

虽然这可以工作,但它不是标准的接口功能,所以钱包不会知道它

4

0 回答 0