From 540c3495a6ca034f6623e97f977fc17324564343 Mon Sep 17 00:00:00 2001 From: kyranjamie Date: Thu, 9 May 2024 13:21:26 +0200 Subject: [PATCH] fix: constant retrying of metadata --- .../bitcoin/stamps/stamps-by-address.query.ts | 36 +++++++++---------- .../non-fungible-token-metadata.query.ts | 8 +++++ 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/app/query/bitcoin/stamps/stamps-by-address.query.ts b/src/app/query/bitcoin/stamps/stamps-by-address.query.ts index 8fd3a11b8a0..94677b0154f 100644 --- a/src/app/query/bitcoin/stamps/stamps-by-address.query.ts +++ b/src/app/query/bitcoin/stamps/stamps-by-address.query.ts @@ -9,40 +9,40 @@ import { QueryPrefixes } from '@app/query/query-prefixes'; const stampSchema = z.object({ stamp: z.number(), - block_index: z.number(), - cpid: z.string(), - asset_longname: z.string(), + block_index: z.number().optional(), + cpid: z.string().optional(), + asset_longname: z.string().optional(), creator: z.string(), divisible: z.number(), - keyburn: z.number(), + keyburn: z.number().optional(), locked: z.number(), - message_index: z.number(), + message_index: z.number().optional(), stamp_base64: z.string(), stamp_mimetype: z.string(), stamp_url: z.string(), supply: z.number(), - timestamp: z.string(), + timestamp: z.string().optional(), tx_hash: z.string(), - tx_index: z.number(), - src_data: z.string(), - ident: z.string(), - creator_name: z.string(), - stamp_gen: z.string(), - stamp_hash: z.string(), - is_btc_stamp: z.number(), - is_reissue: z.number(), - file_hash: z.string(), + tx_index: z.number().optional(), + src_data: z.string().optional(), + ident: z.string().optional(), + creator_name: z.string().optional().nullable(), + stamp_gen: z.string().optional(), + stamp_hash: z.string().optional(), + is_btc_stamp: z.number().optional(), + is_reissue: z.number().optional(), + file_hash: z.string().optional(), }); export type Stamp = z.infer; const src20TokenSchema = z.object({ - id: z.string(), + id: z.string().optional(), address: z.string(), - cpid: z.string(), + cpid: z.string().optional(), p: z.string(), tick: z.string(), - amt: z.number(), + amt: z.string().optional(), block_time: z.string(), last_update: z.number(), }); diff --git a/src/app/query/stacks/tokens/non-fungible-tokens/non-fungible-token-metadata.query.ts b/src/app/query/stacks/tokens/non-fungible-tokens/non-fungible-token-metadata.query.ts index 04cdd650d08..c8da035f92c 100644 --- a/src/app/query/stacks/tokens/non-fungible-tokens/non-fungible-token-metadata.query.ts +++ b/src/app/query/stacks/tokens/non-fungible-tokens/non-fungible-token-metadata.query.ts @@ -21,6 +21,10 @@ function getTokenId(hex: string) { return clarityValue.type === 1 ? Number(clarityValue.value) : 0; } +function statusCodeNotFoundOrNotProcessable(status: number) { + return status === 404 || status === 422; +} + export function useGetNonFungibleTokenMetadataListQuery( account: StacksAccount ): UseQueryResult[] { @@ -41,6 +45,10 @@ export function useGetNonFungibleTokenMetadataListQuery( throwOnTimeout: true, }); }, + retry(_count: number, error: Response) { + if (statusCodeNotFoundOrNotProcessable(error.status)) return false; + return true; + }, ...queryOptions, }; }),