@@ -47,7 +47,7 @@ use lightning::routing::router::DefaultRouter;
47
47
use lightning:: routing:: scoring:: {
48
48
ProbabilisticScorer , ProbabilisticScoringDecayParameters , ProbabilisticScoringFeeParameters ,
49
49
} ;
50
- use lightning:: sign:: EntropySource ;
50
+ use lightning:: sign:: { EntropySource , NodeSigner } ;
51
51
52
52
use lightning:: util:: persist:: {
53
53
read_channel_monitors, CHANNEL_MANAGER_PERSISTENCE_KEY ,
@@ -1241,15 +1241,6 @@ fn build_with_store_internal(
1241
1241
1242
1242
let runtime = Arc :: new ( RwLock :: new ( None ) ) ;
1243
1243
1244
- // Initialize the ChainMonitor
1245
- let chain_monitor: Arc < ChainMonitor > = Arc :: new ( chainmonitor:: ChainMonitor :: new (
1246
- Some ( Arc :: clone ( & chain_source) ) ,
1247
- Arc :: clone ( & tx_broadcaster) ,
1248
- Arc :: clone ( & logger) ,
1249
- Arc :: clone ( & fee_estimator) ,
1250
- Arc :: clone ( & kv_store) ,
1251
- ) ) ;
1252
-
1253
1244
// Initialize the KeysManager
1254
1245
let cur_time = SystemTime :: now ( ) . duration_since ( SystemTime :: UNIX_EPOCH ) . map_err ( |e| {
1255
1246
log_error ! ( logger, "Failed to get current time: {}" , e) ;
@@ -1265,6 +1256,19 @@ fn build_with_store_internal(
1265
1256
Arc :: clone ( & logger) ,
1266
1257
) ) ;
1267
1258
1259
+ let peer_storage_key = keys_manager. get_peer_storage_key ( ) ;
1260
+
1261
+ // Initialize the ChainMonitor
1262
+ let chain_monitor: Arc < ChainMonitor > = Arc :: new ( chainmonitor:: ChainMonitor :: new (
1263
+ Some ( Arc :: clone ( & chain_source) ) ,
1264
+ Arc :: clone ( & tx_broadcaster) ,
1265
+ Arc :: clone ( & logger) ,
1266
+ Arc :: clone ( & fee_estimator) ,
1267
+ Arc :: clone ( & kv_store) ,
1268
+ Arc :: clone ( & keys_manager) ,
1269
+ peer_storage_key,
1270
+ ) ) ;
1271
+
1268
1272
// Initialize the network graph, scorer, and router
1269
1273
let network_graph =
1270
1274
match io:: utils:: read_network_graph ( Arc :: clone ( & kv_store) , Arc :: clone ( & logger) ) {
@@ -1515,13 +1519,15 @@ fn build_with_store_internal(
1515
1519
as Arc < dyn RoutingMessageHandler + Sync + Send > ,
1516
1520
onion_message_handler : Arc :: clone ( & onion_messenger) ,
1517
1521
custom_message_handler,
1522
+ send_only_message_handler : Arc :: clone ( & chain_monitor) ,
1518
1523
} ,
1519
1524
GossipSync :: Rapid ( _) => MessageHandler {
1520
1525
chan_handler : Arc :: clone ( & channel_manager) ,
1521
1526
route_handler : Arc :: new ( IgnoringMessageHandler { } )
1522
1527
as Arc < dyn RoutingMessageHandler + Sync + Send > ,
1523
1528
onion_message_handler : Arc :: clone ( & onion_messenger) ,
1524
1529
custom_message_handler,
1530
+ send_only_message_handler : Arc :: clone ( & chain_monitor) ,
1525
1531
} ,
1526
1532
GossipSync :: None => {
1527
1533
unreachable ! ( "We must always have a gossip sync!" ) ;
0 commit comments