[pull] main from MetaMask:main#310
Merged
Merged
Conversation
…59.0 (#22351) <!-- 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** **Problem** The rewards points animation was inconsistently displaying 0 in the UI despite estimatedPoints containing the correct value. This occurred when transitioning from Loading to Idle state because the animation effect only triggers when the value prop changes, not when the animation state changes. When Loading state set animatedValue to 0 and then transitioned to Idle with the same estimatedPoints value, the display remained stuck at 0. **Solution** Added synchronization logic in handleIdleState and handleRefreshFinishedState to ensure animatedValue is always updated to match the current value when entering these states. This guarantees the display correctly animates to the actual points value regardless of whether the value prop changed during state transitions. The fix resolves the race condition between animation state changes and value updates. <!-- 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: #22364 ## **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** https://github.com/user-attachments/assets/e435e3ba-ec00-4ef7-b63d-61ece252876a <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/a7945403-e93a-43f9-adbc-f581ade567ff <!-- [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] > Synchronizes `animatedValue` on Idle and RefreshFinished state entries to avoid the points display sticking at 0; updates callback dependencies accordingly. > > - **UI/Rewards** (`app/components/UI/Rewards/hooks/useRewardsAnimation.ts`): > - **State entry sync**: > - On `Idle` and `RefreshFinished`, ensure `animatedValue` animates to the current `value` if mismatched, preventing a stuck 0 after `Loading`. > - **Animation handling**: > - Repositions fox via `rivePosition` on state transitions; triggers appropriate Rive animations. > - **Hook stability**: > - Expands `useCallback` dependencies (e.g., `animatedValue`, `value`, `rivePosition`) for updated handlers. > - Adds `/* istanbul ignore next */` around Reanimated shared value mutations. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 37f3f6c. 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?
-->
## **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]
> Reduces flakiness in send flow perf tests by adding Android-specific
selectors, extending timeouts, and cleaning up unused options.
>
> - **Tests (performance)**:
> - Increase test timeout to 30 min in
`appwright/tests/performance/login/send-flows.spec.js`.
> - **Screen Objects**:
> - `wdio/screen-objects/SendScreen.js`:
> - Platform-specific `searchTokenField` selector (iOS: catch-all;
Android: `textfieldsearch`).
> - Platform-specific first token badge selection (iOS: XPath; Android:
`badge-wrapper-badge` ID).
> - **Utils**:
> - `appwright/utils/Flows.js`:
> - Remove unused `skipIntro` option from `login`.
> - Increase `dismissMultichainAccountsIntroModal` timeout to 10s.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8082395. 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** The feature to hide tokens is available for EVM assets but not for non-EVM assets. This task involves implementing a similar token hiding feature for non-EVM assets. This is crucial for improving user experience by allowing users to hide unwanted tokens, especially in light of spam and malicious token issues. The implementation should be prioritized to align with upcoming Solana campaigns. Furthermore, having the possibility of hiding tokens is not great if you cannot add tokens back. Therefore I have implemented the whole logic to add non-VEVM tokens to your wallet and remove them from ignored tokens list. In order to get this done the following PRs have been merged into Core: - Support for adding non-evm tokens [here](MetaMask/core#7016) - Support for ignoring non-evm tokens [here](MetaMask/core#6981) Furthermore this PR solves a couple of bugs: - Flashy behavior on the import token header when opening import token screen - Already added tokens could be re-added which was incorrect, they have been disabled now <!-- 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: support importing and ignoring non-evm tokens ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/ASSETS-1425 ## **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** https://github.com/user-attachments/assets/77de0410-53b3-43cc-a6e4-2951db6b2b32 ### **After** https://github.com/user-attachments/assets/629c34bd-e0a9-4eef-bf3c-ec03be874b1a ## **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] > Enables importing and hiding non‑EVM tokens, updates Add Asset/search UI to work across EVM/non‑EVM networks, and improves token removal, explorer links, and already‑added token handling. > > - **Non‑EVM token support**: > - Add tokens via `MultichainAssetsController.addAssets` in `SearchTokenAutocomplete`; retain EVM via `TokensController.addTokens`. > - New `removeNonEvmToken` util to hide non‑EVM tokens; integrate in `Tokens` and `AssetOptions`. > - Disable re‑adding already‑added tokens (EVM via `selectTokensByChainIdAndAddress`, non‑EVM via `selectMultichainAssets`). > - **Add Asset flow**: > - Use `useTopTokens` to source token lists; show loading state; only fetch token list for EVM. > - Render custom Token/NFT tabs only on EVM networks; support non‑EVM search/import. > - Network selector filters to EVM when not adding tokens. > - **Search and lists**: > - Refactor `AssetSearch` to `useTokenSearch` with `allTokens` prop and debounced updates. > - `MultiAssetListItems` switches to `FlashList`, shows network badges, and disables already‑added tokens. > - **Navigation/UI**: > - Update Import screens to use `getImportTokenNavbarOptions` (BottomSheetHeader). > - Enable "Add token" button on non‑EVM networks in `TokenListControlBar`. > - **Asset details**: > - `AssetOptions` handles CAIP addresses for explorers, hides "Remove token" for native/wSOL, and supports non‑EVM removal with notifications/metrics. > - `ConfirmAddAsset` balances support non‑EVM addresses (hexified), and header updated. > - **Tests**: > - Extensive unit/snapshot updates for new behaviors across search, add, list, confirm, tokens, and asset options. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit f43d635. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Kylan Hurt <6249205+smilingkylan@users.noreply.github.com> Co-authored-by: Luis Taniça <matallui@gmail.com> Co-authored-by: Caainã Jeronimo <caainaje@gmail.com> Co-authored-by: Kevin Bluer <kevin@bluer.com>
## **Description** Refactor the existing MetaMask Pay support to use the new `TransactionPayController`. Should result in an identical flow for Predict deposits, but Perps deposits will now use Relay to move funds. Includes: - Remove Perps deposit minimum validation. - New MetaMask Pay metrics. - `mm_pay_strategy` - `mm_pay_network_fee_usd` - `mm_pay_provider_fee_usd` ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes [#6100](MetaMask/MetaMask-planning#6100) [#6149](MetaMask/MetaMask-planning#6149) ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** <img height="500" alt="Perps" src="https://github.com/user-attachments/assets/e0afe13d-c8d7-494e-bec7-2c399b651094" /> <img height="500" alt="Predict" src="https://github.com/user-attachments/assets/0ebc58da-aba6-4ed6-bf1f-c41825293f21" /> ## **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] > Migrates MetaMask Pay to the new TransactionPayController, rewiring Engine, confirmations UI, alerts, and metrics to consume quotes/totals from it and updating tests/mocks accordingly. > > - **Engine/State**: > - Add and initialize `TransactionPayController`, messengers, selectors, and wiring in `Engine`. > - Update `TransactionController` publish hook to use `TransactionPayPublishHook`; remove legacy bridge quote flow from confirmation metrics. > - Add selectors for transaction pay data; deprecate old confirmation metrics fields. > - **Confirmations UI**: > - Replace legacy hooks with `useTransactionPayData` in rows (`BridgeFeeRow`, `BridgeTimeRow`, `TotalRow`), `PayWithRow`, and `CustomAmountInfo`. > - Update alerts to use pay tokens/quotes/totals (`useNoPayTokenQuotesAlert`, `useInsufficientPayToken*`), and pending amount alerts. > - Footer now disables on pay-loading via `useIsTransactionPayLoading`. > - Add `isTransactionDataUpdating` to confirmation context; used by amount update and loading logic. > - Tweak activity views (hero/summary) formatting and labels; format fiat consistently. > - **Metrics**: > - Emit new fields: `mm_pay_strategy`, `mm_pay_network_fee_usd`, `mm_pay_provider_fee_usd`; adjust dust/bridge provider metrics to new quote shape. > - **Constants/Behavior**: > - Set `PERPS_MINIMUM_DEPOSIT` to `0.01`; perps deposits use Relay strategy. > - **Tests/E2E**: > - Update unit tests to new data sources; refresh E2E mocks (gas/price/Arbitrum) and perps add-funds flow. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit eed0bd0. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
## **Description** Update background image for Predict claim confirmation. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: [#6223](MetaMask/MetaMask-planning#6223) ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** <img width="300" alt="Predict Claim" src="https://github.com/user-attachments/assets/2715f304-9c7d-46f5-9567-dbd4cc8f5696" /> ## **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] > No code changes in this PR. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 389c4e6. 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 fixes several minor UI issues on the CardHome and SpendingLimit
screens, such as buttons being partially cut off on Android devices. The
fix involves wrapping the affected components with a proper SafeAreaView
to ensure consistent spacing and layout across platforms.
## **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: Buttons being cut off on Android in CardHome and
SpendingLimit screens
CHANGELOG entry: Improved layout consistency by adding SafeAreaView
wrapping
## **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]
> Exclude Solana from spending limit features in CardHome and refactor
SpendingLimit layout to SafeAreaView + KeyboardAwareScrollView with
minor style tweaks and tests.
>
> - **CardHome**:
> - Update `isSpendingLimitSupported` to exclude Solana via
`isSolanaChainId`; hide progress bar, close-to-limit warning, and
`MANAGE_SPENDING_LIMIT_ITEM` for Solana (`caipChainId`).
> - Minor `ButtonsSection` dependency cleanup to include related
actions/flags.
> - **SpendingLimit**:
> - Replace `ScrollView` with `SafeAreaView` + `KeyboardAwareScrollView`
and adjust styles (`safeAreaView`, `wrapper`, `contentContainer`
padding).
> - **Tests**:
> - Mock `@metamask/bridge-controller.isSolanaChainId` and add cases
validating Solana exclusions for progress bar, manage button, and
warning.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
4504a0d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
## **Description** Add `polymarket_account_created` property to transaction events if Predict deposit creates Safe proxy. ## **Changelog** CHANGELOG entry: null ## **Related issues** Fixes: [#5944](MetaMask/MetaMask-planning#5944) ## **Manual testing steps** ## **Screenshots/Recordings** ### **Before** ### **After** ## **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] > Adds `polymarket_account_created` metric to Predict deposit transactions by detecting Safe proxy creation via 4-byte prefix, with accompanying tests. > > - **Metrics**: > - Add `polymarket_account_created` to `getMetaMaskPayProperties` for `predictDeposit` based on nested tx data starting with `0xa1884d2c`. > - Introduce `FOUR_BYTE_SAFE_PROXY_CREATE` constant for detection. > - **Tests**: > - Add tests asserting `polymarket_account_created` is set to `true`/`false` depending on presence of matching nested transaction. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0092914. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…ert Expo Updates cp-7.59.0 (#22349) <!-- 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** - Disables fingerprinting and caching - Cache builds are hiding numerous errors in the system. This needs to be audited and reconfigured with both the @metamask-mobile-platform and DevOps team - Minor update to make sure test apks are generated for release builds - Caused due to a pipeline update failure masked by cache builds - Revert of Expo Updates #17431 - Causing Android build failure (Platform team will investigate) <!-- 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] > Disables Android E2E fingerprint/cache/repack, adds reliable test APK handling, and removes Expo Updates/OTA across app, iOS, and dependencies. > > - **CI/Build (Android E2E)** > - Disable fingerprint generation, APK cache restore, and repack steps in `.github/workflows/build-android-e2e.yml`. > - Ensure test APKs are built and uploaded; add AAB upload (non-blocking). > - New E2E build path in `scripts/build.sh` with GitHub-optimized Gradle props, retry, and output verification; wired for `main`/`flask` and legacy `releaseE2E`. > - Add default `testBinaryPath` fallbacks in `.detoxrc.js` for all Android variants. > - Tune CI Gradle settings in `android/gradle.properties.github` (lower heap/workers, disable VFS watch, x86_64 arch). > - **Remove Expo Updates/OTA** > - Delete OTA/updates files: `ota.config.js`, `app/constants/ota.ts`, `app/__mocks__/expo-updates.ts`, `ios/Expo.plist`, `scripts/update-expo-channel.js`. > - Strip OTA/updates UI and logic from `app/components/Views/Settings/AppInformation/index.js` and `index.js` (remove `expo-asset`). > - Remove mocks mapping from `jest.config.js`. > - Simplify `app.config.js` (remove updates/runtime config; keep core plugins only). > - Clean `ios/Podfile`/`Podfile.lock` to drop `expo-updates`/related pods; remove `Expo.plist` references in Xcode project. > - Drop `expo-asset` and `expo-updates` from `package.json`; update to `7.60.0`; lockfile pruned accordingly. > - **Misc** > - Update `CODEOWNERS` (remove `scripts/update-expo-channel.js`; add card slice path). > - Remove unused env var from `.js.env.example`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0adea28. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: tommasini <tommasini15@gmail.com>
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 : )