Skip to content

Commit 98ea201

Browse files
committed
streams deprecaiton update
1 parent 666e419 commit 98ea201

File tree

5 files changed

+169
-39
lines changed

5 files changed

+169
-39
lines changed

src/config/sidebar.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,10 @@ export const SIDEBAR: Partial<Record<Sections, SectionEntry[]>> = {
895895
title: "Market Hours",
896896
url: "data-streams/market-hours",
897897
},
898+
{
899+
title: "Deprecating Streams",
900+
url: "data-streams/deprecating-streams",
901+
},
898902
],
899903
},
900904
{
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: "Deprecation of Chainlink Data Streams"
3+
section: dataStreams
4+
metadata:
5+
description: "Deprecation of Chainlink Data Streams"
6+
date: Last Modified
7+
---
8+
9+
import StreamsPage from "@features/streams/components/StreamsPage.astro"
10+
11+
<StreamsPage ecosystem="deprecating" />

src/features/feeds/components/FeedList.tsx

Lines changed: 68 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** @jsxImportSource preact */
22
import { useEffect, useState, useRef, useMemo } from "preact/hooks"
3-
import { MainnetTable, TestnetTable, StreamsNetworkAddressesTable } from "./Tables.tsx"
3+
import { MainnetTable, TestnetTable, StreamsNetworkAddressesTable, StreamsTHead, StreamsTr } from "./Tables.tsx"
44
import feedList from "./FeedList.module.css"
55
import tableStyles from "./Tables.module.css"
66
import { clsx } from "~/lib/clsx/clsx.ts"
@@ -744,6 +744,55 @@ export const FeedList = ({
744744
dataFeedType === "streamsExRate" ||
745745
dataFeedType === "streamsBacked"
746746
) {
747+
// For deprecating streams, show a consolidated table across all networks
748+
if (isDeprecating) {
749+
const allDeprecatingStreams: any[] = []
750+
751+
// Check both chainMetadata and initialCache for deprecating streams
752+
const networksToCheck = chainMetadata.processedData?.networks ||
753+
(initialCache && initialCache.deprecated ? (initialCache.deprecated as any).networks : [])
754+
755+
networksToCheck.forEach((network: any) => {
756+
network.metadata?.forEach((item: any) => {
757+
// Only include items that are actual streams (have verifier contract type and feedId)
758+
// and have a shutdown date
759+
if (item.contractType === "verifier" && item.feedId && item.docs?.shutdownDate) {
760+
allDeprecatingStreams.push({
761+
...item,
762+
networkName: network.name,
763+
})
764+
}
765+
})
766+
})
767+
768+
return (
769+
<>
770+
{chainMetadata.loading && !chainMetadata.processedData && !initialCache && <p>Loading...</p>}
771+
{chainMetadata.error && <p>There was an error loading the streams...</p>}
772+
773+
{allDeprecatingStreams.length > 0 ? (
774+
<SectionWrapper title="Deprecating Streams" depth={2}>
775+
<div className={feedList.tableWrapper}>
776+
<table className={clsx(tableStyles.table)}>
777+
<StreamsTHead />
778+
<tbody>
779+
{allDeprecatingStreams.map((stream, index) => (
780+
<StreamsTr key={`${stream.feedId}-${index}`} metadata={stream} isMainnet={true} />
781+
))}
782+
</tbody>
783+
</table>
784+
</div>
785+
</SectionWrapper>
786+
) : (
787+
!chainMetadata.loading && (
788+
<p>No deprecating streams found at this time.</p>
789+
)
790+
)}
791+
</>
792+
)
793+
}
794+
795+
// Regular streams view (non-deprecating)
747796
const mainnetFeeds: ChainNetwork[] = []
748797
const testnetFeeds: ChainNetwork[] = []
749798

@@ -759,20 +808,24 @@ export const FeedList = ({
759808

760809
return (
761810
<>
762-
{allowNetworkTableExpansion ? (
763-
<div style={{ marginBottom: "var(--space-2x)" }}>
764-
<StreamsNetworkAddressesTable
765-
allowExpansion={allowNetworkTableExpansion}
766-
defaultExpanded={defaultNetworkTableExpanded}
767-
/>
768-
</div>
769-
) : (
770-
<SectionWrapper title="Streams Verifier Network Addresses" depth={2}>
771-
<StreamsNetworkAddressesTable
772-
allowExpansion={allowNetworkTableExpansion}
773-
defaultExpanded={defaultNetworkTableExpanded}
774-
/>
775-
</SectionWrapper>
811+
{!isDeprecating && (
812+
<>
813+
{allowNetworkTableExpansion ? (
814+
<div style={{ marginBottom: "var(--space-2x)" }}>
815+
<StreamsNetworkAddressesTable
816+
allowExpansion={allowNetworkTableExpansion}
817+
defaultExpanded={defaultNetworkTableExpanded}
818+
/>
819+
</div>
820+
) : (
821+
<SectionWrapper title="Streams Verifier Network Addresses" depth={2}>
822+
<StreamsNetworkAddressesTable
823+
allowExpansion={allowNetworkTableExpansion}
824+
defaultExpanded={defaultNetworkTableExpanded}
825+
/>
826+
</SectionWrapper>
827+
)}
828+
</>
776829
)}
777830

778831
<SectionWrapper

src/features/feeds/components/Tables.tsx

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ export const StreamsNetworkAddressesTable = ({
842842
)
843843
}
844844

845-
const StreamsTHead = () => (
845+
export const StreamsTHead = () => (
846846
<thead>
847847
<tr>
848848
<th className={tableStyles.heading}>Stream</th>
@@ -862,29 +862,35 @@ const streamsCategoryMap = {
862862
},
863863
}
864864

865-
const StreamsTr = ({ metadata, isMainnet }) => (
866-
<tr>
867-
<td className={tableStyles.pairCol}>
868-
<div className={tableStyles.assetPair}>
869-
{metadata.pair[0]}/{metadata.pair[1]}
870-
{metadata.feedType === "Crypto-DEX" && (
871-
<a
872-
href="/data-streams/concepts/dex-state-price-streams"
873-
target="_blank"
874-
className={tableStyles.feedVariantBadge}
875-
>
876-
DEX State Price
877-
</a>
878-
)}
879-
</div>
880-
{metadata.docs.shutdownDate && (
881-
<div className={clsx(feedList.shutDate)}>
882-
<hr />
883-
Deprecating:
884-
<br />
885-
{metadata.docs.shutdownDate}
865+
export const StreamsTr = ({ metadata, isMainnet }) => {
866+
// Determine if stream is deprecating
867+
const isDeprecating = !!metadata.docs?.shutdownDate
868+
869+
return (
870+
<tr>
871+
<td className={tableStyles.pairCol}>
872+
<div className={tableStyles.assetPair}>
873+
{metadata.pair[0]}/{metadata.pair[1]}
874+
{metadata.feedType === "Crypto-DEX" && (
875+
<a
876+
href="/data-streams/concepts/dex-state-price-streams"
877+
target="_blank"
878+
className={tableStyles.feedVariantBadge}
879+
>
880+
DEX State Price
881+
</a>
882+
)}
886883
</div>
887-
)}
884+
{metadata.docs.shutdownDate && (
885+
<div className={clsx(feedList.shutDate)}>
886+
<hr />
887+
<a href="/data-streams/deprecating-streams" style={{ color: "inherit", textDecoration: "underline dotted" }}>
888+
Deprecating:
889+
</a>
890+
<br />
891+
{metadata.docs.shutdownDate}
892+
</div>
893+
)}
888894
</td>
889895
<td style="width:80%;">
890896
<div className={tableStyles.assetAddress}>
@@ -1059,7 +1065,8 @@ const StreamsTr = ({ metadata, isMainnet }) => (
10591065
</div>
10601066
</td>
10611067
</tr>
1062-
)
1068+
)
1069+
}
10631070

10641071
export const MainnetTable = ({
10651072
network,
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
import { FeedList, DataFeedType } from "@features/feeds/components/FeedList"
3+
import { Aside } from "@components"
4+
export type Props = {
5+
initialNetwork?: string
6+
ecosystem?: string
7+
dataFeedType?: DataFeedType
8+
allowNetworkTableExpansion?: boolean
9+
defaultNetworkTableExpanded?: boolean
10+
}
11+
import { getServerSideChainMetadata } from "~/features/data/api/backend"
12+
import { CHAINS, ALL_CHAINS } from "~/features/data/chains"
13+
14+
const { initialNetwork, ecosystem, dataFeedType, allowNetworkTableExpansion, defaultNetworkTableExpanded } = Astro.props
15+
16+
// Skip cache for deprecating page to always fetch fresh data
17+
const isDeprecating = ecosystem === "deprecating"
18+
const initialCache = await getServerSideChainMetadata([...CHAINS, ...ALL_CHAINS], isDeprecating)
19+
---
20+
21+
{
22+
ecosystem === "deprecating" ? (
23+
<>
24+
<p>Placeholder text for deprecating streams page.</p>
25+
</>
26+
) : (
27+
<>
28+
<p>
29+
To learn how to use Data Streams, see the{" "}
30+
<a href="/data-streams/tutorials/go-sdk-fetch">Fetch and decode reports</a> tutorial.
31+
</p>
32+
<p>
33+
For LINK token and Faucet details, see the{" "}
34+
<a href="/resources/link-token-contracts?parent=dataFeeds">LINK Token Contracts</a> page.
35+
</p>
36+
37+
<Aside type="note" title="Talk to an expert">
38+
<p>
39+
<a href="https://chainlinkcommunity.typeform.com/datastreams?#ref_id=docs">Contact us</a> to talk to an expert
40+
about integrating Chainlink Data Streams with your applications.
41+
</p>
42+
</Aside>
43+
</>
44+
)
45+
}
46+
47+
<FeedList
48+
client:idle
49+
initialNetwork={initialNetwork ?? "arbitrum"}
50+
dataFeedType={dataFeedType ?? "streamsCrypto"}
51+
ecosystem={ecosystem ?? ""}
52+
initialCache={initialCache}
53+
allowNetworkTableExpansion={allowNetworkTableExpansion}
54+
defaultNetworkTableExpanded={defaultNetworkTableExpanded}
55+
/>

0 commit comments

Comments
 (0)