mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-11 18:27:14 +00:00
fix: pass libp2p to discovery services (#597)
* fix: include libp2p in the options passed to discovery creation * fix: handle multiple peer addresses in get multiaddrs for peers * test(peer-store): add test to verify returned relay multiaddrs
This commit is contained in:
parent
30728753cf
commit
9e35fbc316
@ -478,7 +478,7 @@ class Libp2p extends EventEmitter {
|
|||||||
let discoveryService
|
let discoveryService
|
||||||
|
|
||||||
if (typeof DiscoveryService === 'function') {
|
if (typeof DiscoveryService === 'function') {
|
||||||
discoveryService = new DiscoveryService(Object.assign({}, config, { peerInfo: this.peerInfo }))
|
discoveryService = new DiscoveryService(Object.assign({}, config, { peerInfo: this.peerInfo, libp2p: this }))
|
||||||
} else {
|
} else {
|
||||||
discoveryService = DiscoveryService
|
discoveryService = DiscoveryService
|
||||||
}
|
}
|
||||||
|
@ -243,7 +243,8 @@ class PeerStore extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
multiaddrsForPeer (peer) {
|
multiaddrsForPeer (peer) {
|
||||||
return this.put(peer, true).multiaddrs.toArray().map(addr => {
|
return this.put(peer, true).multiaddrs.toArray().map(addr => {
|
||||||
if (addr.getPeerId()) return addr
|
const idString = addr.getPeerId()
|
||||||
|
if (idString && idString === peer.id.toB58String()) return addr
|
||||||
return addr.encapsulate(`/p2p/${peer.id.toB58String()}`)
|
return addr.encapsulate(`/p2p/${peer.id.toB58String()}`)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -161,19 +161,22 @@ describe('peer-store', () => {
|
|||||||
expect(peerStore.peers.size).to.equal(0)
|
expect(peerStore.peers.size).to.equal(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should be able to remove a peer from store through its b58str id', async () => {
|
it('should be able to get the multiaddrs for a peer', async () => {
|
||||||
const [peerInfo] = await peerUtils.createPeerInfo()
|
const [peerInfo, relayInfo] = await peerUtils.createPeerInfo({ number: 2 })
|
||||||
const id = peerInfo.id
|
const id = peerInfo.id
|
||||||
const ma1 = multiaddr('/ip4/127.0.0.1/tcp/4001')
|
const ma1 = multiaddr('/ip4/127.0.0.1/tcp/4001')
|
||||||
const ma2 = multiaddr('/ip4/127.0.0.1/tcp/4002/ws')
|
const ma2 = multiaddr('/ip4/127.0.0.1/tcp/4002/ws')
|
||||||
|
const ma3 = multiaddr(`/ip4/127.0.0.1/tcp/4003/ws/p2p/${relayInfo.id.toB58String()}/p2p-circuit`)
|
||||||
|
|
||||||
peerInfo.multiaddrs.add(ma1)
|
peerInfo.multiaddrs.add(ma1)
|
||||||
peerInfo.multiaddrs.add(ma2)
|
peerInfo.multiaddrs.add(ma2)
|
||||||
|
peerInfo.multiaddrs.add(ma3)
|
||||||
|
|
||||||
const multiaddrs = peerStore.multiaddrsForPeer(peerInfo)
|
const multiaddrs = peerStore.multiaddrsForPeer(peerInfo)
|
||||||
const expectedAddrs = [
|
const expectedAddrs = [
|
||||||
ma1.encapsulate(`/p2p/${id.toB58String()}`),
|
ma1.encapsulate(`/p2p/${id.toB58String()}`),
|
||||||
ma2.encapsulate(`/p2p/${id.toB58String()}`)
|
ma2.encapsulate(`/p2p/${id.toB58String()}`),
|
||||||
|
ma3.encapsulate(`/p2p/${id.toB58String()}`)
|
||||||
]
|
]
|
||||||
|
|
||||||
expect(multiaddrs).to.eql(expectedAddrs)
|
expect(multiaddrs).to.eql(expectedAddrs)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user