Skip to content

Commit 96f06d3

Browse files
Test utils: support intermediate nodes taking 1msat extra fee.
See docs on the new field.
1 parent 327b9f5 commit 96f06d3

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2649,6 +2649,14 @@ pub struct ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
26492649
pub expected_min_htlc_overpay: Vec<u32>,
26502650
pub skip_last: bool,
26512651
pub payment_preimage: PaymentPreimage,
2652+
// Allow forwarding nodes to have taken 1 msat more fee than expected based on the downstream
2653+
// fulfill amount.
2654+
//
2655+
// Necessary because our test utils calculate the expected fee for an intermediate node based on
2656+
// the amount was claimed in their downstream peer's fulfill, but blinded intermediate nodes
2657+
// calculate their fee based on the inbound amount from their upstream peer, causing a difference
2658+
// in rounding.
2659+
pub allow_1_msat_fee_overpay: bool,
26522660
}
26532661

26542662
impl<'a, 'b, 'c, 'd> ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
@@ -2659,6 +2667,7 @@ impl<'a, 'b, 'c, 'd> ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
26592667
Self {
26602668
origin_node, expected_paths, expected_extra_fees: vec![0; expected_paths.len()],
26612669
expected_min_htlc_overpay: vec![0; expected_paths.len()], skip_last: false, payment_preimage,
2670+
allow_1_msat_fee_overpay: false,
26622671
}
26632672
}
26642673
pub fn skip_last(mut self, skip_last: bool) -> Self {
@@ -2673,12 +2682,16 @@ impl<'a, 'b, 'c, 'd> ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
26732682
self.expected_min_htlc_overpay = extra_fees;
26742683
self
26752684
}
2685+
pub fn allow_1_msat_fee_overpay(mut self) -> Self {
2686+
self.allow_1_msat_fee_overpay = true;
2687+
self
2688+
}
26762689
}
26772690

26782691
pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArgs) -> u64 {
26792692
let ClaimAlongRouteArgs {
26802693
origin_node, expected_paths, expected_extra_fees, expected_min_htlc_overpay, skip_last,
2681-
payment_preimage: our_payment_preimage
2694+
payment_preimage: our_payment_preimage, allow_1_msat_fee_overpay,
26822695
} = args;
26832696
let claim_event = expected_paths[0].last().unwrap().node.get_and_clear_pending_events();
26842697
assert_eq!(claim_event.len(), 1);
@@ -2798,10 +2811,10 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
27982811
}
27992812
let mut events = $node.node.get_and_clear_pending_events();
28002813
assert_eq!(events.len(), 1);
2801-
expect_payment_forwarded(events.pop().unwrap(), *$node, $next_node, $prev_node,
2802-
Some(fee as u64), expected_extra_fee, false, false, false);
2803-
expected_total_fee_msat += fee as u64;
2804-
fwd_amt_msat += fee as u64;
2814+
let actual_fee = expect_payment_forwarded(events.pop().unwrap(), *$node, $next_node, $prev_node,
2815+
Some(fee as u64), expected_extra_fee, false, false, allow_1_msat_fee_overpay);
2816+
expected_total_fee_msat += actual_fee.unwrap();
2817+
fwd_amt_msat += actual_fee.unwrap();
28052818
check_added_monitors!($node, 1);
28062819
let new_next_msgs = if $new_msgs {
28072820
let events = $node.node.get_and_clear_pending_msg_events();

0 commit comments

Comments
 (0)