From 09dfcb942095f7c9cb56c76066e7f9d737351d08 Mon Sep 17 00:00:00 2001 From: "beeb@neb.one" Date: Tue, 18 Feb 2025 18:03:27 +0700 Subject: [PATCH] feat: error tracker to not spam transcation error --- src/workers/wallet.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/workers/wallet.ts b/src/workers/wallet.ts index b9999cd..390786b 100644 --- a/src/workers/wallet.ts +++ b/src/workers/wallet.ts @@ -27,6 +27,7 @@ export class WalletWorker { private sequence?: number private accountNumber?: number private logger: Logger + private errorTracker = new Map() constructor( public chain: ChainWorker, @@ -68,6 +69,15 @@ export class WalletWorker { this.accountNumber = accInfo.getAccountNumber() } + private async checkAndStoreError(code: string, error: Error) { + const now = Date.now() + const lastErrorTime = this.errorTracker.get(code) ?? 0 + if (now - lastErrorTime > 10 * 60 * 1000) { + this.errorTracker.set(code, now) + await captureException(error) + } + } + private async handlePackets() { if (this.chain.latestHeight === undefined) return @@ -395,7 +405,7 @@ export class WalletWorker { `Tx failed. raw log - ${result.raw_log}, code - ${result.code}` ) - await captureException(error) + await this.checkAndStoreError(result.code.toString(), error) this.logger.error(error) throw error }