@@ -1585,7 +1585,7 @@ fn test_fee_spike_violation_fails_htlc() {
1585
1585
let cur_height = nodes[1].node.best_block.read().unwrap().height() + 1;
1586
1586
1587
1587
let onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.paths[0], &session_priv).unwrap();
1588
- let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 3460001, &Some(payment_secret), cur_height).unwrap();
1588
+ let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 3460001, &Some(payment_secret), cur_height, &None ).unwrap();
1589
1589
let onion_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &payment_hash);
1590
1590
let msg = msgs::UpdateAddHTLC {
1591
1591
channel_id: chan.2,
@@ -1746,7 +1746,7 @@ fn test_chan_reserve_violation_inbound_htlc_outbound_channel() {
1746
1746
let session_priv = SecretKey::from_slice(&[42; 32]).unwrap();
1747
1747
let cur_height = nodes[1].node.best_block.read().unwrap().height() + 1;
1748
1748
let onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.paths[0], &session_priv).unwrap();
1749
- let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 1000, &Some(payment_secret), cur_height).unwrap();
1749
+ let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 1000, &Some(payment_secret), cur_height, &None ).unwrap();
1750
1750
let onion_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &payment_hash);
1751
1751
let msg = msgs::UpdateAddHTLC {
1752
1752
channel_id: chan.2,
@@ -1872,7 +1872,7 @@ fn test_chan_reserve_violation_inbound_htlc_inbound_chan() {
1872
1872
let session_priv = SecretKey::from_slice(&[42; 32]).unwrap();
1873
1873
let cur_height = nodes[0].node.best_block.read().unwrap().height() + 1;
1874
1874
let onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route_2.paths[0], &session_priv).unwrap();
1875
- let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route_2.paths[0], recv_value_2, &None, cur_height).unwrap();
1875
+ let (onion_payloads, htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route_2.paths[0], recv_value_2, &None, cur_height, &None ).unwrap();
1876
1876
let onion_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &our_payment_hash_1);
1877
1877
let msg = msgs::UpdateAddHTLC {
1878
1878
channel_id: chan.2,
@@ -3421,7 +3421,7 @@ fn fail_backward_pending_htlc_upon_channel_failure() {
3421
3421
let current_height = nodes[1].node.best_block.read().unwrap().height() + 1;
3422
3422
let net_graph_msg_handler = &nodes[1].net_graph_msg_handler;
3423
3423
let route = get_route(&nodes[1].node.get_our_node_id(), &net_graph_msg_handler.network_graph.read().unwrap(), &nodes[0].node.get_our_node_id(), Some(InvoiceFeatures::known()), None, &Vec::new(), 50_000, TEST_FINAL_CLTV, &logger).unwrap();
3424
- let (onion_payloads, _amount_msat, cltv_expiry) = onion_utils::build_onion_payloads(&route.paths[0], 50_000, &Some(payment_secret), current_height).unwrap();
3424
+ let (onion_payloads, _amount_msat, cltv_expiry) = onion_utils::build_onion_payloads(&route.paths[0], 50_000, &Some(payment_secret), current_height, &None ).unwrap();
3425
3425
let onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.paths[0], &session_priv).unwrap();
3426
3426
let onion_routing_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &payment_hash);
3427
3427
@@ -4191,7 +4191,7 @@ fn do_test_htlc_timeout(send_partial_mpp: bool) {
4191
4191
// Use the utility function send_payment_along_path to send the payment with MPP data which
4192
4192
// indicates there are more HTLCs coming.
4193
4193
let cur_height = CHAN_CONFIRM_DEPTH + 1; // route_payment calls send_payment, which adds 1 to the current height. So we do the same here to match.
4194
- nodes[0].node.send_payment_along_path(&route.paths[0], &our_payment_hash, &Some(payment_secret), 200000, cur_height).unwrap();
4194
+ nodes[0].node.send_payment_along_path(&route.paths[0], &our_payment_hash, &Some(payment_secret), 200000, cur_height, &None ).unwrap();
4195
4195
check_added_monitors!(nodes[0], 1);
4196
4196
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
4197
4197
assert_eq!(events.len(), 1);
@@ -6817,7 +6817,7 @@ fn test_update_add_htlc_bolt2_receiver_check_max_htlc_limit() {
6817
6817
6818
6818
let cur_height = nodes[0].node.best_block.read().unwrap().height() + 1;
6819
6819
let onion_keys = onion_utils::construct_onion_keys(&Secp256k1::signing_only(), &route.paths[0], &session_priv).unwrap();
6820
- let (onion_payloads, _htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 3999999, &Some(our_payment_secret), cur_height).unwrap();
6820
+ let (onion_payloads, _htlc_msat, htlc_cltv) = onion_utils::build_onion_payloads(&route.paths[0], 3999999, &Some(our_payment_secret), cur_height, &None ).unwrap();
6821
6821
let onion_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &our_payment_hash);
6822
6822
6823
6823
let mut msg = msgs::UpdateAddHTLC {
@@ -9594,8 +9594,35 @@ fn do_test_tx_confirmed_skipping_blocks_immediate_broadcast(test_height_before_t
9594
9594
expect_payment_failure_chan_update!(nodes[0], chan_announce.contents.short_channel_id, true);
9595
9595
}
9596
9596
}
9597
+
9597
9598
#[test]
9598
9599
fn test_tx_confirmed_skipping_blocks_immediate_broadcast() {
9599
9600
do_test_tx_confirmed_skipping_blocks_immediate_broadcast(false);
9600
9601
do_test_tx_confirmed_skipping_blocks_immediate_broadcast(true);
9601
9602
}
9603
+
9604
+ #[test]
9605
+ fn test_keysend_payments_to_public_node() {
9606
+ let chanmon_cfgs = create_chanmon_cfgs(2);
9607
+ let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
9608
+ let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
9609
+ let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
9610
+
9611
+ let _chan = create_announced_chan_between_nodes_with_value(&nodes, 0, 1, 100000, 10001, InitFeatures::known(), InitFeatures::known());
9612
+ let network_graph = nodes[0].net_graph_msg_handler.network_graph.read().unwrap();
9613
+ let payer_pubkey = nodes[0].node.get_our_node_id();
9614
+ let payee_pubkey = nodes[1].node.get_our_node_id();
9615
+ let route = get_route(&payer_pubkey, &network_graph, &payee_pubkey, None,
9616
+ None, &vec![], 10000, 40,
9617
+ nodes[0].logger).unwrap();
9618
+
9619
+ let test_preimage = PaymentPreimage([42; 32]);
9620
+ let payment_hash = nodes[0].node.send_spontaneous_payment(&route, Some(test_preimage)).unwrap();
9621
+ check_added_monitors!(nodes[0], 1);
9622
+ let mut events = nodes[0].node.get_and_clear_pending_msg_events();
9623
+ assert_eq!(events.len(), 1);
9624
+ let event = events.pop().unwrap();
9625
+ let path = vec![&nodes[1]];
9626
+ pass_along_path(&nodes[0], &path, 10000, payment_hash, PaymentSecret([0; 32]), event, true, Some(test_preimage));
9627
+ claim_payment(&nodes[0], &path, test_preimage);
9628
+ }
0 commit comments