-
Notifications
You must be signed in to change notification settings - Fork 0
feat: 2.5 password sync feature #47
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
base: feat/seedless-multi-srp-update
Are you sure you want to change the base?
feat: 2.5 password sync feature #47
Conversation
|
CLA Signature Action: Thank you for your submission, we really appreciate it. We ask that you all read and sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just by adding a comment to this pull request with this exact sentence:
By commenting with the above message you are agreeing to the terms of the CLA. Your account will be recorded as agreeing to our CLA so you don't need to sign it again for future contributions to this repository. 44 out of 66 committers have signed the CLA. |
## **Description** This is an internal PR of this external Margelo performance PR. MetaMask#16092 -------- Creating new instances of `Intl` is expensive in Hermes. This PR adds simple cache for it. It improves rendering performance of `TokenList` for about 30% because it makes all `TokenListItem` component faster. This also means that there should be less blank spaces when scrolling quickly. It could help also in other places in the app as I replaced all usages of `new Intl` with this new cached version. <!-- 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** N/A - just make sure app currencies and number formatting looks okay. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** ~250ms average for render of `TokenList` (measured on high end device) <img width="888" alt="Screenshot 2025-06-04 at 21 02 19" src="https://github.com/user-attachments/assets/3b316dbd-8010-49f4-874b-92e6c1ff68df" /> ### **After** ~170ms average for render of `TokenList` (30% improvement) <img width="893" alt="Screenshot 2025-06-04 at 20 59 19" src="https://github.com/user-attachments/assets/80cd18de-327f-47d9-ad8f-789a9bcaebb0" /> ## **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.
## **Description**
Given the introduction of Solana accounts in 7.47.0, we must now be
diligent about address comparison. Solana addresses are case sensitive
so we must remove all cases of `.toLowerCase` AND `.toLowerCaseEquals`
when performing address comparison/lookup. Instead I created a new
function called `areAddressesEqual` (code pasted below) which we can use
to handle this case sensitive comparison use case. I maintained the
lowercase comparison for eth addresses since there are many assumptions
about lower case addresses already in the codebase. In places where
comparison was not needed I opted for the `toFormattedAddress` which
handles the account type case for us. Instead of calling
`safeToChecksumAddress` we should call `toFormattedAddress` which
conditionally checksums the address if the account is EVM. Both of these
function definitions are pasted below.
```js
export function areAddressesEqual(address1: string, address2: string) {
if (!address1 || !address2) {
return false;
}
const isAddress1Eth = isEthAddress(address1);
const isAddress2Eth = isEthAddress(address2);
// If one is an ETH address and the other is not, return false
if (isAddress1Eth !== isAddress2Eth) {
return false;
}
// If both are ETH addresses, do a lowercase comparison
if (isAddress1Eth && isAddress2Eth) {
return address1.toLowerCase() === address2.toLowerCase();
}
// If both are not ETH addresses, do a raw comparison.
// This is important for non-EVM addresses since they are case sensitive.
return address1 === address2;
}
export function toFormattedAddress(address: string) {
return isEthAddress(address) ? toChecksumAddress(address) : address;
}
```
We want to avoid any potential issues that could occurs from comparing
two unique addresses that are equal when lowercased. This could cause
issues such as ...
- incorrect assets being displayed
- sending to the wrong address
- Incorrect transaction data
#### Note
- There were several changes to some of these files that were auto
format changes from prettier. The only real changes in this PR are
swapping out `.toLowerCase` for `toFormattedAddress(address)` and the
equivalent unit test fixes.
### For reviewers
- Ensure that your owned file changes make sense. If a component is EVM
only then we may not need to perform this change.
- Look for other cases of `.toLowerCase` AND `.toLowerCaseEquals` and
ensure that the ones I left in the code make sense.
- I left some that were related to ENS, transactions and asset data.
## **Related issues**
Fixes: MetaMask#15404
Resolves: https://consensyssoftware.atlassian.net/browse/MUL-239
## **Manual testing steps**
1. Create a wallet
2. create a sol account
3. import an new SRP
4. create a new Sol account
5. perform a send between your accounts
6. ensure that all the data is correct
7. ensure that all the assets being displayed are as expected
8. ensure that the transaction data being shown on the transaction
details screen is correct for each account.
## **Screenshots/Recordings**
There should be no visible changes with this PR.
### **Before**
https://github.com/user-attachments/assets/0fa9230f-f9de-4524-9fce-f7fd11063043
### **After**
https://github.com/user-attachments/assets/02329abe-c945-4a35-97f2-09401a2a0bdb
#### Tested imported account with multiple tokens and NFTS and its
working as expected
<image
src="https://github.com/user-attachments/assets/6b590409-9917-4d24-8187-f945fbbeb39e"
height="500" width="250" />
<image
src="https://github.com/user-attachments/assets/e1f11be1-f2d7-4aac-b260-5c601e9b6290"
height="500" width="250" />
## **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.
This PR updates the KYC forms to submit data to the deposit provider and builds an MVP build quote page with an amount that can be changed. - adjusts the form keys to match Transak API interfaces - adds MVP UX with input to build quote page - passes amount as params to basic info - passes basic info as params to address form - submit combined kyc data to transak as a `patchUser` call via deposit SDK <!-- 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.
…Mask#16110)" (MetaMask#16154) <!-- 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 e2e pipeline is currently broken on main because of MetaMask#16110. The purpose of this PR is to revert commit `dc87d4f4fbe8358517a642e77dab2fa0704010c4` so that we have a stable pipeline once again. The passing e2e is here: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/c832b5b8-9db1-49f6-8a6e-0cbadde3a222 ## **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** To address MetaMask/MetaMask-planning#4229 , this pr remove the enable automatic security check option in the security settings and hide/disable the check prompt on login This will resultant the minimum version will always been checked. Another pr will remove all the logics and metrics <!-- 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] --> https://github.com/user-attachments/assets/8be6e7dd-46e9-495b-89cc-a2727a3636e9 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/777fc5d3-fd52-4ada-b8f2-b542d8c5819f ## **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. --------- Co-authored-by: hieu-w <maestrokoder@gmail.com> Co-authored-by: hieu-w <hieu@tor.us> Co-authored-by: Chaitanya Potti <chaitanya.potti@gmail.com>
|
I have read the CLA Document and I hereby sign the CLA |
<!-- 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** 1.4 Update New SRP onboarding flow as per figma design https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-redesign?node-id=434-55200&t=wmEoQSF9g9lFtkwp-0 This PR is part 4 of 7 for the new SRP ui update This PR cover - new srp backup ui verification flow <!-- 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] --> https://github.com/user-attachments/assets/37d04ed0-7534-4800-8cbc-228c9add83a6 ## **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. --------- Co-authored-by: smgv <gpatra1996@gmail.com> Co-authored-by: Chaitanya Potti <chaitanya.potti@gmail.com> Co-authored-by: hieu-w <hieu@tor.us> Co-authored-by: hieu-w <maestrokoder@gmail.com> Co-authored-by: tommasini <46944231+tommasini@users.noreply.github.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** To address issue MetaMask/MetaMask-planning#4086 , onboarding wizard is disabled from the wallet home screen. Another PR will be added to remove all related logic and state <!-- 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? --> onboarding wizard tour is disabled ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to Wallet Home Screen after wallet creation 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/8be6e7dd-46e9-495b-89cc-a2727a3636e9 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/fa98c19b-ab94-41ce-8dc9-7f9aa09b2718 ## **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. --------- Co-authored-by: Chaitanya Potti <chaitanya.potti@gmail.com> Co-authored-by: hieu-w <maestrokoder@gmail.com> Co-authored-by: hieu-w <hieu@tor.us>
## **Description** Cleanup ticket that moves the notifications js spec into ts. ## **Related issues** Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-648 ## **Manual testing steps** N/A - this just modifies tests ## **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.
## **Description** Upgrade assets-controllers to v68 ## **Related issues** Fixes: ## **Manual testing steps** 1. Import account wiht NFTs and switch to Ethereum/linea networks 2. Go to NFTs tab 3. You should see all your NFTs on popular networks 4. Click on current network 5. It should filter correctly 6. Remove any NFT on any network 7. Re-Import NFT 8. Should be removed and imported successfully ## **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? --> This PR aims to convert confirmation e2e test files to TS. ## **Related issues** N/A ## **Manual testing steps** N/A ## **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.
…etaMask#16104) ## **Description** ### Problem The current `AccountRightButton` component shows network badges that create confusion about dapp permission behavior: 1. **When dapp is connected:** Shows an "Active Network" badge on the account avatar, suggesting only that network can receive requests 2. **Reality:** Connected dapps can send confirmation requests for any permitted network, making the network badge misleading This UX inconsistency could lead users to believe they're limited to interactions on the displayed network only. ### Solution Simplified the `AccountRightButton` behavior to remove misleading network indicators while maintaining core functionality: **New Behavior:** - When no dapp is connected (!selectedAddress): Shows Global Selected Network avatar - When dapp is connected (selectedAddress exists): Shows account avatar only (no network badge) Maintained Functionality: - **Disconnected state:** Clicking opens network selector - **Connected state:** Clicking opens permissions view where users can edit permitted networks - Network management through permissions remains fully functional ## **Related issues** Fixes: MetaMask/MetaMask-planning#5091 ## **Manual testing steps** 1. Goto the browser tab 2. Goto any dapp and observe that the network avatar is still their and clickable 3. When you connect/give permissions to the dapp, the account avatar still shows and works as usual, but the network badge doesn't show anymore. ## **Screenshots/Recordings** https://github.com/user-attachments/assets/589d195e-eb6f-4889-977b-c633d75a0480 ### **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** - [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.
<!-- 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 PR extracts `getMultichainBlockExplorer` to its own hook to become reusable. <!-- 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 wallet account action 2. Click on the block explorer link. 3. See that it is working like normal. ## **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** This PR adds the new account details behind a feature flag. Changes: 1. Add EditAccountName and ShareAddress components 2. Nav/App has been updated to add the new bottom sheets. 3. `getMultichainBlockExplorer` has been added to `app/core/Multichain/networks.ts` 4. The new multichain account details is behind a feature flag in `app/components/UI/EvmAccountSelectorList/EvmAccountSelectorList.tsx` <!-- 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? 5. What is the improvement/solution? --> ## **Related issues** Depends on: MetaMask#15722 ## **Manual testing steps** 1. Manually enable the remote flag 2. Go to account list 6. Click on the 3 dots menu. 7. See the new account details. 8. Click on the address to see the shareable address component. 9. Click on the name to change name. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/1752700b-fb99-494b-b066-8c699bf5e18a ### **After** https://github.com/user-attachments/assets/2ad59f77-89fa-49b1-bb8f-a493f1ed93b6 <!-- [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.
…MetaMask#15943) <!-- 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** On Android, SelectComponent scrollview does not scroll to the selected item automatically when the modal opens. This PR is copying the behaviour on iOS ## **Related issues** Fixes: MetaMask#15942 ## **Manual testing steps** 1. On Android, go to settings -> general -> currency conversion 2. Open the dropdown 3. Select a currency that's lower down the list, the modal should close after selected 4. Re-open the modal 5. should see the selected currency in view ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **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 - [ ] I’ve included tests if applicable - [ ] 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.
## **Description** This PR changes the account list item to display network avatars. This change supports a more network-centric approach to account selection, which is more valuable in a multichain context. Here is the [Figma](https://www.figma.com/design/MlBUrNnIXlftX4TSjqiUYg/Core-Components?m=auto&node-id=3172-12532&t=kmK0k3E8p5Y6azvO-1) ### Implementation - Account List Network Indicators: The account list now shows the active networks by account using the new `AccountNetworkIndicator` component - Smart Network Activity Sync: Added a new `useAccountsWithNetworkActivitySync` hook that centralizes network activity fetching logic for: - First load (only once per app session, if basic functionality is enabled) - Transaction completion (confirmed transactions) - Manual triggers (e.g., after account creation, import etc) - Improved Multichain Experience: Integrated network indicators into both `CaipAccountSelectorList` and `EvmAccountSelectorList` components to show users which networks have activity for each account ### When the data is refreshed - On first load - On transaction confirmed - On SRP import - On Private key import ### Key Components Added/Modified - AccountNetworkIndicator: New component that displays network avatars for accounts with transaction activity - useAccountsWithNetworkActivitySync: New hook for managing network activity data synchronization ## **Related issues** Feature: [MetaMask#4057](MetaMask/MetaMask-planning#4057) ## **Manual testing steps** ### On First Load 1. Go to this page wallet home screen 2. Click on account picker at the top 3. Observe that account selector now have network icons sorted by aggregated network balance ### Import SRP 1. import a address with activity using your SRP 2. Observe that the correct networks are shown ### Import Private Key 1. import a address with activity using your private key 2. Observe that the correct networks are shown ### Send a transaction to a network that hasn't had transaction before 1. Find a fresh address with no activity 2. Observe that there are no networks avatars in the account list 3. Send a transaction to this new address 4. Observe the new network avatars ## **Screenshots/Recordings** ### Recording | Before | After | |:---:|:---:| ||| ### Screenshot | Before | After | |:---:|:---:| ||| ### Dapp Permissions <img src="https://github.com/user-attachments/assets/92119f84-eb85-4caf-982b-dce83a80f5c6" width=350 > ### **Before** NA ### **After** NA ## **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.
<!-- 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 addresses multiple E2E test failures across the MetaMask mobile app by fixing selector mismatches, UI flow changes, and platform-specific compatibility issues. The fixes ensure tests work reliably across both iOS and Android platforms. ### Root Issues Identified - Confirmation UI Migration: The app had transitioned to a new confirmation UI by default, but tests were still using selectors from the legacy confirmation interface - Terms of Use Flow Changes: The Terms of Use modal now appears earlier in the onboarding flow, blocking access to subsequent screens - Platform-Specific Selector Conflicts: Cross-platform differences in checkbox and button selectors causing test failures - Feature Flag Conflicts: Tests needed to force specific UI states for consistent behavior ## **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** Mandatory modal are dismisaable after using the BottomSheet Modal. Mandatory modal for terms of use are not suppose to be able to be dismissed This PR fix the mandatory modal to be not dismissable <!-- 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.
<!-- 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: MetaMask#16186 ## **Manual testing steps** 1. Go to swap page 2. Generate a quote 3. Verify that clicking Terms & Conditions opens a web view with the T&Cs content ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/cef8e499-a7c0-43bf-8712-d53c336a84cc ## **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.
<!-- 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** Recreated version of MetaMask#16110 ## **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.
…k#15767) <!-- 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 PR fixes 2 issues, network change event not reflecting and invalid network being shown on personal_sign, and handleSendTransaction. Improved the code to better manage getting the current network with support for the latest Per-DApp Selected changes. Additionally when personal_sign or other activity like handleSendTransaction where still using old globalNetworkSelector and for this case we added a check isPerDappSelectedNetworkEnabled and use other selectors when true and fallback to old global network selector if the flag is not yet activated. Also brought some minimal improvements to the code for better readability, reduce code duplicity, etc. <!-- 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: MetaMask#15240 ## **Manual testing steps** Please follow the instructions in the related [github issue](MetaMask#15240) ## **Screenshots/Recordings** 1st Issue, personal sign showing wrong network after changing the selected network from the Dapp. | Before | After (with multichain flags) | |--------------|--------------| | <video src="https://github.com/user-attachments/assets/d02fcf6e-d20f-4439-a18e-7638637f54d7"> |<video alt="as" src="https://github.com/user-attachments/assets/d6b45d57-5abf-4119-ab5a-bd2dc9e2bc5f"> | Currently failing, switches network but does not show personal_sign after | 2nd issue, transaction preview shows wrong network selected | Before | After (with multichain flags) | |--------------|--------------| | Not recorded | <video src="https://github.com/user-attachments/assets/8b3085d9-b171-4106-a1bd-ddc9d0cc4784"> | ## **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. --------- Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com> Co-authored-by: tommasini <tommasini15@gmail.com>
…le. (MetaMask#16150) <!-- 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 enables the per dapp selected network feature flag. And updates the related unit tests. These files have failing tests need to be fix on main: modified: app/components/UI/PermissionsSummary/PermissionsSummary.test.tsx (snaps updated by Eric) modified: app/components/UI/TransactionElement/TransactionDetails/index.test.tsx (snaps updated by Eric) modified: app/components/Views/AccountPermissions/AccountPermissions.test.tsx (fixed by Eric) modified: app/components/Views/confirmations/components/confirm/confirm-component.test.tsx (fixed by Goktug) modified: app/components/Views/confirmations/components/info-root/info-root.test.tsx (fixed by Goktug) modified: app/components/Views/confirmations/components/info/switch-account-type/switch-account-type.test.tsx (fixed by Goktug) modified: app/components/Views/confirmations/legacy/SendFlow/Confirm/index.test.tsx (fixed by Goktug) <!-- 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. --------- Co-authored-by: EtherWizard33 <etherwizard22@gmail.com> Co-authored-by: OGPoyraz <omergoktugpoyraz@gmail.com> Co-authored-by: NidhiKJha <menidhikjha@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? --> This PR fixes a typo and clarifies some iOS E2E testing setup. ## **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** <!-- [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 - [ ] I’ve included tests if applicable - [ ] 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.
…found (MetaMask#16584) <!-- 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** Right now in initializeVaultFromBackup() from EngineService, getVaultFromBackup() always returns an object that will be true, making keyringState always defined. This PR addresses this by: - Fixing the condition to explicitly check for the status of the success property from the getVaultFromBackup result, instead of relying on object truthiness - renamed the variable keyringState to vaultBackupResult which is more descriptive and accurately reflects what the variable contains ## **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 - [ ] I’ve included tests if applicable - [ ] 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.
<!-- 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** - Adds the "Deposit Button Clicked" track and trace events. - Moves aggregator analytics files one level higher to the shared Ramp folder so it can be reused with deposit <!-- 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.
<!-- 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 PR refactors the `useTokenRates` and `useDepositTokenExchange` to use `assetId` instead of symbol as identifier of tokens. ## **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.
## **Description** Ensure that bottom sheet dialog respects the top notch for all devices. Specifically lower Pixel devices like Pixel 3. The behaviour should remain the same for all other devices including iOS ## **Related issues** MetaMask#15491 MetaMask/MetaMask-planning#5128 MetaMask#16338 ## **Manual testing steps** We need to test a fullscreen bottom sheet. Here is one of the example from deeplink modal 1. In the file app/components/Nav/Main/Index.js. Import import handleDeepLinkModalDisplay from '../../../core/DeeplinkManager/Handlers/handleDeepLinkModalDisplay'; and add this line inside the useEffect in line 130 handleDeepLinkModalDisplay({ linkType: 'public', pageTitle: 'MetaMask', onContinueCallBack: () => alert('continue'), }); 2. Private deep link modal should pop up when you start the app ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** Pixel 3 <img width="326" alt="Screenshot 2025-06-24 at 5 28 50 PM" src="https://github.com/user-attachments/assets/c7a654b7-96d8-4285-bce8-b1ff180fd003" /> ### **After** Pixel 3 <img width="340" alt="Screenshot 2025-06-24 at 5 01 28 PM" src="https://github.com/user-attachments/assets/b32212ac-bd49-4d95-80f2-29ab621f77b8" /> <!-- [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 - [ ] 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.
…o accounts permitted (MetaMask#16377) <!-- 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** A helper function used for facilitating chain switching and permissions related to it incorrectly requires accounts to permitted before setting the per dapp selected network for that dapp. This seems to be a scenario that is possible in Snaps specifically making it so that Snaps are unable to switch their selected network. The fix is to remove this requirement for accounts as it isn't truly needed in the first place. ## **Related issues** Fixes: ## **Manual testing steps** 1. Visit https://metamask.github.io/snaps/test-snaps/latest/ 2. Connect to Ethereum Provider Snap 3. Change the Select Chain Dropdown 4. Click Get Chain Id 5. Should match each time ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/48d65c48-c61c-44dd-8dbd-aa97f4ef9958 ## **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** Adds the ability for a user to resend the provider authentication code if they did not receive one. - 30 cooldown timer - support link displayed if user attempts to resend more than 3 times (support link navigation coming in future 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? --> ## **Related issues** Fixes: ## **Manual testing steps** 1. navigate to otp page and click the resend button 2. Confirm you receive another email ## **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. --------- Co-authored-by: AxelGes <axelges9@gmail.com> Co-authored-by: Pedro Pablo Aste Kompen <wachunei@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** Fix account mismatch with identity rollout blocker issue The reported sentry bug implies that there are accounts permitted to a dapp that don't exist in the wallet. We have already audited what we believe to be all possible places an account can be removed from the wallet and see that there is accompanying code that removes the said account from all permissions beforehand. We also verified that it does not seem possible to grant Solana accounts to a dapp in the affected versions which could have been another culprit. This leads us to believe that there must be some race condition in rendering. The hope is that this bug goes away OR bubbles up somewhere else where we may have more clues to help find the root cause. <!-- 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: MetaMask#16587 ## **Manual testing steps** None. We don't know the actual cause yet. ## **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.
remove unwanted lint changes
- Added OnboardingSheet component for user onboarding options. - Integrated AccountStatus component to handle existing account scenarios. - Updated navigation routes to include new onboarding flows. - Enhanced ChoosePassword component to support OAuth login success handling. - Updated localization files to include new strings for onboarding and account status. - Added tests for new components and updated existing tests for integration. This commit enhances the user experience during onboarding and account management by providing clear options and feedback for existing users.
…nd Authentication components
…ion and restoration
Co-authored-by: Ganesh Suresh Patra <ganesh.patra@consensys.net>
Co-authored-by: Tuna <tunguyenanh@tunatech.org>
4d6c589 to
9ea0829
Compare
Description
Password sync check if seedless flow on
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist