OMs: fix panic sending to a two-hop blinded route where we are the intro node
[rust-lightning] / lightning / src / onion_message / functional_tests.rs
index 991f0d1c2650ab172a1d5e7c0bffb712f5b089c1..81826a62cc375cc9bf3f4fbf60dbe84406a1e008 100644 (file)
@@ -174,7 +174,7 @@ fn too_big_packet_error() {
 fn we_are_intro_node() {
        // If we are sending straight to a blinded route and we are the introduction node, we need to
        // advance the blinded route by 1 hop so the second hop is the new introduction node.
-       let nodes = create_nodes(3);
+       let mut nodes = create_nodes(3);
        let test_msg = TestCustomMessage {};
 
        let secp_ctx = Secp256k1::new();
@@ -182,6 +182,12 @@ fn we_are_intro_node() {
 
        nodes[0].messenger.send_onion_message(&[], Destination::BlindedRoute(blinded_route), OnionMessageContents::Custom(test_msg.clone()), None).unwrap();
        pass_along_path(&nodes, None);
+
+       // Try with a two-hop blinded route where we are the introduction node.
+       let blinded_route = BlindedRoute::new(&[nodes[0].get_node_pk(), nodes[1].get_node_pk()], &*nodes[1].keys_manager, &secp_ctx).unwrap();
+       nodes[0].messenger.send_onion_message(&[], Destination::BlindedRoute(blinded_route), OnionMessageContents::Custom(test_msg), None).unwrap();
+       nodes.remove(2);
+       pass_along_path(&nodes, None);
 }
 
 #[test]