Fix `Simple*PeerManager` to not require refs to the `UtxoLookup`
authorMatt Corallo <git@bluematt.me>
Sat, 30 Sep 2023 17:32:28 +0000 (17:32 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 30 Sep 2023 17:57:54 +0000 (17:57 +0000)
`UtxoLookup` doesn't strictly need to be referenced from the
`PeerManager`, and in fact the new `GossipVerifier` in
`lightning-block-sync` requires itself to be owned by the
`PeerManager` (for circular type reasons).

This allows us to use `lightning-block-sync`'s `GossipVerifier`
with `SimpleArcPeerManager` in ldk-sample.

lightning-background-processor/src/lib.rs
lightning/src/ln/peer_handler.rs

index efa1a42142c7c428405f9211019680e997aeaa57..4b13d893e7c0408da5b943ed25aa7b5fa017f4e0 100644 (file)
@@ -528,7 +528,7 @@ use core::task;
 /// # type MyFilter = dyn lightning::chain::Filter + Send + Sync;
 /// # type MyLogger = dyn lightning::util::logger::Logger + Send + Sync;
 /// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyStore>>;
-/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger>;
+/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, Arc<MyUtxoLookup>, MyLogger>;
 /// # type MyNetworkGraph = lightning::routing::gossip::NetworkGraph<Arc<MyLogger>>;
 /// # type MyGossipSync = lightning::routing::gossip::P2PGossipSync<Arc<MyNetworkGraph>, Arc<MyUtxoLookup>, Arc<MyLogger>>;
 /// # type MyChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyLogger>;
index 1e0294073a25d2b01b470bbbbad16d9f9ab3d305..63dfa527d2c77c94403b70e16edf6a7463266ae8 100644 (file)
@@ -611,7 +611,7 @@ impl Peer {
 pub type SimpleArcPeerManager<SD, M, T, F, C, L> = PeerManager<
        SD,
        Arc<SimpleArcChannelManager<M, T, F, L>>,
-       Arc<P2PGossipSync<Arc<NetworkGraph<Arc<L>>>, Arc<C>, Arc<L>>>,
+       Arc<P2PGossipSync<Arc<NetworkGraph<Arc<L>>>, C, Arc<L>>>,
        Arc<SimpleArcOnionMessenger<L>>,
        Arc<L>,
        IgnoringMessageHandler,
@@ -627,12 +627,12 @@ pub type SimpleArcPeerManager<SD, M, T, F, C, L> = PeerManager<
 ///
 /// This is not exported to bindings users as general type aliases don't make sense in bindings.
 pub type SimpleRefPeerManager<
-       'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, SD, M, T, F, C, L
+       'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, SD, M, T, F, C, L
 > = PeerManager<
        SD,
-       &'n SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'm, M, T, F, L>,
-       &'f P2PGossipSync<&'g NetworkGraph<&'f L>, &'h C, &'f L>,
-       &'i SimpleRefOnionMessenger<'g, 'm, 'n, L>,
+       &'j SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'i, M, T, F, L>,
+       &'f P2PGossipSync<&'g NetworkGraph<&'f L>, C, &'f L>,
+       &'h SimpleRefOnionMessenger<'g, 'i, 'j, L>,
        &'f L,
        IgnoringMessageHandler,
        &'c KeysManager