@@ -313,7 +313,7 @@ macro_rules! define_run_body {
313
313
$channel_manager: ident, $process_channel_manager_events: expr,
314
314
$onion_messenger: ident, $process_onion_message_handler_events: expr,
315
315
$peer_manager: ident, $gossip_sync: ident,
316
- $sweeper: ident ,
316
+ $sweeper: expr ,
317
317
$logger: ident, $scorer: ident, $loop_exit_check: expr, $await: expr, $get_timer: expr,
318
318
$timer_elapsed: expr, $check_slow_await: expr, $time_fetch: expr,
319
319
) => { {
@@ -473,7 +473,7 @@ macro_rules! define_run_body {
473
473
474
474
if $timer_elapsed( & mut last_sweeper_call, SWEEPER_TIMER ) {
475
475
log_trace!( $logger, "Regenerate sweeper spends if necessary" ) ;
476
- let _ = $sweeper. regenerate_and_broadcast_spend_if_necessary_locked ( ) ;
476
+ let _ = $sweeper;
477
477
last_sweeper_call = $get_timer( SWEEPER_TIMER ) ;
478
478
}
479
479
}
@@ -757,6 +757,10 @@ pub async fn process_events_async<
757
757
+ Sync ,
758
758
CM : ' static + Deref + Send + Sync ,
759
759
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 ,
760
764
PGS : ' static + Deref < Target = P2PGossipSync < G , UL , L > > + Send + Sync ,
761
765
RGS : ' static + Deref < Target = RapidGossipSync < G , L > > + Send ,
762
766
PM : ' static + Deref + Send + Sync ,
@@ -768,12 +772,13 @@ pub async fn process_events_async<
768
772
> (
769
773
persister : PS , event_handler : EventHandler , chain_monitor : M , channel_manager : CM ,
770
774
onion_messenger : Option < OM > , gossip_sync : GossipSync < PGS , RGS , G , UL , L > , peer_manager : PM ,
775
+ sweeper : OS ,
771
776
logger : L , scorer : Option < S > , sleeper : Sleeper , mobile_interruptable_platform : bool ,
772
777
fetch_time : FetchTime ,
773
778
) -> Result < ( ) , lightning:: io:: Error >
774
779
where
775
780
UL :: Target : ' static + UtxoLookup ,
776
- CF :: Target : ' static + chain:: Filter ,
781
+ CF :: Target : ' static + chain:: Filter + Sync + Send ,
777
782
T :: Target : ' static + BroadcasterInterface ,
778
783
F :: Target : ' static + FeeEstimator ,
779
784
L :: Target : ' static + Logger ,
@@ -782,6 +787,9 @@ where
782
787
CM :: Target : AChannelManager + Send + Sync ,
783
788
OM :: Target : AOnionMessenger + Send + Sync ,
784
789
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 ,
785
793
{
786
794
let mut should_break = false ;
787
795
let async_event_handler = |event| {
@@ -825,6 +833,7 @@ where
825
833
} ,
826
834
peer_manager,
827
835
gossip_sync,
836
+ sweeper. regenerate_and_broadcast_spend_if_necessary_locked( ) . await ,
828
837
logger,
829
838
scorer,
830
839
should_break,
@@ -1109,7 +1118,7 @@ mod tests {
1109
1118
use lightning:: routing:: router:: { CandidateRouteHop , DefaultRouter , Path , RouteHop } ;
1110
1119
use lightning:: routing:: scoring:: { ChannelUsage , LockableScore , ScoreLookUp , ScoreUpdate } ;
1111
1120
use lightning:: routing:: utxo:: UtxoLookup ;
1112
- use lightning:: sign:: { ChangeDestinationSource , InMemorySigner , KeysManager } ;
1121
+ use lightning:: sign:: { AsyncGetChangeDestinationScriptResult , ChangeDestinationSource , InMemorySigner , KeysManager } ;
1113
1122
use lightning:: types:: features:: { ChannelFeatures , NodeFeatures } ;
1114
1123
use lightning:: types:: payment:: PaymentHash ;
1115
1124
use lightning:: util:: config:: UserConfig ;
@@ -1544,8 +1553,10 @@ mod tests {
1544
1553
struct TestWallet { }
1545
1554
1546
1555
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
+ } )
1549
1560
}
1550
1561
}
1551
1562
@@ -2027,6 +2038,7 @@ mod tests {
2027
2038
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2028
2039
nodes[ 0 ] . rapid_gossip_sync ( ) ,
2029
2040
nodes[ 0 ] . peer_manager . clone ( ) ,
2041
+ nodes[ 0 ] . sweeper . clone ( ) ,
2030
2042
nodes[ 0 ] . logger . clone ( ) ,
2031
2043
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2032
2044
move |dur : Duration | {
@@ -2514,6 +2526,7 @@ mod tests {
2514
2526
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2515
2527
nodes[ 0 ] . rapid_gossip_sync ( ) ,
2516
2528
nodes[ 0 ] . peer_manager . clone ( ) ,
2529
+ nodes[ 0 ] . sweeper . clone ( ) ,
2517
2530
nodes[ 0 ] . logger . clone ( ) ,
2518
2531
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2519
2532
move |dur : Duration | {
@@ -2727,6 +2740,7 @@ mod tests {
2727
2740
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2728
2741
nodes[ 0 ] . no_gossip_sync ( ) ,
2729
2742
nodes[ 0 ] . peer_manager . clone ( ) ,
2743
+ nodes[ 0 ] . sweeper . clone ( ) ,
2730
2744
nodes[ 0 ] . logger . clone ( ) ,
2731
2745
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2732
2746
move |dur : Duration | {
0 commit comments