From 0342e33b0349607d5d6b085518bcf7a280790feb Mon Sep 17 00:00:00 2001 From: Szymon Lesisz Date: Tue, 28 Jan 2025 15:03:17 +0100 Subject: [PATCH] fix(blockchain-link): stop ripple ping timeout if api disconnected --- packages/blockchain-link/src/workers/baseWorker.ts | 2 +- packages/blockchain-link/src/workers/ripple/index.ts | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/blockchain-link/src/workers/baseWorker.ts b/packages/blockchain-link/src/workers/baseWorker.ts index e1ad3184439..3ae844b0855 100644 --- a/packages/blockchain-link/src/workers/baseWorker.ts +++ b/packages/blockchain-link/src/workers/baseWorker.ts @@ -163,7 +163,7 @@ export abstract class BaseWorker { return true; } if (data.type === MESSAGES.DISCONNECT) { - this.disconnect(); + await this.disconnect(); this.post({ id, type: RESPONSES.DISCONNECTED, payload: true }); return true; diff --git a/packages/blockchain-link/src/workers/ripple/index.ts b/packages/blockchain-link/src/workers/ripple/index.ts index f6d34d69435..1b2bbc69ebc 100644 --- a/packages/blockchain-link/src/workers/ripple/index.ts +++ b/packages/blockchain-link/src/workers/ripple/index.ts @@ -475,9 +475,7 @@ class RippleWorker extends BaseWorker { } disconnect() { - if (this.api) { - this.api.disconnect(); - } + return this.api?.disconnect(); } async messageHandler(event: { data: MessageTypes.Message }) { @@ -508,10 +506,9 @@ class RippleWorker extends BaseWorker { if (this.pingTimeout) { clearTimeout(this.pingTimeout); } - this.pingTimeout = setTimeout( - () => this.onPing(), - this.settings.pingTimeout || DEFAULT_PING_TIMEOUT, - ); + this.pingTimeout = this.api?.isConnected() + ? setTimeout(() => this.onPing(), this.settings.pingTimeout || DEFAULT_PING_TIMEOUT) + : undefined; } async onPing() {