Skip to content

Commit be9f132

Browse files
Account for prop fee in test util fee calculation.
1 parent 25fa9b3 commit be9f132

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2611,6 +2611,8 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
26112611
} = args;
26122612
let claim_event = expected_paths[0].last().unwrap().node.get_and_clear_pending_events();
26132613
assert_eq!(claim_event.len(), 1);
2614+
#[allow(unused)]
2615+
let mut fwd_amt_msat = 0;
26142616
match claim_event[0] {
26152617
Event::PaymentClaimed {
26162618
purpose: PaymentPurpose::SpontaneousPayment(preimage),
@@ -2627,6 +2629,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
26272629
assert_eq!(htlcs.len(), expected_paths.len()); // One per path.
26282630
assert_eq!(htlcs.iter().map(|h| h.value_msat).sum::<u64>(), amount_msat);
26292631
expected_paths.iter().zip(htlcs).for_each(|(path, htlc)| check_claimed_htlc_channel(origin_node, path, htlc));
2632+
fwd_amt_msat = amount_msat;
26302633
},
26312634
Event::PaymentClaimed {
26322635
purpose: PaymentPurpose::InvoicePayment { .. },
@@ -2639,6 +2642,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
26392642
assert_eq!(htlcs.len(), expected_paths.len()); // One per path.
26402643
assert_eq!(htlcs.iter().map(|h| h.value_msat).sum::<u64>(), amount_msat);
26412644
expected_paths.iter().zip(htlcs).for_each(|(path, htlc)| check_claimed_htlc_channel(origin_node, path, htlc));
2645+
fwd_amt_msat = amount_msat;
26422646
}
26432647
_ => panic!(),
26442648
}
@@ -2698,19 +2702,25 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
26982702
{
26992703
$node.node.handle_update_fulfill_htlc(&$prev_node.node.get_our_node_id(), &next_msgs.as_ref().unwrap().0);
27002704
let mut fee = {
2701-
let per_peer_state = $node.node.per_peer_state.read().unwrap();
2702-
let peer_state = per_peer_state.get(&$prev_node.node.get_our_node_id())
2703-
.unwrap().lock().unwrap();
2704-
let channel = peer_state.channel_by_id.get(&next_msgs.as_ref().unwrap().0.channel_id).unwrap();
2705-
if let Some(prev_config) = channel.context().prev_config() {
2706-
prev_config.forwarding_fee_base_msat
2707-
} else {
2708-
channel.context().config().forwarding_fee_base_msat
2709-
}
2705+
let (base_fee, prop_fee) = {
2706+
let per_peer_state = $node.node.per_peer_state.read().unwrap();
2707+
let peer_state = per_peer_state.get(&$prev_node.node.get_our_node_id())
2708+
.unwrap().lock().unwrap();
2709+
let channel = peer_state.channel_by_id.get(&next_msgs.as_ref().unwrap().0.channel_id).unwrap();
2710+
if let Some(prev_config) = channel.context().prev_config() {
2711+
(prev_config.forwarding_fee_base_msat as u64,
2712+
prev_config.forwarding_fee_proportional_millionths as u64)
2713+
} else {
2714+
(channel.context().config().forwarding_fee_base_msat as u64,
2715+
channel.context().config().forwarding_fee_proportional_millionths as u64)
2716+
}
2717+
};
2718+
(fwd_amt_msat * prop_fee / 1_000_000) + base_fee
27102719
};
2711-
if $idx == 1 { fee += expected_extra_fees[i]; }
2720+
if $idx == 1 { fee += expected_extra_fees[i] as u64; }
27122721
expect_payment_forwarded!(*$node, $next_node, $prev_node, Some(fee as u64), false, false);
27132722
expected_total_fee_msat += fee as u64;
2723+
fwd_amt_msat += fee as u64;
27142724
check_added_monitors!($node, 1);
27152725
let new_next_msgs = if $new_msgs {
27162726
let events = $node.node.get_and_clear_pending_msg_events();

0 commit comments

Comments
 (0)