@@ -24,7 +24,7 @@ class PeerRouting {
24
24
* @param {object } params
25
25
* @param {import('peer-id') } params.peerId
26
26
* @param {import('../routing-table').RoutingTable } params.routingTable
27
- * @param {import('.. /types').PeerStore } params.peerStore
27
+ * @param {import('libp2p/src/peer-store /types').PeerStore } params.peerStore
28
28
* @param {import('../network').Network } params.network
29
29
* @param {import('libp2p-interfaces/src/types').DhtValidators } params.validators
30
30
* @param {import('../query/manager').QueryManager } params.queryManager
@@ -52,11 +52,11 @@ class PeerRouting {
52
52
53
53
if ( p ) {
54
54
this . _log ( 'findPeerLocal found %p in routing table' , peer )
55
- peerData = this . _peerStore . get ( p )
55
+ peerData = await this . _peerStore . get ( p )
56
56
}
57
57
58
58
if ( ! peerData ) {
59
- peerData = this . _peerStore . get ( peer )
59
+ peerData = await this . _peerStore . get ( peer )
60
60
}
61
61
62
62
if ( peerData ) {
@@ -141,7 +141,7 @@ class PeerRouting {
141
141
const match = peers . find ( ( p ) => p . equals ( id ) )
142
142
143
143
if ( match ) {
144
- const peer = this . _peerStore . get ( id )
144
+ const peer = await this . _peerStore . get ( id )
145
145
146
146
if ( peer ) {
147
147
this . _log ( 'found in peerStore' )
@@ -232,13 +232,15 @@ class PeerRouting {
232
232
233
233
this . _log ( 'found %d peers close to %b' , peers . length , key )
234
234
235
- yield * peers . peers . map ( peer => finalPeerEvent ( {
236
- from : this . _peerId ,
237
- peer : {
238
- id : peer ,
239
- multiaddrs : ( this . _peerStore . addressBook . get ( peer ) || [ ] ) . map ( addr => addr . multiaddr )
240
- }
241
- } ) )
235
+ for ( const peer of peers . peers ) {
236
+ yield finalPeerEvent ( {
237
+ from : this . _peerId ,
238
+ peer : {
239
+ id : peer ,
240
+ multiaddrs : ( await ( this . _peerStore . addressBook . get ( peer ) ) || [ ] ) . map ( addr => addr . multiaddr )
241
+ }
242
+ } )
243
+ }
242
244
}
243
245
244
246
/**
@@ -294,16 +296,20 @@ class PeerRouting {
294
296
async getCloserPeersOffline ( key , closerThan ) {
295
297
const id = await utils . convertBuffer ( key )
296
298
const ids = this . _routingTable . closestPeers ( id )
297
- const output = ids
298
- . map ( ( p ) => {
299
- const peer = this . _peerStore . get ( p )
299
+ const output = [ ]
300
300
301
- return {
302
- id : p ,
303
- multiaddrs : peer ? peer . addresses . map ( ( address ) => address . multiaddr ) : [ ]
304
- }
301
+ for ( const peerId of ids ) {
302
+ if ( peerId . equals ( closerThan ) ) {
303
+ continue
304
+ }
305
+
306
+ const peer = await this . _peerStore . get ( peerId )
307
+
308
+ output . push ( {
309
+ id : peerId ,
310
+ multiaddrs : peer ? peer . addresses . map ( ( address ) => address . multiaddr ) : [ ]
305
311
} )
306
- . filter ( ( closer ) => ! closer . id . equals ( closerThan ) )
312
+ }
307
313
308
314
if ( output . length ) {
309
315
this . _log ( 'getCloserPeersOffline found %d peer(s) closer to %b than %p' , output . length , key , closerThan )
0 commit comments