Когда в ENS-профиле можно показывать NFT как аватар
Запись avatar всё ещё указывает на ERC-721, который вчера сменил владельца. Файл изображения доступен и токен существует, но принадлежность профилю уже могла измениться.
Определите адрес для проверки владения
При прямом разрешении возьмите адресную запись того же имени ENS. Если начали с адреса, выполните проверки обратного разрешения и используйте исходный адрес. В сети из URI аватара вызовите ownerOf(tokenId) нужного ERC-721-контракта. В примере адреса различаются, поэтому запрашивать изображение для этого профиля не следует.
const resolved = "0x" + "11".repeat(20);
const nftOwner = "0x" + "22".repeat(20);
console.log(resolved === nftOwner ? "load token metadata" : "omit NFT avatar");
Разделите кеш изображения и кеш владения
Сохранённые tokenURI и файл могут пережить передачу токена. Перепроверяйте владельца перед показом ENS-аватара, а для ERC-1155 используйте проверку баланса. Передача токена может сделать аватар недействительным без изменений в ENS и в самом изображении. В ключ кеша владения включите сеть, контракт и ID, чтобы токены с одинаковым номером не разделили результат.