AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 24 Bitcoin

Add FundingContribution to SpliceFailed event

Public commit record

What the developer wrote

Authored by Jeffrey Czyz

68/100 · Adequate
Add FundingContribution to SpliceFailed event

Replace the abandoned_funding_txo and channel_type fields on
Event::SpliceFailed with an Option<FundingContribution> from the failed
round. Users can feed this back to funding_contributed to retry or use
it to inform a fresh attempt via splice_channel.

Also makes FundingContribution::feerate() public so users can inspect
the feerate when deciding whether to retry or bump.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit changes the information returned to users when a Lightning channel splice attempt fails. Instead of reporting an abandoned funding transaction outpoint and channel type, the library now returns the full funding contribution object from the failed round. This lets users retry the splice more easily or decide whether to bump the fee. It also suppresses empty 'discard your inputs' events when nothing actually needs discarding. There is no direct security vulnerability here; it is a usability and API-correctness improvement.

Recommended action

Treat as a normal API/behavior change. Review downstream event handlers that match on Event::SpliceFailed, because the abandoned_funding_txo and channel_type fields are removed and replaced by contribution. Ensure persistence compatibility if older serialized events are replayed: the reader maps missing fields to None and defaults reason to Unknown, which is safe. No security patch or incident response is indicated.

Security signals we found

01

API surface change: public Event::SpliceFailed fields altered

02

Public method FundingContribution::feerate() newly exposed

03

Serialization format change for Event::SpliceFailed (TLV field renumbering)

04

Behavioral change: empty DiscardFunding events suppressed

05

No new cryptographic operations, network parsing, or permission checks introduced

Risk score

Why this scored 24/100

Our methodology →
Potential impact 3/30
Exploitability 2/25
Stealth signal 2/15
Affected reach 5/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.