Skip to content
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 v11.16.0 #24242

Merged
merged 134 commits into from
May 23, 2024
Merged

Version v11.16.0 #24242

merged 134 commits into from
May 23, 2024

Commits on Apr 12, 2024

  1. fix: new-network button label colors are not readable in light mode (#…

    …23988)
    
    <!--
    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 fixes the style of footer buttons in the new-network component so
    they are readable in both light and dark mode.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23988?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    [23725](#23725)
    
    ## **Manual testing steps**
    
    1. Turn on dark mode setting in extension
    2. Add a new network
    3. Verify that "Got it" button text is black
    4. Verify that "Learn to bridge" button text is blue
    5. Verify that "Learn to bridge" button text is black on hover
    6. Turn on light mode setting in extension
    2. Add a new network
    3. Verify that "Got it" button text is white
    4. Verify that "Learn to bridge" button text is blue
    5. Verify that "Learn to bridge" button text is white on hover
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    ![image](https://github.com/MetaMask/metamask-extension/assets/100321200/365fc1e7-e874-4bd6-aa12-3de97f0396d3)
    
    
    ### **After**
    
    <img width="341" alt="Screenshot 2024-04-11 at 10 59 23 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/100321200/63f45351-3601-4ee7-9c5b-f74cb3fe3f85">
    
    
    ## **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.
    micaelae committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    25ae5a4 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2024

  1. Configuration menu
    Copy the full SHA
    ac9e13b View commit details
    Browse the repository at this point in the history
  2. fix: Updated avatar favicon props for single account disconnect toast (

    …#23935)
    
    This PR ensures that when a single account is disconnected from the Dapp
    via connections. It shouldn't break the page and disconnects smoothle
    
    
    ## **Related issues**
    
    Fixes: #23790
    
    ## **Manual testing steps**
    
    1. Run extension with Multichain flag
    2. Connect a single account to uniswap
    3. Go to connections page, click on disconnect account.
    4. It should disconnect the account
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/f4356be1-e6b8-4319-b2a0-be5439173fbe
    
    
    ### **After**
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/779ababe-d6a2-4f9a-aca8-d09284dd4aee
    
    
    
    ## **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.
    NidhiKJha committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    833b601 View commit details
    Browse the repository at this point in the history
  3. fix: cache subject metadata for redirect (#23999)

    <!--
    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**
    
    Caches subject metadata on the permission redirect screen, fixing the
    problem where the dapp icon would disappear while redirecting. Also
    fixes the centering on this icon as well as multiple other icons in the
    app.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23999?quickstart=1)
    
    
    ## **Manual testing steps**
    
    1. Connect to any dapp
    2. Notice the difference in the redirection screen
    
    ## **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/1561200/5b7a3ccc-47a8-4f95-932b-f544e998f331
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/1561200/dc331711-388b-4d53-a869-e89618742119
    FrederikBolding committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    07de882 View commit details
    Browse the repository at this point in the history
  4. test: [Snaps E2E] add more snaps localization testing (#23796)

    <!--
    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 adds checks for snap name localization to the snaps localization
    E2E test.
    <!--
    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/23796?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#1653
    
    ## **Manual testing steps**
    
    1. Run this as a single test locally.
    
    ## **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
    - [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.
    bowensanders committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    91d5d4e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    96d478a View commit details
    Browse the repository at this point in the history
  6. test: [Snaps E2E] Create E2E test for UI links (#22739)

    ## **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?
    -->
    Create E2E test for UI links
    ## **Related issues**
    
    Fixes: #22425
    
    ## **Manual testing steps**
    
    1. This is an automated E2E test
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [ ] I've included screenshots/recordings if applicable
    - [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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    bowensanders committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    2cde24c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f8b92ab View commit details
    Browse the repository at this point in the history
  8. fix: checkmark icon missing after token import (#24005)

    ## **Description**
    
    After importing an erc20 token, the popup message was not rendering the
    checkmark icon.
    
    The icon is from font-awesome, and their CSS works fine. But when we add
    `@include design-system.H3`, it overrode the font-family, breaking the
    icon.
    
    Fixed by setting font size directly rather than bringing the whole H3.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24005?quickstart=1)
    
    ## **Related issues**
    
    
    ## **Manual testing steps**
    
    1. Import an erc20 token, either manually or via autodetection
    2. Verify the green popup message has a checkmark icon
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    <img width="349" alt="Screenshot 2024-04-12 at 10 58 57 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/3500406/14878f22-b355-4eb5-97c6-feb317d8775f">
    
    
    ### **After**
    
    <img width="354" alt="Screenshot 2024-04-12 at 12 00 30 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/3500406/8bca68da-645c-44a1-b754-4e529070ae50">
    
    
    
    ## **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.
    bergeron committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    4dc299e View commit details
    Browse the repository at this point in the history
  9. ci: update github/codeql-action to v3 (#23820)

    Update `github/codeql-action@v2` to v3 as v2 is deprecated.
    davidmurdoch committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    1004559 View commit details
    Browse the repository at this point in the history
  10. ci: update actions/checkout to v4 (#23822)

    Update `actions/checkout@v2` to v3 as v2 is deprecated.
    davidmurdoch committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    9c78339 View commit details
    Browse the repository at this point in the history
  11. fix: issue where provider engine needs to rerun after permissions are…

    … granted to ensure correct proxies are assigned (#23525)
    
    ## **Description**
    When the "Selected networks for each site" toggle is enabled, the wallet
    API should use an origin-specific chain for all interactions. However
    this doesn't work correctly if the connection status has changed since
    the last refresh. If you grant permissions to a site or revoke them
    (i.e. connect to or disconnect from a site), the site does not work as
    expected until after the site is refreshed.
    
    **Expected behavior**
    The wallet API should always use the dapp-selected chain for sites with
    permissions, and should use the globally-selected chain for sites
    without permissions. This should apply even if the permissions have
    changed since the page loaded.
    
    **Solution**
    
    This PR introduces [changes made to
    `@metamask/selected-network-controller`](https://github.com/MetaMask/core/blob/main/packages/selected-network-controller/CHANGELOG.md#changed)
    to resolve the issue described above:
    > Previously the SelectedNetworkController only constructed proxies for
    domains that had permissions. Other domains have no associated proxy and
    the getProviderAndBlockTracker method would throw an error. This was
    problematic because we grab the network client for an origin a single
    time when constructing an RPC pipeline for that origin in the MetaMask
    extension. We don't re-create the RPC pipeline when permissions change.
    That means that the pipeline is setup with the wrong network client and
    cannot be updated. The following changes ensure seamlessly proxying
    calls during sessions where a dapp connects/disconnects and provides a
    path for clients to prune inactive proxies.
    
    This domainProxyMap param now passed into `SelectedNetworkController`
    allows the client to handle pruning inactive proxies while the
    SelectedNetworkController handles adding entries - it can't handle
    removal, as it doesn't know which connections are active.
    
    The extension passes in an instance of a newly created `WeakStringMap`
    class which allows for garbage collection of its data once no longer
    referenced.
    
    ## **Related issues**
    
    Fixes: #23509
    
    ## **Manual testing steps**
    
    The problem presented itself in two scenarios: when granting site
    permissions, and when revoking all site permissions.
    
    **When granting permissions:**
    - Enable the "Selected networks for each site" toggle
    - Open a site with no permissions in one tab, and the fullscreen wallet
    UI in another
    - If the site was open already, hard-refresh before proceeding
    - Call eth_requestAccounts on the site, asking for the eth_accounts
    permissions
    - Approve the request
    - Call eth_chainId from the site, and see that it matches the wallet
    selected chain
    - Switch the selected chain in the fullscreen UI
    - Call eth_chainId from the site, and see that it is still on the same
    chain the wallet was connected to before switching
    
    **When revoking permissions:**
    - Redo all the same steps for **When granting permissions:**
    - Open the browser-action popup, click on the three-vertical-dots menu,
    click "Connected sites", then disconnect from the site
    - Call eth_chainId from the site. See that the sites connected chain is
    now the same as the "globally selected chain" in the wallet
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    This recording shows both reproduction use cases (granting permissions,
    then revoking)
    
    
    [queue-selected-chain-bug-2024-03-14_19.49.19.webm](https://github.com/MetaMask/metamask-extension/assets/2459287/092c0a9d-e734-4309-9455-d6444f7504ef)
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/34557516/62145d32-493b-41a2-ba8e-a1545ef1286a
    
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [x] I've included screenshots/recordings if applicable
    - [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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    adonesky1 committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    b1b8c08 View commit details
    Browse the repository at this point in the history
  12. build: remove brfs from build processes (#24000)

    The `brfs` package was used to transform calls to `fs.readFile*` into
    inlined files as strings during build/compilation. We no longer make use
    of `fs.readFile*` in our code, so the dependency is no longer required.
    While it doesn't cause issues to leave it, the package is slow as it
    must parse the contents into an AST and then statically analyze the tree
    looking for relevant calls to `fs.readFile*`. This overhead is unwanted,
    so I've removed it from our build process.
    davidmurdoch committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    be3c4f2 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Configuration menu
    Copy the full SHA
    f23f095 View commit details
    Browse the repository at this point in the history
  2. fix: updated connections page for connected data (#24022)

    In the previous logic, we were using activeTabOrigin to get the subject
    MetaData to get the connected Dapp MetaData but it seems like there is
    another bug because of which metaData is not being fetched correctly. As
    a result, we are not able to get the connected Dapp Logo and connected
    status properly. In this PR, we are relying on
    getPermittedAccountsForCurrentTab to get the connected status and if the
    connected dapp metaData is not defined, we will rely on global icon
    rather than connected dapp icon
    
    ## **Related issues**
    
    Fixes: #23792 
    
    ## **Manual testing steps**
    
    1. Run extension with Multichain Flag and connect it to dapp
    2. If the dapp shows connected status, then the connection page should
    return the connected accounts
    3. Test it with multiple Dapps
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    Refer to the issue
    
    ### **After**
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/4536a206-a4de-45e4-88ca-cdbaf92478bb
    
    
    
    
    ## **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.
    NidhiKJha committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    8f3270f View commit details
    Browse the repository at this point in the history
  3. fix: Updated selector for the test networks (#23986)

    This PR is to ensure that the permissions page renders list of all the
    permissions with the current networks. For a few networks, we don't have
    the rpcPrefs that was causing the siteKey nd the rpcPrefs to be
    undefined.
    This PR also makes sure that the defined background color is there for
    the test networks that doesn't have a logo
    
    
    ## **Related issues**
    
    Fixes: #23812 #23793 
    
    
    ## **Manual testing steps**
    
    1. Connect an account on Uniswap
    2. Open the popup
    3. Open the three-dot menu and choose "All Permissions"
    4. It should render the permission with the accounts
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/4fc1e04c-fde3-4905-a8b8-b16c75d9f7d1
    
    
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/c56a60cb-24e6-4857-ac29-2539bb0f6645
    
    
    
    ## **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.
    NidhiKJha committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    01a4d60 View commit details
    Browse the repository at this point in the history
  4. fix: fixed wallet view bugs for connections and permissions screen (#…

    …24023)
    
    This PR is to fix the UI bugs in the wallet, permissions and connections
    screen to keep it in sync with the Updated designs
    
    ## **Description**
    Following changes are updated:
    1. Description of the product tour for global menu [Note: This product
    tour will be removed]
    2. Remove Connected dApp shown on Account List Item
    3. Remove Connect account action in Select Account Modal
    
    ## **Related issues**
    
    Fixes: #23858 
    
    
    
    ## **Manual testing steps**
    
    This PR solves Part of the linked issue, rest of them are already
    resolved via different other PRs, Linking them in the list:
    1. Description of the product tour for global menu - Modified in this PR
    2. Connected sites and All Permissions in Global menu -
    [23789](#23789)
    3. Remove Connected dApp shown on Account List Item - Modified in this
    PR
    4. Connected Account Toast should only be displayed on Wallet screen -
    [23733](#23733)
    5. Remove Connect account action in Select Account Modal - Modified in
    this PR
    6. Network switching within Extension - This isssue doesn't exist
    anymore.
    7. Button in Network switch Modal - Was related to Design System, fixed.
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    Please refer to the issue
    ### **After**
    1. This Product tour will be removed in a separate PR
    2.  No dapp logo on account list item even when it's connected
    ![Screenshot 2024-04-16 at 3 02
    46 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/01b443c4-cc84-43c2-84a9-da012935def5)
    3. No connect button in account list item menu
    
    
    ![Screenshot 2024-04-16 at 3 03
    23 PM](https://github.com/MetaMask/metamask-extension/assets/39872794/71b902af-00f7-4c09-9fa9-aefc37f7a3f1)
    
    ## **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: David Walsh <davidwalsh83@gmail.com>
    NidhiKJha and darkwing committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    c1b2cbe View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3798950 View commit details
    Browse the repository at this point in the history
  6. feat: create Developer Options Setting Page (#22382)

    ## **Description**
    
    The "Developer Options" setting page will provide developers with
    additional controls and customization to assist with development and
    testing. This feature will enable developers to reset app states easily,
    toggle certain features on/off, and update configurations without
    needing to reinstall the app, accelerating developer velocity.
    
    To enable, add `ENABLE_SETTINGS_PAGE_DEV_OPTIONS=true` in .metamaskrc
    
    Developer Options Supported:
    - Reset Announcements/Notifications for What's New modal
    - Reset Onboarding states and redirects to second onboarding page
    
    
    ## **Related issues**
    
    Fixes: #23592
    Blocked By: MetaMask/core#4088
    
    ## **Manual testing steps**
    
    1. `yarn install` to install the latest announcement-controller changes
    2. go to `.metamaskrc`
    3. paste `ENABLE_SETTINGS_PAGE_DEV_OPTIONS=true`
    4. `yarn start`
    
    Test using test-dapp
    1. open test-dapp
    2. test with PPOM buttons
    
    ---
    
    1. See
    chrome-extension://hbljfohiafgaaaabejngpgolnboohpaf/home.html#settings/developer-options
    
    ## **Screenshots/Recordings**
    
    #### New UI
    
    <img width="480" alt="Screenshot 2023-12-21 at 2 33 45 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/20778143/6d6ebd6c-8564-4d4e-8dcf-d9197ad11e6b">
    
    ![Screenshot 2023-12-22 at 1 58
    28 PM](https://github.com/MetaMask/metamask-extension/assets/20778143/cfec8e2e-5cf8-43ed-9096-af22901e4bd5)
    
    ![Screenshot 2023-12-22 at 1 59
    40 PM](https://github.com/MetaMask/metamask-extension/assets/20778143/70a11c03-735c-4f98-93e4-d8532c5aaea4)
    
    #### Announcements 
    
    ![Screenshot 2024-03-17 at 8 13
    41 PM](https://github.com/MetaMask/metamask-extension/assets/20778143/be91edfa-ade3-4a37-b628-3c8c62b0d27c)
    
    #### Onboarding
    
    ![Screenshot 2024-03-17 at 8 13
    56 PM](https://github.com/MetaMask/metamask-extension/assets/20778143/ae36304a-db40-4a7a-bbf2-e979167ecf4c)
    
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [ ] I've linked related issues
    - [ ] I've included manual testing steps
    - [ ] I've included screenshots/recordings if applicable
    - [ ] 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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    digiwand committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    d91e182 View commit details
    Browse the repository at this point in the history
  7. chore: MMI adds custodian icons (#23912)

    <!--
    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 custodian logo to the top bar, at the left of the address and also
    in the accounts list:
    
    ![Screenshot 2024-04-09 at 15 12
    26](https://github.com/MetaMask/metamask-extension/assets/1125631/c7edac43-ba34-41ca-935c-cbf37aedd1d6)
    ![Screenshot 2024-04-09 at 15 09
    26](https://github.com/MetaMask/metamask-extension/assets/1125631/5a65d301-8954-4b7b-a1ad-a2ab1cfca386)
    
    ## **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.
    zone-live committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    6ed9d04 View commit details
    Browse the repository at this point in the history
  8. feat: Update UI / content for the Smart Transactions Opt In modal, re…

    …naming (#24053)
    
    ## **Description**
    This PR includes a few small updates:
    - Updates UI / content for the Smart Transactions Opt In modal
    - Renaming to `Smart Transactions`
    - Small refactoring
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    1. Install the extension
    2. See the updated Smart Transactions Opt In Modal
    
    
    ## **Screenshots/Recordings**
    
    Smart Transactions Opt In Modal:
    
    ![image](https://github.com/MetaMask/metamask-extension/assets/80175477/ffa978b6-8cde-4cad-be70-1242b135b8f9)
    
    
    ### **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.
    dan437 committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    8c8f68f View commit details
    Browse the repository at this point in the history
  9. fix: improve performance in account list and account connection compo…

    …nents (#23933)
    
    ## **Description**
    
    Improves performance in the account list and "account connection"
    components by no longer leveraging `getAddressConnectedSubjectMap`. The
    selector in question is very computationally expensive to use and thus
    were causing performance problems for users with many accounts and many
    connected sites. This PR proposes using
    `getPermittedAccountsForCurrentTab` where possible and also introduces a
    memoized selector `isAccountConnectedToCurrentTab` that performantly can
    check for a given address.
    
    From local testing this seems to improve the experience.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23933?quickstart=1)
    
    ## **Related issues**
    
    Fixes #23913
    
    ---------
    
    Co-authored-by: Nidhi Kumari <nidhi.kumari@consensys.net>
    FrederikBolding and NidhiKJha committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    d40321c View commit details
    Browse the repository at this point in the history
  10. fix: deprecating more networks (#23695)

    ## **Description**
    
    Deprecates Mumbai and linea goerli test networks.
    Users should see a deprecation warning when switching to those networks.
    Linea goerli is removed from the default network list.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23695?quickstart=1)
    
    ## **Related issues**
    
    ticket: https://consensyssoftware.atlassian.net/browse/MMASSETS-183
    patch for controller-utils:
    https://github.com/MetaMask/metamask-extension/pull/23727/files
    
    ## **Manual testing steps**
    
    1. Go to home page
    2. Click on network selector, You should not see Linea testnet in the
    list.
    3. Add Mumbai network to metamask
    4. You should see deprecation warning
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    Linea goerli appears in the list of default networks
    
    <img width="1798" alt="Screenshot 2024-03-26 at 16 17 41"
    src="https://github.com/MetaMask/metamask-extension/assets/10994169/d82e3cba-4c6b-4546-9612-9dabf0b32b5b">
    
    ### **After**
    In this video initially the user is on Linea goerli (i am on develop
    branch), the user makes a few transactions on linea goerli,
    then i switch to this branch so the migration runs, and notice that the
    user has switeched to linea-sepolia.
    Linea goerli is removed from the default networks tab.
    When the user adds linea-goerli using chainlist, he sees the deprecation
    warning and his transactions.
    
    
    https://github.com/MetaMask/metamask-extension/assets/10994169/3ffd6a63-6bb0-4ea3-85ab-c31b8317cfd6
    
    This short video shows the deprecation warning when we switch to Mumbai
    network
    
    
    https://github.com/MetaMask/metamask-extension/assets/10994169/496a9433-0547-4475-8320-39b1c5d01e2e
    
    ## **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.
    sahar-fehri committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    257e9f9 View commit details
    Browse the repository at this point in the history
  11. fix: token rates controller start / stop logic (#24021)

    ## **Description**
    
    Problem: Users reporting missing fiat prices for some erc20 tokens, even
    when price setting is on:
    
    <img width="357" alt="Screenshot 2024-03-14 at 2 35 41 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/3500406/711cfa40-7387-43df-9981-9ed52973b5b4">
    
    Diagnosis:
    
    (1) The `TokenRatesController` gets stopped when metamask is closed. But
    it is not started again when metamask re-opens, preventing any future
    token price updates.
    
    (2) If you have metamask installed but you never open/unlock it (within
    a browser session), the `TokenRatesController` is still polling in the
    background every 3 minutes.
    
    The fix for both is to start the controller in `triggerNetworkrequests`
    instead of on construction.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24021?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Restore a wallet where multiple accounts have erc20 tokens
    2. Enable token autodetection
    4. Visit the first account with tokens, verify their prices
    5. Close metamask
    6. Re-open metamask
    7. Visit the second account
    8. Verify its tokens have prices
    
    ## **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.
    bergeron committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    e322bc8 View commit details
    Browse the repository at this point in the history
  12. chore: bump snaps packages (#23957)

    ## **Description**
    Bump snaps packages to latest and handle breaking changes.
    
    Summary of changes in the snaps deps:
    - Improve encryption performance by caching encryption keys
    - Remove access to `on` and `removeListener` on the `ethereum` object
    for Snaps
      - This functionality was already broken
    - Fixed a problem where unencrypted state would not be deleted when
    uninstalling a Snap
    - Allow form state to be null when triggering `onUserInput`
    - Fixed over-eager link validation being triggered on non-links
    - Add derivation path for Nimiq
    FrederikBolding committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    62a8bd2 View commit details
    Browse the repository at this point in the history
  13. ci(actions): update amannn/action-semantic-pull-request to v5.4.0 (#…

    …23819)
    
    Update `amannn/action-semantic-pull-request@v5.2.0` to v5.4.0 as v5.2.0
    is deprecated.
    davidmurdoch committed Apr 16, 2024
    Configuration menu
    Copy the full SHA
    670f2e1 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. fix(labeling guidelines): Add definition of regression-develop label (#…

    …23855)
    
    ## **Description**
    
    - New  definition added to labelling guidelines: `regression-develop`.
    - Same PR on Mobile repo:
    MetaMask/metamask-mobile#9142
    
    ## **Related issues**
    
    - Fixes: None
    
    ## **Manual testing steps**
    
    - None
    
    ## **Screenshots/Recordings**
    
    - Preview available here:
    https://github.com/MetaMask/metamask-extension/blob/08c910cf750017d0bf586a28578dbfad8d6599c1/.github/guidelines/LABELING_GUIDELINES.md
    
    ## **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.
    gauthierpetetin committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    8560878 View commit details
    Browse the repository at this point in the history
  2. feat: prevent pasting of Snap name during Snap removal (#23993)

    ## **Description**
    
    The confirmation to remove a snap that has accounts present in the
    keyring, requires that the user type the snap name to confirm removal.
    However, the user can just copy and paste the name of the snap being
    removed. This PR disables the ability to paste the name.
    
    ## **Related issues**
    
    Fixes:
    [21445](#21445)
    
    ## **Manual testing steps**
    
    1. Create a new snap account
    2. Go to settings and click on snap
    3. Click on the snap and then remove snap
    4. Click continue on the modal
    5. Try to copy and paste the snap name in the input.
    6. See that the input remains empty.
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    
    ### **After**
    
    ## **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: Daniel Rocha <daniel.rocha@consensys.net>
    montelaidev and danroc committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    f0494a1 View commit details
    Browse the repository at this point in the history
  3. chore: adds GH action for MMI (#23778)

    ## **Description**
    
    Creates a GH action to automatically notify MMI team members in order to
    have immediate visibility of what’s to come and test/review.
    
    Meaning, it will automatically notify us to our extension slack channel,
    when a PR with the "team-mmi" tag is merged to develop.
    
    ## **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.
    
    ---------
    
    Co-authored-by: David Murdoch <187813+davidmurdoch@users.noreply.github.com>
    Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
    3 people committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    48a7969 View commit details
    Browse the repository at this point in the history
  4. feat: improve blockaid error/warning copy (#24037)

    ## **Description**
    We should update content for:
    
    when ppom returns warning as response
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24037?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    [#1758](https://github.com/MetaMask/MetaMask-planning/issues/1758)
    
    ## **Manual testing steps**
    
    
    
    1. Add this custom network: https://base.drpc.org with chainId 8453
    2. Trigger a transaction from the test dapp -- see error
    3. For warning, you can edit the code to return a warning alert response
    and see the warning.
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    <img width="353" alt="Screenshot 2024-04-15 at 22 37 08"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/2572b1a5-233d-4e7e-83c3-5ea92faef362">
    
    
    ### **After**
    
    <img width="337" alt="Screenshot 2024-04-15 at 22 36 21"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/1e4ec760-3714-4a91-9e5b-e39784887354">
    
    
    ## **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.
    segun committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    b373f16 View commit details
    Browse the repository at this point in the history
  5. fix: Gas Estimation failure displays 2 duplicated Warnings (#23886)

    <!--
    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/23886?quickstart=1)
    
    When there is a gas estimation failure, show only one gas warning on the
    confirmation screen. If the user proceeds to continue, show the gas
    component.
    
    ## **Related issues**
    
    Fixes: #17866 
    
    ## **Manual testing steps**
    
    1. Go to etherscan
    https://etherscan.io/address/0xe592427a0aece92de3edee1f18e0157c05861564/advanced#writeContract
    2. Connect your MM acount
    3. Click selfPermit
    4. Fill it with values (0x, 0x for r and s)
    5. Click Write
    6. Should not see duplicated warnings
    
    ## **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/29962968/9fbee4e0-866b-4031-906e-ba2519163b3d
    
    
    
    ### **After**
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/29962968/c9e54305-e03f-42b0-923f-f8e4c641ab69
    
    
    
    ## **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.
    blackdevelopa committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    9a7c113 View commit details
    Browse the repository at this point in the history
  6. refactor: Extract BlockaidUnavailableBannerAlert component (#24045)

    <!--
    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**
    
    Refactors the banner alert logic by extracting it to a separate
    component. No user-facing functionality changes. The e2e tests in
    `test/e2e/tests/ppom/migrate-opensea-to-blockaid-banner.spec.js` ensure
    no regressions.
    
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24045?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23906
    
    ## **Manual testing steps**
    
    1. Checkout the extension on a commit prior to #23546 (for example,
    `112b155d59`)
    2. Build the app and open metamask
    3. Select security alerts by open sea
    
    <img width="577" alt="Screenshot 2024-03-27 at 11 01 38"
    src="https://github.com/MetaMask/metamask-extension/assets/13814744/7f732e93-d772-432a-85b5-87c95ccbdc53">
    
    
    4. Checkout this branch, build and reload on the managing extensions
    page
    5. Switch to Linea Goerli, or another network that is not currently
    supported by blockaid
    6. Open the testdApp and trigger a new confirmation
    7. The Banner Alert should show up
    
    ## **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
    - [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**
    
    - [x] 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.
    pedronfigueiredo committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    e129408 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3ba6cd4 View commit details
    Browse the repository at this point in the history
  8. feat: Show simulation details on the Smart Transactions status page f…

    …or native balance changes (#24075)
    
    ## **Description**
    Show simulation details on the Smart Transactions status page for native
    balance changes, e.g. when using the Send feature. This PR also includes
    a class name fix.
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Enable Smart Transactions
    2. Try to use the Send feature on Sepolia testnet
    3. See that it shows the Simulation Details section on the Smart
    Transactions status page
    
    ## **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.
    dan437 committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    abc2295 View commit details
    Browse the repository at this point in the history
  9. chore: updates mmi package to latest version (#24073)

    <!--
    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 package version: rpc-allowlist
    
    ## **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.
    zone-live committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    1134d5f View commit details
    Browse the repository at this point in the history
  10. fix(mv3): fix file paths passed to app-init.js (#24059)

    ## **Description**
    
    Prior to this PR, the extension is stuck in a loading state when create
    an mv3 dev build and attempt to load it. This error can be seen in the
    console:
    
    ![Screenshot from 2024-04-16
    12-23-35](https://github.com/MetaMask/metamask-extension/assets/7499938/0bb7fb5d-fdf4-4604-b045-a41011d6966b)
    
    
    The problem was introduced in
    #23672
    
    That PR has the following in the description:
    
    > ...The manifest file sometimes references files using a path relative
    to both the repo and the bundled extension (background.html and
    popup.html) and sometimes it doesn't (inpage.js lives in the scripts
    folder).
    > This PR makes the paths relative to the repo (and the bundled
    extension).
    
    The problem is with the file paths passed to `importScripts` in
    `app-init.js`. The docs for for `importScripts` say that the path
    parameter is `A string value representing the URL of the script to be
    imported. The URL may be absolute or relative. If the URL is relative,
    it is relative to the HTML document's base URL.`
    
    Prior to this PR, the file paths were not "relative to the HTML
    document's base URL". This PR corrects that.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24059?quickstart=1)
    
    ## **Related issues**
    
    Fixes MetaMask/MetaMask-planning#2374. 
    
    ## **Manual testing steps**
    
    1. `yarn start:mv3`
    2. Install the extension
    3. You should be able to open and use the extension UI
    
    ## **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).
    - [ ] 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.
    danjm committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    387216c View commit details
    Browse the repository at this point in the history
  11. fix(mv3): use correct file paths in mv3 test builds (#24060)

    ## **Description**
    
    Prior to this PR, `yarn start:test:mv3` would fail. The error was:
    
    ![Screenshot from 2024-04-16
    13-33-01](https://github.com/MetaMask/metamask-extension/assets/7499938/faec8f91-282d-4aea-a89b-dee6dbc5b3e0)
    
    The problem was introduced in
    #23672
    
    That PR has the following in the description:
    
    ...The manifest file sometimes references files using a path relative to
    both the repo and the bundled extension (background.html and popup.html)
    and sometimes it doesn't (inpage.js lives in the scripts folder).
    This PR makes the paths relative to the repo (and the bundled
    extension).
    
    The problem is that there were two instances of the file paths that were
    not updated. Those instances only applied to mv3 test builds. This PR
    updates those instances.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24060?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2378
    
    ## **Manual testing steps**
    
    1. `yarn start:test:mv3` should successfully create a build
    
    ## **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
    - [ ] 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.
    danjm committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    915aa5b View commit details
    Browse the repository at this point in the history
  12. fix: Intl.NumberFormat locale RangeError related to Simulation Details (

    #24068)
    
    ## **Description**
    **Problem:** The locale returned by `getCurrentLocale` is not meant to
    be used with the [Intl
    API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl).
    
    **To fix this, this PR will:**
    * Rename `getCurrentLocale` => `getLocaleNotSafeForIntl` to alert
    developers in the future.
    * Add `getIntlLocale` which converts the locale returned from
    `getLocaleNotSafeForIntl` into a BCP 47 Language Tag which can be used
    with the Intl API.
    * Add tests to ensure that `getIntlLocale` works with all our locales
    going forward.
    
    <!--
    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/24068?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #24067
    
    ## **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.
    dbrans committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    15fc955 View commit details
    Browse the repository at this point in the history
  13. fix: replace last usages of legacy gas fee polling with polling by ne…

    …tworkClientId (#24065)
    
    <!--
    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**
    
    #23010 made initial
    changes to replace the GasFeeController's legacy gas fee polling in
    favor of polling via networkClientId. It was discovered that there are
    still lingering instances of the legacy gas fee polling which were
    causing double polling to occur since the legacy and networkClientId
    based polling run on separate loops. This PR fixes this by replacing
    those remaining legacy gas fee polling usages.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24065?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23010
    
    ## **Manual testing steps**
    
    1. Open background console -> Network tab
    2. Open Extension Popup -> send -> enter address and amount -> next
    3. Background console network tab should now start showing one single
    network request every 10s to the gas api endpoint
    
    
    ## **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).
    - [x] 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
    - [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 <adonesky@gmail.com>
    jiexi and adonesky1 committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    5f67907 View commit details
    Browse the repository at this point in the history
  14. Zb/update queued request controller (#24061)

    <!--
    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 PR updates the queued request controller to version 0.8.0 - which
    includes fixes for request queue flushing. See [here for more
    details](https://github.com/MetaMask/core/blob/main/packages/queued-request-controller/CHANGELOG.md#080)
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24061?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    Scenario 1:
    1. from dapp 1, call switchEthereumChain, minimize the confirmation
    1. from dapp 2, call sendTransaction, minimize the confirmation
    1. from dapp 1, call sendTransaction
    1. accept the first switchEthereumChain dialog
    1. reject the sendTransaction for dapp 2
    1. there should be no remaining confirmations.
    
    Scenario 2:
    1. from a dapp, call sendTransaction, minimize the confirmation
    1. from the same dapp, call wallet_revokePermissions
    1. the confirmation should be cleared (i.e. you should not have any
    pending confirmations)
    
    ## **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.
    
    Co-authored-by: Alex Donesky <adonesky@gmail.com>
    BelfordZ and adonesky1 committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    c90eab7 View commit details
    Browse the repository at this point in the history
  15. fix: Fix back navigation from connected accounts (#24085)

    <!--
    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**
    
    When clicking the Back button on Connected accounts, the navigation
    should take to the previous screen, and not to Metamask's home page
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24084?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Go to Connections page
    2. When clicking back, it should take you to the previous screen, not to
    MetaMask's home
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    <!-- [screenshots/recordings] -->
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/11148144/674f7aa7-972f-4c73-bd50-dffaad6a7c07
    
    
    
    
    ## **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.
    jonybur committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    d5facf9 View commit details
    Browse the repository at this point in the history
  16. fix: Deduplicate accounts in addMorePermittedAccounts() (#24057)

    The `addMorePermittedAccounts()` background API method is used to
    manually connect multiple accounts at once to an unconnected dapp. While
    we do not currently permit the possibility of passing already-permitted
    accounts to this method, it is inappropriate for a permissions-related
    method to include no defensive measures against being sent bad data.
    
    Consequently, this PR ensures that accounts added via
    `addMorePermittedAccounts()` are deduplicated, and the method ignores
    any already-permitted accounts, returning early if no unpermitted
    accounts are added. Also adds tests for the method, which was previously
    completely untested.
    rekmarks committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    1aab1f8 View commit details
    Browse the repository at this point in the history
  17. test: [E2E] edit account name (#23712)

    ## **Description**
    
    Adds e2e coverage for editing the account name, where there was
    previously none.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23712?quickstart=1)
    
    ## **Related issues**
    
    Fixes: [313](MetaMask/accounts-planning#313)
    
    ## **Manual testing steps**
    
    1. `yarn test:e2e:single test/e2e/accounts/account-custom-name.spec.ts
    --browser=chrome --debug --leave-running` and `yarn test:e2e:single
    test/e2e/accounts/account-custom-name.spec.ts --browser=firefox --debug
    --leave-running`
    
    
    ## **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
    - [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.
    plasmacorral committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    8003830 View commit details
    Browse the repository at this point in the history
  18. fix(deps): @solana/web3.js 1.91.6 (#24094)

    <!--
    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 CVE-2024-30253 / GHSA-8m45-2rjm-j347 and failing deps-audit CI
    job.
    
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24094?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 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.
    legobeat committed Apr 17, 2024
    Configuration menu
    Copy the full SHA
    b1cbcfa View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. fix: updated connections page to use getPermittedAccountsForSelectedT…

    …ab (#24092)
    
    Since SubjectMetadata is not reliable, to get the connected status we
    updated the code in this PR
    [24022](#24022) to
    use getPermittedAccountsForCurrentTab to get the connected accounts, but
    this is always dependent on activeTabOrigin and to access it based on
    the different permissions we are updating it to use
    getPermittedAccountsForSelectedTab
    
    ## **Related issues**
    
    Fixes: #24066 
    
    ## **Manual testing steps**
    
    1. Run extension with Multichain
    2. Go to Permissions Page after connecting extension with different
    dapps
    3. Check the accounts are listed on connections Page
    
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/3f6995a0-e8c0-4506-83af-5c1256ad8f84
    
    
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/536d75c6-c0dd-4906-b339-e95cddfe926d
    
    
    
    ## **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.
    NidhiKJha committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    af2647e View commit details
    Browse the repository at this point in the history
  2. fix: fix migration 105 to recover from undefined selected address (#2…

    …3974)
    
    ## **Description**
    
    This pull request fixes the selectedAddress migration issue where the
    selectedAddress is not a string when migrating to internal accounts. In
    this broken state, the first identity would then be used for the
    `selectedInternalAccount` and `selectedAddress`
    
    ## **Related issues**
    
    Fixes: [383](MetaMask/accounts-planning#383)
    
    ## **Manual testing steps**
    
    1 . Comment out all the migrations from 105 and onwards.
    2. Reinstall the extension and create 2 accounts, and select the second
    account. Dump the metamask state and see that the second account is the
    selectedAddress
    3. In migration 105, force the selectedAddress to be undefined.
    4. Uncomment the migrations
    5. Restart the extension, see that the selectedAddress is now the first
    account
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    ### **After**
    
    ## **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
    - [ ] 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.
    montelaidev committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    b12c5d3 View commit details
    Browse the repository at this point in the history
  3. feat: Removed product tour from home page (#24051)

    This PR is to remove product tour from home page
    
    ## **Related issues**
    
    Fixes: #24058 
    
    ## **Manual testing steps**
    
    1. Install fresh extension dev build
    2. switch to popup view
    3. Check there is no product tour on homepage
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/4fbcec7d-5644-4d04-bda6-2ffaedeb1b97
    
    
    ### **After**
    
    
    https://github.com/MetaMask/metamask-extension/assets/39872794/008c4707-1ecc-4686-882d-2daa9e3a3bdf
    
    
    ## **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.
    NidhiKJha committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    0b2b202 View commit details
    Browse the repository at this point in the history
  4. fix: Prevent HD keyring from being removed (#24096)

    ## **Description**
    
    A patch has been added for the `@metamask/keyring-controller` package
    that will prevent the HD keyring from being removed. This is a
    precautionary change, see
    MetaMask/mobile-planning#1507 for additional
    details.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24096?quickstart=1)
    
    ## **Related issues**
    
    This is a port of this PR: MetaMask/core#4168
    Here is the same patch on mobile:
    MetaMask/metamask-mobile#9092
    
    ## **Manual testing steps**
    
    This is a precaution against a bug that probably does not exist. We
    don't have reproduction steps.
    
    However, here are some use cases related to this area of code, which we
    can test to ensure nothing has broken:
    * Lock and unlock the wallet
    * Restart the extension then unlock it again
    * Add a new account, lock the wallet, restart the extension, then check
    to ensure the new account is still present.
    
    ## **Screenshots/Recordings**
    
    N/A
    
    ## **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.
    Gudahtt committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    e6428f8 View commit details
    Browse the repository at this point in the history
  5. ci: add create-cherry-pick-pr github action (#24074)

    <!--
    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 adds a github action for creating cherry pick commits, similarly
    as Mobile does. With this action we can pass the following arguments:
    - target branch to merge the cherry-pick
    - commit to cherry-pick
    - PR # associated with the cherry-pick
    
    
    
    Reference: this PR is based on Seth's PR for Mobile
    MetaMask/metamask-mobile@7e68812
    
    You can see how this works in Mobile:
    
    1. Go to
    https://github.com/MetaMask/metamask-mobile/actions/workflows/create-cherry-pick-pr.yml
    2. Click Run Workflow
    3. Add the target RC branch, the commit to cherry-pick and the PR number
    4. You'll get a new branch with the cherry-pick (example of cherry-pick
    from the github action
    [here](MetaMask/metamask-mobile#9265))
    
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Go to this page...
    2.
    3.
    
    ## **Screenshots/Recordings**
    Once this is merged, we'll be able to trigger the Cherry Pick Commit
    action:
    
    ![Screenshot from 2024-04-17
    10-17-16](https://github.com/MetaMask/metamask-extension/assets/54408225/16d048d5-63a3-4f5e-a37c-f425b5c35bd5)
    
    
    ## **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.
    seaona committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    c45bc6b View commit details
    Browse the repository at this point in the history
  6. fix: Disable button in case all accounts are connected (#24084)

    <!--
    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**
    
    When there are no accounts to connect the Connect more accounts button
    on the screen should be disabled rather than showing an empty modal
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24084?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Go to Connections page
    2. After connecting all accounts, try adding more, the button to Connect
    more accounts should be disabled
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    <!-- [screenshots/recordings] -->
    
    ### **After**
    
    <img width="362" alt="Screenshot 2024-04-17 at 16 28 15"
    src="https://github.com/MetaMask/metamask-extension/assets/11148144/07678250-3e3d-4485-9f46-ce144aa92835">
    
    ## **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: NidhiKJha <menidhikjha@gmail.com>
    Co-authored-by: David Walsh <davidwalsh83@gmail.com>
    Co-authored-by: Nidhi Kumari <nidhi.kumari@consensys.net>
    4 people committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    1cf139e View commit details
    Browse the repository at this point in the history
  7. chore: bump-metamask-controllers-util-to-9.1.0 (#24107)

    <!--
    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**
    
    Bumps controller-utils to latest controller-utils
    [v9.1.0](https://github.com/MetaMask/core/blob/main/packages/controller-utils/CHANGELOG.md#910)
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24107?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2278
    Relates to: https://github.com/MetaMask/core/pull/4153/files
    
    ## **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.
    digiwand committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    02a3892 View commit details
    Browse the repository at this point in the history
  8. chore: MMI adds SRP screen during onboarding (#24080)

    <!--
    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**
    
    In MMI we want to add this "reminder" screen during onboarding in order
    for the user to check/view his seed phrase and be aware of it, when
    creates a new account.
    
    ![Screenshot 2024-04-17 at 15 26
    38](https://github.com/MetaMask/metamask-extension/assets/1125631/815d2acf-3b37-4bf6-b51c-c78c2c78f173)
    
    
    ## **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.
    zone-live committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    5a48751 View commit details
    Browse the repository at this point in the history
  9. fix: Use cached version of 'chrome' in app-init.js (#24103)

    ## **Description**
    
    When loading a prod mv3 build, we observed that a majority of the time,
    the offscreen document would not be created. In those case, we saw the
    following error in the service worker console:
    
    ```
    runtime-lavamoat.js:13190
    Uncaught Error: LavaMoat - property "chrome" of globalThis is inaccessible under scuttling mode. To learn more visit LavaMoat/LavaMoat#360.
      at Object.get (runtime-lavamoat.js:13190:11)
      at app-init.js:1:1766
    get	@	runtime-lavamoat.js:13190
    (anonymous)	@	app-init.js:1
    ```
    
    Which comes from this code in `app-init.js`:
    ```
    async function createOffscreen() {
      if (await chrome.offscreen.hasDocument()) {
        return;
      }
    
      await chrome.offscreen.createDocument({
        url: './offscreen.html',
        reasons: ['IFRAME_SCRIPTING'],
        justification:
          'Used for Hardware Wallet and Snaps scripts to communicate with the extension.',
      });
    
      console.debug('Offscreen iframe loaded');
    }
    ```
    
    The solution is to cache a version of chrome before it has been
    scuttled.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24103?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. `yarn dist:mv3`
    2. Install at chrome://extensions
    3. A second or so after the service worker is created, the offscreen
    document should be created.
    4. Reload the extension 10 times, the offscreen document should be
    created every time
    
    ## **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
    - [ ] 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.
    danjm committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    d130cde View commit details
    Browse the repository at this point in the history
  10. fix: simulation details should show fiat values for most erc20 tokens (

    …#24086)
    
    ## **Description**
    Previously, SimulationDetails only showed fiat rates for erc20 tokens
    that were already in the user's wallet.
    With this PR, SimulationDetails component will fetch the token fiat
    rates for all erc20 tokens involved in a transaction simulation.
    
    <!--
    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/24086?quickstart=1)
    
    ## **Related issues**
    
    Fixes:MetaMask/MetaMask-planning#2361
    
    ## **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**
    
    
    ![image](https://github.com/MetaMask/metamask-extension/assets/507015/35cbb7f0-47a9-488e-9ae5-df8e80a11f3b)
    
    ### **After**
    
    
    ![image](https://github.com/MetaMask/metamask-extension/assets/507015/13d12bb3-2d23-4982-91d1-d39d3b66b03a)
    
    ## **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.
    dbrans committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    50310db View commit details
    Browse the repository at this point in the history
  11. chore: replace static hex with design tokens in toggle button (#24090)

    ## **Description**
    
    This PR focuses on aligning the `ToggleButton` component with our design
    system, specifically by removing static hex color values and replacing
    them with design token-aligned theme classnames. The motivation behind
    this change is to enhance the consistency and maintainability of our UI
    components, ensuring they adhere to the established design principles
    and facilitate easier theming and updates. By leveraging design tokens
    for color definitions, we also aim to improve accessibility and ensure a
    cohesive visual experience across the MetaMask extension.
    
    [Component in
    extension](https://metamask.github.io/metamask-storybook/?path=/docs/components-ui-togglebutton--docs)
    
    <img width="284" alt="Screenshot 2024-04-17 at 10 02 37 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/650d8e56-8ece-4f4e-8744-a7ef7f472693"><img
    width="276" alt="Screenshot 2024-04-17 at 10 02 35 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/b8e67505-31c1-461b-9da8-b33ce29d5e38">
    <img width="219" alt="Screenshot 2024-04-17 at 10 06 48 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/a52507f9-3696-451f-94d8-9575564aea1b"><img
    width="212" alt="Screenshot 2024-04-17 at 10 06 51 AM"
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/ee7c1923-f5e7-4601-887d-16ed020b0014">
    
    [Component in
    Figma](https://www.figma.com/file/HKpPKij9V3TpsyMV1TpV7C/DS-Components?type=design&node-id=3336%3A19056&mode=dev)
    
    <img
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/4e248649-2be0-43e4-958c-39a47a4371a1"
    width="300" /><img
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/92eb0f88-5a85-4beb-8bdb-75189e41608d"
    width="300" />
    
    
    <img
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/c039de9d-3d99-40a0-aaa0-e6dac15ecbcd"
    width="300" /><img
    src="https://github.com/MetaMask/metamask-extension/assets/8112138/b430887f-fc9c-4e5f-8dc8-d490676f47c3"
    width="300" />
    
    
    ## **Related issues**
    
    Related: #20154
    
    ## **Manual testing steps**
    
    To ensure the successful integration of design token colors in the
    `ToggleButton`:
    1. In storybook navigate to the `ToggleButton` or in the extension go to
    "Settings > Advanced Settings"
    2. Toggle the button to observe its active and inactive states.
    3. Verify that the colors used in both states align with the design
    system's color palette and that there are no visual regressions.
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    Storybook before changes
    
    
    https://github.com/MetaMask/metamask-extension/assets/8112138/94f0ec77-7b94-4b70-ba7c-f9968ad7efca
    
    App before changes
    
    
    https://github.com/MetaMask/metamask-extension/assets/8112138/4d9e51c9-d72d-45ce-8798-c1106abd3c76
    
    ### **After**
    
    Storybook after changes
    
    
    https://github.com/MetaMask/metamask-extension/assets/8112138/4b904020-356a-40c3-9b86-fe38a586d2dd
    
    App after changes
    
    
    https://github.com/MetaMask/metamask-extension/assets/8112138/b20f68a4-9764-43b1-ac9c-ef43f5720bd6
    
    ## **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**
    
    - [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.
    georgewrmarshall committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    d11f03b View commit details
    Browse the repository at this point in the history
  12. fix: remove identities and use internal accounts (#23597)

    ## **Description**
    
    Currently on the extension, both the preferences controller and the
    accounts controller are being used concurrently, as part of the
    migration, the identities will be removed in favour of internal
    accounts.
    
    This PR removes the references of identities from the UI of the
    extension and replaces it with `InternalAccounts` as part of the
    migration to the usage of InternalAccounts from the AccountsController.
    
    ## **Related issues**
    
    Fixes: [334](MetaMask/accounts-planning#334)
    
    ## **Manual testing steps**
    
    1. Add new accounts and check the state of the extension if the new
    account is selected.
    2. Switch accounts and check the state of the extension if the new
    account is selected.
    3. Rename accounts and check if the name in the InternalAccount has been
    changed.
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    ### **After**
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [] I've included screenshots/recordings if applicable
    - [ ] 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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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 <metamaskbot@users.noreply.github.com>
    montelaidev and metamaskbot committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    553327c View commit details
    Browse the repository at this point in the history
  13. fix(offscreen): Fix error loading offscreen document in prod (#24083)

    ## **Description**
    There was an error with the offscreen document, thus all snaps and
    hardware wallets, in production mv3 builds because of some strange
    interaction with loading the offscreen document with an iframe already
    attached to it. In addition this seems to have hidden some policy issues
    which this PR also resolves. The solution was to load the iframe
    dynamically instead of having it as part of the offscreen.html file.
    This is the same thing that snaps does and I Have validated that ledger
    and snaps both work in this branch using `yarn dist:mv3`
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24083?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. Pull this branch
    2. run `yarn`
    3. run `yarn dist:mv3`
    4. Install the built extension and go to
    https://metamask.github.io/snaps/test-snaps/2.4.0/
    5. Install a snap and validate that it works. 
    
    ## **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**
    
    - [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: MetaMask Bot <metamaskbot@users.noreply.github.com>
    brad-decker and metamaskbot committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    a40f06f View commit details
    Browse the repository at this point in the history
  14. fix: simulation erc20 decimals error (#24116)

    ## **Description**
    Previously the simulation code assumed that `getTokenStandardAndDetails`
    returns undefined when it cannot determine the decimals for a contract.
    
    This PR surrounds the call to `getTokenStandardAndDetails` in a try /
    catch and, if it fails, returns the default ERC20 decimals.
    
    <!--
    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/24116?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2388
    
    ## **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.
    dbrans committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    e83d28b View commit details
    Browse the repository at this point in the history
  15. feat: set token autodetection to true for new … (#23700)

    <!--
    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 aim to enable the tokens and NFT Auto-Detect features by default for
    all new users on mobile . This enhancement will automatically populate
    users' wallets with relevant tokens and NFTs without requiring manual
    setup.
    
    ## **Related issues**
    
    Fixes: 
    
    ## **Manual testing steps**
    
    1. Install a fresh app
    2. go to the NFTs tab
    3. you should see the list of your NFTs
    4. you should see the list of your tokens
    
    ## **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-mobile/blob/main/.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-mobile/blob/main/.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.
    salimtb committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    9b38cf5 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Configuration menu
    Copy the full SHA
    6f847f0 View commit details
    Browse the repository at this point in the history
  2. fix: regex in stripOneLayerofNesting (#23372)

    ## **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/23372?quickstart=1)
    
    ## **Related issues**
    
    Fixes: Inefficient regex
    
    ## **Manual testing steps**
    
    tests should pass
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [x] I've included screenshots/recordings if applicable
    - [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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [x] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    witmicko committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    4ffb752 View commit details
    Browse the repository at this point in the history
  3. feat: set default 4337 entrypoint in flask (#24124)

    ## **Description**
    
    This PR adds a default value for the `EIP_4337_ENTRYPOINT` in flask
    
    ## **Related issues**
    
    ## **Manual testing steps**
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    ### **After**
    
    ## **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
    - [ ] 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.
    montelaidev committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    ef982c4 View commit details
    Browse the repository at this point in the history
  4. fix: ensure ppom works on mv3 builds (#24115)

    ## **Description**
    
    This PR fixes ppom/blockaid on mv3 builds. There were two separate
    problems to fix:
    1. The content_security_policy in the manifest needed to be updated to
    include `'wasm-unsafe-eval'`, as is done in the MV2 manifest.
    2. The `input = fetch(input);` call in `__wbg_init` in
    `app/scripts/lib/ppom/ppom.js` was being called with the file path
    `./ppom_bg.wasm`. However, `app-init.js` has recently been moved inside
    of the `scripts` directory within the build (i.e. within the dist and
    build directories), so the path to fetch, from within the mv3 service
    worker, would have to be `../ppom_bg.wasm`. The fix is to move the
    ppom_bg.wasm file into the `scripts` directory as well, when building
    for mv3.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24115?quickstart=1)
    
    ## **Related issues**
    
    Fixes:  MetaMask/MetaMask-planning#2377
    
    ## **Manual testing steps**
    
    1. `yarn dist:mv3`
    2. Install with an account that has enough mainnet eth to send a
    transaction (you don't actually need to send one, you just need to
    create one and can then reject it)
    3. Go to https://metamask.github.io/test-dapp/
    4. Connect and then click "Malicious Eth Transfer"
    5. You should see a blockaid warning
    
    ## **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.
    danjm committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    7953710 View commit details
    Browse the repository at this point in the history
  5. fix: add patch for fetching tokenURI for ERC404 (#24029)

    ## **Description**
    
    We have been contacted about an NFT on linea mainnet that was not
    showing properly on MM.
    There is this core PR that has been merged to fix fetch behavior for
    ERC404: MetaMask/core#4136
    
    This PR adds a patch for the core fix.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24029?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    Related: MetaMask/core#4136
    
    ## **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] -->
    
    
    https://github.com/MetaMask/metamask-extension/assets/10994169/cea457c3-87f2-4157-9efb-2ebc69176ac0
    
    
    ### **After**
    
    <!-- [screenshots/recordings] -->
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/10994169/783d4292-c2c0-4ea9-9c7d-59dde88b4b3d
    
    
    ## **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.
    sahar-fehri committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    af50f46 View commit details
    Browse the repository at this point in the history
  6. feat: Confirmation redesign - Remove the scheme ("https://","http://"…

    …) from the InfoRowUrl value (#24105)
    
    ## **Description**
    
    Remove the scheme ("https://","http://") from the InfoRowUrl value. If
    the URL displayed is "HTTP" it is shown as a label to the left of the
    text value. There is no need to display the scheme of the URL text
    value.
    
    Figma:
    https://www.figma.com/file/7kYok9B46ohR6h47cksRAz/Confirmation-redesign-V1?type=design&node-id=1735-8556&mode=design&t=6PRcdkYIuz1RF6ek-0
    Storybook Prod:
    https://metamask.github.io/metamask-storybook/?path=/docs/components-app-confirm-inforowurl--docs
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24105?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23968 
    
    ## **Manual testing steps**
    
    1. Enable conf redesign in .metamaskrc (ENABLE_CONFIRMATION_REDESIGN=1)
    2. Run metamask
    3. Open an http url
    4. Type the code below in the console
    5. You should see the HTTP label
    6. Open testdapp and click on Personal Sign
    7. You should not see the HTTP label
    
    ```
    ethereum.request({
      method: 'wallet_requestPermissions',
      params: [{ eth_accounts: {} }],
    });
    
    
    const msg = "Hello World".toString('hex');
    
    const from = [the connected account]
    
    ethereum.request({
      method: 'personal_sign',
      params: [msg, from, 'Example password'],
    });
    ```
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    <img width="365" alt="Screenshot 2024-04-18 at 11 08 12"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/ff054fb6-4700-4e4b-84ac-51b4de752d46">
    
    
    ### **After**
    
    <img width="363" alt="Screenshot 2024-04-18 at 11 14 27"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/5b0c0885-eba3-4ac3-8507-31d1f47d1c8d">
    
    <img width="365" alt="Screenshot 2024-04-18 at 11 15 00"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/9e7c72aa-b310-4021-b5f5-d5a4b0eb3085">
    
    
    ## **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.
    segun committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    834e0c8 View commit details
    Browse the repository at this point in the history
  7. fix: Updated the script to generate commits in the release (#23914)

    ## **Description**
    
    This PR is to updated the existing script to generate commits in the
    release. I enhanced author attribution list, tagged labels with release
    version, and filtered out specific commit message like 'Changelog' or
    'Merge pull request' or 'master-sync' .
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23914?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    Provide your github token in the development/generate-rc-commits.js
    Provide the below command in the terminal and the cvs file is generated
    node development/generate-rc-commits.js origin/Version-v11.14.0
    origin/Version-v11.13.0
    
    ## **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.
    hjetpoluru committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    e1beee1 View commit details
    Browse the repository at this point in the history
  8. feat: display layer 1 gas fees on scroll network (#23991)

    Update the `TransactionController` to automatically populate the `layer1GasFee` when creating transactions on Scroll networks.
    Remove the knowledge of layer 2 networks from the UI by replacing conditional rendering via the `getIsMultiLayerFeeNetwork` selector, with simply checking for the presence of a layer 1 gas fee in the `TransactionMeta` or from the action.
    matthewwalsh0 committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    b3750d4 View commit details
    Browse the repository at this point in the history
  9. feat: add Signature Redesign "Account Details Opened" event (#24095)

    <!--
    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 "Account Details Opened" event when Account Info Icon in
    Confirmation Redesign is clicked
    
    Internal Thread
    https://consensys.slack.com/archives/C03ETQA9EPK/p1710437328642929
    Event Description
    https://www.notion.so/Account-Details-Opened-3deec398d4784bcea00b012cdf1cde03?pvs=4
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24095?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23555
    
    ## **Manual testing steps**
    
    
    
    1. set `
    ENABLE_CONFIRMATION_REDESIGN=true` in .metamaskrc
    2. Turn on MetaMetrics in settings
    3. Use test-dapp to test feature in a signature confirmation
    
    ## **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.
    digiwand committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    15ad0b2 View commit details
    Browse the repository at this point in the history
  10. test: UX: Multichain: Add E2E for RPC queueing UI (#24070)

    ## **Description**
    
    This PR adds a test for the Multichain RPC queueing, ensuring that the
    per-dapp network preference properly changes the global network
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24070?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#1779
    
    ## **Manual testing steps**
    
    1. N/A, this is an E2E, it should just pass
    
    ## **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**
    
    - [ ] 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.
    darkwing committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    e0ecf74 View commit details
    Browse the repository at this point in the history
  11. test: add scenario 'Cancel transaction by sending subsequent transact…

    …ion with the same nonce' (#23872)
    
    <!--
    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**
    
    In this PR we add the scenario for the flow 'Cancel transaction by
    sending subsequent transaction with the same nonce'.
    This task belongs to the effort of documenting manual QA flows in this
    [Epic](#21962).
    
    User flow summary:
    
    - create 'Send' transaction nonce with very low gas fees
    - send the next transaction with the 0 value and previous nonce to
    yourself to cancel the first transaction
    - validate that the first transaction is cancelled
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23872?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    [23830](#23830)
    
    ## **Manual testing steps**
    
    1. Verify that the test steps align with the sequence in the video.
    2. You can find rendered table
    [here](https://github.com/MetaMask/metamask-extension/blob/57c1f2861fc70a00da97d1c778fd66ddf774e7ae/test/scenarios/3.%20transactions/cancel%20transaction%20using%20same%20nonce.csv).
    
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/104780023/efc7e4bf-d946-4735-bd90-d21556d487b3
    
    
    ### **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.
    sleepytanya committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    45d8425 View commit details
    Browse the repository at this point in the history
  12. feat: Change RPC Method Middleware default rate limit to random sampl…

    …ing and add global rate limit (#23257)
    
    ## **Description**
    
    The existing rate limit system in the RPC Method Tracking Middleware was
    created with the goal of determining which RPC methods were no longer
    used (i.e. when can we drop eth_sign). This is not random sampling.
    Currently by default, any methods not explicitly listed are rate
    limited. This means that for the unlisted methods (i.e. non eth_sign),
    we also will only record the first usage every 5 minutes. This biases
    our dataset by under representing the most used methods and over
    representing the least used.
    
    Our goal is to get broad insights, for which we are not 100% sure what
    we want to determine yet. This requires random sampling. It may make
    more sense (and be more accurate!) to use Math.random() as a rate
    limiter that does not bias by the individual method. This PR achieves
    that by adding a new random sample rate which is used by default instead
    of timeout based rate limiting in the RPC method tracking middleware.
    
    We also want to make sure we don't track more events that we do with our
    current rate limiting strategy. To address that, I have added an
    additional global rate limit (shared across all methods) that applies
    after the first rate limit strategy.
    
    Finally, we add `eth_chainId`, `eth_accounts`, and
    `metamask_logWeb3ShimUsage` to the blocked list which are noisy events
    that provide us no valuable insights. These 3 events make up about half
    our tracked rpc method events.
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2168
    
    ## **Manual testing steps**
    
    Testing rate sampling
    1. Opt into MetaMetrics in the wallet settings
    1. Open your the background console for extension
    1. Add a breakpoint for trackEvent inside
    `createRPCMethodTrackingMiddleware.js`
    1. On any page with a provider injected, use `window.ethereum.request`
    to make some rpc method calls that are sampled. I suggest spamming
    `eth_blockNumber`
    1. Check background console for breakpoint trigger. The current sample
    percentage is 0.1%, so you may have to spam eth_blockNumber for quite
    some time.
    
    Testing global rate limiting
    1. Opt into MetaMetrics in the wallet settings
    1. Open your the background console for extension
    1. Add a breakpoint for trackEvent inside
    `createRPCMethodTrackingMiddleware.js`
    1. On any page with a provider injected, use `window.ethereum.request`
    to make some rpc method calls that not rate limited. I suggest using
    `eth_signTypedData_v4` which is most easily triggerable from the [test
    dapp](https://metamask.github.io/test-dapp/).
    1. Check background console for breakpoint trigger. It should only fire
    10 times within 5 minutes of the first request being tracked. After
    which method calls will not be tracked until additional head room is
    unlocked as 5 minutes pass since each previous tracked method call.
    
    NOTE: I recommend breakpoint and debugger over the network tab because I
    don't believe the tracking requests actually fire on dev.
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [ ] I've included screenshots/recordings if applicable
    - [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.
    - [x] I’ve properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [x] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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 <adonesky@gmail.com>
    jiexi and adonesky1 committed Apr 19, 2024
    Configuration menu
    Copy the full SHA
    649c1c4 View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2024

  1. test: add scenario send transactions with custom nonce (#23714)

    ## **Description**
    
    In this PR we add the scenario for the flow 'Send transactions with
    custom nonce'.
    This task belongs to the effort of documenting manual QA flows in this
    [Epic](#21962).
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23714?quickstart=1)
    User flow summary:
    - validate that 'Customize transaction nonce' settings enable should get
    the appropriate text field for entering nonce.
    - validate that the nonce should be incremented by one.
    - validated that the nonce is reduced and transaction fails due to low
    nonce value.
    
    ## **Related issues**
    
    Fixes:
    [23570](#23570)
    
    ## **Manual testing steps**
    
    1. Verify that the test steps align with the sequence in the video.
    2. You can find rendered table
    [here](https://github.com/MetaMask/metamask-extension/blob/710741dff8ba9698b76b637b383c2237d03f2983/test/scenarios/3.%20transactions/send%20transactions%20with%20custom%20nonce.csv).
    
    ## **Screenshots/Recordings**
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/104780023/e4573f5d-3d51-4c78-8623-cdaf9554879d
    
    Popup notification about failed low nonce transaction:
    <img width="380" alt="Screenshot 2024-03-19 at 7 12 56 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/104780023/a675c163-ead2-4ea6-9bb7-4a1f4f98ce7c">
    
    
    ### **Before**
    
    
    
    ### **After**
    
    
    
    ## **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.
    sleepytanya committed Apr 20, 2024
    Configuration menu
    Copy the full SHA
    985b652 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. chore: MMI enable Sentry logging for mmi build type (#24079)

    <!--
    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**
    
    In MMI we have our own Sentry project with its own DSN key, this key is
    stored in the environment variables with the name `SENTRY_MMI_DSN`, so
    our build type needs to have Sentry pointing to it.
    Also, we have set MetaMetrics OFF by default in MMI, but since we want
    to keep Sentry logging, we need to account for that by checking our
    build type as well and instruct the MetaMetrics check method to be
    always true for MMI.
    
    ## **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.
    
    ---------
    
    Co-authored-by: Albert Olivé <albertolivecorbella@gmail.com>
    zone-live and albertolive committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    b75e313 View commit details
    Browse the repository at this point in the history
  2. feat: notifications - user storage controller (#23353)

    ## **Description**
    
    Followup PR on this:
    #23286
    Allows developers to store synced and protected user information where
    only the user/client can read, write, and access.
    
    This enables Profile Syncing and Notifications.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23353?quickstart=1)
    
    ## **Related issues**
    
    Fixes: N/A
    
    ## **Manual testing steps**
    
    N/A, this controller is unconnected. It will be connected with other
    controllers in followup PRs.
    
    ## **Screenshots/Recordings**
    
    N/A
    
    ### **Before**
    
    N/A
    
    ### **After**
    
    N/A
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [x] I've included screenshots/recordings if applicable
    - [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 properly set the pull request status:
      - [x] In case it's not yet "ready for review", I've set it to "draft".
    - [x] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    Prithpal-Sooriya committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    c370877 View commit details
    Browse the repository at this point in the history
  3. feat: Added e2e for permissions page (#24127)

    This PR is to add e2e for permissions Page
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    1. create a build using Multichain flag
    2. Run the e2e
    
    ## **Screenshots/Recordings**
    
    
    ### **Before**
    
    NA
    ### **After**
    
    No UI changes
    ## **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.
    NidhiKJha committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    f971677 View commit details
    Browse the repository at this point in the history
  4. fix: Fix tooltip distance (#24098)

    <!--
    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 permissions tooltip is not displaying correctly within the connect
    accounts modal. Additionally there should be a 4px spacing between the
    tooltip info icon and the permissions text label.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24098?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23859
    
    ## **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**
    
    <img width="355" alt="Screenshot 2024-04-18 at 03 21 07"
    src="https://github.com/MetaMask/metamask-extension/assets/11148144/11f93d28-074c-4885-ab36-e4347dd0c892">
    
    
    ### **After**
    
    <img width="374" alt="Screenshot 2024-04-18 at 03 13 02"
    src="https://github.com/MetaMask/metamask-extension/assets/11148144/9007d51d-a39d-4b31-9133-9b14d648993b">
    
    
    ## **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: David Walsh <davidwalsh83@gmail.com>
    jonybur and darkwing committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    358f0bb View commit details
    Browse the repository at this point in the history
  5. feat: show tooltip and icon when network is busy (#24104)

    ## **Description**
    Replace "network is busy" warning with a tooltip. This will help clean
    up our current transactions confirmations while the redesign is in the
    works. Whenever the network is busy warning is shown on EIP-1559
    confirmations. This excludes Legacy confirmations.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24104?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    [#2246](https://github.com/MetaMask/MetaMask-planning/issues/2246)
    
    ## **Manual testing steps**
    
    1. Add/Enable Sepolia test network
    2. Open testdapp and perform eip1559 transaction a couple of times till
    the busy icon is shown
    
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    
    <img width="357" alt="Screenshot 2024-04-17 at 13 23 53"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/610e58a5-c05f-4ad7-8dcf-1218de3cabd5">
    
    ### **After**
    
    <img width="359" alt="Screenshot 2024-04-17 at 13 21 56"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/ce6ec437-ccdd-45ba-bd97-1dc99cc3d7b1">
    
    <img width="364" alt="Screenshot 2024-04-18 at 10 46 37"
    src="https://github.com/MetaMask/metamask-extension/assets/44811/bedbb85f-5749-4ea0-8255-df1f98ff3c68">
    
    ## **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.
    segun committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    0e91427 View commit details
    Browse the repository at this point in the history
  6. fix: needs to be always true for MMI (#24163)

    <!--
    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**
    
    Quick fix, it needs to be always true for MMI since we don't rely on
    MetaMetrics.
    Meaning we don't care about the metametrics in order to have sentry
    enabled, so we need to tell sentry that metametrics is on, even if it
    isn't.
    
    ## **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.
    zone-live committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    cc928f6 View commit details
    Browse the repository at this point in the history
  7. Fix #24125 - Maximize AccountPicker space in header (#24139)

    <!--
    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**
    
    @AlexJupiter pointed out a visual regression of the Account Picker. This
    PR maximizes the header space of the AccountPicker such that more of the
    name fits in the space.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24139?quickstart=1)
    
    ## **Related issues**
    
    Fixes:  #24125
    
    ## **Manual testing steps**
    
    1. Open the extension popup
    2. Create and switch to an account name  with many letters 
    3. See more of the account name, centered
    4. Open full screen
    5. Ensure account picker is centered
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    <img width="1173" alt="image"
    src="https://github.com/MetaMask/metamask-extension/assets/7900773/f699f938-58e6-4853-9fc3-b05e8e925525">
    
    
    ### **After**
    
    <img width="374" alt="SCR-20240419-mtbx"
    src="https://github.com/MetaMask/metamask-extension/assets/46655/7772ae80-e050-420c-a7f5-a605e7365e18">
    
    <img width="385" alt="SCR-20240419-mtib"
    src="https://github.com/MetaMask/metamask-extension/assets/46655/d4037093-c3d2-4d6d-a035-e2f79d93ceac">
    
    
    ## **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.
    darkwing committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    6da0723 View commit details
    Browse the repository at this point in the history
  8. feat: Hide the "retry" button for Smart Transactions, show cancelled …

    …STX only for Swaps (#24176)
    
    ## **Description**
    - Hide the "retry" button for Smart Transactions
    - Show cancelled smart transaction only for Swaps in the Activity tab
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    Hide the "retry" button for Smart Transactions
    - Before submitting a non-swap transaction (e.g. Send), set custom gas
    fees super low, so the transaction would fail
    - Submit it
    - Once it gets cancelled, go to the Activity tab and open the
    transaction detail
    - There is no "retry" button if Smart Transactions are enabled
    
    Show cancelled smart transaction only for Swaps in the Activity tab
    - Before submitting a non-swap transaction, set custom gas fees super
    low, so the transaction would fail
    - Submit it
    - Once it gets cancelled, in the Activity tab you will now only see one
    item in the list with the failed transaction (before you could see two
    for the same transaction: "Cancelled" and "Failed", which wasn't needed)
    
    ## **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.
    dan437 committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    b3c8d32 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2024

  1. feat: use Infura gas API (#23717)

    ## **Description**
    
    This PR introduces an updated `GasFeeController` that transitions to the
    new Infura gas API.
    
    Preview `GasFeeController` PR:
    MetaMask/core#4068
    
    **Important Note**: With the introduction of these changes, developers
    must complete two critical steps within their Infura project:
    
    1. Activate the Infura gas API in the Expansion APIs section.
    
    ![infura all-endpoints
    ](https://github.com/MetaMask/metamask-extension/assets/7644512/ec976245-cab5-4b8f-b25d-b5a75f5b381b)
    
    Access this section via
    `https://app.infura.io/key/<INFURA_PROJECT_ID>/all-endpoints`. Please
    replace `<INFURA_PROJECT_ID>` with the project ID found in your
    `.metamaskrc` file.
    
    2. Ensure that the `REQUIRE API KEY SECRET FOR ALL REQUESTS` option is
    disabled.
    
    ![infura
    settings](https://github.com/MetaMask/metamask-extension/assets/7644512/de0a3e1a-767b-468c-b0d5-fc7f393e4841)
    
    Access this section via
    `https://app.infura.io/key/<INFURA_PROJECT_ID>/settings`. Again,
    `<INFURA_PROJECT_ID>` with the project ID found in your `.metamaskrc`
    file.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23717?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2254
    
    ## **Manual testing steps**
    
    Although there are no functional changes, the update to the gas API URL
    warrants manual testing of gas-related components to ensure they remain
    operational.
    
    ## **Screenshots/Recordings**
    
    N/A
    
    ### **Before**
    
    N/A
    
    ### **After**
    
    N/A
    
    ## **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 <metamaskbot@users.noreply.github.com>
    OGPoyraz and metamaskbot committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    3ed1ee1 View commit details
    Browse the repository at this point in the history
  2. chore: add back SENTRY_MMI_DSN build variable (#24190)

    Seems to be needed for forked metamask PRs.
    zone-live committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    b59e899 View commit details
    Browse the repository at this point in the history
  3. fix: adds default empty value (#24192)

    <!--
    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 default empty value.
    
    ## **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.
    zone-live committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    ecf57cc View commit details
    Browse the repository at this point in the history
  4. fix: add migration for stuck transactions (#24027)

    <!--
    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 PR aims to add a migration which sets transaction to `failed`
    status if they are created before 8 December 2023 (release date of
    `TransactionController` migration) and they are still `approved` or
    `signed` status.
    
    The reason of this migration added is that some users had these
    transactions in their MM state and [after recent
    changes](#22676) in
    the confirmation page, the transactions are blocking users to approve
    subsequent transactions.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24027?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #23361
    
    ## **Manual testing steps**
    
    N/A
    
    ## **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
    - [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: Derek Brans <dbrans@gmail.com>
    OGPoyraz and dbrans committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    26ac8d3 View commit details
    Browse the repository at this point in the history
  5. feat: metamask notifications controller (#23393)

    ## **Description**
    
    This PR introduces a new controller for managing two different types of
    notifications:
    
    - feature announcements
    - notifications related to events and actions for the user-managed
    accounts
    
    These notifications are received from two external sources.
    
    The new controller is called `Metamask Notifications Controller` to
    distinguish it from the current `Notification Controller` used to manage
    the internal notifications of the extension.
    
    The `Metamask Notifications Controller` requires two controllers for
    managing and receiving notifications:
    
    - `authorization controller` - responsible for "authenticating" the user
    - `user storage controller` - responsible for the creation and reading
    of the user storage
    
    With the combination of using these two controllers, the user can choose
    whether and which notifications to receive.
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    ## **Screenshots/Recordings**
    
    Check this Figma to have an overview about the flow of the Platform
    Notifications Controller:
    
    [Figma -
    Notifications](https://www.figma.com/file/c7GgNw2kScGrVyRGAPhwEd/Notifications?type=design&node-id=484-44713&mode=design)
    
    ### **Before**
    
    ### **After**
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [ ] I've linked related issues
    - [ ] I've included manual testing steps
    - [ ] I've included screenshots/recordings if applicable
    - [ ] 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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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: Prithpal Sooriya <prithpal.sooriya@consensys.net>
    matteoscurati and Prithpal-Sooriya committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    bc2afb0 View commit details
    Browse the repository at this point in the history
  6. fix(deps): web3-stream-provider@^4.0.0->^5.0.0 (#23216)

    Update  version of `readable-stream` used by the `StreamProvider`
    from `2.3.8` to `3.6.2` to match that of its supplied
    connection stream (which it gets via `@metamask/object-multiplex`)
    legobeat committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    bf946dc View commit details
    Browse the repository at this point in the history
  7. feat: Add updated UI for Snap install and update flows (#23870)

    ## **Description**
    This PR updates UI for Snap Install and Snap update flow. Alongside the
    update, replaced are deprecated Design System components.
    
    Updates are made respecting the designs presented on Figma:
    https://www.figma.com/file/jr7XsFvcPCnf4HOMvNWFfn/Permission-System?node-id=1%3A2&mode=dev
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23870?quickstart=1)
    
    ## **Related issues**
    Fixes: #23244
    
    ## **Manual testing steps**
    1. Start Snap installation process and check the UI.
    2. Start Snap update process and check the UI.
    
    ## **Screenshots/Recordings**
    ### **Before**
    ![Screenshot 2024-04-05 at 22 36
    20](https://github.com/MetaMask/metamask-extension/assets/13301024/903df735-f152-482d-8600-101bfab83d46)
    ![Screenshot 2024-04-05 at 22 36
    33](https://github.com/MetaMask/metamask-extension/assets/13301024/385b0494-2d35-4400-945a-9034f58ed8d6)
    ![Screenshot 2024-04-05 at 22 36
    56](https://github.com/MetaMask/metamask-extension/assets/13301024/6a162c7b-a5e1-4a71-b5ec-59bb23040db8)
    ![Screenshot 2024-04-05 at 22 37
    18](https://github.com/MetaMask/metamask-extension/assets/13301024/d3186f1f-1b02-4480-9615-e626fb62005b)
    
    ### **After**
    ![Screenshot 2024-04-05 at 21 37
    23](https://github.com/MetaMask/metamask-extension/assets/13301024/ff021cdd-5ae1-4711-9c59-bf52a06983b0)
    ![Screenshot 2024-04-05 at 21 37
    36](https://github.com/MetaMask/metamask-extension/assets/13301024/44cbc751-ee47-4128-ba87-5d245d4ff189)
    ![Screenshot 2024-04-05 at 21 37
    46](https://github.com/MetaMask/metamask-extension/assets/13301024/af60408e-8446-4a3c-bcee-271e63858943)
    ![Screenshot 2024-04-05 at 21 38
    25](https://github.com/MetaMask/metamask-extension/assets/13301024/01238319-5466-4c0b-b37b-17f3a16c4385)
    
    ## **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: bowensanders <bowensanders@gmail.com>
    david0xd and bowensanders committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    3627a99 View commit details
    Browse the repository at this point in the history
  8. fix: issue where per dapp selected network proxies are not synced cor…

    …rect across preference toggle (#24093)
    
    ## **Description**
    
    [The changes integrated
    here](MetaMask/core@1551844#diff-f17918dbe6fc43037bfaa47fa6869da4c3b244154ef7a9eacbcd3a0a373351efR10)
    from `@metamask/selected-network-controller` v12 keep the per domain
    proxies (stored in domainProxyMap) pointing to the correct network
    client instance when the "Select networks for each site" toggle is
    turned on and off.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24093?quickstart=1)
    
    ## **Manual testing steps**
    
    1. Open the wallet in fullscreen
    2. Switch network to Ethereum Mainnet
    3. Open the experimental settings page
    4. Turn off 'Select networks for each site' if was on previously
    (otherwise leave it off)
    5. Open a dapp (or any webpage will work) in another window or tab
    6. Connect to the dapp
    7. Open the console and execute:
    ```
    await window.ethereum.request({
      "method": "eth_chainId",
      "params": []
    });
    ```
    8. You should get '0x1'
    9. Switch the network in the wallet to Sepolia
    10. Go back to the dapp console and execute the same request -> You
    should get '0xaa36a7'
    11. Turn on the 'Select networks for each site' setting
    12. Switch the network back to Ethereum Mainnet
    13. Go back to the dapp console and execute the same request -> You
    should still get '0xaa36a7'
    14. Turn off the 'Select networks for each site' setting
    15. Go back to the dapp console and execute the same request -> You
    should get '0x1' again
    
    ## **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/34557516/e39ce796-6e39-41d3-80b2-f582b66fa965
    
    
    ### **After**
    
    
    
    https://github.com/MetaMask/metamask-extension/assets/34557516/de8701d7-b342-4b56-ab87-1a73842c0706
    
    
    
    
    
    ## **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.
    adonesky1 committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    95f1055 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e7a3b07 View commit details
    Browse the repository at this point in the history
  10. chore: Update ppom package (#24171)

    <!--
    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**
    
    Update @blockaid/ppom_release package to 1.4.5
    
    
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24171?quickstart=1)
    
    ## **Related issues**
    
    Fixes: #24170
    
    ## **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.
    pedronfigueiredo committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    378bb27 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a4368d3 View commit details
    Browse the repository at this point in the history
  12. fix: transaction created after a pending signature request does not l…

    …oad on page and show continuous spinner (#24173)
    jpuri committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    4f8a951 View commit details
    Browse the repository at this point in the history
  13. chore: disable sonarcloud in github actions (#24197)

    <!--
    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.
    -->
    
    Temporarily disable SonarCloud job in github actions until the plan is
    upgraded and full analysis of repo is completed.
    
    ## **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/24197?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 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.
    DDDDDanica committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    0097d45 View commit details
    Browse the repository at this point in the history
  14. feat: metrics for token removed and NFT details opened (#24175)

    ## **Description**
    
    Adds metrics for a token being removed and NFT details page opened
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24175?quickstart=1)
    
    ## **Related issues**
    
    Fixes: https://consensyssoftware.atlassian.net/browse/MMASSETS-196
    
    ## **Manual testing steps**
    
    
    ## **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.
    
    ---------
    
    Co-authored-by: David Walsh <davidwalsh83@gmail.com>
    bergeron and darkwing committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    88bc4e8 View commit details
    Browse the repository at this point in the history
  15. feat(restore): Add Restore type to onboarding flow (#23739)

    ## **Description**
    This Pull Request adds a new onboarding 'firstTimeFlowType' called
    'restore'. In a future PR (#23056) we will provide a path forward for
    users who suffer from a state corruption error, wherein their vault is
    backed up to local storage and they will be given an option to restore
    from that vault when the error occurs.
    
    This PR adds a path through the onboarding screens for those users,
    skipping the step of choosing "Import" or "Create" and instead going
    straight to MetaMetrics opt-in.
    
    This flow is **currently inaccessible** to users but I did add an E2E
    test to cover the flow by forcing state into the shape it would be in
    after a restore.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23739?quickstart=1)
    
    ## **Related issues**
    
    Fixes:
    
    ## **Manual testing steps**
    
    Force MetaMask into the state required to test this:
    ```js
    chrome.storage.local.get((state) => chrome.storage.local.set({ data: {
      ...state.data,
      OnboardingController: { completedOnboarding: false, firstTimeFlowType: 'restore', seedPhraseBackedUp: null },
      MetaMetricsController: { participateInMetaMetrics: null, metaMetricsId: null },
    }}));
    ```
    
    1. First, ensure you're on a local dev build with a working wallet
    initialized.
    2. Open the background console from the extension management screen.
    3. Use the steps above to get your state tree into a restore state.
    4. Reload the extension from the extension management screen.
    5. Open the extension and you should be requested to unlock your wallet
    with password.
    6. Your password should work.
    7. You should see MetaMetrics optin screen and be able to continue
    onboarding
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    No changes, the only thing that changes is the skipping of the
    create/import step.
    
    ### **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
    - [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.
    brad-decker committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    fef4fa5 View commit details
    Browse the repository at this point in the history
  16. feat: reduce the number of decimals shown for simulation detail amoun…

    …ts (#24036)
    
    ## **Description**
    This PR does two things:
    * Converts balance change amounts to BigNumber. The previous Amount
    definition was redundant.
    * Formats token amounts as follows:
    
    `|amount| < 1`: We display a maximum of 3 significant digits.
    
    `|amount| >= 1`: We display all digits left of the decimal point. We
    also display some decimal places for smaller amounts, and gradually
    reduce the decimal precision as the amount gets bigger until we only
    show whole numbers.
    
    Users are still able to see the original amount, subject to the maximum
    precision supported by `Intl.NumberFormat`.
    
    Here is how different amounts are rendered:
    
    <img width="336" alt="Screenshot 2024-04-08 at 14 14 36"
    src="https://github.com/MetaMask/MetaMask-planning/assets/34968356/200053d9-226c-4f9b-a2e9-3f7437deb6ad">
    
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24036?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2343
    
    ## **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.
    dbrans committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    c33c5df View commit details
    Browse the repository at this point in the history
  17. fix: Flaky test to support changes introduced in PR 23155 (#24195)

    ## **Description**
    Change in the PR fixes the flaky test CircleCI job -
    test-e2e-chrome-vault-decryption
    
    https://app.circleci.com/pipelines/github/MetaMask/metamask-extension/77436/workflows/983b4b1c-104a-4acc-ad35-36fe09a03a29/jobs/2685234
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24195?quickstart=1)
    
    ## **Related issues**
    
    Fixes: 
    #24180
    #1722
    
    ## **Manual testing steps**
    
    Run the test in codespace or locally --> Checkout to the branch
    yarn
    yarn dist
    yarn test:e2e:single test/e2e/vault-decryption-chrome.spec.js
    --browser=chrome
    
    ## **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
    - [ ] 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.
    hjetpoluru committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    5efc5c7 View commit details
    Browse the repository at this point in the history
  18. fix: duplicate simulation metrics (#24194)

    > [!NOTE]
    > This branch was originally reviewed in
    #24167
    > which got accidentally merged into a feature branch.
    
    ## **Description**
    This PR addresses the issue of duplicate or replaced metrics when the
    SimulationDetails component is used on the smart transaction status
    confirmation.
    
    Changes:
    
    * Add `enableMetrics` property on the SimulationDetails component which
    is `false` by default.
    
    By making these changes, we prevent redundant metrics from being
    tracked.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24167?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2373
    
    ## **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.
    dbrans committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    c5e95a4 View commit details
    Browse the repository at this point in the history
  19. fix: disable polling when MM closed (#24162)

    ## **Description**
    
    Once nftDetection is enabled by the user, the nftDetection controller
    will start polling data in the background every 3 min even if the user
    closes the metamask popup or the tab.
    
    We want to stop unnecessary polling when MM is closed in an attempt to
    reduce traffic.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24026?quickstart=1)
    
    ## **Related issues**
    
    Related to: MetaMask/core#4178
    
    ## **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.
    sahar-fehri committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    2638466 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. chore: adds mmi tem as codeowners (#24216)

    <!--
    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**
    
    It adds MMI team as **codeowners** to the respective `institutional/`
    folders.
    
    ## **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.
    zone-live committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    085e808 View commit details
    Browse the repository at this point in the history
  2. fix: add npm resolution @spruceid/siwe-parser 1.1.3 → 2.1.0 with patch (

    #24138)
    
    ## **Description**
    
    Resolves @spruceid/siwe-parser 1.1.3 → 2.1.0 The updated
    @spruceid/siwe-parser allows `http` and `https` schemas in a transaction
    message's URL.
    
    Additional changes are included in the @spruceid/siwe-parser upgrade
    from v1.1.3 → v2.1.0. One important update is the requirement of
    [EIP-55](https://npmfs.com/package/@spruceid/siwe-parser/1.1.3/lib/abnf.ts)
    complaint addresses. This means that if a dapp attempts to sign a
    `personal_sign` message with a from address that is not EIP-55
    compliant, SIWE will not be detected. This is what we want as
    [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) enforces EIP-55
    addresses. There's a separate ticket that'll warn users if a
    `personal_sign` message looks like a SIWE but doesn't parse to a SIWE
    message: #24128
    
    Issue to update test-dapp SIWE addresses to be EIP-55 complaint:
    MetaMask/test-dapp#326
    
    Related Links (Thanks @NicholasEllul for these): 
    - https://app.warp.dev/block/4eE6QC12lVuwARbpFj62VJ 
    - https://npmfs.com/package/@spruceid/siwe-parser/1.1.3/lib/abnf.ts
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2256
    Relates To: MetaMask/MetaMask-planning#2278
    
    Related to: #24107
    Related to: MetaMask/core#4153
    Related to: MetaMask/core#4141
    
    ## **Manual testing steps**
    
    1. Go to the metamask test-dapp or run the test-dapp locally
    2. When testing locally, optionally update the from addresses used by
    the buttons
    3. Test Sign-in With Ethereum buttons
    4. Observe MM
    
    
    ## **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.
    
    ---------
    
    Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
    Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
    Co-authored-by: Nicholas Ellul <nicholas.ellul1@gmail.com>
    4 people committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    4b55476 View commit details
    Browse the repository at this point in the history
  3. feat: token detection on 7 more networks (#24121)

    ## **Description**
    
    Adds support for erc20 token detection on 7 more networks.
    
    Patching this from core because it's small:
    MetaMask/core#4184
    
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24121?quickstart=1)
    
    ## **Related issues**
    
    https://consensyssoftware.atlassian.net/browse/MMASSETS-207
    
    ## **Manual testing steps**
    
    1. Visit one of the new chains (cronos, celo, gnosis, fantom, polygon
    zk, moonbeam, moonriver) on a wallet that has tokens on the network
    2.  They should be autodetected
    
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    None of the chains support token lists or detection:
    
    <img width="345" alt="Screenshot 2024-04-22 at 9 50 03 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/3500406/97c08793-0b08-44b9-aef4-71f551b8a803">
    
    ### **After**
    
    All 7 chains support detection:
    
    
    https://github.com/MetaMask/metamask-extension/assets/3500406/16c8e763-ccc0-4070-8ac3-28a7dfa88e1f
    
    
    <!-- [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.
    bergeron committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    f3c4676 View commit details
    Browse the repository at this point in the history
  4. fix: token list cleared on network switch (#24212)

    ## **Description**
    
    Problem: When switching networks, the token list is cleared. Preventing
    token import via search or autodetect.
    
    Diagnosis: `TokenListController.preventPollingOnNetworkRestart` was
    true, which [intentionally clears the token
    list](https://github.com/MetaMask/core/blob/4b39e8e3038761004eaf493aa4ef1e177239e3ba/packages/assets-controllers/src/TokenListController.ts#L182-L184)
    on network switch. Prior to
    #23919, this setting
    would be set false when enabling token autodetection. But this code path
    no longer triggers.
    
    Solution: Set the initial value of `preventPollingOnNetworkRestart`
    based on whether we need token lists.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24212?quickstart=1)
    
    ## **Related issues**
    
    ## **Manual testing steps**
    
    1. Open MetaMask
    2.  Switch networks
    3.  Click import tokens
    4. The left search tab should autocomplete when you type token names
    
    ## **Screenshots/Recordings**
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    ### **Before**
    
    <!-- [screenshots/recordings] -->
    <img width="348" alt="Screenshot 2024-04-23 at 11 08 47 PM"
    src="https://github.com/MetaMask/metamask-extension/assets/3500406/65ceb23c-571a-4bd9-9f56-8a27d5e6797d">
    
    ### **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.
    bergeron committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    fb49066 View commit details
    Browse the repository at this point in the history
  5. feat: Refactor and update permission-connect UI (#23557)

    ## **Description**
    This PR introduces some major code refactoring and UI updates to
    **_Connect_** and **_Permission Approval_** screens.
    
    #### Motivation
    There are several blockers encountered while trying to introduce
    (integrate) new features provided by Snaps Core Platform such as Dynamic
    Permissions.
    
    The major reason for a blocker is the state of the current
    implementation of the _Permission Approval_ component. More
    specifically, the large difference and inconsistencies between the UI
    components and overall UI structure used for the native and Snaps flows
    related to the permission approval features are making it close to
    impossible to maintain and extend with the new functionalities. Building
    even more fragmented conditional UI in order to introduce new features,
    as part of the same flows and features, would dramatically increase code
    complexity and maintenance demands, while resulting in poor UX/UI in the
    final product.
    
    Hence, after multiple discussions inside the teams and between the
    different teams, it is determined that the best approach would be
    complete UI refactoring and consolidation of the user interface between
    native and Snaps flows. This PR is the first major step made in order to
    achieve the proposed results and unblock the new features waiting for
    integration.
    
    #### What is done in this PR
    - Updated UI for Account Connection and Permission Approval screens.
    - Refactoring of the Connection and Permission Approval components.
    - Refactoring of the other components related to Connect and Permission
    pages.
    - Replaced old way of UI styling with the new one aligned with Design
    System approach. This includes replacement of all deprecated Design
    System components with the current.
    - Removed redundant SCSS code. UI styling is now mostly handled by
    Design System components.
    - Updated some parts of the Storybook for the related components.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23557?quickstart=1)
    
    ## **Related issues**
    Fixes: #23316
    
    Design:
    https://www.figma.com/file/jr7XsFvcPCnf4HOMvNWFfn/Permission-System?node-id=1%3A2&mode=dev
    (see facelift section).
    
    Blocks: MetaMask/snaps#1821
    Blocks: MetaMask/snaps#2088
    Blocks: MetaMask/snaps#2198
    
    ## **Manual testing steps**
    1. Go to [E2E Test Dapp](https://metamask.github.io/test-dapp/) or [Test
    Snaps](https://metamask.github.io/snaps/test-snaps/latest/) website.
    2. Try connecting the accounts to the Test Dapp. Try approving
    permission requested. Check the UI.
    3. Try installing a Snap and check all the related UI starting from a
    connection to the website.
    4. Try installing Ethereum Provider Snap and verify the UI for the
    complete flow including triggering option for getting Ethereum accounts.
    5. Try using Multi Install Snap feature provided by the Test Snaps web
    application.
    6. Check any other website connection or permission approval related
    flows and features and make sure that there are no regressions.
    7. Verify that there are no regressions in all the UX/UI related to the
    all features mentioned above. Also, verify the functionality of the
    related features.
    
    ## **Screenshots/Recordings**
    
    ### **Before**
    ![Screenshot 2024-03-28 at 16 05
    48](https://github.com/MetaMask/metamask-extension/assets/13301024/568fc097-f2f2-4516-a921-a6596d33afca)
    <img width="1018" alt="Screenshot 2024-03-29 at 15 35 51"
    src="https://github.com/MetaMask/metamask-extension/assets/13301024/b06fa630-3912-445a-80e8-00f85a0ce301">
    <img width="1462" alt="Screenshot 2024-03-29 at 15 37 26"
    src="https://github.com/MetaMask/metamask-extension/assets/13301024/20b4cea6-9258-482a-9eb4-38de2234f15a">
    <img width="927" alt="Screenshot 2024-03-29 at 15 39 52"
    src="https://github.com/MetaMask/metamask-extension/assets/13301024/c7643215-78cc-43b8-8c89-5ae504e05bb2">
    
    
    ### **After**
    ![Screenshot 2024-04-22 at 18 40
    35](https://github.com/MetaMask/metamask-extension/assets/13301024/b2c903ca-0a7a-47df-ac56-f9d9b6587245)
    ![Screenshot 2024-04-22 at 18 41
    08](https://github.com/MetaMask/metamask-extension/assets/13301024/4ad1211d-7de4-43b8-82c1-e4e5c3e23aa9)
    ![Screenshot 2024-04-22 at 18 41
    50](https://github.com/MetaMask/metamask-extension/assets/13301024/b48b04c3-36ec-4a15-a56b-1e3dd7e466ef)
    ![Screenshot 2024-04-22 at 18 42
    35](https://github.com/MetaMask/metamask-extension/assets/13301024/a6fd4e7f-6dd8-4482-bc72-b73f33333b4b)
    ![Screenshot 2024-03-29 at 15 48
    17](https://github.com/MetaMask/metamask-extension/assets/13301024/ac0d3d0c-9ade-484c-b2e2-35857d47c588)
    ![Screenshot 2024-04-17 at 16 28
    03](https://github.com/MetaMask/metamask-extension/assets/13301024/2a2bd11d-238b-488c-994e-d531a0bc281a)
    
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [x] I've linked related issues
    - [x] I've included manual testing steps
    - [x] I've included screenshots/recordings if applicable
    - [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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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.
    david0xd committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    ec03702 View commit details
    Browse the repository at this point in the history
  6. ci: update actions/checkout from v2 to v4 (#24064)

    Update `actions/checkout@v2` to v4 as v2 is deprecated.
    davidmurdoch committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    ea6e262 View commit details
    Browse the repository at this point in the history
  7. ci: update actions/stale from commit 72afbce2b0dbd1d903bb142cebe2d1…

    …5dc307ae57 (v7ish) to v9.0.0 (#24063)
    
    Update `actions/stale@72afbce2b0dbd1d903bb142cebe2d15dc307ae57` to
    v9.0.0 (at commit `28ca1036281a5e5922ead5184a1bbf96e5fc984e`) as the
    version at commit `72afbce2b0dbd1d903bb142cebe2d15dc307ae57` is
    deprecated.
    
    I kept the commit hash versioning, even though our security process
    doesn't currently require hashes for actions maintained by GitHub,
    because I don't know why a hash was used in the first place.
    davidmurdoch committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    d84ef28 View commit details
    Browse the repository at this point in the history
  8. refactor: change CurrencyRateController Polling to be UI driven (#23476)

    ## **Description**
    
    Currently currency rate polling is started and stopped based on active
    trusted connections to the `MetaMaskController` (i.e. whenever the
    wallet ui is opened). In the future we want polling to be tied to the
    actual components that rely on polled currency rate state. As a
    transitionary step, this PR moves currency rate polling from
    `MetaMaskController` into a hook that wraps the root level `<Routes>`
    component. Nothing changes except that currency rate polling goes from
    being MetaMaskController connection driven to actually wallet UI driven.
    Polling will still occur as long at least one wallet UI is open as it
    currently already does.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/PR?quickstart=1)
    
    ## **Related issues**
    
    Fixes: MetaMask/MetaMask-planning#2083
    
    ## **Manual testing steps**
    
    1. Open background console - network tab
    3. Filter by `min-api.cryptocompare.com`
    4. Open wallet UI
    5. See request in background network tab
    6. Change network
    7. See new request
    8. Close wallet UI
    9. Open wallet UI right away
    10. See no new requests
    11. Close wallet UI
    12. Wait 3 minutes
    13. See no new requests
    14. Open wallet UI
    15. See new request 
    16. Leave wallet UI open
    17. Wait 3 minutes
    18. See new request
    
    ## **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 clearly explained what problem this PR is solving and how it
    is solved.
    - [ ] I've linked related issues
    - [ ] I've included manual testing steps
    - [ ] I've included screenshots/recordings if applicable
    - [ ] 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 properly set the pull request status:
      - [ ] In case it's not yet "ready for review", I've set it to "draft".
    - [ ] In case it's "ready for review", I've changed it from "draft" to
    "non-draft".
    
    ## **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 <adonesky@gmail.com>
    jiexi and adonesky1 committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    7e972ba View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. chore: bump snaps packages (#24226)

    ## **Description**
    Bump snaps packages to latest.
    
    Summary of changes in the snaps deps:
    - Improve stability and handle errors more gracefully when Snaps or the
    execution environment fail to start
    - Fix a bug where certain caveats would not be correctly applied when
    updating a Snap
    - Gracefully handle errors for multiple simultaneous failing requests
    - Throw an error if the starting Snap does not contain any exports
    - Increase max UI size limit from 250 KB to 10 MB
    FrederikBolding committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    d8d9bc6 View commit details
    Browse the repository at this point in the history
  2. 11.16.0 changelog

    benjisclowder committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    d181619 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2024

  1. chore(deps): Bump phishing-controller to ^9.0.2 (v11.16.0 cherry-pick…

    …)) (#24329)
    
    ## **Description**
    
    This is a cherry-pick of #24311 for v11.16.0
    
    This version of phishing-controller includes the changes to Stalelist
    update interval to 30 days and the hotlist update interval to 5 mins.
    
    ## **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: Kanthesha Devaramane <kanthesha.devaramane@consensys.net>
    Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
    3 people committed May 2, 2024
    Configuration menu
    Copy the full SHA
    2796377 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2024

  1. Configuration menu
    Copy the full SHA
    e21c67f View commit details
    Browse the repository at this point in the history

Commits on May 8, 2024

  1. Update LavaMoat policies

    metamaskbot committed May 8, 2024
    Configuration menu
    Copy the full SHA
    756dba1 View commit details
    Browse the repository at this point in the history

Commits on May 9, 2024

  1. Configuration menu
    Copy the full SHA
    cfeaba9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4a79f99 View commit details
    Browse the repository at this point in the history
  3. Update LavaMoat policies

    metamaskbot committed May 9, 2024
    Configuration menu
    Copy the full SHA
    d980b6a View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. fix: Update gas fee controller to v11.15.2 (#24520)

    Updates the gas fee controller to v11.15.2, so that the gas fee
    controller is instantiated with the proper metadata.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24520?quickstart=1)
    
    Fixes: #24383
    
    1. Start a tx
    2. Add recipient and amount
    3. Check console, there should not be a `Error: No metadata found for
    'nonRPCGasFeeApisDisabled'`
    
    - [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
    - [ ] 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.
    danjm committed May 16, 2024
    Configuration menu
    Copy the full SHA
    bdd2ecd View commit details
    Browse the repository at this point in the history
  2. fix: ✅ fix a date in a test

    matteoscurati authored and hjetpoluru committed May 16, 2024
    Configuration menu
    Copy the full SHA
    5aa4a3a View commit details
    Browse the repository at this point in the history

Commits on May 17, 2024

  1. chore(test/e2e): Fix request-queueing/ui.spec.js (#24440)

    ## **Description**
    
    ` request-queueing/ui.spec.js` has been particularly flaky. In
    particular, the problem was described as follows:
    
    > The test stalls for 10+ seconds locally at detecting 4 windows:
    > await driver.waitUntilXWindowHandles(numHandles)
    > The test is doing exactly what it's meant to but the
    waitUntilXWindowHandles call is taking an eternity
    
    I noticed that this line in particular in the `waitUntilXWindowHandles`
    helper method seemed to take a long time to resolve in only one case:
    `windowHandles = await this.driver.getAllWindowHandles();`
    
    So the problem seemed to be not with our `waitUntilXWindowHandles`
    itself, but something related to selenium- webdriver's own
    `getAllWindowHandles` method
    
    From this stack overflow post, it seems that others have had trouble
    with having `getAllWindowHandles` resolve when `executeScript` is not
    resolved
    https://stackoverflow.com/questions/64687179/calling-getwindowhandles-again-causing-timeout
    
    So the attempted fix, which worked on three successive local runs, is to
    properly await the executeScript that happens before the
    `getAllWindowHandles` call in question. We also need to remove the
    `return` from the script to be executed, so that webdriver-selenium is
    not waiting for a returned promise to resolve.
    
    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24440?quickstart=1)
    
    
    ## **Manual testing steps**
    
    1. ` request-queueing/ui.spec.js` should pass in automated tests and not
    be flaky
    
    
    ## **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
    - [ ] 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.
    danjm committed May 17, 2024
    Configuration menu
    Copy the full SHA
    db89ed4 View commit details
    Browse the repository at this point in the history
  2. fix: Removing usage of driver.navigate before unlockWallet (#24436)

    The use of driver.navigate() in combination with the use of
    driver.navigate() in unlockWallet helper function was causing the page
    to reload in e2e tests. This is causing issues with filling in the
    password when unlocking the wallet.
    <img width="881" alt="image"
    src="https://github.com/MetaMask/metamask-extension/assets/10986371/db981ad9-4705-46f1-ae80-30456706e952">
    I suspect the test was trying to access DOM elements created before the
    re-rendering.
    <!--
    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.
    -->
    
    <!--
    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/24436?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] -->
    
    - [ ] 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.
    
    - [ ] 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.
    vthomas13 authored and danjm committed May 17, 2024
    Configuration menu
    Copy the full SHA
    fffd36a View commit details
    Browse the repository at this point in the history
  3. fix: lock snaps deps for RC

    FrederikBolding authored and danjm committed May 17, 2024
    Configuration menu
    Copy the full SHA
    6059e37 View commit details
    Browse the repository at this point in the history
  4. chore: cherry-pick sentry and snapshot test changes from #24306 to v1…

    …1.15.0
    
    The version bump changes in #24306 were previously cherry-picked to v11.14.5, but the test changes were not, as they were not needed on that branch, as the gas feel controller wasn't actually updated on that branch. Now that v11.16.0 is using the latest gas-fee-controller, we need the sentry and snapshot changes
    dbrans authored and danjm committed May 17, 2024
    Configuration menu
    Copy the full SHA
    46685a5 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #24564 from MetaMask/cherry-pr-flaky-test

    fix: Cherry-pick pr from develop to v11.16.0 to fix flaky test
    danjm committed May 17, 2024
    Configuration menu
    Copy the full SHA
    30ae822 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0d90392 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2024

  1. Version v11.16.0 changelog (#24305)

    Adding V11.16.0 Changelog. This PR needs to be updated once V11.16.0 is
    recut with the newly merged commits.
    benjisclowder committed May 18, 2024
    Configuration menu
    Copy the full SHA
    73e5c4b View commit details
    Browse the repository at this point in the history

Commits on May 20, 2024

  1. Cherry-pick fix: decimals and fiat conversion crashes in simulation (#…

    …24422) into Version-v11.16.0 (#24434)
    
    Cherry-pick 603b1b5 (#24422) into
    Version-v11.16.0
    
    **Merge conflict resolved:**
    ```typescript
    // Compiles the balance change for the native asset
    function getNativeBalanceChange(
      nativeBalanceChange: SimulationBalanceChange | undefined,
      nativeFiatRate: number,
    ): BalanceChange | undefined {
      if (!nativeBalanceChange) {
        return undefined;
      }
      const asset = NATIVE_ASSET_IDENTIFIER;
      const amount = getAssetAmount(nativeBalanceChange, NATIVE_DECIMALS);
    <<<<<<< HEAD - REJECTED
      const fiatAmount = amount.times(nativeFiatRate).toNumber();
    ======= ACCEPTED:
      const fiatAmount = amount
        .times(convertNumberToStringWithPrecisionWarning(nativeFiatRate))
        .toNumber();
    >>>>>>> 603b1b5 (fix: decimals and fiat conversion crashes in simulation (#24422))
      return { asset, amount, fiatAmount };
    }
    ```
    dbrans committed May 20, 2024
    Configuration menu
    Copy the full SHA
    4e45738 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2024

  1. Configuration menu
    Copy the full SHA
    a22b13d View commit details
    Browse the repository at this point in the history
  2. Version v11.16.0 cherry pick 24664 (#24673)

    ## **Description**
    
    Cherry-picks the dependency audit fix from #24664 (640cad4)
    
    Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
    danjm and legobeat committed May 21, 2024
    Configuration menu
    Copy the full SHA
    edeca15 View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Cherry-pick fix stopgap for BigNumber shift NaN issue (#24691) into v…

    …11.16.0 (#24700)
    
    Cherry-pick fix stopgap for BigNumber shift NaN issue
    4233f9e (#24691) into v11.16.0.
    
    There was a merge conflict – I rejected `HEAD` and accepted
    `4233f9ed06`.
    ```typescript
        const decimals =
    <<<<<<< HEAD
          asset.standard === TokenStandard.ERC20 ? erc20Decimals[asset.address] : 0;
    =======
          // TODO(dbrans): stopgap for #24690
          asset.standard === TokenStandard.ERC20
            ? erc20Decimals[asset.address] ?? ERC20_DEFAULT_DECIMALS
            : 0;
    >>>>>>> 4233f9e (fix: stopgap for BigNumber shift NaN issue (#24691))
        const amount = getAssetAmount(tokenBc, decimals);
    ```
    dbrans committed May 22, 2024
    Configuration menu
    Copy the full SHA
    afafe48 View commit details
    Browse the repository at this point in the history
  2. feat (cherry-pick): Add new privacy policy toast (#23838) (#24722)

    Cherry-pick of #23838
    
    ----
    
    Changes:
    Adds a new privacy policy banner that will show up after June 4, 2024.
    If the user closes it manually, the privacy policy banner will not show
    up again.
    If the user does not close the toast manually, the privacy policy banner
    will cease to show up after a day of being shown for the first time.
    Changes the Survey banner so that we can display multiple banners at the
    same time without overlapping each other.
    
    Considerations:
    - Make sure this doesn't show up during onboarding
    - This toast will show up even after years of the privacy policy being
    changed. We should set up a deadline for that or eventually revert this
    PR.
    - Check if copy is correct.
    
    [![Open in GitHub
    
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/23838?quickstart=1)
    
    Fixes: MetaMask/MetaMask-planning#2319
    
    1. Go to the home page
    2. Check if there's a new privacy banner there (date should be edited in
    the code so that the privacy policy shows up earlier than May 6, 2024)
    3. When closing it, it shouldn't show up again
    4. If not closing it manually, the toast should not show up again after
    1 day of being shown for the first time. This data is saved in
    localStorage so editing the timestamp there should be enough to test
    this feature out.
    
    Co-authored-by: David Walsh <davidwalsh83@gmail.com>
    jonybur and darkwing committed May 22, 2024
    Configuration menu
    Copy the full SHA
    6e20c20 View commit details
    Browse the repository at this point in the history
  3. feat (cherry-pick): New onboarding text (#24729)

    cherry-pick of #24050
    ----
    <!--
    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.
    -->
    
    Updates the "Help us improve MetaMask" copy during onboarding.
    
    [![Open in GitHub
    
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/24050?quickstart=1)
    
    Fixes: MetaMask/MetaMask-planning#2336
    
    1. Start onboarding
    2. Check that the copy in the 'Help us improve MetaMask' screen matches
    the new copy.
    3. Test the Privacy Policy link
    
    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->
    
    <img width="616" alt="Screenshot 2024-04-16 at 12 25 09"
    src="https://github.com/MetaMask/metamask-extension/assets/11148144/07f310c2-5e41-4245-b00b-2176d4023e22">
    
    <img width="835" alt="Screenshot 2024-05-05 at 01 52 00"
    src="https://github.com/MetaMask/metamask-extension/assets/11148144/098907d5-0176-46ef-93b2-4c11be0d85cf">
    
    - [ ] 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.
    
    - [ ] 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**
    
    <!--
    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/24729?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 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 <davidwalsh83@gmail.com>
    Co-authored-by: Michele Esposito <34438276+mikesposito@users.noreply.github.com>
    3 people committed May 22, 2024
    Configuration menu
    Copy the full SHA
    041e79c View commit details
    Browse the repository at this point in the history

Commits on May 23, 2024

  1. revert (cherry-pick): deprecating more networks (#23695) (#24524)

    <!--
    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/24524?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 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: Dan J Miller <danjm.com@gmail.com>
    salimtb and danjm committed May 23, 2024
    Configuration menu
    Copy the full SHA
    ad0234b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ab26c04 View commit details
    Browse the repository at this point in the history
  3. lint changelog for v11.16.0

    danjm committed May 23, 2024
    Configuration menu
    Copy the full SHA
    43832ef View commit details
    Browse the repository at this point in the history
  4. cherry-pick – chore: bump transaction-controller to 29.0.2 (#24701) i…

    …nto v11.16.0 (#24740)
    
    cherry-pick – chore: bump transaction-controller to 29.0.2
    637c0f3 (#24701) into v11.16.0
    
    Notes:
    * Dan ran 
      1. git cherry-pick 637c0f3
    1. git checkout HEAD -- yarn.lock (so that now there is no diff with
    yarn.lock)
      1. manually fixed the conflict in package.json
      1. yarn && yarn dedupe
    * Merge conflicts in package.json: 
    
    ```json
        "@metamask/signature-controller": "^12.0.0",
        "@metamask/smart-transactions-controller": "^10.0.1",
    <<<<<<< HEAD
        "@metamask/snaps-controllers": "8.0.0",
        "@metamask/snaps-execution-environments": "6.0.2",
        "@metamask/snaps-rpc-methods": "8.0.0",
        "@metamask/snaps-sdk": "4.0.1",
        "@metamask/snaps-utils": "7.2.0",
        "@metamask/transaction-controller": "^28.1.1",
        "@metamask/user-operation-controller": "^6.0.0",
    =======
        "@metamask/snaps-controllers": "^8.1.1",
        "@metamask/snaps-execution-environments": "^6.1.0",
        "@metamask/snaps-rpc-methods": "^9.0.0",
        "@metamask/snaps-sdk": "^4.2.0",
        "@metamask/snaps-utils": "^7.4.0",
        "@metamask/transaction-controller": "^29.0.2",
        "@metamask/user-operation-controller": "^8.0.1",
    >>>>>>> 637c0f3 (chore: bump transaction-controller to 29.0.2 (#24701))
        "@metamask/utils": "^8.2.1",
        "@ngraveio/bc-ur": "^1.1.12",
    ```
    dbrans committed May 23, 2024
    Configuration menu
    Copy the full SHA
    a848063 View commit details
    Browse the repository at this point in the history