diff --git a/package.json b/package.json index 6401e722..c5a64b58 100644 --- a/package.json +++ b/package.json @@ -41,12 +41,12 @@ }, "dependencies": { "libp2p-ping": "~0.3.2", - "libp2p-swarm": "~0.28.0", + "libp2p-swarm": "~0.29.0", "mafmt": "^2.1.8", "multiaddr": "^2.3.0", - "peer-book": "~0.3.2", - "peer-id": "~0.8.5", - "peer-info": "~0.8.5" + "peer-book": "~0.4.0", + "peer-id": "~0.8.6", + "peer-info": "~0.9.2" }, "contributors": [ "David Dias ", diff --git a/src/index.js b/src/index.js index 51057a37..ece86117 100644 --- a/src/index.js +++ b/src/index.js @@ -26,7 +26,7 @@ class Node extends EventEmitter { this.peerBook = _peerBook || new PeerBook() this.isOnline = false - this.swarm = new Swarm(this.peerInfo) + this.swarm = new Swarm(this.peerInfo, this.peerBook) // Attach stream multiplexers if (this.modules.connection.muxer) { @@ -93,14 +93,17 @@ class Node extends EventEmitter { transports = Array.isArray(transports) ? transports : [transports] // so that we can have webrtc-star addrs without adding manually the id - this.peerInfo.multiaddrs = this.peerInfo.multiaddrs.map((ma) => { + const maOld = [] + const maNew = [] + this.peerInfo.multiaddrs.forEach((ma) => { if (!mafmt.IPFS.matches(ma)) { - ma = ma.encapsulate('/ipfs/' + this.peerInfo.id.toB58String()) + maOld.push(ma) + maNew.push(ma.encapsulate('/ipfs/' + this.peerInfo.id.toB58String())) } - return ma }) + this.peerInfo.multiaddrs.replace(maOld, maNew) - const multiaddrs = this.peerInfo.multiaddrs + const multiaddrs = this.peerInfo.multiaddrs.toArray() transports.forEach((transport) => { if (transport.filter(multiaddrs).length > 0) { @@ -212,7 +215,7 @@ class Node extends EventEmitter { } catch (err) { p = new PeerInfo(PeerId.createFromB58String(peerIdB58Str)) } - p.multiaddr.add(peer) + p.multiaddrs.add(peer) } else if (PeerId.isPeerId(peer)) { const peerIdB58Str = peer.toB58String() try {