Skip to content
Open
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
4 changes: 2 additions & 2 deletions components/LazerPriceIdTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ const LoadedLazerPriceIdTable = ({
<div>
<input
type="text"
placeholder="Search by symbol, name, description, or pyth lazer id..."
placeholder="Search by symbol, name, description, or pyth pro id..."
value={search}
onChange={updateSearch}
className="w-full p-2 mb-4 border border-gray-300 rounded-md"
Expand All @@ -96,7 +96,7 @@ const LoadedLazerPriceIdTable = ({
<th>Description</th>
<th>Name</th>
<th>Symbol</th>
<th>Pyth Lazer Id</th>
<th>Pyth Pro Id</th>
<th>Exponent</th>
</tr>
</thead>
Expand Down
39 changes: 39 additions & 0 deletions components/ProductCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ interface ProductCardProps {
ctaText: string;
href: string;
className?: string;
quickActions?: Array<{
title: string;
href: string;
icon: React.ReactNode;
}>;
}

export function ProductCard({
Expand All @@ -26,6 +31,7 @@ export function ProductCard({
ctaText,
href,
className = "",
quickActions = [],
}: ProductCardProps) {
return (
<div
Expand Down Expand Up @@ -65,6 +71,39 @@ export function ProductCard({
))}
</div>

{/* Quick Actions */}
{quickActions.length > 0 && (
<div className="grid grid-cols-1 gap-2 mb-6">
{quickActions.map((action, index) => (
<Link
key={index}
href={action.href}
className="flex items-center gap-3 p-3 bg-gray-50 dark:bg-gray-700 rounded-lg border border-gray-200 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-600 transition-colors text-sm"
>
<div className="text-blue-600 dark:text-blue-400 text-sm flex-shrink-0">
{action.icon}
</div>
<span className="text-gray-700 dark:text-gray-300 font-medium">
{action.title}
</span>
<svg
className="w-3 h-3 ml-auto text-gray-400"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M9 5l7 7-7 7"
/>
</svg>
</Link>
))}
</div>
)}

{/* Call to action button - pushed to bottom */}
<div className="mt-auto">
<Link
Expand Down
25 changes: 25 additions & 0 deletions components/icons/ProductIcons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ import {
Clock,
ArrowsOutCardinal,
DiceSixIcon,
ListBullets,
Key,
Play,
BookOpen,
MoneyWavy,
} from "@phosphor-icons/react";

export function BarChartIcon() {
Expand Down Expand Up @@ -46,3 +51,23 @@ export function MultiChainIcon() {
export function DiceIcon() {
return <DiceSixIcon className="w-5 h-5" weight="regular" />;
}

export function ListIcon() {
return <ListBullets className="w-5 h-5" weight="regular" />;
}

export function KeyIcon() {
return <Key className="w-5 h-5" weight="regular" />;
}

export function PlayIcon() {
return <Play className="w-5 h-5" weight="regular" />;
}

export function BookIcon() {
return <BookOpen className="w-5 h-5" weight="regular" />;
}

export function MoneyWavyIcon() {
return <MoneyWavy className="w-5 h-5" weight="regular" />;
}
14 changes: 14 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,20 @@ const permanentRedirectArray = [
],
["/benchmarks/api-instances", "/price-feeds/api-reference/"],
["/benchmarks/rate-limits", "/price-feeds/rate-limits/"],

// Lazer (top-level) to Pyth Pro Redirects - MUST come before general price-feeds redirects
["/lazer", "/price-feeds/pro"],
["/lazer/:path*", "/price-feeds/pro/:path*"],

// Explicitly map legacy lazer paths under /price-feeds to Pro - MUST come before general price-feeds redirects
["/price-feeds/lazer", "/price-feeds/pro"],
["/price-feeds/lazer/:path*", "/price-feeds/pro/:path*"],

["/price-feeds/:path((?!core|pro).*?)", "/price-feeds/core/:path*"],

// // Price Feeds to Core Redirects - general catch-all (comes last)
// ["/price-feeds", "/price-feeds/core"],
// ["/price-feeds/:path*", "/price-feeds/core/:path*"],
];

/** @type {import('next').NextConfig} */
Expand Down
5 changes: 0 additions & 5 deletions pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@
"type": "page"
},

"lazer": {
"title": "Lazer",
"type": "page"
},

"express-relay": {
"title": "Express Relay",
"type": "page"
Expand Down
5 changes: 0 additions & 5 deletions pages/home/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@
"href": "/price-feeds"
},

"Lazer": {
"title": "Lazer →",
"href": "/lazer"
},

"Express Relay": {
"title": "Express Relay →",
"href": "/express-relay"
Expand Down
17 changes: 0 additions & 17 deletions pages/home/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,6 @@ Pyth Network is the leading oracle protocol that connects the owners of market d

{" "}

<ProductCard
badge="Lazer"
icon={<LightningIcon />}
title="Lazer"
description="High-performance, low-latency price feeds for institutional applications."
features={[
{ icon: <LightningIcon />, text: "Ultra-low latency" },
{ icon: <ShieldIcon />, text: "Institutional grade" },
{ icon: <BarChartIcon />, text: "High-frequency data" },
]}
ctaText="Learn About Lazer"
href="../lazer"
/>

{" "}

<ProductCard
badge="MEV Protection"
icon={<GlobeIcon />}
Expand Down Expand Up @@ -83,7 +67,6 @@ Pyth Network is the leading oracle protocol that connects the owners of market d
Get started with Pyth Network by exploring our comprehensive documentation:

- **[Price Feeds Getting Started](../price-feeds/getting-started)** - Integrate real-time price data
- **[Lazer Documentation](../lazer)** - High-performance price feeds
- **[Express Relay Integration](../express-relay)** - Better orderflow mechanism to eliminate MEV
- **[Entropy Implementation](../entropy)** - Secure randomness generation

Expand Down
5 changes: 0 additions & 5 deletions pages/lazer/how-lazer-works.mdx

This file was deleted.

20 changes: 0 additions & 20 deletions pages/lazer/index.mdx

This file was deleted.

11 changes: 0 additions & 11 deletions pages/lazer/integrate-as-consumer.mdx

This file was deleted.

3 changes: 0 additions & 3 deletions pages/lazer/integrate-as-publisher.mdx

This file was deleted.

5 changes: 0 additions & 5 deletions pages/lazer/price-feed-ids.mdx

This file was deleted.

67 changes: 10 additions & 57 deletions pages/price-feeds/_meta.json
Original file line number Diff line number Diff line change
@@ -1,64 +1,17 @@
{
"documentation-home": {
"price": {
"title": "← Documentation Home",
"href": "/home"
},

"-- Price Feeds": {
"title": "Price Feeds",
"type": "separator"
"index": {
"title": "Introduction"
},
"index": "Introduction",
"getting-started": "Getting Started",

"-- Tutorials": {
"title": "Tutorials",
"type": "separator"
"pro": {
"title": "Pyth Pro →",
"href": "/price-feeds/pro"
},

"create-your-first-pyth-app": "Create Your First Pyth App",

"-- How-to Guides": {
"title": "How-To Guides",
"type": "separator"
},

"use-real-time-data": "Use Real-Time Price Data",
"use-historic-price-data": "Use Historic Price Data",
"fetch-price-updates": "Fetch Price Updates",
"schedule-price-updates": "Schedule Price Updates",
"create-tradingview-charts": "Create TradingView Charts",
"derive-cross-rate": "Derive Cross Rate",
"migrate-an-app-to-pyth": "Migrate an App to Pyth",
"use-pyth-for-morpho": "Use Pyth for Morpho Markets",
"publish-data": "Publish Data",
"troubleshoot": "Troubleshoot Errors",

"-- Reference Material": {
"title": "Reference Material",
"type": "separator"
},

"api-reference": "API Reference",
"price-feeds": "Price Feeds",
"current-fees": "Current Fees",
"sponsored-feeds": "Sponsored Feeds",
"market-hours": "Market Hours",
"best-practices": "Best Practices",
"error-codes": "Error Codes",
"api-instances-and-providers": "API Instances and Providers",
"contract-addresses": "Contract Addresses",
"pythnet-reference": "Pythnet Reference",

"examples": {
"title": "Example Applications ↗",
"href": "https://github.com/pyth-network/pyth-examples/tree/main/price_feeds"
},
"-- Understand Pyth": {
"title": "Understanding Pyth",
"type": "separator"
},

"pull-updates": "What is a Pull Oracle?",
"how-pyth-works": "How Pyth Works"
"core": {
"title": "Pyth Core →",
"href": "/price-feeds/core"
}
}
55 changes: 55 additions & 0 deletions pages/price-feeds/core/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"index": "Introduction",
"getting-started": "Getting Started",

"-- Tutorials": {
"title": "Tutorials",
"type": "separator"
},

"create-your-first-pyth-app": "Create Your First Pyth App",

"-- How-to Guides": {
"title": "How-To Guides",
"type": "separator"
},

"use-real-time-data": "Use Real-Time Price Data",
"use-historic-price-data": "Use Historic Price Data",
"fetch-price-updates": "Fetch Price Updates",
"schedule-price-updates": "Schedule Price Updates",
"create-tradingview-charts": "Create TradingView Charts",
"derive-cross-rate": "Derive Cross Rate",
"migrate-an-app-to-pyth": "Migrate an App to Pyth",
"use-pyth-for-morpho": "Use Pyth for Morpho Markets",
"publish-data": "Publish Data",
"troubleshoot": "Troubleshoot Errors",

"-- Reference Material": {
"title": "Reference Material",
"type": "separator"
},

"api-reference": "API Reference",
"price-feeds": "Price Feeds",
"current-fees": "Current Fees",
"sponsored-feeds": "Sponsored Feeds",
"market-hours": "Market Hours",
"best-practices": "Best Practices",
"error-codes": "Error Codes",
"api-instances-and-providers": "API Instances and Providers",
"contract-addresses": "Contract Addresses",
"pythnet-reference": "Pythnet Reference",

"examples": {
"title": "Example Applications ↗",
"href": "https://github.com/pyth-network/pyth-examples/tree/main/price_feeds"
},
"-- Understand Pyth": {
"title": "Understanding Pyth",
"type": "separator"
},

"pull-updates": "What is a Pull Oracle?",
"how-pyth-works": "How Pyth Works"
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import CopyAddress from "../../../components/CopyAddress";
import CopyAddress from "../../../../components/CopyAddress";

# Price Feed Contract Addresses on Aptos

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import CopyAddress from "../../../components/CopyAddress";
import CopyAddress from "../../../../components/CopyAddress";

# Price Feed Contract Addresses on EVM Networks

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import CopyAddress from "../../../components/CopyAddress";
import CopyAddress from "../../../../components/CopyAddress";

# Price Feed Contract Addresses on Fuel

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import CopyAddress from "../../../components/CopyAddress";
import CopyAddress from "../../../../components/CopyAddress";

# Price Feed Contract Addresses on Movement

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import CopyAddress from "../../../components/CopyAddress";
import CopyAddress from "../../../../components/CopyAddress";

# Program Addresses on Solana and other SVM chains

Expand Down
Loading
Loading