Skip to content

Commit 651cb41

Browse files
committed
temporary solution parsing svr feed variants
1 parent 9aa9f3c commit 651cb41

File tree

3 files changed

+69
-15
lines changed

3 files changed

+69
-15
lines changed

src/features/feeds/components/FeedList.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@ export const FeedList = ({
469469
network={network}
470470
showExtraDetails={showExtraDetails}
471471
showOnlySVR={showOnlySVR}
472+
svrFilter="all"
472473
showOnlyMVRFeeds={showOnlyMVRFeeds}
473474
showOnlyDEXFeeds={showOnlyDEXFeeds}
474475
dataFeedType={dataFeedType}
@@ -836,6 +837,7 @@ export const FeedList = ({
836837
network={network}
837838
showExtraDetails={showExtraDetails}
838839
showOnlySVR={showOnlySVR}
840+
svrFilter="all"
839841
showOnlyMVRFeeds={showOnlyMVRFeeds}
840842
showOnlyDEXFeeds={false}
841843
dataFeedType={dataFeedType}

src/features/feeds/components/Tables.module.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,19 @@
195195
text-align: left;
196196
}
197197

198+
.sharedCallout {
199+
background-color: #e6f3ff;
200+
border-radius: 4px;
201+
padding: 10px 12px;
202+
margin-top: 10px;
203+
margin-bottom: 10px;
204+
font-size: 0.9rem;
205+
color: #0066cc;
206+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
207+
width: 100%;
208+
text-align: left;
209+
}
210+
198211
.feedVariantBadge {
199212
display: inline-block;
200213
font-size: 0.75rem;

src/features/feeds/components/Tables.tsx

Lines changed: 54 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,20 @@ import button from "@chainlink/design-system/button.module.css"
99
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"
12-
import { type Docs } from "~/features/data/api/index.ts"
12+
import { type ChainMetadata } from "~/features/data/api/index.ts"
1313

1414
const feedItems = monitoredFeeds.mainnet
15+
16+
// Helper functions for SVR feed categorization
17+
const isSharedSVR = (metadata: ChainMetadata): boolean => {
18+
// Check for marketing.path or fallback to path field
19+
const pathToCheck = (metadata as ChainMetadata & { marketing?: { path?: string } })?.marketing?.path || metadata.path
20+
return typeof pathToCheck === "string" && /-shared-svr$/.test(pathToCheck)
21+
}
22+
23+
const isAaveSVR = (metadata: ChainMetadata): boolean => {
24+
return !!metadata?.secondaryProxyAddress && !isSharedSVR(metadata)
25+
}
1526
const feedCategories = {
1627
low: (
1728
<span
@@ -213,9 +224,15 @@ const DefaultTr = ({ network, metadata, showExtraDetails }) => (
213224
href="/data-feeds/svr-feeds"
214225
target="_blank"
215226
className={tableStyles.feedVariantBadge}
216-
title="SVR-enabled Feed"
227+
title={
228+
isAaveSVR(metadata)
229+
? "Aave Dedicated SVR Feed"
230+
: isSharedSVR(metadata)
231+
? "Shared SVR Feed"
232+
: "SVR-enabled Feed"
233+
}
217234
>
218-
SVR
235+
{isAaveSVR(metadata) ? "Aave SVR" : isSharedSVR(metadata) ? "Shared SVR" : "SVR"}
219236
</a>
220237
</div>
221238
)}
@@ -304,7 +321,7 @@ const DefaultTr = ({ network, metadata, showExtraDetails }) => (
304321
<div className={tableStyles.separator} />
305322
<div className={tableStyles.assetAddress}>
306323
<dt>
307-
<span className="label">AAVE SVR Proxy:</span>
324+
<span className="label">{isAaveSVR(metadata) ? "AAVE SVR Proxy:" : "SVR Proxy:"}</span>
308325
</dt>
309326
<dd>
310327
<button
@@ -331,14 +348,25 @@ const DefaultTr = ({ network, metadata, showExtraDetails }) => (
331348
</a>
332349
</dd>
333350
</div>
334-
<div className={clsx(tableStyles.aaveCallout)}>
335-
<strong>⚠️ Aave Dedicated Feed:</strong> This SVR proxy feed is dedicated exclusively for use by the
336-
Aave protocol. Learn more about{" "}
337-
<a href="/data-feeds/svr-feeds" target="_blank">
338-
SVR-enabled Feeds
339-
</a>
340-
.
341-
</div>
351+
{isAaveSVR(metadata) && (
352+
<div className={clsx(tableStyles.aaveCallout)}>
353+
<strong>⚠️ Aave Dedicated Feed:</strong> This SVR proxy feed is dedicated exclusively for use by the
354+
Aave protocol. Learn more about{" "}
355+
<a href="/data-feeds/svr-feeds" target="_blank">
356+
SVR-enabled Feeds
357+
</a>
358+
.
359+
</div>
360+
)}
361+
{isSharedSVR(metadata) && (
362+
<div className={clsx(tableStyles.sharedCallout)}>
363+
<strong>🔗 Shared SVR Feed:</strong> This SVR proxy feed is usable by any protocol. Learn more about{" "}
364+
<a href="/data-feeds/svr-feeds" target="_blank">
365+
SVR-enabled Feeds
366+
</a>
367+
.
368+
</div>
369+
)}
342370
</>
343371
)}
344372
</dl>
@@ -903,6 +931,7 @@ export const MainnetTable = ({
903931
network,
904932
showExtraDetails,
905933
showOnlySVR,
934+
svrFilter = "all", // "all" | "aave" | "shared"
906935
showOnlyMVRFeeds,
907936
showOnlyDEXFeeds,
908937
dataFeedType,
@@ -918,6 +947,7 @@ export const MainnetTable = ({
918947
network: ChainNetwork
919948
showExtraDetails: boolean
920949
showOnlySVR: boolean
950+
svrFilter?: "all" | "aave" | "shared"
921951
showOnlyMVRFeeds: boolean
922952
showOnlyDEXFeeds: boolean
923953
dataFeedType: string
@@ -940,8 +970,17 @@ export const MainnetTable = ({
940970
const filteredMetadata = network.metadata
941971
.sort((a, b) => (a.name < b.name ? -1 : 1))
942972
.filter((metadata) => {
943-
if (showOnlySVR && !metadata.secondaryProxyAddress) {
944-
return false
973+
// Handle SVR filtering with granular options
974+
if (showOnlySVR) {
975+
if (svrFilter === "aave" && !isAaveSVR(metadata)) {
976+
return false
977+
}
978+
if (svrFilter === "shared" && !isSharedSVR(metadata)) {
979+
return false
980+
}
981+
if (svrFilter === "all" && !metadata.secondaryProxyAddress) {
982+
return false
983+
}
945984
}
946985

947986
if (isDeprecating) return !!metadata.docs.shutdownDate
@@ -1095,7 +1134,7 @@ export const TestnetTable = ({
10951134
lastAddr = 1000,
10961135
addrPerPage = 8,
10971136
currentPage = 1,
1098-
paginate = (_page: number) => {
1137+
paginate = () => {
10991138
/* Default no-op function */
11001139
},
11011140
searchValue = "",

0 commit comments

Comments
 (0)