From 6de709ed5468749b1b1bd489e174f51bb66bf114 Mon Sep 17 00:00:00 2001 From: M-Picco Date: Thu, 17 Oct 2024 10:46:31 -0300 Subject: [PATCH] Use Sui event's timestamp instead of checkpoint's --- .../mappers/sui/suiLogMessagePublishedMapper.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/blockchain-watcher/src/infrastructure/mappers/sui/suiLogMessagePublishedMapper.ts b/blockchain-watcher/src/infrastructure/mappers/sui/suiLogMessagePublishedMapper.ts index ece693f88..4ee2a386c 100644 --- a/blockchain-watcher/src/infrastructure/mappers/sui/suiLogMessagePublishedMapper.ts +++ b/blockchain-watcher/src/infrastructure/mappers/sui/suiLogMessagePublishedMapper.ts @@ -18,7 +18,7 @@ export const suiLogMessagePublishedMapper = ( const logMessage = extractEventInfo(event); if (!logMessage) return undefined; - const { nonce, sender, sequence, payload, consistencyLevel } = logMessage; + const { nonce, sender, sequence, payload, consistencyLevel, timestamp } = logMessage; logger.info( `[sui] Source event info: [digest: ${receipt.digest}][VAA: ${CHAIN_ID_SUI}/${sender}/${sequence}]` @@ -28,7 +28,7 @@ export const suiLogMessagePublishedMapper = ( name: "log-message-published", address: event.packageId, blockHeight: BigInt(receipt.checkpoint || 0), - blockTime: Math.floor(Number(receipt.timestampMs) / 1000), // convert to seconds + blockTime: Math.floor(timestamp / 1000), // convert to seconds chainId: CHAIN_ID_SUI, txHash: receipt.digest, attributes: { @@ -41,7 +41,7 @@ export const suiLogMessagePublishedMapper = ( }; }; -function extractEventInfo(event: SuiEvent): LogMessagePublished | undefined { +function extractEventInfo(event: SuiEvent): SuiLogMessagePublished | undefined { const json = event.parsedJson as SuiSourceEvent; return { @@ -50,6 +50,7 @@ function extractEventInfo(event: SuiEvent): LogMessagePublished | undefined { sequence: Number(json.sequence), payload: Buffer.from(json.payload).toString("hex"), consistencyLevel: json.consistency_level, + timestamp: json.timestamp, }; } @@ -59,4 +60,7 @@ interface SuiSourceEvent { sequence: string; payload: number[]; consistency_level: number; + timestamp: number; } + +type SuiLogMessagePublished = LogMessagePublished & { timestamp: number };