Skip to content

Commit ed09d2f

Browse files
Account for prop fee in test util fee calculation.
1 parent ea136fa commit ed09d2f

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2695,6 +2695,8 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
26952695
} = args;
26962696
let claim_event = expected_paths[0].last().unwrap().node.get_and_clear_pending_events();
26972697
assert_eq!(claim_event.len(), 1);
2698+
#[allow(unused)]
2699+
let mut fwd_amt_msat = 0;
26982700
match claim_event[0] {
26992701
Event::PaymentClaimed {
27002702
purpose: PaymentPurpose::SpontaneousPayment(preimage),
@@ -2711,6 +2713,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
27112713
assert_eq!(htlcs.len(), expected_paths.len()); // One per path.
27122714
assert_eq!(htlcs.iter().map(|h| h.value_msat).sum::<u64>(), amount_msat);
27132715
expected_paths.iter().zip(htlcs).for_each(|(path, htlc)| check_claimed_htlc_channel(origin_node, path, htlc));
2716+
fwd_amt_msat = amount_msat;
27142717
},
27152718
Event::PaymentClaimed {
27162719
purpose: PaymentPurpose::InvoicePayment { .. },
@@ -2723,6 +2726,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
27232726
assert_eq!(htlcs.len(), expected_paths.len()); // One per path.
27242727
assert_eq!(htlcs.iter().map(|h| h.value_msat).sum::<u64>(), amount_msat);
27252728
expected_paths.iter().zip(htlcs).for_each(|(path, htlc)| check_claimed_htlc_channel(origin_node, path, htlc));
2729+
fwd_amt_msat = amount_msat;
27262730
}
27272731
_ => panic!(),
27282732
}
@@ -2783,15 +2787,20 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
27832787
{
27842788
$node.node.handle_update_fulfill_htlc(&$prev_node.node.get_our_node_id(), &next_msgs.as_ref().unwrap().0);
27852789
let mut fee = {
2786-
let per_peer_state = $node.node.per_peer_state.read().unwrap();
2787-
let peer_state = per_peer_state.get(&$prev_node.node.get_our_node_id())
2788-
.unwrap().lock().unwrap();
2789-
let channel = peer_state.channel_by_id.get(&next_msgs.as_ref().unwrap().0.channel_id).unwrap();
2790-
if let Some(prev_config) = channel.context().prev_config() {
2791-
prev_config.forwarding_fee_base_msat
2792-
} else {
2793-
channel.context().config().forwarding_fee_base_msat
2794-
}
2790+
let (base_fee, prop_fee) = {
2791+
let per_peer_state = $node.node.per_peer_state.read().unwrap();
2792+
let peer_state = per_peer_state.get(&$prev_node.node.get_our_node_id())
2793+
.unwrap().lock().unwrap();
2794+
let channel = peer_state.channel_by_id.get(&next_msgs.as_ref().unwrap().0.channel_id).unwrap();
2795+
if let Some(prev_config) = channel.context().prev_config() {
2796+
(prev_config.forwarding_fee_base_msat as u64,
2797+
prev_config.forwarding_fee_proportional_millionths as u64)
2798+
} else {
2799+
(channel.context().config().forwarding_fee_base_msat as u64,
2800+
channel.context().config().forwarding_fee_proportional_millionths as u64)
2801+
}
2802+
};
2803+
((fwd_amt_msat * prop_fee / 1_000_000) + base_fee) as u32
27952804
};
27962805

27972806
let mut expected_extra_fee = None;
@@ -2805,6 +2814,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
28052814
expect_payment_forwarded(events.pop().unwrap(), *$node, $next_node, $prev_node,
28062815
Some(fee as u64), expected_extra_fee, false, false);
28072816
expected_total_fee_msat += fee as u64;
2817+
fwd_amt_msat += fee as u64;
28082818
check_added_monitors!($node, 1);
28092819
let new_next_msgs = if $new_msgs {
28102820
let events = $node.node.get_and_clear_pending_msg_events();

0 commit comments

Comments
 (0)