У меня есть простой смарт-контракт ERC721, используемый для целей тестирования, и мне было интересно, можно ли запросить идентификаторы токенов, которыми владеет конкретный кошелек в этом смарт-контракте.
в конечном итоге я хотел бы отображать NFT, отчеканенные пользователем на веб-сайте.
balanceOf в контракте возвращает количество токенов, принадлежащих пользователю, но без дополнительной информации.
мой тестовый смарт-контракт:
Похоже, ваш контракт наследует расширение ERC721 под названием ERC721Enumerable.
Это расширение добавляет функцию под названием tokenOfOwnerByIndex(address owner, uint256 index)
, которая может использоваться для вывода списка всех токенов, принадлежащих пользователю (owner
). Таким образом, вы можете вызывать эту функцию несколько раз, зацикливая index
от 0
до balanceOf(owner)
, чтобы получить идентификаторы всех токенов.
Большое спасибо, мне удалось получить все данные, используя способ, который вы здесь упомянули.