[pull] main from MetaMask:main#547
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? --> Context: HYPE token (`eip155:999/slip44:2457`) was incorrectly set to `eip155:999/slip44:1` (`1` instead of `2457`) for some users in NetworkEnablementController.nativeAssetIdentifiers state. This is because https://chainid.network/chains.json is fetched to populate this state, and that chainId "999" references a "WanChain testnet" instead of HyperEVM. PR MetaMask/core#7975 addresses future population by forcing an override at fetch-time. However such fetching is not always triggered if an user had already added the network, hence the need for this migration that - ontop of the PR above - will migrate the incorrect entry ('eip155:999/slip44:1') to the correct one ('eip155:999/slip44:2457'). This migration will operate only if an entry already exists AND is not 'eip155:999/slip44:2457'. ## **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: migrates `NetworkEnablementController.nativeAssetIdentifiers['eip155:999']` to value `eip155:999/slip44:2457` if applicable. ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/NEB-574 ## **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] > **Medium Risk** > Touches persisted migration logic and mutates controller state in-place for affected users, so a bug could impact stored network asset identifiers. Scope is narrowly targeted to one key/value and is covered by focused unit tests and defensive guards. > > **Overview** > Adds **migration `121`** to correct the persisted `NetworkEnablementController.nativeAssetIdentifiers['eip155:999']` value to `eip155:999/slip44:2457` *only when the key exists and is set incorrectly*; invalid/missing controller shapes are detected and reported via `captureException` without mutating state. > > Introduces `121_utils.ts` for type-guard/validation logic (with Sentry reporting) and adds Jest coverage for the main success path and all early-return/error conditions. Registers the new migration in `migrations/index.ts` and bumps `@metamask/network-enablement-controller` from `^4.1.0` to `^4.1.1`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5969ed6. 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** Part 3 of the hardware wallet connection & error management overhaul. This does not introduce user facing changes. Cursor summary mentions the PR being medium risk, but nothing is wired yet, so this is largely low risk. Final implementation will look like this ([Figma designs](https://www.figma.com/design/1F3yNWYLOVPFpTPeJugH20/SWAP?node-id=11110-19571&t=tPMZNNiwCgbDfegd-0)): <img width="1404" height="631" alt="image" src="https://github.com/user-attachments/assets/68850711-f53b-4060-8b47-6faceb67f82f" /> Reference feature branch: #25519 ## **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** No manual testing steps ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [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** - [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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Mostly additive, internal hooks/context plus unit tests; no wiring into user flows yet, with limited risk aside from future integration correctness of the new state transitions. > > **Overview** > Adds new hardware-wallet scaffolding: a `HardwareWalletContext` (with `useHardwareWallet`) to expose connection state, device selection, and HW actions via a single provider. > > Introduces `useHardwareWalletStateManager` to own HW connection state, device id, derived `walletType` from the selected account, and mutable refs (adapter/isConnecting/abort), plus a `resetState` helper. > > Adds `useDeviceEventHandlers` to translate `DeviceEvent` payloads into connection state transitions and normalized error states (including app-not-open, device-locked, connection-failed, and timeouts), and extends HW `types` with `DeviceSelectionState`. Comprehensive unit tests cover these new hooks and context behavior. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 9898d2c. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Gustavo Antunes <17601467+gantunesr@users.noreply.github.com>
Skipping failing test to unblock CI (will be investigated). ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: N/A ## **Manual testing steps** N/A ## **Screenshots/Recordings** N/A ## **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] > **Low Risk** > Production code is unchanged; the main risk is reduced test coverage for cross-wallet search filtering until the test is re-enabled. > > **Overview** > Skips the failing `MultichainAccountSelectorList` Jest test `filters across multiple wallets` by changing it to `it.skip`, with an eslint override to allow a disabled test. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 80b97b9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
… for Android (#26321) <!-- 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 makes a small UI improvement where: - iOS - We show the icon of the auth type that is currently used (This will automatically update based on what the fallback auth type is) - Android - We show a general lock icon, used for both biometrics and pin code ## **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: https://consensyssoftware.atlassian.net/browse/MCWP-277 ## **Manual testing steps** iOS - Authentication icon on Login screen should reflect what the current auth capabilities are (Face ID, Touch ID, or Device Passcode) Android - Authentication icon on Login screen shows lock icon for all authentication types since the system determines what can be used ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> iOS https://github.com/user-attachments/assets/bbe5f88a-6429-4f60-8c64-d7f3765da552 Android <img width="440" height="853" alt="Screenshot 2026-02-20 at 12 05 27 AM" src="https://github.com/user-attachments/assets/fd3e57ad-fa25-4784-9bbc-3270ba47d5e8" /> ## **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** - [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. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > UI/test-id refactor plus a new `authIcon` field derived from device capabilities; low risk but could affect login screen rendering and automated tests if icon mapping/testIDs are wrong. > > **Overview** > Login’s device-auth button is refactored to use the design-system `ButtonIcon` and a single `DEVICE_AUTHENTICATION_ICON` testID (removing the old `BIOMETRY_BUTTON` selector and custom styles). > > Authentication capabilities now include a derived `authIcon` (via new `getAuthIcon`) and the login screen passes this icon into `DeviceAuthenticationButton`, showing explicit Face ID/Touch ID icons on iOS while defaulting to a lock icon (and fallbacks) on Android. Tests and snapshots are updated accordingly, and `AuthCapabilities` is extended to require `authIcon`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 90e4bc2. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
… A/B docs (#26438) ## **Description** This PR standardizes A/B test analytics instrumentation and documentation. 1. Added a generic `EXPERIMENT_VIEWED` analytics event and wired automatic exposure tracking in `useABTest`. 2. `useABTest` now emits `Experiment Viewed` once per `experiment_id + variation_id` assignment per app session (active assignments only). 3. Updated A/B docs to reflect the canonical analytics model: - Use `active_ab_tests` for business events. - Do not add new `ab_tests` instrumentation. - Use naming format `{team}{TICKET_ID}Abtest{TestName}`. - Added migration guidance from legacy `ab_tests`. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: - SWAPS4135 ## **Manual testing steps** ```gherkin Feature: A/B exposure analytics and canonical docs Scenario: active experiment assignment emits exposure event Given a valid A/B flag assignment for a known variant When useABTest is evaluated Then an "Experiment Viewed" event is emitted with experiment_id and variation_id Scenario: duplicate assignment does not double-emit in-session Given the same experiment_id and variation_id assignment When useABTest is mounted multiple times in the same session Then only one exposure event is emitted for that assignment Scenario: docs describe canonical instrumentation contract Given the canonical A/B testing doc When I read implementation guidance Then it instructs using active_ab_tests and migration away from ab_tests ``` Validation command run: - `yarn jest --watchman=false app/hooks/useABTest.test.ts` ## **Screenshots/Recordings** ### **Before** N/A (analytics + docs changes) ### **After** N/A (analytics + docs changes) ## **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 - [ ] 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] > **Medium Risk** > Changes analytics emission behavior for any component using `useABTest`, which could affect event volume/deduping and downstream experiment analysis if misconfigured; functional app behavior is otherwise unchanged. > > **Overview** > `useABTest` now automatically emits a MetaMetrics exposure event (`Experiment Viewed`) whenever a user is assigned to a valid variant, including `experiment_id`/`variation_id` and optional human-readable names, and de-dupes per experiment+variation per app session with a bounded in-memory cache. > > Adds the new `MetaMetricsEvents.EXPERIMENT_VIEWED` definition, expands `useABTest` unit tests to cover exposure emission/dedup/variation changes/cache eviction, and updates `docs/ab-testing.md` to standardize instrumentation on exposure events plus `active_ab_tests` (deprecating new `ab_tests` usage) and provide migration/naming guidance. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit e02ef90. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…#26210) <!-- 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** Improvements in account from/to section on confirmation page. ## **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: MetaMask/MetaMask-planning#7003 ## **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** <img width="399" height="849" alt="Screenshot 2026-02-23 at 6 50 08 PM" src="https://github.com/user-attachments/assets/7080462e-f16e-463e-a6b6-5d18a09d459f" /> ## **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] > **Medium Risk** > UI refactor in the transaction confirmation flow that changes address/name rendering and alert placement, with some risk of regressions in layout and critical confirmation-screen visibility (especially on Android). > > **Overview** > Updates the confirmation **From/To** row layout to a taller two-line, vertically-stacked presentation that shows labels plus a display name (or formatted address fallback) and an identicon for each address. Alert rendering is simplified to use `AlertRow` on the "To" label instead of injecting a custom inline alert into the address component. > > Tests are updated to assert full/regex-matched addresses and new label behavior, and smoke tests now add an Android-only swipe to reveal gas fee details after the row height increase. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5ba37e2. 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** - Migrates custom-reporter.js, PerformanceTracker.js, and AppProfilingDataHandler.js to TypeScript - Splits the monolithic reporter into focused modules: main reporter, report generators (HTML/CSV/JSON), provider enrichers, and shared types - Introduces ISessionDataEnricher interface so session enrichment is provider-agnostic (BrowserStack today, extensible to others) - Moves API retry/fetch logic (getVideoURL, getSessionDetails) into BrowserStackAPI.ts where it belongs; the enricher only handles data transformation - Replaces all console.log usage with the framework's structured createLogger <!-- 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** N/A ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** N/A <!-- [screenshots/recordings] --> ### **After** N/A <!-- [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] > **Medium Risk** > Replaces core test reporting/enrichment logic and changes BrowserStack session URL retrieval/retry behavior, which could affect report generation and CI visibility even though it’s test-only code. > > **Overview** > Migrates the Appwright performance reporting pipeline from the monolithic JS `custom-reporter.js`/`PerformanceTracker.js`/`AppProfilingDataHandler.js` to a modular TypeScript implementation and switches `appwright.config.ts` to use the new `PerformanceReporter.ts`. > > The new reporter centralizes lifecycle handling (`onBegin`/`onTestEnd`/`onEnd`), generates HTML/CSV/JSON outputs via dedicated generator modules, and enriches BrowserStack sessions (video URL, profiling, network logs) through a provider interface (`ISessionDataEnricher`) with a `BrowserStackEnricher` implementation. BrowserStack retry/fallback logic for session video URLs is moved into `BrowserStackAPI.getVideoURL()`/`buildSessionURL()`/`getSessionDetails()`, and extensive unit tests plus shared types/utilities are added to cover the new reporter stack. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 712380f. 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** Update assets controllers to v100.0.3 <!-- 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: update assets controllers to v100.0.3 ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/ASSETS-2632 ## **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] > **Medium Risk** > Dependency-only change, but it upgrades core asset/transaction controller packages, which can subtly affect token balance fetching and transaction handling at runtime. > > **Overview** > Updates dependency versions to pull in `@metamask/assets-controllers@100.0.3` (from `100.0.2`). > > This lockfile update also advances the resolved `@metamask/transaction-controller` version to `62.18.0` via `assets-controllers`’ dependency graph. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 73fd090. 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 : )