Remove unused fields from ConstructedTransaction
What changed, and why it matters
This commit is a simple code cleanup: it removes two bookkeeping fields (local_outputs_value_satoshis and remote_outputs_value_satoshis) from an internal transaction-construction structure because they were never actually used. The change also renumbers the remaining data fields saved to disk. There is no security-relevant behavior change visible in the diff.
No security action needed. Treat as routine refactoring/cleanup.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch deletes the local_outputs_value_satoshis and remote_outputs_value_satoshis u64 fields from ConstructedTransaction in lightning/src/ln/interactivetxs.rs, removes their computation from the constructor, drops the corresponding TLV serialization tags, and updates a test fixture. The commit message explicitly states the fields are unused. No logic that validates, signs, or broadcasts transactions is altered.
Changed components
lightning/src/ln/interactivetxs.rsConstructedTransaction structInspect captured patch +7 / −24
diff --git a/lightning/src/ln/interactivetxs.rs b/lightning/src/ln/interactivetxs.rs
index 56800e1..10f3a31 100644
--- a/lightning/src/ln/interactivetxs.rs
+++ b/lightning/src/ln/interactivetxs.rs
@@ -203,10 +203,7 @@ pub(crate) struct ConstructedTransaction {
tx: Transaction,
local_inputs_value_satoshis: u64,
- local_outputs_value_satoshis: u64,
-
remote_inputs_value_satoshis: u64,
- remote_outputs_value_satoshis: u64,
shared_input_index: Option<u32>,
}
@@ -253,10 +250,8 @@ impl_writeable_tlv_based!(ConstructedTransaction, {
(5, output_metadata, required),
(7, tx, required),
(9, local_inputs_value_satoshis, required),
- (11, local_outputs_value_satoshis, required),
- (13, remote_inputs_value_satoshis, required),
- (15, remote_outputs_value_satoshis, required),
- (17, shared_input_index, option),
+ (11, remote_inputs_value_satoshis, required),
+ (13, shared_input_index, option),
});
impl ConstructedTransaction {
@@ -280,14 +275,7 @@ impl ConstructedTransaction {
.inputs
.iter()
.fold(0u64, |value, (_, input)| value.saturating_add(input.local_value()));
-
- let local_outputs_value_satoshis = context
- .outputs
- .iter()
- .fold(0u64, |value, (_, output)| value.saturating_add(output.local_value()));
-
let remote_inputs_value_satoshis = context.remote_inputs_value();
- let remote_outputs_value_satoshis = context.remote_outputs_value();
let satisfaction_weight =
Weight::from_wu(context.inputs.iter().fold(0u64, |value, (_, input)| {
@@ -326,16 +314,13 @@ impl ConstructedTransaction {
Ok(Self {
holder_is_initiator: context.holder_is_initiator,
- local_inputs_value_satoshis,
- local_outputs_value_satoshis,
-
- remote_inputs_value_satoshis,
- remote_outputs_value_satoshis,
-
input_metadata,
output_metadata,
tx,
+ local_inputs_value_satoshis,
+ remote_inputs_value_satoshis,
+
shared_input_index,
})
}
@@ -3321,10 +3306,8 @@ mod tests {
input_metadata,
output_metadata: vec![], // N/A for test
tx: transaction.clone(),
- local_inputs_value_satoshis: 0, // N/A for test
- local_outputs_value_satoshis: 0, // N/A for test
- remote_inputs_value_satoshis: 0, // N/A for test
- remote_outputs_value_satoshis: 0, // N/A for test
+ local_inputs_value_satoshis: 0, // N/A for test
+ remote_inputs_value_satoshis: 0, // N/A for test
shared_input_index: None,
};
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.