-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
V12.1.0 updated #26519
V12.1.0 updated #26519
Conversation
## **Description** The `create_release_pull_request` job has been failing since we switched to using a shallow checkout by default. It's failing because the first step of this job uses the `yarn version` command, which expects a full repository history for some reason. The script works again with a full checkout. Example failure: https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/94314/workflows/e2b01944-7607-4714-9cac-01489cce3d2e/jobs/3510394 [](https://codespaces.new/MetaMask/metamask-extension/pull/26246?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** I was able to reproduce the failure by running the shallow checkout steps locally, then running the `release-bump-manifest-version.sh` script. I tested that this worked by doing the same thing with a full checkout. Note that you need to set the `CI, `CIRCLECI`, and `CIRCLECI_BRANCH` environment variables for the script to work. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
## **Description** The `create_release_pull_request` job is failing due to a lack of memory during the `yarn version` step. The `yarn version` command appears to install Yarn dependencies over again. The job where we install Yarn dependencies uses a "medium" size execution environment because we encountered similar memory issues there, but the `create_release_pull_request` job is still using small. It has been updated to use a medium execution environment, which should be enough memory given that it's what `prep-deps` uses. Example failure: https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/94391/workflows/4fce2a9e-2762-4c07-8617-317b0781dd27/jobs/3513290 [](https://codespaces.new/MetaMask/metamask-extension/pull/26249?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** We should be able to reproduce this by running the job in a Docker image. But I have not tried this. Probably easier to merge it and see if it works in this case. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
## **Description** These two entries were for release automation script changes, not user- facing. They can be omitted. The changelog for the current RC is now empty, but we can update it later after we add more changes. [](https://codespaces.new/MetaMask/metamask-extension/pull/26277?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** N/A ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
## **Description** Cherry-picks fcf474c to the RC. Description from the original PR: Fixes a bug where `ComposableObservableStore` would allow non-persistent state properties in its `initialState`. This in turn would cause state properties flagged as non-persistent to be persisted until a controller state change. This PR addresses this by taking the `persist` flag into account when deriving the initial state for each controller. If the controller does not support `metadata` or persistence is disabled, everything should continue to work as-is. [](https://codespaces.new/MetaMask/metamask-extension/pull/26305?quickstart=1)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> We are seeing a pair of sentry errors for a failing deconstruction error, `Cannot destructure property 'id' of '(intermediate value)' as it is null`: - https://metamask.sentry.io/issues/5093909594/?project=273505&query=is%3Aunresolved+Cannot+destructure+property+%27id%27+of&referrer=issue-stream&statsPeriod=14d&stream_index=0 - https://metamask.sentry.io/issues/5093909594/?project=273505&query=is%3Aunresolved+Cannot+destructure+property+%27id%27+of&referrer=issue-stream&statsPeriod=14d&stream_index=0 This is because instead of returning an error when a transaction fails, we return `null` for the metadata. This PR addresses the underlying issue by rethrowing the error for a failed transaction request, then adding UI treatments for the failed transaction. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [](https://codespaces.new/MetaMask/metamask-extension/pull/26253?quickstart=1) Fixes: 1. Add an `Error` right before the `sendTransaction` background method in `addTransactionAndRouteToConfirmationPage` 2. Go to the send flow 3. Attempt a basic send 4. Ensure that ` <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> https://github.com/user-attachments/assets/0342e322-4348-47bd-8bfc-3f92db8f1001 <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/32ba3e75-f266-48c0-abfa-3816c4d3abd5 <!-- [screenshots/recordings] --> - [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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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. - [ ] 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.
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** We have discovered a sentry error for the swaps flow in extension: https://metamask.sentry.io/issues/5659965775/?environment=production&project=273505&query=firstRelease%3A12.0.0&referrer=issue-stream&sort=freq&statsPeriod=90d&stream_index=17 This error is due to the `draftTransaction` not being defined during validation; this is resolved with an undefined guard. This error appears in other actions; it is resolved in these cases as well. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [](https://codespaces.new/MetaMask/metamask-extension/pull/26295?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Set `state.draftTransactions[state.currentTransactionUUID]` to `undefined` in `ducks/send/send.js` for all selectors 2. Go to send flow 3. Ensure it loads without error ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://github.com/user-attachments/assets/fc79f296-5a13-4b84-bb1c-d1ed8613dcad <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/8e45be4a-eaef-4ed5-b206-a56daf4b2927 <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] 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). - [ ] I've completed the PR template to the best of my ability - [ ] 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.
fix (cherry-pick for v12.0.1): improve error handling for swap and send
This is a cherry-pick of #26247 for v12.0.1. Original description: ## **Description** For years our release scripts have been creating GitHub releases with empty descriptions. GitHub uses the commit message as the description as a default, which is always a merge commit in our case, whcih isn't very decsriptive. The release scripts are supposed to be setting the changelog entries for the current release as the description. This broke when we last changed our CHANGELOG.md format. Specifically it was the release header change that broke this. We started surrounding the version number in square brackets, which the awk script did not expect. The script that creates the GitHub release has been updated to pass in a version surrounded by square brackets to the awk script, so it is again able to find the relevant changelog entries. [](https://codespaces.new/MetaMask/metamask-extension/pull/26247?quickstart=1) ## **Related issues** Fixes: #18468 ## **Manual testing steps** Start by checking out `master. Then look at the `release-create-gh-release.sh` script, and run the exact same awk command that is shown there. Replace `${tag##v}` with the release version minus the v (e.g. `12.0.0`). Before this PR it was `awk -v version="12.0.0" -f .circleci/scripts/show-changelog.awk CHANGELOG.md`. This produces no output. After this PR, its `awk -v version="[12.0.0]" -f .circleci/scripts/show-changelog.awk CHANGELOG.md`. This produces the correct output. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
…ed without checking whether the origin was eligible for setting its own network (#26323)" (#26328) CherryPicks 80f538e onto v12.0.1: > This PR fixes a issue where `setNetworkClientIdForDomain` was frequently called with origins that had no account permissions yet (which is the threshhold we currently set for giving site's their own network) resulting in [a large number of silent errors in the background that are clogging up > sentry](https://metamask.sentry.io/issues/5659582204/?environment=production&project=273505&qu%5B%E2%80%A6%5Derrer=issue-stream&sort=freq&statsPeriod=90d&stream_index=1). > > [](https://codespaces.new/MetaMask/metamask-extension/pull/26323?quickstart=1) > > Fixes: > https://metamask.sentry.io/issues/5659582204/?environment=production&project=273505&qu%5B%E2%80%A6%5Derrer=issue-stream&sort=freq&statsPeriod=90d&stream_index=1
## **Description** Cherry-pick all commits related to migration 120.2, which removes obsolete/invalid state. Included PRs: * #26265 * #26282 * #26298 * #26302 * #26308 * #26310 [](https://codespaces.new/MetaMask/metamask-extension/pull/26330?quickstart=1) ## **Related issues** N/A ## **Manual testing steps** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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: Alex Donesky <[email protected]> Co-authored-by: Frederik Bolding <[email protected]>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Manual Cherry-pick from #26325. There were no merge conflicts when picking these commits <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> [](https://codespaces.new/MetaMask/metamask-extension/pull/26338?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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** - [ ] 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). - [ ] I've completed the PR template to the best of my ability - [ ] 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.
…sing (#26327) (#26331) This is a cherry-pick of #26327 for v12.0.1. Original description below: ## **Description** The `providerConfig` state is not guaranteed to match a built-in or custom network. It should in the vast majority of cases, but there are some edge cases where that would not hold true. For example: * If the wallet crashed partway through removing the current network * If the user has had the same network selected since before we introduced the `networkConfigurations` state The `currentNetwork` selector has been updated to handle this case by returning a configuration object constructed from the `providerConfig` state directly. [](https://codespaces.new/MetaMask/metamask-extension/pull/26327?quickstart=1) ## **Related issues** Fixes #26320 ## **Manual testing steps** * Create a dev build and proceed through onboarding * Run this command in the background console to set `providerConfig` to a custom network that isn't present in the user's tracked network configurations: ``` chrome.storage.local.get( null, (state) => { state.data.NetworkController.providerConfig = { rpcUrl: 'https://mainnet.optimism.io', chainId: '0xa', ticker: 'ETH', type: 'rpc', }; chrome.storage.local.set(state, () => chrome.runtime.reload()); } ); ``` * See that the UI can be opened and does not crash. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
## **Description** Compress transaction history down to 100 entries and truncate any existing transaction historys to just 100 entries. This should fix reports we've seen from production of extremely poor performance and crashes caused by long transaction histories, and will also prevent this problem from happening again. Transaction history has been truncated because in the extreme cases, it would be prohibitively expensive to compress. The downside is that some state of how the transaction has changed may be lost. But this is unlikely to impact users because we only show a limited number of events from the transaction history in our UI, and these events are more likely to be at the beginning of long transaction histories. Even if a displayed event is lost, the impact on the UI is minimal (it's only shown on the transaction details page under "Activity log", and only for informational purposes). For details on how the transaction compression works, and how it prevents history size from growing unbouned, see MetaMask/core#4555 The transaction controller change has been applied using a patch. The patch was generated from the core repository branch `patch/transaction-controller-v32-compress-history`. It will be made on `develop` at a later date because it is blocked by other controller updates at the moment. The truncation is performed by a migration that was added in #26291 and cherry-picked into this branch [](https://codespaces.new/MetaMask/metamask-extension/pull/26236?quickstart=1) ## **Related issues** Relates to #9372 ## **Manual testing steps** To test the migration: * Checkout v11.15.6 and create a dev build (unfortunately the repro steps don't work on MV3 due to snow being enabled even in dev builds, so we're using a pre-MV3 build) * Install the dev build from the `dist/chrome` directory and proceed through onboarding * Make a single transaction * Any chain, any transaction, as long as it's approved. We don't even need to wait for it to settle. * Run this command in the background console to add a huge history to the transaction controller and restart the extension: ``` chrome.storage.local.get( null, (state) => { state.data.TransactionController.transactions[0].history.push( ...[...Array(100000).keys()].map(() => [ { value: '[ethjs-rpc] rpc error with payload {"id":[number],"jsonrpc":"2.0","params":["0x"],"method":"eth_getTransactionReceipt"} { "code": -32603, "message": "Internal JSON-RPC error.", "data": { "code": -32602, "message": "invalid argument 0: hex string has length 0, want 64 for common.Hash", "cause": null }, "stack": ...', path: '/warning/error', op: 'replace' }, { note: 'transactions/pending-tx-tracker#event: tx:warning', value: 'There was a problem loading this transaction.', path: '/warning/message', op: 'replace' }, ]), ); chrome.storage.local.set(state, () => chrome.runtime.reload()); } ); ``` * The extension should become extremely slow * Disable the extension * Switch to this branch and create a dev build * Enable and reload the extension * The extension should no longer be slow To test that the compression is working, we would want to get a transaction in a "stuck pending" state where an error is captured each iteration. I am not yet sure how to do that unfortunately. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
Update changelog for v12.0.1 --------- Co-authored-by: Mark Stacey <[email protected]>
Version v12.0.1 RC
Cherry pick #26381 to v12.0.2 Co-authored-by: Prithpal Sooriya <[email protected]>
…#26383) 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 [](https://codespaces.new/MetaMask/metamask-extension/pull/26383?quickstart=1) Fixes: #26356 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) <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> <!-- [screenshots/recordings] --> <!-- [screenshots/recordings] --> - [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. - [ ] 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]>
…ntrol… (#26396) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** Expands on #26383 to delete more obsolete state from the Network and Phishing controllers, to eliminate other sentry errors. [](https://codespaces.new/MetaMask/metamask-extension/pull/26396?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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 - [x] 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]>
This is a cherry-pick of #26397. Original description: ## **Description** We have found evidence that migration 88 is failing for some users due to a `null` key in the `TokensController.allTokens` state. The migration has been updated to delete any invalid `null`-keys prior to migrating it, preventing the error. [](https://codespaces.new/MetaMask/metamask-extension/pull/26397?quickstart=1) ## **Related issues** Fixes #25938 ## **Manual testing steps** The unit tests demonstrate the affected scenario fairly well. We addressed the "null key" case for a variety of different parts of state, but specifically the one we are seeing in prod is the `allTokens` state having a `null` key. ## **Screenshots/Recordings** N/A ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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.
fix(cherry-pick): Add migration 120.4 to delete obsolete currency, phishing and network controller state
Updates the changelog for v12.0.2 --------- Co-authored-by: Mark Stacey <[email protected]>
Version v12.0.2 RC
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> This PR modifies the names of some tracked events to monitor the use of notifications, ensuring they adhere to the conventions used. [](https://codespaces.new/MetaMask/metamask-extension/pull/25521?quickstart=1) Fixes: 1. Go to this page... 2. 3. <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> <!-- [screenshots/recordings] --> <!-- [screenshots/recordings] --> - [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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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. - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] 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: Prithpal Sooriya <[email protected]> Co-authored-by: Prithpal Sooriya <[email protected]>
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR updates and introduces some events necessary for the notifications team to track user interaction with notifications. [](https://codespaces.new/MetaMask/metamask-extension/pull/26410?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **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 - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] 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** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] 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.
…ions-events fix: V12.0.3/cherry pick notifications events
Builds ready [ee890f9]
Page Load Metrics (83 ± 25 ms)
|
Q: In the description, it's mentioned this PR corrects merge conflicts on |
Confirming fix for #26452 ![]() |
@digiwand Thanks for checking, yes this is expected. The conflict was resolved by accepting the version of this file that is on the |
@SocketSecurity ignore npm/[email protected] New author OK, but more importantly, these warnings are false positives (they are not updated by this PR) |
@metamaskbot update-policies |
Policies updated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! I'll wait for someone to review the one commit I made here as well.
Builds ready [bfe7d3f]
Page Load Metrics (79 ± 19 ms)
|
Builds ready [b8959dd]
Page Load Metrics (234 ± 240 ms)
|
This PR merged
v12.0.1
-v12.0.5
intoVersion-v12.1.0
It also corrects merge conflict errors that were made in the following files:
Adds a missing patch for keyring controller v16.1.0 (which should have been included when master was first merged into Version-v12.1.0)
As part of merging
v12.0.1
-v12.0.5
, this PR cherry-picks e6d7a57. Two versions of that commit were made. One was cherry-picked to v12.0.0, and one was merged to develop. This was to accomodate different versions of the snaps utils package. The commit merged to develop patched the snap-utils version on v12.1.0, so we need to cherry-pick that.