From df736d7eb00a8d1f810f897986379c0ad90e5977 Mon Sep 17 00:00:00 2001 From: minibits-cash Date: Thu, 13 Feb 2025 17:46:32 +0100 Subject: [PATCH] Fix: Long running tasks cause crash if notification channel is not created. --- package.json | 2 +- src/services/wallet/sendTask.ts | 6 +++++- src/services/walletService.ts | 8 +++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8bf19e0..1c1ba0e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "minibits_wallet", - "version": "0.2.0-beta.7", + "version": "0.2.0-beta.8", "private": true, "scripts": { "android:clean": "cd android && ./gradlew clean", diff --git a/src/services/wallet/sendTask.ts b/src/services/wallet/sendTask.ts index 873e784..02f3bc6 100644 --- a/src/services/wallet/sendTask.ts +++ b/src/services/wallet/sendTask.ts @@ -40,7 +40,11 @@ export const sendTask = async function ( const mintUrl = mintBalanceToSendFrom.mintUrl log.trace('[sendTask]', 'mintBalanceToSendFrom', mintBalanceToSendFrom) - log.trace('[sendTask]', 'amountToSend', {amountToSend, unit}) + log.trace('[sendTask]', 'amountToSend', {amountToSend, unit}) + + if(amountToSend <= 0) { + throw new AppError(Err.VALIDATION_ERROR, 'Amount to send must be above zero.') + } // create draft transaction const transactionData: TransactionData[] = [ diff --git a/src/services/walletService.ts b/src/services/walletService.ts index ace3677..25c9590 100644 --- a/src/services/walletService.ts +++ b/src/services/walletService.ts @@ -420,6 +420,11 @@ const swapAllTask = async function (): Promise { for (const unit of mint.units) { const proofsToOptimize = proofsStore.getByMint(mint.mintUrl, { isPending: false, unit, ascending: true }) + + if(proofsToOptimize.length === 0) { + continue + } + initialProofsCount += proofsToOptimize.length const mintBalance = mint.balances @@ -459,7 +464,8 @@ const swapAllTask = async function (): Promise { } } else { // If the length is less than or equal to limit, run with all proofs. - const proofsAmount = CashuUtils.getProofsAmount(proofsToOptimize) + const proofsAmount = CashuUtils.getProofsAmount(proofsToOptimize) + const sendResult = await sendTask( mintBalance!, proofsAmount,