@@ -32,7 +32,7 @@ use fwd_batch::BatchDelay;
3232
3333use lightning:: chain;
3434use lightning:: chain:: chaininterface:: { BroadcasterInterface , FeeEstimator } ;
35- use lightning:: chain:: chainmonitor:: { ChainMonitor , Persist } ;
35+ use lightning:: chain:: chainmonitor:: AChainMonitor ;
3636#[ cfg( feature = "std" ) ]
3737use lightning:: events:: EventHandler ;
3838#[ cfg( feature = "std" ) ]
@@ -118,6 +118,7 @@ use alloc::vec::Vec;
118118///
119119/// [`ChannelManager`]: lightning::ln::channelmanager::ChannelManager
120120/// [`ChannelManager::timer_tick_occurred`]: lightning::ln::channelmanager::ChannelManager::timer_tick_occurred
121+ /// [`ChainMonitor::rebroadcast_pending_claims`]: lightning::chain::chainmonitor::ChainMonitor::rebroadcast_pending_claims
121122/// [`ChannelMonitor`]: lightning::chain::channelmonitor::ChannelMonitor
122123/// [`Event`]: lightning::events::Event
123124/// [`PeerManager::timer_tick_occurred`]: lightning::ln::peer_handler::PeerManager::timer_tick_occurred
@@ -923,16 +924,11 @@ use futures_util::{dummy_waker, Joiner, OptionalSelector, Selector, SelectorOutp
923924pub async fn process_events_async <
924925 ' a ,
925926 UL : UtxoLookup ,
926- CF : chain:: Filter ,
927- T : BroadcasterInterface ,
928- F : FeeEstimator ,
929927 G : Deref < Target = NetworkGraph < L > > ,
930928 L : Logger ,
931- P : Deref ,
932929 EventHandlerFuture : core:: future:: Future < Output = Result < ( ) , ReplayEvent > > ,
933930 EventHandler : Fn ( Event ) -> EventHandlerFuture ,
934- ES : EntropySource ,
935- M : Deref < Target = ChainMonitor < <CM :: Target as AChannelManager >:: Signer , CF , T , F , L , P , ES > > ,
931+ M : Deref ,
936932 CM : Deref ,
937933 OM : Deref ,
938934 PGS : Deref < Target = P2PGossipSync < G , UL , L > > ,
@@ -942,7 +938,17 @@ pub async fn process_events_async<
942938 D : Deref ,
943939 O : OutputSpender ,
944940 K : KVStore ,
945- OS : Deref < Target = OutputSweeper < T , D , F , CF , K , L , O > > ,
941+ OS : Deref <
942+ Target = OutputSweeper <
943+ <M :: Target as AChainMonitor >:: Broadcaster ,
944+ D ,
945+ <M :: Target as AChainMonitor >:: FeeEstimator ,
946+ <M :: Target as AChainMonitor >:: Filter ,
947+ K ,
948+ L ,
949+ O ,
950+ > ,
951+ > ,
946952 S : Deref < Target = SC > ,
947953 SC : for < ' b > WriteableScore < ' b > ,
948954 SleepFuture : core:: future:: Future < Output = bool > + core:: marker:: Unpin ,
@@ -955,7 +961,7 @@ pub async fn process_events_async<
955961 sleeper : Sleeper , mobile_interruptable_platform : bool , fetch_time : FetchTime ,
956962) -> Result < ( ) , lightning:: io:: Error >
957963where
958- P :: Target : Persist < <CM :: Target as AChannelManager >:: Signer > ,
964+ M :: Target : AChainMonitor < Signer = <CM :: Target as AChannelManager >:: Signer , Logger = L > ,
959965 CM :: Target : AChannelManager ,
960966 OM :: Target : AOnionMessenger ,
961967 PM :: Target : APeerManager ,
@@ -1004,7 +1010,7 @@ where
10041010 log_trace ! ( logger, "Calling ChannelManager's timer_tick_occurred on startup" ) ;
10051011 channel_manager. get_cm ( ) . timer_tick_occurred ( ) ;
10061012 log_trace ! ( logger, "Rebroadcasting monitor's pending claims on startup" ) ;
1007- chain_monitor. rebroadcast_pending_claims ( ) ;
1013+ chain_monitor. get_cm ( ) . rebroadcast_pending_claims ( ) ;
10081014
10091015 let mut last_freshness_call = sleeper ( FRESHNESS_TIMER ) ;
10101016 let mut last_onion_message_handler_call = sleeper ( ONION_MESSAGE_HANDLER_TIMER ) ;
@@ -1022,7 +1028,7 @@ where
10221028
10231029 loop {
10241030 channel_manager. get_cm ( ) . process_pending_events_async ( async_event_handler) . await ;
1025- chain_monitor. process_pending_events_async ( async_event_handler) . await ;
1031+ chain_monitor. get_cm ( ) . process_pending_events_async ( async_event_handler) . await ;
10261032 if let Some ( om) = & onion_messenger {
10271033 om. get_om ( ) . process_pending_events_async ( async_event_handler) . await
10281034 }
@@ -1072,7 +1078,7 @@ where
10721078 let fut = Selector {
10731079 a : sleeper ( sleep_delay) ,
10741080 b : channel_manager. get_cm ( ) . get_event_or_persistence_needed_future ( ) ,
1075- c : chain_monitor. get_update_future ( ) ,
1081+ c : chain_monitor. get_cm ( ) . get_update_future ( ) ,
10761082 d : om_fut,
10771083 e : lm_fut,
10781084 f : gv_fut,
@@ -1164,7 +1170,7 @@ where
11641170 } ;
11651171 if archive_timer_elapsed {
11661172 log_trace ! ( logger, "Archiving stale ChannelMonitors." ) ;
1167- chain_monitor. archive_fully_resolved_channel_monitors ( ) ;
1173+ chain_monitor. get_cm ( ) . archive_fully_resolved_channel_monitors ( ) ;
11681174 have_archived = true ;
11691175 log_trace ! ( logger, "Archived stale ChannelMonitors." ) ;
11701176 }
@@ -1354,7 +1360,7 @@ where
13541360 match check_and_reset_sleeper ( & mut last_rebroadcast_call, || sleeper ( REBROADCAST_TIMER ) ) {
13551361 Some ( false ) => {
13561362 log_trace ! ( logger, "Rebroadcasting monitor's pending claims" ) ;
1357- chain_monitor. rebroadcast_pending_claims ( ) ;
1363+ chain_monitor. get_cm ( ) . rebroadcast_pending_claims ( ) ;
13581364 } ,
13591365 Some ( true ) => break ,
13601366 None => { } ,
@@ -1416,16 +1422,11 @@ fn check_and_reset_sleeper<
14161422/// synchronous background persistence.
14171423pub async fn process_events_async_with_kv_store_sync <
14181424 UL : UtxoLookup ,
1419- CF : chain:: Filter ,
1420- T : BroadcasterInterface ,
1421- F : FeeEstimator ,
14221425 G : Deref < Target = NetworkGraph < L > > ,
14231426 L : Logger ,
1424- P : Deref ,
14251427 EventHandlerFuture : core:: future:: Future < Output = Result < ( ) , ReplayEvent > > ,
14261428 EventHandler : Fn ( Event ) -> EventHandlerFuture ,
1427- ES : EntropySource ,
1428- M : Deref < Target = ChainMonitor < <CM :: Target as AChannelManager >:: Signer , CF , T , F , L , P , ES > > ,
1429+ M : Deref ,
14291430 CM : Deref ,
14301431 OM : Deref ,
14311432 PGS : Deref < Target = P2PGossipSync < G , UL , L > > ,
@@ -1435,7 +1436,17 @@ pub async fn process_events_async_with_kv_store_sync<
14351436 D : Deref ,
14361437 O : OutputSpender ,
14371438 K : Deref ,
1438- OS : Deref < Target = OutputSweeperSync < T , D , F , CF , K , L , O > > ,
1439+ OS : Deref <
1440+ Target = OutputSweeperSync <
1441+ <M :: Target as AChainMonitor >:: Broadcaster ,
1442+ D ,
1443+ <M :: Target as AChainMonitor >:: FeeEstimator ,
1444+ <M :: Target as AChainMonitor >:: Filter ,
1445+ K ,
1446+ L ,
1447+ O ,
1448+ > ,
1449+ > ,
14391450 S : Deref < Target = SC > ,
14401451 SC : for < ' b > WriteableScore < ' b > ,
14411452 SleepFuture : core:: future:: Future < Output = bool > + core:: marker:: Unpin ,
@@ -1448,7 +1459,7 @@ pub async fn process_events_async_with_kv_store_sync<
14481459 sleeper : Sleeper , mobile_interruptable_platform : bool , fetch_time : FetchTime ,
14491460) -> Result < ( ) , lightning:: io:: Error >
14501461where
1451- P :: Target : Persist < <CM :: Target as AChannelManager >:: Signer > ,
1462+ M :: Target : AChainMonitor < Signer = <CM :: Target as AChannelManager >:: Signer , Logger = L > ,
14521463 CM :: Target : AChannelManager ,
14531464 OM :: Target : AOnionMessenger ,
14541465 PM :: Target : APeerManager ,
@@ -1523,20 +1534,10 @@ impl BackgroundProcessor {
15231534 pub fn start <
15241535 ' a ,
15251536 UL : ' static + UtxoLookup ,
1526- CF : ' static + chain:: Filter ,
1527- T : ' static + BroadcasterInterface ,
1528- F : ' static + FeeEstimator + Send ,
15291537 G : ' static + Deref < Target = NetworkGraph < L > > ,
15301538 L : ' static + Deref + Send ,
1531- P : ' static + Deref ,
15321539 EH : ' static + EventHandler + Send ,
1533- ES : ' static + EntropySource + Send ,
1534- M : ' static
1535- + Deref <
1536- Target = ChainMonitor < <CM :: Target as AChannelManager >:: Signer , CF , T , F , L , P , ES > ,
1537- >
1538- + Send
1539- + Sync ,
1540+ M : ' static + Deref + Send + Sync ,
15401541 CM : ' static + Deref + Send ,
15411542 OM : ' static + Deref + Send ,
15421543 PGS : ' static + Deref < Target = P2PGossipSync < G , UL , L > > + Send ,
@@ -1548,15 +1549,27 @@ impl BackgroundProcessor {
15481549 D : ' static + Deref ,
15491550 O : ' static + OutputSpender ,
15501551 K : ' static + Deref + Send ,
1551- OS : ' static + Deref < Target = OutputSweeperSync < T , D , F , CF , K , L , O > > + Send ,
1552+ OS : ' static
1553+ + Deref <
1554+ Target = OutputSweeperSync <
1555+ <M :: Target as AChainMonitor >:: Broadcaster ,
1556+ D ,
1557+ <M :: Target as AChainMonitor >:: FeeEstimator ,
1558+ <M :: Target as AChainMonitor >:: Filter ,
1559+ K ,
1560+ L ,
1561+ O ,
1562+ > ,
1563+ >
1564+ + Send ,
15521565 > (
15531566 kv_store : K , event_handler : EH , chain_monitor : M , channel_manager : CM ,
15541567 onion_messenger : Option < OM > , gossip_sync : GossipSync < PGS , RGS , G , UL , L > , peer_manager : PM ,
15551568 liquidity_manager : Option < LM > , sweeper : Option < OS > , logger : L , scorer : Option < S > ,
15561569 ) -> Self
15571570 where
15581571 L :: Target : ' static + Logger ,
1559- P :: Target : ' static + Persist < < CM :: Target as AChannelManager >:: Signer > ,
1572+ M :: Target : AChainMonitor < Signer = < CM :: Target as AChannelManager >:: Signer , Logger = L > ,
15601573 CM :: Target : AChannelManager ,
15611574 OM :: Target : AOnionMessenger ,
15621575 PM :: Target : APeerManager ,
@@ -1596,7 +1609,7 @@ impl BackgroundProcessor {
15961609 log_trace ! ( logger, "Calling ChannelManager's timer_tick_occurred on startup" ) ;
15971610 channel_manager. get_cm ( ) . timer_tick_occurred ( ) ;
15981611 log_trace ! ( logger, "Rebroadcasting monitor's pending claims on startup" ) ;
1599- chain_monitor. rebroadcast_pending_claims ( ) ;
1612+ chain_monitor. get_cm ( ) . rebroadcast_pending_claims ( ) ;
16001613
16011614 let mut last_freshness_call = Instant :: now ( ) ;
16021615 let mut last_onion_message_handler_call = Instant :: now ( ) ;
@@ -1615,7 +1628,7 @@ impl BackgroundProcessor {
16151628
16161629 loop {
16171630 channel_manager. get_cm ( ) . process_pending_events ( & event_handler) ;
1618- chain_monitor. process_pending_events ( & event_handler) ;
1631+ chain_monitor. get_cm ( ) . process_pending_events ( & event_handler) ;
16191632 if let Some ( om) = & onion_messenger {
16201633 om. get_om ( ) . process_pending_events ( & event_handler)
16211634 } ;
@@ -1648,7 +1661,7 @@ impl BackgroundProcessor {
16481661 let gv_fut = gossip_sync. validation_completion_future ( ) ;
16491662 let always_futures = [
16501663 channel_manager. get_cm ( ) . get_event_or_persistence_needed_future ( ) ,
1651- chain_monitor. get_update_future ( ) ,
1664+ chain_monitor. get_cm ( ) . get_update_future ( ) ,
16521665 ] ;
16531666 let futures = always_futures. into_iter ( ) . chain ( om_fut) . chain ( lm_fut) . chain ( gv_fut) ;
16541667 let sleeper = Sleeper :: from_futures ( futures) ;
@@ -1701,7 +1714,7 @@ impl BackgroundProcessor {
17011714 let archive_timer_elapsed = last_archive_call. elapsed ( ) > archive_timer;
17021715 if archive_timer_elapsed {
17031716 log_trace ! ( logger, "Archiving stale ChannelMonitors." ) ;
1704- chain_monitor. archive_fully_resolved_channel_monitors ( ) ;
1717+ chain_monitor. get_cm ( ) . archive_fully_resolved_channel_monitors ( ) ;
17051718 have_archived = true ;
17061719 last_archive_call = Instant :: now ( ) ;
17071720 log_trace ! ( logger, "Archived stale ChannelMonitors." ) ;
@@ -1786,7 +1799,7 @@ impl BackgroundProcessor {
17861799 }
17871800 if last_rebroadcast_call. elapsed ( ) > REBROADCAST_TIMER {
17881801 log_trace ! ( logger, "Rebroadcasting monitor's pending claims" ) ;
1789- chain_monitor. rebroadcast_pending_claims ( ) ;
1802+ chain_monitor. get_cm ( ) . rebroadcast_pending_claims ( ) ;
17901803 last_rebroadcast_call = Instant :: now ( ) ;
17911804 }
17921805 }
0 commit comments