import { cloneDeep } from 'lodash'; const version = 56; /** * Remove tokens that don't have an address due to * lack of previous addToken validation. Also removes * an unwanted, undefined image property */ export default { version, async migrate(originalVersionedData) { const versionedData = cloneDeep(originalVersionedData); versionedData.meta.version = version; const { PreferencesController } = versionedData.data; if (Array.isArray(PreferencesController?.tokens)) { PreferencesController.tokens = PreferencesController.tokens.filter( ({ address }) => address, ); } if ( PreferencesController?.accountTokens && typeof PreferencesController.accountTokens === 'object' ) { Object.keys(PreferencesController.accountTokens).forEach((account) => { const chains = Object.keys( PreferencesController.accountTokens[account], ); chains.forEach((chain) => { PreferencesController.accountTokens[account][chain] = PreferencesController.accountTokens[account][chain].filter( ({ address }) => address, ); }); }); } if ( PreferencesController?.assetImages && 'undefined' in PreferencesController.assetImages ) { delete PreferencesController.assetImages.undefined; } return versionedData; }, };