pub struct DefaultMessageRouter<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref>{ /* private fields */ }Expand description
A MessageRouter that can only route to a directly connected Destination.
§Privacy
Creating BlindedMessagePaths may affect privacy since, if a suitable path cannot be found,
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
message, and thus an Err is returned.
Implementations§
Source§impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> DefaultMessageRouter<G, L, ES>
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> DefaultMessageRouter<G, L, ES>
Sourcepub fn new(network_graph: G, entropy_source: ES) -> Self
pub fn new(network_graph: G, entropy_source: ES) -> Self
Creates a DefaultMessageRouter using the given NetworkGraph.
Trait Implementations§
Source§impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> MessageRouter for DefaultMessageRouter<G, L, ES>
impl<G: Deref<Target = NetworkGraph<L>>, L: Deref, ES: Deref> MessageRouter for DefaultMessageRouter<G, L, ES>
Source§fn find_path(
&self,
sender: PublicKey,
peers: Vec<PublicKey>,
destination: Destination,
) -> Result<OnionMessagePath, ()>
fn find_path( &self, sender: PublicKey, peers: Vec<PublicKey>, destination: Destination, ) -> Result<OnionMessagePath, ()>
Returns a route for sending an
OnionMessage to the given Destination.Source§fn create_blinded_paths<T: Signing + Verification>(
&self,
recipient: PublicKey,
context: MessageContext,
peers: Vec<PublicKey>,
secp_ctx: &Secp256k1<T>,
) -> Result<Vec<BlindedMessagePath>, ()>
fn create_blinded_paths<T: Signing + Verification>( &self, recipient: PublicKey, context: MessageContext, peers: Vec<PublicKey>, secp_ctx: &Secp256k1<T>, ) -> Result<Vec<BlindedMessagePath>, ()>
Creates
BlindedMessagePaths to the recipient node. The nodes in peers are assumed to
be direct peers with the recipient.Source§fn create_compact_blinded_paths<T: Signing + Verification>(
&self,
recipient: PublicKey,
context: MessageContext,
peers: Vec<MessageForwardNode>,
secp_ctx: &Secp256k1<T>,
) -> Result<Vec<BlindedMessagePath>, ()>
fn create_compact_blinded_paths<T: Signing + Verification>( &self, recipient: PublicKey, context: MessageContext, peers: Vec<MessageForwardNode>, secp_ctx: &Secp256k1<T>, ) -> Result<Vec<BlindedMessagePath>, ()>
Creates compact
BlindedMessagePaths to the recipient node. The nodes in peers are
assumed to be direct peers with the recipient. Read moreAuto Trait Implementations§
impl<G, L, ES> Freeze for DefaultMessageRouter<G, L, ES>
impl<G, L, ES> RefUnwindSafe for DefaultMessageRouter<G, L, ES>where
G: RefUnwindSafe,
ES: RefUnwindSafe,
impl<G, L, ES> Send for DefaultMessageRouter<G, L, ES>
impl<G, L, ES> Sync for DefaultMessageRouter<G, L, ES>
impl<G, L, ES> Unpin for DefaultMessageRouter<G, L, ES>
impl<G, L, ES> UnwindSafe for DefaultMessageRouter<G, L, ES>where
G: UnwindSafe,
ES: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more