[pull] main from MetaMask:main#412
Merged
Merged
Conversation
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->
## **Description**
<!--
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 -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )