Skip to content

Commit 1b43f81

Browse files
authored
Merge pull request #2220 from pyth-network/cprussin/add-ltp-to-known-publishers
feat(known-publishers): add LTP to known publisher list
2 parents 6b60679 + 6017046 commit 1b43f81

File tree

13 files changed

+88
-13
lines changed

13 files changed

+88
-13
lines changed

apps/insights/src/components/PriceFeed/publishers.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { lookup as lookupPublisher } from "@pythnetwork/known-publishers";
22
import { notFound } from "next/navigation";
3-
import { createElement } from "react";
43

54
import { PublishersCard } from "./publishers-card";
65
import { getRankings } from "../../services/clickhouse";
76
import { getData } from "../../services/pyth";
7+
import { PublisherIcon } from "../PublisherIcon";
88

99
type Props = {
1010
params: Promise<{
@@ -33,7 +33,7 @@ export const Publishers = async ({ params }: Props) => {
3333
stalledScore: ranking.stalled_score,
3434
...(knownPublisher && {
3535
name: knownPublisher.name,
36-
icon: createElement(knownPublisher.icon.color),
36+
icon: <PublisherIcon knownPublisher={knownPublisher} />,
3737
}),
3838
};
3939
})}

apps/insights/src/components/Publisher/layout.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { InfoBox } from "@pythnetwork/component-library/InfoBox";
1313
import { StatCard } from "@pythnetwork/component-library/StatCard";
1414
import { lookup } from "@pythnetwork/known-publishers";
1515
import { notFound } from "next/navigation";
16-
import { type ReactNode, createElement } from "react";
16+
import type { ReactNode } from "react";
1717

1818
import { ActiveFeedsCard } from "./active-feeds-card";
1919
import { ChartCard } from "./chart-card";
@@ -34,6 +34,7 @@ import { FormattedDate } from "../FormattedDate";
3434
import { FormattedNumber } from "../FormattedNumber";
3535
import { FormattedTokens } from "../FormattedTokens";
3636
import { Meter } from "../Meter";
37+
import { PublisherIcon } from "../PublisherIcon";
3738
import { PublisherKey } from "../PublisherKey";
3839
import { PublisherTag } from "../PublisherTag";
3940
import { SemicircleMeter } from "../SemicircleMeter";
@@ -93,7 +94,7 @@ export const PublishersLayout = async ({ children, params }: Props) => {
9394
publisherKey={key}
9495
{...(knownPublisher && {
9596
name: knownPublisher.name,
96-
icon: createElement(knownPublisher.icon.color),
97+
icon: <PublisherIcon knownPublisher={knownPublisher} />,
9798
})}
9899
/>
99100
</div>

apps/insights/src/components/Publisher/performance.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import { Card } from "@pythnetwork/component-library/Card";
55
import { Table } from "@pythnetwork/component-library/Table";
66
import { lookup } from "@pythnetwork/known-publishers";
77
import { notFound } from "next/navigation";
8-
import { createElement } from "react";
98

109
import { getRankingsWithData } from "./get-rankings-with-data";
1110
import styles from "./performance.module.scss";
1211
import { getPublishers } from "../../services/clickhouse";
1312
import { getTotalFeedCount } from "../../services/pyth";
1413
import { PriceFeedIcon } from "../PriceFeedIcon";
1514
import { PriceFeedTag } from "../PriceFeedTag";
15+
import { PublisherIcon } from "../PublisherIcon";
1616
import { PublisherTag } from "../PublisherTag";
1717
import { Ranking } from "../Ranking";
1818
import { Score } from "../Score";
@@ -101,7 +101,7 @@ export const Performance = async ({ params }: Props) => {
101101
publisherKey={publisher.key}
102102
{...(knownPublisher && {
103103
name: knownPublisher.name,
104-
icon: createElement(knownPublisher.icon.color),
104+
icon: <PublisherIcon knownPublisher={knownPublisher} />,
105105
})}
106106
/>
107107
),
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
html[data-theme="dark"] .lightIcon {
2+
display: none;
3+
}
4+
5+
html[data-theme="light"] .darkIcon {
6+
display: none;
7+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import "server-only";
2+
3+
import type { lookup as lookupPublisher } from "@pythnetwork/known-publishers";
4+
5+
import styles from "./index.module.scss";
6+
7+
type Props = {
8+
knownPublisher: NonNullable<ReturnType<typeof lookupPublisher>>;
9+
};
10+
11+
export const PublisherIcon = ({ knownPublisher }: Props) => {
12+
if ("dark" in knownPublisher.icon) {
13+
const { dark: Dark, light: Light } = knownPublisher.icon;
14+
return (
15+
<>
16+
<Dark className={styles.darkIcon} />
17+
<Light className={styles.lightIcon} />
18+
</>
19+
);
20+
} else {
21+
const Icon =
22+
"color" in knownPublisher.icon
23+
? knownPublisher.icon.color
24+
: knownPublisher.icon.monochrome;
25+
return <Icon />;
26+
}
27+
};

apps/insights/src/components/Publishers/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { Button } from "@pythnetwork/component-library/Button";
66
import { Card } from "@pythnetwork/component-library/Card";
77
import { StatCard } from "@pythnetwork/component-library/StatCard";
88
import { lookup as lookupPublisher } from "@pythnetwork/known-publishers";
9-
import { createElement } from "react";
109

1110
import styles from "./index.module.scss";
1211
import { PublishersCard } from "./publishers-card";
@@ -19,6 +18,7 @@ import {
1918
getDistributedRewards,
2019
} from "../../services/staking";
2120
import { FormattedTokens } from "../FormattedTokens";
21+
import { PublisherIcon } from "../PublisherIcon";
2222
import { PublisherTag } from "../PublisherTag";
2323
import { SemicircleMeter, Label } from "../SemicircleMeter";
2424
import { TokenIcon } from "../TokenIcon";
@@ -162,7 +162,7 @@ export const Publishers = async () => {
162162
medianScore: medianScore,
163163
...(knownPublisher && {
164164
name: knownPublisher.name,
165-
icon: createElement(knownPublisher.icon.color),
165+
icon: <PublisherIcon knownPublisher={knownPublisher} />,
166166
}),
167167
};
168168
},

apps/insights/src/components/Root/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { lookup as lookupPublisher } from "@pythnetwork/known-publishers";
22
import { Root as BaseRoot } from "@pythnetwork/next-root";
33
import { NuqsAdapter } from "nuqs/adapters/next/app";
44
import type { ReactNode } from "react";
5-
import { createElement } from "react";
65

76
import { Footer } from "./footer";
87
import { Header } from "./header";
@@ -20,6 +19,7 @@ import { getPublishers } from "../../services/clickhouse";
2019
import { getData } from "../../services/pyth";
2120
import { LivePricesProvider } from "../LivePrices";
2221
import { PriceFeedIcon } from "../PriceFeedIcon";
22+
import { PublisherIcon } from "../PublisherIcon";
2323

2424
type Props = {
2525
children: ReactNode;
@@ -51,7 +51,7 @@ export const Root = async ({ children }: Props) => {
5151
medianScore: publisher.medianScore,
5252
...(knownPublisher && {
5353
name: knownPublisher.name,
54-
icon: createElement(knownPublisher.icon.color),
54+
icon: <PublisherIcon knownPublisher={knownPublisher} />,
5555
}),
5656
};
5757
})}

apps/staking/src/known-publishers.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import blocksize from "./publisher-icons/blocksize.svg";
22
import elfomo from "./publisher-icons/elfomo.svg";
33
import finazon from "./publisher-icons/finazon.svg";
4+
import ltp from "./publisher-icons/ltp.svg";
45
import sentio from "./publisher-icons/sentio.svg";
56
import woo from "./publisher-icons/woo.svg";
67

@@ -25,4 +26,8 @@ export const KNOWN_PUBLISHERS = {
2526
name: "WOO",
2627
icon: woo,
2728
},
29+
GUcFC3NBuVSf9rdQqW3t2sBcP6sEp269rtPxxGyvAHoM: {
30+
name: "LTP",
31+
icon: ltp,
32+
},
2833
};
Lines changed: 6 additions & 0 deletions
Loading
Lines changed: 7 additions & 0 deletions
Loading
Lines changed: 7 additions & 0 deletions
Loading
Lines changed: 6 additions & 0 deletions
Loading

packages/known-publishers/src/index.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import finazonColor from "./icons/color/finazon.svg";
22
import sentioColor from "./icons/color/sentio.svg";
33
import wooColor from "./icons/color/woo.svg";
4+
import ltpDark from "./icons/dark/ltp.svg";
5+
import ltpLight from "./icons/light/ltp.svg";
46
import blocksize from "./icons/monochrome/blocksize.svg";
57
import elfomo from "./icons/monochrome/elfomo.svg";
68
import finazonMonochrome from "./icons/monochrome/finazon.svg";
9+
import ltpMonochrome from "./icons/monochrome/ltp.svg";
710
import sentioMonochrome from "./icons/monochrome/sentio.svg";
811
import wooMonochrome from "./icons/monochrome/woo.svg";
912

@@ -12,7 +15,6 @@ export const knownPublishers = {
1215
name: "BLOCKSIZE",
1316
icon: {
1417
monochrome: blocksize,
15-
color: blocksize,
1618
},
1719
},
1820
"89ijemG1TUL2kdV2RtCrhXzY5QhyKHsWqCmP5iobvLUF": {
@@ -33,7 +35,6 @@ export const knownPublishers = {
3335
name: "Elfomo",
3436
icon: {
3537
monochrome: elfomo,
36-
color: elfomo,
3738
},
3839
},
3940
DANa2ZYtyUcSW8W8C25ZfscKdBra53npt2frmh7fUucf: {
@@ -43,7 +44,15 @@ export const knownPublishers = {
4344
color: wooColor,
4445
},
4546
},
46-
};
47+
GUcFC3NBuVSf9rdQqW3t2sBcP6sEp269rtPxxGyvAHoM: {
48+
name: "LTP",
49+
icon: {
50+
monochrome: ltpMonochrome,
51+
dark: ltpDark,
52+
light: ltpLight,
53+
},
54+
},
55+
} as const;
4756

4857
export const lookup = (value: string) =>
4958
value in knownPublishers

0 commit comments

Comments
 (0)