@@ -313,7 +313,7 @@ macro_rules! define_run_body {
313313 $channel_manager: ident, $process_channel_manager_events: expr,
314314 $onion_messenger: ident, $process_onion_message_handler_events: expr,
315315 $peer_manager: ident, $gossip_sync: ident,
316- $sweeper: ident ,
316+ $sweeper: expr ,
317317 $logger: ident, $scorer: ident, $loop_exit_check: expr, $await: expr, $get_timer: expr,
318318 $timer_elapsed: expr, $check_slow_await: expr, $time_fetch: expr,
319319 ) => { {
@@ -473,7 +473,7 @@ macro_rules! define_run_body {
473473
474474 if $timer_elapsed( & mut last_sweeper_call, SWEEPER_TIMER ) {
475475 log_trace!( $logger, "Regenerate sweeper spends if necessary" ) ;
476- let _ = $sweeper. regenerate_and_broadcast_spend_if_necessary_locked ( ) ;
476+ let _ = $sweeper;
477477 last_sweeper_call = $get_timer( SWEEPER_TIMER ) ;
478478 }
479479 }
@@ -757,6 +757,10 @@ pub async fn process_events_async<
757757 + Sync ,
758758 CM : ' static + Deref + Send + Sync ,
759759 OM : ' static + Deref + Send + Sync ,
760+ D : ' static + Deref + Send + Sync ,
761+ O : ' static + Deref + Send + Sync ,
762+ K : ' static + Deref + Send + Sync ,
763+ OS : ' static + Deref < Target = OutputSweeper < T , D , F , CF , K , L , O > > + Send + Sync ,
760764 PGS : ' static + Deref < Target = P2PGossipSync < G , UL , L > > + Send + Sync ,
761765 RGS : ' static + Deref < Target = RapidGossipSync < G , L > > + Send ,
762766 PM : ' static + Deref + Send + Sync ,
@@ -768,12 +772,13 @@ pub async fn process_events_async<
768772> (
769773 persister : PS , event_handler : EventHandler , chain_monitor : M , channel_manager : CM ,
770774 onion_messenger : Option < OM > , gossip_sync : GossipSync < PGS , RGS , G , UL , L > , peer_manager : PM ,
775+ sweeper : OS ,
771776 logger : L , scorer : Option < S > , sleeper : Sleeper , mobile_interruptable_platform : bool ,
772777 fetch_time : FetchTime ,
773778) -> Result < ( ) , lightning:: io:: Error >
774779where
775780 UL :: Target : ' static + UtxoLookup ,
776- CF :: Target : ' static + chain:: Filter ,
781+ CF :: Target : ' static + chain:: Filter + Sync + Send ,
777782 T :: Target : ' static + BroadcasterInterface ,
778783 F :: Target : ' static + FeeEstimator ,
779784 L :: Target : ' static + Logger ,
@@ -782,6 +787,9 @@ where
782787 CM :: Target : AChannelManager + Send + Sync ,
783788 OM :: Target : AOnionMessenger + Send + Sync ,
784789 PM :: Target : APeerManager + Send + Sync ,
790+ O :: Target : ' static + OutputSpender + Send + Sync ,
791+ D :: Target : ' static + ChangeDestinationSource + Send + Sync ,
792+ K :: Target : ' static + KVStore + Send + Sync ,
785793{
786794 let mut should_break = false ;
787795 let async_event_handler = |event| {
@@ -825,6 +833,7 @@ where
825833 } ,
826834 peer_manager,
827835 gossip_sync,
836+ sweeper. regenerate_and_broadcast_spend_if_necessary_locked( ) . await ,
828837 logger,
829838 scorer,
830839 should_break,
@@ -1109,7 +1118,7 @@ mod tests {
11091118 use lightning:: routing:: router:: { CandidateRouteHop , DefaultRouter , Path , RouteHop } ;
11101119 use lightning:: routing:: scoring:: { ChannelUsage , LockableScore , ScoreLookUp , ScoreUpdate } ;
11111120 use lightning:: routing:: utxo:: UtxoLookup ;
1112- use lightning:: sign:: { ChangeDestinationSource , InMemorySigner , KeysManager } ;
1121+ use lightning:: sign:: { AsyncGetChangeDestinationScriptResult , ChangeDestinationSource , InMemorySigner , KeysManager } ;
11131122 use lightning:: types:: features:: { ChannelFeatures , NodeFeatures } ;
11141123 use lightning:: types:: payment:: PaymentHash ;
11151124 use lightning:: util:: config:: UserConfig ;
@@ -1544,8 +1553,10 @@ mod tests {
15441553 struct TestWallet { }
15451554
15461555 impl ChangeDestinationSource for TestWallet {
1547- fn get_change_destination_script ( & self ) -> Result < ScriptBuf , ( ) > {
1548- Ok ( ScriptBuf :: new ( ) )
1556+ fn get_change_destination_script < ' a > ( & self ) -> AsyncGetChangeDestinationScriptResult < ' a , ScriptBuf > {
1557+ Box :: pin ( async move {
1558+ Ok ( ScriptBuf :: new ( ) )
1559+ } )
15491560 }
15501561 }
15511562
@@ -2027,6 +2038,7 @@ mod tests {
20272038 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
20282039 nodes[ 0 ] . rapid_gossip_sync ( ) ,
20292040 nodes[ 0 ] . peer_manager . clone ( ) ,
2041+ nodes[ 0 ] . sweeper . clone ( ) ,
20302042 nodes[ 0 ] . logger . clone ( ) ,
20312043 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
20322044 move |dur : Duration | {
@@ -2514,6 +2526,7 @@ mod tests {
25142526 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
25152527 nodes[ 0 ] . rapid_gossip_sync ( ) ,
25162528 nodes[ 0 ] . peer_manager . clone ( ) ,
2529+ nodes[ 0 ] . sweeper . clone ( ) ,
25172530 nodes[ 0 ] . logger . clone ( ) ,
25182531 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
25192532 move |dur : Duration | {
@@ -2727,6 +2740,7 @@ mod tests {
27272740 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
27282741 nodes[ 0 ] . no_gossip_sync ( ) ,
27292742 nodes[ 0 ] . peer_manager . clone ( ) ,
2743+ nodes[ 0 ] . sweeper . clone ( ) ,
27302744 nodes[ 0 ] . logger . clone ( ) ,
27312745 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
27322746 move |dur : Duration | {
0 commit comments