diff --git a/shared/utils/indexer.ts b/shared/utils/indexer.ts index 635f8392..49206ddf 100644 --- a/shared/utils/indexer.ts +++ b/shared/utils/indexer.ts @@ -3,8 +3,12 @@ export interface PaginationResponse { count: number } +export interface NFTClassWithTokenId extends NFTClass { + token_id?: string +} + export interface FetchNFTClassesByOwnerWalletAddressResponseData { - data: NFTClass[] + data: NFTClassWithTokenId[] pagination: PaginationResponse } diff --git a/stores/bookshelf.ts b/stores/bookshelf.ts index a75302f2..b2c73edc 100644 --- a/stores/bookshelf.ts +++ b/stores/bookshelf.ts @@ -77,7 +77,15 @@ export const useBookshelfStore = defineStore('bookshelf', () => { const nftClassId = nftClass.address.toLowerCase() as `0x${string}` nftClassIds.value.add(nftClassId) - tokenIdsByNFTClassId.value[nftClassId] ??= [] + if (nftClass.token_id) { + const existing = tokenIdsByNFTClassId.value[nftClassId] ?? [] + if (!existing.includes(nftClass.token_id)) { + tokenIdsByNFTClassId.value[nftClassId] = [...existing, nftClass.token_id] + } + } + else { + tokenIdsByNFTClassId.value[nftClassId] ??= [] + } if (nftClass.metadata) { nftStore.addNFTClassMetadata(nftClassId, nftClass.metadata)