/* This migration moves the identities stored in the KeyringController into the PreferencesController */ import { cloneDeep } from 'lodash' const version = 26 export default { version, migrate (originalVersionedData) { const versionedData = cloneDeep(originalVersionedData) versionedData.meta.version = version try { const state = versionedData.data versionedData.data = transformState(state) } catch (err) { console.warn(`MetaMask Migration #${version}${err.stack}`) return Promise.reject(err) } return Promise.resolve(versionedData) }, } function transformState (state) { if (!state.KeyringController || !state.PreferencesController) { return state } if (!state.KeyringController.walletNicknames) { return state } state.PreferencesController.identities = Object.keys(state.KeyringController.walletNicknames) .reduce((identities, address) => { identities[address] = { name: state.KeyringController.walletNicknames[address], address, } return identities }, {}) delete state.KeyringController.walletNicknames return state }