fix: remove unused crypto unit fields

This commit is contained in:
Sérgio Salgado 2022-07-27 19:36:59 +01:00
parent 3b01820242
commit 65b8491354
4 changed files with 38 additions and 11 deletions

View file

@ -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 = {

View file

@ -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
}

View file

@ -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()
}

View file

@ -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({