Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
953ac60
Accept tx_init_rbf for pending splice transactions
jkczyz Feb 18, 2026
622f853
f - Remove redundant holder_is_quiescence_initiator field
jkczyz Mar 5, 2026
61c9f8e
f - Remove unnecessary debug_assert in internal_tx_init_rbf
jkczyz Mar 5, 2026
f7b70a2
Allow multiple RBF splice candidates in channel monitor
jkczyz Feb 19, 2026
bf12422
Add rbf_channel API for initiating splice RBF
jkczyz Feb 19, 2026
41418c2
Send tx_init_rbf instead of splice_init when a splice is pending
jkczyz Feb 19, 2026
3b747bf
Handle tx_ack_rbf on the initiator side
jkczyz Feb 19, 2026
0cb87f6
f - Extract awaiting_ack_context and begin_funding_negotiation helpers
jkczyz Mar 5, 2026
3e05c82
f - Add test_splice_rbf_not_quiescence_initiator test
jkczyz Mar 5, 2026
41316fe
f - Remove unnecessary debug_assert in internal_tx_ack_rbf
jkczyz Mar 5, 2026
c0f688d
Allow acceptor contribution to RBF splice via tx_init_rbf
jkczyz Feb 19, 2026
97ee9ed
Preserve our funding contribution across counterparty RBF attempts
jkczyz Feb 23, 2026
a12b4c0
Consider prior contributions when filtering unique inputs/outputs
jkczyz Feb 24, 2026
e5aed89
Filter prior contributions from SpliceFundingFailed events
jkczyz Feb 25, 2026
5239f0c
Handle FeeRateAdjustmentError variants in splice_init acceptor path
jkczyz Feb 25, 2026
ec9c872
f - Simplify FeeRateAdjustmentError match by moving suffixes into Dis…
jkczyz Mar 5, 2026
5d09eb7
Handle FeeRateAdjustmentError variants in tx_init_rbf acceptor path
jkczyz Feb 25, 2026
eb2ab08
f - Simplify FeeRateAdjustmentError match in tx_init_rbf acceptor path
jkczyz Mar 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions lightning/src/chain/channelmonitor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4039,9 +4039,14 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitorImpl<Signer> {
}

if let Some(parent_funding_txid) = channel_parameters.splice_parent_funding_txid.as_ref() {
// Only one splice can be negotiated at a time after we've exchanged `channel_ready`
// (implying our funding is confirmed) that spends our currently locked funding.
if !self.pending_funding.is_empty() {
// Multiple RBF candidates for the same splice are allowed (they share the same
// parent funding txid). A new splice with a different parent while one is pending
// is not allowed.
let has_different_parent = self.pending_funding.iter().any(|funding| {
funding.channel_parameters.splice_parent_funding_txid.as_ref()
!= Some(parent_funding_txid)
});
if has_different_parent {
log_error!(
logger,
"Negotiated splice while channel is pending channel_ready/splice_locked"
Expand Down
Loading
Loading