From bb7ceda028171f9d7aa1747b3298cb9118d8fce9 Mon Sep 17 00:00:00 2001 From: b1674927 Date: Sat, 11 Jan 2025 11:20:04 -0500 Subject: [PATCH] add latest ts for setOracles to timestamps --- packages/history/src/db/set_oracles.ts | 14 ++++++++++++++ packages/history/src/svc/main.ts | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/history/src/db/set_oracles.ts b/packages/history/src/db/set_oracles.ts index 552dcd4..2fa19b5 100644 --- a/packages/history/src/db/set_oracles.ts +++ b/packages/history/src/db/set_oracles.ts @@ -116,5 +116,19 @@ export class SetOracles { } } + /** + * Retrieve latest timestamp of SetOracles event + */ + public async getLatestTimestamp(): Promise { + const res = await this.prisma.perpetualLongId.findFirst({ + select: { + valid_from: true, + }, + orderBy: { + valid_from: "desc", + } + }); + return res?.valid_from; + } }//class \ No newline at end of file diff --git a/packages/history/src/svc/main.ts b/packages/history/src/svc/main.ts index 0f726cb..3cb911a 100644 --- a/packages/history/src/svc/main.ts +++ b/packages/history/src/svc/main.ts @@ -156,12 +156,13 @@ export const main = async () => { dbLPWithdrawals, dbPriceInfo, dbTrades, + dbSetOracles, httpProvider, proxyContractAddr, staticInfo: staticInfo, eventListener: eventsListener, }; - await runHistoricalDataFilterers(hdOpts); + runHistoricalDataFilterers(hdOpts); eventsListener.listen(wsProvider); @@ -282,6 +283,7 @@ export interface hdFilterersOpt { httpProvider: ethers.Provider; proxyContractAddr: string; dbTrades: TradingHistory; + dbSetOracles: SetOracles; dbFundingRatePayments: FundingRatePayments; dbEstimatedEarnings: EstimatedEarnings; dbPriceInfo: PriceInfo; @@ -295,6 +297,7 @@ export async function runHistoricalDataFilterers(opts: hdFilterersOpt) { httpProvider, proxyContractAddr, dbTrades, + dbSetOracles, dbFundingRatePayments, dbEstimatedEarnings, dbPriceInfo, @@ -317,7 +320,7 @@ export async function runHistoricalDataFilterers(opts: hdFilterersOpt) { (await dbTrades.getLatestLiquidateTimestamp()) ?? defaultDate, (await dbFundingRatePayments.getLatestTimestamp()) ?? defaultDate, (await dbEstimatedEarnings.getLatestTimestamp("liquidity_added")) ?? defaultDate, - defaultDate + (await dbSetOracles.getLatestTimestamp()) ?? defaultDate, ]; // Use the smallest timestamp for the start of the filter let ts = tsArr.reduce(function (a, b) {