You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopt the splice-time PaymentId when classifying a splice
A user-initiated splice will be keyed by a PaymentId generated at splice
time rather than derived from a candidate's txid, so its retry intent,
funding payment, and candidate history all share one record. Teach the
classifier to find a pre-broadcast splice intent by its channel and reuse
that id, promoting the intent record to a tracked funding payment while
preserving the intent until the splice locks. Splices we did not originate
(counterparty-initiated or V2 dual-funded opens) keep deriving the id from
the first candidate's txid via a fallback.
Also map any candidate txid back to the record in find_payment_by_txid,
since a splice under a generated id is no longer found by the txid-derived
lookup and an earlier RBF candidate may be the one that confirms. If the
intent is already gone when classification runs, the classifier probes
those same lookups for a record any candidate already created before
minting a txid-derived id, so a racing wallet sync and a late
classification converge on one record.
The pending-store write in persist_funding_payment now happens atomically
with reading the entry's prior state, and promotion of a pre-broadcast
intent is gated on the payment still being Pending: a payment that
confirmed through ANTI_REORG_DELAY before classification must not re-enter
the pending store, which graduation and rebroadcast assume holds only
Pending payments.
No splice intents are created yet, so behavior is unchanged; the splice
entry points that persist them follow.
Generated with assistance from Claude Code.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments