diff --git a/package.json b/package.json index d0e939af3..2cfb6b260 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "eslint-plugin-react": "^7.11.1", "go-ipfs-dep": "~0.4.18", "gulp": "^3.9.1", - "interface-ipfs-core": "~0.91.0", + "interface-ipfs-core": "~0.92.0", "ipfsd-ctl": "~0.40.0", "nock": "^10.0.2", "pull-stream": "^3.6.9", diff --git a/src/files-regular/ls-pull-stream.js b/src/files-regular/ls-pull-stream.js index 3430d60c2..a647825fc 100644 --- a/src/files-regular/ls-pull-stream.js +++ b/src/files-regular/ls-pull-stream.js @@ -3,6 +3,7 @@ const moduleConfig = require('../utils/module-config') const pull = require('pull-stream') const deferred = require('pull-defer') +const cleanCID = require('../utils/clean-cid') module.exports = (arg) => { const send = moduleConfig(arg) @@ -13,6 +14,12 @@ module.exports = (arg) => { opts = {} } + try { + args = cleanCID(args) + } catch (err) { + return callback(err) + } + const p = deferred.source() send({ path: 'ls', args: args, qs: opts }, (err, results) => { diff --git a/src/files-regular/ls-readable-stream.js b/src/files-regular/ls-readable-stream.js index 514b8dd31..c249f5b64 100644 --- a/src/files-regular/ls-readable-stream.js +++ b/src/files-regular/ls-readable-stream.js @@ -2,6 +2,7 @@ const moduleConfig = require('../utils/module-config') const Stream = require('readable-stream') +const cleanCID = require('../utils/clean-cid') module.exports = (arg) => { const send = moduleConfig(arg) @@ -12,6 +13,12 @@ module.exports = (arg) => { opts = {} } + try { + args = cleanCID(args) + } catch (err) { + return callback(err) + } + const pt = new Stream.PassThrough({ objectMode: true }) send({ path: 'ls', args: args, qs: opts }, (err, results) => { diff --git a/src/files-regular/ls.js b/src/files-regular/ls.js index 772915e95..67549ecd8 100644 --- a/src/files-regular/ls.js +++ b/src/files-regular/ls.js @@ -2,6 +2,7 @@ const promisify = require('promisify-es6') const moduleConfig = require('../utils/module-config') +const cleanCID = require('../utils/clean-cid') module.exports = (arg) => { const send = moduleConfig(arg) @@ -11,6 +12,13 @@ module.exports = (arg) => { callback = opts opts = {} } + + try { + args = cleanCID(args) + } catch (err) { + return callback(err) + } + send({ path: 'ls', args: args, diff --git a/src/utils/clean-cid.js b/src/utils/clean-cid.js index dbc8386ee..1767c9ac2 100644 --- a/src/utils/clean-cid.js +++ b/src/utils/clean-cid.js @@ -1,18 +1,17 @@ 'use strict' -const bs58 = require('bs58') const CID = require('cids') module.exports = function (cid) { if (Buffer.isBuffer(cid)) { - cid = bs58.encode(cid) + return new CID(cid).toString() } if (CID.isCID(cid)) { - cid = cid.toBaseEncodedString() + return cid.toString() } if (typeof cid !== 'string') { throw new Error('unexpected cid type: ' + typeof cid) } - CID.validateCID(new CID(cid.split('/')[0])) + new CID(cid.split('/')[0]) // eslint-disable-line no-new return cid } diff --git a/test/interface.spec.js b/test/interface.spec.js index ba648a932..5d87a2b91 100644 --- a/test/interface.spec.js +++ b/test/interface.spec.js @@ -34,7 +34,12 @@ describe('interface-ipfs-core tests', () => { ] }) - tests.block(defaultCommonFactory) + tests.block(defaultCommonFactory, { + skip: [{ + name: 'should get a block added as CIDv1 with a CIDv0', + reason: 'go-ipfs does not support the `version` param' + }] + }) tests.bootstrap(defaultCommonFactory)