From a8cb2a62a9c4432dd968c0de28e952a1fcd7fa78 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Fri, 21 Feb 2025 14:44:36 -0800 Subject: [PATCH] Adding 404 to token page/api --- .../[network]/(explorer)/token/[contract]/[symbol]/+page.ts | 5 +++++ .../[network]/api/token/[contract]/[symbol]/+server.ts | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/routes/[network]/(explorer)/token/[contract]/[symbol]/+page.ts b/src/routes/[network]/(explorer)/token/[contract]/[symbol]/+page.ts index 37911b410..c625f146b 100644 --- a/src/routes/[network]/(explorer)/token/[contract]/[symbol]/+page.ts +++ b/src/routes/[network]/(explorer)/token/[contract]/[symbol]/+page.ts @@ -1,4 +1,6 @@ import { API, Asset, Name, Struct, type AssetType, type NameType } from '@wharfkit/antelope'; +import { error } from '@sveltejs/kit'; + import type { PageLoad } from './$types'; interface LightAPIHolder { @@ -18,6 +20,9 @@ export const load: PageLoad = async ({ fetch, params, parent, url }) => { const count = Number(url.searchParams.get('count')) || 100; const baseUrl = `/${network}/api/token/${params.contract}/${params.symbol}?count=${count}`; const response = await fetch(baseUrl); + if (!response.ok) { + return error(404, 'Token not found'); + } const json = await response.json(); const stats = API.v1.GetCurrencyStatsItemResponse.from(json.stats); diff --git a/src/routes/[network]/api/token/[contract]/[symbol]/+server.ts b/src/routes/[network]/api/token/[contract]/[symbol]/+server.ts index 347cef7e2..e56f62c83 100644 --- a/src/routes/[network]/api/token/[contract]/[symbol]/+server.ts +++ b/src/routes/[network]/api/token/[contract]/[symbol]/+server.ts @@ -9,6 +9,10 @@ export async function GET({ locals: { network }, params, url }: RequestEvent) { const symbol = params.symbol?.toLocaleUpperCase(); const count = Number(url.searchParams.get('count')) || 100; const stats = await network.client.v1.chain.get_currency_stats(contract, symbol); + if (stats[symbol] === undefined) { + console.log('abort'); + return json({ error: 'Token not found' }, { status: 404 }); + } const topholders = await getTopHolders(network, contract, symbol, count); const numholders = await getNumHolders(network, contract, symbol);