From b3dba8b24ae9e9ef86199ee89aa615d9d8353672 Mon Sep 17 00:00:00 2001 From: tommytrg Date: Tue, 14 May 2024 17:47:04 +0200 Subject: [PATCH 1/4] chore(api): remove routed information from configuration file --- packages/api/src/dataFeedsRouter.json | 56 --------------------------- 1 file changed, 56 deletions(-) diff --git a/packages/api/src/dataFeedsRouter.json b/packages/api/src/dataFeedsRouter.json index dd709b53..1ba70cd9 100644 --- a/packages/api/src/dataFeedsRouter.json +++ b/packages/api/src/dataFeedsRouter.json @@ -1351,21 +1351,12 @@ "maxSecsBetweenUpdates": 86400, "minSecsBetweenUpdates": 900 }, - "Price-BAT/USD-6": { - "isRouted": true - }, "Price-BCH/USD-6": { "deviationPercentage": 1.0 }, - "Price-BNB/USD-6": { - "isRouted": true - }, "Price-BORING/USDT-6": { "deviationPercentage": 0.5 }, - "Price-BUSD/USD-6": { - "isRouted": true - }, "Price-CELO/EUR-6": { "deviationPercentage": 1.0 }, @@ -1383,9 +1374,6 @@ "Price-CRO/USDT-6": { "deviationPercentage": 3.5 }, - "Price-CUBE/USD-6": { - "isRouted": true - }, "Price-CUBE/USDT-6": { "deviationPercentage": 3.5 }, @@ -1398,38 +1386,18 @@ "Price-DOT/USD-6": { "deviationPercentage": 3.5 }, - "Price-ELA/USD-6": { - "isRouted": true - }, "Price-ELA/USDT-6": { "deviationPercentage": 3.5 }, - "Price-ELON/USD-9": { - "isRouted": true - }, "Price-FRAX/USDT-6": { "deviationPercentage": 0.25 }, - "Price-GLINT/USD-6": { - "isRouted": true, - "maxSecsBetweenUpdates": 86400, - "minSecsBetweenUpdates": 900 - }, "Price-GLINT/USDC-6": { "deviationPercentage": 1.0 }, - "Price-GLMR/USD-6": { - "isRouted": true - }, "Price-GLMR/USDT-6": { "deviationPercentage": 1.0 }, - "Price-HT/USD-6": { - "isRouted": true - }, - "Price-KAVA/USD-6": { - "isRouted": true - }, "Price-KAVA/USDT-6": { "deviationPercentage": 0.5 }, @@ -1438,51 +1406,27 @@ "maxSecsBetweenUpdates": 3600, "minSecsBetweenUpdates": 3600 }, - "Price-KLAY/USD-6": { - "isRouted": true - }, - "Price-KSP/USD-6": { - "isRouted": true - }, - "Price-METIS/USD-6": { - "isRouted": true - }, "Price-MJT/KCS-9": { "deviationPercentage": 0.5 }, "Price-MOVR/USDT-6": { "deviationPercentage": 1.0 }, - "Price-MTRG/USD-6": { - "isRouted": true - }, - "Price-NCT/USD-6": { - "isRouted": true - }, "Price-OKT/USDT-6": { "deviationPercentage": 0.5 }, "Price-OP/USDT-6": { "deviationPercentage": 1.0 }, - "Price-QUICK/USD-6": { - "isRouted": true - }, "Price-SAX/USDT-6": { "deviationPercentage": 0.5 }, - "Price-STELLA/USD-6": { - "isRouted": true - }, "Price-STELLA/USDT-6": { "deviationPercentage": 1.0 }, "Price-SYS/USDT-6": { "deviationPercentage": 1.0 }, - "Price-TUSD/USD-6": { - "isRouted": true - }, "Price-TUSD/USDT-6": { "deviationPercentage": 0.25 }, From 97ba0d4840c4825dfe1af28fbead67a44e7db6af Mon Sep 17 00:00:00 2001 From: tommytrg Date: Wed, 15 May 2024 13:42:18 +0200 Subject: [PATCH 2/4] fix(api): ignore price feeds with timestamp 0 --- packages/api/src/web3Middleware/NetworkRouter.ts | 4 +--- packages/api/src/web3Middleware/PriceFeed.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/api/src/web3Middleware/NetworkRouter.ts b/packages/api/src/web3Middleware/NetworkRouter.ts index 4f35e263..9daab670 100644 --- a/packages/api/src/web3Middleware/NetworkRouter.ts +++ b/packages/api/src/web3Middleware/NetworkRouter.ts @@ -84,9 +84,7 @@ export class NetworkRouter { setInterval(async () => { const snapshot = await this.getSnapshot() const insertPromises = snapshot.feeds - .filter((feed) => { - return feed.status === ResultStatus.Ready - }) + .filter((feed) => feed.timestamp !== '0') .map((feed) => ({ feedFullName: createFeedFullName( this.network, diff --git a/packages/api/src/web3Middleware/PriceFeed.ts b/packages/api/src/web3Middleware/PriceFeed.ts index a7cb102e..454124bc 100644 --- a/packages/api/src/web3Middleware/PriceFeed.ts +++ b/packages/api/src/web3Middleware/PriceFeed.ts @@ -90,8 +90,7 @@ export class PriceFeed { if (!feedConfiguration || Object.keys(feedConfiguration).length === 0) { throw new Error(`${feed.caption} not found in configuration file`) } - - const isRouted: boolean = feed.solver.endsWith('000000000000000000000000') + const isRouted: boolean = this.isRouted(feed.solver) if (isRouted) { feedConfiguration.maxSecsBetweenUpdates = 0 @@ -123,4 +122,9 @@ export class PriceFeed { chain, }) } + + static isRouted(solver: string): boolean { + // ends in 24 0s + return solver.endsWith('000000000000000000000000') + } } From d97aa58776961cafb272c1f54bf1746a4607aa36 Mon Sep 17 00:00:00 2001 From: tommytrg Date: Wed, 15 May 2024 17:15:56 +0200 Subject: [PATCH 3/4] chore(ui): hide trigger parameters block on routed price feeds --- packages/ui/components/DataFeedDetails.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ui/components/DataFeedDetails.vue b/packages/ui/components/DataFeedDetails.vue index 0ada5984..83d60c43 100644 --- a/packages/ui/components/DataFeedDetails.vue +++ b/packages/ui/components/DataFeedDetails.vue @@ -26,7 +26,10 @@ /> Date: Wed, 15 May 2024 18:44:24 +0200 Subject: [PATCH 4/4] fix(ui): ignore delay rules for routed price feeds --- packages/ui/api/queries/feeds.ts | 1 + packages/ui/components/DataFeeds.vue | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/ui/api/queries/feeds.ts b/packages/ui/api/queries/feeds.ts index a822e6a0..9b813c63 100644 --- a/packages/ui/api/queries/feeds.ts +++ b/packages/ui/api/queries/feeds.ts @@ -4,6 +4,7 @@ export default gql` query feeds($network: String!) { feeds(network: $network) { feeds { + isRouted feedFullName name address diff --git a/packages/ui/components/DataFeeds.vue b/packages/ui/components/DataFeeds.vue index 96fc3a60..1f89017e 100644 --- a/packages/ui/components/DataFeeds.vue +++ b/packages/ui/components/DataFeeds.vue @@ -41,6 +41,10 @@ const allFeeds = computed(() => { return feed.lastResult && Number(feed.lastResultTimestamp) > 0 }) .map((feed: any) => { + const heartbeat = Number(feed.heartbeat || '0') + const timeToUpdate = + heartbeat && !feed.isRouted ? heartbeat + Number(feed.finality) : null + return { detailsPath: { name: 'network-id', @@ -54,9 +58,7 @@ const allFeeds = computed(() => { value: feed.lastResult, lastResultTimestamp: feed.lastResultTimestamp || '0', label: feed.label, - timeToUpdate: feed.heartbeat - ? Number(feed.heartbeat) + Number(feed.finality) - : null, + timeToUpdate, img: { name: formatSvgName(feed.name), alt: feed.name,