Skip to content

Commit 57d3bb8

Browse files
committed
Second dust check on change output (after subtracting fee)
1 parent ee9444b commit 57d3bb8

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lightning/src/ln/channel.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2291,9 +2291,12 @@ impl<SP: Deref> PendingV2Channel<SP> where SP::Target: SignerProvider {
22912291
};
22922292
let change_output_weight = get_output_weight(&change_output.script_pubkey).to_wu();
22932293
let change_output_fee = fee_for_weight(self.dual_funding_context.funding_feerate_sat_per_1000_weight, change_output_weight);
2294-
change_output.value = Amount::from_sat(change_value.saturating_sub(change_output_fee));
2295-
// Note: dust check not done here, should be handled before
2296-
funding_outputs.push(OutputOwned::Single(change_output));
2294+
let change_value_decreased_with_fee = change_value.saturating_sub(change_output_fee);
2295+
// Check dust limit again
2296+
if change_value_decreased_with_fee > self.context.holder_dust_limit_satoshis {
2297+
change_output.value = Amount::from_sat(change_value_decreased_with_fee);
2298+
funding_outputs.push(OutputOwned::Single(change_output));
2299+
}
22972300
}
22982301

22992302
let constructor_args = InteractiveTxConstructorArgs {

0 commit comments

Comments
 (0)