[pull] main from MetaMask:main#137
Merged
Merged
Conversation
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> - Overlapping prompts #19363 In this PR we completely removed the BackupAlert/ Protect Wallet Prompt from the flow ## **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 create wallet using SRP Given skip the srp flow When user visit the wallet home page Then no protect wallet prompt should appear ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> #19363 ### **After** <!-- [screenshots/recordings] --> https://github.com/user-attachments/assets/a9e58137-1563-409c-84d9-84edc6f4122e ## **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.
…error handling in EditMultichainAccountName (#19436) <!-- 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 adds duplicate name error handling on rename multichain account form. ## **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: Added duplicate name error handling on rename multichain account form ## **Related issues** Fixes: Jira ticket: https://consensyssoftware.atlassian.net/browse/MUL-792 ## **Manual testing steps** ```gherkin Feature: Rename multichain account Scenario: user renames multichain account Given user navigates to rename multichain account When user tries to set a name that is already taken Then "This name is already in use." should be displayed as an error ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> <img width="390" height="822" alt="Screenshot 2025-09-09 at 11 28 51" src="https://github.com/user-attachments/assets/6bea7a00-bc72-44b2-83c2-3e23590900c2" /> ### **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.
…-flow.spec.ts` (#19412) <!-- 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 flaky test <!-- 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: ## **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.
<!--
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**
Implement cirruslabs cache for iOS
## **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.
<!-- 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 check for NaN before using BigNumber. <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: #19121 ## **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.
<!-- 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** BIP-44: introduce the unified network selector scoped to an account group (EVM + Solana, BTC later) with support for popular and custom networks, CAIP-19 display, and parity with existing feature flags. **Why** • BIP-44 groups multiple accounts under one “account group.” Users need a single selector that reflects all enabled networks for that group instead of EVM-only. core PR: MetaMask/core#6499 <!-- 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: Added a unified network selector for BIP-44 account groups, showing EVM and Solana networks in one place and supporting custom networks. ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: BIP-44 network selector Background: Given I have an account group with at least one EVM account and one Solana account enabled And popular networks are enabled in settings And I am on the wallet home screen ``` ## **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/27b6ef8f-0cd3-49df-8d89-a139b9474a63 <!-- [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.
…te (#19399) ## **Description** It looks like a [recent bug fix](#18887) introduced another where the Lending Deposit Confirm button is re-enabled after press, allowing time for a user to press it again before the transaction view loads. ## **Changelog** CHANGELOG entry: Fixes issue where Confirm button can be clicked several times when submitting Lending Deposit ## **Related issues** Fixes: #19352 ## **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** ### **Before** See here: #18887 ### **After** https://github.com/user-attachments/assets/e43acc15-8e50-4305-b09b-1785e2351f56 ## **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.
## **Description**
Small fix to show the funding cost as an absolute value, colored
accordingly
## **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: Implement logic for colored absolute value funding cost
## **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**
<img width="439" height="881" alt="Screenshot 2025-09-08 at 4 54 33 PM"
src="https://github.com/user-attachments/assets/990d42b8-aa96-4d31-9213-ae2e25f3d2c8"
/>
## **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?
-->
## **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.
## **Description**
Integrating the new multichain account discovery (state 2).
## **Changelog**
CHANGELOG entry: null
## **Related issues**
N/A
## **Manual testing steps**
```gherkin
Feature: Discovers accounts on SRP import/onboarding
Scenario: user onboarding
Given user onboards with an existing SRP
When onboarding succeed
Then account groups (containing accounts) are automatically created
Scenario: user import new SRP
Given user imports new existing SRP
When imports succeed
Then account groups (containing accounts) are automatically created and added
```
## **Screenshots/Recordings**
### **Before**
Logs for current discovery:
```log
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: [ENGINE LOG] Engine+setupSnapProvider: Setup stream for Snap npm:@metamask/solana-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupSnapProvider: Setup bridge for Snap npm:@metamask/solana-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupProviderConnection
(NOBRIDGE) LOG [MetaMask DEBUG]: [ENGINE LOG] Engine+setupSnapProvider: Setup stream for Snap npm:@metamask/bitcoin-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupSnapProvider: Setup bridge for Snap npm:@metamask/bitcoin-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupProviderConnection
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "fbdca8c7-535b-4ac2-a37b-89f0b3888279" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "fbdca8c7-535b-4ac2-a37b-89f0b3888279" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG -- ! perf: ADD_SNAP_ACCOUNT took 589.00ms
(NOBRIDGE) ERROR Failed to fetch transactions for account fbdca8c7-535b-4ac2-a37b-89f0b3888279: [Error: Account not found]
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) ERROR An error occurred while executing an event for Snap "npm:@metamask/solana-wallet-snap": [Error: Account not found]
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "3ca1ec2e-d61f-49e1-a7f6-35abb906f34c" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "3ca1ec2e-d61f-49e1-a7f6-35abb906f34c" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG -- ! perf: ADD_SNAP_ACCOUNT took 1712.00ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "38f22060-f237-4e9b-b9f0-ec341d206ece" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "38f22060-f237-4e9b-b9f0-ec341d206ece" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG -- ! perf: ADD_SNAP_ACCOUNT took 1199.00ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "d6741bad-83f4-42f5-b6f4-8ebfbc74ee0a" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "d6741bad-83f4-42f5-b6f4-8ebfbc74ee0a" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG -- ! perf: ADD_SNAP_ACCOUNT took 1172.00ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "725ff57a-47d2-4b05-ab97-0df4af1879a9" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "725ff57a-47d2-4b05-ab97-0df4af1879a9" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG -- ! perf: ADD_SNAP_ACCOUNT took 1188.00ms
```
### **After**
Logs when state 2 is enabled:
```log
(NOBRIDGE) DEBUG metamask:multichain-account-service [EVM] Discovery STARTED (groupIndex=1) +0ms
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STARTED (groupIndex=1) +5ms
(NOBRIDGE) LOG [MetaMask DEBUG]: [ENGINE LOG] Engine+setupSnapProvider: Setup stream for Snap npm:@metamask/solana-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupSnapProvider: Setup bridge for Snap npm:@metamask/solana-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupProviderConnection
(NOBRIDGE) LOG [MetaMask DEBUG]: [ENGINE LOG] Engine+setupSnapProvider: Setup stream for Snap npm:@metamask/bitcoin-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupSnapProvider: Setup bridge for Snap npm:@metamask/bitcoin-wallet-snap
(NOBRIDGE) LOG [MetaMask DEBUG]: [SNAP BRIDGE LOG] Engine+setupProviderConnection
(NOBRIDGE) DEBUG metamask:multichain-account-service [EVM] Discovery SUCCEEDED (groupIndex=1) +1s
(NOBRIDGE) DEBUG metamask:multichain-account-service [EVM] Discovery STARTED (groupIndex=2) +1ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) DEBUG metamask:multichain-account-service [EVM] Discovery STOPPED (groupIndex=2) +1s
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN Chain processing failed: [Error: Request is being rate limited.]
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "411ab73f-5b3a-4a93-ae58-9131badfac7c" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "411ab73f-5b3a-4a93-ae58-9131badfac7c" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery SUCCEEDED (groupIndex=1) +2s
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STARTED (groupIndex=2) +1ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "78bcf4af-9178-465d-8da6-550c0bb0ed82" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "78bcf4af-9178-465d-8da6-550c0bb0ed82" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery SUCCEEDED (groupIndex=2) +3s
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STARTED (groupIndex=3) +1ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "02221b79-28e5-4666-9df3-21bc3d5ef898" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "02221b79-28e5-4666-9df3-21bc3d5ef898" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery SUCCEEDED (groupIndex=3) +3s
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STARTED (groupIndex=4) +0ms
(NOBRIDGE) LOG [MetaMask DEBUG]: Engine Vault back up successful
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountAssetListUpdated - Found an unknown account ID "32265d87-34c6-42b6-9e35-4856e1e1ab02" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) WARN SnapKeyring - SnapKeyring:accountBalancesUpdated - Found an unknown account ID "32265d87-34c6-42b6-9e35-4856e1e1ab02" for Snap ID "npm:@metamask/solana-wallet-snap". Skipping.
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery SUCCEEDED (groupIndex=4) +2s
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STARTED (groupIndex=5) +1ms
(NOBRIDGE) DEBUG metamask:multichain-account-service [Solana] Discovery STOPPED (groupIndex=5) +551ms
```
## **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: Owen Craston <owen.craston@consensys.net>
Co-authored-by: Fabio Bozzo <fabio.bozzo@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**
Adds `usePerpsToasts` hook which centralizes toast configs and usage.
Toast configurations are located in the `PerpsToastOptions` options.
### Example Usage
```ts
const { showToast, PerpsToastOptions } = usePerpsToasts();
// Wherever displaying a toast desired (e.g. event handler)
showToast(PerpsToastOptions.accountManagement.withdrawal.withdrawalInProgress);
```
<!--
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: added usePerpsToasts hook to centralize toast configs
and usage
CHANGELOG entry: updated HL order error for lowering leverage to return
a user facing error
## **Related issues**
Fixes: https://consensyssoftware.atlassian.net/browse/TAT-1490
## **Manual testing steps**
```gherkin
Feature: replace provider order error for leverage lowering not allowed
Scenario: user places a long order at 5x
Given user attempts to place another long order at 2x
When user submits the order
Then there will be an error message that the user cannot lower their leverage instead of verbose HL error
```
## **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).
- [ ] 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**
- [ ] 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: Nicholas Smith <nick.smith@consensys.net>
<!-- 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** Adding solana name resolution and validation. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: ## **Related issues** Fixes: MetaMask/MetaMask-planning#5647 Fixes: #19318 ## **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** TODO ## **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**
It was reported that on low-end Android devices, that there was a
performance jitteriness with the PerpsChart. This PR aims to address
those issues by adding custom configurations for Android, and tweaking
the sensitivity of the pan gesture handlers.
Additionally, this PR addresses a few other chart related bugs:
1. Yaxis values not showing up for Pers with very small values (like
PUMP)
2. Xaxis values not being localized to user's timezone
3. "More" should be selected when a period within the more menu is
selected
4. Adds skeleton loader
5. Fix for current price line showing the price of the last visible
candle, rather than the current candle price
This PR also introduces the `OHLClegend` component which displays the
OHLC data for each candle when longpressing/dragging over the candles.
When switching candles in this mode, haptics should be executed.
You can double tap the chart to exit out of this mode. You can also pull
down to refresh the chart to it's default period/zoom of 3min/45
candles.
## **Changelog**
CHANGELOG entry: Adds configurations and fixes for candlestick chart UX
## **Related issues**
Fixes:
## **Manual testing steps**
```gherkin
Feature: Candlestick chart navigationPerps
Scenario: user wants to navigate the chart
Given they are on the perps details view
When user pans, they navigate the time series
When user pinches, they zoom in and out of the time series
When a user long presses and drags, they enter into OHLC candle mode, where they see the values of each candle
```
## **Screenshots/Recordings**
High End Android - Samsung Galaxy S23 Ultra
https://github.com/user-attachments/assets/d465c9e1-3fc8-462b-a130-14e80f93d299
Low end Android - Pixel 3a
https://github.com/user-attachments/assets/02d0a827-17dc-40ed-aca0-633edb42c453
## **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.
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.3)
Can you help keep this open source service alive? 💖 Please sponsor : )