Skip to content

[pull] main from MetaMask:main#412

Merged
pull[bot] merged 5 commits into
Reality2byte:mainfrom
MetaMask:main
Dec 15, 2025
Merged

[pull] main from MetaMask:main#412
pull[bot] merged 5 commits into
Reality2byte:mainfrom
MetaMask:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Dec 15, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

christopherferreira9 and others added 5 commits December 15, 2025 19:31
<!--
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?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **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 Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/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-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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Adds an optional delay to `tapAddAccountButtonV2` and
`tapAccountEllipsisButtonV2`, and updates the multi-SRP e2e test to use
it and wait for visibility to reduce flakiness.
> 
> - **E2E Page Objects (`e2e/pages/wallet/AccountListBottomSheet.ts`)**:
> - `tapAddAccountButtonV2` now accepts `shouldWait` and applies a
conditional `delay`.
> - `tapAccountEllipsisButtonV2` now accepts `{ shouldWait }` with a
conditional `delay`.
> - **E2E Test
(`e2e/specs/identity/account-syncing/multi-srp.spec.ts`)**:
> - Uses `shouldWait: true` when adding an account for SRP 2 and tapping
the ellipsis on the 4th account.
> - Adds explicit visibility assertion for the 4th account’s ellipsis
button before tapping.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
9776e25. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…t details

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

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **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 Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/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-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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Stabilizes tapping the animated Claim button with a delay and
re-enables the market-details claim winnings e2e test.
> 
> - **E2E Predict**:
> - `e2e/pages/Predict/PredictDetailsPage.ts`: `tapClaimWinningsButton`
now uses a `delay: 3000` and refined `elemDescription` to handle
animated claim button.
> - **Tests**:
> - `e2e/specs/predict/predict-claim-positions.spec.ts`: unskips `claim
winnings via market details` test.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6c1c91f. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description**

This PR fixes sentence case violations in lines 3001-4000 of the
`locales/languages/en.json` file as part of ongoing content papercut
improvements. The changes convert Title Case strings to sentence case
following standard capitalization conventions.

**What is the reason for the change?**
Content consistency and adherence to proper sentence case formatting
across the app.

**What is the improvement/solution?**
Updated ~38 locale keys from Title Case to sentence case, and updated
all affected test files to match the new casing.

## **Changelog**

CHANGELOG entry: Fixed sentence case violations in English locale
strings lines 3001-4000

## **Related issues**

Fixes: Part of content papercut improvements batch 4
Follows: #23499 (lines 1-1000), #23516 (lines 1001-2000), #23957 (lines
2001-3000)
Related: #23272 (original comprehensive PR)

## **Manual testing steps**

```gherkin
Feature: Locale string display

  Scenario: user views UI elements with updated locale strings
    Given the app is running with the updated locale file

    When user navigates to Settings screens
    Then "Developer options", "Feature flag override", and "Public address" should display in sentence case

    When user views Developer Options
    Then "Generate trace test" and "Navigate to sample feature" should display in sentence case

    When user views connection details
    Then "Manage connections" should display in sentence case

    When user views app information
    Then "Contact us", "Visit our support center" should display in sentence case

    When user views account details
    Then "Account details" should display in sentence case
```

## **Screenshots/Recordings**

N/A - This is a content-only change with no visual differences beyond
text casing

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
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
- [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-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).

## **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.

---

## **Technical Details**

### Changes Made:
- **Locale file**: Updated ~38 keys in `locales/languages/en.json`
(lines 3001-4000)
- **Test files**: Updated 2 test files with hardcoded string assertions
- **Snapshots**: Regenerated 11 snapshot files to match new casing

### Affected Areas:
- Settings screens (Developer Options, Feature Flag Override)
- AES Crypto Test Form
- Connection management dialogs
- App Information screens
- Reveal Credential screens
- Account Details screens

### Validation:
- All affected unit tests pass
- No old Title Case strings remain in updated test files
- Changes are purely cosmetic (text casing only)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Converts multiple English locale strings to sentence case and updates
all affected unit tests, snapshots, and e2e specs to match.
> 
> - **i18n**:
> - Convert Title Case to sentence case for targeted keys in
`locales/languages/en.json` (3001–4000), e.g., `Developer options`,
`Feature flag override`, `Connection details`, `Hide all`, `Close all`,
`Account details`, gas labels, and transaction review strings.
> - **Tests**:
> - Update unit tests and expectations in `utils.test.js`, gas input
tests, and various screens (Settings, AppInformation, DetectedTokens,
MultichainAccountActions).
> - Regenerate and adjust snapshots under
`app/components/**/__snapshots__` to reflect new casing.
> - Align e2e specs for confirmations (contract deployment, token
approvals) with updated strings.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2734fd7. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
<!--
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 to the mUSD conversion education screen.

### Changes:
- Updated content copy
- Updated background color and image
- Fixed issue where the screen was cutoff on smaller devices
<!--
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?
-->

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: updated mUSD conversion education screen theming

## **Related issues**

Fixes: [MUSD-142: Update conversion education screen
colors](https://consensyssoftware.atlassian.net/browse/MUSD-142)

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **Screenshots/Recordings**

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

### **Before**

<!-- [screenshots/recordings] -->
<img width="497" height="1021" alt="image"
src="https://github.com/user-attachments/assets/2720c0b4-2d51-44a3-b75c-2f639db48134"
/>

### **After**

<!-- [screenshots/recordings] -->
<img width="497" height="1021" alt="image"
src="https://github.com/user-attachments/assets/e45b2e21-f468-45de-b8bd-556699aae277"
/>

## **Pre-merge author checklist**

- [ ] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/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-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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Redesigns the mUSD conversion education screen (theming/layout/text)
and updates `getCloseOnlyNavbar` to accept options including background
color, with tests adjusted.
> 
> - **UI – mUSD Conversion Education**:
> - Re-themed screen to `brandColors.indigo100`; revamped layout to
prevent image cutoff (added `imageContainer`, `contain` scaling,
safe-area edges), centered content with updated spacing.
> - Typography tweaks: heading/body colors, weight, margins; heading now
auto-shrinks to fit.
> - **Navbar**:
> - `getCloseOnlyNavbar` API changed to an options object and now
supports custom `backgroundColor`; integrated in the education view.
> - **Tests**:
> - Updated `Navbar` tests for new function signature and added coverage
for custom background color.
> - **Copy (i18n)**:
>   - Updated mUSD education description and CTA label in `en.json`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f7c5eea. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!--
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 removes usages `@metamask/swaps-controller` util functions where
possible and replaces them with ported functions in
`@metamask/bridge-controller`.

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

```gherkin
Feature: my feature name

  Scenario: user [verb for user action]
    Given [describe expected initial app state]

    When user [verb for user action]
    Then [describe expected outcome]
```

## **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 Mobile
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
- [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-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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Swap-related utilities now use bridge-controller equivalents across
UI, transactions, and token discovery; tests updated accordingly.
> 
> - **Transactions utils (`app/util/transactions/index.js`)**:
> - Replace `@metamask/swaps-controller` usages with
`@metamask/bridge-controller` (`getSwapsContractAddress`,
`isValidSwapsContractAddress`).
> - Update swap detection logic to use new helpers in
`getIsSwapApproveOrSwapTransaction` and `getIsSwapApproveTransaction`.
> - **Engine: Token discovery
(`app/core/Engine/controllers/token-search-discovery-data-controller-init.ts`)**:
> - Use `fetchTokens` from `@metamask/bridge-controller` with
`handleFetch`; add `Hex` typing.
> - **Swaps UI
(`app/components/UI/Swaps/components/ApprovalTransactionEditionModal.js`)**:
> - Use `getSwapsContractAddress` from `@metamask/bridge-controller`
when generating approval transactions.
> - **Tests (`app/util/transactions/index.test.ts`)**:
> - Update spies/imports to reference `@metamask/bridge-controller`
(e.g., `getSwapsContractAddress`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
bab53ca. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@pull pull Bot locked and limited conversation to collaborators Dec 15, 2025
@pull pull Bot added the ⤵️ pull label Dec 15, 2025
@pull pull Bot merged commit 84f9ac4 into Reality2byte:main Dec 15, 2025
0 of 9 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants