From d6b0547638223ae59ad6029283b9172f005f508c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20=C4=86wirko?= Date: Sun, 5 May 2024 15:04:03 +0200 Subject: [PATCH] improve errors handling --- src/extensionProvider.ts | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/extensionProvider.ts b/src/extensionProvider.ts index 37c26bf..2f272ab 100644 --- a/src/extensionProvider.ts +++ b/src/extensionProvider.ts @@ -125,17 +125,21 @@ export class ExtensionProvider { async signTransactions(transactions: Transaction[]): Promise { this.ensureConnected(); - const extensionResponse = await this.startBgrMsgChannel( - Operation.SignTransactions, - { - from: this.account.address, - transactions: transactions.map((transaction) => - transaction.toPlainObject() - ), + try { + const extensionResponse = await this.startBgrMsgChannel( + Operation.SignTransactions, + { + from: this.account.address, + transactions: transactions.map((transaction) => + transaction.toPlainObject() + ), + } + ); + + if (!Array.isArray(extensionResponse)) { + throw new Error(extensionResponse?.name || JSON.stringify(extensionResponse)); } - ); - try { const transactionsResponse = extensionResponse.map( (transaction: IPlainTransactionObject) => Transaction.fromPlainObject(transaction) @@ -143,7 +147,7 @@ export class ExtensionProvider { return transactionsResponse; } catch (error: any) { - throw new Error(`Transaction canceled: ${error.message}.`); + throw new Error(`Transaction failed${error.message ? `: ${error.message}` : '.'}`); } }