@@ -38,12 +38,13 @@ use lightning::{
3838} ;
3939
4040use crate :: multiesplora:: MultiEsploraClient ;
41+ use crate :: peermanager:: LspMessageRouter ;
4142use crate :: utils:: get_monitor_version;
4243use bitcoin:: util:: bip32:: ExtendedPrivKey ;
4344use lightning:: events:: bump_transaction:: { BumpTransactionEventHandler , Wallet } ;
4445use lightning:: ln:: PaymentSecret ;
4546use lightning:: offers:: offer:: Offer ;
46- use lightning:: onion_message:: { DefaultMessageRouter , OnionMessenger as LdkOnionMessenger } ;
47+ use lightning:: onion_message:: OnionMessenger as LdkOnionMessenger ;
4748use lightning:: sign:: { EntropySource , InMemorySigner , NodeSigner , Recipient } ;
4849use lightning:: util:: config:: MaxDustHTLCExposure ;
4950use lightning:: {
@@ -99,7 +100,7 @@ pub(crate) type OnionMessenger<S: MutinyStorage> = LdkOnionMessenger<
99100 Arc < PhantomKeysManager < S > > ,
100101 Arc < PhantomKeysManager < S > > ,
101102 Arc < MutinyLogger > ,
102- Arc < DefaultMessageRouter > ,
103+ Arc < LspMessageRouter > ,
103104 Arc < PhantomChannelManager < S > > ,
104105 IgnoringMessageHandler ,
105106> ;
@@ -325,24 +326,6 @@ impl<S: MutinyStorage> Node<S> {
325326 logger : logger. clone ( ) ,
326327 } ) ;
327328
328- let onion_message_handler = Arc :: new ( OnionMessenger :: new (
329- keys_manager. clone ( ) ,
330- keys_manager. clone ( ) ,
331- logger. clone ( ) ,
332- Arc :: new ( DefaultMessageRouter { } ) ,
333- channel_manager. clone ( ) ,
334- IgnoringMessageHandler { } ,
335- ) ) ;
336-
337- // init peer manager
338- let scb_message_handler = Arc :: new ( SCBMessageHandler :: new ( ) ) ;
339- let ln_msg_handler = MessageHandler {
340- chan_handler : channel_manager. clone ( ) ,
341- route_handler,
342- onion_message_handler,
343- custom_message_handler : scb_message_handler. clone ( ) ,
344- } ;
345-
346329 log_info ! ( logger, "creating lsp client" ) ;
347330 let lsp_client: Option < LspClient > = match node_index. lsp {
348331 None => {
@@ -360,6 +343,26 @@ impl<S: MutinyStorage> Node<S> {
360343 Some ( ref lsp) => lsp_clients. iter ( ) . find ( |c| & c. url == lsp) . cloned ( ) ,
361344 } ;
362345
346+ let message_router = LspMessageRouter :: new ( lsp_client. as_ref ( ) . map ( |l| l. pubkey ) ) ;
347+
348+ let onion_message_handler = Arc :: new ( OnionMessenger :: new (
349+ keys_manager. clone ( ) ,
350+ keys_manager. clone ( ) ,
351+ logger. clone ( ) ,
352+ Arc :: new ( message_router) ,
353+ channel_manager. clone ( ) ,
354+ IgnoringMessageHandler { } ,
355+ ) ) ;
356+
357+ // init peer manager
358+ let scb_message_handler = Arc :: new ( SCBMessageHandler :: new ( ) ) ;
359+ let ln_msg_handler = MessageHandler {
360+ chan_handler : channel_manager. clone ( ) ,
361+ route_handler,
362+ onion_message_handler,
363+ custom_message_handler : scb_message_handler. clone ( ) ,
364+ } ;
365+
363366 let bump_tx_event_handler = Arc :: new ( BumpTransactionEventHandler :: new (
364367 Arc :: clone ( & chain) ,
365368 Arc :: new ( Wallet :: new ( Arc :: clone ( & wallet) , Arc :: clone ( & logger) ) ) ,
0 commit comments