From cd3f8aea51bb3752271c680a879b0247f0f21734 Mon Sep 17 00:00:00 2001 From: csrapr <26280794+csrapr@users.noreply.github.com> Date: Thu, 15 Apr 2021 18:56:31 +0100 Subject: [PATCH] Feat: migration rename non blockcypher to none --- lib/new-config-manager.js | 10 +++++++++- migrations/1618507684019-rename-0-conf.js | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 migrations/1618507684019-rename-0-conf.js diff --git a/lib/new-config-manager.js b/lib/new-config-manager.js index 57cf1105..97234a19 100644 --- a/lib/new-config-manager.js +++ b/lib/new-config-manager.js @@ -104,6 +104,13 @@ const getGlobalNotifications = config => getNotifications(null, null, config) const getTriggers = _.get('triggers') +const split = _.curry(_.split) +const splitGetFirst = _.compose(_.head, split('_')) + +const getCryptosFromWalletNamespace = config => { + return _.uniq(_.map(splitGetFirst, _.keys(fromNamespace('wallets', config)))) +} + module.exports = { getWalletSettings, getOperatorInfo, @@ -118,5 +125,6 @@ module.exports = { getTermsConditions, getAllCryptoCurrencies, getTriggers, - getCashOut + getCashOut, + getCryptosFromWalletNamespace } diff --git a/migrations/1618507684019-rename-0-conf.js b/migrations/1618507684019-rename-0-conf.js new file mode 100644 index 00000000..02292e13 --- /dev/null +++ b/migrations/1618507684019-rename-0-conf.js @@ -0,0 +1,21 @@ +const _ = require('lodash/fp') +const settingsLoader = require('../lib/new-settings-loader') +const configManager = require('../lib/new-config-manager') + +exports.up = async function (next) { + const { config } = await settingsLoader.loadLatest() + const cryptoCodes = configManager.getCryptosFromWalletNamespace(config) + _.forEach(cryptoCode => { + const key = `wallets_${cryptoCode}_zeroConf` + const zeroConfSetting = _.get(key, config) + if (cryptoCode === 'BTC' && zeroConfSetting === 'blockcypher') return + if (!_.isNil(zeroConfSetting) && zeroConfSetting !== 'none') { + config[key] = 'none' + } + }, cryptoCodes) + return settingsLoader.saveConfig(config).then(() => next()).catch(err => next(err)) +} + +exports.down = function (next) { + next() +}