@@ -69,6 +69,8 @@ use lightning::util::wakers::Sleeper;
6969use lightning_rapid_gossip_sync:: RapidGossipSync ;
7070
7171use lightning_liquidity:: ALiquidityManager ;
72+ #[ cfg( feature = "std" ) ]
73+ use lightning_liquidity:: ALiquidityManagerSync ;
7274
7375use core:: ops:: Deref ;
7476use core:: time:: Duration ;
@@ -424,6 +426,31 @@ pub const NO_LIQUIDITY_MANAGER: Option<
424426 CM = & DynChannelManager ,
425427 Filter = dyn chain:: Filter ,
426428 C = & dyn chain:: Filter ,
429+ KVStore = dyn lightning:: util:: persist:: KVStore ,
430+ K = & dyn lightning:: util:: persist:: KVStore ,
431+ TimeProvider = dyn lightning_liquidity:: utils:: time:: TimeProvider ,
432+ TP = & dyn lightning_liquidity:: utils:: time:: TimeProvider ,
433+ > + Send
434+ + Sync ,
435+ > ,
436+ > = None ;
437+
438+ /// When initializing a background processor without a liquidity manager, this can be used to avoid
439+ /// specifying a concrete `LiquidityManagerSync` type.
440+ #[ cfg( all( not( c_bindings) , feature = "std" ) ) ]
441+ pub const NO_LIQUIDITY_MANAGER_SYNC : Option <
442+ Arc <
443+ dyn ALiquidityManagerSync <
444+ EntropySource = dyn EntropySource ,
445+ ES = & dyn EntropySource ,
446+ NodeSigner = dyn lightning:: sign:: NodeSigner ,
447+ NS = & dyn lightning:: sign:: NodeSigner ,
448+ AChannelManager = DynChannelManager ,
449+ CM = & DynChannelManager ,
450+ Filter = dyn chain:: Filter ,
451+ C = & dyn chain:: Filter ,
452+ KVStoreSync = dyn lightning:: util:: persist:: KVStoreSync ,
453+ KS = & dyn lightning:: util:: persist:: KVStoreSync ,
427454 TimeProvider = dyn lightning_liquidity:: utils:: time:: TimeProvider ,
428455 TP = & dyn lightning_liquidity:: utils:: time:: TimeProvider ,
429456 > + Send
@@ -731,7 +758,7 @@ use futures_util::{dummy_waker, Joiner, OptionalSelector, Selector, SelectorOutp
731758/// # type P2PGossipSync<UL> = lightning::routing::gossip::P2PGossipSync<Arc<NetworkGraph>, Arc<UL>, Arc<Logger>>;
732759/// # type ChannelManager<B, F, FE> = lightning::ln::channelmanager::SimpleArcChannelManager<ChainMonitor<B, F, FE>, B, FE, Logger>;
733760/// # type OnionMessenger<B, F, FE> = lightning::onion_message::messenger::OnionMessenger<Arc<lightning::sign::KeysManager>, Arc<lightning::sign::KeysManager>, Arc<Logger>, Arc<ChannelManager<B, F, FE>>, Arc<lightning::onion_message::messenger::DefaultMessageRouter<Arc<NetworkGraph>, Arc<Logger>, Arc<lightning::sign::KeysManager>>>, Arc<ChannelManager<B, F, FE>>, lightning::ln::peer_handler::IgnoringMessageHandler, lightning::ln::peer_handler::IgnoringMessageHandler, lightning::ln::peer_handler::IgnoringMessageHandler>;
734- /// # type LiquidityManager<B, F, FE> = lightning_liquidity::LiquidityManager<Arc<lightning::sign::KeysManager>, Arc<lightning::sign::KeysManager>, Arc<ChannelManager<B, F, FE>>, Arc<F>, Arc<DefaultTimeProvider>>;
761+ /// # type LiquidityManager<B, F, FE> = lightning_liquidity::LiquidityManager<Arc<lightning::sign::KeysManager>, Arc<lightning::sign::KeysManager>, Arc<ChannelManager<B, F, FE>>, Arc<F>, Arc<Store>, Arc< DefaultTimeProvider>>;
735762/// # type Scorer = RwLock<lightning::routing::scoring::ProbabilisticScorer<Arc<NetworkGraph>, Arc<Logger>>>;
736763/// # type PeerManager<B, F, FE, UL> = lightning::ln::peer_handler::SimpleArcPeerManager<SocketDescriptor, ChainMonitor<B, F, FE>, B, FE, Arc<UL>, Logger, F, StoreSync>;
737764/// # type OutputSweeper<B, D, FE, F, O> = lightning::util::sweep::OutputSweeper<Arc<B>, Arc<D>, Arc<FE>, Arc<F>, Arc<Store>, Arc<Logger>, Arc<O>>;
@@ -1450,7 +1477,7 @@ impl BackgroundProcessor {
14501477 CM :: Target : AChannelManager ,
14511478 OM :: Target : AOnionMessenger ,
14521479 PM :: Target : APeerManager ,
1453- LM :: Target : ALiquidityManager ,
1480+ LM :: Target : ALiquidityManagerSync ,
14541481 D :: Target : ChangeDestinationSourceSync ,
14551482 O :: Target : ' static + OutputSpender ,
14561483 K :: Target : ' static + KVStoreSync ,
@@ -1793,7 +1820,7 @@ mod tests {
17931820 use lightning:: util:: test_utils;
17941821 use lightning:: { get_event, get_event_msg} ;
17951822 use lightning_liquidity:: utils:: time:: DefaultTimeProvider ;
1796- use lightning_liquidity:: LiquidityManager ;
1823+ use lightning_liquidity:: { ALiquidityManagerSync , LiquidityManagerSync } ;
17971824 use lightning_persister:: fs_store:: FilesystemStore ;
17981825 use lightning_rapid_gossip_sync:: RapidGossipSync ;
17991826 use std:: collections:: VecDeque ;
@@ -1890,11 +1917,12 @@ mod tests {
18901917 IgnoringMessageHandler ,
18911918 > ;
18921919
1893- type LM = LiquidityManager <
1920+ type LM = LiquidityManagerSync <
18941921 Arc < KeysManager > ,
18951922 Arc < KeysManager > ,
18961923 Arc < ChannelManager > ,
18971924 Arc < dyn Filter + Sync + Send > ,
1925+ Arc < Persister > ,
18981926 Arc < DefaultTimeProvider > ,
18991927 > ;
19001928
@@ -2342,12 +2370,13 @@ mod tests {
23422370 Arc :: clone ( & logger) ,
23432371 Arc :: clone ( & keys_manager) ,
23442372 ) ) ;
2345- let liquidity_manager = Arc :: new ( LiquidityManager :: new (
2373+ let liquidity_manager = Arc :: new ( LiquidityManagerSync :: new (
23462374 Arc :: clone ( & keys_manager) ,
23472375 Arc :: clone ( & keys_manager) ,
23482376 Arc :: clone ( & manager) ,
23492377 None ,
23502378 None ,
2379+ Arc :: clone ( & kv_store) ,
23512380 None ,
23522381 None ,
23532382 ) ) ;
@@ -2727,7 +2756,7 @@ mod tests {
27272756 Some ( Arc :: clone ( & nodes[ 0 ] . messenger ) ) ,
27282757 nodes[ 0 ] . rapid_gossip_sync ( ) ,
27292758 Arc :: clone ( & nodes[ 0 ] . peer_manager ) ,
2730- Some ( Arc :: clone ( & nodes[ 0 ] . liquidity_manager ) ) ,
2759+ Some ( nodes[ 0 ] . liquidity_manager . get_lm_async ( ) ) ,
27312760 Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
27322761 Arc :: clone ( & nodes[ 0 ] . logger ) ,
27332762 Some ( Arc :: clone ( & nodes[ 0 ] . scorer ) ) ,
@@ -3236,7 +3265,7 @@ mod tests {
32363265 Some ( Arc :: clone ( & nodes[ 0 ] . messenger ) ) ,
32373266 nodes[ 0 ] . rapid_gossip_sync ( ) ,
32383267 Arc :: clone ( & nodes[ 0 ] . peer_manager ) ,
3239- Some ( Arc :: clone ( & nodes[ 0 ] . liquidity_manager ) ) ,
3268+ Some ( nodes[ 0 ] . liquidity_manager . get_lm_async ( ) ) ,
32403269 Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
32413270 Arc :: clone ( & nodes[ 0 ] . logger ) ,
32423271 Some ( Arc :: clone ( & nodes[ 0 ] . scorer ) ) ,
@@ -3451,7 +3480,7 @@ mod tests {
34513480 Some ( Arc :: clone ( & nodes[ 0 ] . messenger ) ) ,
34523481 nodes[ 0 ] . no_gossip_sync ( ) ,
34533482 Arc :: clone ( & nodes[ 0 ] . peer_manager ) ,
3454- Some ( Arc :: clone ( & nodes[ 0 ] . liquidity_manager ) ) ,
3483+ Some ( nodes[ 0 ] . liquidity_manager . get_lm_async ( ) ) ,
34553484 Some ( nodes[ 0 ] . sweeper . sweeper_async ( ) ) ,
34563485 Arc :: clone ( & nodes[ 0 ] . logger ) ,
34573486 Some ( Arc :: clone ( & nodes[ 0 ] . scorer ) ) ,
@@ -3500,7 +3529,7 @@ mod tests {
35003529 crate :: NO_ONION_MESSENGER ,
35013530 nodes[ 0 ] . no_gossip_sync ( ) ,
35023531 Arc :: clone ( & nodes[ 0 ] . peer_manager ) ,
3503- crate :: NO_LIQUIDITY_MANAGER ,
3532+ crate :: NO_LIQUIDITY_MANAGER_SYNC ,
35043533 Some ( Arc :: clone ( & nodes[ 0 ] . sweeper ) ) ,
35053534 Arc :: clone ( & nodes[ 0 ] . logger ) ,
35063535 Some ( Arc :: clone ( & nodes[ 0 ] . scorer ) ) ,
0 commit comments