Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion fuzz/src/chanmon_consistency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,8 @@ fn assert_disconnect_action(action: &msgs::ErrorAction) -> (&msgs::WarningMessag
// Since sending/receiving messages may be delayed, `timer_tick_occurred` may cause a node to
// disconnect their counterparty if they're expecting a timely response.
if let msgs::ErrorAction::DisconnectPeerWithWarning { ref msg } = action {
let is_quiescent_msg = msg.data.contains("already sent splice_locked, cannot RBF");
let is_quiescent_msg = msg.data.contains("already sent splice_locked, cannot RBF")
|| msg.data.contains("contribution no longer valid at quiescence");
if !msg.data.contains("Disconnecting due to timeout awaiting response") && !is_quiescent_msg
{
panic!("Unexpected disconnect case: {}", msg.data);
Expand Down
14 changes: 9 additions & 5 deletions lightning/src/events/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1647,8 +1647,12 @@ pub enum Event {
/// [`ChainMonitor::get_claimable_balances`]: crate::chain::chainmonitor::ChainMonitor::get_claimable_balances
last_local_balance_msat: Option<u64>,
},
/// Used to indicate that a splice for the given `channel_id` has been negotiated and its
/// funding transaction has been broadcast.
/// Used to indicate that a splice for the given `channel_id` has been negotiated, its
/// funding transaction has been broadcast, and local inputs or outputs were contributed to
/// it.
///
/// This event is not emitted if the counterparty negotiated a splice without using a local
/// contribution.
///
/// The splice is then considered pending until both parties have seen enough confirmations to
/// consider the funding locked. Once this occurs, an [`Event::ChannelReady`] will be emitted.
Expand Down Expand Up @@ -1679,9 +1683,9 @@ pub enum Event {
},
/// Used to indicate that a splice negotiation round for the given `channel_id` has failed.
///
/// Each splice attempt (initial or RBF) resolves to either [`Event::SpliceNegotiated`] on
/// success or this event on failure. Prior successfully negotiated splice transactions are
/// unaffected.
/// Each splice attempt (initial or RBF) resolves to this event on failure. On success,
/// [`Event::SpliceNegotiated`] is emitted if the negotiated transaction includes local
/// inputs or outputs. Prior successfully negotiated splice transactions are unaffected.
///
/// Any UTXOs contributed to the failed round that are not committed to a prior negotiated
/// splice transaction will be returned via a preceding [`Event::DiscardFunding`].
Expand Down
6 changes: 3 additions & 3 deletions lightning/src/ln/async_signer_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1853,7 +1853,7 @@ fn test_async_splice_initial_commit_sig() {
acceptor.node.handle_tx_signatures(initiator_node_id, &tx_signatures);

let _ = get_event!(initiator, Event::SpliceNegotiated);
let _ = get_event!(acceptor, Event::SpliceNegotiated);
assert!(acceptor.node.get_and_clear_pending_events().is_empty());
}

#[test]
Expand Down Expand Up @@ -1945,7 +1945,7 @@ fn test_async_splice_initial_commit_sig_waits_for_monitor_before_tx_signatures()
acceptor.node.handle_tx_signatures(initiator_node_id, &tx_signatures);

let _ = get_event!(initiator, Event::SpliceNegotiated);
let _ = get_event!(acceptor, Event::SpliceNegotiated);
assert!(acceptor.node.get_and_clear_pending_events().is_empty());
}

#[test]
Expand Down Expand Up @@ -2022,5 +2022,5 @@ fn test_async_splice_shared_input_signature_released_on_unblock() {
acceptor.node.handle_tx_signatures(initiator_node_id, &tx_signatures);

let _ = get_event!(initiator, Event::SpliceNegotiated);
let _ = get_event!(acceptor, Event::SpliceNegotiated);
assert!(acceptor.node.get_and_clear_pending_events().is_empty());
}
Loading