@@ -266,16 +266,26 @@ export default function PopupPage() {
266266
267267 async function onApprove ( ) {
268268 popRequest ( ) ;
269- switch ( request . method ) {
270- case 'signTransaction' :
271- case 'sign' :
272- sendSignature ( messages [ 0 ] ) ;
273- break ;
274- case 'signAllTransactions' :
275- sendAllSignatures ( messages ) ;
276- break ;
277- default :
278- throw new Error ( 'Unexpected method: ' + request . method ) ;
269+ try {
270+ switch ( request . method ) {
271+ case 'signTransaction' :
272+ case 'sign' :
273+ await sendSignature ( messages [ 0 ] ) ;
274+ break ;
275+ case 'signAllTransactions' :
276+ await sendAllSignatures ( messages ) ;
277+ break ;
278+ default :
279+ throw new Error ( 'Unexpected method: ' + request . method ) ;
280+ }
281+ } catch ( error ) {
282+ // BUSINESS LOGIC: Proper error handling for signature operations
283+ const errorMessage = error instanceof Error ? error . message : 'Failed to process signature request' ;
284+ devLog ( 'Failed to process signature request:' , error ) ;
285+ postMessage ( {
286+ error : errorMessage ,
287+ id : request . id ,
288+ } ) ;
279289 }
280290 }
281291
@@ -299,9 +309,16 @@ export default function PopupPage() {
299309 signatures . push ( await wallet . createSignature ( messages [ k ] ) ) ;
300310 }
301311 } else {
302- signatures = await Promise . all (
303- messages . map ( ( m ) => wallet . createSignature ( m ) ) ,
304- ) ;
312+ // BUSINESS LOGIC: Safe Promise.all with proper error handling for signature operations
313+ try {
314+ signatures = await Promise . all (
315+ messages . map ( ( m ) => wallet . createSignature ( m ) ) ,
316+ ) ;
317+ } catch ( error ) {
318+ devLog ( 'Failed to sign multiple transactions:' , error ) ;
319+ const errorMessage = error instanceof Error ? error . message : 'Failed to sign transactions' ;
320+ throw new Error ( `Failed to sign transactions: ${ errorMessage } ` ) ;
321+ }
305322 }
306323 postMessage ( {
307324 result : {
0 commit comments