Skip to content

Commit ca47364

Browse files
committed
Rename method, review
1 parent 9cd7e5e commit ca47364

File tree

2 files changed

+57
-4
lines changed

2 files changed

+57
-4
lines changed

lightning/src/ln/channel.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2100,8 +2100,8 @@ impl<SP: Deref> PendingV2Channel<SP> where SP::Target: SignerProvider {
21002100
|err| APIError::APIMisuseError {
21012101
err: format!("Failed to get change script as new destination script, {:?}", err),
21022102
})?;
2103-
let _res = add_funding_change_output(
2104-
change_value, change_script, &mut funding_outputs, self.dual_funding_context.funding_feerate_sat_per_1000_weight);
2103+
add_funding_change_output(change_value, change_script,
2104+
&mut funding_outputs, self.dual_funding_context.funding_feerate_sat_per_1000_weight);
21052105
}
21062106

21072107
let constructor_args = InteractiveTxConstructorArgs {
@@ -4567,7 +4567,7 @@ fn get_v2_channel_reserve_satoshis(channel_value_satoshis: u64, dust_limit_satos
45674567
fn add_funding_change_output(
45684568
change_value: u64, change_script: ScriptBuf,
45694569
funding_outputs: &mut Vec<OutputOwned>, funding_feerate_sat_per_1000_weight: u32,
4570-
) -> TxOut {
4570+
) {
45714571
let mut change_output = TxOut {
45724572
value: Amount::from_sat(change_value),
45734573
script_pubkey: change_script,
@@ -4576,7 +4576,6 @@ fn add_funding_change_output(
45764576
let change_output_fee = fee_for_weight(funding_feerate_sat_per_1000_weight, change_output_weight);
45774577
change_output.value = Amount::from_sat(change_value.saturating_sub(change_output_fee));
45784578
funding_outputs.push(OutputOwned::Single(change_output.clone()));
4579-
change_output
45804579
}
45814580

45824581
pub(super) fn calculate_our_funding_satoshis(

lightning/src/ln/interactivetxs.rs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2728,4 +2728,58 @@ mod tests {
27282728
assert_eq!(res.unwrap(), 154);
27292729
}
27302730
}
2731+
2732+
#[test]
2733+
fn test_calculate_change_output_value_splice() {
2734+
let input_prevouts_owned = vec![
2735+
TxOut { value: Amount::from_sat(70_000), script_pubkey: ScriptBuf::new() },
2736+
TxOut { value: Amount::from_sat(60_000), script_pubkey: ScriptBuf::new() },
2737+
];
2738+
let input_prevouts: Vec<&TxOut> = input_prevouts_owned.iter().collect();
2739+
let our_contributed = 110_000;
2740+
let txout = TxOut { value: Amount::from_sat(148_000), script_pubkey: ScriptBuf::new() };
2741+
let outputs = vec![OutputOwned::Shared(SharedOwnedOutput::new(txout, our_contributed))];
2742+
let funding_feerate_sat_per_1000_weight = 3000;
2743+
2744+
let total_inputs: u64 = input_prevouts.iter().map(|o| o.value.to_sat()).sum();
2745+
let gross_change = total_inputs - our_contributed;
2746+
let fees = 1746;
2747+
let common_fees = 126;
2748+
{
2749+
// There is leftover for change
2750+
let res = calculate_change_output_value(
2751+
true,
2752+
our_contributed,
2753+
&input_prevouts,
2754+
&outputs,
2755+
funding_feerate_sat_per_1000_weight,
2756+
300,
2757+
);
2758+
assert_eq!(res.unwrap(), gross_change - fees - common_fees);
2759+
}
2760+
{
2761+
// Very small leftover
2762+
let res = calculate_change_output_value(
2763+
false,
2764+
128_100,
2765+
&input_prevouts,
2766+
&outputs,
2767+
funding_feerate_sat_per_1000_weight,
2768+
300,
2769+
);
2770+
assert!(res.is_none());
2771+
}
2772+
{
2773+
// Small leftover, but not dust
2774+
let res = calculate_change_output_value(
2775+
false,
2776+
128_100,
2777+
&input_prevouts,
2778+
&outputs,
2779+
funding_feerate_sat_per_1000_weight,
2780+
100,
2781+
);
2782+
assert_eq!(res.unwrap(), 154);
2783+
}
2784+
}
27312785
}

0 commit comments

Comments
 (0)