diff --git a/apps/developer-hub/content/docs/price-feeds/core/push-feeds/solana.mdx b/apps/developer-hub/content/docs/price-feeds/core/push-feeds/solana.mdx index 12cb5be1ad..a771f5ec8b 100644 --- a/apps/developer-hub/content/docs/price-feeds/core/push-feeds/solana.mdx +++ b/apps/developer-hub/content/docs/price-feeds/core/push-feeds/solana.mdx @@ -18,6 +18,7 @@ import solanaMainnet from "./data/svm/solana-mainnet.json"; -Note: The addresses represent the price feed account for shard 0 of the relevant price feed id. +Note: The addresses represent the price feed account for shard 0 of the relevant price feed id. The "Upgraded Account Address" is derived from the upcoming `PRO_COMPATIBLE_PUSH_ORACLE_PROGRAM_ID` (`pyt2F414BA6dPttK6RddPZUdHfapoBN24GL5wbrPCou`). diff --git a/apps/developer-hub/src/components/SponsoredFeedsTable/index.tsx b/apps/developer-hub/src/components/SponsoredFeedsTable/index.tsx index 9f896544e3..fbc915094f 100644 --- a/apps/developer-hub/src/components/SponsoredFeedsTable/index.tsx +++ b/apps/developer-hub/src/components/SponsoredFeedsTable/index.tsx @@ -1,5 +1,9 @@ import { CopyButton } from "@pythnetwork/component-library/CopyButton"; import { Table } from "@pythnetwork/component-library/Table"; +import { + getPriceFeedAccountForProgram, + PRO_COMPATIBLE_PUSH_ORACLE_PROGRAM_ID, +} from "@pythnetwork/pyth-solana-receiver"; import clsx from "clsx"; import type { ReactNode } from "react"; import { useMemo } from "react"; @@ -18,6 +22,7 @@ type SponsoredFeed = { type SponsoredFeedsTableProps = { feeds: SponsoredFeed[]; networkName: string; + showUpgradedAccountAddress?: boolean; }; type UpdateParamsProps = { @@ -82,6 +87,7 @@ const UpdateParams = ({ feed, isDefault }: UpdateParamsProps) => { export const SponsoredFeedsTable = ({ feeds, networkName, + showUpgradedAccountAddress = false, }: SponsoredFeedsTableProps) => { const paramCounts: Record = {}; for (const feed of feeds) { @@ -116,6 +122,15 @@ export const SponsoredFeedsTable = ({ }, ] : []), + ...(showUpgradedAccountAddress + ? [ + { + id: "upgradedAccountAddress", + name: "Upgraded Account Address", + alignment: "left" as const, + }, + ] + : []), { id: "priceFeedId", name: "Price Feed Id", @@ -127,7 +142,7 @@ export const SponsoredFeedsTable = ({ alignment: "left" as const, }, ], - [hasAccountAddress], + [hasAccountAddress, showUpgradedAccountAddress], ); const rows = useMemo( @@ -141,6 +156,7 @@ export const SponsoredFeedsTable = ({ priceFeedId: ReactNode; updateParameters: ReactNode; accountAddress: ReactNode | undefined; + upgradedAccountAddress: ReactNode | undefined; } = { name: {feed.alias}, priceFeedId: ( @@ -148,6 +164,7 @@ export const SponsoredFeedsTable = ({ ), updateParameters: , accountAddress: undefined, + upgradedAccountAddress: undefined, }; if (hasAccountAddress) { @@ -158,12 +175,25 @@ export const SponsoredFeedsTable = ({ ) : undefined; } + if (showUpgradedAccountAddress) { + const upgradedAddress = getPriceFeedAccountForProgram( + 0, + feed.id, + PRO_COMPATIBLE_PUSH_ORACLE_PROGRAM_ID, + ).toBase58(); + rowData.upgradedAccountAddress = ( + + {truncateHex(upgradedAddress)} + + ); + } + return { id: feed.id, data: rowData, }; }), - [feeds, defaultParams, hasAccountAddress], + [feeds, defaultParams, hasAccountAddress, showUpgradedAccountAddress], ); if (feeds.length === 0) {