diff --git a/components/SponsoredFeedsTable.tsx b/components/SponsoredFeedsTableWithData.tsx similarity index 58% rename from components/SponsoredFeedsTable.tsx rename to components/SponsoredFeedsTableWithData.tsx index 87c6ee82..663638b7 100644 --- a/components/SponsoredFeedsTable.tsx +++ b/components/SponsoredFeedsTableWithData.tsx @@ -1,17 +1,15 @@ -import { useState } from "react"; +import React from "react"; import CopyIcon from "./icons/CopyIcon"; import { mapValues } from "../utils/ObjectHelpers"; +import { useCopyToClipboard } from "../utils/useCopyToClipboard"; -interface UpdateParameters { - heartbeatLength: number; - heartbeatUnit: "second" | "minute" | "hour"; - priceDeviation: number; -} - +// SponsoredFeed interface has the same structure as defined in deployment yaml/json files interface SponsoredFeed { - name: string; - priceFeedId: string; - updateParameters: UpdateParameters; + alias: string; // name of the feed + id: string; // price feed id + time_difference: number; // in seconds + price_deviation: number; + confidence_ratio: number; } interface SponsoredFeedsTableProps { @@ -19,59 +17,105 @@ interface SponsoredFeedsTableProps { networkName: string; } +interface UpdateParamsProps { + feed: SponsoredFeed; + isDefault: boolean; +} + /** * Helper functions */ +// Convert time_difference (seconds) to human readable format +const formatTimeUnit = (seconds: number): { value: number; unit: string } => { + // @ts-expect-error - Intl.DurationFormat is not a standard type + const duration = new Intl.DurationFormat("en", { + style: "long", + numeric: "auto", + }); + let durationObj: { hours?: number; minutes?: number; seconds?: number }; + + if (seconds >= 3600) { + durationObj = { hours: Math.floor(seconds / 3600) }; + } else if (seconds >= 60) { + durationObj = { minutes: Math.floor(seconds / 60) }; + } else { + durationObj = { seconds }; + } + + const parts = duration.formatToParts(durationObj); + const intPart = parts.find((p: any) => p.type === "integer"); + if (intPart) { + return { value: Number(intPart.value), unit: intPart.unit }; + } else { + // fallback in case formatting fails + return { value: seconds, unit: "second" }; + } +}; // Format update parameters as a string for grouping -const formatUpdateParams = (params: UpdateParameters): string => { - return `${params.heartbeatLength} ${params.heartbeatUnit} heartbeat / ${params.priceDeviation}% price deviation`; +const formatUpdateParams = (feed: SponsoredFeed): string => { + const timeFormat = formatTimeUnit(feed.time_difference); + const timeStr = `${timeFormat.value} ${timeFormat.unit}${ + timeFormat.value !== 1 ? "s" : "" + }`; + return `${timeStr} heartbeat / ${feed.price_deviation}% price deviation`; }; -// Render update parameters with proper styling -const renderUpdateParams = (params: UpdateParameters, isDefault: boolean) => ( -
-
- - {params.heartbeatLength} {params.heartbeatUnit} heartbeat -
- {params.priceDeviation}% price deviation -
-
-); +const UpdateParams = ({ feed, isDefault }: UpdateParamsProps) => { + const timeFormat = formatTimeUnit(feed.time_difference); + const timeStr = + timeFormat.value === 1 ? timeFormat.unit : `${timeFormat.unit}s`; + + return ( +
+
+ + {timeFormat.value} {timeStr} heartbeat +
+ {feed.price_deviation}% price deviation +
+
+ ); +}; export const SponsoredFeedsTable = ({ feeds, networkName, }: SponsoredFeedsTableProps) => { - const [copiedId, setCopiedId] = useState(null); + const { copiedText, copyToClipboard } = useCopyToClipboard(); - const copyToClipboard = (text: string) => { - navigator.clipboard.writeText(text).then(() => { - setCopiedId(text); - setTimeout(() => setCopiedId(null), 2000); - }); - }; + // Handle empty feeds + if (feeds.length === 0) { + return ( +
+

+ No sponsored price feeds are currently available for{" "} + {networkName}. +

+
+ ); + } // Calculate parameter statistics const paramCounts = mapValues( - Object.groupBy(feeds, (feed) => formatUpdateParams(feed.updateParameters)), + Object.groupBy(feeds, (feed) => formatUpdateParams(feed)), (feeds: SponsoredFeed[]) => feeds.length ); - const defaultParams = Object.entries(paramCounts).sort( + const paramEntries = Object.entries(paramCounts).sort( ([, a], [, b]) => b - a - )[0][0]; + ); + const defaultParams = paramEntries.length > 0 ? paramEntries[0][0] : ""; return (
@@ -123,33 +167,31 @@ export const SponsoredFeedsTable = ({ - {feeds.map((feed, index) => { - const formattedParams = formatUpdateParams( - feed.updateParameters - ); + {feeds.map((feed) => { + const formattedParams = formatUpdateParams(feed); const isDefault = formattedParams === defaultParams; return ( - {feed.name} + {feed.alias}
- {feed.priceFeedId} + {feed.id}
- {renderUpdateParams(feed.updateParameters, isDefault)} + ); diff --git a/package-lock.json b/package-lock.json index 50ed570b..ddd35e6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -742,7 +742,6 @@ }, "node_modules/@clack/prompts/node_modules/is-unicode-supported": { "version": "1.3.0", - "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -28358,8 +28357,7 @@ "dependencies": { "is-unicode-supported": { "version": "1.3.0", - "bundled": true, - "extraneous": true + "bundled": true } } }, diff --git a/pages/price-feeds/sponsored-feeds/data/evm/base_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/base_mainnet.json new file mode 100644 index 00000000..0417f354 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/base_mainnet.json @@ -0,0 +1,121 @@ +[ + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WETH/USD", + "id": "9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PUFETH/USD", + "id": "e5801530292c348f322b7b4a48c1c0d59ab629846cce1c816fc27aee2054b560", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WEETH/USD", + "id": "9ee4e7c60b940440a261eb54b6d8149c23b580ed7da3139f7f08f4ea29dad395", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "EZETH/USD", + "id": "06c217a791f5c4f988b36629af4cb88fad827b2485400a358f3b02886b54de92", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "CBETH/USD", + "id": "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTETH/USD", + "id": "6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RSETH/USD", + "id": "0caec284d34d836ca325cf7b3256c078c597bc052fbd3c0283d52b581d68d71f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PYTH/USD", + "id": "0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SUI/USD", + "id": "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "XRP/USD", + "id": "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USR/USD", + "id": "10b013adec14c0fe839ca0fe54cec9e4d0b6c1585ac6d7e70010dac015e57f9c", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USR/USD.RR", + "id": "512a79cc65f49531f0bbb72956353e79ecdc1e4a6e5241847196c1f9a11d8a52", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RLP/USD", + "id": "7265d5cf8ee0e7b5266f75ff19c42c5b7697a9756c9304aa78b6be4fbb8d823d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RLP/USD.RR", + "id": "796bcb684fdfbba2b071c165251511ab61f08c8949afd9e05665a26f69d9a839", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTUSR/USR.RR", + "id": "b74c2bc175c2dab850ce5a5451608501c293fe8410cb4aba7449dd1c355ab706", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/berachain_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/berachain_mainnet.json new file mode 100644 index 00000000..4df3193f --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/berachain_mainnet.json @@ -0,0 +1,142 @@ +[ + { + "alias": "BERA/USD", + "id": "962088abcfdbdb6e30db2e340c8cf887d9efb311b1f2f17b155a63dbb6d40265", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BERASTONE/USD", + "id": "950fe827fa92b73e81cd49043673e9132a8424b24e35989156606073f2385e21", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BERASTONE/ETH.RR", + "id": "b8004b055f64f9e13468e0bff616bb87232c241a962cdf87c7a781ec31194803", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "LIQUIDBERABTC/WBTC.RR", + "id": "c869104c9feab6b6b303add2d48fa7443fc119493f8d8cafd4df23890659ed78", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "LIQUIDBERAETH/ETH.RR", + "id": "bedaf537ab909117259282b9463b0f54d67dd575d64dcd564bfbdbfc0f57f99d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PYUSD/USD", + "id": "c1da1b73d7f01e7ddd54b3766cf7fcd644395ad14f70aa706ec5384c59e76692", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SUSDE/USDE.RR", + "id": "271c64ce459937abf721d42552035713b6c58f80eeceab716a624607fda4b10f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HONEY/USD", + "id": "f67b033925d73d43ba4401e00308d9b0f26ab4fbd1250e8b5407b9eaade7e1f4", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RSETH/USD", + "id": "0caec284d34d836ca325cf7b3256c078c597bc052fbd3c0283d52b581d68d71f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RSETH/ETH.RR", + "id": "56e9b5eb08e62dd4b445f29e4ec7d3b3d49617d64f2d331d36a2101d4904e3c4", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "IBGT/USD", + "id": "c929105a1af143cbfc887c4573947f54422a9ca88a9e622d151b8abdf5c2962f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STBGT/USD", + "id": "ffd5448b844f5e7eeafbf36c47c7d4791a3cb86f5cefe02a7ba7864b22d81137", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HENLO/USD", + "id": "d90813d7fc7f4f5d786f3a6a35701aff4f628db0ecd998de66be0ff8264c67a2", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "IBERA/USD", + "id": "eb943c0b5c9e02a529f799ac91070c3b7046f9412f3e5b0a90ba00267b838f34", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "NECT/USD", + "id": "ddf0dd319060db4561b5aa8f84a94816d33579f8dc2af2d8f74583bce20cd260", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HONEY/USD.RR", + "id": "8bb3695875f9c33594097b0e0a1daa881aa81290088f0eac3a07b700fc7612ba", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/ethereum_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/ethereum_mainnet.json new file mode 100644 index 00000000..0de25f7a --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/ethereum_mainnet.json @@ -0,0 +1,51 @@ +[ + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "UNI/USD", + "id": "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "PYTH/USD", + "id": "0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "USR/USD", + "id": "10b013adec14c0fe839ca0fe54cec9e4d0b6c1585ac6d7e70010dac015e57f9c", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "WSTUSR/USR", + "id": "b74c2bc175c2dab850ce5a5451608501c293fe8410cb4aba7449dd1c355ab706", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "USDTB/NAV", + "id": "967549f1ff4869f41cb354a7116b9e5a9a3091bebe0b2640eeed745ca1f7f90b", + "time_difference": 3600, + "price_deviation": 2, + "confidence_ratio": 100 + }, + { + "alias": "BOLD/USD", + "id": "d6134dbb0427240f901e3e596d6e63f7d85088f96cd4cd4ae2f89c0819b5d623", + "time_difference": 3600, + "price_deviation": 0.5, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/hyperevm_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/hyperevm_mainnet.json new file mode 100644 index 00000000..7a66dd54 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/hyperevm_mainnet.json @@ -0,0 +1,324 @@ +[ + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HYPE/USD", + "id": "4279e31cc369bbcc2faf022b382b080e32a8e689ff20fbc530d2a603eb6cd98b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HFUN/USD", + "id": "61db931fcfd322223fb84dc4bfc9c6481bd5610a31403782bc396df213e3ce12", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PURR/USD", + "id": "e0154bf4dfbcf835fad3428c0d8c1078b83f687e4d6afafb827f7f9af70ec326", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SOL/USD", + "id": "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTETH/USD", + "id": "6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTETH/STETH.RR", + "id": "f59ead01ed0faba85332a1e2feae8ddb14a1c94ebac259f1c982c92fc7ce333e", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WEETH/USD", + "id": "9ee4e7c60b940440a261eb54b6d8149c23b580ed7da3139f7f08f4ea29dad395", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WEETH/EETH.RR", + "id": "343558e79f587e098c321218ecb34d031ba709ab3e84133126f3c98511b91f64", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "LBTC/USD", + "id": "8f257aab6e7698bb92b15511915e593d6f8eae914452f781874754b03d0c612b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "LBTC/BTC.RR", + "id": "bade5c63f281d36a13dbb64ed0ae1c532a434b6771b11885f396a41f56cc3bd0", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "CBBTC/USD", + "id": "2817d7bfe5c64b8ea956e9a26f573ef64e72e4d7891f2d6af9bcc93f7aff9a97", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WBTC/USD", + "id": "c9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WETH/USD", + "id": "9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDE/USD", + "id": "6ec879b1e9963de5ee97e9c8710b742d6228252a5e2ca12d4ae81d7fe5ee8c5d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SUSDE/USD", + "id": "ca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SUSDE/USDE.RR", + "id": "271c64ce459937abf721d42552035713b6c58f80eeceab716a624607fda4b10f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTHYPE/STHYPE.RR", + "id": "1a78b5829a99f1d2897917dae2a02266c0210535a995a2e9d0692613bbc89e27", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "LHYPE/USD", + "id": "9e3cadc2a8a0ebfd765b34d5ee5de77a4add3114672fc0b8d3ad09ac56940069", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "FHYPE/HYPE.RR", + "id": "8f749681c078ce4ef65cd220994f25735b80264fca4386dd57b31eacf7e4610b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDXL/USD", + "id": "e10593860e9ee1c204e4f9569e877502f098dd1a4d84cc5bad06f23f77dcbfe2", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "MHYPE/HYPE.RR", + "id": "e35aebd2d35795acaa2b0e59f3b498510e8ef334986d151d1502adb9e26234f7", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "FEUSD/USD", + "id": "7f2e9a7365eb634c543e9ca72683a9cf778cdc16ee5b8bca73abe6d08c1410d5", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "MHYPE/USD", + "id": "a7fb4cdafed5130e8731b8da7c9208881f24e9b671bb92438b1fbf361d578112", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STHYPE/USD", + "id": "068cd0617cbdd1dda615ed2b5ab4fe07d2e9f46347f5e785484844aa10d22dc5", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "UETH/USD", + "id": "08c73e187b45ecb2ab8375b975865d3c4a225fef1ccc7f326ad6eec66a24567a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "UBTC/USD", + "id": "42bfb26778f3504a9f359a92c731f77d0c24aed9b7745276e3ad0c2d840b74c2", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "CMETH/METH.RR", + "id": "cef5ad3be493afef85e77267cb0c07d048f3d54055409a34782996607e48cf0a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "METH/ETH.RR", + "id": "ee279eeb2fec830e3f535ad4d6524eb35eb1c6890cb1afc0b64554d08c88727e", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USR/USD.RR", + "id": "512a79cc65f49531f0bbb72956353e79ecdc1e4a6e5241847196c1f9a11d8a52", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USOL/USD", + "id": "974c7a77dbace44d229be17fc176975e06404b004476aeaff37641818cb0c55a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BUDDY/USD", + "id": "ac2adf4571a391da22a2d39e8c5eb32ceecd6ab38c386a9194d669deece74dee", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "XAU/USD", + "id": "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDHL/USD", + "id": "1497fb795ae65533d36d147b1b88c8b7226866a201589904c13acd314f694799", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "UFART/USD", + "id": "a210f55ff119d315002b5dc4f763b4e4114197028e45d6aca16498ab1433fb6d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USH/USD", + "id": "eaa30c1ef2d9f4fde45d6e699bfda5187b3de200ea4cbab25d676b260ab728c1", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HWHLP/USDC", + "id": "d136d4fd8d5f41c42339bcaf79954cfc2d50a33b129a990f8a2087d73cadade9", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WHLP/USDC", + "id": "b94c49af07479932872c63126f6bdee78140be7a953435e3815c8e1b204a0a04", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STLOOP/LOOP", + "id": "1d99073631da1f959284bae0be4d027cfd41c98f4b6a95d20ccf4208a3a4b1f1", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HLP0/USDC.RR", + "id": "aa388e24e74d5dd12145f74fad3180266f78ed08c0a2f47c60583fdb612587ba", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "KHYPE/HYPE.RR", + "id": "983b7cabc6fab548e15a5b05500da9b99c1682107b3e2ff289344116c10ac02c", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTUSR/USR.RR", + "id": "b74c2bc175c2dab850ce5a5451608501c293fe8410cb4aba7449dd1c355ab706", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "RPL/USD.RR", + "id": "796bcb684fdfbba2b071c165251511ab61f08c8949afd9e05665a26f69d9a839", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/kraken_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/kraken_mainnet.json new file mode 100644 index 00000000..ef069d41 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/kraken_mainnet.json @@ -0,0 +1,44 @@ +[ + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WETH/USD", + "id": "9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTETH/USD", + "id": "6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/optimism_sepolia.json b/pages/price-feeds/sponsored-feeds/data/evm/optimism_sepolia.json new file mode 100644 index 00000000..d425da7d --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/optimism_sepolia.json @@ -0,0 +1,16 @@ +[ + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 30, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 30, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/sonic_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/sonic_mainnet.json new file mode 100644 index 00000000..e5ae2de0 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/sonic_mainnet.json @@ -0,0 +1,135 @@ +[ + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WETH/USD", + "id": "9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WBTC/USD", + "id": "c9d8b075a5c69303365ae23633d4e085199bf5c520a3b90fed1322a0342ffc33", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "S/USD", + "id": "f490b178d0c85683b7a0f2388b40af2e6f7c90cbe0f96b31f315f08d0e5a2d6d", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SCUSD/USD", + "id": "316b1536978bee10c47b3c74c0b3995aabae973a3351621680a2aa383aca77b8", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SCETH/USD", + "id": "8bb5e69ed1ab19642a0e7e851b1ed7b3579d0548bc8ddd1077b0d9476bb1dabc", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTKSCETH/SCETH.RR", + "id": "b680422b70915df562e4802bd8679112ff0f6b0a29ec2c3762ae2720eda01e58", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTKSCUSD/SCUSD.RR", + "id": "caed0964240861da425cf03fae9737473f6f031fb80cbbd73c3fb8cddd7a2204", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STS/S.RR", + "id": "3b14bd355f182fa3a3feeea6824228e1f71e7c221a37bc91e8307280aee6a803", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ANON/USD", + "id": "7a36855b8a4a6efd701ed82688694bbf67602de9faae509ae28f91065013cb82", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "OS/USD", + "id": "2bcd65e3c1b4580a5f59755ef30e11077238217dd418d301dd7ee4d252987675", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "GOGLZ/USD", + "id": "82465d1155ddbb2c73bf3491457163000f8e8d02dea90c548b1b7e56ae9fe4b1", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SHADOW/USD", + "id": "6f02ad2b8a307411fc3baedb9876e83efe9fa9f5b752aab8c99f4742c9e5f5d5", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WANS/ANS.RR", + "id": "940b0948d828c46bff5fc3a3204fc032092b5b4239ef9364f33e01d37437ba65", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STS/USD", + "id": "19f463beb47cb398cf2e2c8037f1d0073583cf18209c91a636f051d755ce0662", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "HLP0/USDC.RR", + "id": "aa388e24e74d5dd12145f74fad3180266f78ed08c0a2f47c60583fdb612587ba", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/unichain_mainnet.json b/pages/price-feeds/sponsored-feeds/data/evm/unichain_mainnet.json new file mode 100644 index 00000000..17b25777 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/unichain_mainnet.json @@ -0,0 +1,51 @@ +[ + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "UNI/USD", + "id": "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PYTH/USD", + "id": "0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/BTC", + "id": "c96458d393fe9deb7a7d63a0ac41e2898a67a7750dbd166673279e06c868df0a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/data/evm/unichain_sepolia.json b/pages/price-feeds/sponsored-feeds/data/evm/unichain_sepolia.json new file mode 100644 index 00000000..a2409b25 --- /dev/null +++ b/pages/price-feeds/sponsored-feeds/data/evm/unichain_sepolia.json @@ -0,0 +1,107 @@ +[ + { + "alias": "BTC/USD", + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "ETH/USD", + "id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "STETH/USD", + "id": "3af6a3098c56f58ff47cc46dee4a5b1910e5c157f7f0b665952445867470d61f", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "UNI/USD", + "id": "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDC/USD", + "id": "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "USDT/USD", + "id": "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WSTETH/USD", + "id": "6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "WETH/USD", + "id": "9d4294bbcd1174d6f2003ec365831e64cc31d9f6f15a2b85399db8d5000960f6", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "AVAX/USD", + "id": "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "POL/USD", + "id": "ffd11c5a1cfd42f80afb2df4d9f264c15f956d68153335374ec10722edd70472", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "DOGE/USD", + "id": "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "SHIB/USD", + "id": "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "DAI/USD", + "id": "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "OP/USD", + "id": "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + }, + { + "alias": "PYTH/USD", + "id": "0bbf28e9a841a1cc788f6a361b17ca072d0ea3098a1e5df1c3922d06719579ff", + "time_difference": 3600, + "price_deviation": 1, + "confidence_ratio": 100 + } +] diff --git a/pages/price-feeds/sponsored-feeds/evm.mdx b/pages/price-feeds/sponsored-feeds/evm.mdx index 355cd551..dd37d242 100644 --- a/pages/price-feeds/sponsored-feeds/evm.mdx +++ b/pages/price-feeds/sponsored-feeds/evm.mdx @@ -1,4 +1,13 @@ -import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTable"; +import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData"; +import ethereumMainnet from "../sponsored-feeds/data/evm/ethereum_mainnet.json"; +import baseMainnet from "../sponsored-feeds/data/evm/base_mainnet.json"; +import berachainMainnet from "../sponsored-feeds/data/evm/berachain_mainnet.json"; +import hyperevmMainnet from "../sponsored-feeds/data/evm/hyperevm_mainnet.json"; +import krakenMainnet from "../sponsored-feeds/data/evm/kraken_mainnet.json"; +import unichainMainnet from "../sponsored-feeds/data/evm/unichain_mainnet.json"; +import sonicMainnet from "../sponsored-feeds/data/evm/sonic_mainnet.json"; +import optimismSepolia from "../sponsored-feeds/data/evm/optimism_sepolia.json"; +import unichainSepolia from "../sponsored-feeds/data/evm/unichain_sepolia.json"; # Sponsored Feeds on EVM @@ -16,1462 +25,36 @@ The following EVM chains have sponsored price feeds: ## Ethereum Mainnet - + ## Base Mainnet - + ## Berachain Mainnet - + ## HyperEVM Mainnet - + ## Kraken Mainnet - + ## Unichain Mainnet - + ## Sonic Mainnet - + ## Optimism Sepolia - + ## Unichain Sepolia - + diff --git a/pages/price-feeds/sponsored-feeds/solana.mdx b/pages/price-feeds/sponsored-feeds/solana.mdx index 188b52d4..883c4003 100644 --- a/pages/price-feeds/sponsored-feeds/solana.mdx +++ b/pages/price-feeds/sponsored-feeds/solana.mdx @@ -55,4 +55,4 @@ The addresses represent the price feed account for shard 0 of the relevant price | FARTCOIN/USD | `2t8eUbYKjidMs3uSeYM9jXM9uudYZwGkSeTB4TKjmvnC` | `58cd29ef0e714c5affc44f269b2c1899a52da4169d7acc147b9da692e6953608` | | ACRED/USD | `6gyQ2TKvvV1JB5oWDobndv6BLRWcJzeBNk9PLQ5uPQms` | `40ac3329933a6b5b65cf31496018c5764ac0567316146f7d0de00095886b480d` | | WTI1M/USD | `nt1JuGVRBJNrvMpdZt9RJnxVSxRuoeVx5LRq3R1bS16` | `eca3fb7e6be5be55a01678ee00f6405b9e4986e32d539ccd2a06a57e0c615880` | -| PUMP/USD | `HMm3GPbdnqGwbkTnUUqCFsH8AMHDdEC3Lg8gcPD3HJSH` | `7a01fca212788bba7c5bf8c9efd576a8a722f070d2c17596ff7bb609b8d5c3b9` | +| PUMP/USD | `HMm3GPbdnqGwbkTnUUqCFsH8AMHDdEC3Lg8gcPD3HJSH` | `7a01fca212788bba7c5bf8c9efd576a8a722f070d2c17596ff7bb609b8d5c3b9` | diff --git a/utils/useCopyToClipboard.tsx b/utils/useCopyToClipboard.tsx new file mode 100644 index 00000000..a4184b93 --- /dev/null +++ b/utils/useCopyToClipboard.tsx @@ -0,0 +1,14 @@ +import { useState } from "react"; +import copy from "copy-to-clipboard"; + +export const useCopyToClipboard = (timeout: number = 2000) => { + const [copiedText, setCopiedText] = useState(null); + + const copyToClipboard = (text: string) => { + copy(text); + setCopiedText(text); + setTimeout(() => setCopiedText(null), timeout); + }; + + return { copiedText, copyToClipboard }; +};