Skip to content

Commit bc8a07f

Browse files
committed
Remove OnionMessageProvider
OnionMessageProvider is a super-trait of OnionMessageHandler, but they don't need to be used separately. Additionally, the former is misplaced in the events module. Remove OnionMessageProvider and add it's only method, next_onion_message_for_peer, into OnionMessageHandler.
1 parent e4adab5 commit bc8a07f

File tree

5 files changed

+9
-25
lines changed

5 files changed

+9
-25
lines changed

lightning/src/events/mod.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,12 +1836,6 @@ pub trait MessageSendEventsProvider {
18361836
fn get_and_clear_pending_msg_events(&self) -> Vec<MessageSendEvent>;
18371837
}
18381838

1839-
/// A trait indicating an object may generate onion messages to send
1840-
pub trait OnionMessageProvider {
1841-
/// Gets the next pending onion message for the peer with the given node id.
1842-
fn next_onion_message_for_peer(&self, peer_node_id: PublicKey) -> Option<msgs::OnionMessage>;
1843-
}
1844-
18451839
/// A trait indicating an object may generate events.
18461840
///
18471841
/// Events are processed by passing an [`EventHandler`] to [`process_pending_events`].

lightning/src/ln/msgs.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use core::str::FromStr;
4747
use crate::io::{self, Cursor, Read};
4848
use crate::io_extras::read_to_end;
4949

50-
use crate::events::{MessageSendEventsProvider, OnionMessageProvider};
50+
use crate::events::MessageSendEventsProvider;
5151
use crate::util::chacha20poly1305rfc::ChaChaPolyReadAdapter;
5252
use crate::util::logger;
5353
use crate::util::ser::{LengthReadable, LengthReadableArgs, Readable, ReadableArgs, Writeable, Writer, WithoutLength, FixedLengthReader, HighZeroBytesDroppedBigSize, Hostname, TransactionU16LenLimited, BigSize};
@@ -1492,16 +1492,21 @@ pub trait RoutingMessageHandler : MessageSendEventsProvider {
14921492
}
14931493

14941494
/// A trait to describe an object that can receive onion messages.
1495-
pub trait OnionMessageHandler : OnionMessageProvider {
1495+
pub trait OnionMessageHandler {
14961496
/// Handle an incoming `onion_message` message from the given peer.
14971497
fn handle_onion_message(&self, peer_node_id: &PublicKey, msg: &OnionMessage);
1498+
1499+
/// Returns the next pending onion message for the peer with the given node id.
1500+
fn next_onion_message_for_peer(&self, peer_node_id: PublicKey) -> Option<OnionMessage>;
1501+
14981502
/// Called when a connection is established with a peer. Can be used to track which peers
14991503
/// advertise onion message support and are online.
15001504
///
15011505
/// May return an `Err(())` if the features the peer supports are not sufficient to communicate
15021506
/// with us. Implementors should be somewhat conservative about doing so, however, as other
15031507
/// message handlers may still wish to communicate with this peer.
15041508
fn peer_connected(&self, their_node_id: &PublicKey, init: &Init, inbound: bool) -> Result<(), ()>;
1509+
15051510
/// Indicates a connection to the peer failed/an existing connection was lost. Allows handlers to
15061511
/// drop and refuse to forward onion messages to this peer.
15071512
fn peer_disconnected(&self, their_node_id: &PublicKey);

lightning/src/ln/peer_handler.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use bitcoin::blockdata::constants::ChainHash;
1919
use bitcoin::secp256k1::{self, Secp256k1, SecretKey, PublicKey};
2020

2121
use crate::sign::{KeysManager, NodeSigner, Recipient};
22-
use crate::events::{MessageSendEvent, MessageSendEventsProvider, OnionMessageProvider};
22+
use crate::events::{MessageSendEvent, MessageSendEventsProvider};
2323
use crate::ln::ChannelId;
2424
use crate::ln::features::{InitFeatures, NodeFeatures};
2525
use crate::ln::msgs;
@@ -107,11 +107,9 @@ impl RoutingMessageHandler for IgnoringMessageHandler {
107107
}
108108
fn processing_queue_high(&self) -> bool { false }
109109
}
110-
impl OnionMessageProvider for IgnoringMessageHandler {
111-
fn next_onion_message_for_peer(&self, _peer_node_id: PublicKey) -> Option<msgs::OnionMessage> { None }
112-
}
113110
impl OnionMessageHandler for IgnoringMessageHandler {
114111
fn handle_onion_message(&self, _their_node_id: &PublicKey, _msg: &msgs::OnionMessage) {}
112+
fn next_onion_message_for_peer(&self, _peer_node_id: PublicKey) -> Option<msgs::OnionMessage> { None }
115113
fn peer_connected(&self, _their_node_id: &PublicKey, _init: &msgs::Init, _inbound: bool) -> Result<(), ()> { Ok(()) }
116114
fn peer_disconnected(&self, _their_node_id: &PublicKey) {}
117115
fn provided_node_features(&self) -> NodeFeatures { NodeFeatures::empty() }

lightning/src/onion_message/functional_tests.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
//! Onion message testing and test utilities live here.
1111
1212
use crate::blinded_path::BlindedPath;
13-
use crate::events::OnionMessageProvider;
1413
use crate::ln::features::InitFeatures;
1514
use crate::ln::msgs::{self, DecodeError, OnionMessageHandler};
1615
use crate::sign::{NodeSigner, Recipient};

lightning/src/onion_message/messenger.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use crate::blinded_path::BlindedPath;
1919
use crate::blinded_path::message::{advance_path_by_one, ForwardTlvs, ReceiveTlvs};
2020
use crate::blinded_path::utils;
2121
use crate::sign::{EntropySource, KeysManager, NodeSigner, Recipient};
22-
use crate::events::OnionMessageProvider;
2322
use crate::ln::features::{InitFeatures, NodeFeatures};
2423
use crate::ln::msgs::{self, OnionMessageHandler};
2524
use crate::ln::onion_utils;
@@ -589,18 +588,7 @@ where
589588
features.set_onion_messages_optional();
590589
features
591590
}
592-
}
593591

594-
impl<ES: Deref, NS: Deref, L: Deref, MR: Deref, OMH: Deref, CMH: Deref> OnionMessageProvider
595-
for OnionMessenger<ES, NS, L, MR, OMH, CMH>
596-
where
597-
ES::Target: EntropySource,
598-
NS::Target: NodeSigner,
599-
L::Target: Logger,
600-
MR::Target: MessageRouter,
601-
OMH::Target: OffersMessageHandler,
602-
CMH::Target: CustomOnionMessageHandler,
603-
{
604592
fn next_onion_message_for_peer(&self, peer_node_id: PublicKey) -> Option<msgs::OnionMessage> {
605593
let mut pending_msgs = self.pending_messages.lock().unwrap();
606594
if let Some(msgs) = pending_msgs.get_mut(&peer_node_id) {

0 commit comments

Comments
 (0)