mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
3b0d37c3bf
* Handle the case where tokensChainsCache data is undefined in migration 77 * Delete parts of state that should have been removed in migrations 82,84,86 and 88 * Create 077-supplements.md * Update 077-supplements.md * Update 077-supplements/*.js code comments * Fix types and jsdoc * Type/lint fix * Cleanup * Add 'should set data to an empty object if it is null' test case to 077.test.js * Update app/scripts/migrations/077.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Modify deletion criteria so that all decimal chain id proprties are deleted in migration 88 supplement * Readme.md * Update app/scripts/migrations/077.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update app/scripts/migrations/077.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update app/scripts/migrations/077.test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Lint fix * Only delete decimal chain id keyed-entries in migration 88 supplement if there are hexadecimal keyed entries as well * Remove redundant test * Add 'does not delete' cases for nftcontroller related tests in 077.test.js --------- Co-authored-by: Mark Stacey <markjstacey@gmail.com>
24 lines
760 B
TypeScript
24 lines
760 B
TypeScript
import { hasProperty, isObject } from '@metamask/utils';
|
|
|
|
/**
|
|
* Prior to token detection v2 the data property in tokensChainsCache was an array,
|
|
* in v2 we changes that to an object. In this migration we are converting the data as array to object.
|
|
*
|
|
* @param state - The persisted MetaMask state, keyed by controller.
|
|
* @returns Updated versioned MetaMask extension state.
|
|
*/
|
|
export default function transformState077For086(
|
|
state: Record<string, unknown>,
|
|
) {
|
|
if (
|
|
hasProperty(state, 'NetworkController') &&
|
|
isObject(state.NetworkController) &&
|
|
hasProperty(state.NetworkController, 'provider') &&
|
|
hasProperty(state.NetworkController, 'providerConfig')
|
|
) {
|
|
delete state.NetworkController.provider;
|
|
}
|
|
|
|
return { ...state };
|
|
}
|