get-price-feeds.tsx 728 B

1234567891011121314151617181920212223
  1. import { getFeedsForPublisherRequest } from "../../server/pyth";
  2. import { getFeedRankingsByPublisher } from "../../services/clickhouse";
  3. import { Cluster, ClusterToName } from "../../services/pyth";
  4. import { getStatus } from "../../status";
  5. export const getPriceFeeds = async (cluster: Cluster, key: string) => {
  6. const [feeds, rankings] = await Promise.all([
  7. getFeedsForPublisherRequest(cluster, key),
  8. getFeedRankingsByPublisher(key),
  9. ]);
  10. return feeds.map((feed) => {
  11. const ranking = rankings.find(
  12. (ranking) =>
  13. ranking.symbol === feed.symbol &&
  14. ranking.cluster === ClusterToName[cluster],
  15. );
  16. return {
  17. ranking,
  18. feed,
  19. status: getStatus(ranking),
  20. };
  21. });
  22. };