Erc-721
ERC721Enumerable.sol 能否提供一個地址的 NFT 資產總數?
介紹:
我正在嘗試在我的 NFT 契約中使用 ERC721Enumerable,以便我可以獲得特定地址擁有的所有 NFT 的集合。
研究:
實施 ERC721Enumerable合約以列舉獨特的 NFT,使它們可被發現。發現它們的方法是使用以下函式遍歷列舉的 NFT id:
function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256);
我認為獲取一整套地址資產的最佳方法是多次查詢此函式,同時將
_index
變數從 0 -> n 遞增,直到不存在這樣的 NFT - 然後你將獲得所有資產特定地址擁有的合約。但這對我來說似乎很老套。問題:
我想知道 ERC721Enumerable 合約是否有更好的方法來告訴我地址擁有的 NFT 的整個列表。
是的,你有正確的方法。
這是從區塊鏈中檢索任意大量數據的唯一方法。
我們考慮的其他選項是返回一個數組。但是,當返回的數組對於某個客戶端來說可能太大時,這會打開攻擊場景或拒絕服務。