Skip to content

Commit 327b9f5

Browse files
Support fee overpayment by 1 msat in expect_payment_forwarded test util.
See ClaimAlongRouteArgs::allow_1_msat_fee_overpay.
1 parent 88bb851 commit 327b9f5

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3405,7 +3405,7 @@ fn do_test_reload_mon_update_completion_actions(close_during_reload: bool) {
34053405
let mut events = nodes[1].node.get_and_clear_pending_events();
34063406
assert_eq!(events.len(), if close_during_reload { 2 } else { 1 });
34073407
expect_payment_forwarded(events.pop().unwrap(), &nodes[1], &nodes[0], &nodes[2], Some(1000),
3408-
None, close_during_reload, false);
3408+
None, close_during_reload, false, false);
34093409
if close_during_reload {
34103410
match events[0] {
34113411
Event::ChannelClosed { .. } => {},

lightning/src/ln/functional_test_utils.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2204,14 +2204,22 @@ macro_rules! expect_payment_path_successful {
22042204
pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
22052205
event: Event, node: &H, prev_node: &H, next_node: &H, expected_fee: Option<u64>,
22062206
expected_extra_fees_msat: Option<u64>, upstream_force_closed: bool,
2207-
downstream_force_closed: bool
2208-
) {
2207+
downstream_force_closed: bool, allow_1_msat_fee_overpay: bool,
2208+
) -> Option<u64> {
22092209
match event {
22102210
Event::PaymentForwarded {
22112211
total_fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id,
22122212
outbound_amount_forwarded_msat: _, skimmed_fee_msat
22132213
} => {
2214-
assert_eq!(total_fee_earned_msat, expected_fee);
2214+
if allow_1_msat_fee_overpay {
2215+
// Aggregating fees for blinded paths may result in a rounding error, causing slight
2216+
// overpayment in fees.
2217+
let actual_fee = total_fee_earned_msat.unwrap();
2218+
let expected_fee = expected_fee.unwrap();
2219+
assert!(actual_fee == expected_fee || actual_fee == expected_fee + 1);
2220+
} else {
2221+
assert_eq!(total_fee_earned_msat, expected_fee);
2222+
}
22152223

22162224
// Check that the (knowingly) withheld amount is always less or equal to the expected
22172225
// overpaid amount.
@@ -2226,6 +2234,7 @@ pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
22262234
assert!(node.node().list_channels().iter().any(|x| x.counterparty.node_id == next_node.node().get_our_node_id() && x.channel_id == next_channel_id.unwrap()));
22272235
}
22282236
assert_eq!(claim_from_onchain_tx, downstream_force_closed);
2237+
total_fee_earned_msat
22292238
},
22302239
_ => panic!("Unexpected event"),
22312240
}
@@ -2238,7 +2247,7 @@ macro_rules! expect_payment_forwarded {
22382247
assert_eq!(events.len(), 1);
22392248
$crate::ln::functional_test_utils::expect_payment_forwarded(
22402249
events.pop().unwrap(), &$node, &$prev_node, &$next_node, $expected_fee, None,
2241-
$upstream_force_closed, $downstream_force_closed
2250+
$upstream_force_closed, $downstream_force_closed, false
22422251
);
22432252
}
22442253
}
@@ -2790,7 +2799,7 @@ pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArg
27902799
let mut events = $node.node.get_and_clear_pending_events();
27912800
assert_eq!(events.len(), 1);
27922801
expect_payment_forwarded(events.pop().unwrap(), *$node, $next_node, $prev_node,
2793-
Some(fee as u64), expected_extra_fee, false, false);
2802+
Some(fee as u64), expected_extra_fee, false, false, false);
27942803
expected_total_fee_msat += fee as u64;
27952804
fwd_amt_msat += fee as u64;
27962805
check_added_monitors!($node, 1);

0 commit comments

Comments
 (0)