Skip to content

feat: ledger dmk#30794

Draft
montelaidev wants to merge 17 commits into
mainfrom
feat/ledger-dmk
Draft

feat: ledger dmk#30794
montelaidev wants to merge 17 commits into
mainfrom
feat/ledger-dmk

Conversation

@montelaidev

@montelaidev montelaidev commented May 29, 2026

Copy link
Copy Markdown
Contributor

Description

This PR introduces a new ledger adapter that uses the Ledger DMK library

Changelog

CHANGELOG entry:

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/MUL-1860?atlOrigin=eyJpIjoiMjM4OTgxMDA5MmFlNDM2YWE5NmI4MGU0Nzc1MTgyMDEiLCJwIjoiaiJ9

Manual testing steps

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

After

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

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.

@montelaidev montelaidev self-assigned this May 29, 2026
@montelaidev montelaidev added the team-accounts-framework Accounts team label May 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamask-ci

metamask-ci Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

PR template — items to address before "Ready for review"

Blocking — these items fail the workflow until fixed:

  • Changelog section has an empty CHANGELOG entry: line. Fill in a description, write CHANGELOG entry: null, or apply the no-changelog label.

Warnings — informational, address before merging:

  • Manual testing steps still contain template content (the Gherkin example title or a [...] placeholder). Replace with real steps, or write N/A — <reason>.
  • Screenshots/Recordings section is empty. Add an image/video for user-facing changes, logs/console output for non-user-facing changes, or write N/A if no evidence is applicable.
  • Pre-merge author checklist has unchecked items (e.g. "I've tested on Android"). Every box must be consciously checked — see docs/readme/ready-for-review.md.

See docs/readme/ready-for-review.md for the full Definition of Ready for Review.

@socket-security

socket-security Bot commented Jul 7, 2026

Copy link
Copy Markdown

@socket-security

socket-security Bot commented Jul 7, 2026

Copy link
Copy Markdown

Caution

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Action Severity Alert  (click "▶" to expand/collapse)
Block High
Obfuscated code: npm ethers is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ?npm/@ledgerhq/context-module@2.0.0npm/@ledgerhq/device-signer-kit-ethereum@1.16.0npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477fnpm/ethers@6.14.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/ethers@6.14.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Medium
Network access: npm @metamask-previews/eth-ledger-bridge-keyring in module globalThis["fetch"]

Module: globalThis["fetch"]

Location: Package overview

From: package.jsonnpm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477f

ℹ Read more on: This package | This alert | What is network access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477f. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Medium
Network access: npm @sentry/utils in module globalThis["fetch"]

Module: globalThis["fetch"]

Location: Package overview

From: ?npm/@ledgerhq/device-transport-kit-react-native-ble@1.3.2npm/@ledgerhq/device-management-kit@1.5.0npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477fnpm/@sentry/utils@6.19.7

ℹ Read more on: This package | This alert | What is network access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/utils@6.19.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @babel/helper-module-imports is 78.0% likely to have a medium risk anomaly

Notes: The analyzed code is a Babel AST helper (ImportBuilder) used to construct import statements and interop-wrapped imports. It contains no indicators of malicious behavior, data exfiltration, backdoors, or runtime abuses. It operates within a compiler/transpiler context to produce code, not to execute arbitrary user data. Therefore, the code itself does not present security risks or malware indicators under normal usage. This is benign library behavior intended for code transformation.

Confidence: 0.78

Severity: 0.55

From: ?npm/expo@55.0.26npm/@babel/helper-module-imports@7.27.1

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@babel/helper-module-imports@7.27.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @babel/helper-module-transforms is 80.0% likely to have a medium risk anomaly

Notes: The code is a legitimate, static-code transformation utility used in Babel to ensure proper behavior of ES module bindings after transforms. There is no evidence of malicious behavior, data leakage, or external communications within this fragment. It operates purely on AST-level transformations consistent with module import/export handling.

Confidence: 0.80

Severity: 0.50

From: ?npm/expo@55.0.26npm/@babel/helper-module-transforms@7.27.1

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@babel/helper-module-transforms@7.27.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @babel/helper-string-parser is 78.0% likely to have a medium risk anomaly

Notes: The analyzed code is a standard, well-structured parsing utility for JavaScript string literals and escapes (consistent with Babel’s helper-string-parser). It includes thorough validation, proper Unicode handling, and defensive error reporting. There is no evidence of malicious behavior, data leakage, or network activity within this fragment. The security risk is low when used as part of a trusted toolchain; the code otherwise poses no evident supply-chain threat based on the provided snippet.

Confidence: 0.78

Severity: 0.55

From: ?npm/@react-native/metro-config@0.83.0npm/@react-native/babel-preset@0.83.0npm/react-native@0.83.6npm/expo@55.0.26npm/depcheck@1.4.7npm/@babel/preset-env@7.26.9npm/@babel/core@7.27.1npm/babel-jest@29.7.0npm/metro-react-native-babel-preset@0.76.9npm/metro-react-native-babel-transformer@0.76.9npm/@babel/helper-string-parser@7.27.1

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@babel/helper-string-parser@7.27.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @babel/plugin-syntax-typescript is 72.0% likely to have a medium risk anomaly

Notes: The code is a standard Babel plugin fragment that configures syntax support for TypeScript by manipulating parser plugins. There is no malicious logic, no data exfiltration, and no unsafe operations. It appears to be a legitimate helper for enabling TypeScript syntax in Babel pipelines.

Confidence: 0.72

Severity: 0.50

From: ?npm/expo@55.0.26npm/@babel/plugin-syntax-typescript@7.25.9

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@babel/plugin-syntax-typescript@7.25.9. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @sentry/utils is 68.0% likely to have a medium risk anomaly

Notes: The code is a conventional utility module for an error-tracking SDK. No malicious behavior detected. The only notable concern is the Math.random() fallback in UUID generation when crypto is unavailable, which is a known compromise and should be documented if cryptographic strength is required in a given deployment. Overall security risk is low to moderate depending on use case, with no external data leakage evident in this fragment.

Confidence: 0.68

Severity: 0.50

From: ?npm/@ledgerhq/device-transport-kit-react-native-ble@1.3.2npm/@ledgerhq/device-management-kit@1.5.0npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477fnpm/@sentry/utils@6.19.7

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/utils@6.19.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm @sentry/utils is 61.0% likely to have a medium risk anomaly

Notes: The code provides environment detection and dynamic module loading designed to support mixed bundler environments. It does not itself implement malicious logic, but its dynamic loading paths present a non-trivial supply-chain risk: if moduleName is influenced by untrusted input, arbitrary modules may be loaded at runtime. A critical reliability issue is the undefined 'module' reference in loadModule’s first call, which should be addressed. Implement input validation, restrict loading to a whitelist of allowed modules, explicitly pass a safe module context, and ensure 'module' is defined or replaced with a controlled loader interface.

Confidence: 0.61

Severity: 0.52

From: ?npm/@ledgerhq/device-transport-kit-react-native-ble@1.3.2npm/@ledgerhq/device-management-kit@1.5.0npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477fnpm/@sentry/utils@6.19.7

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@sentry/utils@6.19.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Potential code anomaly (AI signal): npm ethers is 68.0% likely to have a medium risk anomaly

Notes: The analyzed code fragment appears to be a conventional ABI interface utility (likely from a library like ethers.js) used to parse, encode, and decode Ethereum function calls, events, and errors. There is no evidence of malicious behavior such as data exfiltration, remote control, or code injection. Minor anomalies (typo in an error message and a partially commented/unfinished block) are present but do not constitute malicious activity. Overall security risk from this fragment is low, assuming it is used as intended within a trusted library context.

Confidence: 0.68

Severity: 0.55

From: ?npm/@ledgerhq/context-module@2.0.0npm/@ledgerhq/device-signer-kit-ethereum@1.16.0npm/@metamask-previews/eth-ledger-bridge-keyring@12.3.0-1fa477fnpm/ethers@6.14.1

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/ethers@6.14.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@github-actions

Copy link
Copy Markdown
Contributor

🧪 Flaky unit test detection

Run history flaky detection

View recent run history

Historical failure rate is a hint, not proof — review each suggestion in context. See the flaky-test-detection skill for the full pattern reference and manual audit workflow.

Failures / runs sampled per window:

File 7d 15d 30d
app/core/HardwareWallet/adapters/LedgerBluetoothDMKAdapter.test.ts 0/50 0/178 0/375
app/core/HardwareWallet/adapters/factory.test.ts 0/50 0/178 0/375

AI-detected flaky patterns

app/core/HardwareWallet/adapters/LedgerBluetoothDMKAdapter.test.ts

  • J6 — Arbitrary sleep as synchronization barrier (high)
    • The discoverDevice helper uses two zero-delay setTimeout calls as synchronization barriers — one to let startDeviceDiscovery subscribe to the RxJS Subject, and one to let the scanSubject.next(...) emission propagate through the observable pipeline before stopDeviceDiscovery is called. Even a zero-delay setTimeout is a real timer and is non-deterministic under CI load: if the event loop is busy, the microtask queue may not have drained by the time the timer fires, causing the subscription or emission to be missed. This makes every test in the ensureDeviceReady — device-locked detection suite (which calls discoverDevice in its beforeEach) intermittently flaky. The correct fix is to replace the sleeps with waitFor assertions that poll for the actual observable side-effect (e.g., the adapter having registered the discovered device), or to restructure the test so the RxJS Subject is driven synchronously without needing a flush.
    • Suggested fix in app/core/HardwareWallet/adapters/LedgerBluetoothDMKAdapter.test.ts:130:
      -async function discoverDevice(
      -    id: string = DEVICE_ID,
      -    name = 'Nano X',
      -  ): Promise<void> {
      -    adapter.startDeviceDiscovery(jest.fn(), jest.fn());
      -    await new Promise((resolve) => setTimeout(resolve, 0));
      -    scanSubject.next([{ id, name } as DmkDiscoveredDevice]);
      -    await new Promise((resolve) => setTimeout(resolve, 0));
      -    adapter.stopDeviceDiscovery();
      -  }
      +async function discoverDevice(
      +    id: string = DEVICE_ID,
      +    name = 'Nano X',
      +  ): Promise<void> {
      +    adapter.startDeviceDiscovery(jest.fn(), jest.fn());
      +    // Emit synchronously — the Subject subscription is set up synchronously
      +    // inside startDeviceDiscovery, so no flush is needed before next().
      +    scanSubject.next([{ id, name } as DmkDiscoveredDevice]);
      +    // Wait for the adapter to register the discovered device instead of
      +    // relying on a fixed-delay timer.
      +    await waitFor(() => {
      +      // The adapter exposes discovered devices; poll until the device appears.
      +      // Adjust the accessor to match the actual adapter API.
      +      expect(adapter.discoveredDevices?.length).toBeGreaterThan(0);
      +    });
      +    adapter.stopDeviceDiscovery();
      +  }

app/core/HardwareWallet/adapters/factory.test.ts

  • J3 — Missing jest.clearAllMocks() / jest.resetAllMocks() between tests (high)
    • The file has no beforeEach(() => { jest.clearAllMocks(); }) or jest.resetAllMocks() call anywhere. Module-level mock functions — mockBleStateSubscription.unsubscribe, the observeState / open / listen fns from the BLE transport mock, and the Ledger module mocks — accumulate call history across all tests in the file. The mockOptions object (onDisconnect, onDeviceEvent) is also shared across both describe blocks. While the current tests do not assert on call counts of these mocks, any future test that does (or any test that relies on a mock returning its default value after a previous test has changed it) will fail intermittently depending on test execution order. Adding a beforeEach with jest.clearAllMocks() is the standard guard.
    • Suggested fix in app/core/HardwareWallet/adapters/factory.test.ts:1:
      -// Mock subscription for observeState
      -const mockBleStateSubscription = {
      -  unsubscribe: jest.fn(),
      -};
      -
      -// Mock the BLE transport before importing adapter
      -jest.mock('@ledgerhq/react-native-hw-transport-ble', () => ({
      -  __esModule: true,
      -  default: {
      -    open: jest.fn(),
      -    observeState: jest.fn(() => mockBleStateSubscription),
      -    listen: jest.fn(() => ({ unsubscribe: jest.fn() })),
      -  },
      -}));
      -
      -// Mock Ledger module
      -jest.mock('../../Ledger/Ledger', () => ({
      -  connectLedgerHardware: jest.fn(),
      -  connectLedgerDmkHardware: jest.fn(),
      -  openEthereumAppOnLedger: jest.fn(),
      -  closeRunningAppOnLedger: jest.fn(),
      -}));
      -
      -describe('createAdapter', () => {
      -  const mockOptions: HardwareWalletAdapterOptions = {
      -    onDisconnect: jest.fn(),
      -    onDeviceEvent: jest.fn(),
      -  };
      +describe('createAdapter', () => {
      +  const mockOptions: HardwareWalletAdapterOptions = {
      +    onDisconnect: jest.fn(),
      +    onDeviceEvent: jest.fn(),
      +  };
      +
      +  beforeEach(() => {
      +    jest.clearAllMocks();
      +  });
      +
      +  // ... existing tests unchanged

This check is informational only and does not block merging.

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeAccounts, SmokeConfirmations, SmokeNetworkAbstractions, SmokeNetworkExpansion, SmokeSwap, SmokeStake, SmokeWalletPlatform, SmokeMoney, SmokePerps, SmokeMultiChainAPI, SmokePredictions, SmokeSeedlessOnboarding, SmokeBrowser, SmokeSnaps
  • Selected Performance tags: @PerformanceAccountList, @PerformanceOnboarding, @PerformanceLogin, @PerformanceSwaps, @PerformanceLaunch, @PerformanceAssetLoading, @PerformancePredict, @PerformancePreps
  • Risk Level: high
  • AI Confidence: %
click to see 🤖 AI reasoning details

E2E Test Selection:
Fallback: AI analysis did not complete successfully. Running all tests.

Performance Test Selection:
Fallback: AI analysis did not complete successfully. Running all performance tests.

View GitHub Actions results

@github-actions

Copy link
Copy Markdown
Contributor

⚡ Performance Test Results

ℹ️ Performance test results are currently non-blocking and will not block this PR.

6 tests failed · 20 tests · 1 device

📱 Devices tested (1)

Android: Google Pixel 8 Pro (v14.0)

❌ Failed Tests (6)

@swap-bridge-dev-team

Test Platform Device Reason Recording
Cross-chain swap flow - ETH to SOL - 50+ accounts, SRP 1 + SRP 2 + SRP 3 Android Google Pixel 8 Pro (v14.0) Test error 📹 Watch

@metamask-mobile-platform

Test Platform Device Reason Recording
Connect to Uniswap dapp, edit accounts, choose another account, and skip Solana popup Android Google Pixel 8 Pro (v14.0) Test error 📹 Watch
Cold Start after importing a wallet Android Google Pixel 8 Pro (v14.0) Quality gates exceeded 📹 Watch

@metamask-onboarding-team

Test Platform Device Reason Recording
Onboarding Import SRP with +50 accounts, SRP 3 Android Google Pixel 8 Pro (v14.0) Quality gates exceeded 📹 Watch
Account creation after fresh install Android Google Pixel 8 Pro (v14.0) Quality gates exceeded 📹 Watch

@mm-perps-engineering-team

Test Platform Device Reason Recording
Perps open position and close it Android Google Pixel 8 Pro (v14.0) Test error 📹 Watch
✅ Passed Tests (14)
Test Platform Device Duration Team Recording
Aggregated Balance Loading Time, SRP 1 + SRP 2 + SRP 3 Android Google Pixel 8 Pro (v14.0) 8.41s @assets-dev-team 📹 Watch
Asset View, SRP 1 + SRP 2 + SRP 3 Android Google Pixel 8 Pro (v14.0) 3.82s @assets-dev-team 📹 Watch
Swap flow - ETH to LINK, SRP 1 + SRP 2 + SRP 3 Android Google Pixel 8 Pro (v14.0) 5.56s @swap-bridge-dev-team 📹 Watch
Import SRP with +50 accounts, SRP 1, SRP 2, SRP 3 Android Google Pixel 8 Pro (v14.0) 3.25s @Accounts-team 📹 Watch
Cold Start: Measure ColdStart To Login Screen Android Google Pixel 8 Pro (v14.0) 4.71s @metamask-mobile-platform 📹 Watch
Measure Warm Start: Login To Wallet Screen Android Google Pixel 8 Pro (v14.0) 2.12s @metamask-mobile-platform 📹 Watch
Measure Warm Start: Warm Start to Login Screen Android Google Pixel 8 Pro (v14.0) 0.56s @metamask-mobile-platform 📹 Watch
Perps add funds Android Google Pixel 8 Pro (v14.0) 9.93s @mm-perps-engineering-team 📹 Watch
Predict Available Balance - Complete Flow Performance Android Google Pixel 8 Pro (v14.0) 1.50s @team-predict 📹 Watch
Predict Deposit - Complete Flow Performance Android Google Pixel 8 Pro (v14.0) 11.03s @team-predict 📹 Watch
Predict Market Details - Complete Flow Performance Android Google Pixel 8 Pro (v14.0) 3.66s @team-predict 📹 Watch
Measure Cold Start To Onboarding Screen Android Google Pixel 8 Pro (v14.0) 3.88s @metamask-mobile-platform 📹 Watch
Seedless Onboarding: Apple Login New User Android Google Pixel 8 Pro (v14.0) 13.67s @metamask-onboarding-team 📹 Watch
Seedless Onboarding: Google Login New User Android Google Pixel 8 Pro (v14.0) 11.47s @metamask-onboarding-team 📹 Watch

Branch: feat/ledger-dmk · Build: Normal · Commit: a5d8b35 · View full run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant