loop/staticaddr
Slyghtning cd377f35f8
openchannel: recover deposits at runtime after PSBT finalize failure
If the PSBT finalize step succeeds but the stream fails before
ChanPending, deposits would remain stuck in OpeningChannel until the
next daemon restart. Run the recovery logic immediately so deposits are
resolved without requiring a restart.

Also, add tests for the following edge cases requested in review:

- Reorg: channel tx reorged, UTXOs reappear as unspent, deposits
  return to Deposited state.
- Daemon restart during channel opening: deposits in OpeningChannel
  recovered based on UTXO status (spent → ChannelPublished, unspent →
  Deposited).
- Mempool eviction: tx evicted, UTXOs unspent, deposits return to
  Deposited.
- Mempool rejection: tx never accepted, same recovery as eviction.
- Stream errors: lnd stream fails before PSBT finalize, error returned
  without errPsbtFinalized so deposits can be safely rolled back.
- PSBT finalize then stream abort: finalize succeeds but stream dies
  before ChanPending, error wrapped with errPsbtFinalized so caller
  triggers recovery instead of blind rollback.
- Duplicate outpoints: already covered by TestOpenChannelDuplicateOutpoints.
2026-02-26 20:57:27 +01:00
..
address staticutil: refactor methods into utils 2025-12-09 12:21:51 +01:00
deposit deposit: add OnExpiry self-transitions to OpeningChannel and ChannelPublished 2026-02-26 20:57:27 +01:00
loopin staticaddr: clear stale HTLC confs on re-register 2025-12-17 10:11:30 +01:00
openchannel openchannel: recover deposits at runtime after PSBT finalize failure 2026-02-26 20:57:27 +01:00
script multi: update linter, fix issues 2025-03-10 22:59:50 +01:00
staticutil staticaddr: open channel manager 2026-02-26 20:57:26 +01:00
version multi: do not rename swapserverrpc to looprpc 2024-09-10 09:54:17 -03:00
withdraw staticaddr: open channel manager 2026-02-26 20:57:26 +01:00
log.go staticaddr: open channel manager 2026-02-26 20:57:26 +01:00