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
Emit SpliceFailed events when tx_abort is received for funded channels
When a tx_abort message is successfully processed for a funded channel
with an active splice negotiation, emit Event::SpliceFailed to notify
users that the splice operation was aborted by the counterparty.
This extends the SpliceFailed event coverage to handle abort scenarios,
providing comprehensive splice failure notifications across all stages:
- AwaitingAck: funding_txo and channel_type are None since funding
parameters were not yet established
- ConstructingTransaction/AwaitingSignatures: Include actual funding
information since negotiation had progressed to funding establishment
The implementation captures splice context before taking the funding
negotiation state, ensuring accurate failure information is available
for event emission while maintaining proper tx_abort acknowledgment
behavior per the Lightning specification.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
Err(MsgHandleErrInternal::send_err_msg_no_close(format!("Got a message for a channel from the wrong node! No such channel for the passed counterparty_node_id {}", counterparty_node_id), msg.channel_id))
@@ -14855,8 +14871,13 @@ where
14855
14871
// be persisted before any signatures are exchanged.
14856
14872
let _persistence_guard = PersistenceNotifierGuard::optionally_notify(self, || {
14857
14873
let res = self.internal_tx_abort(&counterparty_node_id, msg);
14874
+
let persist = match &res {
14875
+
Err(e) if e.closes_channel() => NotifyOption::DoPersist,
14876
+
Err(_) => NotifyOption::SkipPersistHandleEvents,
14877
+
Ok(persist) => *persist,
14878
+
};
14858
14879
let _ = handle_error!(self, res, counterparty_node_id);
0 commit comments