Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Add migration 120.4 to delete obsolete currency controller state (…
…#26383) ## **Description** We are seeing the following sorts of errors in production, as reported by sentry, in v12.0.2: `No metadata found for 'conversionDate'` `No metadata found for 'usdConversionRate'` `No metadata found for 'nativeCurrency'` `No metadata found for 'conversionRate'` Example issue: https://metamask.sentry.io/issues/5682684113/events/b8006eebb65749f883e907242e52215b/?project=273505&query=is%3Aunresolved+issue.priority%3A%5Bhigh%2C+medium%5D+No+metadata+release%3A12.0.1&referrer=previous-event&statsPeriod=14d&stream_index=1 The `CurrencyRateController` stopped using six such properties with MetaMask/core#1805, which was brought into the extension with #21549, however, there was not a state migration to delete those properties at the time This PR adds migrations to delete those obsolete properties [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26383?quickstart=1) ## **Related issues** Fixes: #26356 ## **Manual testing steps** To observe the error using steps that mimic users in production 1. Install v11.6.0 and onboard 2. Create a local dev build from the `master` branch 3. Update the v11.6.0 install to the local dev build 4. See the errors in the service worker console If you repeat those steps, but in step two build from this branch instead of the `master` branch, the errors will not occur For a faster manual test of this PR, create a local development build of this branch and then run this script in the service worker console: ``` window.chrome.storage.local.get(({ data, meta }) => chrome.storage.local.set({ data: { ...data, CurrencyController: { ...data.CurrencyController, conversionDate: 'Jan 1', conversionRate: '2', nativeCurrency: 'test' } }, meta: {...meta, version: 120 } }, () => { chrome.runtime.reload() })) ``` There should be no errors like `No metadata found for 'conversionRate'` (but if you do the same on develop or master, those errors should be present) ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Mark Stacey <[email protected]>
- Loading branch information