import { cloneDeep } from 'lodash'; const version = 49; /** * Migrate metaMetrics state to the new MetaMetrics controller */ export default { version, async migrate(originalVersionedData) { const versionedData = cloneDeep(originalVersionedData); versionedData.meta.version = version; const state = versionedData.data; versionedData.data = transformState(state); return versionedData; }, }; function transformState(state = {}) { if (state.PreferencesController) { const { metaMetricsId, participateInMetaMetrics, metaMetricsSendCount } = state.PreferencesController; state.MetaMetricsController = state.MetaMetricsController ?? {}; if (metaMetricsId !== undefined) { state.MetaMetricsController.metaMetricsId = metaMetricsId; delete state.PreferencesController.metaMetricsId; } if (participateInMetaMetrics !== undefined) { state.MetaMetricsController.participateInMetaMetrics = participateInMetaMetrics; delete state.PreferencesController.participateInMetaMetrics; } if (metaMetricsSendCount !== undefined) { state.MetaMetricsController.metaMetricsSendCount = metaMetricsSendCount; delete state.PreferencesController.metaMetricsSendCount; } } return state; }