pub enum NegotiationFailureReason {
Unknown,
PeerDisconnected,
CounterpartyAborted {
msg: UntrustedString,
},
NegotiationError {
msg: String,
},
ContributionInvalid,
LocallyCanceled,
ChannelClosing,
FeeRateTooLow,
CannotInitiateRbf,
}Expand description
The reason a funding negotiation round failed.
Each negotiation attempt (initial or RBF) resolves to either success or failure. This enum
indicates what caused the failure. It is reported through Event::SpliceNegotiationFailed,
or through SpliceContributionError::NegotiationFailed when
ChannelManager::funding_contributed refuses the contribution outright. Use
is_retriable to determine whether the splice can be reattempted on this channel by calling
ChannelManager::splice_channel.
Variants§
Unknown
The reason was not available (e.g., from an older serialization).
PeerDisconnected
The peer disconnected during negotiation. Wait for the peer to reconnect, then retry.
CounterpartyAborted
The counterparty explicitly aborted the negotiation by sending tx_abort. Retrying with
the same parameters is unlikely to succeed — consider adjusting the contribution or
waiting for the counterparty to initiate.
Fields
msg: UntrustedStringThe counterparty’s abort message.
This is counterparty-provided data. Use Display on UntrustedString for safe
logging.
NegotiationError
An error occurred during interactive transaction negotiation (e.g., the counterparty sent an invalid message). The negotiation was aborted.
ContributionInvalid
The funding contribution was invalid (e.g., insufficient balance for the splice amount).
Call ChannelManager::splice_channel for a fresh FundingTemplate and build a new
contribution with adjusted parameters.
LocallyCanceled
The negotiation was locally canceled via ChannelManager::cancel_funding_contributed.
ChannelClosing
The channel is closing, so the negotiation cannot continue. See Event::ChannelClosed
for the closure reason.
FeeRateTooLow
The contribution’s feerate was too low for RBF. Call ChannelManager::splice_channel
for a fresh FundingTemplate (which includes the updated minimum feerate) and build a
new contribution with a higher feerate.
CannotInitiateRbf
An RBF attempt could not be initiated (e.g., a prior splice transaction already
confirmed). The channel remains operational — start a new splice with
ChannelManager::splice_channel if further changes are needed.
Implementations§
Source§impl NegotiationFailureReason
impl NegotiationFailureReason
Sourcepub fn is_retriable(&self) -> bool
pub fn is_retriable(&self) -> bool
Whether the splice negotiation is likely to succeed if retried on this channel. When true,
call ChannelManager::splice_channel to obtain a fresh FundingTemplate and retry.