Skip to content

Commit 8ecb7ea

Browse files
committed
chore: handle promise failure errors
Ticket: CAAS-7
1 parent a85b084 commit 8ecb7ea

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

modules/sdk-core/src/bitgo/wallet/wallet.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2192,12 +2192,20 @@ export class Wallet implements IWallet {
21922192
} else {
21932193
txPrebuildQuery = params.prebuildTx ? Promise.resolve(params.prebuildTx) : this.prebuildTransaction(params);
21942194
}
2195-
2196-
const [keychains, txPrebuild] = (await Promise.all([keychainPromise, txPrebuildQuery])) as [
2197-
Keychain[],
2198-
PrebuildTransactionResult
2199-
];
2200-
2195+
let keychains: Keychain[];
2196+
let txPrebuild: PrebuildTransactionResult;
2197+
try {
2198+
[keychains, txPrebuild] = (await Promise.all([keychainPromise, txPrebuildQuery])) as [
2199+
Keychain[],
2200+
PrebuildTransactionResult
2201+
];
2202+
} catch (err) {
2203+
if (err || (err instanceof Error && err.message.includes('unable to decrypt keychain'))) {
2204+
throw new Error('unable to decrypt keychain with the given wallet passphrase');
2205+
} else {
2206+
throw new Error(`Failed to process transaction: ${err.message}`);
2207+
}
2208+
}
22012209
try {
22022210
await this.baseCoin.verifyTransaction({
22032211
txParams: { ...txPrebuild.buildParams, ...params },

0 commit comments

Comments
 (0)