From 6d8b3c4bf2071aafc234c891d11adf58a4997431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=ADas=20Mart=C3=ADnez?= <131624652+mat1asm@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:12:15 -0300 Subject: [PATCH] [blockchain watcher] skip no txs block (#912) skip no txs block --- .../actions/solana/PollSolanaTransactions.ts | 17 ++++++++++++++--- .../repositories/SnsEventRepository.ts | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/blockchain-watcher/src/domain/actions/solana/PollSolanaTransactions.ts b/blockchain-watcher/src/domain/actions/solana/PollSolanaTransactions.ts index f2dafc8f..ccddc3a6 100644 --- a/blockchain-watcher/src/domain/actions/solana/PollSolanaTransactions.ts +++ b/blockchain-watcher/src/domain/actions/solana/PollSolanaTransactions.ts @@ -152,12 +152,23 @@ export class PollSolanaTransactions extends RunPollingJob { ): Promise { const blockResult = await this.slotRepository.getBlock(slot, this.cfg.commitment); if (blockResult.isOk()) { - return Promise.resolve(blockResult.getValue()); + const block = blockResult.getValue(); + if (block.transactions.length > 0) { + return block; + } + const next = nextSlot(slot); + this.logger.warn( + `[findValidBlock] No transactions found for slot ${slot}, trying next slot ${next}` + ); + return this.findValidBlock(next, nextSlot); } if (blockResult.getError().skippedSlot() || blockResult.getError().noBlockOrBlockTime()) { - this.logger.warn(`No block found for slot ${slot}, trying next slot ${nextSlot(slot)}`); - return this.findValidBlock(nextSlot(slot), nextSlot); + const next = nextSlot(slot); + this.logger.warn( + `[findValidBlock] No block found for slot ${slot}, trying next slot ${next}` + ); + return this.findValidBlock(next, nextSlot); } throw blockResult.getError(); diff --git a/blockchain-watcher/src/infrastructure/repositories/SnsEventRepository.ts b/blockchain-watcher/src/infrastructure/repositories/SnsEventRepository.ts index f7900256..b6186db6 100644 --- a/blockchain-watcher/src/infrastructure/repositories/SnsEventRepository.ts +++ b/blockchain-watcher/src/infrastructure/repositories/SnsEventRepository.ts @@ -24,7 +24,7 @@ export class SnsEventRepository { async publish(events: LogFoundEvent[]): Promise { if (!events.length) { - this.logger.warn("[publish] No events to publish, continuing..."); + this.logger.debug("[publish] No events to publish, continuing..."); return { status: "success", };