From 65b84913542e531acb61505bff410744c1a51313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Wed, 27 Jul 2022 19:36:59 +0100 Subject: [PATCH] fix: remove unused crypto unit fields --- lib/new-config-manager.js | 3 ++- lib/new-settings-loader.js | 14 +++++++++++- ...716689-remove-coin-specific-cryptounits.js | 22 +++++++++++++++++++ new-lamassu-admin/src/pages/Wallet/Wizard.js | 10 +-------- 4 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 migrations/1658940716689-remove-coin-specific-cryptounits.js diff --git a/lib/new-config-manager.js b/lib/new-config-manager.js index 4c05b540..2b351fa7 100644 --- a/lib/new-config-manager.js +++ b/lib/new-config-manager.js @@ -152,7 +152,8 @@ const getCryptosFromWalletNamespace = config => { const getCashInSettings = config => fromNamespace(namespaces.CASH_IN)(config) const getCryptoUnits = (crypto, config) => { - return getWalletSettings(crypto, config).cryptoUnits + const walletSettings = getWalletSettings(crypto, config) + return walletSettings.cryptoUnits } module.exports = { diff --git a/lib/new-settings-loader.js b/lib/new-settings-loader.js index 139b0415..ae0c9dc4 100644 --- a/lib/new-settings-loader.js +++ b/lib/new-settings-loader.js @@ -85,6 +85,17 @@ function saveConfig (config) { }) } +function removeFromConfig (fields) { + return Promise.all([loadLatestConfigOrNone(), getOperatorId('middleware')]) + .then(([currentConfig, operatorId]) => { + const newConfig = _.omit(fields, currentConfig) + return db.tx(t => { + return t.none(configSql, ['config', { config: newConfig }, true, NEW_SETTINGS_LOADER_SCHEMA_VERSION]) + .then(() => t.none('NOTIFY $1:name, $2', ['reload', JSON.stringify({ schema: asyncLocalStorage.getStore().get('schema'), operatorId })])) + }).catch(console.error) + }) +} + function migrationSaveConfig (config) { return loadLatestConfigOrNone() .then(currentConfig => { @@ -194,5 +205,6 @@ module.exports = { loadLatestConfig, loadLatestConfigOrNone, load, - migrate + migrate, + removeFromConfig } diff --git a/migrations/1658940716689-remove-coin-specific-cryptounits.js b/migrations/1658940716689-remove-coin-specific-cryptounits.js new file mode 100644 index 00000000..e91bca7c --- /dev/null +++ b/migrations/1658940716689-remove-coin-specific-cryptounits.js @@ -0,0 +1,22 @@ +const { removeFromConfig, loadLatest } = require('../lib/new-settings-loader') +const { getCryptosFromWalletNamespace } = require('../lib/new-config-manager.js') +const _ = require('lodash/fp') + +exports.up = function (next) { + loadLatest() + .then(settings => { + const configuredCryptos = getCryptosFromWalletNamespace(settings.config) + if (!configuredCryptos.length) return Promise.resolve() + + return removeFromConfig(_.map(it => `wallets_${it}_cryptoUnits`, configuredCryptos)) + }) + .then(() => next()) + .catch(err => { + console.log(err.message) + return next(err) + }) +} + +exports.down = function (next) { + next() +} diff --git a/new-lamassu-admin/src/pages/Wallet/Wizard.js b/new-lamassu-admin/src/pages/Wallet/Wizard.js index c1f81225..627d79e2 100644 --- a/new-lamassu-admin/src/pages/Wallet/Wizard.js +++ b/new-lamassu-admin/src/pages/Wallet/Wizard.js @@ -1,4 +1,3 @@ -import { utils as coinUtils } from '@lamassu/coins' import * as R from 'ramda' import React, { useState } from 'react' import * as Yup from 'yup' @@ -97,14 +96,7 @@ const Wizard = ({ : accountsToSave if (isLastStep) { - const defaultCryptoUnit = R.head( - R.keys(coinUtils.getCryptoCurrency(coin.code).units) - ) - const configToSave = { - ...newConfig, - cryptoUnits: defaultCryptoUnit - } - return save(toNamespace(coin.code, configToSave), newAccounts) + return save(toNamespace(coin.code, newConfig), newAccounts) } setState({