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

Introduce FundingBuilder for splice requests

Public commit record

What the developer wrote

Authored by Wilmer Paulino

68/100 · Adequate
Introduce FundingBuilder for splice requests

This lets callers easily amend a prior contribution in place and only
re-run coin selection when the new request cannot be satisfied with the
existing inputs.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit refactors how Bitcoin Lightning channel 'splice' funding requests are built. It introduces a FundingBuilder API that lets callers amend an earlier contribution (for example, changing the amount or adding a withdrawal output) without re-running wallet coin selection when the existing inputs can still cover the new request. The change also moves prevtx-size validation into the builder and adds explicit error variants for missing coin-selection sources and oversized previous transactions. There is no direct evidence in the commit or supplied references that this fixes a known security vulnerability; it reads as a feature/refactoring change with defensive hardening.

Recommended action

Treat as a normal code-review item. Verify that removing the explicit validate() call in channel.rs does not allow an oversized prevtx to reach the interactive transaction protocol, since the builder now performs equivalent validation. Confirm that all paths constructing a FundingContribution for splicing go through FundingBuilder or otherwise call validate_inputs(). Review the new error handling to ensure MissingCoinSelectionSource is returned consistently instead of silently proceeding without inputs.

Security signals we found

01

Removed explicit FundingContribution::validate() call from splice contribution handling in channel.rs; validation now happens inside FundingBuilder/validate_inputs.

02

Added FundingContributionError::PrevTxTooLarge to enforce LN_MAX_MSG_LEN on tx_add_input prevtx serialization.

03

Added FundingContributionError::MissingCoinSelectionSource to fail closed when wallet inputs are required but no source is attached.

04

Refactored splice-in/splice-out request construction to reuse prior inputs when possible, reducing repeated coin-selection surface.

05

No vendor security disclosure, CVE, or researcher attribution present in commit or supplied references.

Risk score

Why this scored 32/100

Our methodology →
Potential impact 8/30
Exploitability 5/25
Stealth signal 4/15
Affected reach 6/15
Confidence 6/10
Evidence quality 3/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.