From ad4e35a3327acf5a841b76eec2e2dce548795152 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Wed, 15 May 2024 18:48:01 +0200 Subject: [PATCH 1/7] Update DS Feeds page --- src/features/feeds/components/FeedList.tsx | 76 ++++++++++++- src/features/feeds/components/Tables.tsx | 119 +++++++++++++++------ 2 files changed, 159 insertions(+), 36 deletions(-) diff --git a/src/features/feeds/components/FeedList.tsx b/src/features/feeds/components/FeedList.tsx index bdbc86793e5..356dba08f24 100644 --- a/src/features/feeds/components/FeedList.tsx +++ b/src/features/feeds/components/FeedList.tsx @@ -1,6 +1,6 @@ /** @jsxImportSource preact */ import { useEffect, useState, useRef } from "preact/hooks" -import { MainnetTable, TestnetTable } from "./Tables" +import { MainnetTable, TestnetTable, StreamsVerifierProxyTable } from "./Tables" import feedList from "./FeedList.module.css" import { clsx } from "~/lib" import { Chain, CHAINS, ALL_CHAINS, ChainNetwork } from "~/features/data/chains" @@ -104,6 +104,80 @@ export const FeedList = ({ const isDeprecating = ecosystem === "deprecating" let netCount = 0 + if (dataFeedType === "streams") { + const mainnetFeeds: ChainNetwork[] = [] + const testnetFeeds: ChainNetwork[] = [] + + chainMetadata.processedData?.networks.forEach((network) => { + if (network.name.includes("Arbitrum")) { + if (network.networkType === "mainnet") { + mainnetFeeds.push(network) + } else if (network.networkType === "testnet") { + testnetFeeds.push(network) + } + } + }) + + return ( + <> + + + + + +
+
+ { + setSearchValue((event.target as HTMLInputElement).value) + setCurrentPage("1") + }} + /> +
+
+ {mainnetFeeds.length ? ( + mainnetFeeds.map((network) => ( + + )) + ) : ( +

No Mainnet feeds available.

+ )} +
+ + + {testnetFeeds.length ? ( + testnetFeeds.map((network) => ( + + )) + ) : ( +

No Testnet feeds available.

+ )} +
+ + ) + } + return ( {!isDeprecating && ( diff --git a/src/features/feeds/components/Tables.tsx b/src/features/feeds/components/Tables.tsx index 2715f18c5fc..6fa750d9c0c 100644 --- a/src/features/feeds/components/Tables.tsx +++ b/src/features/feeds/components/Tables.tsx @@ -7,11 +7,6 @@ import button from "@chainlink/design-system/button.module.css" import { CheckHeartbeat } from "./pause-notice/CheckHeartbeat" import { monitoredFeeds, FeedDataItem } from "~/features/data" -const verifierProxies = new Map([ - ["0x534a7FF707Bc862cAB0Dda546F1B817Be5235b66", "0x478Aa2aC9F6D65F84e09D9185d126c3a17c2a93C"], - ["0xA403a4a521be034B4A0D54019aF469A207094246", "0x2ff010DEbC1297f19579B4246cad07bd24F2488A"], -]) - const feedItems = monitoredFeeds.mainnet const feedCategories = { low: ( @@ -325,6 +320,90 @@ const NftFloorTr = ({ network, proxy, showExtraDetails }) => ( ) +const StreamsNetworksData = [ + { + network: "Arbitrum", + logoUrl: "/assets/chains/arbitrum.svg", + networkStatus: "https://arbiscan.freshstatus.io/", + mainnet: { + label: "Arbitrum Mainnet", + verifierProxy: "0x478Aa2aC9F6D65F84e09D9185d126c3a17c2a93C", + explorerUrl: "https://arbiscan.io/address/%s", + }, + testnet: { + label: "Arbitrum Sepolia", + verifierProxy: "0x2ff010DEbC1297f19579B4246cad07bd24F2488A", + explorerUrl: "https://sepolia.arbiscan.io/address/%s", + }, + }, +] + +export const StreamsVerifierProxyTable = () => { + return ( + + + + + + + + + {StreamsNetworksData.map((network) => ( + + + + + ))} + +
NetworkVerifier proxy address
+ {`${network.network} +
{network.network}
+
+
+ {network.mainnet.label}: + + {network.mainnet.verifierProxy} + + +
+
+ {network.testnet.label}: + + {network.testnet.verifierProxy} + + +
+
+ + Track the status of this network at {network.networkStatus} + +
+
+ ) +} + const StreamsTHead = () => ( @@ -361,24 +440,6 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( copy to clipboard -
- Verifier proxy address: - - {verifierProxies.get(proxy.contractAddress)} - - -
{proxy.docs.productType ? ( @@ -431,18 +492,6 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( ) : ( "" )} - {proxy.name ? ( -
-
- Full name: -
-
- {proxy.docs.clicProductName} -
-
- ) : ( - "" - )} {proxy.decimals ? (
From 8b290b8443370f2fcca60f99814b125a454b3aaf Mon Sep 17 00:00:00 2001 From: Dwight Lyle Date: Thu, 20 Jun 2024 14:04:38 -0700 Subject: [PATCH 2/7] Add Avalanche for Data Streams --- src/features/data/chains.ts | 6 +++--- src/features/feeds/components/Tables.tsx | 15 +++++++++++++++ src/features/landing/data/index.ts | 5 ++++- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/features/data/chains.ts b/src/features/data/chains.ts index a07a1a5e5a5..d241d2789cd 100644 --- a/src/features/data/chains.ts +++ b/src/features/data/chains.ts @@ -133,7 +133,7 @@ export const CHAINS: Chain[] = [ title: "Avalanche Data Feeds", img: "/assets/chains/avalanche.svg", networkStatusUrl: "https://status.avax.network/", - tags: ["default", "proofOfReserve", "rates"], + tags: ["default", "proofOfReserve", "rates", "streams"], supportedFeatures: ["vrfSubscription", "vrfDirectFunding", "feeds"], networks: [ { @@ -142,7 +142,7 @@ export const CHAINS: Chain[] = [ networkType: "mainnet", rddUrl: "https://reference-data-directory.vercel.app/feeds-avalanche-mainnet.json", queryString: "avalanche-mainnet", - tags: ["proofOfReserve"], + tags: ["proofOfReserve", "streams"], }, { name: "Avalanche Testnet", @@ -150,7 +150,7 @@ export const CHAINS: Chain[] = [ networkType: "testnet", rddUrl: "https://reference-data-directory.vercel.app/feeds-avalanche-fuji-testnet.json", queryString: "avalanche-fuji", - tags: ["proofOfReserve", "rates"], + tags: ["proofOfReserve", "rates", "streams"], }, ], label: "Avalanche", diff --git a/src/features/feeds/components/Tables.tsx b/src/features/feeds/components/Tables.tsx index 4bb46f6e7f6..3faab4db1d0 100644 --- a/src/features/feeds/components/Tables.tsx +++ b/src/features/feeds/components/Tables.tsx @@ -287,6 +287,21 @@ const StreamsNetworksData = [ explorerUrl: "https://sepolia.arbiscan.io/address/%s", }, }, + { + network: "Avalanche", + logoUrl: "/assets/chains/avalanche.svg", + networkStatus: "https://status.avax.network/", + mainnet: { + label: "Avalanche Mainnet", + verifierProxy: "0x79BAa65505C6682F16F9b2C7F8afEBb1821BE3f6", + explorerUrl: "https://snowtrace.io/address/%s", + }, + testnet: { + label: "Avalanche Fuji Testnet", + verifierProxy: "0x2ff010DEbC1297f19579B4246cad07bd24F2488A", + explorerUrl: "https://testnet.snowtrace.io/address/%s", + }, + }, ] export const StreamsVerifierProxyTable = () => { diff --git a/src/features/landing/data/index.ts b/src/features/landing/data/index.ts index 3b6022e65b5..2fd7689506e 100644 --- a/src/features/landing/data/index.ts +++ b/src/features/landing/data/index.ts @@ -79,7 +79,10 @@ export const evmProducts = [ ["Available Schemas", "data-streams/reference/report-schema"], ["Interface Reference", "data-streams/reference/interfaces"], ], - chains: [{ id: "arbitrum", title: "Arbitrum" }], + chains: [ + { id: "arbitrum", title: "Arbitrum" }, + { id: "avalanche", title: "Avalanche" }, + ], }, { title: "Functions", From 9b2e75761caef13ac6a1412b37621e5006058bd1 Mon Sep 17 00:00:00 2001 From: Dwight Lyle Date: Thu, 20 Jun 2024 14:15:07 -0700 Subject: [PATCH 3/7] Correct Fuji Verifier Proxy address --- src/features/feeds/components/Tables.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/features/feeds/components/Tables.tsx b/src/features/feeds/components/Tables.tsx index 3faab4db1d0..7168eb2ab01 100644 --- a/src/features/feeds/components/Tables.tsx +++ b/src/features/feeds/components/Tables.tsx @@ -298,7 +298,7 @@ const StreamsNetworksData = [ }, testnet: { label: "Avalanche Fuji Testnet", - verifierProxy: "0x2ff010DEbC1297f19579B4246cad07bd24F2488A", + verifierProxy: "0x2bf612C65f5a4d388E687948bb2CF842FFb8aBB3", explorerUrl: "https://testnet.snowtrace.io/address/%s", }, }, From 4509fafde8866e5d62c0ce6a7b608026a80a749c Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:49:25 -0500 Subject: [PATCH 4/7] Add feeds full name back --- src/features/feeds/components/Tables.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/features/feeds/components/Tables.tsx b/src/features/feeds/components/Tables.tsx index 7168eb2ab01..6efb9535ca5 100644 --- a/src/features/feeds/components/Tables.tsx +++ b/src/features/feeds/components/Tables.tsx @@ -458,6 +458,16 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( ) : ( "" )} + {proxy.docs.clicProductName ? ( +
+
+ Full name: +
+
{proxy.docs.clicProductName}
+
+ ) : ( + "" + )} {proxy.decimals ? (
From 9e215ae27baf1e931a3e9798276392d0db294a44 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:51:39 -0500 Subject: [PATCH 5/7] Update Quick Links --- src/components/QuickLinks/data/productChainLinks.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/QuickLinks/data/productChainLinks.ts b/src/components/QuickLinks/data/productChainLinks.ts index 3caae8579a1..440a9c72a0b 100644 --- a/src/components/QuickLinks/data/productChainLinks.ts +++ b/src/components/QuickLinks/data/productChainLinks.ts @@ -62,7 +62,8 @@ export const productChainLinks: ProductChainLinks = { learnMorelink: "data-streams", logo: dataStreamsLogo, chains: { - arbitrum: "/data-streams/stream-ids?network=arbitrum", + arbitrum: "/data-streams/stream-ids", + avalanche: "/data-streams/stream-ids", }, }, Functions: { From e6ddee8bd5c1330d356183681ba84d706ef9a37f Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:23:08 -0500 Subject: [PATCH 6/7] Remove feeds full name for testnet --- src/features/feeds/components/Tables.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/features/feeds/components/Tables.tsx b/src/features/feeds/components/Tables.tsx index 6efb9535ca5..25e0638449c 100644 --- a/src/features/feeds/components/Tables.tsx +++ b/src/features/feeds/components/Tables.tsx @@ -379,7 +379,7 @@ const StreamsTHead = () => ( ) -const StreamsTr = ({ network, proxy, showExtraDetails }) => ( +const StreamsTr = ({ proxy, showExtraDetails, isMainnet }) => (
@@ -458,7 +458,7 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( ) : ( "" )} - {proxy.docs.clicProductName ? ( + {isMainnet && proxy.docs.clicProductName ? (
Full name: @@ -560,7 +560,7 @@ export const MainnetTable = ({ {slicedFilteredMetadata.map((proxy) => ( <> - {isStreams && } + {isStreams && } {isPor && } {isDefault && } @@ -621,7 +621,7 @@ export const TestnetTable = ({ {filteredMetadata.map((proxy) => ( <> - {isStreams && } + {isStreams && } {isPor && } {isDefault && } {isRates && } From 4bbd8b439079a068afc87c3b4b0ea0ffce74ddf0 Mon Sep 17 00:00:00 2001 From: Karim <98668332+khadni@users.noreply.github.com> Date: Thu, 27 Jun 2024 10:31:30 -0500 Subject: [PATCH 7/7] Release note --- src/content/data-streams/release-notes.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/content/data-streams/release-notes.mdx b/src/content/data-streams/release-notes.mdx index eeb8716dacb..f0d4a8e6c62 100644 --- a/src/content/data-streams/release-notes.mdx +++ b/src/content/data-streams/release-notes.mdx @@ -17,6 +17,10 @@ import { Aside } from "@components" integrating Chainlink Data Streams with your applications. +## 2024-06-27 - Avalanche + +Chainlink Data Streams is available in Early Access on Avalanche. + ## 2024-01-25 - Arbitrum Sepolia Chainlink Data Streams is available in Early Access on Arbitrum Sepolia.