Skip to content

Commit 4ec3fd2

Browse files
committed
f Reflect upstream changes
1 parent dc622ca commit 4ec3fd2

File tree

1 file changed

+35
-21
lines changed

1 file changed

+35
-21
lines changed

src/lib.rs

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,27 @@ impl Builder {
263263
Arc::clone(&wallet),
264264
));
265265

266+
// Step 12: Initialize the network graph, scorer, and router
267+
let network_graph = Arc::new(
268+
io_utils::read_network_graph(Arc::clone(&config), Arc::clone(&logger))
269+
.expect("Failed to read the network graph"),
270+
);
271+
let scorer = Arc::new(Mutex::new(io_utils::read_scorer(
272+
Arc::clone(&config),
273+
Arc::clone(&network_graph),
274+
Arc::clone(&logger),
275+
)));
276+
277+
let router = Arc::new(DefaultRouter::new(
278+
Arc::clone(&network_graph),
279+
Arc::clone(&logger),
280+
keys_manager.get_secure_random_bytes(),
281+
Arc::clone(&scorer),
282+
));
283+
266284
// Step 6: Read ChannelMonitor state from disk
267285
let mut channel_monitors = persister
268-
.read_channelmonitors(keys_manager.clone())
286+
.read_channelmonitors(Arc::clone(&keys_manager), Arc::clone(&keys_manager))
269287
.expect("Failed to read channel monitors from disk");
270288

271289
// Step 7: Initialize the ChannelManager
@@ -278,10 +296,13 @@ impl Builder {
278296
channel_monitor_mut_references.push(channel_monitor);
279297
}
280298
let read_args = ChannelManagerReadArgs::new(
299+
Arc::clone(&keys_manager),
300+
Arc::clone(&keys_manager),
281301
Arc::clone(&keys_manager),
282302
Arc::clone(&wallet),
283303
Arc::clone(&chain_monitor),
284304
Arc::clone(&wallet),
305+
Arc::clone(&router),
285306
Arc::clone(&logger),
286307
user_config,
287308
channel_monitor_mut_references,
@@ -304,8 +325,11 @@ impl Builder {
304325
Arc::clone(&wallet),
305326
Arc::clone(&chain_monitor),
306327
Arc::clone(&wallet),
328+
Arc::clone(&router),
307329
Arc::clone(&logger),
308330
Arc::clone(&keys_manager),
331+
Arc::clone(&keys_manager),
332+
Arc::clone(&keys_manager),
309333
user_config,
310334
chain_params,
311335
);
@@ -322,10 +346,6 @@ impl Builder {
322346
}
323347

324348
// Step 10: Initialize the P2PGossipSync
325-
let network_graph = Arc::new(
326-
io_utils::read_network_graph(Arc::clone(&config), Arc::clone(&logger))
327-
.expect("Failed to read the network graph"),
328-
);
329349
let gossip_sync = Arc::new(P2PGossipSync::new(
330350
Arc::clone(&network_graph),
331351
None::<Arc<dyn Access + Send + Sync>>,
@@ -334,6 +354,7 @@ impl Builder {
334354

335355
//// Step 11: Initialize the PeerManager
336356
let onion_messenger: Arc<OnionMessenger> = Arc::new(OnionMessenger::new(
357+
Arc::clone(&keys_manager),
337358
Arc::clone(&keys_manager),
338359
Arc::clone(&logger),
339360
IgnoringMessageHandler {},
@@ -357,13 +378,6 @@ impl Builder {
357378
IgnoringMessageHandler {},
358379
));
359380

360-
// Step 12: Initialize routing ProbabilisticScorer
361-
let scorer = Arc::new(Mutex::new(io_utils::read_scorer(
362-
Arc::clone(&config),
363-
Arc::clone(&network_graph),
364-
Arc::clone(&logger),
365-
)));
366-
367381
// Step 13: Init payment info storage
368382
// TODO: persist payment info to disk
369383
let inbound_payments = Arc::new(Mutex::new(HashMap::new()));
@@ -410,6 +424,7 @@ impl Builder {
410424
gossip_sync,
411425
persister,
412426
logger,
427+
router,
413428
scorer,
414429
inbound_payments,
415430
outbound_payments,
@@ -447,6 +462,7 @@ pub struct Node {
447462
persister: Arc<FilesystemPersister>,
448463
logger: Arc<FilesystemLogger>,
449464
scorer: Arc<Mutex<Scorer>>,
465+
router: Arc<Router>,
450466
inbound_payments: Arc<PaymentInfoStorage>,
451467
outbound_payments: Arc<PaymentInfoStorage>,
452468
peer_store: Arc<PeerInfoStorage<FilesystemPersister>>,
@@ -512,16 +528,9 @@ impl Node {
512528
Arc::clone(&self.config),
513529
));
514530

515-
let router = DefaultRouter::new(
516-
Arc::clone(&self.network_graph),
517-
Arc::clone(&self.logger),
518-
self.keys_manager.get_secure_random_bytes(),
519-
Arc::clone(&self.scorer),
520-
);
521-
522531
let invoice_payer = Arc::new(InvoicePayer::new(
523532
Arc::clone(&self.channel_manager),
524-
router,
533+
Arc::clone(&self.router),
525534
Arc::clone(&self.logger),
526535
Arc::clone(&event_handler),
527536
payment::Retry::Timeout(LDK_PAYMENT_RETRY_TIMEOUT),
@@ -1081,13 +1090,17 @@ pub(crate) type ChannelManager = lightning::ln::channelmanager::ChannelManager<
10811090
Arc<ChainMonitor>,
10821091
Arc<Wallet<bdk::sled::Tree>>,
10831092
Arc<WalletKeysManager<bdk::sled::Tree>>,
1093+
Arc<WalletKeysManager<bdk::sled::Tree>>,
1094+
Arc<WalletKeysManager<bdk::sled::Tree>>,
10841095
Arc<Wallet<bdk::sled::Tree>>,
1096+
Arc<Router>,
10851097
Arc<FilesystemLogger>,
10861098
>;
10871099

10881100
pub(crate) type KeysManager = WalletKeysManager<bdk::sled::Tree>;
10891101

1090-
type InvoicePayer<F> = payment::InvoicePayer<Arc<ChannelManager>, Router, Arc<FilesystemLogger>, F>;
1102+
type InvoicePayer<F> =
1103+
payment::InvoicePayer<Arc<ChannelManager>, Arc<Router>, Arc<FilesystemLogger>, F>;
10911104

10921105
type Router = DefaultRouter<Arc<NetworkGraph>, Arc<FilesystemLogger>, Arc<Mutex<Scorer>>>;
10931106
type Scorer = ProbabilisticScorer<Arc<NetworkGraph>, Arc<FilesystemLogger>>;
@@ -1100,6 +1113,7 @@ pub(crate) type NetworkGraph = gossip::NetworkGraph<Arc<FilesystemLogger>>;
11001113
pub(crate) type PaymentInfoStorage = Mutex<HashMap<PaymentHash, PaymentInfo>>;
11011114

11021115
pub(crate) type OnionMessenger = lightning::onion_message::OnionMessenger<
1116+
Arc<WalletKeysManager<bdk::sled::Tree>>,
11031117
Arc<WalletKeysManager<bdk::sled::Tree>>,
11041118
Arc<FilesystemLogger>,
11051119
IgnoringMessageHandler,

0 commit comments

Comments
 (0)