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), + ); } /**