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) {