From 0080f209591ab0229f57e6c00ed94be4382eddab Mon Sep 17 00:00:00 2001 From: Jeromy Date: Tue, 15 Nov 2016 18:43:12 -0800 Subject: [PATCH 1/4] attempt to handle changes to ipfs swarm peers api --- src/api/swarm.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/api/swarm.js b/src/api/swarm.js index d068645b7..2164f77c4 100644 --- a/src/api/swarm.js +++ b/src/api/swarm.js @@ -12,6 +12,9 @@ module.exports = (send) => { callback = opts opts = {} } + if (opts['v']) { + throw "I don't know how to handle errors in javascript, but the -v option needs to be handled" + } send({ path: 'swarm/peers', qs: opts @@ -19,9 +22,19 @@ module.exports = (send) => { if (err) { return callback(err) } - callback(null, result.Strings.map((addr) => { - return multiaddr(addr) - })) + if (result.Strings) { + callback(null, result.Strings.map((addr) => { + return multiaddr(addr) + })) + } else if (result.Peers) { + let out = result.Peers.map((p) => { + return { + addr: new multiaddr(p.Addr), + peer: new PeerId(p.Peer), + latency: p.Latency, + streams: p.Streams, + } + } }) }), connect: promisify((args, opts, callback) => { From 690a77c7080dc10797febd7ec9b66bf97346e204 Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Thu, 17 Nov 2016 11:43:33 +0100 Subject: [PATCH 2/4] feat(swarm): support for new swarm.peers in 0.4.5 --- src/api/swarm.js | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/src/api/swarm.js b/src/api/swarm.js index 2164f77c4..f85ec69c6 100644 --- a/src/api/swarm.js +++ b/src/api/swarm.js @@ -12,9 +12,7 @@ module.exports = (send) => { callback = opts opts = {} } - if (opts['v']) { - throw "I don't know how to handle errors in javascript, but the -v option needs to be handled" - } + send({ path: 'swarm/peers', qs: opts @@ -22,19 +20,36 @@ module.exports = (send) => { if (err) { return callback(err) } - if (result.Strings) { - callback(null, result.Strings.map((addr) => { - return multiaddr(addr) + + console.log(JSON.stringify(result, null, 2)) + + if (result.Strings) { + // go-ipfs <= 0.4.4 + callback(null, result.Strings.map((p) => { + // splitting on whitespace as verbose mode + // returns the latency appended + return multiaddr(p.split(' ')[0]) + })) + } else if (result.Peers) { + // go-ipfs >= 0.4.5 + callback(null, result.Peers.map((p) => { + const res = { + addr: multiaddr(p.Addr), + peer: PeerId.createFromB58String(p.Peer), + muxer: p.Muxer + } + + if (p.Latency) { + res.latency = p.Latency + } + + if (p.Streams) { + res.streams = p.Streams + } + + return res })) - } else if (result.Peers) { - let out = result.Peers.map((p) => { - return { - addr: new multiaddr(p.Addr), - peer: new PeerId(p.Peer), - latency: p.Latency, - streams: p.Streams, - } - } + } }) }), connect: promisify((args, opts, callback) => { From f267dd3af1775e9d9adc7eb0f65d62ca2595c016 Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Thu, 17 Nov 2016 12:18:10 +0100 Subject: [PATCH 3/4] update to new consistent api --- src/api/swarm.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/api/swarm.js b/src/api/swarm.js index f85ec69c6..293af9705 100644 --- a/src/api/swarm.js +++ b/src/api/swarm.js @@ -13,6 +13,8 @@ module.exports = (send) => { opts = {} } + const verbose = opts.v || opts.verbose + send({ path: 'swarm/peers', qs: opts @@ -21,14 +23,24 @@ module.exports = (send) => { return callback(err) } - console.log(JSON.stringify(result, null, 2)) - if (result.Strings) { // go-ipfs <= 0.4.4 callback(null, result.Strings.map((p) => { - // splitting on whitespace as verbose mode - // returns the latency appended - return multiaddr(p.split(' ')[0]) + const res = {} + + if (verbose) { + const parts = p.split(' ') + res.addr = multiaddr(parts[0]) + res.latency = parts[1] + } else { + res.addr = multiaddr(p) + } + + res.peer = PeerId.createFromB58String( + res.addr.decapsulate('ipfs') + ) + + return res })) } else if (result.Peers) { // go-ipfs >= 0.4.5 From 23a3d493d80fca402aac359c7d51e73365573911 Mon Sep 17 00:00:00 2001 From: David Dias Date: Thu, 17 Nov 2016 14:16:33 +0000 Subject: [PATCH 4/4] chore: update deps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ce60a2f18..bb42b3728 100644 --- a/package.json +++ b/package.json @@ -56,11 +56,11 @@ "url": "https://github.com/ipfs/js-ipfs-api" }, "devDependencies": { - "aegir": "^9.1.0", + "aegir": "^9.1.2", "chai": "^3.5.0", "gulp": "^3.9.1", "hapi": "^15.2.0", - "interface-ipfs-core": "^0.18.3", + "interface-ipfs-core": "^0.20.0", "ipfsd-ctl": "^0.17.0", "pre-commit": "^1.1.3", "socket.io": "^1.5.1",