diff --git a/src/models/ProofsStore.ts b/src/models/ProofsStore.ts index 307d801..7642ecb 100644 --- a/src/models/ProofsStore.ts +++ b/src/models/ProofsStore.ts @@ -284,9 +284,9 @@ import { SerializedDLEQ } from '@cashu/cashu-ts' p.isSpent = true } // Automatically clean if any were in mint-pending list - const secrets = proofs.map(p => p.secret) - self.pendingByMintSecrets.replace( - self.pendingByMintSecrets.filter(s => !secrets.includes(s)) + const secrets = new Set(proofs.map(p => p.secret)) + self.pendingByMintSecrets.replace( + self.pendingByMintSecrets.filter(s => !secrets.has(s)) ) }, diff --git a/src/services/walletService.ts b/src/services/walletService.ts index db54614..a36efff 100644 --- a/src/services/walletService.ts +++ b/src/services/walletService.ts @@ -1295,13 +1295,19 @@ const handlePendingQueue = async (): Promise => { message: 'Lightning invoice expired', createdAt: new Date(), } - - const txData = tx.data ? [...JSON.parse(tx.data), update] : [update] - - tx.update({ - status: TransactionStatus.EXPIRED, - data: JSON.stringify(txData), - }) + + try { + const txData = tx.data ? [...JSON.parse(tx.data), update] : [update] + tx.update({ + status: TransactionStatus.EXPIRED, + data: JSON.stringify(txData), + }) + } catch(e: any) { + tx.update({ + status: TransactionStatus.EXPIRED, + data: JSON.stringify(update), + }) + } } }