From 0c985c8e23e9781e4749c1610edab94935c071cf Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 15:06:22 -0700 Subject: [PATCH] fix: don't retry melt quote creation on MintOperationError Squashed onto post-monorepo master (paths relocated app/ -> apps/web-wallet/app/). Original commits: - fix: don't retry melt quote creation on MintOperationError - refactor: map MintOperationError from melt quote creation to DomainError --- .../receive-cashu-token-quote-service.ts | 18 +++++++++++++++--- .../features/send/cashu-send-quote-service.ts | 11 ++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/apps/web-wallet/app/features/receive/receive-cashu-token-quote-service.ts b/apps/web-wallet/app/features/receive/receive-cashu-token-quote-service.ts index 4c3f6fbfb..a386ed763 100644 --- a/apps/web-wallet/app/features/receive/receive-cashu-token-quote-service.ts +++ b/apps/web-wallet/app/features/receive/receive-cashu-token-quote-service.ts @@ -1,4 +1,8 @@ -import type { MeltQuoteBolt11Response, Token } from '@cashu/cashu-ts'; +import { + type MeltQuoteBolt11Response, + MintOperationError, + type Token, +} from '@cashu/cashu-ts'; import { getCashuUnit } from '~/lib/cashu'; import { Money } from '~/lib/money'; import type { @@ -247,8 +251,16 @@ export class ReceiveCashuTokenQuoteService { description, }); - const meltQuote = - await sourceAccount.wallet.createMeltQuoteBolt11(paymentRequest); + let meltQuote: MeltQuoteBolt11Response; + try { + meltQuote = + await sourceAccount.wallet.createMeltQuoteBolt11(paymentRequest); + } catch (error) { + if (error instanceof MintOperationError) { + throw new DomainError(error.message); + } + throw error; + } const amountRequired = new Money({ amount: meltQuote.amount + meltQuote.fee_reserve, diff --git a/apps/web-wallet/app/features/send/cashu-send-quote-service.ts b/apps/web-wallet/app/features/send/cashu-send-quote-service.ts index 24f6881c6..b6308cc23 100644 --- a/apps/web-wallet/app/features/send/cashu-send-quote-service.ts +++ b/apps/web-wallet/app/features/send/cashu-send-quote-service.ts @@ -1,6 +1,7 @@ import { type MeltQuoteBolt11Response, MeltQuoteState, + MintOperationError, OutputData, } from '@cashu/cashu-ts'; import type { Big } from 'big.js'; @@ -147,7 +148,15 @@ export class CashuSendQuoteService { const cashuUnit = getCashuUnit(account.currency); const wallet = account.wallet; - const meltQuote = await wallet.createMeltQuoteBolt11(paymentRequest); + let meltQuote: MeltQuoteBolt11Response; + try { + meltQuote = await wallet.createMeltQuoteBolt11(paymentRequest); + } catch (error) { + if (error instanceof MintOperationError) { + throw new DomainError(error.message); + } + throw error; + } const amountWithLightningFee = meltQuote.amount + meltQuote.fee_reserve;