From e3d11ebdde870aedc48a028f21f5efd46961c398 Mon Sep 17 00:00:00 2001 From: Jonas Daniels Date: Fri, 24 Oct 2025 14:22:00 -0700 Subject: [PATCH] Filter out null-ish values from ERC721 and ERC1155 getNFTs() arrays --- .changeset/good-regions-dig.md | 5 +++++ .../thirdweb/src/extensions/erc1155/read/getNFTs.ts | 12 +++++++++--- .../thirdweb/src/extensions/erc721/read/getNFTs.ts | 12 +++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 .changeset/good-regions-dig.md diff --git a/.changeset/good-regions-dig.md b/.changeset/good-regions-dig.md new file mode 100644 index 00000000000..28502a59a12 --- /dev/null +++ b/.changeset/good-regions-dig.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +filter out null-ish values from `ERC721.getNFTs()` and `ERC1155.getNFTs()` arrays diff --git a/packages/thirdweb/src/extensions/erc1155/read/getNFTs.ts b/packages/thirdweb/src/extensions/erc1155/read/getNFTs.ts index 5ee21d57249..d18a50edbfc 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/getNFTs.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/getNFTs.ts @@ -52,12 +52,18 @@ export async function getNFTs( const { useIndexer = true } = options; if (useIndexer) { try { - return await getNFTsFromInsight(options); + return await getNFTsFromInsight(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } catch { - return await getNFTsFromRPC(options); + return await getNFTsFromRPC(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } } - return await getNFTsFromRPC(options); + return await getNFTsFromRPC(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } async function getNFTsFromInsight( diff --git a/packages/thirdweb/src/extensions/erc721/read/getNFTs.ts b/packages/thirdweb/src/extensions/erc721/read/getNFTs.ts index a46d54e8265..f89c16c07ec 100644 --- a/packages/thirdweb/src/extensions/erc721/read/getNFTs.ts +++ b/packages/thirdweb/src/extensions/erc721/read/getNFTs.ts @@ -71,12 +71,18 @@ export async function getNFTs( const { useIndexer = true } = options; if (useIndexer) { try { - return await getNFTsFromInsight(options); + return await getNFTsFromInsight(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } catch { - return await getNFTsFromRPC(options); + return await getNFTsFromRPC(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } } - return await getNFTsFromRPC(options); + return await getNFTsFromRPC(options).then((nfts) => + nfts.filter((nft) => nft?.id !== undefined && nft?.id !== null), + ); } /**