Remove unused NegotiationError and contributed_inputs_and_outputs methods
What changed, and why it matters
This commit is a routine code cleanup. It removes an unused error type and several helper methods that are no longer called anywhere in the codebase. There is no change to behavior, no bug fix, and no security-related content.
No action required. This is a non-functional refactoring change with no security relevance.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch deletes the NegotiationError struct and the into_negotiation_error, to_contributed_inputs_and_outputs, and into_contributed_inputs_and_outputs methods from lightning/src/ln/interactivetxs.rs. The commit message states these became unused after splice_funding_failed_for! started deriving inputs and outputs directly from FundingContribution. The diff is purely subtractive and does not alter any active logic paths.
Changed components
lightning/src/ln/interactivetxs.rsInspect captured patch +0 / −83
diff --git a/lightning/src/ln/interactivetxs.rs b/lightning/src/ln/interactivetxs.rs
index ca8c445..10dae95 100644
--- a/lightning/src/ln/interactivetxs.rs
+++ b/lightning/src/ln/interactivetxs.rs
@@ -90,13 +90,6 @@ impl SerialIdExt for SerialId {
}
}
-#[derive(Clone, Debug)]
-pub(crate) struct NegotiationError {
- pub reason: AbortReason,
- pub contributed_inputs: Vec<BitcoinOutPoint>,
- pub contributed_outputs: Vec<TxOut>,
-}
-
#[derive(Debug, Clone, Copy, PartialEq)]
pub(crate) enum AbortReason {
InvalidStateTransition,
@@ -370,11 +363,6 @@ impl ConstructedTransaction {
Ok(tx)
}
- fn into_negotiation_error(self, reason: AbortReason) -> NegotiationError {
- let (contributed_inputs, contributed_outputs) = self.into_contributed_inputs_and_outputs();
- NegotiationError { reason, contributed_inputs, contributed_outputs }
- }
-
fn contributed_inputs(&self) -> impl Iterator<Item = BitcoinOutPoint> + '_ {
self.tx
.input
@@ -401,40 +389,6 @@ impl ConstructedTransaction {
.map(|(_, (txout, _))| txout)
}
- fn to_contributed_inputs_and_outputs(&self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- (self.contributed_inputs().collect(), self.contributed_outputs().cloned().collect())
- }
-
- fn into_contributed_inputs_and_outputs(self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- let contributed_inputs = self
- .tx
- .input
- .into_iter()
- .zip(self.input_metadata.iter())
- .enumerate()
- .filter(|(_, (_, input))| input.is_local(self.holder_is_initiator))
- .filter(|(index, _)| {
- self.shared_input_index
- .map(|shared_index| *index != shared_index as usize)
- .unwrap_or(true)
- })
- .map(|(_, (txin, _))| txin.previous_output)
- .collect();
-
- let contributed_outputs = self
- .tx
- .output
- .into_iter()
- .zip(self.output_metadata.iter())
- .enumerate()
- .filter(|(_, (_, output))| output.is_local(self.holder_is_initiator))
- .filter(|(index, _)| *index != self.shared_output_index as usize)
- .map(|(_, (txout, _))| txout)
- .collect();
-
- (contributed_inputs, contributed_outputs)
- }
-
pub fn tx(&self) -> &Transaction {
&self.tx
}
@@ -921,10 +875,6 @@ impl InteractiveTxSigningSession {
Ok(())
}
- pub(crate) fn into_negotiation_error(self, reason: AbortReason) -> NegotiationError {
- self.unsigned_tx.into_negotiation_error(reason)
- }
-
pub(super) fn contributed_inputs(&self) -> impl Iterator<Item = BitcoinOutPoint> + '_ {
self.unsigned_tx.contributed_inputs()
}
@@ -932,14 +882,6 @@ impl InteractiveTxSigningSession {
pub(super) fn contributed_outputs(&self) -> impl Iterator<Item = &TxOut> + '_ {
self.unsigned_tx.contributed_outputs()
}
-
- pub(super) fn to_contributed_inputs_and_outputs(&self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- (self.contributed_inputs().collect(), self.contributed_outputs().cloned().collect())
- }
-
- pub(super) fn into_contributed_inputs_and_outputs(self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- self.unsigned_tx.into_contributed_inputs_and_outputs()
- }
}
impl_writeable_tlv_based!(InteractiveTxSigningSession, {
@@ -2172,27 +2114,6 @@ impl InteractiveTxConstructor {
Self::new(args, false)
}
- fn into_negotiation_error(self, reason: AbortReason) -> NegotiationError {
- let (contributed_inputs, contributed_outputs) = self.into_contributed_inputs_and_outputs();
- NegotiationError { reason, contributed_inputs, contributed_outputs }
- }
-
- pub(super) fn into_contributed_inputs_and_outputs(self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- let contributed_inputs = self
- .inputs_to_contribute
- .into_iter()
- .filter(|(_, input)| !input.is_shared())
- .map(|(_, input)| input.into_tx_in().previous_output)
- .collect();
- let contributed_outputs = self
- .outputs_to_contribute
- .into_iter()
- .filter(|(_, output)| !output.is_shared())
- .map(|(_, output)| output.into_tx_out())
- .collect();
- (contributed_inputs, contributed_outputs)
- }
-
pub(super) fn contributed_inputs(&self) -> impl Iterator<Item = BitcoinOutPoint> + '_ {
self.inputs_to_contribute
.iter()
@@ -2207,10 +2128,6 @@ impl InteractiveTxConstructor {
.map(|(_, output)| output.tx_out())
}
- pub(super) fn to_contributed_inputs_and_outputs(&self) -> (Vec<BitcoinOutPoint>, Vec<TxOut>) {
- (self.contributed_inputs().collect(), self.contributed_outputs().cloned().collect())
- }
-
pub fn is_initiator(&self) -> bool {
self.is_initiator
}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.