Skip to content

Commit 944c41c

Browse files
committed
fix: show detailed swap progress status from Boltz
- Show descriptive messages for each swap stage: swap.created → transaction.mempool → transaction.confirmed → invoice.paid → transaction.claimed - Detect transaction.mempool (BTC seen in mempool) as progress - Correct success events: transaction.claimed (submarine), invoice.settled (reverse) - Correct failure events: swap.expired, transaction.failed, lockupFailed, invoice.failedToPay, refunded
1 parent 5f38f1b commit 944c41c

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/components/web-wallet/BoltzSwap.tsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,13 @@ export function BoltzSwap({ walletId, btcAddress, btcBalance, lnBalance }: Props
7979
const data = await res.json();
8080
if (data.success) {
8181
setSwapStatus(data.status);
82-
if (['transaction.claimed', 'invoice.settled', 'transaction.confirmed'].includes(data.status)) {
82+
// Success states
83+
if (['transaction.claimed', 'invoice.settled'].includes(data.status)) {
8384
setSwapState('complete');
8485
clearInterval(interval);
8586
}
86-
if (['swap.expired', 'transaction.failed', 'swap.refunded'].includes(data.status)) {
87+
// Failure states
88+
if (['swap.expired', 'transaction.failed', 'transaction.lockupFailed', 'invoice.failedToPay', 'transaction.refunded'].includes(data.status)) {
8789
setSwapState('error');
8890
setError(`Swap ${data.status}`);
8991
clearInterval(interval);
@@ -291,7 +293,17 @@ export function BoltzSwap({ walletId, btcAddress, btcBalance, lnBalance }: Props
291293
'Swap In Progress'}
292294
</p>
293295
<p className="text-xs text-gray-400 mt-1">
294-
Status: {swapStatus || 'waiting...'}
296+
{swapStatus === 'swap.created' && '⏳ Waiting for BTC deposit...'}
297+
{swapStatus === 'transaction.mempool' && '📡 BTC transaction detected in mempool!'}
298+
{swapStatus === 'transaction.confirmed' && '✅ BTC confirmed on-chain, paying Lightning invoice...'}
299+
{swapStatus === 'invoice.paid' && '⚡ Lightning invoice paid, claiming...'}
300+
{swapStatus === 'invoice.pending' && '⚡ Lightning payment pending...'}
301+
{swapStatus === 'transaction.claimed' && '🎉 Swap complete!'}
302+
{swapStatus === 'invoice.settled' && '🎉 Swap complete!'}
303+
{swapStatus === 'transaction.server.mempool' && '📡 Server transaction in mempool...'}
304+
{swapStatus === 'transaction.server.confirmed' && '✅ Server transaction confirmed...'}
305+
{!swapStatus && '⏳ Waiting for BTC deposit...'}
306+
{swapStatus && !['swap.created','transaction.mempool','transaction.confirmed','invoice.paid','invoice.pending','transaction.claimed','invoice.settled','transaction.server.mempool','transaction.server.confirmed'].includes(swapStatus) && `Status: ${swapStatus}`}
295307
</p>
296308
</div>
297309

0 commit comments

Comments
 (0)