From 83b21cb815458a6b662eb7d4d76f4fac25ca9b29 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Mon, 8 Sep 2025 21:56:26 +0200 Subject: [PATCH] Fix unconsistent async patterns + add a few missing try/catch --- src/relay-manager.ts | 22 +++++++++++++--------- src/service.ts | 20 ++++++++++++++++---- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/relay-manager.ts b/src/relay-manager.ts index 0dc03a2..e11a672 100644 --- a/src/relay-manager.ts +++ b/src/relay-manager.ts @@ -309,7 +309,7 @@ export class RelayManager { } // Relay Message Handling - private handleRelayMessage(relayId: string, message: any): void { + private async handleRelayMessage(relayId: string, message: any): Promise { console.log(`📨 Received message from relay ${relayId}:`); if (message.flag === 'Handshake') { @@ -321,7 +321,7 @@ export class RelayManager { // Handle different types of relay responses if (message.flag) { // Handle protocol-specific responses - this.handleProtocolMessage(relayId, message); + await this.handleProtocolMessage(relayId, message); } else if (message.type === 'heartbeat') { // Update heartbeat const relay = this.relays.get(relayId); @@ -337,14 +337,16 @@ export class RelayManager { } } - private handleProtocolMessage(relayId: string, message: any): void { + private async handleProtocolMessage(relayId: string, message: any): Promise { // Handle different AnkFlag responses switch (message.flag) { case "NewTx": console.log(`📨 NewTx response from relay ${relayId}`); - setImmediate(() => { - Service.getInstance().parseNewTx(message.content); - }); + try { + await Service.getInstance().parseNewTx(message.content); + } catch (error) { + console.error(`❌ Error parsing NewTx from relay ${relayId}:`, error); + } break; case "Commit": console.log(`📨 Commit response from relay ${relayId}`); @@ -353,9 +355,11 @@ export class RelayManager { break; case "Cipher": console.log(`📨 Cipher response from relay ${relayId}`); - setImmediate(() => { - Service.getInstance().parseCipher(message.content); - }); + try { + await Service.getInstance().parseCipher(message.content); + } catch (error) { + console.error(`❌ Error parsing Cipher from relay ${relayId}:`, error); + } break; case "Handshake": console.log(`📨 Handshake response from relay ${relayId}`); diff --git a/src/service.ts b/src/service.ts index 5f015b3..324572f 100644 --- a/src/service.ts +++ b/src/service.ts @@ -1159,8 +1159,12 @@ export class Service { } if (apiReturn.new_tx_to_send && apiReturn.new_tx_to_send.transaction.length != 0) { - await this.sendNewTxMessage(JSON.stringify(apiReturn.new_tx_to_send)); - await new Promise(r => setTimeout(r, 500)); + try { + await this.sendNewTxMessage(JSON.stringify(apiReturn.new_tx_to_send)); + await new Promise(r => setTimeout(r, 500)); + } catch (error) { + console.error('❌ Error sending NewTx message:', error); + } } if (apiReturn.secrets) { @@ -1245,11 +1249,19 @@ export class Service { if (apiReturn.commit_to_send) { const commit = apiReturn.commit_to_send; - await this.sendCommitMessage(JSON.stringify(commit)); + try { + await this.sendCommitMessage(JSON.stringify(commit)); + } catch (error) { + console.error('❌ Error sending Commit message:', error); + } } if (apiReturn.ciphers_to_send && apiReturn.ciphers_to_send.length != 0) { - await this.sendCipherMessages(apiReturn.ciphers_to_send); + try { + await this.sendCipherMessages(apiReturn.ciphers_to_send); + } catch (error) { + console.error('❌ Error sending Cipher messages:', error); + } } }