docs(core): add upgrade callout to legacy contract-addresses pages#3754
docs(core): add upgrade callout to legacy contract-addresses pages#3754aditya520 wants to merge 4 commits into
Conversation
Build a reusable UpgradeCallout MDX component that renders a Warn-level
Pyth Core upgrade notice on each legacy contract-addresses page, and
register it globally via mdx-components so author MDX only needs
<UpgradeCallout chain="..." />.
The component picks one of four variants based on the chain prop:
- index (the top-level overview page)
- supported-simple (Sui, Solana): full-chain upgrade, point to upgrade
guide and upgraded {chain} addresses
- supported-partial (EVM): only some EVM chains are in the upgrade;
contact team if chain is not listed
- not-in-upgrade (Aptos, CosmWasm, Fuel, IOTA, Movement, NEAR, Starknet,
TON): explicit "{Chain} is not part of the upgrade"; learn more or
contact team
Applied to 12 contract-addresses MDX pages. Pythnet skipped because
Pythnet itself is unchanged by the consumer-side upgrade.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
5 Skipped Deployments
|
🤖 llms.txt Content ReviewAnalyzed documentation changes — no updates to curated content required. Products reviewed:
Files analyzed |
"For the full path" was ambiguous; "path" can read as a URL or route. "For how to upgrade" makes the link's intent explicit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
For the 8 chains being dropped at the July 31, 2026 upgrade (Aptos,
CosmWasm, Fuel, IOTA, NEAR, Stacks, Starknet, TON), add an UpgradeCallout
at the top of each /use-real-time-data/pull-integration page warning
readers that Pyth Core will be dropped on that chain and pointing them
to contact the team for support.
Also harden the V3 (dropped-chain) variant wording across both
contract-addresses and integration surfaces:
- before: "{Chain} is not part of the upgrade. See the upgrade guide
to learn more, or contact the team for support on this chain."
- after: "Pyth Core on {Chain} will be dropped at the upgrade. Contact
the team if you need support."
The upgrade-guide link is dropped from V3 because the guide describes
chains in the upgrade and isn't useful for these dropped chains; the
only action available is to contact the team for support.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| type Chain = | ||
| | "index" | ||
| | "evm" | ||
| | "sui" | ||
| | "solana" | ||
| | "aptos" | ||
| | "cosmwasm" | ||
| | "fuel" | ||
| | "iota" | ||
| | "movement" | ||
| | "near" | ||
| | "starknet" | ||
| | "ton"; | ||
|
|
||
| const CHAIN_LABELS: Record<Exclude<Chain, "index">, string> = { | ||
| evm: "EVM", | ||
| sui: "Sui", | ||
| solana: "Solana", | ||
| aptos: "Aptos", | ||
| cosmwasm: "CosmWasm", | ||
| fuel: "Fuel", | ||
| iota: "IOTA", | ||
| movement: "Movement", | ||
| near: "NEAR", | ||
| starknet: "Starknet", | ||
| ton: "TON", | ||
| }; |
There was a problem hiding this comment.
🔴 "stacks" is not in the Chain type or CHAIN_LABELS, causing missing chain name in rendered callout
stacks.mdx:13 uses <UpgradeCallout chain="stacks" />, but "stacks" is not included in the Chain type union (UpgradeCallout.tsx:4-16) or the CHAIN_LABELS map (UpgradeCallout.tsx:18-30). Since MDX does not enforce TypeScript prop types at runtime, this won't be caught by the type checker. At runtime, CHAIN_LABELS["stacks"] evaluates to undefined, the chain doesn't match SUPPORTED_SIMPLE or SUPPORTED_PARTIAL, so it falls through to the default branch at UpgradeCallout.tsx:81-87 which renders "Pyth Core on {label}" — but label is undefined, so the rendered text will be "Pyth Core on will be dropped at the upgrade." with the chain name missing.
Prompt for agents
The Chain type union (UpgradeCallout.tsx:4-16) and CHAIN_LABELS record (UpgradeCallout.tsx:18-30) are both missing "stacks", but stacks.mdx uses <UpgradeCallout chain="stacks" />. Either add "stacks" to the Chain type and CHAIN_LABELS (with a label like "Stacks"), or remove the UpgradeCallout usage from stacks.mdx. If adding it, also decide whether stacks should be in SUPPORTED_SIMPLE, SUPPORTED_PARTIAL, or the default (unsupported/dropped) set.
Was this helpful? React with 👍 or 👎 to provide feedback.
| return ( | ||
| <Callout type="warn"> | ||
| <strong>Pyth Core upgrades on July 31, 2026.</strong> Pyth Core on {label}{" "} | ||
| will be dropped at the upgrade. <a href={contactMail}>Contact the team</a>{" "} | ||
| if you need support. | ||
| </Callout> | ||
| ); |
There was a problem hiding this comment.
🚩 Default fallback message tells users their chain "will be dropped" — potentially alarming for chains not yet categorized
The default branch at UpgradeCallout.tsx:81-87 renders a message saying "Pyth Core on {label} will be dropped at the upgrade." This is the fallback for any chain not in SUPPORTED_SIMPLE (sui, solana) or SUPPORTED_PARTIAL (evm). That means aptos, cosmwasm, fuel, iota, movement, near, starknet, and ton all get the "will be dropped" message. This may be intentional, but it's worth verifying that this is the correct messaging for all of these chains — especially since some (like Aptos) have active mainnet deployments. If the intent is different for some chains, they may need additional sets or branches.
Was this helpful? React with 👍 or 👎 to provide feedback.
Update Hermes code samples on supported-chain integration guides and cross-chain tutorial/best-practices pages to default to the upgraded endpoint and include authentication, while still showing the current endpoint as a Tab for readers who need to ship before cutover. Per-file changes: - pull-integration/sui.mdx: add UpgradeCallout, add info Callout about the Move.toml `rev` change to sui-pro-compatible-contract-mainnet after July 31, 2026, drop hermes-beta from SuiPriceServiceConnection and CLI example, point contract-address reference to /upgrade/contracts#sui - pull-integration/solana.mdx: add UpgradeCallout, wrap first HermesClient instantiation in Tabs (Upgraded / Current endpoint), both include accessToken - fetch-price-updates.mdx: add UpgradeCallout (index variant), wrap the first REST curl in Tabs, default streaming + SDK samples to the upgraded endpoint + auth, update Hermes Swagger link - best-practices.mdx: add UpgradeCallout (index variant), update Hermes Swagger links (both occurrences) to pyth.dourolabs.app/hermes/docs - create-your-first-pyth-app/evm/part-2.mdx: add UpgradeCallout (EVM variant), wrap curl in Tabs, switch HermesClient to upgraded endpoint + accessToken Per user direction: Tabs are used only at the first Hermes instantiation in each file; subsequent references use the upgraded endpoint directly. hermes-beta is dropped entirely. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| <UpgradeCallout chain="near" /> | ||
|
|
There was a problem hiding this comment.
🚩 NEAR integration guide still references old hermes endpoints without upgrade tabs
The NEAR integration guide (near.mdx) adds <UpgradeCallout chain="near" /> at the top but still contains hardcoded references to hermes.pyth.network and hermes-beta.pyth.network in the code examples at apps/developer-hub/content/docs/price-feeds/core/use-real-time-data/pull-integration/near.mdx:83-84. Unlike other integration guides (EVM, Solana, Sui) which were updated to show tabbed "Upgraded endpoint" / "Current endpoint" examples, the NEAR guide's code samples still point only to the old endpoints. This is inconsistent with the migration pattern applied elsewhere in this PR.
Was this helpful? React with 👍 or 👎 to provide feedback.
| <UpgradeCallout chain="ton" /> | ||
|
|
There was a problem hiding this comment.
🚩 TON integration guide code example still uses old hermes endpoint without upgrade tabs
Similar to the NEAR guide, the TON integration guide at ton.mdx adds the UpgradeCallout but the TypeScript code example at line 86 still references https://hermes.pyth.network without the tabbed upgrade pattern used in the EVM, Solana, and Sui guides. This creates an inconsistent developer experience where some guides show both endpoints and others don't.
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
<UpgradeCallout chain="..." />MDX component (lives atapps/developer-hub/src/components/MigrationFlow/UpgradeCallout.tsx) that surfaces a Warn-level Pyth Core upgrade notice on each legacycontract-addresses/*page.mdx-components.tsx— authors just write<UpgradeCallout chain="evm" />, no per-file import./price-feeds/core/contract-addresses/*.mdxpages (Pythnet skipped — Pythnet itself isn't part of the consumer-side upgrade).index— overview page, generic copysui,solana) — chain is fully in the upgradeevm) — chain is in scope but only some EVM chains are upgraded; mentions "contact team if your chain isn't listed"aptos,cosmwasm,fuel,iota,movement,near,starknet,ton) — explicit "{Chain} is not part of the upgrade", contact team for supportTest plan
/price-feeds/core/contract-addresses→ index variant renders/price-feeds/core/contract-addresses/evm→ V2 (partial-coverage) variant + Contact-the-team link/price-feeds/core/contract-addresses/sui→ V1 (auto-upgrade) variant + correct anchor/price-feeds/core/contract-addresses/solana→ V1 variant/price-feeds/core/contract-addresses/aptos→ V3 (not-in-upgrade) variant🤖 Generated with Claude Code