@@ -36,11 +36,18 @@ use lightning::onion_message::messenger::AOnionMessenger;
3636use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
3737use lightning:: routing:: scoring:: { ScoreUpdate , WriteableScore } ;
3838use lightning:: routing:: utxo:: UtxoLookup ;
39- use lightning:: sign:: { ChangeDestinationSource , OutputSpender } ;
39+ #[ cfg( feature = "futures" ) ]
40+ use lightning:: sign:: ChangeDestinationSource ;
41+ #[ cfg( feature = "std" ) ]
42+ use lightning:: sign:: ChangeDestinationSourceSync ;
43+ use lightning:: sign:: OutputSpender ;
4044use lightning:: util:: logger:: Logger ;
4145use lightning:: util:: persist:: { KVStore , Persister } ;
46+ #[ cfg( feature = "futures" ) ]
4247use lightning:: util:: sweep:: OutputSweeper ;
4348#[ cfg( feature = "std" ) ]
49+ use lightning:: util:: sweep:: OutputSweeperSync ;
50+ #[ cfg( feature = "std" ) ]
4451use lightning:: util:: wakers:: Sleeper ;
4552use lightning_rapid_gossip_sync:: RapidGossipSync ;
4653
@@ -726,7 +733,7 @@ where
726733 gossip_sync,
727734 {
728735 if let Some ( ref sweeper) = sweeper {
729- sweeper. regenerate_and_broadcast_spend_if_necessary_locked ( )
736+ sweeper. regenerate_and_broadcast_spend_if_necessary ( ) . await
730737 } else {
731738 Ok ( ( ) )
732739 }
@@ -843,16 +850,17 @@ impl BackgroundProcessor {
843850 PM : ' static + Deref + Send + Sync ,
844851 S : ' static + Deref < Target = SC > + Send + Sync ,
845852 SC : for < ' b > WriteableScore < ' b > ,
846- D : ' static + Deref + Send + Sync ,
853+ D : Deref ,
847854 O : ' static + Deref + Send + Sync ,
848855 K : ' static + Deref + Send + Sync ,
849- OS : ' static + Deref < Target = OutputSweeper < T , D , F , CF , K , L , O > > + Send + Sync ,
856+ OS : ' static + Deref < Target = OutputSweeperSync < T , D , F , CF , K , L , O > > + Send + Sync ,
850857 > (
851858 persister : PS , event_handler : EH , chain_monitor : M , channel_manager : CM ,
852859 onion_messenger : Option < OM > , gossip_sync : GossipSync < PGS , RGS , G , UL , L > , peer_manager : PM ,
853860 sweeper : Option < OS > , logger : L , scorer : Option < S > ,
854861 ) -> Self
855862 where
863+ D :: Target : ChangeDestinationSourceSync ,
856864 UL :: Target : ' static + UtxoLookup ,
857865 CF :: Target : ' static + chain:: Filter + Sync + Send ,
858866 T :: Target : ' static + BroadcasterInterface ,
@@ -864,7 +872,6 @@ impl BackgroundProcessor {
864872 OM :: Target : AOnionMessenger + Send + Sync ,
865873 PM :: Target : APeerManager + Send + Sync ,
866874 O :: Target : ' static + OutputSpender + Send + Sync ,
867- D :: Target : ' static + ChangeDestinationSource + Send + Sync ,
868875 K :: Target : ' static + KVStore + Send + Sync ,
869876 {
870877 let stop_thread = Arc :: new ( AtomicBool :: new ( false ) ) ;
@@ -903,7 +910,7 @@ impl BackgroundProcessor {
903910 gossip_sync,
904911 {
905912 if let Some ( ref sweeper) = sweeper {
906- sweeper. regenerate_and_broadcast_spend_if_necessary_locked ( )
913+ sweeper. regenerate_and_broadcast_spend_if_necessary ( )
907914 } else {
908915 Ok ( ( ) )
909916 }
@@ -1020,7 +1027,7 @@ mod tests {
10201027 use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
10211028 use lightning:: routing:: router:: { CandidateRouteHop , DefaultRouter , Path , RouteHop } ;
10221029 use lightning:: routing:: scoring:: { ChannelUsage , LockableScore , ScoreLookUp , ScoreUpdate } ;
1023- use lightning:: sign:: { ChangeDestinationSource , InMemorySigner , KeysManager } ;
1030+ use lightning:: sign:: { ChangeDestinationSourceSync , InMemorySigner , KeysManager } ;
10241031 use lightning:: types:: features:: { ChannelFeatures , NodeFeatures } ;
10251032 use lightning:: types:: payment:: PaymentHash ;
10261033 use lightning:: util:: config:: UserConfig ;
@@ -1032,7 +1039,7 @@ mod tests {
10321039 SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
10331040 } ;
10341041 use lightning:: util:: ser:: Writeable ;
1035- use lightning:: util:: sweep:: { OutputSpendStatus , OutputSweeper , PRUNE_DELAY_BLOCKS } ;
1042+ use lightning:: util:: sweep:: { OutputSpendStatus , OutputSweeperSync , PRUNE_DELAY_BLOCKS } ;
10361043 use lightning:: util:: test_utils;
10371044 use lightning:: { get_event, get_event_msg} ;
10381045 use lightning_persister:: fs_store:: FilesystemStore ;
@@ -1153,7 +1160,7 @@ mod tests {
11531160 best_block : BestBlock ,
11541161 scorer : Arc < LockingWrapper < TestScorer > > ,
11551162 sweeper : Arc <
1156- OutputSweeper <
1163+ OutputSweeperSync <
11571164 Arc < test_utils:: TestBroadcaster > ,
11581165 Arc < TestWallet > ,
11591166 Arc < test_utils:: TestFeeEstimator > ,
@@ -1454,7 +1461,7 @@ mod tests {
14541461
14551462 struct TestWallet { }
14561463
1457- impl ChangeDestinationSource for TestWallet {
1464+ impl ChangeDestinationSourceSync for TestWallet {
14581465 fn get_change_destination_script ( & self ) -> Result < ScriptBuf , ( ) > {
14591466 Ok ( ScriptBuf :: new ( ) )
14601467 }
@@ -1533,7 +1540,7 @@ mod tests {
15331540 IgnoringMessageHandler { } ,
15341541 ) ) ;
15351542 let wallet = Arc :: new ( TestWallet { } ) ;
1536- let sweeper = Arc :: new ( OutputSweeper :: new (
1543+ let sweeper = Arc :: new ( OutputSweeperSync :: new (
15371544 best_block,
15381545 Arc :: clone ( & tx_broadcaster) ,
15391546 Arc :: clone ( & fee_estimator) ,
@@ -1938,7 +1945,7 @@ mod tests {
19381945 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
19391946 nodes[ 0 ] . rapid_gossip_sync ( ) ,
19401947 nodes[ 0 ] . peer_manager . clone ( ) ,
1941- Some ( nodes[ 0 ] . sweeper . clone ( ) ) ,
1948+ Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
19421949 nodes[ 0 ] . logger . clone ( ) ,
19431950 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
19441951 move |dur : Duration | {
@@ -2438,7 +2445,7 @@ mod tests {
24382445 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
24392446 nodes[ 0 ] . rapid_gossip_sync ( ) ,
24402447 nodes[ 0 ] . peer_manager . clone ( ) ,
2441- Some ( nodes[ 0 ] . sweeper . clone ( ) ) ,
2448+ Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
24422449 nodes[ 0 ] . logger . clone ( ) ,
24432450 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
24442451 move |dur : Duration | {
@@ -2652,7 +2659,7 @@ mod tests {
26522659 Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
26532660 nodes[ 0 ] . no_gossip_sync ( ) ,
26542661 nodes[ 0 ] . peer_manager . clone ( ) ,
2655- Some ( nodes[ 0 ] . sweeper . clone ( ) ) ,
2662+ Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
26562663 nodes[ 0 ] . logger . clone ( ) ,
26572664 Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
26582665 move |dur : Duration | {
0 commit comments