@@ -40,6 +40,7 @@ use crate::types::string::PrintableString;
4040use crate :: util:: indexed_map:: {
4141 Entry as IndexedMapEntry , IndexedMap , OccupiedEntry as IndexedMapOccupiedEntry ,
4242} ;
43+ use crate :: util:: async_poll:: { MaybeSend , MaybeSync } ;
4344use crate :: util:: logger:: { Level , Logger } ;
4445use crate :: util:: scid_utils:: { block_from_scid, scid_from_parts, MAX_SCID_BLOCK } ;
4546use crate :: util:: ser:: { MaybeReadable , Readable , ReadableArgs , RequiredWrapper , Writeable , Writer } ;
@@ -185,7 +186,7 @@ impl FromStr for NodeId {
185186/// Represents the network as nodes and channels between them
186187pub struct NetworkGraph < L : Deref >
187188where
188- L :: Target : Logger ,
189+ L :: Target : Logger + MaybeSend + MaybeSync ,
189190{
190191 secp_ctx : Secp256k1 < secp256k1:: VerifyOnly > ,
191192 last_rapid_gossip_sync_timestamp : Mutex < Option < u32 > > ,
@@ -323,8 +324,8 @@ impl MaybeReadable for NetworkUpdate {
323324/// serving historical announcements.
324325pub struct P2PGossipSync < G : Deref < Target = NetworkGraph < L > > , U : Deref , L : Deref >
325326where
327+ L :: Target : Logger + MaybeSend + MaybeSync ,
326328 U :: Target : UtxoLookup ,
327- L :: Target : Logger ,
328329{
329330 network_graph : G ,
330331 utxo_lookup : RwLock < Option < U > > ,
@@ -335,8 +336,8 @@ where
335336
336337impl < G : Deref < Target = NetworkGraph < L > > , U : Deref , L : Deref > P2PGossipSync < G , U , L >
337338where
339+ L :: Target : Logger + MaybeSend + MaybeSync ,
338340 U :: Target : UtxoLookup ,
339- L :: Target : Logger ,
340341{
341342 /// Creates a new tracker of the actual state of the network of channels and nodes,
342343 /// assuming an existing [`NetworkGraph`].
@@ -416,7 +417,7 @@ where
416417
417418impl < L : Deref > NetworkGraph < L >
418419where
419- L :: Target : Logger ,
420+ L :: Target : Logger + MaybeSend + MaybeSync ,
420421{
421422 /// Handles any network updates originating from [`Event`]s.
422423 ///
@@ -533,8 +534,8 @@ pub fn verify_channel_announcement<C: Verification>(
533534impl < G : Deref < Target = NetworkGraph < L > > , U : Deref , L : Deref > RoutingMessageHandler
534535 for P2PGossipSync < G , U , L >
535536where
537+ L :: Target : Logger + MaybeSend + MaybeSync ,
536538 U :: Target : UtxoLookup ,
537- L :: Target : Logger ,
538539{
539540 fn handle_node_announcement (
540541 & self , _their_node_id : Option < PublicKey > , msg : & msgs:: NodeAnnouncement ,
@@ -759,8 +760,8 @@ where
759760impl < G : Deref < Target = NetworkGraph < L > > , U : Deref , L : Deref > BaseMessageHandler
760761 for P2PGossipSync < G , U , L >
761762where
763+ L :: Target : Logger + MaybeSend + MaybeSync ,
762764 U :: Target : UtxoLookup ,
763- L :: Target : Logger ,
764765{
765766 /// Initiates a stateless sync of routing gossip information with a peer
766767 /// using [`gossip_queries`]. The default strategy used by this implementation
@@ -1631,7 +1632,7 @@ const MIN_SERIALIZATION_VERSION: u8 = 1;
16311632
16321633impl < L : Deref > Writeable for NetworkGraph < L >
16331634where
1634- L :: Target : Logger ,
1635+ L :: Target : Logger + MaybeSend + MaybeSync ,
16351636{
16361637 fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , io:: Error > {
16371638 self . test_node_counter_consistency ( ) ;
@@ -1662,7 +1663,7 @@ where
16621663
16631664impl < L : Deref > ReadableArgs < L > for NetworkGraph < L >
16641665where
1665- L :: Target : Logger ,
1666+ L :: Target : Logger + MaybeSend + MaybeSync ,
16661667{
16671668 fn read < R : io:: Read > ( reader : & mut R , logger : L ) -> Result < NetworkGraph < L > , DecodeError > {
16681669 let _ver = read_ver_prefix ! ( reader, SERIALIZATION_VERSION ) ;
@@ -1719,7 +1720,7 @@ where
17191720
17201721impl < L : Deref > fmt:: Display for NetworkGraph < L >
17211722where
1722- L :: Target : Logger ,
1723+ L :: Target : Logger + MaybeSend + MaybeSync ,
17231724{
17241725 fn fmt ( & self , f : & mut fmt:: Formatter ) -> Result < ( ) , fmt:: Error > {
17251726 writeln ! ( f, "Network map\n [Channels]" ) ?;
@@ -1734,10 +1735,13 @@ where
17341735 }
17351736}
17361737
1737- impl < L : Deref > Eq for NetworkGraph < L > where L :: Target : Logger { }
1738+ impl < L : Deref > Eq for NetworkGraph < L >
1739+ where
1740+ L :: Target : Logger + MaybeSend + MaybeSync ,
1741+ { }
17381742impl < L : Deref > PartialEq for NetworkGraph < L >
17391743where
1740- L :: Target : Logger ,
1744+ L :: Target : Logger + MaybeSend + MaybeSync ,
17411745{
17421746 fn eq ( & self , other : & Self ) -> bool {
17431747 // For a total lockorder, sort by position in memory and take the inner locks in that order.
@@ -1768,7 +1772,7 @@ const NODE_COUNT_ESTIMATE: usize = 20_000;
17681772
17691773impl < L : Deref > NetworkGraph < L >
17701774where
1771- L :: Target : Logger ,
1775+ L :: Target : Logger + MaybeSend + MaybeSync ,
17721776{
17731777 /// Creates a new, empty, network graph.
17741778 pub fn new ( network : Network , logger : L ) -> NetworkGraph < L > {
0 commit comments