[pull] main from MetaMask:main#393
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** PR adding E2E for gas sponsorship via 7702. <!-- 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: null ## **Related issues** Fixes: MetaMask/mobile-planning#2345 ## **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] > Add E2E tests and mocks for EIP-7702 sponsored relay transactions, plus E2E chainId-to-Sepolia handling in the delegation publish hook and supporting selector/utilities. > > - **E2E Tests**: > - Add sponsored EIP-7702 native send tests with success and failure cases in `e2e/specs/.../gas-fee-tokens-eip-7702-sponsored.spec.ts`, including Anvil fixture/state (`withDelegatorContracts.json`), feature-flag setup, and Sentinel simulation/relay mocks. > - Introduce transaction relay mock responses in `e2e/api-mocking/mock-responses/transaction-relay-mocks.ts`. > - Add UI selector `PAID_BY_METAMASK` and corresponding getter in `RowComponents`. > - **Transactions Hook**: > - Route E2E runs to Sepolia by defaulting `chainId` to `0xaa36a7` for delegation environment and signing in `delegation-7702-publish.ts`. > - **Utilities**: > - Add `isE2ETest(chainId)` helper to detect localhost E2E and support the chainId override. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2b31351. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Curtis David <Curtis.David7@gmail.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** After doing an audit into the performance of the components of the Assets team I found out we were re-rendering the FTs many many times unnecessarily. Look at the video to see the proof, this was a combination of issues across the app that have been mitigated in this PR <!-- 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: fix re-rendering of nfts grid ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/ASSETS-1824 ## **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/1368cc62-059c-45e7-9146-337b11f5fa24 ### **After** https://github.com/user-attachments/assets/23547786-8955-43fc-ab3f-c17101fdb1a4 ## **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] > Optimizes NFT grid rendering with a 3-column FlashList and memoized content, reduces image re-renders, hides inactive tabs properly, and updates tests accordingly. > > - **NFT Grid**: > - Refactor to a unified `FlashList` 3-column layout (`numColumns=3`) with per-item padding and controlled scrolling. > - Introduce `NftGridContent` to handle loading/empty states and memoize content. > - Replace grouped rows with flat `collectiblesToRender`; simplify key extraction and long-press handling. > - Adjust item spacing (`mb-3`) and full-view padding; show "View all" when exceeding limit. > - **Images**: > - Convert dynamic styles to static `StyleSheet` in `RemoteImage`. > - Prevent redundant state updates in `onImageLoad` to avoid re-renders. > - **Tabs**: > - Change inactive tab content from `absolute opacity-0` to `hidden` for non-active tabs. > - **Skeleton**: > - Reduce placeholders from 18 to 9 for the NFT grid loading state. > - **Tests**: > - Add `setupSelectorMocks` helper and adapt tests to new grid structure and props (e.g., `numColumns`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c8cceb7. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…23799) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This replaces all use of `MetaMask/github-tools` _workflows_, usually referenced by a specific commit hash, with (composite) _actions_, referenced by a version. This has several benefits: - We can update actions used simply by creating a new release in the `github-tools` repository, propagating the changes to all repositories using the version. - Breaking changes can still be made by creating a major release. - Actions have access to certain variables that workflows don't have access to, letting us omit input options like `github-tools-ref`. - In cases where we're already running other steps, using an action avoids spinning up a new runner. ## **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] > Replaces calls to MetaMask/github-tools reusable workflows with versioned composite actions (@v1) across CI/E2E/release/ops workflows, updating refs, steps, and required inputs. > > - **Workflows migrated from reusable workflows to versioned actions (`@v1`)**: > - `add-team-label`, `automated-rca` (adds `github-token`), `changelog-check`, `log-merge-group-failure`, `publish-slack-release-testing-status`, `remove-rca-needed-label-sheets`, `stale-issue-pr`, `stable-branch-sync`, `update-release-changelog`. > - Release PR workflows: `create-release-pr.yml` (switch to action `create-release-pr@v1`), `create-release-pr-legacy.yml` (adds explicit step with inputs/secrets via action). > - E2E build/test: `build-android-e2e.yml`, `build-ios-e2e.yml`, `run-e2e-workflow.yml`, `run-e2e-smoke-tests-android-flask.yml` (use `setup-e2e-env@v1`/`configure-keystore@v1`). > - **Ref updates/structural changes**: > - Replace pinned SHAs with `@v1`; add `runs-on` and explicit `steps` where needed; move secrets to action inputs (`with`) as required. > - Merge utilities: update `merge-stable-sync-pr.yml` and `merge-version-bump-pr.yml` refs to `merge-approved-pr@v1`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit fae9f6e. 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 : )