Skip to content

Commit 426523d

Browse files
authored
fix (#3051)
1 parent afdf74e commit 426523d

File tree

3 files changed

+51
-19
lines changed

3 files changed

+51
-19
lines changed

src/db/feedCategories.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export async function getFeedRiskTiersBatch(
168168
})
169169

170170
return out
171-
} catch {
171+
} catch (error) {
172172
feedRequests.forEach(({ contractAddress, network, fallbackCategory }) =>
173173
out.set(keyFor(contractAddress, network), { final: chooseTier(null, fallbackCategory) })
174174
)

src/features/feeds/components/Tables.tsx

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { CheckHeartbeat } from "./pause-notice/CheckHeartbeat.tsx"
1010
import { monitoredFeeds, FeedDataItem } from "~/features/data/index.ts"
1111
import { StreamsNetworksData, type NetworkData } from "../data/StreamsNetworksData.ts"
1212
import { FEED_CATEGORY_CONFIG } from "../../../db/feedCategories.js"
13-
import { useBatchedFeedCategories, getFeedCategoryFromBatch } from "./useBatchedFeedCategories.ts"
13+
import { useBatchedFeedCategories, getFeedCategoryFromBatch, getNetworkIdentifier } from "./useBatchedFeedCategories.ts"
1414
import { isSharedSVR, isAaveSVR } from "~/features/feeds/utils/svrDetection.ts"
1515

1616
const feedItems = monitoredFeeds.mainnet
@@ -163,7 +163,7 @@ const DefaultTHead = ({
163163
const DefaultTr = ({ network, metadata, showExtraDetails, batchedCategoryData, dataFeedType }) => {
164164
// Risk categorization logic
165165
const contractAddress = metadata.contractAddress || metadata.proxyAddress
166-
const networkIdentifier = network?.networkType || "unknown"
166+
const networkIdentifier = getNetworkIdentifier(network)
167167
const finalTier =
168168
contractAddress && batchedCategoryData?.size
169169
? (getFeedCategoryFromBatch(batchedCategoryData, contractAddress, networkIdentifier, metadata.feedCategory)
@@ -374,7 +374,7 @@ const SmartDataTr = ({ network, metadata, showExtraDetails, batchedCategoryData
374374

375375
// Resolve final category from batch (fallback to metadata)
376376
const contractAddress = metadata.contractAddress || metadata.proxyAddress
377-
const networkIdentifier = network?.networkType || "unknown"
377+
const networkIdentifier = getNetworkIdentifier(network)
378378
const finalTier =
379379
contractAddress && batchedCategoryData?.size
380380
? (getFeedCategoryFromBatch(batchedCategoryData, contractAddress, networkIdentifier, metadata.feedCategory)
@@ -1012,12 +1012,23 @@ export const MainnetTable = ({
10121012
// 2. If the risk category is 'hidden', exclude this feed from the docs.
10131013
// ---
10141014
const contractAddress = metadata.contractAddress || metadata.proxyAddress
1015-
const networkIdentifier = network?.networkType || "unknown"
1016-
const batchCategory =
1017-
contractAddress && batchedCategoryData?.size
1018-
? (getFeedCategoryFromBatch(batchedCategoryData, contractAddress, networkIdentifier, metadata.feedCategory)
1019-
?.final ?? metadata.feedCategory)
1020-
: metadata.feedCategory
1015+
const networkIdentifier = getNetworkIdentifier(network)
1016+
let batchCategory = metadata.feedCategory
1017+
1018+
if (contractAddress && batchedCategoryData?.size) {
1019+
const categoryResult = getFeedCategoryFromBatch(
1020+
batchedCategoryData,
1021+
contractAddress,
1022+
networkIdentifier,
1023+
metadata.feedCategory
1024+
)
1025+
const finalCategory = categoryResult?.final ?? null
1026+
1027+
if (finalCategory) {
1028+
batchCategory = finalCategory
1029+
}
1030+
}
1031+
10211032
if (batchCategory === "hidden") return false
10221033
if (showOnlySVR && !metadata.secondaryProxyAddress) {
10231034
return false
@@ -1256,12 +1267,23 @@ export const TestnetTable = ({
12561267
// 2. If the risk category is 'hidden', exclude this feed from the docs.
12571268
// ---
12581269
const contractAddress = metadata.contractAddress || metadata.proxyAddress
1259-
const networkIdentifier = network?.networkType || "unknown"
1260-
const batchCategory =
1261-
contractAddress && batchedCategoryData?.size
1262-
? (getFeedCategoryFromBatch(batchedCategoryData, contractAddress, networkIdentifier, metadata.feedCategory)
1263-
?.final ?? metadata.feedCategory)
1264-
: metadata.feedCategory
1270+
const networkIdentifier = getNetworkIdentifier(network)
1271+
let batchCategory = metadata.feedCategory
1272+
1273+
if (contractAddress && batchedCategoryData?.size) {
1274+
const categoryResult = getFeedCategoryFromBatch(
1275+
batchedCategoryData,
1276+
contractAddress,
1277+
networkIdentifier,
1278+
metadata.feedCategory
1279+
)
1280+
const finalCategory = categoryResult?.final ?? null
1281+
1282+
if (finalCategory) {
1283+
batchCategory = finalCategory
1284+
}
1285+
}
1286+
12651287
if (batchCategory === "hidden") return false
12661288
if (isStreams) {
12671289
if (dataFeedType === "streamsCrypto") {

src/features/feeds/components/useBatchedFeedCategories.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ import { useEffect, useState } from "preact/hooks"
22
import { getFeedRiskTiersBatch } from "~/db/feedCategories.js"
33
import { ChainNetwork } from "~/features/data/chains.ts"
44

5+
// Prefer the slug, but patch Ethereum until Supabase data is normalized (it still stores "mainnet").
6+
export const getNetworkIdentifier = (network?: ChainNetwork | null): string => {
7+
if (!network) return "unknown"
8+
if (network.queryString === "ethereum-mainnet") {
9+
return "mainnet"
10+
}
11+
return network.queryString ?? "unknown"
12+
}
13+
514
// Final category only
615
export type FeedCategoryData = {
716
final: string | null
@@ -40,6 +49,8 @@ export function useBatchedFeedCategories(network: ChainNetwork | null): BatchedF
4049
const loadBatchedCategories = async () => {
4150
setState((prev) => ({ ...prev, isLoading: true, error: null }))
4251

52+
const networkKey = getNetworkIdentifier(network)
53+
4354
try {
4455
// Collect requests for this network
4556
const feedRequests: Array<{
@@ -59,7 +70,7 @@ export function useBatchedFeedCategories(network: ChainNetwork | null): BatchedF
5970
if (feedKey) {
6071
feedRequests.push({
6172
contractAddress: feedKey,
62-
network: network.networkType || "unknown",
73+
network: networkKey,
6374
fallbackCategory: metadata.feedCategory,
6475
})
6576
}
@@ -69,7 +80,6 @@ export function useBatchedFeedCategories(network: ChainNetwork | null): BatchedF
6980
setState({ data: new Map(), isLoading: false, error: null })
7081
return
7182
}
72-
7383
// Batched DB lookup (returns Map<key, { final }>)
7484
const batchResults = await getFeedRiskTiersBatch(feedRequests)
7585

@@ -88,7 +98,7 @@ export function useBatchedFeedCategories(network: ChainNetwork | null): BatchedF
8898
}
8999

90100
loadBatchedCategories()
91-
}, [network?.name, network?.networkType, network?.metadata?.length])
101+
}, [network?.name, network?.networkType, network?.queryString, network?.metadata?.length])
92102

93103
return state
94104
}

0 commit comments

Comments
 (0)