Use one-hop blinded paths only for announced nodes
[rust-lightning] / lightning / src / routing / router.rs
index 08c57266cb52e7101a94ba25fac77bcd73c75db0..86c42841027b8320dee54ffc230cae3384d6bd0b 100644 (file)
@@ -153,8 +153,12 @@ impl<G: Deref<Target = NetworkGraph<L>> + Clone, L: Deref, S: Deref, SP: Sized,
                match paths {
                        Ok(paths) if !paths.is_empty() => Ok(paths),
                        _ => {
-                               BlindedPath::one_hop_for_payment(recipient, tlvs, entropy_source, secp_ctx)
-                                       .map(|path| vec![path])
+                               if network_graph.nodes().contains_key(&NodeId::from_pubkey(&recipient)) {
+                                       BlindedPath::one_hop_for_payment(recipient, tlvs, entropy_source, secp_ctx)
+                                               .map(|path| vec![path])
+                               } else {
+                                       Err(())
+                               }
                        },
                }
        }