Skip to content

Commit 9520f7e

Browse files
Struct-ify claim_along_route args.
Lays groundwork to make claim_payment* test utils easier to adapt without changing a million callsites.
1 parent 558276d commit 9520f7e

File tree

2 files changed

+47
-19
lines changed

2 files changed

+47
-19
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2566,24 +2566,49 @@ pub fn do_claim_payment_along_route<'a, 'b, 'c>(
25662566
origin_node: &Node<'a, 'b, 'c>, expected_paths: &[&[&Node<'a, 'b, 'c>]], skip_last: bool,
25672567
our_payment_preimage: PaymentPreimage
25682568
) -> u64 {
2569-
let extra_fees = vec![0; expected_paths.len()];
2570-
do_claim_payment_along_route_with_extra_penultimate_hop_fees(origin_node, expected_paths,
2571-
&extra_fees[..], skip_last, our_payment_preimage)
2572-
}
2573-
2574-
pub fn do_claim_payment_along_route_with_extra_penultimate_hop_fees<'a, 'b, 'c>(
2575-
origin_node: &Node<'a, 'b, 'c>, expected_paths: &[&[&Node<'a, 'b, 'c>]], expected_extra_fees:
2576-
&[u32], skip_last: bool, our_payment_preimage: PaymentPreimage
2577-
) -> u64 {
2578-
assert_eq!(expected_paths.len(), expected_extra_fees.len());
25792569
for path in expected_paths.iter() {
25802570
assert_eq!(path.last().unwrap().node.get_our_node_id(), expected_paths[0].last().unwrap().node.get_our_node_id());
25812571
}
25822572
expected_paths[0].last().unwrap().node.claim_funds(our_payment_preimage);
2583-
pass_claimed_payment_along_route(origin_node, expected_paths, expected_extra_fees, skip_last, our_payment_preimage)
2573+
pass_claimed_payment_along_route(
2574+
ClaimAlongRouteArgs::new(origin_node, expected_paths, our_payment_preimage)
2575+
.skip_last(skip_last)
2576+
)
2577+
}
2578+
2579+
pub struct ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
2580+
pub origin_node: &'a Node<'b, 'c, 'd>,
2581+
pub expected_paths: &'a [&'a [&'a Node<'b, 'c, 'd>]],
2582+
pub expected_extra_fees: Vec<u32>,
2583+
pub skip_last: bool,
2584+
pub payment_preimage: PaymentPreimage,
25842585
}
25852586

2586-
pub fn pass_claimed_payment_along_route<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_paths: &[&[&Node<'a, 'b, 'c>]], expected_extra_fees: &[u32], skip_last: bool, our_payment_preimage: PaymentPreimage) -> u64 {
2587+
impl<'a, 'b, 'c, 'd> ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
2588+
pub fn new(
2589+
origin_node: &'a Node<'b, 'c, 'd>, expected_paths: &'a [&'a [&'a Node<'b, 'c, 'd>]],
2590+
payment_preimage: PaymentPreimage,
2591+
) -> Self {
2592+
Self {
2593+
origin_node, expected_paths, expected_extra_fees: vec![0; expected_paths.len()],
2594+
skip_last: false, payment_preimage,
2595+
}
2596+
}
2597+
pub fn skip_last(mut self, skip_last: bool) -> Self {
2598+
self.skip_last = skip_last;
2599+
self
2600+
}
2601+
pub fn with_expected_extra_fees(mut self, extra_fees: Vec<u32>) -> Self {
2602+
self.expected_extra_fees = extra_fees;
2603+
self
2604+
}
2605+
}
2606+
2607+
pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArgs) -> u64 {
2608+
let ClaimAlongRouteArgs {
2609+
origin_node, expected_paths, expected_extra_fees, skip_last,
2610+
payment_preimage: our_payment_preimage
2611+
} = args;
25872612
let claim_event = expected_paths[0].last().unwrap().node.get_and_clear_pending_events();
25882613
assert_eq!(claim_event.len(), 1);
25892614
match claim_event[0] {

lightning/src/ln/payment_tests.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,12 @@ fn mpp_retry_overpay() {
275275

276276
// Can't use claim_payment_along_route as it doesn't support overpayment, so we break out the
277277
// individual steps here.
278+
nodes[3].node.claim_funds(payment_preimage);
278279
let extra_fees = vec![0, total_overpaid_amount];
279-
let expected_total_fee_msat = do_claim_payment_along_route_with_extra_penultimate_hop_fees(
280-
&nodes[0], &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]], &extra_fees[..], false,
281-
payment_preimage);
280+
let expected_route = &[&[&nodes[1], &nodes[3]][..], &[&nodes[2], &nodes[3]][..]];
281+
let args = ClaimAlongRouteArgs::new(&nodes[0], &expected_route[..], payment_preimage)
282+
.with_expected_extra_fees(extra_fees);
283+
let expected_total_fee_msat = pass_claimed_payment_along_route(args);
282284
expect_payment_sent!(&nodes[0], payment_preimage, Some(expected_total_fee_msat));
283285
}
284286

@@ -2153,9 +2155,10 @@ fn do_accept_underpaying_htlcs_config(num_mpp_parts: usize) {
21532155
let mut expected_paths = Vec::new();
21542156
for _ in 0..num_mpp_parts { expected_paths_vecs.push(vec!(&nodes[1], &nodes[2])); }
21552157
for i in 0..num_mpp_parts { expected_paths.push(&expected_paths_vecs[i][..]); }
2156-
let total_fee_msat = do_claim_payment_along_route_with_extra_penultimate_hop_fees(
2157-
&nodes[0], &expected_paths[..], &vec![skimmed_fee_msat as u32; num_mpp_parts][..], false,
2158-
payment_preimage);
2158+
expected_paths[0].last().unwrap().node.claim_funds(payment_preimage);
2159+
let args = ClaimAlongRouteArgs::new(&nodes[0], &expected_paths[..], payment_preimage)
2160+
.with_expected_extra_fees(vec![skimmed_fee_msat as u32; num_mpp_parts]);
2161+
let total_fee_msat = pass_claimed_payment_along_route(args);
21592162
// The sender doesn't know that the penultimate hop took an extra fee.
21602163
expect_payment_sent(&nodes[0], payment_preimage,
21612164
Some(Some(total_fee_msat - skimmed_fee_msat * num_mpp_parts as u64)), true, true);
@@ -3720,7 +3723,7 @@ fn do_test_custom_tlvs(spontaneous: bool, even_tlvs: bool, known_tlvs: bool) {
37203723
match (known_tlvs, even_tlvs) {
37213724
(true, _) => {
37223725
nodes[1].node.claim_funds_with_known_custom_tlvs(our_payment_preimage);
3723-
let expected_total_fee_msat = pass_claimed_payment_along_route(&nodes[0], &[&[&nodes[1]]], &[0; 1], false, our_payment_preimage);
3726+
let expected_total_fee_msat = pass_claimed_payment_along_route(ClaimAlongRouteArgs::new(&nodes[0], &[&[&nodes[1]]], our_payment_preimage));
37243727
expect_payment_sent!(&nodes[0], our_payment_preimage, Some(expected_total_fee_msat));
37253728
},
37263729
(false, false) => {

0 commit comments

Comments
 (0)