Skip to content

Commit 9189a7c

Browse files
Support fee overpayment by 1 msat in expect_payment_forwarded test util.
See ClaimAlongRouteArgs::allow_1_msat_fee_overpay.
1 parent f8e2639 commit 9189a7c

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3404,7 +3404,7 @@ fn do_test_reload_mon_update_completion_actions(close_during_reload: bool) {
34043404
let bc_update_id = nodes[1].chain_monitor.latest_monitor_update_id.lock().unwrap().get(&chan_id_bc).unwrap().2;
34053405
let mut events = nodes[1].node.get_and_clear_pending_events();
34063406
assert_eq!(events.len(), if close_during_reload { 2 } else { 1 });
3407-
expect_payment_forwarded(events.pop().unwrap(), &nodes[1], &nodes[0], &nodes[2], Some(1000), close_during_reload, false);
3407+
expect_payment_forwarded(events.pop().unwrap(), &nodes[1], &nodes[0], &nodes[2], Some(1000), close_during_reload, false, false);
34083408
if close_during_reload {
34093409
match events[0] {
34103410
Event::ChannelClosed { .. } => {},

lightning/src/ln/functional_test_utils.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2148,14 +2148,21 @@ macro_rules! expect_payment_path_successful {
21482148

21492149
pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
21502150
event: Event, node: &H, prev_node: &H, next_node: &H, expected_fee: Option<u64>,
2151-
upstream_force_closed: bool, downstream_force_closed: bool
2152-
) {
2151+
upstream_force_closed: bool, downstream_force_closed: bool, allow_1_msat_fee_overpay: bool,
2152+
) -> Option<u64> {
21532153
match event {
21542154
Event::PaymentForwarded {
21552155
fee_earned_msat, prev_channel_id, claim_from_onchain_tx, next_channel_id,
21562156
outbound_amount_forwarded_msat: _
21572157
} => {
2158-
assert_eq!(fee_earned_msat, expected_fee);
2158+
if allow_1_msat_fee_overpay {
2159+
// Aggregating fees for blinded paths may result in a rounding error, causing slight
2160+
// overpayment in fees.
2161+
assert!(fee_earned_msat.unwrap() == expected_fee.unwrap()
2162+
|| fee_earned_msat.unwrap() == expected_fee.unwrap() + 1);
2163+
} else {
2164+
assert_eq!(fee_earned_msat, expected_fee);
2165+
}
21592166
if !upstream_force_closed {
21602167
// Is the event prev_channel_id in one of the channels between the two nodes?
21612168
assert!(node.node().list_channels().iter().any(|x| x.counterparty.node_id == prev_node.node().get_our_node_id() && x.channel_id == prev_channel_id.unwrap()));
@@ -2166,6 +2173,7 @@ pub fn expect_payment_forwarded<CM: AChannelManager, H: NodeHolder<CM=CM>>(
21662173
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()));
21672174
}
21682175
assert_eq!(claim_from_onchain_tx, downstream_force_closed);
2176+
fee_earned_msat
21692177
},
21702178
_ => panic!("Unexpected event"),
21712179
}
@@ -2177,7 +2185,7 @@ macro_rules! expect_payment_forwarded {
21772185
assert_eq!(events.len(), 1);
21782186
$crate::ln::functional_test_utils::expect_payment_forwarded(
21792187
events.pop().unwrap(), &$node, &$prev_node, &$next_node, $expected_fee,
2180-
$upstream_force_closed, $downstream_force_closed);
2188+
$upstream_force_closed, $downstream_force_closed, false);
21812189
}
21822190
}
21832191

0 commit comments

Comments
 (0)