Skip to content

Add Arbitrum mainnet for Data Streams #1710

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Jan 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/content/data-streams/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,14 @@ whatsnext: {
}
---

import { Aside, CodeSample } from "@components"
import { Aside } from "@components"
import DataStreams from "@features/data-streams/common/DataStreams.astro"

<Aside type="note" title="Mainnet Early Access">
Chainlink Data Streams is available on Arbitrum Sepolia and in Early Access on Arbitrum Mainnet.{" "}
<Aside type="note" title="Mainnet Access">
Chainlink Data Streams is available on Arbitrum Mainnet and Arbitrum Sepolia.
</Aside>

<Aside type="note" title="Talk to an expert">
<a href="https://chainlinkcommunity.typeform.com/datastreams?#ref_id=docs">Contact us</a> to talk to an expert about
integrating Chainlink Data Streams with your applications.
</Aside>
Expand Down
7 changes: 5 additions & 2 deletions src/content/data-streams/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ whatsnext:
import { Aside, ClickToZoom } from "@components"
import button from "@chainlink/design-system/button.module.css"

<Aside type="note" title="Mainnet Early Access">
Chainlink Data Streams is available on Arbitrum Sepolia and in Early Access on Arbitrum Mainnet.{" "}
<Aside type="note" title="Mainnet Access">
Chainlink Data Streams is available on Arbitrum Mainnet and Arbitrum Sepolia.
</Aside>

<Aside type="note" title="Talk to an expert">
<a href="https://chainlinkcommunity.typeform.com/datastreams?#ref_id=docs">Contact us</a> to talk to an expert about
integrating Chainlink Data Streams with your applications.
</Aside>
Expand Down
11 changes: 9 additions & 2 deletions src/content/data-streams/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,19 @@ whatsnext:

import { Aside } from "@components"

<Aside type="note" title="Mainnet Early Access">
Chainlink Data Streams is available on Arbitrum Sepolia and in Early Access on Arbitrum Mainnet.{" "}
<Aside type="note" title="Mainnet Access">
Chainlink Data Streams is available on Arbitrum Mainnet and Arbitrum Sepolia.
</Aside>

<Aside type="note" title="Talk to an expert">
<a href="https://chainlinkcommunity.typeform.com/datastreams?#ref_id=docs">Contact us</a> to talk to an expert about
integrating Chainlink Data Streams with your applications.
</Aside>

## 2024-25-01 - Arbitrum support

Chainlink Data Streams is publicly available on <a href="/data-streams/stream-ids?network=arbitrum&page=1">Arbitrum Mainnet</a> and <a href="/data-streams/stream-ids?network=arbitrum&page=1">Arbitrum Sepolia</a>.

## 2023-10-02 - Data Streams Early Access

This is the Early Access release for Data Streams on Arbitrum Mainnet and Arbitrum Goerli.
2 changes: 1 addition & 1 deletion src/features/data-streams/common/gettingStarted.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Deploy an upkeep contract that is enabled to retrieve data from Data Streams. Fo
Arbitrum Sepolia testnet and LINK token contract
</a>

1. In Remix, under the **Deploy & Run Transactions** tab, select _Injected Provider - MetaMask_ in the **Environment** list. Remix will use the MetaMask wallet to communicate with _Arbitrum Sepolia_.
1. On the **Deploy & Run Transactions** tab in Remix, select _Injected Provider - MetaMask_ in the **Environment** list. Remix will use the MetaMask wallet to communicate with _Arbitrum Sepolia_.

<ClickToZoom
src="/images/data-streams/getting-started/injected-provider.webp"
Expand Down
2 changes: 1 addition & 1 deletion src/features/data/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ export const CHAINS: Chain[] = [
networkType: "mainnet",
rddUrl: "https://reference-data-directory.vercel.app/feeds-ethereum-mainnet-arbitrum-1.json",
queryString: "arbitrum-mainnet",
tags: ["nftFloorPrice"],
tags: ["nftFloorPrice", "streams"],
},
{
name: "Arbitrum Sepolia",
Expand Down
26 changes: 14 additions & 12 deletions src/features/feeds/components/FeedList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export const FeedList = ({
window.history.replaceState({ path: newUrl }, "", newUrl)
const inputElement = document.getElementById("search") as HTMLInputElement
if (inputElement) {
inputElement.placeholder = "Search price feeds"
inputElement.placeholder = !isStreams ? "Search price feeds" : "Search data streams"
}
}
}, [chainMetadata.processedData, searchValue])
Expand Down Expand Up @@ -182,7 +182,7 @@ export const FeedList = ({
<div className={feedList.tableFilters}>
<details class={feedList.filterDropdown_details}>
<summary class="text-200" onClick={() => setShowCategoriesDropdown((prev) => !prev)}>
Data Feed Categories
{!isStreams ? "Data Feed Categories" : "Data Streams Categories"}
</summary>
<nav ref={wrapperRef} style={!showCategoriesDropdown ? { display: "none" } : {}}>
<ul>
Expand All @@ -206,22 +206,24 @@ export const FeedList = ({
<input
id="search"
class={feedList.filterDropdown_searchInput}
placeholder="Search price feeds"
placeholder={!isStreams ? "Search price feeds" : "Search data streams"}
onInput={(event) => {
setSearchValue((event.target as HTMLInputElement).value)
setCurrentPage("1")
}}
/>
</form>
<label class={feedList.detailsLabel}>
<input
type="checkbox"
style="width:15px;height:15px;display:inline;"
checked={showExtraDetails}
onChange={() => setShowExtraDetails((old) => !old)}
/>
Show more details
</label>
{!isStreams && (
<label class={feedList.detailsLabel}>
<input
type="checkbox"
style="width:15px;height:15px;display:inline;"
checked={showExtraDetails}
onChange={() => setShowExtraDetails((old) => !old)}
/>
Show more details
</label>
)}
</div>
<MainnetTable
selectedFeedCategories={
Expand Down
11 changes: 8 additions & 3 deletions src/features/feeds/components/Tables.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ 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<string, string>([
["0x534a7FF707Bc862cAB0Dda546F1B817Be5235b66", "0x478Aa2aC9F6D65F84e09D9185d126c3a17c2a93C"],
["0xA403a4a521be034B4A0D54019aF469A207094246", "0x2ff010DEbC1297f19579B4246cad07bd24F2488A"],
])

const feedItems = monitoredFeeds.mainnet
const feedCategories = {
verified: (
Expand Down Expand Up @@ -367,14 +372,14 @@ const StreamsTr = ({ network, proxy, showExtraDetails }) => (
<a
style="font-size: 0.75em;"
class={tableStyles.addressLink}
href={network.explorerUrl.replace("%s", "0x2ff010DEbC1297f19579B4246cad07bd24F2488A")}
href={network.explorerUrl.replace("%s", verifierProxies.get(proxy.contractAddress))}
>
0x2ff010DEbC1297f19579B4246cad07bd24F2488A
{verifierProxies.get(proxy.contractAddress)}
</a>
<button
class={clsx(tableStyles.copyBtn, "copy-iconbutton")}
style={{ height: "16px", width: "16px" }}
data-clipboard-text="0x2ff010DEbC1297f19579B4246cad07bd24F2488A"
data-clipboard-text={verifierProxies.get(proxy.contractAddress)}
>
<img src="/assets/icons/copyIcon.svg" alt="copy to clipboard" />
</button>
Expand Down