diff --git a/src/content/data-streams/reference/streams-direct/streams-direct-interface-api.mdx b/src/content/data-streams/reference/streams-direct/streams-direct-interface-api.mdx index 0ae4d9f9e7e..4444fe09a02 100644 --- a/src/content/data-streams/reference/streams-direct/streams-direct-interface-api.mdx +++ b/src/content/data-streams/reference/streams-direct/streams-direct-interface-api.mdx @@ -10,9 +10,9 @@ import DataStreams from "@features/data-streams/common/DataStreams.astro" ## Domains -| Description | Testnet URL | Mainnet URL | -| --------------------------------------- | ------------------------------------------ | --------------------------------- | -| REST endpoint to query specific reports | https://api.testnet-dataengine.chain.link/ | https://api.dataengine.chain.link | +| Description | Testnet URL | Mainnet URL | +| --------------------------------------- | ----------------------------------------- | --------------------------------- | +| REST endpoint to query specific reports | https://api.testnet-dataengine.chain.link | https://api.dataengine.chain.link | ## Authentication diff --git a/src/features/feeds/components/FeedList.tsx b/src/features/feeds/components/FeedList.tsx index 5adc5fbd11c..424aa6d8cd7 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" @@ -103,6 +103,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 7ddb3cd9ed6..a9166422e28 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: ( @@ -294,6 +289,90 @@ const ProofOfReserveTr = ({ 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 = () => ( @@ -303,7 +382,7 @@ const StreamsTHead = () => ( ) -const StreamsTr = ({ network, proxy, showExtraDetails }) => ( +const StreamsTr = ({ proxy, showExtraDetails, isMainnet }) => (
@@ -330,24 +409,6 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( copy to clipboard
-
- Verifier proxy address: - - {verifierProxies.get(proxy.contractAddress)} - - -
{proxy.docs.productType ? ( @@ -400,14 +461,12 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => ( ) : ( "" )} - {proxy.name ? ( + {isMainnet && proxy.docs.clicProductName ? (
Full name:
-
- {proxy.docs.clicProductName} -
+
{proxy.docs.clicProductName}
) : ( "" @@ -504,7 +563,7 @@ export const MainnetTable = ({ {slicedFilteredMetadata.map((proxy) => ( <> - {isStreams && } + {isStreams && } {isPor && } {isDefault && } @@ -565,7 +624,7 @@ export const TestnetTable = ({ {filteredMetadata.map((proxy) => ( <> - {isStreams && } + {isStreams && } {isPor && } {isDefault && } {isRates && }