From 6d96a03d778759eac8b023613d40ad755f404e81 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 5 Nov 2018 17:07:57 +0200 Subject: [PATCH 1/2] fix: properly exit if no forgers are configured --- packages/core-forger/lib/index.js | 13 +++++++++++-- packages/core-forger/lib/manager.js | 5 +++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/core-forger/lib/index.js b/packages/core-forger/lib/index.js index 568a06e1a2..fd12ee16bd 100644 --- a/packages/core-forger/lib/index.js +++ b/packages/core-forger/lib/index.js @@ -14,6 +14,11 @@ exports.plugin = { const forgerManager = new ForgerManager(options) const forgers = await forgerManager.loadDelegates(options.bip38, options.password) + if (!forgers) { + container.resolvePlugin('logger').info('Forger is disabled :grey_exclamation:') + return + } + // Don't keep bip38 password in memory delete process.env.ARK_FORGER_PASSWORD delete options.password @@ -25,8 +30,12 @@ exports.plugin = { return forgerManager }, async deregister (container, options) { - container.resolvePlugin('logger').info('Stopping Forger Manager') + const forger = container.resolvePlugin('forger') + + if (forger) { + container.resolvePlugin('logger').info('Stopping Forger Manager') - await container.resolvePlugin('forger').stop() + return forger.stop() + } } } diff --git a/packages/core-forger/lib/manager.js b/packages/core-forger/lib/manager.js index 5d2eb802d5..341f8c505e 100644 --- a/packages/core-forger/lib/manager.js +++ b/packages/core-forger/lib/manager.js @@ -31,8 +31,9 @@ module.exports = class ForgerManager { * @return {Array} */ async loadDelegates (bip38, password) { - if (!bip38 && !this.secrets) { - throw new Error('No delegate found') + if (!bip38 && (!this.secrets || !this.secrets.length || !Array.isArray(this.secrets))) { + logger.warn('No delegate found! Please check your "delegates.json" file and try again.') + return } this.delegates = this.secrets.map(passphrase => new Delegate(passphrase, this.network, password)) From a30d29e05167a63f27f50834847f5308b251ac29 Mon Sep 17 00:00:00 2001 From: faustbrian Date: Mon, 5 Nov 2018 18:57:24 +0200 Subject: [PATCH 2/2] test: remove pointless test --- packages/core-forger/__tests__/manager.test.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/core-forger/__tests__/manager.test.js b/packages/core-forger/__tests__/manager.test.js index 8ede91ff3b..f0c3399ca1 100644 --- a/packages/core-forger/__tests__/manager.test.js +++ b/packages/core-forger/__tests__/manager.test.js @@ -33,11 +33,6 @@ describe('Forger Manager', () => { expect(forgeManager.loadDelegates).toBeFunction() }) - it('should throw an error without configured delegates', async () => { - forgeManager.secrets = null - await expect(forgeManager.loadDelegates()).rejects.toThrowError('No delegate found') - }) - it('should be ok with configured delegates', async () => { let secret = 'a secret' forgeManager.secrets = [secret]