]> git.bitcoin.ninja Git - rust-lightning/commitdiff
De-couple MessageRouter from Router
authorJeffrey Czyz <jkczyz@gmail.com>
Wed, 18 Sep 2024 17:40:48 +0000 (12:40 -0500)
committerJeffrey Czyz <jkczyz@gmail.com>
Mon, 23 Sep 2024 03:22:01 +0000 (12:22 +0900)
Now that ChannelManager is parameterized by both a MessageRouter and a
Router, Router implementations no longer need to implement
MessageRouter, too.

lightning/src/routing/router.rs
lightning/src/util/test_utils.rs

index a74f9d834d474ce2706aaf68f6d28906fd59dab1..b0a3f34a6761a59320e23689dde91766ed348c7d 100644 (file)
@@ -12,7 +12,6 @@
 use bitcoin::secp256k1::{PublicKey, Secp256k1, self};
 
 use crate::blinded_path::{BlindedHop, Direction, IntroductionNode};
-use crate::blinded_path::message::{BlindedMessagePath, MessageContext, MessageForwardNode};
 use crate::blinded_path::payment::{BlindedPaymentPath, ForwardTlvs, PaymentConstraints, PaymentForwardNode, PaymentRelay, ReceiveTlvs};
 use crate::ln::{PaymentHash, PaymentPreimage};
 use crate::ln::channel_state::ChannelDetails;
@@ -23,7 +22,6 @@ use crate::ln::onion_utils;
 #[cfg(async_payments)]
 use crate::offers::static_invoice::StaticInvoice;
 use crate::offers::invoice::Bolt12Invoice;
-use crate::onion_message::messenger::{DefaultMessageRouter, Destination, MessageRouter, OnionMessagePath};
 use crate::routing::gossip::{DirectedChannelInfo, EffectiveCapacity, ReadOnlyNetworkGraph, NetworkGraph, NodeId};
 use crate::routing::scoring::{ChannelUsage, LockableScore, ScoreLookUp};
 use crate::sign::EntropySource;
@@ -49,9 +47,6 @@ pub use lightning_types::routing::{RouteHint, RouteHintHop};
 /// it will create a one-hop path using the recipient as the introduction node if it is a announced
 /// node. Otherwise, there is no way to find a path to the introduction node in order to send a
 /// payment, and thus an `Err` is returned.
-///
-/// Implements [`MessageRouter`] by delegating to [`DefaultMessageRouter`]. See those docs for
-/// privacy implications.
 pub struct DefaultRouter<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref, S: Deref, SP: Sized, Sc: ScoreLookUp<ScoreParams = SP>> where
        L::Target: Logger,
        S::Target: for <'a> LockableScore<'a, ScoreLookUp = Sc>,
@@ -190,36 +185,8 @@ impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref, S: Deref, SP: Size
        }
 }
 
-impl< G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref, S: Deref, SP: Sized, Sc: ScoreLookUp<ScoreParams = SP>> MessageRouter for DefaultRouter<G, L, ES, S, SP, Sc> where
-       L::Target: Logger,
-       S::Target: for <'a> LockableScore<'a, ScoreLookUp = Sc>,
-       ES::Target: EntropySource,
-{
-       fn find_path(
-               &self, sender: PublicKey, peers: Vec<PublicKey>, destination: Destination
-       ) -> Result<OnionMessagePath, ()> {
-               DefaultMessageRouter::<_, _, ES>::find_path(&self.network_graph, sender, peers, destination)
-       }
-
-       fn create_blinded_paths<
-               T: secp256k1::Signing + secp256k1::Verification
-       > (
-               &self, recipient: PublicKey, context: MessageContext, peers: Vec<PublicKey>, secp_ctx: &Secp256k1<T>,
-       ) -> Result<Vec<BlindedMessagePath>, ()> {
-               DefaultMessageRouter::create_blinded_paths(&self.network_graph, recipient, context, peers, &self.entropy_source, secp_ctx)
-       }
-
-       fn create_compact_blinded_paths<
-               T: secp256k1::Signing + secp256k1::Verification
-       > (
-               &self, recipient: PublicKey, context: MessageContext, peers: Vec<MessageForwardNode>, secp_ctx: &Secp256k1<T>,
-       ) -> Result<Vec<BlindedMessagePath>, ()> {
-               DefaultMessageRouter::create_compact_blinded_paths(&self.network_graph, recipient, context, peers, &self.entropy_source, secp_ctx)
-       }
-}
-
 /// A trait defining behavior for routing a payment.
-pub trait Router: MessageRouter {
+pub trait Router {
        /// Finds a [`Route`] for a payment between the given `payer` and a payee.
        ///
        /// The `payee` and the payment's value are given in [`RouteParameters::payment_params`]
index 473ad906af6ae0fc8038e6ea95ca4ac274ff452d..12e027d32fca0b4e6b457e650b5ce4549b6445a9 100644 (file)
@@ -265,32 +265,6 @@ impl<'a> Router for TestRouter<'a> {
        }
 }
 
-impl<'a> MessageRouter for TestRouter<'a> {
-       fn find_path(
-               &self, sender: PublicKey, peers: Vec<PublicKey>, destination: Destination
-       ) -> Result<OnionMessagePath, ()> {
-               self.router.find_path(sender, peers, destination)
-       }
-
-       fn create_blinded_paths<
-               T: secp256k1::Signing + secp256k1::Verification
-       >(
-               &self, recipient: PublicKey, context: MessageContext,
-               peers: Vec<PublicKey>, secp_ctx: &Secp256k1<T>,
-       ) -> Result<Vec<BlindedMessagePath>, ()> {
-               self.router.create_blinded_paths(recipient, context, peers, secp_ctx)
-       }
-
-       fn create_compact_blinded_paths<
-               T: secp256k1::Signing + secp256k1::Verification
-       >(
-               &self, recipient: PublicKey, context: MessageContext,
-               peers: Vec<MessageForwardNode>, secp_ctx: &Secp256k1<T>,
-       ) -> Result<Vec<BlindedMessagePath>, ()> {
-               self.router.create_compact_blinded_paths(recipient, context, peers, secp_ctx)
-       }
-}
-
 impl<'a> Drop for TestRouter<'a> {
        fn drop(&mut self) {
                if std::thread::panicking() {