pub trait OnionMessageHandler: OnionMessageProvider {
    fn handle_onion_message(&self, peer_node_id: &PublicKey, msg: &OnionMessage);
    fn peer_connected(
        &self,
        their_node_id: &PublicKey,
        init: &Init
    ) -> Result<(), ()>; fn peer_disconnected(
        &self,
        their_node_id: &PublicKey,
        no_connection_possible: bool
    ); fn provided_node_features(&self) -> NodeFeatures; fn provided_init_features(&self, their_node_id: &PublicKey) -> InitFeatures; }
Expand description

A trait to describe an object that can receive onion messages.

Required Methods

Handle an incoming onion_message message from the given peer.

Called when a connection is established with a peer. Can be used to track which peers advertise onion message support and are online.

May return an Err(()) if the features the peer supports are not sufficient to communicate with us. Implementors should be somewhat conservative about doing so, however, as other message handlers may still wish to communicate with this peer.

Indicates a connection to the peer failed/an existing connection was lost. Allows handlers to drop and refuse to forward onion messages to this peer.

Note that in some rare cases this may be called without a corresponding Self::peer_connected.

Gets the node feature flags which this handler itself supports. All available handlers are queried similarly and their feature flags are OR’d together to form the NodeFeatures which are broadcasted in our NodeAnnouncement message.

Gets the init feature flags which should be sent to the given peer. All available handlers are queried similarly and their feature flags are OR’d together to form the InitFeatures which are sent in our Init message.

Note that this method is called before Self::peer_connected.

Implementors