From 9f39a6f3b7b3c228dd6f3653a00cdb958d319385 Mon Sep 17 00:00:00 2001 From: David Dias Date: Sun, 18 Feb 2018 07:59:52 +0000 Subject: [PATCH] fix: now properly fix bootstrap in core --- src/core/components/bootstrap.js | 40 ++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/core/components/bootstrap.js b/src/core/components/bootstrap.js index a57858abb3..559f8e05b3 100644 --- a/src/core/components/bootstrap.js +++ b/src/core/components/bootstrap.js @@ -1,9 +1,24 @@ 'use strict' const defaultNodes = require('../runtime/config-nodejs.json').Bootstrap -// const MultiAddr = require('multiaddr') +const Multiaddr = require('multiaddr') const promisify = require('promisify-es6') +function isValid (ma) { + if (typeof ma === 'string') { + try { + ma = new Multiaddr(ma) + return Boolean(ma) + } catch (err) { + return false + } + } else if (ma) { + return Multiaddr.isMultiaddr(ma) + } else { + return false + } +} + module.exports = function bootstrap (self) { return { list: promisify((callback) => { @@ -17,17 +32,13 @@ module.exports = function bootstrap (self) { add: promisify((multiaddr, args, callback) => { if (typeof args === 'function') { callback = args - args = {default: false} + args = { default: false } } - try { - if (multiaddr) { - // TODO understand what was the purpose of this code - // it failed on tests, it passes without - // multiaddr = new MultiAddr(multiaddr) - } - } catch (err) { - return setImmediate(() => callback(err)) + + if (multiaddr && !isValid(multiaddr)) { + return setImmediate(() => callback(new Error('Not valid multiaddr'))) } + self._repo.config.get((err, config) => { if (err) { return callback(err) @@ -53,13 +64,8 @@ module.exports = function bootstrap (self) { callback = args args = {all: false} } - try { - if (multiaddr) { - // TODO understand what was the purpose of this code - // multiaddr = new MultiAddr(multiaddr) - } - } catch (err) { - return setImmediate(() => callback(err)) + if (multiaddr && !isValid(multiaddr)) { + return setImmediate(() => callback(new Error('Not valid multiaddr'))) } self._repo.config.get((err, config) => {