-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
chore: stable sync 7.47.3 & 747.2 #17030
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
… `SendTo` page (#15309) - fix: cp-7.47.0 Add safe checksum method in `SendTo` page (#15308) <!-- 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 aims to fix an issue when user puts an unexpected value into `to` field in send flow. It appears from that [the issue](https://metamask.sentry.io/issues/6582066742/?project=2299799) is thrown by `toChecksumAddress` because it doesn't expect any incomplete address. However in send flow UX we let user to type in address themselves. To test this you can go `SendTo` page and put `K` for example - and see the crash. (Screenshot below is fixed version) **Labels** Adding `skip-sonar-cloud` as the raised issue was intentional.  ## **Related issues** Fixes: #15094 ## **Manual testing steps** 1. Go to send flow 2. Input an unexpected address 3. Confirm warning shown - you shouldn't be proceed next step ## **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. [b22bfcc](b22bfcc) Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com>
…15224) (#15339) ## **Description** Render a toast indicating that solana dapp connectivity is coming soon when a user opens the in app browser and their current account is a Solana account. Design is here: https://www.figma.com/design/VqbOpEAsKGogdhZ5IsL4Pu/Solana?m=auto&node-id=2771-7777&t=IUlpwfo4owE10Ybw-1 ## **Related issues** Fixes: #14563 ## **Manual testing steps** 1. ensure that you are building beta by editing your `METAMASK_BUILD_TYPE` to `beta` in the `.js.env` file 2. import or create a wallet 3. create a solona account 4. ensure that the solana account is selected 5. navigate to the browser 6. you should see the Toast that matches the designs pop up 7. now navigate back to the wallet view and select an ethereum account 8. navigate back to the browser 9. notice that the toast does not pop up ## **Screenshots/Recordings** ### **Before** ### **After** <img width="459" alt="Screenshot 2025-05-08 at 9 42 31 PM" src="https://github.com/user-attachments/assets/c54c05f3-5e92-443d-b4d2-22408021d507" /> https://github.com/user-attachments/assets/6ed3aa9e-e5fe-4715-8146-e5c0a3237ddf ## **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.
- feat: cp-7.47.0 solana code fences (#15297)
<!-- 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 portfolio e2e test is causing instability in the smoke pipeline. This PR basically qurantine's the e2e. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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.
<!-- 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 portfolio e2e test is causing instability in the smoke pipeline. This PR basically qurantine's the e2e. ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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. <!-- 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? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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.
# 🚀 v7.46.0 Testing & Release Quality Process Hi Team, As part of our new **MetaMask Release Quality Process**, here’s a quick overview of the key processes, testing strategies, and milestones to ensure a smooth and high-quality deployment. --- ## 📋 Key Processes ### Testing Strategy - **Developer Teams:** Conduct regression and exploratory testing for your functional areas, including automated and manual tests for critical workflows. - **QA Team:** Focus on exploratory testing across the wallet, prioritize high-impact areas, and triage any Sentry errors found during testing. - **Customer Success Team:** Validate new functionalities and provide feedback to support release monitoring. ### GitHub Signoff - Each team must **sign off on the Release Candidate (RC)** via GitHub by the end of the validation timeline (**Tuesday EOD PT**). - Ensure all tests outlined in the Testing Plan are executed, and any identified issues are addressed. ### Issue Resolution - **Resolve all Release Blockers** (Sev0 and Sev1) by **Tuesday EOD PT**. - For unresolved blockers, PRs may be reverted, or feature flags disabled to maintain release quality and timelines. ### Cherry-Picking Criteria - Only **critical fixes** meeting outlined criteria will be cherry-picked. - Developers must ensure these fixes are thoroughly reviewed, tested, and merged by **Tuesday EOD PT**. --- ## 🗓️ Timeline and Milestones 1. **Today (Friday):** Begin Release Candidate validation. 2. **Tuesday EOD PT:** Finalize RC with all fixes and cherry-picks. 3. **Wednesday:** Buffer day for final checks. 4. **Thursday:** Submit release to app stores and begin rollout to 1% of users. 5. **Monday:** Scale deployment to 10%. 6. **Tuesday:** Full rollout to 100%. --- ## ✅ Signoff Checklist Each team is responsible for signing off via GitHub. Use the checkbox below to track signoff completion: # Team sign-off checklist - [x] Accounts - [x] Assets - [x] Confirmations - [x] Earn - [x] Hardware Wallets - [x] Identity - [ ] Mobile Platform (pending incident resolution) - [x] Portfolio - [x] Product Safety - [x] Ramp - [x] SDK - [x] Snaps Platform - [x] Solana - [x] Swaps and Bridge - [x] Transactions - [x] Wallet Framework - [x] Wallet UX This process is a major step forward in ensuring release stability and quality. Let’s stay aligned and make this release a success! 🚀 Feel free to reach out if you have questions or need clarification. Many thanks in advance # Reference - Testing plan sheet - https://docs.google.com/spreadsheets/d/1tsoodlAlyvEUpkkcNcbZ4PM9HuC9cEM80RZeoVv5OCQ/edit?usp=sharing
update version of the app to match 7.46.1 hotfix branch
…when viewing Solana asset details (#16776) - fix(bridge): fix: cp-7.47.3 prevent crash when viewing Solana asset details (#16770) ## **Description** Fixes a crash that occurs when viewing asset details for Solana tokens in the Bridge flow. The issue was caused by `getTokenDetails` assuming all non-EVM asset addresses are already in CAIP format, when the Bridge API sometimes returns raw Solana addresses. ## **Related issues** Fixes #16734 Fixes [SWAPS-2525](https://consensyssoftware.atlassian.net/browse/SWAPS-2525) ## **Manual testing steps** 1. Navigate to Bridge feature 2. Select Solana as source or destination chain 3. Select any Solana token from the token list 4. Tap on the asset detail info button 5. Verify the asset details screen loads without crashing 6. Verify contract address and other details display correctly ## **Screenshots/Recordings** <!-- Add screenshots or recordings demonstrating the fix --> **Before:** https://github.com/user-attachments/assets/cf41e9fa-ae3d-4336-aefe-40017e831364 **After:** https://github.com/user-attachments/assets/ccacf57e-1971-42c4-a3d7-a3978e7c954b ## **Pre-merge author checklist** - [x] I've followed [MetaMask Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md) - [x] I've clearly explained what problem this PR solves - [x] I've linked the issue that this PR fixes - [x] I've included manual testing steps - [x] I've included screenshots/recordings if applicable - [x] I've added unit tests if applicable ## **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 the issue linked above - [ ] I've checked that all unit tests pass ## **Solution Details** ### **Root Cause** The `getTokenDetails` function was calling `parseCaipAssetType` directly on `asset.address` for non-EVM assets, assuming it was already in CAIP format. However, the Bridge API sometimes returns raw Solana addresses instead of CAIP-formatted addresses, causing `parseCaipAssetType` to throw an error. ### **Fix Applied** Implemented the same defensive approach used in `useTokenHistoricalPrices`: ```typescript // Detect if address is already in CAIP format const isCaipAssetType = asset.address.startsWith(`${asset.chainId}`); // Convert to CAIP format if needed const normalizedCaipAssetTypeAddress = isCaipAssetType ? asset.address : `${asset.chainId}/token:${asset.address}`; ``` ### **Benefits** - ✅ **Fixes crash**: Solana asset details now load without errors - ✅ **Backward compatible**: Handles both raw and CAIP format addresses - ✅ **Consistent pattern**: Uses same approach as `useTokenHistoricalPrices` - ✅ **Zero breaking changes**: All existing functionality preserved - ✅ **Future-proof**: Works with any non-EVM chain automatically ### **Testing** - Added comprehensive unit tests covering both scenarios - All 12 tests pass including new test cases - Verified with existing Bridge test suite - Manual testing confirms crash is resolved [SWAPS-2525]: https://consensyssoftware.atlassian.net/browse/SWAPS-2525?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [86633c5](86633c5) [SWAPS-2525]: https://consensyssoftware.atlassian.net/browse/SWAPS-2525?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [SWAPS-2525]: https://consensyssoftware.atlassian.net/browse/SWAPS-2525?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Amitabh Aggarwal <aggarwal.amitabh@gmail.com> Co-authored-by: tommasini <tommasini15@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** <!-- 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? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **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.
Contributor
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
|
No dependency changes detected. Learn more about Socket for GitHub. 👍 No dependency changes detected in pull request |
|
tommasini
approved these changes
Jul 9, 2025
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
No QA Needed
Apply this label when your PR does not need any QA effort.
release-7.52.0
Issue or pull request that will be included in release 7.52.0
team-mobile-platform
Mobile Platform team
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.



Description
This PR sync stable with main for release 7.47.3 & 747.2.
Changelog
CHANGELOG entry:
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
NA
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist