From d17cc9f47f434ff23e37f308f93f26bb8efa6733 Mon Sep 17 00:00:00 2001 From: AnhMTV Date: Tue, 20 Feb 2024 15:49:01 +0700 Subject: [PATCH] [Issue-2636] Update earning performance with earning cache only --- .../extension-base/src/constants/index.ts | 2 +- .../src/services/earning-service/service.ts | 38 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/extension-base/src/constants/index.ts b/packages/extension-base/src/constants/index.ts index 42ec15e9752..63c724446ca 100644 --- a/packages/extension-base/src/constants/index.ts +++ b/packages/extension-base/src/constants/index.ts @@ -14,7 +14,7 @@ export const CRON_REFRESH_STAKING_REWARD_INTERVAL = 900000; export const CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = 90000; export const CRON_REFRESH_HISTORY_INTERVAL = 900000; export const CRON_GET_API_MAP_STATUS = 10000; -export const CRON_REFRESH_CHAIN_STAKING_METADATA = 900000; +export const CRON_REFRESH_CHAIN_STAKING_METADATA = 90000; export const CRON_REFRESH_CHAIN_NOMINATOR_METADATA = 1800000; export const CRON_RECOVER_HISTORY_INTERVAL = 30000; export const CRON_SYNC_MANTA_PAY = 300000; diff --git a/packages/extension-base/src/services/earning-service/service.ts b/packages/extension-base/src/services/earning-service/service.ts index f85bf85f6ee..d0ecb2cd575 100644 --- a/packages/extension-base/src/services/earning-service/service.ts +++ b/packages/extension-base/src/services/earning-service/service.ts @@ -38,6 +38,7 @@ export default class EarningService implements StoppableServiceInterface, Persis private dbService: DatabaseService; private eventService: EventService; + private useOnlineCacheOnly = true; constructor (state: KoniState) { this.state = state; @@ -45,6 +46,10 @@ export default class EarningService implements StoppableServiceInterface, Persis this.eventService = state.eventService; } + public disableOnlineCacheOnly () { + this.useOnlineCacheOnly = false; + } + private async initHandlers () { await this.eventService.waitChainReady; const chains: string[] = []; @@ -398,15 +403,21 @@ export default class EarningService implements StoppableServiceInterface, Persis }, CRON_REFRESH_CHAIN_STAKING_METADATA); // Fetching from chains - this.subscribePoolsInfo((data) => { - data.lastUpdated = Date.now(); - this.updateYieldPoolInfo(data); - }).then((rs) => { + if (this.useOnlineCacheOnly) { this.yieldPoolsInfoUnsub = () => { - rs(); clearInterval(interval); }; - }).catch(console.error); + } else { + this.subscribePoolsInfo((data) => { + data.lastUpdated = Date.now(); + this.updateYieldPoolInfo(data); + }).then((rs) => { + this.yieldPoolsInfoUnsub = () => { + rs(); + clearInterval(interval); + }; + }).catch(console.error); + } } runUnsubscribePoolsInfo () { @@ -772,15 +783,20 @@ export default class EarningService implements StoppableServiceInterface, Persis * @return {Promise} List of pool's target * */ public async getPoolTargets (slug: string): Promise { - await this.eventService.waitChainReady; + let targets: YieldPoolTarget[] = []; + + if (this.useOnlineCacheOnly) { + targets = await fetchStaticCache(`earning/targets/${slug}.json`, []); + } const handler = this.getPoolHandler(slug); - if (handler) { - return await handler.getPoolTargets(); - } else { - return []; + if (!targets.length && handler) { + await this.eventService.waitChainReady; + targets = await handler.getPoolTargets(); } + + return targets; } /* Get pool's targets */