Skip to content

Commit

Permalink
[Issue-2636] Update earning performance with earning cache only
Browse files Browse the repository at this point in the history
  • Loading branch information
saltict committed Feb 20, 2024
1 parent 6d5e264 commit d17cc9f
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
2 changes: 1 addition & 1 deletion packages/extension-base/src/constants/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
38 changes: 27 additions & 11 deletions packages/extension-base/src/services/earning-service/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,18 @@ export default class EarningService implements StoppableServiceInterface, Persis

private dbService: DatabaseService;
private eventService: EventService;
private useOnlineCacheOnly = true;

constructor (state: KoniState) {
this.state = state;
this.dbService = state.dbService;
this.eventService = state.eventService;
}

public disableOnlineCacheOnly () {
this.useOnlineCacheOnly = false;
}

private async initHandlers () {
await this.eventService.waitChainReady;
const chains: string[] = [];
Expand Down Expand Up @@ -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 () {
Expand Down Expand Up @@ -772,15 +783,20 @@ export default class EarningService implements StoppableServiceInterface, Persis
* @return {Promise<YieldPoolTarget[]>} List of pool's target
* */
public async getPoolTargets (slug: string): Promise<YieldPoolTarget[]> {
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 */
Expand Down

0 comments on commit d17cc9f

Please sign in to comment.