Skip to content

Commit 93f61e8

Browse files
committed
f - pipe payment_secret into recipient onion fields on keysend receive + test
1 parent 33b307b commit 93f61e8

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3431,7 +3431,10 @@ where
34313431
Some(payment_data), phantom_shared_secret, onion_fields)
34323432
},
34333433
PendingHTLCRouting::ReceiveKeysend { payment_data, payment_preimage, payment_metadata, incoming_cltv_expiry } => {
3434-
let onion_fields = RecipientOnionFields { payment_secret: None, payment_metadata };
3434+
let onion_fields = RecipientOnionFields {
3435+
payment_secret: payment_data.as_ref().map(|data| data.payment_secret),
3436+
payment_metadata
3437+
};
34353438
(incoming_cltv_expiry, OnionPayload::Spontaneous(payment_preimage),
34363439
payment_data, None, onion_fields)
34373440
},

lightning/src/ln/functional_test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2074,7 +2074,7 @@ pub fn do_pass_along_path<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_p
20742074
},
20752075
PaymentPurpose::SpontaneousPayment(payment_preimage) => {
20762076
assert_eq!(expected_preimage.unwrap(), *payment_preimage);
2077-
assert!(our_payment_secret.is_none());
2077+
assert_eq!(our_payment_secret, onion_fields.as_ref().unwrap().payment_secret);
20782078
},
20792079
}
20802080
assert_eq!(*amount_msat, recv_value);

lightning/src/ln/functional_tests.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8243,11 +8243,13 @@ fn do_test_mpp_keysend(accept_mpp_keysend: bool) {
82438243
};
82448244
let scorer = test_utils::TestScorer::new();
82458245
let random_seed_bytes = chanmon_cfgs[0].keys_manager.get_secure_random_bytes();
8246-
let route = find_route(&payer_pubkey, &route_params, &network_graph, None, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
8246+
let route = find_route(&payer_pubkey, &route_params, &network_graph, None, nodes[0].logger,
8247+
&scorer, &random_seed_bytes).unwrap();
82478248

8248-
let test_preimage = PaymentPreimage([42; 32]);
8249-
let payment_hash = nodes[0].node.send_spontaneous_payment(&route, Some(test_preimage),
8250-
RecipientOnionFields::spontaneous_empty(), PaymentId(test_preimage.0)).unwrap();
8249+
let payment_preimage = PaymentPreimage([42; 32]);
8250+
let payment_secret = PaymentSecret(payment_preimage.0);
8251+
let payment_hash = nodes[0].node.send_spontaneous_payment(&route, Some(payment_preimage),
8252+
RecipientOnionFields::spontaneous_empty(), PaymentId(payment_preimage.0)).unwrap();
82518253
check_added_monitors!(nodes[0], 2);
82528254

82538255
let expected_route: &[&[&Node]] = &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]];
@@ -8256,10 +8258,11 @@ fn do_test_mpp_keysend(accept_mpp_keysend: bool) {
82568258
for (path_idx, expected_path) in expected_route.iter().enumerate() {
82578259
let ev = remove_first_msg_event_to_node(&expected_path[0].node.get_our_node_id(), &mut events);
82588260
let expect_payment = path_idx == expected_route.len() - 1;
8259-
pass_along_path(&nodes[0], *expected_path, recv_value, payment_hash.clone(), None, ev, expect_payment, Some(test_preimage));
8261+
pass_along_path(&nodes[0], *expected_path, recv_value, payment_hash.clone(),
8262+
Some(payment_secret), ev, expect_payment, Some(payment_preimage));
82608263
}
82618264

8262-
claim_payment_along_route(&nodes[0], expected_route, false, test_preimage);
8265+
claim_payment_along_route(&nodes[0], expected_route, false, payment_preimage);
82638266
}
82648267

82658268
#[test]

0 commit comments

Comments
 (0)