Skip to content

feat: more wallet support for second-class chains#769

Merged
gomesalexandre merged 11 commits intomasterfrom
feat_second_class_mm
Dec 15, 2025
Merged

feat: more wallet support for second-class chains#769
gomesalexandre merged 11 commits intomasterfrom
feat_second_class_mm

Conversation

@gomesalexandre
Copy link
Contributor

@gomesalexandre gomesalexandre commented Dec 12, 2025

Description

Enables MetaMask, Ledger, Trezor, and WalletConnect V2 support for second-class EVM chains (HyperEVM, Monad, Plasma). Previously only Native wallet had support enabled.

Issue

Testing

  • Ledger: Test account derivation and transaction signing for HyperEVM, Monad, and Plasma
  • Trezor: Test account derivation and transaction signing for HyperEVM, Monad, and Plasma
  • MIPD Wallets (MetaMask/Rabby): Test account derivation and transaction signing for HyperEVM, Monad, and Plasma
  • WalletConnect V2: Test account derivation and transaction signing for HyperEVM, Monad, and Plasma
  • WalletConnect dApps: Worth testing WC dApp integrations for these chains, even though not exclusively brought by this PR, as we've never tested it before

Warnings

⚠️ MetaMask Desktop - HyperEVM Chain Addition: MetaMask Desktop requires manually enabling HyperEVM in "Additional Networks" from their Settings UI. If you try to let the app add the network via wallet_addEthereumChain, it will fail with a duplicate RPC URL error. This is not our issue - it's because MM already has HyperEVM in their network registry.

⚠️ MetaMask Mobile - WalletConnect Chain Addition: MetaMask Mobile fails when adding chains via WalletConnect. This is not a new issue but may be worth 1-2 hours of debugging to determine if this is something we can handle better or if it's a MetaMask Mobile limitation. In the interim, if testing WC with MM Mobile, first use the dApp browser (e.g., via Relay) to manually add all 3 chains before connecting via WalletConnect.

Screenshots

MetaMask/Rabby (MIPD Wallets)
https://jam.dev/c/51e0580a-34e6-453f-ae67-f8a9a2ab87ed

Ledger
https://jam.dev/c/376d984e-d5cf-4e38-a6c3-7deecce57c88

Trezor
https://jam.dev/c/68de9989-a18e-4fc2-b387-6076ac686264

WalletConnect V2
https://jam.dev/c/0ec7b43d-e01e-4061-9004-4413511bcbfa

Feature Flag OFF Regression Test
https://jam.dev/c/8107541a-f2fe-424a-94c8-9fb8dd9107c0

WalletConnect dApps

https://jam.dev/c/89116565-8212-4dff-93f2-21e7aa5a08ed

Summary by CodeRabbit

  • New Features
    • Enabled Monad, Plasma, and HyperEVM support across Ledger, MetaMask Multichain, Trezor, and WalletConnect V2 integrations.
  • Chores
    • Bumped package versions from 1.62.28 → 1.62.29 across multiple packages and aligned dependency versions.

✏️ Tip: You can customize this high-level summary in your review settings.

gomesalexandre and others added 10 commits December 12, 2025 11:51
Enables HyperEVM, Monad, and Plasma support in hdwallet-metamask-multichain.

These chains use standard Ethereum cryptography and MetaMask is
chain-agnostic, so there's no technical barrier to supporting them.
Previously only Native wallet had support enabled.

Changes:
- Set _supportsHyperEvm = true
- Set _supportsMonad = true
- Set _supportsPlasma = true

This allows MetaMask users to import and use accounts on these
second-class EVM chains when feature flags are enabled in web.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Enables HyperEVM, Monad, and Plasma support in hdwallet-ledger.

Ledger uses the Ethereum app for all EVM chains, so there's no
technical barrier to supporting these second-class chains.
Previously only Native and MetaMask wallets had support enabled.

Changes:
- Set _supportsHyperEvm = true
- Set _supportsMonad = true
- Set _supportsPlasma = true

This allows Ledger users to import and use accounts on these
second-class EVM chains when feature flags are enabled in web.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Enables HyperEVM, Monad, and Plasma support in hdwallet-trezor.

Trezor uses the Ethereum app for all EVM chains, so there's no
technical barrier to supporting these second-class chains.
Previously only Native, MetaMask, and Ledger wallets had support enabled.

Changes:
- Set _supportsHyperEvm = true
- Set _supportsMonad = true
- Set _supportsPlasma = true

This allows Trezor users to import and use accounts on these
second-class EVM chains when feature flags are enabled in web.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Enables HyperEVM, Monad, and Plasma support in hdwallet-walletconnectv2.

WalletConnect V2 is chain-agnostic and supports any EVM chain that
connected wallets support. There's no technical barrier to supporting
these second-class chains.

Changes:
- Set _supportsHyperEvm = true
- Set _supportsMonad = true
- Set _supportsPlasma = true

This allows WalletConnect V2 users to import and use accounts on these
second-class EVM chains when feature flags are enabled in web.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Dec 12, 2025

📝 Walkthrough

Walkthrough

Enable three capability flags (_supportsMonad, _supportsPlasma, _supportsHyperEvm) by flipping their readonly initializers from false to true in multiple HD wallet implementations; also bump many package versions from 1.62.28 → 1.62.29 across packages and examples. No control-flow or method changes.

Changes

Cohort / File(s) Change Summary
HD Wallet capability flags
packages/hdwallet-ledger/src/ledger.ts, packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts, packages/hdwallet-trezor/src/trezor.ts, packages/hdwallet-walletconnectV2/src/walletconnectV2.ts
Flip readonly capability flags _supportsMonad, _supportsPlasma, and _supportsHyperEvm from falsetrue on the listed wallet classes/Info surfaces.
Package/version bumps
examples/sandbox/package.json, integration/package.json, lerna.json, packages/*/package.json (many packages; e.g., packages/hdwallet-core/package.json, packages/hdwallet-ledger/package.json, packages/hdwallet-trezor/package.json, packages/hdwallet-metamask-multichain/package.json, etc.)
Bump package versions from 1.62.281.62.29 and update inter-package dependency pins to 1.62.29. No code or API changes in source files beyond manifest updates.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Homogeneous, low-risk changes to readonly property initializers across four wallet implementations plus numerous manifest version bumps.
  • Files to spot-check: ledger.ts, trezor.ts, shapeshift-multichain.ts, walletconnectV2.ts, and a representative subset of package.json files to ensure consistent versioning.

Possibly related PRs

Suggested reviewers

  • NeOMakinG

Poem

🐰 I hopped through code with nimble paws,

Flipped three flags without a pause,
Monad, Plasma, HyperEVM—hooray!
Versions climbed a single day,
Tiny change, big-hearted cause 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: more wallet support for second-class chains' accurately describes the main change: enabling MetaMask, Ledger, Trezor, and WalletConnect V2 support for HyperEVM, Monad, and Plasma chains by setting support flags to true.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat_second_class_mm

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f36df12 and 6fd652b.

📒 Files selected for processing (27)
  • examples/sandbox/package.json (2 hunks)
  • integration/package.json (2 hunks)
  • lerna.json (1 hunks)
  • packages/hdwallet-coinbase/package.json (2 hunks)
  • packages/hdwallet-core/package.json (1 hunks)
  • packages/hdwallet-gridplus/package.json (2 hunks)
  • packages/hdwallet-keepkey-chromeusb/package.json (2 hunks)
  • packages/hdwallet-keepkey-electron/package.json (2 hunks)
  • packages/hdwallet-keepkey-nodehid/package.json (2 hunks)
  • packages/hdwallet-keepkey-nodewebusb/package.json (2 hunks)
  • packages/hdwallet-keepkey-tcp/package.json (2 hunks)
  • packages/hdwallet-keepkey-webusb/package.json (2 hunks)
  • packages/hdwallet-keepkey/package.json (2 hunks)
  • packages/hdwallet-keplr/package.json (2 hunks)
  • packages/hdwallet-ledger-webhid/package.json (2 hunks)
  • packages/hdwallet-ledger-webusb/package.json (2 hunks)
  • packages/hdwallet-ledger/package.json (2 hunks)
  • packages/hdwallet-metamask-multichain/package.json (2 hunks)
  • packages/hdwallet-native-vault/package.json (2 hunks)
  • packages/hdwallet-native/package.json (2 hunks)
  • packages/hdwallet-phantom/package.json (2 hunks)
  • packages/hdwallet-portis/package.json (2 hunks)
  • packages/hdwallet-trezor-connect/package.json (2 hunks)
  • packages/hdwallet-trezor/package.json (2 hunks)
  • packages/hdwallet-vultisig/package.json (2 hunks)
  • packages/hdwallet-walletconnect/package.json (2 hunks)
  • packages/hdwallet-walletconnectV2/package.json (2 hunks)
✅ Files skipped from review due to trivial changes (4)
  • packages/hdwallet-walletconnectV2/package.json
  • integration/package.json
  • packages/hdwallet-ledger-webhid/package.json
  • packages/hdwallet-core/package.json
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 769
File: packages/hdwallet-walletconnectV2/src/walletconnectV2.ts:150-152
Timestamp: 2025-12-12T11:19:53.263Z
Learning: In the shapeshift/hdwallet monorepo, the `ethSupportsNetwork()` method in wallet implementations is a legacy/relic method that is no longer used. Chain support is determined by the `_supports*` flags (e.g., `_supportsMonad`, `_supportsPlasma`, `_supportsHyperEvm`) on the wallet classes, not by the `ethSupportsNetwork()` method.
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 769
File: packages/hdwallet-ledger/src/ledger.ts:403-405
Timestamp: 2025-12-12T11:19:46.121Z
Learning: In packages/hdwallet-ledger/src/ethereum.ts, the ethSupportsNetwork function is a legacy/unused function that only returns true for chainId === 1. The Ledger ETH module does not call ethSupportsNetwork to validate chain support during signing operations - it accepts any chainId passed in the ETHSignTx message directly, so chain support flags can be enabled without needing to update ethSupportsNetwork.
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger/package.json:36-36
Timestamp: 2025-08-07T15:27:03.179Z
Learning: In the shapeshiftoss/hdwallet monorepo, the ledgerhq/hw-transport dependency in packages/hdwallet-ledger/package.json is pinned to an exact version (without caret) due to type mismatches that occur with newer versions. Other Ledger dependencies can safely use caret ranges.
📚 Learning: 2025-08-07T15:23:54.858Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-coinbase/package.json:18-18
Timestamp: 2025-08-07T15:23:54.858Z
Learning: In the shapeshiftoss/hdwallet monorepo, package version bumps are done in PRs before publishing. The packages are published after the PR is merged, so dependency versions may reference unpublished versions during the PR review phase. This is expected behavior in their release workflow.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-keepkey-electron/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-phantom/package.json
  • packages/hdwallet-walletconnect/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-keepkey-chromeusb/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-08-07T15:27:03.179Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger/package.json:36-36
Timestamp: 2025-08-07T15:27:03.179Z
Learning: In the shapeshiftoss/hdwallet monorepo, the ledgerhq/hw-transport dependency in packages/hdwallet-ledger/package.json is pinned to an exact version (without caret) due to type mismatches that occur with newer versions. Other Ledger dependencies can safely use caret ranges.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-keepkey-electron/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-phantom/package.json
  • packages/hdwallet-walletconnect/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-keepkey-chromeusb/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-08-07T15:24:19.530Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger-webusb/package.json:3-3
Timestamp: 2025-08-07T15:24:19.530Z
Learning: In the shapeshiftoss/hdwallet monorepo, the team runs `yarn build` before bumping versions and also before publishing packages. This ensures that dist/ artifacts (including UMD bundles) are properly regenerated after dependency updates.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-keepkey-electron/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-phantom/package.json
  • packages/hdwallet-walletconnect/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-keepkey-chromeusb/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-12-09T13:48:55.139Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 764
File: packages/hdwallet-gridplus/package.json:0-0
Timestamp: 2025-12-09T13:48:55.139Z
Learning: In the shapeshiftoss/hdwallet monorepo, the dist/ directory is not version controlled (not tracked in git). Build artifacts are generated during the build/publish workflow, not committed to the repository.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-keepkey-electron/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-phantom/package.json
  • packages/hdwallet-walletconnect/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-keepkey-chromeusb/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-08-07T15:47:29.207Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger/src/transport.ts:10-10
Timestamp: 2025-08-07T15:47:29.207Z
Learning: In the shapeshiftoss/hdwallet monorepo, ts-ignore is used instead of ts-expect-error for Ledger transport imports because the code works locally without TypeScript errors but has issues in CI environment. Using ts-expect-error would fail locally since there are no actual errors to suppress.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-keepkey-electron/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-phantom/package.json
  • packages/hdwallet-walletconnect/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-keepkey-chromeusb/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-08-07T15:47:26.835Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger-webusb/src/transport.ts:12-12
Timestamp: 2025-08-07T15:47:26.835Z
Learning: In the shapeshiftoss/hdwallet monorepo, ts-ignore is used instead of ts-expect-error for Ledger transport imports because the CI environment has different type checking behavior than local development. The code works locally without errors, but CI reports type issues, so ts-ignore is necessary to suppress the inconsistent type checking across environments.

Applied to files:

  • packages/hdwallet-gridplus/package.json
  • packages/hdwallet-portis/package.json
  • packages/hdwallet-keepkey-tcp/package.json
  • packages/hdwallet-ledger/package.json
  • packages/hdwallet-keepkey/package.json
  • packages/hdwallet-trezor/package.json
  • packages/hdwallet-keepkey-nodehid/package.json
  • packages/hdwallet-trezor-connect/package.json
  • packages/hdwallet-native/package.json
  • packages/hdwallet-vultisig/package.json
  • packages/hdwallet-keepkey-webusb/package.json
  • packages/hdwallet-keepkey-nodewebusb/package.json
  • packages/hdwallet-ledger-webusb/package.json
  • packages/hdwallet-metamask-multichain/package.json
  • packages/hdwallet-coinbase/package.json
  • packages/hdwallet-native-vault/package.json
  • examples/sandbox/package.json
  • packages/hdwallet-keplr/package.json
📚 Learning: 2025-12-12T11:19:53.263Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 769
File: packages/hdwallet-walletconnectV2/src/walletconnectV2.ts:150-152
Timestamp: 2025-12-12T11:19:53.263Z
Learning: In the shapeshift/hdwallet monorepo, the `ethSupportsNetwork()` method in wallet implementations is a legacy/relic method that is no longer used. Chain support is determined by the `_supports*` flags (e.g., `_supportsMonad`, `_supportsPlasma`, `_supportsHyperEvm`) on the wallet classes, not by the `ethSupportsNetwork()` method.

Applied to files:

  • packages/hdwallet-trezor/package.json
📚 Learning: 2025-08-07T15:24:34.076Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: examples/sandbox/package.json:15-31
Timestamp: 2025-08-07T15:24:34.076Z
Learning: Lerna v6+ supports workspace protocol syntax (workspace:*) but does not automatically convert exact versions to workspace protocol during version bumps. It only preserves existing workspace protocol syntax. Teams using Lerna for automated version bumps would need manual conversion to use workspace protocol, which negates automation benefits.

Applied to files:

  • lerna.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build and Release
🔇 Additional comments (24)
packages/hdwallet-gridplus/package.json (2)

3-3: LGTM - version bump maintains monorepo consistency.

The patch version increment aligns with the coordinated release across the hdwallet packages, even though GridPlus is not receiving chain support code changes in this PR.


23-23: LGTM - dependency version correctly synchronized.

The hdwallet-core dependency update maintains version alignment with the core package, ensuring compatibility across the monorepo.

lerna.json (1)

3-3: LGTM! Monorepo version bump is consistent.

The lerna.json version bump to 1.62.29 correctly coordinates the monorepo-wide version update that aligns with all package updates in this PR.

packages/hdwallet-coinbase/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 18-18

packages/hdwallet-ledger/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 31-31

packages/hdwallet-vultisig/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 20-20

packages/hdwallet-walletconnect/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 18-18

packages/hdwallet-portis/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 19-19

packages/hdwallet-phantom/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 18-18

packages/hdwallet-keepkey/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and hdwallet-core dependency are correctly updated to 1.62.29, consistent with the monorepo-wide version bump.

Also applies to: 24-24

packages/hdwallet-keepkey-tcp/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependencies are consistently updated to 1.62.29 as part of the broader release.

Also applies to: 17-18

packages/hdwallet-keepkey-electron/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependency are consistently updated to 1.62.29.

Also applies to: 17-17

packages/hdwallet-keepkey-nodehid/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependency are consistently updated to 1.62.29.

Also applies to: 17-17

packages/hdwallet-ledger-webusb/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependencies are consistently updated to 1.62.29, while external Ledger dependencies remain unchanged as expected.

Also applies to: 23-24

packages/hdwallet-metamask-multichain/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependency are consistently updated to 1.62.29.

Also applies to: 20-20

packages/hdwallet-keepkey-webusb/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependencies are consistently updated to 1.62.29.

Also applies to: 17-18

packages/hdwallet-keepkey-chromeusb/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependencies are consistently updated to 1.62.29.

Also applies to: 17-18

packages/hdwallet-keepkey-nodewebusb/package.json (1)

3-3: LGTM! Version bump aligns with monorepo update.

The package version and internal dependencies are consistently updated to 1.62.29.

Also applies to: 17-18

packages/hdwallet-keplr/package.json (1)

3-3: LGTM!

Version bump and dependency alignment are consistent with the monorepo-wide 1.62.29 release. This follows the established workflow for pre-publish version updates.

Also applies to: 20-20

packages/hdwallet-native-vault/package.json (1)

3-3: LGTM!

Version bump and dependency update align correctly with the monorepo-wide 1.62.29 release.

Also applies to: 18-18

packages/hdwallet-trezor-connect/package.json (1)

3-3: LGTM!

Version bump and dependency updates are properly aligned with the 1.62.29 release across hdwallet-core and hdwallet-trezor.

Also applies to: 17-18

packages/hdwallet-trezor/package.json (1)

3-3: LGTM!

Version and dependency alignment are correct for the 1.62.29 release, supporting the Trezor wallet enhancements for second-class chains.

Also applies to: 20-20

packages/hdwallet-native/package.json (1)

3-3: LGTM!

Version bump and dependency update are correctly aligned with the monorepo-wide 1.62.29 release.

Also applies to: 20-20

examples/sandbox/package.json (1)

3-3: LGTM!

Comprehensive version alignment across all hdwallet dependencies to 1.62.29. This ensures the sandbox example can properly test the newly enabled second-class chain support across MetaMask, Ledger, Trezor, and WalletConnect V2.

Also applies to: 15-32


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gomesalexandre gomesalexandre marked this pull request as ready for review December 12, 2025 11:11
@gomesalexandre gomesalexandre requested a review from a team as a code owner December 12, 2025 11:11
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2e82ad6 and f36df12.

📒 Files selected for processing (4)
  • packages/hdwallet-ledger/src/ledger.ts (1 hunks)
  • packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts (1 hunks)
  • packages/hdwallet-trezor/src/trezor.ts (1 hunks)
  • packages/hdwallet-walletconnectV2/src/walletconnectV2.ts (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-08-07T15:47:29.207Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger/src/transport.ts:10-10
Timestamp: 2025-08-07T15:47:29.207Z
Learning: In the shapeshiftoss/hdwallet monorepo, ts-ignore is used instead of ts-expect-error for Ledger transport imports because the code works locally without TypeScript errors but has issues in CI environment. Using ts-expect-error would fail locally since there are no actual errors to suppress.

Applied to files:

  • packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts
  • packages/hdwallet-walletconnectV2/src/walletconnectV2.ts
  • packages/hdwallet-ledger/src/ledger.ts
  • packages/hdwallet-trezor/src/trezor.ts
📚 Learning: 2025-08-07T15:47:26.835Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger-webusb/src/transport.ts:12-12
Timestamp: 2025-08-07T15:47:26.835Z
Learning: In the shapeshiftoss/hdwallet monorepo, ts-ignore is used instead of ts-expect-error for Ledger transport imports because the CI environment has different type checking behavior than local development. The code works locally without errors, but CI reports type issues, so ts-ignore is necessary to suppress the inconsistent type checking across environments.

Applied to files:

  • packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts
  • packages/hdwallet-walletconnectV2/src/walletconnectV2.ts
  • packages/hdwallet-ledger/src/ledger.ts
  • packages/hdwallet-trezor/src/trezor.ts
📚 Learning: 2025-08-07T15:27:03.179Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 726
File: packages/hdwallet-ledger/package.json:36-36
Timestamp: 2025-08-07T15:27:03.179Z
Learning: In the shapeshiftoss/hdwallet monorepo, the ledgerhq/hw-transport dependency in packages/hdwallet-ledger/package.json is pinned to an exact version (without caret) due to type mismatches that occur with newer versions. Other Ledger dependencies can safely use caret ranges.

Applied to files:

  • packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts
  • packages/hdwallet-ledger/src/ledger.ts
  • packages/hdwallet-trezor/src/trezor.ts
📚 Learning: 2025-11-20T11:04:44.808Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 737
File: packages/hdwallet-trezor/src/ethereum.ts:122-138
Timestamp: 2025-11-20T11:04:44.808Z
Learning: In packages/hdwallet-trezor/src/ethereum.ts, the ethSignTypedData function correctly returns the signature from res.payload.signature without adding a "0x" prefix. This works correctly in practice and has been tested, despite appearing inconsistent with ethSignMessage which does add the prefix. The Trezor Connect ethereumSignTypedData response already provides the signature in the correct format for consumption.

Applied to files:

  • packages/hdwallet-trezor/src/trezor.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build and Release
🔇 Additional comments (2)
packages/hdwallet-trezor/src/trezor.ts (1)

287-289: Capability flags are correctly enabled.

ethSupportsNetwork() returns true for all chain IDs without filtering, and signing paths use Common.custom({ chainId }) to accept any chain ID. The _supportsMonad, _supportsPlasma, and _supportsHyperEvm flags are consistent with the underlying implementation's generic chain support.

packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts (1)

287-289: No action needed. The _supports* flags and ethSupportsNetwork() are independent architectural concerns, not coupled gating mechanisms. The _supports* flags declare wallet capability to handle these EVM chain types, while ethSupportsNetwork() reports which specific chain IDs are currently supported. The supportsMonad/Plasma/HyperEvm() guard functions (in wallet.ts) check only the _supports* flags without consulting ethSupportsNetwork(). Setting these flags to true while maintaining mainnet-only support in ethSupportsNetwork() is consistent with the design pattern used across wallets like Trezor, which also combines universal _supports* flags with selective chain support.

Likely an incorrect or invalid review comment.

@gomesalexandre
Copy link
Contributor Author

Yeeting since no risks - chain support flags toggling, and support is guarded by chain support in web regardless of wallet

@gomesalexandre gomesalexandre merged commit 1f36a00 into master Dec 15, 2025
3 checks passed
@gomesalexandre gomesalexandre deleted the feat_second_class_mm branch December 15, 2025 23:56
@coderabbitai coderabbitai bot mentioned this pull request Jan 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant