Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 01c9fbd76ca73d1012f30376cc6cfff8b4769b03
Author: Bryan Fullam <[email protected]>
Date:   Wed Jan 22 19:37:11 2025 +0100

    feat: solana swap and bridge navigation (#29705)

    <!--
    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**

    Enables swap and bridge buttons for non-evm networks and makes both of
    those buttons navigate to the bridge interface. Also fences the feature
    behind a code fence at the build level.

    <!--
    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/29705?quickstart=1)

    ## **Related issues**

    Fixes:

    ## **Manual testing steps**

    1. Run repo with "yarn start:flask" command
    2. Enable "Add a new Solana account (Beta)" toggle in experimental
    settings
    3. Add a Solana account through the account dropdown
    4. Go to home page while having Solana account selected
    5. Click swap or bridge
    6. See bridge interface

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit ed2fb49150e97c2db2582fe12fc1bc6f5cc1e3cc
Author: Hassan Malik <[email protected]>
Date:   Wed Jan 22 12:04:22 2025 -0500

    fix: centering on Snap radio buttons (#29850)

    ## **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? Radio buttons were not aligned
    with their labels in the snap component.
    2. What is the improvement/solution? Strip radio button of margin.

    ## **Related issues**

    Fixes: #29725

    ## **Manual testing steps**

    1. Build this branch
    2. Go to https://metamask.github.io/snaps/test-snaps/2.18.0/
    3. Trigger the custom ui interactive snap dialog
    4. Observe the changes below.

    ## **Screenshots/Recordings**

    ### **Before**

    [See issue](https://github.com/MetaMask/metamask-extension/issues/29725)

    ### **After**

    <img width="380" alt="Screenshot 2025-01-22 at 9 47 19 AM"
    src="https://github.com/user-attachments/assets/411479ea-b027-4581-9df1-64edf4e75a9c"
    />

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/main/.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.

commit 82db3eea1108ae0417ab2b6cfd5c6405d491a8b1
Author: Pedro Figueiredo <[email protected]>
Date:   Wed Jan 22 16:59:21 2025 +0000

    feat: Remove 'Improved signature requests' setting toggle (#29819)

    <!--
    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**

    Removes the settings toggle for redesigned signatures. Removes e2e tests
    used for old flows no longer supported. For
    `test/e2e/tests/metrics/signature-approved.spec.js`, the tests were
    migrated to the redesigned confirmation screen.

    <!--
    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/29819?quickstart=1)

    ## **Related issues**

    Fixes: https://github.com/MetaMask/MetaMask-planning/issues/3029

    ## **Manual testing steps**

    1. Go to this page...
    2.
    3.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 50246152bd4fc9d4a2dada96e9a89ee65a1d30e2
Author: Norbert Elter <[email protected]>
Date:   Wed Jan 22 17:01:26 2025 +0100

    feat: build beta (#29712)

    <!--
    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/29712?quickstart=1)

    This PR migrates the beta build from CircleCI to GitHub Actions.

    ## **Related issues**

    Fixes: https://github.com/MetaMask/metamask-extension/issues/28572,
    https://github.com/MetaMask/metamask-extension/issues/29446

    ## **Manual testing steps**

    For commit messages matching the pattern: `Version v0.0.0-beta.0` on any
    branch other than `master,` the following should happen:

    1. Build should run on GH Actions
    2. Build should be uploaded on S3
    3. Build should appear in the metamaskbot comment

    ## **Screenshots/Recordings**

    Not applicable

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 615c469c2e562faa15f3a98849432a8095ce2153
Author: Micaela Estabillo <[email protected]>
Date:   Wed Jan 22 07:37:47 2025 -0800

    fix: handle undefined token address in useBridging hook (#29832)

    <!--
    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?
    -->
    Changes
    - gracefully handle tokens for which there is no `address` field in
    useBridging
    - fallback to src token in swaps fetchParams when reopening extension
    and linking to the Bridge page

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29832?quickstart=1)

    ## **Related issues**

    Fixes:
    https://metamask.sentry.io/issues/6223741673/?environment=production&project=273505&query=is%3Aunresolved%20issue.priority%3A%5Bhigh%2C%20medium%5D%20firstRelease%3Alatest&referrer=issue-stream&sort=date&statsPeriod=7d&stream_index=12

    ## **Manual testing steps**

    1. Request a swap quote
    2. Close extension
    3. Reopen extensionm, which should redirect to Swaps page
    5. Click "Swap across networks with Bridge" link
    6. Bridge page should load with native asset as src token

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    https://github.com/user-attachments/assets/0251bf1b-4621-49fa-ab6a-e547f977df22

    <!-- [screenshots/recordings] -->

    ### **After**

    https://github.com/user-attachments/assets/549de95c-d325-469a-944d-049455b9e25b

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [X] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 2da82c9e2570d944fd8bdc8b4af357f61f979f8a
Author: Gustavo Antunes <[email protected]>
Date:   Wed Jan 22 09:29:41 2025 -0300

    chore: upgrade `@metamask/user-operation-controller` (#29839)

    <!--
    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/29839?quickstart=1)

    ## **Related issues**

    Fixes: https://github.com/MetaMask/metamask-extension/issues/29681

    ## **Manual testing steps**

    E2E is enough to test the changes.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    No UI/UX changes

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

    ---------

    Co-authored-by: MetaMask Bot <[email protected]>

commit feb89fad247b1cb45a05c498ed7f0691590ed8d3
Author: Hassan Malik <[email protected]>
Date:   Wed Jan 22 04:35:45 2025 -0500

    fix: overflow of title/description in Snap `Card` component (#29838)

    ## **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? Text overflow was not properly
    working for the title & description section of the `Card` snap
    component.
    2. What is the improvement/solution? Add a constraint to the parent
    container.

    ## **Related issues**

    Fixes: https://github.com/MetaMask/snaps/issues/2815

    ## **Manual testing steps**

    1. Build the extension
    2. Trigger a snap dialog with the example code in the issue
    3. Observe the below changes.

    ## **Screenshots/Recordings**

    ### **Before**

    [See issue link](https://github.com/MetaMask/snaps/issues/2815)

    ### **After**

    <img width="380" alt="Screenshot 2025-01-21 at 6 49 00 PM"
    src="https://github.com/user-attachments/assets/e3486c52-803d-4936-87b1-9117a788c854"
    />

    <img width="380" alt="Screenshot 2025-01-21 at 6 48 00 PM"
    src="https://github.com/user-attachments/assets/2371cd8c-be2d-49e2-9214-66302eff1c13"
    />

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/main/.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.

commit 27c1231e11604603b3747388958dd7152953d3b3
Author: Priya <[email protected]>
Date:   Wed Jan 22 10:35:25 2025 +0100

    chore: update test dapp version to 9.0.0 (#29827)

    <!--
    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/29827?quickstart=1)

    ## **Related issues**

    Fixes:

    ## **Manual testing steps**

    1. Go to this page...
    2.
    3.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit d097924275d44d4d10fa1689e193fd9ef02479a6
Author: infiniteflower <[email protected]>
Date:   Wed Jan 22 06:53:47 2025 +0900

    fix: not routing to home page after bridge tx submitted (#29809)

    <!--
    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/29809?quickstart=1)

    This PR fixes an issue where you would not be routed back to the Home
    Activity tab after submitting a bridge transaction.

    ## **Related issues**

    Fixes: https://github.com/MetaMask/metamask-extension/issues/29793

    ## **Manual testing steps**

    1. Go to Bridge
    2. Submit a bridge tx
    3. Observe that you are sent to the Activity screen right after

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit f856a3b423a4316f14d2e5d7cd0297f76566f70a
Author: Charly Chevalier <[email protected]>
Date:   Tue Jan 21 18:18:52 2025 +0100

    feat: add `scopes` field to `KeyringAccount` (#29195)

    ## **Description**

    Testing the new `scopes` added on the `KeyringAccount`.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29195?quickstart=1)

    ## **Related issues**

    Requires this PR to be merged first:
    - [x] https://github.com/MetaMask/metamask-extension/pull/28861

    Related to:
    - https://github.com/MetaMask/accounts/pull/101
    - https://github.com/MetaMask/core/pull/5066
    - https://github.com/MetaMask/snap-bitcoin-wallet/pull/364

    ## **Manual testing steps**

    - Use a previous stable version
    ```console
    git checkout Version-v12.10.0 # Or use a release build
    ```

    - Run it:
    ```console
    yarn
    yarn start:flask
    ```

    - Create a bunch of accounts (EVM, non-EVM (Solana/Bitcoin),
    hardware-wallet, Snap EVM accounts like the SSK)

    ![Screenshot 2025-01-16 at 17 11
    55](https://github.com/user-attachments/assets/815303e6-2682-4c6b-9969-8f4a8c11e0d7)

    - Save your extension logs (Settings > Advanced)
    - Now disable your extension (chrome://extensions)
    - Stops your `yarn start:flask`
    - Now, update your extension by going back to this PR (or by using the
    latest RC if you're validating an RC version)

    ```console
    git checkout feat/keyring-account-scopes
    ```
    - Re-run it:
    ```console
    yarn
    yarn start:flask
    ```
    - Re-enable your extension (chrome://extensions)
    - Open up your console logs (looking at the `service worker`)
    - You should now see some migrations running like:

    ![Screenshot 2025-01-16 at 17 14
    03](https://github.com/user-attachments/assets/35c08ba9-83f4-4827-aac5-97b9ee055732)

    - You should also see some other migrations from the Snap keyring this
    like so:

    ![Screenshot 2025-01-16 at 18 52
    48](https://github.com/user-attachments/assets/5c74700c-18a4-4452-8a47-77d1434c96ad)

    - Save your extension logs again (Settings > Advanced, and use a
    different filename)
    - Now, compare your 2 `.json` files

    ## **Screenshots/Recordings**

    ### **Before**

    ### **After**

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

    ---------

    Co-authored-by: Howard Braham <[email protected]>
    Co-authored-by: MetaMask Bot <[email protected]>

commit fcb30d7034f9fed385d874897a445330b5b47473
Author: Elliot Winkler <[email protected]>
Date:   Tue Jan 21 08:50:04 2025 -0700

    fix: Remove old properties from state (#29792)

    <!--
    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?
    -->

    There are several kinds of errors in Sentry which indicate that there
    are properties in controller state we are attempting to persist that do
    not have corresponding metadata. This indicates that these properties
    were removed at some point from the controller's state but no migration
    was added that removed them from the persisted wallet state. In many
    cases, at the time of removal, such a migration was not needed because
    the controller in question inherited from BaseController v1. We have
    made a targeted effort over the past few years to migrate all
    controllers to BaseController v2, however, and so it matters now that
    every property have corresponding metadata or else are removed from
    state. We don't want these errors to show up in Sentry because they
    create noise, so this commit removes these properties from state.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29792?quickstart=1)

    ## **Related issues**

    Fixes #28289.
    Fixes #28290.
    Fixes #28300.
    Fixes #28302.
    Fixes #28344.
    Fixes #28608.
    Fixes #29746.

    ## **Manual testing steps**

    These changes should not affect users in any way since the errors we are
    trying to avoid occur out of band and should not crash anything.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 212b5c946a4a27d8a21c856f2b3e958a88f7ac7b
Author: João Tavares <[email protected]>
Date:   Tue Jan 21 15:35:01 2025 +0000

    test: address integration tests warnings (#29007)

    <!--
    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**
    General improvements/fixes for integration tests.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29007?quickstart=1)

    ## **Related issues**

    Fixes: https://github.com/MetaMask/metamask-extension/issues/29002

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 64e2c3fb041ae9457da1a0ab333613f95bd22eaf
Author: Priya <[email protected]>
Date:   Tue Jan 21 12:02:10 2025 +0100

    fix: Remove scroll to bottom requirement for signatures (#29817)

    Reverts MetaMask/metamask-extension#29808

    Removes scroll to bottom requirement on signatures
    Improves the clickElementSafe function

commit bb9250d5b5f3a366e279b53cc45ddb100696ddeb
Author: weizman <[email protected]>
Date:   Tue Jan 21 09:18:24 2025 +0200

    feat(lavamoat/lavadome): update integration to improve security (#25653)

    Address concerns under [Safe
    Usage](https://github.com/LavaMoat/LavaDome/blob/main/README.md#safe-usage):
    * [#csp](https://github.com/LavaMoat/LavaDome/blob/main/README.md#csp) -
    do not allow font to be fetched from just about anywhere
    *
    [#execution-order](https://github.com/LavaMoat/LavaDome/blob/main/README.md#execution-order)
    - make sure LavaDome is imported right away

    This should go with #27756

commit ecc29079d7e32882b06b805d35849447afc181d7
Author: Prithpal Sooriya <[email protected]>
Date:   Mon Jan 20 20:24:07 2025 +0000

    build: update the patches applied in the package.json (#29807)

    <!--
    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**

    I think there was a small syntax error when adding multiple patches

    <!--
    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/29807?quickstart=1)

    ## **Related issues**

    Fixes:

    ## **Manual testing steps**

    1. Go to this page...
    2.
    3.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit c99eae23cf40507e5a6e1996b4af190efc205aef
Author: Pedro Figueiredo <[email protected]>
Date:   Mon Jan 20 21:27:31 2025 +0100

    fix: Revert "fix: Remove scroll to bottom requirement for signatures" (#29808)

    Reverts MetaMask/metamask-extension#29784 to address CI failures on
    `main` caused by that PR

commit 210c794a372e29bc953a5c28f824422fe4db6743
Author: Maarten Zuidhoorn <[email protected]>
Date:   Mon Jan 20 18:08:24 2025 +0100

    chore: Bump `@metamask/snaps-rpc-methods` from `^11.9.0` to `^11.9.1` (#29805)

    ## **Description**

    This bumps `@metamask/snaps-rpc-methods` from `^11.9.0` to `^11.9.1`,
    which fixes some bugs and improves error messages related to state
    management.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29805?quickstart=1)

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 5e95217ded0c7ab19b0aa6a676b6acb2f924f942
Author: Jony Bursztyn <[email protected]>
Date:   Mon Jan 20 15:00:56 2025 +0000

    feat: add Portfolio button to BTC accounts (#28184)

    <!--
    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**

    Readds the "Portfolio" button for non-EVM accounts

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/28184?quickstart=1)

    ## **Related issues**

    Fixes: https://github.com/MetaMask/metamask-extension/pull/26148
    https://github.com/MetaMask/metamask-extension/issues/28185

    ## **Manual testing steps**

    1. Go to the Wallet page
    2. Switch to a BTC account
    3. The Portfolio button should be there

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <img width="142" alt="before"
    src="https://github.com/user-attachments/assets/2ff13df2-7db1-44e3-a36c-b9a85248b3c1"
    />

    ### **After**

    <img width="142" alt="Screenshot 2025-01-17 at 14 50 46"
    src="https://github.com/user-attachments/assets/6c65ad87-1822-4fb1-a07b-31dde9066f52"
    />

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
    - [ ] I've completed the PR template to the best of my ability
    - [ ] I’ve included tests if applicable
    - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
    if applicable
    - [ ] I’ve applied the right labels on the PR (see [labeling
    guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)).
    Not required for external contributors.

    ## **Pre-merge reviewer checklist**

    - [ ] I've manually tested the PR (e.g. pull and build branch, run the
    app, test code being changed).
    - [ ] I confirm that this PR addresses all acceptance criteria described
    in the ticket it closes and includes the necessary testing evidence such
    as recordings and or screenshots.

commit d5cd7fd3ad3421952a1222d5115756fac134b95b
Author: jiexi <[email protected]>
Date:   Mon Jan 20 06:26:10 2025 -0800

    feat: Migrate eth_accounts and permittedChains to CAIP-25 endowment (#27847)

    <!--
    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 replaces the replaces the internal `eth_accounts` and
    `endowment:permittedChains` permission structure with a
    [CAIP-25](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-25.md)
    endowment. It adds adapter logic to translate to and from the new
    internal CAIP-25 permissions. This change should be transparent to
    wallet users and to dapps except for ~one~ two cases, see below. This
    change is required in order to support CAIP-25 and CAIP-27 requests in a
    follow-up PR that enables the Multichain API.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/27847?quickstart=1)

    ## **Related issues**

    Related: https://github.com/MetaMask/core/pull/4784

    ## **Manual testing steps**

    There should be no user or dapp facing difference in behavior except:

    * When calling `wallet_revokePermissions` and specifying either
    `eth_accounts` or `endowment:permitted-chains`, the entire CAIP-25
    permission will be revoked. It will appear to the dapp as if both
    `eth_accounts` and `endowment:permitted-chains` were revoked.
    * When calling `wallet_getPermissions` for a permitted dapp when the
    wallet is **locked**, `eth_accounts` should be returned in addition to
    `endowment:permitted-chains`. Currently there is a regression on `main`
    where only `endowment:permitted-chains` gets returned when the wallet is
    locked.

    ```
    await window.ethereum.request({
     "method": "wallet_revokePermissions",
     "params": [
      {
        eth_accounts: {}
      }
    ],
    });

    await window.ethereum.request({
     "method": "wallet_revokePermissions",
     "params": [
      {
        'endowment:permitted-chains': {}
      }
    ],
    });

    await window.ethereum.request({
     "method": "wallet_getPermissions",
     "params": [],
    });
    ```

    ### Locked Wallet Behavior with dapp connected
    Other than the two noted items below, this behavior matches that in
    `main`

    - `eth_accounts` returns []
    - `wallet_getPermissions` returns permissions incl eth_accounts
    - `wallet_revokePermissions` works as usual and revokes eth_accounts and
    revoke permitted-chains together
    - * Note this fixes a regression in `main` where eth_accounts and
    permitted-chains aren't revoked as a pair if either is revoked
    - `eth_requestAccounts` prompts for unlock, after unlock returns
    accounts if any are permitted, otherwise shows connection prompt
    - `wallet_requestPermissions` prompts for unlock
    - signature methods fails with method or accounts not authorized
    - non-signature methods work as usual
    - `accountsChanged` empty array on lock. no event after
    revokePermissions which makes sense since the dapp was told empty array
    on lock and now it's actually empty array so no changes have occurred as
    far as the dapp should be concerned.
    - **CHANGED**: for dapps that were granted chain permissions via the
    `wallet_addEthereum` or `wallet_switchEthereumChain` flows without
    account permissions, these permissions will be removed with this
    migration. We think this ok because:
    - This is a very uncommon scenario for dapps to request chain switches
    without account permissions.
    - These permissions can be regained very trivially with subsequent chain
    switch requests.

    ### Testing the migration
    * Create a dev build from `main`
    * Install the dev build from the `dist/chrome` directory and proceed
    through onboarding
    * Run this command in the background console:
      ```
      chrome.storage.local.get(
        null,
        (state) => {
    state.data.PermissionController = {}; // Replace this line based on
    instructions below
          chrome.storage.local.set(state, () => chrome.runtime.reload());
        }
      );
      ```
    * Disable the extension
    * Switch to `main` and create a dev build
    * Enable and reload the extension
      * You should see in the console that migration 139 has failed

    Repeat the above steps but with the line above replaced with the
    following for example:
    * `state.data.NetworkController = {}; `
    * `state.data.NetworkController = 'foobar'; `
    * `state.data.NetworkController.selectedNetworkClientId = null;`
    * `state.data.NetworkController.networkConfigurationsByChainId =
    'foobar';`

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
    - [x] I've completed the PR template to the best of my ability
    - [x] I’ve included tests if applicable
    - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
    if applicable
    - [x] I’ve applied the right labels on the PR (see [labeling
    guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)).
    Not required for external contributors.

    ## **Pre-merge reviewer checklist**

    - [ ] I've manually tested the PR (e.g. pull and build branch, run the
    app, test code being changed).
    - [ ] I confirm that this PR addresses all acceptance criteria described
    in the ticket it closes and includes the necessary testing evidence such
    as recordings and or screenshots.

    ---------

    Co-authored-by: MetaMask Bot <[email protected]>
    Co-authored-by: Alex <[email protected]>
    Co-authored-by: Elliot Winkler <[email protected]>
    Co-authored-by: Mark Stacey <[email protected]>
    Co-authored-by: Erik Marks <[email protected]>
    Co-authored-by: Frederik Bolding <[email protected]>

commit 5ae45abf4d88d5643cf21d11b7d89c4e4607ffd9
Author: chloeYue <[email protected]>
Date:   Mon Jan 20 14:53:03 2025 +0100

    test: [POM] Migrate bitcoin send e2e tests to POM (#29515)

    ## **Description**

    - Migrate send transaction e2e tests with bitcoin account to POM
    - Create related Bitcoin transaction page class and methods.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/27155?quickstart=1)

    ## **Related issues**

    ## **Manual testing steps**
    Check code readability, make sure tests 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 Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
    - [x] I've completed the PR template to the best of my ability
    - [x] I’ve included tests if applicable
    - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
    if applicable
    - [x] I’ve applied the right labels on the PR (see [labeling
    guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)).
    Not required for external contributors.

    ## **Pre-merge reviewer checklist**

    - [x] I've manually tested the PR (e.g. pull and build branch, run the
    app, test code being changed).
    - [x] I confirm that this PR addresses all acceptance criteria described
    in the ticket it closes and includes the necessary testing evidence such
    as recordings and or screenshots.

commit 2d335c6509e27ac32731dcef0a3c338cf3584ca2
Author: Priya <[email protected]>
Date:   Mon Jan 20 13:13:07 2025 +0100

    fix: Remove scroll to bottom requirement for signatures (#29784)

    <!--
    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**

    Removes scroll to bottom requirement on signatures
    Improves the clickElementSafe function

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29784?quickstart=1)

    ## **Related issues**

    Fixes:
    [#29779](https://github.com/MetaMask/metamask-extension/issues/29779)

    ## **Manual testing steps**

    1. Go to this page...
    2.
    3.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 27d2706008652602d7d950e701460569a1390ed9
Author: sahar-fehri <[email protected]>
Date:   Mon Jan 20 12:06:50 2025 +0100

    fix: patch mantle price fix (#29790)

    ## **Description**

    PR to patch Mantle price core
    [fix](https://github.com/MetaMask/core/pull/5099)

    current Mantle price:
    https://www.cryptocompare.com/coins/mantle/overview/USDC

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29790?quickstart=1)

    ## **Related issues**

    Fixes:

    ## **Manual testing steps**

    1. Add Mantle network from chainList (chainId 5000)
    2. Go to MM and you should see correct fiat balance

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->
    <img width="1800" alt="Screenshot 2025-01-17 at 21 18 51"
    src="https://github.com/user-attachments/assets/1100b7a1-d143-46fd-98b4-4a064f700aa2"
    />

    ### **After**

    <!-- [screenshots/recordings] -->

    <img width="1797" alt="Screenshot 2025-01-17 at 21 17 08"
    src="https://github.com/user-attachments/assets/e166c121-b484-4da4-935e-cb43ad1b7fa5"
    />

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 5887e05bdd1db65710d58dcac4512858b042ba06
Author: OGPoyraz <[email protected]>
Date:   Mon Jan 20 12:01:12 2025 +0100

    feat: Use `gasLimitNoBuffer` on network fee estimation (#29502)

    <!--
    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?
    -->

    While estimating gas for the transaction we add `50%` gas limit buffer.
    With this PR we want to show network fee without gas limit buffer using
    `gasLimitNoBuffer` property on `transactionMeta`.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29502?quickstart=1)

    ## **Related issues**

    Fixes: https://github.com/MetaMask/MetaMask-planning/issues/3773

    ## **Manual testing steps**

    N/A

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    In the recording you will see that `gasLimitNoBuffer` used over
    `txParams.gas`. Please see that `txParams.gas` is greater than
    `gasLimitNoBuffer`. This calculation leads lower value in the UI.

    https://github.com/user-attachments/assets/b5726828-7c13-4eb4-83fa-eea21562e6a9

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [X] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 2751a0d0b6f723718296b1b3ea5f6aef2dc38955
Author: Micaela Estabillo <[email protected]>
Date:   Fri Jan 17 11:28:25 2025 -0800

    chore: retain src input amount after switching tokens (#29709)

    <!--
    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/29709?quickstart=1)

    ## **Related issues**

    Fixes:   https://consensyssoftware.atlassian.net/browse/MMS-1798

    ## **Manual testing steps**

    1. Load bridge page
    2. Select amount, src token and dest token
    3. Click token switch button to swap src and dest selections
    4. Verify that src amount is preserved

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    Amount is cleared

    ### **After**
    Amount is preserved

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [X] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 582ec932f3c4b4a7002f439095c98a7e76b8ab20
Author: Mark Stacey <[email protected]>
Date:   Fri Jan 17 13:02:15 2025 -0330

    test: Fix invalid fixture builder (#29783)

    ## **Description**

    Two of the permission fixture builders were adding permissions for
    accounts that do not exist. They have been updated to only grant
    permissions for the selected account, which is the only account
    guaranteed to exist in the default fixture.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29783?quickstart=1)

    ## **Related issues**

    This was extracted from
    https://github.com/MetaMask/metamask-extension/pull/27847

    ## **Manual testing steps**

    See that E2E tests still pass

    ## **Screenshots/Recordings**

    N/A

    ## **Pre-merge author checklist**

    - [x] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/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
    - [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/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.

commit 3b856331b6e26b8d879206850be2e327220de38e
Author: Brian Bergeron <[email protected]>
Date:   Fri Jan 17 07:56:53 2025 -0800

    fix: stop polling on environment close (#29707)

    ## **Description**

    When the asset controllers start polling, they add their polling tokens
    to app state, keyed by the particular environment (popup vs fullscreen).
    But these polling tokens in app state were not being used during
    cleanup. This PR updates `onEnvironmentTypeClosed` to stop polling by
    those tokens.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29707?quickstart=1)

    ## **Related issues**

    ## **Manual testing steps**

    1. Open MM in fullscreen
    2. Open MM popup
    3. Close the popup
    4. `onEnvironmentTypeClosed` should fire for the popup environment
    5. Each polling token should be found and removed by one of the
    controllers

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 8038f4de18ada13fbd3f29f78a315a981839dad7
Author: Daniel <[email protected]>
Date:   Fri Jan 17 16:43:20 2025 +0100

    feat: Enable BSC for smart transactions (#29747)

    ## **Description**
    Enables BSC for smart transactions and reduces status check time to 1s.

    We can turn off BSC support for smart transactions remotely if needed.

    [![Open in GitHub
    Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29747?quickstart=1)

    ## **Related issues**

    Fixes:

    ## **Manual testing steps**

    1. Make sure smart transactions are enabled in Advanced Settings
    2. Be on the BNB Chain
    3. Submit a tx. It will be submitted as a smart transaction

    Happy paths tested for Swaps, Send and dapp transactions, but this will
    require extensive testing before it goes to production.

    ## **Screenshots/Recordings**

    <!-- If applicable, add screenshots and/or recordings to visualize the
    before and after of your change. -->

    ### **Before**

    <!-- [screenshots/recordings] -->

    ### **After**

    <!-- [screenshots/recordings] -->

    ## **Pre-merge author checklist**

    - [ ] I've followed [MetaMask Contributor
    Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
    Extension Coding
    Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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/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.

commit 8f82ac4f13cb1a67463bec35ca3c977cce4e8a3d
Author: Michele Esposito <[email protected]>
Date:   Fri Jan 17 13:34:02 2025 +0100

    refactor: use `withKeyring` method (#25435) (#27025)

    <!--
    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 cherry-picks def6b15 into `develop`, after being reverted at
    821c3bd. The reason the original commit was re…
  • Loading branch information
jiexi committed Jan 22, 2025
1 parent 46b6166 commit 67843a8
Show file tree
Hide file tree
Showing 1,487 changed files with 81,372 additions and 67,036 deletions.
581 changes: 37 additions & 544 deletions .circleci/config.yml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .circleci/scripts/bundle-stats-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ then
exit 1
fi

if [[ "${CIRCLE_BRANCH}" != "develop" ]]
if [[ "${CIRCLE_BRANCH}" != "main" ]]
then
printf 'This is not develop branch'
printf 'This is not main branch'
exit 0
fi

Expand Down
11 changes: 0 additions & 11 deletions .circleci/scripts/check-working-tree.sh

This file was deleted.

2 changes: 1 addition & 1 deletion .circleci/scripts/check_mmi_trigger.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ if [ -z "$CIRCLE_PULL_REQUEST" ] || [ -z "$GITHUB_TOKEN" ]; then
exit 0
fi

if [[ $CIRCLE_BRANCH = 'develop' || $CIRCLE_BRANCH = 'master' || $CIRCLE_BRANCH =~ ^Version-v[0-9.]* ]]; then
if [[ $CIRCLE_BRANCH = 'main' || $CIRCLE_BRANCH = 'master' || $CIRCLE_BRANCH =~ ^Version-v[0-9.]* ]]; then
echo "Long-running branch detected, running MMI tests."
echo "run_mmi_tests=true" > mmi_trigger.env
exit 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const PR_NUMBER =
process.env.CIRCLE_PR_NUMBER ||
process.env.CIRCLE_PULL_REQUEST?.split('/').pop();

const MAIN_BRANCH = 'develop';
const GITHUB_DEFAULT_BRANCH = 'main';
const SOURCE_BRANCH = `refs/pull/${PR_NUMBER}/head`;

const CHANGED_FILES_DIR = 'changed-files';
Expand Down Expand Up @@ -48,7 +48,7 @@ async function getPrInfo(): Promise<PRInfo | null> {
*/
async function fetchWithDepth(depth: number): Promise<boolean> {
try {
await exec(`git fetch --depth ${depth} origin "${MAIN_BRANCH}"`);
await exec(`git fetch --depth ${depth} origin "${GITHUB_DEFAULT_BRANCH}"`);
await exec(
`git fetch --depth ${depth} origin "${SOURCE_BRANCH}:${SOURCE_BRANCH}"`,
);
Expand Down Expand Up @@ -84,7 +84,7 @@ async function fetchUntilMergeBaseFound() {
}
}
}
await exec(`git fetch --unshallow origin "${MAIN_BRANCH}"`);
await exec(`git fetch --unshallow origin "${GITHUB_DEFAULT_BRANCH}"`);
}

/**
Expand Down Expand Up @@ -123,9 +123,7 @@ async function storeGitDiffOutputAndPrBody() {
// even if we want to skip this step.
fs.mkdirSync(CHANGED_FILES_DIR, { recursive: true });

console.log(
`Determining whether to run git diff...`,
);
console.log(`Determining whether to run git diff...`);
if (!PR_NUMBER) {
console.log('Not a PR, skipping git diff');
return;
Expand All @@ -137,11 +135,13 @@ async function storeGitDiffOutputAndPrBody() {
if (!baseRef) {
console.log('Not a PR, skipping git diff');
return;
} else if (baseRef !== MAIN_BRANCH) {
} else if (baseRef !== GITHUB_DEFAULT_BRANCH) {
console.log(`This is for a PR targeting '${baseRef}', skipping git diff`);
writePrBodyToFile(prInfo.body);
return;
} else if (prInfo.labels.some(label => label.name === 'skip-e2e-quality-gate')) {
} else if (
prInfo.labels.some((label) => label.name === 'skip-e2e-quality-gate')
) {
console.log('PR has the skip-e2e-quality-gate label, skipping git diff');
return;
}
Expand All @@ -164,4 +164,7 @@ async function storeGitDiffOutputAndPrBody() {
}
}

storeGitDiffOutputAndPrBody();
// If main module (i.e. this is the TS file that was run directly)
if (require.main === module) {
storeGitDiffOutputAndPrBody();
}
4 changes: 0 additions & 4 deletions .circleci/scripts/release-create-gh-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ if [[ $current_commit_msg =~ Version[-[:space:]](v[[:digit:]]+.[[:digit:]]+.[[:d
then
tag="${BASH_REMATCH[1]}"
flask_version="$(print_build_version 'flask')"
mmi_version="$(print_build_version 'mmi')"

install_github_cli

Expand All @@ -72,15 +71,12 @@ then
--attach builds-mv2/metamask-firefox-*.zip \
--attach builds-flask/metamask-flask-chrome-*.zip \
--attach builds-flask-mv2/metamask-flask-firefox-*.zip \
--attach builds-mmi/metamask-mmi-chrome-*.zip \
--attach builds-mmi/metamask-mmi-firefox-*.zip \
--message "Version ${tag##v}" \
--message "$release_body" \
--commitish "$CIRCLE_SHA1" \
"$tag"

publish_tag 'Flask' "${flask_version}"
publish_tag 'MMI' "${mmi_version}"
else
printf '%s\n' 'Version not found in commit message; skipping GitHub Release'
exit 0
Expand Down
13 changes: 7 additions & 6 deletions .circleci/scripts/rerun-ci-workflow-from-failed.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const CIRCLE_TOKEN = process.env.API_V2_TOKEN;
const GITHUB_DEFAULT_BRANCH = 'main';

interface Actor {
login: string;
Expand Down Expand Up @@ -59,7 +60,7 @@ interface WorkflowStatusResponse {
* Note: the API returns the first 20 workflows by default.
* If we wanted to get older workflows, we would need to use the 'page-token' we would get in the first response
* and perform a subsequent request with the 'page-token' parameter.
* This seems unnecessary as of today, as the amount of daily PRs merged to develop is not that high.
* This seems unnecessary as of today, as the amount of daily PRs merged to main is not that high.
*
* @returns {Promise<WorkflowItem[]>} A promise that resolves to an array of workflow items.
* @throws Will throw an error if the CircleCI token is not defined or if the HTTP request fails.
Expand Down Expand Up @@ -177,7 +178,7 @@ async function rerunWorkflowById(workflowId: string) {
}

/**
* Re-runs failed CircleCI workflows from develop branch.
* Re-runs failed CircleCI workflows from default branch.
* The workflow will only be re-runed if:
* 1. It has the status of 'failed'
* 2. It has only been run once
Expand All @@ -186,9 +187,9 @@ async function rerunWorkflowById(workflowId: string) {
*
* @throws Will throw an error if fetching the workflows or re-running a workflow fails.
*/
async function rerunFailedWorkflowsFromDevelop() {
console.log('Getting Circle Ci workflows from develop branch...');
const workflows = await getCircleCiWorkflowsByBranch('develop');
async function rerunFailedWorkflowsFromDefaultBranch() {
console.log('Getting Circle Ci workflows from main branch...');
const workflows = await getCircleCiWorkflowsByBranch(GITHUB_DEFAULT_BRANCH);

console.log('Assessing if any of the workflows needs to be rerun...');
for (const item of workflows) {
Expand All @@ -204,7 +205,7 @@ async function rerunFailedWorkflowsFromDevelop() {
console.log('Task completed successfully!');
}

rerunFailedWorkflowsFromDevelop()
rerunFailedWorkflowsFromDefaultBranch()
.catch((error) => {
console.error(error);
process.exitCode = 1;
Expand Down
23 changes: 19 additions & 4 deletions .circleci/scripts/test-run-e2e-timeout-minutes.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
import { fetchManifestFlagsFromPRAndGit } from '../../development/lib/get-manifest-flag';
import { filterE2eChangedFiles } from '../../test/e2e/changedFilesUtil';

const changedOrNewTests = filterE2eChangedFiles();
fetchManifestFlagsFromPRAndGit().then((manifestFlags) => {
let timeout;

// 20 minutes, plus 3 minutes for every changed file, up to a maximum of 30 minutes
const extraTime = Math.min(20 + changedOrNewTests.length * 3, 30);
if (manifestFlags.circleci?.timeoutMinutes) {
timeout = manifestFlags.circleci?.timeoutMinutes;
} else {
const changedOrNewTests = filterE2eChangedFiles();

console.log(extraTime);
// 20 minutes, plus 3 minutes for every changed file, up to a maximum of 30 minutes
timeout = Math.min(20 + changedOrNewTests.length * 3, 30);
}

// If this is the Merge Queue, add 10 minutes
if (process.env.CIRCLE_BRANCH?.startsWith('gh-readonly-queue')) {
timeout += 10;
}

// This is an essential log, that feeds into a bash script
console.log(timeout);
});
25 changes: 0 additions & 25 deletions .circleci/scripts/trigger-beta-build.sh

This file was deleted.

22 changes: 0 additions & 22 deletions .circleci/scripts/validate-source-maps-beta.sh

This file was deleted.

2 changes: 1 addition & 1 deletion .devcontainer/download-builds.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function getGitBranch() {
const gitOutput = execSync('git status').toString();

const branchRegex = /On branch (?<branch>.*)\n/;
return gitOutput.match(branchRegex)?.groups?.branch || 'develop';
return gitOutput.match(branchRegex)?.groups?.branch || 'main';
}

async function getCircleJobs(branch: string) {
Expand Down
36 changes: 25 additions & 11 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Lines starting with '#' are comments.

# GUIDELINES:
# Each line is a file pattern followed by one or more owners.
# Owners bear a responsibility to the organization and the users of this
# application. Repository administrators have the ability to merge pull
Expand All @@ -7,9 +9,11 @@
# follows all policies or without full understanding of the impact of
# those changes on build, release and publishing outcomes.

* @MetaMask/extension-devs
development/ @MetaMask/extension-devs @kumavis
lavamoat/ @MetaMask/extension-devs @MetaMask/supply-chain
# LavaMoat policy changes can highlight security risks. Teams are encouraged to
# audit these changes on their own, and leave their analysis in a comment.
# These codeowners will review this analysis, and review the policy changes in
# further detail if warranted.
lavamoat/ @MetaMask/extension-devs @MetaMask/policy-reviewers @MetaMask/supply-chain

# The offscreen.ts script file that is included in the offscreen document html
# file is responsible, at present, for loading the snaps execution environment
Expand All @@ -28,7 +32,7 @@ offscreen/scripts/offscreen.ts @MetaMask/snaps-devs
# empower our CI steps. ANY addition of orbs to our CircleCI config
# should be brought to the attention of engineering leadership for
# discussion
.circleci/ @MetaMask/library-admins @kumavis
.circleci/ @MetaMask/extension-security-team

# The privacy-snapshot.json file includes a list of all hosts that the
# extension communicates with during the E2E test suite runs. It is not a
Expand All @@ -45,11 +49,11 @@ privacy-snapshot.json @MetaMask/extension-privacy-reviewers
# of contributors. Modifications to this file result in a modification of
# that agreement and can only be approved by those with the knowledge
# and responsibility to publish libraries under the MetaMask name.
.github/CODEOWNERS @MetaMask/library-admins @kumavis
.github/CODEOWNERS @MetaMask/extension-security-team

# For now, restricting approvals inside the .devcontainer folder to devs
# who were involved with the Codespaces project.
.devcontainer/ @MetaMask/library-admins @HowardBraham @plasmacorral
.devcontainer/ @MetaMask/extension-security-team @HowardBraham

# Confirmations team to own code for confirmations on UI.
app/scripts/lib/ppom @MetaMask/confirmations
Expand All @@ -69,30 +73,40 @@ ui/selectors/institutional @MetaMask/mmi
# Slack handle: @metamask-design-system-team | Slack channel: #metamask-design-system
ui/components/component-library @MetaMask/design-system-engineers

# The Notifications team is responsible for code related to notifications,
# authentication, and profile syncing inside the Extension.
# The Notifications team is responsible for code related to notifications

# Controllers
**/controllers/authentication/** @MetaMask/notifications
**/controllers/metamask-notifications/** @MetaMask/notifications
**/controllers/push-platform-notifications/** @MetaMask/notifications
**/controllers/user-storage/** @MetaMask/notifications

# UI
**/metamask-notifications/** @MetaMask/notifications
**/multichain/notification*/** @MetaMask/notifications
**/pages/notification*/** @MetaMask/notifications
**/utils/notification.util.ts @MetaMask/notifications

# Identity team is responsible for authentication and profile syncing inside the Extension.
# Slack handle: @identity_team | Slack channel: #metamask-identity
**/identity/** @MetaMask/identity
ui/pages/settings/security-tab/profile-sync-toggle @MetaMask/identity


# Accounts team is responsible for code related with snap management accounts
# Slack handle: @accounts-team-devs | Slack channel: #metamask-accounts-team

app/scripts/lib/snap-keyring @MetaMask/accounts-engineers

# Swaps team to own code for the swaps folder
# Swaps-Bridge team to own code for the swaps folder
ui/pages/swaps @MetaMask/swaps-engineers
app/scripts/controllers/swaps @MetaMask/swaps-engineers

# Swaps-Bridge team to own code for the bridge folder
**/bridge/** @MetaMask/swaps-engineers
**/bridge-status/** @MetaMask/swaps-engineers

# Ramps team to own code for the ramps folder
**/ramps/** @MetaMask/ramp

# Snaps
**/snaps/** @MetaMask/snaps-devs
shared/constants/permissions.ts @MetaMask/snaps-devs
Expand Down
6 changes: 3 additions & 3 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ If you're picking up a bounty or an existing issue, feel free to ask clarifying
### Submitting a pull request
When you're done with your project / bugfix / feature and ready to submit a PR, there are a couple guidelines we ask you to follow:

- [ ] **Make sure you followed our [`coding guidelines`](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md)**: These guidelines aim to maintain consistency and readability across the codebase. They help ensure that the code is easy to understand, maintain, and modify, which is particularly important when working with multiple contributors.
- [ ] **Make sure you followed our [`coding guidelines`](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md)**: These guidelines aim to maintain consistency and readability across the codebase. They help ensure that the code is easy to understand, maintain, and modify, which is particularly important when working with multiple contributors.
- [ ] **Test it**: For any new programmatic functionality, we like unit tests when possible, so if you can keep your code cleanly isolated, please do add a test file to the `tests` folder.
- [ ] **Meet the spec**: Make sure the PR adds functionality that matches the issue you're closing. This is especially important for bounties: sometimes design or implementation details are included in the conversation, so read carefully!
- [ ] **Close the issue**: If this PR closes an open issue, fill out the "Related issues" section with `Fixes: #$ISSUE_NUMBER`. Ex. For closing issue 418, include the line `Fixes: #418`. If it doesn't close the issue but addresses it partially, just include a reference to the issue number, like `#418`.
- [ ] **Keep it simple**: Try not to include multiple features in a single PR, and don't make extraneous changes outside the scope of your contribution. All those touched files make things harder to review ;)
- [ ] **PR against `develop`**: Submit your PR against the `develop` branch. This is where we merge new features so they get some time to receive extra testing before being pushed to `master` for production. If your PR is a hot-fix that needs to be published urgently, you may submit a PR against the `master` branch, but this PR will receive tighter scrutiny before merging.
- [ ] **PR against `main`**: Submit your PR against the `main` branch. This is where we merge new features so they get some time to receive extra testing before being pushed to `master` for production. If your PR is a hot-fix that needs to be published urgently, you may submit a PR against the `master` branch, but this PR will receive tighter scrutiny before merging.
- [ ] **Get reviewed by MetaMask Internal Developers**: All PRs require 2 approvals from MetaMask Internal Developers before merging.
- [ ] **Ensure the PR is correctly labeled.**: More detail about PR labels can be found [here](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md).
- [ ] **Ensure the PR is correctly labeled.**: More detail about PR labels can be found [here](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md).
- [ ] **PR Titles**: Must adhere to the [Conventional Commits specification](https://www.conventionalcommits.org)
- `<type>[optional scope]: <description>`
- Example: `feat(parser): add ability to parse arrays`
Expand Down
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ body:
- In production (default)
- In beta
- During release testing
- On the development branch
- On main branch
- On a feature branch
validations:
required: true
- type: input
Expand Down
3 changes: 2 additions & 1 deletion .github/guidelines/LABELING_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ It's essential to ensure that PRs have the appropriate labels before they are co
- **regression-RC-x.y.z**: This label is manually added to a bug report issue by release engineers when a bug is found during release regerssion testing phase. The `x.y.z` in the label represents the release candidate (RC) version in which the bug's been discovered.

### Optional labels:
- **regression-develop**: This label can manually be added to a bug report issue at the time of its creation if the bug is present on the development branch, i.e., `develop`, but is not yet released in production.
- **regression-main**: This label can manually be added to a bug report issue at the time of its creation if the bug is present on the development branch, i.e., `main`, but is not yet released in production.
- **feature-branch-bug**: This label can manually be added to a bug report issue at the time of its creation if the bug is present on a feature branch, i.e., before merging to `main`.
- **needs-qa**: If the PR includes a new features, complex testing steps, or large refactors, this label must be added to indicated PR requires a full manual QA prior being merged and added to a release.

### Labels prohibited when PR needs to be merged:
Expand Down
4 changes: 2 additions & 2 deletions .github/pull-request-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ Fixes:

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/main/.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 applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors.

## **Pre-merge reviewer checklist**

Expand Down
Loading

0 comments on commit 67843a8

Please sign in to comment.