// next version number /* removes invalid chaids from preferences and networkController for custom rpcs */ import { cloneDeep } from 'lodash'; const version = 30; export default { version, async migrate(originalVersionedData) { const versionedData = cloneDeep(originalVersionedData); versionedData.meta.version = version; const state = versionedData.data; const newState = transformState(state); versionedData.data = newState; return versionedData; }, }; function transformState(state) { const newState = state; if (state.PreferencesController) { const { frequentRpcListDetail } = newState.PreferencesController; if (frequentRpcListDetail) { frequentRpcListDetail.forEach((rpc, index) => { // eslint-disable-next-line radix if (Boolean(rpc.chainId) && Number.isNaN(parseInt(rpc.chainId))) { delete frequentRpcListDetail[index].chainId; } }); newState.PreferencesController.frequentRpcListDetail = frequentRpcListDetail; } } if (state.NetworkController) { if ( newState.NetworkController.network && // eslint-disable-next-line radix Number.isNaN(parseInt(newState.NetworkController.network)) ) { delete newState.NetworkController.network; } if ( newState.NetworkController.provider && newState.NetworkController.provider.chainId && // eslint-disable-next-line radix Number.isNaN(parseInt(newState.NetworkController.provider.chainId)) ) { delete newState.NetworkController.provider.chainId; } } return newState; }