Skip to content

Commit 71deee0

Browse files
valentinewallacetnull
authored andcommitted
Struct-ify claim_along_route args.
Lays groundwork to make claim_payment* test utils easier to adapt without changing a million callsites.
1 parent 51d9ee3 commit 71deee0

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
@@ -2550,24 +2550,49 @@ pub fn do_claim_payment_along_route<'a, 'b, 'c>(
25502550
origin_node: &Node<'a, 'b, 'c>, expected_paths: &[&[&Node<'a, 'b, 'c>]], skip_last: bool,
25512551
our_payment_preimage: PaymentPreimage
25522552
) -> u64 {
2553-
let extra_fees = vec![0; expected_paths.len()];
2554-
do_claim_payment_along_route_with_extra_penultimate_hop_fees(origin_node, expected_paths,
2555-
&extra_fees[..], skip_last, our_payment_preimage)
2556-
}
2557-
2558-
pub fn do_claim_payment_along_route_with_extra_penultimate_hop_fees<'a, 'b, 'c>(
2559-
origin_node: &Node<'a, 'b, 'c>, expected_paths: &[&[&Node<'a, 'b, 'c>]], expected_extra_fees:
2560-
&[u32], skip_last: bool, our_payment_preimage: PaymentPreimage
2561-
) -> u64 {
2562-
assert_eq!(expected_paths.len(), expected_extra_fees.len());
25632553
for path in expected_paths.iter() {
25642554
assert_eq!(path.last().unwrap().node.get_our_node_id(), expected_paths[0].last().unwrap().node.get_our_node_id());
25652555
}
25662556
expected_paths[0].last().unwrap().node.claim_funds(our_payment_preimage);
2567-
pass_claimed_payment_along_route(origin_node, expected_paths, expected_extra_fees, skip_last, our_payment_preimage)
2557+
pass_claimed_payment_along_route(
2558+
ClaimAlongRouteArgs::new(origin_node, expected_paths, our_payment_preimage)
2559+
.skip_last(skip_last)
2560+
)
2561+
}
2562+
2563+
pub struct ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
2564+
pub origin_node: &'a Node<'b, 'c, 'd>,
2565+
pub expected_paths: &'a [&'a [&'a Node<'b, 'c, 'd>]],
2566+
pub expected_extra_fees: Vec<u32>,
2567+
pub skip_last: bool,
2568+
pub payment_preimage: PaymentPreimage,
2569+
}
2570+
2571+
impl<'a, 'b, 'c, 'd> ClaimAlongRouteArgs<'a, 'b, 'c, 'd> {
2572+
pub fn new(
2573+
origin_node: &'a Node<'b, 'c, 'd>, expected_paths: &'a [&'a [&'a Node<'b, 'c, 'd>]],
2574+
payment_preimage: PaymentPreimage,
2575+
) -> Self {
2576+
Self {
2577+
origin_node, expected_paths, expected_extra_fees: vec![0; expected_paths.len()],
2578+
skip_last: false, payment_preimage,
2579+
}
2580+
}
2581+
pub fn skip_last(mut self, skip_last: bool) -> Self {
2582+
self.skip_last = skip_last;
2583+
self
2584+
}
2585+
pub fn with_expected_extra_fees(mut self, extra_fees: Vec<u32>) -> Self {
2586+
self.expected_extra_fees = extra_fees;
2587+
self
2588+
}
25682589
}
25692590

2570-
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 {
2591+
pub fn pass_claimed_payment_along_route<'a, 'b, 'c, 'd>(args: ClaimAlongRouteArgs) -> u64 {
2592+
let ClaimAlongRouteArgs {
2593+
origin_node, expected_paths, expected_extra_fees, skip_last,
2594+
payment_preimage: our_payment_preimage
2595+
} = args;
25712596
let claim_event = expected_paths[0].last().unwrap().node.get_and_clear_pending_events();
25722597
assert_eq!(claim_event.len(), 1);
25732598
match claim_event[0] {

lightning/src/ln/payment_tests.rs

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

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

@@ -2155,9 +2157,10 @@ fn do_accept_underpaying_htlcs_config(num_mpp_parts: usize) {
21552157
let mut expected_paths = Vec::new();
21562158
for _ in 0..num_mpp_parts { expected_paths_vecs.push(vec!(&nodes[1], &nodes[2])); }
21572159
for i in 0..num_mpp_parts { expected_paths.push(&expected_paths_vecs[i][..]); }
2158-
let total_fee_msat = do_claim_payment_along_route_with_extra_penultimate_hop_fees(
2159-
&nodes[0], &expected_paths[..], &vec![skimmed_fee_msat as u32; num_mpp_parts][..], false,
2160-
payment_preimage);
2160+
expected_paths[0].last().unwrap().node.claim_funds(payment_preimage);
2161+
let args = ClaimAlongRouteArgs::new(&nodes[0], &expected_paths[..], payment_preimage)
2162+
.with_expected_extra_fees(vec![skimmed_fee_msat as u32; num_mpp_parts]);
2163+
let total_fee_msat = pass_claimed_payment_along_route(args);
21612164
// The sender doesn't know that the penultimate hop took an extra fee.
21622165
expect_payment_sent(&nodes[0], payment_preimage,
21632166
Some(Some(total_fee_msat - skimmed_fee_msat * num_mpp_parts as u64)), true, true);
@@ -3722,7 +3725,7 @@ fn do_test_custom_tlvs(spontaneous: bool, even_tlvs: bool, known_tlvs: bool) {
37223725
match (known_tlvs, even_tlvs) {
37233726
(true, _) => {
37243727
nodes[1].node.claim_funds_with_known_custom_tlvs(our_payment_preimage);
3725-
let expected_total_fee_msat = pass_claimed_payment_along_route(&nodes[0], &[&[&nodes[1]]], &[0; 1], false, our_payment_preimage);
3728+
let expected_total_fee_msat = pass_claimed_payment_along_route(ClaimAlongRouteArgs::new(&nodes[0], &[&[&nodes[1]]], our_payment_preimage));
37263729
expect_payment_sent!(&nodes[0], our_payment_preimage, Some(expected_total_fee_msat));
37273730
},
37283731
(false, false) => {

0 commit comments

Comments
 (0)