-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Version v12.1.0 #25586
Version v12.1.0 #25586
Conversation
<!-- 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** Updates MMI e2e tests for the transaction confirmation flow. ## **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 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.
<!-- 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** Adds new selectors for multichain context (and more specifically, for non-EVM networks for now). Those selectors follow the same naming than some existing selectors (that are EVM only). [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25205?quickstart=1) ## **Related issues** None ## **Manual testing steps** 1. This PR rely only on unit tests ## **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 - [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** This pull request aims to upgrade the extension to [design tokens v4](https://github.com/MetaMask/design-tokens/blob/main/MIGRATION.md#from-version-300-to-400). This upgrade ensures the most up-to-date colors are being used that align with design and primes the extension for the upcoming brand evolution. Included in this PR are third-party network color CSS variables that have been removed from the design tokens package and renamed CSS variables for shadow. This PR is the final update from a series of PRs that replace deprecated CSS colors that have been removed in v4. **Dependency PRs that should be merged before this one:** - #24970 - #24970 - #25125 - #25124 - #25122 - #25011 - #25010 - #25083 - #24971 - #25158 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24953?quickstart=1) ![image](https://github.com/MetaMask/metamask-extension/assets/8112138/3c5cb96b-e473-4f3a-9b9c-5aa8020c2610) ![image (1)](https://github.com/MetaMask/metamask-extension/assets/8112138/c16d28f7-f05c-4132-8268-b3c48fe9bd4a) ## **Related issues** Fixes: #24916 ## **Manual testing steps** Check all [removed and changed](https://github.com/MetaMask/design-tokens/blob/main/MIGRATION.md#from-version-300-to-400) CSS variables are no longer in the codebase: 1. Pull this branch. 2. Copy [this script](https://gist.github.com/georgewrmarshall/1ca0d7044bfa3c91343cadbf2bd5c828) that checks for all deprecated colors to the root of the extension. 3. Run `node searchDeprecatedTokens.js`. 4. Ensure there are no results. Check shadows and network colors work as expected: 1. Navigate to stories that use primary and error shadows (`ButtonPrimary`, `ButtonSecondary`, `Button` (deprecated)) as well as network colors (`Box` BackgroundColors story). 2. Verify that shadows and network colors work as expected. Run the extension and navigate around to ensure colors work as expected: 1. Pull this branch. 2. Run `yarn start`. 3. Navigate around the extension in light and dark mode to ensure colors work as expected. ## **Screenshots/Recordings** ### **Before** Checking the codebase for any existing deprecated colors returns many results in the `develop` branch. https://github.com/MetaMask/metamask-extension/assets/8112138/8ad23392-a0cc-4be5-8a50-12a126f5b71c ### **After** Checking the codebase for any deprecated removed colors that could break the UI using the provided script, after removing network colors, returns no results. https://github.com/MetaMask/metamask-extension/assets/8112138/3b82862d-5302-466f-bc55-bbb05a924ac0 Checking components that use updated CSS variables and newly added still work as expected https://github.com/MetaMask/metamask-extension/assets/8112138/b70279b9-07f3-4315-abcd-83090ca03eef Checking extension colors are working as expected in light and dark mode. In dark mode primary and error are a shade lighter in v4 https://github.com/MetaMask/metamask-extension/assets/8112138/d748f8cb-f2f2-4bd5-b9f4-f3bb376f22cd ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask 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.
<!-- 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 introduces the addition of a Popular Networks list to the Add Network modal. <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25160?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** 1. Run `yarn && ENABLE_NETWORK_UI_REDESIGN=1 yarn start` 2. Go to Settings -> Developer Options 3. Tun on the network new toggle 4. Go to the wallet page 5. Click on the network button ( see the video below ) 6. you should see the list of popular network 7. you should be able to add a network from the modal ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://github.com/MetaMask/metamask-extension/assets/26223211/bde545ef-c5a3-4cc5-9508-16edfd8507dd ### **After** https://github.com/MetaMask/metamask-extension/assets/26223211/114076c2-e336-4b96-b061-defd6d886380 ## **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: David Walsh <[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** Removed wrongly in #21410, this PR aims to add `deprecated` tag back to `callBackgroundMethod` for migration purpose. <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25216?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.
## **Description** This PR removes duplicate code for NetworkListItem creation, instead using a helper function to create a single item. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25195?quickstart=1) ## **Related issues** Fixes: N/A ## **Manual testing steps** 1. Click "Polygon" and see chain switch to Polygon 2. Click "Ethereum Mainnet" and see chain switch to Ethereum Mainnet 3. Drag and drop networks around -- should work 4. Click the toggle to view test networks 5. Click a test network -- should change to correct network ## **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. Co-authored-by: Brian Bergeron <[email protected]> Co-authored-by: Nidhi Kumari <[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** We were submitting Segment events in the MetaMetrics constructor without cathing errors. This was the sole place where we failed to catch errors resulting from Segment calls. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25253?quickstart=1) ## **Related issues** Mitigates #25244 ## **Manual testing steps** Sure of exact reproduction steps at this time. ## **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 - [ ] 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** This PR refactors the app header into smaller components and adds multichain selectors. ## **Related issues** Related to MetaMask/accounts-planning#425 ## **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 - [ ] 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: Charly Chevalier <[email protected]>
Adds data collection for marketing toggles (and toasts/warnings) on: - Onboarding - Toast in Wallet - Settings page <!-- 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** <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24605?quickstart=1) ## **Related issues** Fixes: MetaMask/MetaMask-planning#2437 MetaMask/MetaMask-planning#2438 MetaMask/MetaMask-planning#2526 ## **Manual testing steps** Onboarding checkbox: Make the `metametrics.js` to return `renderOnboarding` instead of `renderLegacyOnboarding` 1. Start a new account 2. There should be a new checkbox that asks for marketing consent 3. Checking it should set the marketing consent to true (check at Settings, Securty tab page) Security tab: 1. Go to Security tab 2. When checking the "Data collection for marketing" to `true`, the "Participate in MetaMetrics" toggle should turn to `true` 3. When checking "Participate in MetaMetrics" to `false`, "Data collection for marketing" should be set to `false` 4. When "Participate in Metametrics" is `true` and "Data collection for marketing" is `true`, and the latter is set to `false`, a warning message should appear. Toast: An already onboarded user will have the "dataCollectionForMarketing" value as `null` (neither `true` or `false`). This will trigger the toast. 1. By clicking on "I accept", it should set the "Data collection for marketing" to `true`. 2. By closing the toast or clicking on "No thanks", it should set the "Data collection for marketing" to `false`. All of these actions should trigger subsequent Segment events. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <img width="646" alt="Screenshot 2024-05-20 at 14 19 53" src="https://github.com/MetaMask/metamask-extension/assets/11148144/a13b70ec-1d89-4e9f-8df1-2096dd56e642"> https://github.com/MetaMask/metamask-extension/assets/11148144/5eb59902-768d-4d07-a112-5aeb5471587d ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask 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. --------- Co-authored-by: Mircea Nistor <[email protected]> Co-authored-by: NidhiKJha <[email protected]> Co-authored-by: David Walsh <[email protected]> Co-authored-by: legobeat <[email protected]> Co-authored-by: Nidhi Kumari <[email protected]>
This PR brings the domain resolution integration up to specification. There's a lot going on in this PR so here's a quick breakdown of what's going on: - The `DomainInputResolutionCell` component is responsible for displaying a single resolution, it can properly display both ENS and snap provided resolutions. It also has logic to detect overflowing titles so that it can replace the title component with one that has an ellipsis and a tooltip showing the entire title. - The confusable component was modified to include an option to wrap the points in a text component instead of span and I added a prop to be able to assign a classname to the tooltip wrapper, I did this to allow for my use case of having a tooltip within a tooltip (an overflowing domain name with confusables). - The update to the `AddressListItem` component snapshot is because of the update to the confusable component. - ~~I had to update implementation of the `AddRecipient` components because the update in the name resolution api would break the existing implementation. Those components will be removed at some point by the extension team.~~ (These components have since been removed) - The `AddContact` component was updated to use the domain input resolution cell component. - The `AddressListItem` component was updated to accommodate overflowing titles (specifically when viewing all contacts). - The `ViewContact` & `EditContact` components were also updated to accommodate overflowing titles. - After the add/remove from address book actions, the old state would momentarily hang, so now I’m forcing the update for a cleaner UX where the old state won’t hang at all. **Previous `AddContact` screen**: https://github.com/MetaMask/metamask-extension/assets/41640681/ccaebf23-76c9-4ae8-99ee-f338d9da669d **New screens**: https://github.com/MetaMask/metamask-extension/assets/41640681/957def02-5859-4299-8c21-b561ea8f3c2f Note: The `AddContact` screen was re-done to accommodate for snap provided resolutions and to update the designs as it seemed the screen was largely undesigned. See previous design video. --------- Co-authored-by: Frederik Bolding <[email protected]>
This PR adds a feature flag to be used during the development of the non-EVM initiative. To use the flag during development just change the value of the flag to `true` and access it using `process.env.BTC_BETA_SUPPORT`.
…ing accounts during a NFT send` (#25220) <!-- 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** The problem with this flaky test is that we start a send flow (type 0x0 tx), and we are switching assets (from NFT to ETH) and proceeding to the next screen, if we click Continue before the gasLimit is updated the test will fail: once we land into the last confirmation screen, the gas limit is never updated there, so the test fails as the total value doesn't match with the expected one. This is a race condition that happens on the wallet level, but this PR intends to fix the flakiness on the test level to not wait for the fix on the wallet side. See bug [here](#25243). To fix this, we could either add a delay, or in this case, we add some extra validation (making sure the hex data is cleared) and update the transaction values, to trigger again a gas update. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25220?quickstart=1) ## **Related issues** Fixes: #25181 ## **Manual testing steps** 1. Check ci 2. Run test multiple times locally `FIREFOX_SNAP=true yarn test:e2e:single test/e2e/tests/transaction/change-assets.spec.js --browser=firefox --leave-running --retryUntilFailure --retries=10` ## **Screenshots/Recordings** https://github.com/MetaMask/metamask-extension/assets/54408225/113ea17f-020f-46d9-8516-66240f7bd1e2 ## **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.
…de blocked tokens in all tests (#25206) <!-- 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** The responses for the API Calls to aggregator metadata, block list and blocked tokens are not currently mocked on any tests, however the requests happen in the majority of tests. These request return a json back that takes in some occasions more than 1 second to return. With this PR we mock these responses, so they are immediate, mitigating any possible delay and flakiness due to real live requests. Note: We are returning the data, since it's been seen that if we return just an empty json, some tests fail as they rely on some data from that requests [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25206?quickstart=1) ## **Related issues** Fixes: MetaMask/MetaMask-planning#2637 ## **Manual testing steps** 1. All tests should continue to pass in ci 2. Check screenshots with the real API requests and slow responses ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** See slow responses for the 3 API requests happening in tests: - blocklist: 1.20s ![Screenshot from 2024-06-11 12-04-47](https://github.com/MetaMask/metamask-extension/assets/54408225/bcd75c3d-b91e-4ebe-a3f1-b6a1f6811805) - aggregator metadata: 644ms ![Screenshot from 2024-06-11 11-24-24](https://github.com/MetaMask/metamask-extension/assets/54408225/0b899c47-0e87-4bc7-ad64-d670b0495d16) - includeBlockedTokens: 664ms ![Screenshot from 2024-06-11 12-04-56](https://github.com/MetaMask/metamask-extension/assets/54408225/a1ebb86a-7a87-416f-ac96-f6b2ae4c8914) ## **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.
## **Description** Fixes failing snapshot in `develop` most likely due to conflicts with #24605 and #24953 [Slack thread ](https://consensys.slack.com/archives/CTQAGKY5V/p1718207993031359) [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25261?quickstart=1) ## **Related issues** Fixes: N/A ## **Manual testing steps** 1. Pull this branch 2. Run `yarn jest` 3. See no failing snapshot tests ## **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.
…uilds (#24142) <!-- 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** Currently, requests from the dapp can hang if: 1. they are sent before the extension is fully initialized / before the extension is ready to process requests from that specific dapp connection 2. they get swallowed do to an issue in chromium with streams on prerendered pages breaking when they become visible to the user The inpage provider does have a retry mechanism, but currently that only works on MV3 builds. Additionally, is not a 100% reliable trigger as the underlying `metamask_chainChanged` message that it relies on is tied to MetaMaskController mem state changes, and is not fired off each time a dapp connection is established. This PR attempts to fix request retries by: * Making the retry message triggered by `metamask_chainChanged` work on all builds, not just MV3 builds * Firing `metamask_chainChanged` every time a new dapp connection is established **Open concern:** There may be an edge case when a request with a confirmation is sent by the dapp, then received and shown to the user in the wallet, but swallowed by prerender. I believe my proposed changes in this PR would cause the confirmation to get resent even though there may still be a confirmation being shown to the user. I haven't been able to test this properly as debugging the prerender issue in general is difficult. This would require a dapp to send a request requiring confirmation pretty much immediately after page load, implying without user interaction. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24142?quickstart=1) ## **Related issues** See: #11069 See: #23329 See: #24025 ## **Manual testing steps** ### Verify this fixes the `metamask_sendDomainMetadata` issue 1. Restart extension 2. Open any page 3. Quickly open the wallet popup 4. Notice that there is no favicon 5. After 5s have elapsed since the page was opened, the favicon should populate in the wallet popup ### Verify this fixes retrying messages before extension is ready 1. Open any page (restarting extension not required) 2. Quickly open console and type `await window.ethereum.request({method: 'eth_chainId'})` 3. Notice that the response doesn't come immediately 4. After 5s have elapsed since the page was opened, the response should be shown in console ### Verify this fixes retrying messages after broken prerender stream Not easy to verify this unfortunately, you would need to break the prerender stream while a request was being made ## **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 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 - [ ] 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: legobeat <[email protected]>
…sers (#25217) <!-- 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** Fixes two bugs: - Privacy policy toast should not be seen during onboarding - Users who onboarded after the privacy policy date should not see the new privacy policy toast. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25217?quickstart=1) ## **Related issues** Fixes: ## **Manual testing steps** New user onbaording after the date: 1. Set the privacy policy date to a date in the future from today 2. Onboard (create a new user) 3. User should not see the privacy policy toast at any moment New user onboarding before the date: 1. Set the privacy policy date to a date in the past from today. 2. Onboard (create a new user) 3. User should not see the privacy policy toast at any moment 4. Set the privacy policy date to a date in the future from today 5. User should not see the privacy policy toast on the home screen Old user after the privacy policy date: 1. Have a user already onboarded 2. Make sure the `onboardingDate` is `null` in the redux state (this simulates a user who has registered before this PR has been in production) 3. Set the privacy policy date to a date in the future from today 4. User should not see the new privacy policy toast Old user before the privacy policy date: 1. Have a user onboarded 2. Make sure the `onboardingDate` is `null` in the redux state (this simulates a user who has registered before this PR has been in production) 3. Set the privacy policy date to a date in the past before today 4. User should see the new privacy policy toast TL;DR: If the privacy policy date is in the future, the user should never see it -BUT- if the privacy policy is in the past, the user should see it, as long as the user onboarded before the privacy policy date. ## **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. --------- Co-authored-by: David Walsh <[email protected]> Co-authored-by: Brian Bergeron <[email protected]> Co-authored-by: NidhiKJha <[email protected]> Co-authored-by: Nidhi Kumari <[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** <!-- 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? --> This version of `@metamask/base-controller` does not introduce any functional changes, but there are a few developer experience improvements: - The controller messenger is now more type-safe, in that a messenger with an empty action/event allowlist guarantees that no actions/events are allowed to be called/emitted, and conversely, that a non-empty allowlist only allows the given actions/events - The "selector" version of `subscribe` (three arguments instead of two) is now fixed so that the arguments to the selector function are correctly typed. - It is now impossible to mutate state directly; state must only be mutated inside of a controller using the `update` method. This ensures that state updates are always controlled and expected. View changelog: https://github.com/MetaMask/core/blob/%40metamask/base-controller%405.0.1/packages/base-controller/CHANGELOG.md [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24209?quickstart=1) ## **Related issues** Progresses #24140. ## **Manual testing steps** (None needed as there should be no functional changes.) ## **Screenshots/Recordings** (None) ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask 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: MetaMask Bot <[email protected]> Co-authored-by: Michele Esposito <[email protected]> Co-authored-by: Michele Esposito <[email protected]> Co-authored-by: legobeat <[email protected]> Co-authored-by: Mark Stacey <[email protected]>
…ed in either wallet_switchEthereumChain nor wallet_addEthereumChain calls (#25269) ## **Description** A bug was introduced in #24415, where user rejected request errors are not correctly handled in either `wallet_switchEthereumChain` nor `wallet_addEthereumChain` calls. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25269?quickstart=1) ## **Related issues** Fixes: Regression in API error handling found on a local run of [the new API testing tool](#24132), will link report when available. ## **Manual testing steps** **wallet_addEthereumChain** 1. Go to https://docs.metamask.io/wallet/reference/wallet_addethereumchain/ 2. Submit the prepopulated `wallet_addEthereumChain` request 3. Confirm the request to add Gnosis Chain 4. But click "Cancel" on the second request to switch to the newly added chain 5. You should see `null` as the response **wallet_switchEthereumChain** 1. Make sure the wallet is on a chain other than gnosis 2. Go to https://docs.metamask.io/wallet/reference/wallet_switchethereumchain/ 3. Submit the prepopulated switchEthereumChain request (for chainId: 0x64) 4. Click cancel on the request to switch to gnosis chain 5. you should see: ``` { "code": 4001, "message": "User rejected the request.", "stack": "{\n \"code\": 4001,\n \"message\": \"User rejected the request.\",\n \"stack\": \"Error: User rejected the request.\\n } ``` in the response ## **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.
…work domain is incorrectly set (#25106) ## **Description** Pulls [this fix](MetaMask/core#4388) which adds a guard to the `setNetworkClientIdForDomain` method on the `SelectedNetworkController` to no longer add domains to domains state (nor create a selected network proxy for them) unless the `useRequestQueuePreference` flag is true Bumping the `@metamask/selected-network-controller` version required [bumping peer dependencies](https://github.com/MetaMask/core/blob/main/packages/selected-network-controller/CHANGELOG.md#changed): - `@metamask/network-controller` to v19.0.0 - An existing patch was repointed to this version. - `@metamask/permission-controller` to v10.0.0 -[ This required bumping its own peerDep](https://github.com/MetaMask/core/blob/main/packages/selected-network-controller/CHANGELOG.md#changed) `@metamask/approval-controller` to v7.0.0 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25106?quickstart=1) ## **Related issues** See: https://consensys.slack.com/archives/C1L7H42BT/p1717512150509719 ## **Manual testing steps** 1. Open settings -> experimental and toggle of the `Select networks for each site` setting 2. Go to any site 3. Open the console and execute: ``` await window.ethereum.request({ "method": "eth_chainId", "params": [] }); ``` 4. See that it matches the globally selected network 5. Manually change the network with the network switcher 6. Go back to the site and execute the same `eth_chainId` script 7. See that the result has changed to the chainId you switched to 8. Now execute ``` await window.ethereum.request({ "method": "wallet_requestPermissions", "params": [ { "eth_accounts": {} } ] }); ``` and connect an account to the site 9. Repeat steps 1 - 7 10. The `eth_chainId` results should still match the globally selected network ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> https://github.com/MetaMask/metamask-extension/assets/34557516/ff2f68ff-6ec8-495f-96c1-e938973ce59b ### **After** <!-- [screenshots/recordings] --> https://github.com/MetaMask/metamask-extension/assets/34557516/6061f4e2-faab-48a5-8c55-3b2a4e3aa9f2 ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask 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. --------- Co-authored-by: MetaMask Bot <[email protected]>
…ON_REDESIGN (#25258) <!-- 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** Small fix for `pre-build-mv2` description and `ENABLE_CONFIRMATION_REDESIGN` value in circle ci <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25258?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.
…rence is enabled (#25186)
<!-- 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** Due to manual date comparisons, there were some weirdness with the dates displayed (such as a notification yesterday, but not 24 hours ago). This fix (using date built-ins) ensures correct notification dates. NOTE - need to port this on other platforms. <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25148?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.
<!-- 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 fixes the flaky test `ENS domain resolves to a correct address` The error is: ``` [driver] Called 'clickElement' with arguments [".address-list-item"] [driver] Called 'findElement' with arguments [{"css":".ens-input__selected-input__title","text":"test.eth"}] Failure on testcase: 'ENS domain resolves to a correct address', for more information see the artifacts tab in CI TimeoutError: Waiting for element to be located By(xpath, .//*[contains(concat(' ', normalize-space(./@Class), ' '), ' ens-input__selected-input__title ')][(contains(string(.), 'test.eth') or contains(string(.), 'test.eth'))])` ``` The problem is that we are clicking the address-list-item button, and nothing happens afterwards. Then we try to find the next element but is not there. If we look into the address-list-item button element we can see how it has nested elements inside, which will render the address and the ENS domain. Clicking on a "container" element with other elements inside might not work as we expect, since the inside elements might not be fully updated before clicking with unknown effects (in this case, the ENS and address resolution) . To fix this, we are doing 2 things: - waiting for both the ENS and the address to be fully rendered (before we were just waiting for the ENS domain to be loaded) - clicking on a more specific element inside the container -> we now click into the inner element for the domain ENS See Box as the container button, and nested elements with address and ENS domain. ![Screenshot from 2024-06-12 10-49-23](https://github.com/MetaMask/metamask-extension/assets/54408225/bef54bcf-9f67-46f3-9155-b877fb9c844f) - ci failure example: https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/86997/workflows/200911a8-50a6-42f2-b56a-b6f7afc8fc1e/jobs/3178850/artifacts [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25248?quickstart=1) ## **Related issues** Fixes: #24652 ## **Manual testing steps** 1. Check ci 2. Run test multiple times locally with different builds `yarn test:e2e:single test/e2e/tests/transaction/ens.spec.js --browser=chrome --leave-running --retryUntilFailure --retries=10` ## **Screenshots/Recordings** Ci failure screenshot: notice how, after clicking the ENS address button, we don't see the asset below, this means that the click didn't have any effect. ![image](https://github.com/MetaMask/metamask-extension/assets/54408225/c62f66e5-a194-4d70-917b-5677cdb13f87) Expected: after clicking the EN address button, we should see the asset below ![Screenshot from 2024-06-12 10-04-33](https://github.com/MetaMask/metamask-extension/assets/54408225/9478f881-edeb-4a32-9e95-ce715526e72b) ## **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. - [ ]
👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎ This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. Ignoring: Next stepsTake a deeper look at the dependencyTake a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev. Remove the packageIf you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency. Mark a package as acceptable riskTo ignore an alert, reply with a comment starting with |
Builds ready [b7db14f]
Page Load Metrics (176 ± 192 ms)
|
@SocketSecurity ignore npm/@metamask/[email protected] This is our package |
@SocketSecurity ignore npm/@open-rpc/[email protected] These packages are intended to have network access |
@SocketSecurity ignore npm/[email protected] Network access is intended here as well, and the deprecation is not of immediate concern |
@SocketSecurity ignore npm/@open-rpc/[email protected] Shell access OK, this is expected |
@SocketSecurity ignore npm/[email protected] New author OK, also this version of the package is quite old and unlikely to have been a malicious takeover. |
@SocketSecurity ignore npm/[email protected] Network access is expected in these cases as well |
#26616) …26525) <!-- 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 addresses an issue where duplicate event tracking calls were made in the `handleNotificationsClick` function within the `GlobalMenu` component. This redundancy could lead to inaccurate event logging and unnecessary data collection. Also, the PR removes an unnecessary property. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26525?quickstart=1) ## **Related issues** Fixes: N/A ## **Manual testing steps** 1. Open the global menu 2. Click on the notifications menu item 3. Verify that the event is tracked only once ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** N/A ### **After** 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** - [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. <!-- 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** <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26616?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.
This PR cherry-picks #25999 to v12.1.0. Original description: ## **Description** Upgrade the Sentry packages from `7.53.0` to `8.19.0`. Specifically: - Refactor custom `FilterEvents` integration into object returned by function. - Remove usages of `hub`. - Fix notification errors when changing metrics preference. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/25999?quickstart=1) ## **Related issues** ## **Manual testing steps** Full Sentry regression. ## **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** - [ ] 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: Matthew Walsh <[email protected]> Co-authored-by: MetaMask Bot <[email protected]>
Cherry-pick of #26192 for v12.1.0. Original description: ## **Description** Fix the automatic tracking of Sentry sessions, and refactor Sentry setup to simplify logic and improve logging. Specifically: - Remove all dynamic `autoSessionTracking` enablement. - Add a custom Sentry transport to prevent any requests reaching Sentry if metrics are disabled. - Only consider metrics enabled when preference is set and onboarding is complete. - Enable Sentry if `METAMASK_ENVIRONMENT` is not `production` and `SENTRY_DSN_DEV` is specified. - Remove the arguments to the `setupSentry` function. - Since the file already references `process.env` and `global.stateHooks` internally. - Flatten all the functions within `setupSentry.js`. - Since they no longer require a dynamic `getState` callback. - Log all Sentry messages via the `debug` package based on the `DEBUG` environment variable. - Create separate loggers for UI and background to differentiate logs. - e.g. `DEBUG=metamask:sentry:*` in `.metamask.rc` - Add additional log messages for easier debug. - Including all sent events and completed sessions if `METAMASK_DEBUG` is enabled. - Add mock `SENTRY_DSN_DEV` to Flask and MMI test builds. - Remove duplication in package scripts. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26007?quickstart=1) ## **Related issues** Fixes: [#2555](MetaMask/MetaMask-planning#2555) #15691 ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** <img width="713" alt="Updated Logs" src="https://github.com/user-attachments/assets/8351a968-baea-4cbd-b7b6-0b8000cf1a84"> ## **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: Matthew Walsh <[email protected]>
Builds ready [04c5fc6]
Page Load Metrics (68 ± 19 ms)
|
) <!-- 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** Cherry picks #26600 <!-- 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? --> [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26625?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.
Builds ready [6927746]
Page Load Metrics (147 ± 171 ms)
|
…k] (#26624) Cherry-pick of (#26044) for v12.1.0. original description: ## **Description** Add initial tracing and performance metrics infrastructure. Specifically: - Add the `trace` method, to be used anywhere in the client to generate a Sentry trace to monitor and analyse performance metrics. - Add buttons to the developer settings as an easy mechanism to generate Sentry errors (in the UI or background) and traces. - Add the `Sentry.browserTracingIntegration` to automatically generate traces for each page navigation, including nested spans for any HTTP requests. - Update the Sentry debugging documentation in the `README`. Note that the previously used `browserProfilingIntegration` does not generate transactions or traces itself, but rather attempts to add profiling data to any generated transactions. This does not appear to be compatible given it requires the Self-Profiling API object which is only available in Chrome and in our case, the UI. In addition, it requires the `js-profiling` document policy which also appears to currently not be supported in browser extensions. Sentry also provides React specific automated instrumentation via `@sentry/react` and the `Sentry.reactRouterV5BrowserTracingInstrumentation` integration, but this should be pursued in a separate ticket if needed given the required further refactor. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26044?quickstart=1) ## **Related issues** Fixes: [#2711](MetaMask/MetaMask-planning#2711) ## **Manual testing steps** 1. Enable metrics in the settings. 2. Login to Sentry account. 3. Go to `Traces` or `Performance` section. 4. Note new transactions or traces named `popup.html` with nested spans including HTTP requests. ## **Screenshots/Recordings** ### **Before** ### **After** <img width="250" alt="Sentry Developer Options" src="https://github.com/user-attachments/assets/620cbfb8-ab4d-4ed0-b5f6-ba04ef975ddc"> ## **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: Matthew Walsh <[email protected]>
@SocketSecurity ignore npm/@sentry-internal/[email protected] These are expected to have network access |
Builds ready [42555d3]
Page Load Metrics (181 ± 226 ms)
|
I tested the recent three Sentry commits by generally following the instructions here: #26605 The one adjustment I made was to set the sample rate to 1 so that performance events would be guaranteed to be sent. That can be adjusted here:
I was able to confirm that:
|
…r v12.1.0 (#26476) This brings the tests up to date with develop, which is what they should have been. One test that was cherry-picked into v12.0.0 and then later updated on develop was not merge properly when master was merged into v12.1.0 Co-authored-by: Mark Stacey <[email protected]>
Builds ready [5bdc48e]
Page Load Metrics (137 ± 160 ms)
|
## **Description** This PR will trigger the creation of a beta build once merged. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26631?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.
Builds ready [e5f4f32]
Page Load Metrics (58 ± 8 ms)
|
## **Description** These change entries are for features that aren't yet enabled. They are behind build flags. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26663?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** The `-beta.0` suffice has been removed from the version number to prepare for the production release. [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/26664?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.
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.
We are ready to publish this now. No outstanding bug reports from QA or from the beta release.
Builds ready [7848f3c]
Page Load Metrics (63 ± 11 ms)
|
RC V12.1.0