Erc-721

ERC721Enumerable.sol 能否提供一個地址的 NFT 資產總數?

  • May 8, 2021

介紹:

我正在嘗試在我的 NFT 契約中使用 ERC721Enumerable,以便我可以獲得特定地址擁有的所有 NFT 的集合。

研究:

實施 ERC721Enumerable合約以列舉獨特的 NFT,使它們可被發現。發現它們的方法是使用以下函式遍歷列舉的 NFT id:

function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256);

我認為獲取一整套地址資產的最佳方法是多次查詢此函式,同時將_index變數從 0 -> n 遞增,直到不存在這樣的 NFT - 然後你將獲得所有資產特定地址擁有的合約。但這對我來說似乎很老套。

問題:

我想知道 ERC721Enumerable 合約是否有更好的方法來告訴我地址擁有的 NFT 的整個列表。

是的,你有正確的方法。

這是從區塊鏈中檢索任意大量數據的唯一方法。

我們考慮的其他選項是返回一個數組。但是,當返回的數組對於某個客戶端來說可能太大時,這會打開攻擊場景或拒絕服務。

引用自:https://ethereum.stackexchange.com/questions/98584