-
Notifications
You must be signed in to change notification settings - Fork 90
fix: gridplus derivation #764
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughBumps package versions to 1.62.25 across many hdwallet packages, adds Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
packages/hdwallet-native/src/crypto/isolation/adapters/tron.ts (1)
3-3: Same bs58check import pattern as bip39.ts - verify API compatibility.This file uses the same default import pattern for bs58check with the
encode()method at line 41. The verification requested for the bip39.ts file applies here as well.Ensure bs58check 4.0.0 supports both
decode()andencode()methods on the default export as used across the codebase.
🧹 Nitpick comments (1)
packages/hdwallet-keepkey/src/osmosis.ts (1)
8-8: TheBuffer.from()wrapping is redundant for bs58check 4.0.0.The default import is correct for bs58check 4.0.0. However, the
decode()method already returns a Node Buffer, so wrapping the result withBuffer.from()on line 49 is unnecessary. Theslice()operation on a Buffer already returns a Buffer, making the explicit conversion redundant.Consider removing the
Buffer.from()wrapper:const pubkey = bs58check.decode(core.mustBeDefined(pubkeyMsg.getXpub())).slice(45);
📜 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.
⛔ Files ignored due to path filters (1)
yarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (34)
examples/sandbox/package.json(2 hunks)integration/package.json(2 hunks)lerna.json(1 hunks)package.json(1 hunks)packages/hdwallet-coinbase/package.json(2 hunks)packages/hdwallet-core/package.json(3 hunks)packages/hdwallet-core/src/utxoUtils.ts(2 hunks)packages/hdwallet-gridplus/package.json(3 hunks)packages/hdwallet-gridplus/src/utils.ts(1 hunks)packages/hdwallet-keepkey-chromeusb/package.json(2 hunks)packages/hdwallet-keepkey-electron/package.json(3 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(3 hunks)packages/hdwallet-keepkey/src/osmosis.ts(2 hunks)packages/hdwallet-keplr/package.json(3 hunks)packages/hdwallet-ledger-webhid/package.json(2 hunks)packages/hdwallet-ledger-webusb/package.json(2 hunks)packages/hdwallet-ledger/package.json(3 hunks)packages/hdwallet-ledger/src/solana.ts(1 hunks)packages/hdwallet-metamask-multichain/package.json(3 hunks)packages/hdwallet-native-vault/package.json(3 hunks)packages/hdwallet-native/package.json(4 hunks)packages/hdwallet-native/src/crypto/isolation/adapters/tron.ts(1 hunks)packages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.ts(1 hunks)packages/hdwallet-phantom/package.json(3 hunks)packages/hdwallet-portis/package.json(3 hunks)packages/hdwallet-trezor-connect/package.json(2 hunks)packages/hdwallet-trezor/package.json(3 hunks)packages/hdwallet-vultisig/package.json(3 hunks)packages/hdwallet-walletconnect/package.json(2 hunks)packages/hdwallet-walletconnectV2/package.json(2 hunks)
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
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.
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.
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.
📚 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-walletconnect/package.jsonpackages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.tsexamples/sandbox/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-keepkey/src/osmosis.tspackages/hdwallet-ledger/src/solana.tspackage.jsonpackages/hdwallet-coinbase/package.jsonpackages/hdwallet-walletconnectV2/package.jsonpackages/hdwallet-ledger/package.jsonpackages/hdwallet-phantom/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-native/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonlerna.jsonpackages/hdwallet-portis/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-gridplus/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-metamask-multichain/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-webusb/package.json
📚 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-walletconnect/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-keplr/package.jsonpackage.jsonpackages/hdwallet-coinbase/package.jsonpackages/hdwallet-walletconnectV2/package.jsonpackages/hdwallet-ledger/package.jsonpackages/hdwallet-phantom/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-native/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonlerna.jsonpackages/hdwallet-portis/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-gridplus/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-metamask-multichain/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-webusb/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-walletconnect/package.jsonpackages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.tsexamples/sandbox/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-coinbase/package.jsonpackages/hdwallet-walletconnectV2/package.jsonpackages/hdwallet-ledger/package.jsonpackages/hdwallet-phantom/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-native/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonlerna.jsonpackages/hdwallet-portis/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-gridplus/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-metamask-multichain/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-webusb/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-walletconnect/package.jsonpackages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.tsexamples/sandbox/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-keepkey/src/osmosis.tspackages/hdwallet-ledger/src/solana.tspackages/hdwallet-coinbase/package.jsonpackages/hdwallet-walletconnectV2/package.jsonpackages/hdwallet-ledger/package.jsonpackages/hdwallet-phantom/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-native/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-core/src/utxoUtils.tspackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-native/src/crypto/isolation/adapters/tron.tspackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-portis/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-gridplus/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-metamask-multichain/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-webusb/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-walletconnect/package.jsonpackages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.tsexamples/sandbox/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-keepkey/src/osmosis.tspackages/hdwallet-ledger/src/solana.tspackages/hdwallet-coinbase/package.jsonpackages/hdwallet-walletconnectV2/package.jsonpackages/hdwallet-ledger/package.jsonpackages/hdwallet-phantom/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-native/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-core/src/utxoUtils.tspackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonpackages/hdwallet-native/src/crypto/isolation/adapters/tron.tspackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-portis/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-gridplus/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-metamask-multichain/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-webusb/package.json
📚 Learning: 2025-10-14T20:59:48.768Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 731
File: packages/hdwallet-gridplus/src/ethereum.ts:117-124
Timestamp: 2025-10-14T20:59:48.768Z
Learning: In packages/hdwallet-gridplus/src/ethereum.ts, the GridPlus SDK's sign method returns v as a number (integer), not a Buffer, so the Buffer.isBuffer(v) check is always false and vRaw = v is used directly.
Applied to files:
packages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.tspackages/hdwallet-keepkey/src/osmosis.tspackages/hdwallet-gridplus/src/utils.tspackages/hdwallet-native/src/crypto/isolation/adapters/tron.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-keepkey/src/osmosis.tspackages/hdwallet-core/src/utxoUtils.tspackages/hdwallet-gridplus/src/utils.tspackages/hdwallet-native/src/crypto/isolation/adapters/tron.ts
📚 Learning: 2025-10-15T23:22:26.842Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 731
File: packages/hdwallet-gridplus/src/thormaya.ts:99-105
Timestamp: 2025-10-15T23:22:26.842Z
Learning: In packages/hdwallet-gridplus/src/thormaya.ts, the GridPlus SDK (gridplus-sdk) automatically pads the r and s signature components to 32 bytes, so explicit padding in the code may be redundant but is not required. The thorchainSignTx implementation works without explicit padding because the SDK handles it.
Applied to files:
packages/hdwallet-gridplus/src/utils.ts
📚 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
🧬 Code graph analysis (1)
packages/hdwallet-core/src/utxoUtils.ts (1)
packages/hdwallet-gridplus/src/constants.ts (1)
accountTypeToVersion(13-43)
🔇 Additional comments (32)
packages/hdwallet-core/package.json (1)
3-3: LGTM! Standard pre-release version bump and dependency addition.The package version bump to alpha and the addition of bs58check ^4.0.0 are consistent with the PR objectives. The gitHead metadata addition aligns with monorepo versioning practices.
Based on learnings, version bumps and unpublished version references in PRs are part of the expected release workflow.
Also applies to: 20-20, 31-32
lerna.json (1)
3-3: LGTM! Version bump and formatting improvement.The version bump aligns with the monorepo-wide update. The ignoreChanges array reformatting improves readability without changing functionality.
Also applies to: 11-16
package.json (1)
8-8: Verify the Node engine constraint relaxation is intentional.The engine constraint changed from
"22.x"(pinned to Node 22.x) to">=22.x"(allows Node 22.x and all future versions). This relaxation will accept Node 23.x, 24.x, and beyond.If this is intentional to support future Node versions, consider whether the codebase has been tested against Node 23+ or if there should be an upper bound like
">=22.x <24.0.0"to prevent untested major version incompatibilities.packages/hdwallet-native/package.json (1)
3-3: LGTM! Consistent version bump and dependency additions.The package version, hdwallet-core dependency update, and bs58check addition are all aligned with the PR objectives and monorepo versioning practices.
Based on learnings, these pre-release version references and dependency additions are part of the standard workflow.
Also applies to: 20-20, 29-29, 60-61
packages/hdwallet-ledger-webusb/package.json (1)
3-3: LGTM! Consistent monorepo version updates.The version bump and dependency updates to hdwallet-core and hdwallet-ledger are properly aligned with the alpha release. The gitHead metadata addition maintains consistency across the monorepo.
Based on learnings, this follows the expected pre-release workflow where packages reference the new version before publishing.
Also applies to: 23-24, 30-31
packages/hdwallet-keepkey/package.json (1)
3-3: LGTM! Consistent version updates across the monorepo.The version bump, hdwallet-core dependency update, and gitHead addition maintain consistency with the broader monorepo changes.
Based on learnings, these version references and metadata additions follow the established pre-release workflow.
Also applies to: 24-24, 47-48
packages/hdwallet-native/src/crypto/isolation/engines/dummy/bip39.ts (1)
2-2: No action required—bs58check 4.0.0 API is compatible with the updated import style.The default import is correct for bs58check 4.0.0, which exports an object with
encode()anddecode()methods. The usage at line 23 (bs58check.decode(xpub)) is fully compatible with the API.packages/hdwallet-portis/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates follow the expected monorepo release workflow. Based on learnings, packages are published after PR merge, so the alpha version references are expected.
Also applies to: 19-19, 30-30
packages/hdwallet-native-vault/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates are consistent with the monorepo-wide alpha release.
Also applies to: 18-18, 30-30
examples/sandbox/package.json (1)
3-3: LGTM: Sandbox dependencies aligned with alpha release.All hdwallet dependencies are consistently updated to the new alpha version with caret ranges.
Also applies to: 15-32
packages/hdwallet-coinbase/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates follow the expected pattern.
Also applies to: 18-18, 25-25
packages/hdwallet-trezor/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates are consistent with the monorepo-wide alpha release.
Also applies to: 20-20, 30-30
packages/hdwallet-vultisig/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates follow the expected pattern.
Also applies to: 20-20, 30-30
packages/hdwallet-keepkey-chromeusb/package.json (1)
3-3: LGTM: Standard version bump to alpha.The version bump and dependency updates are consistent with the monorepo-wide alpha release.
Also applies to: 17-18, 20-20
packages/hdwallet-metamask-multichain/package.json (1)
3-31: Version bump and core dependency align with release workflowVersion, internal dependency range, and gitHead all look consistent with the alpha-ledger-tron.1 release pattern used elsewhere in the monorepo; no issues from this file alone.
Please ensure
yarn build(or the monorepo build pipeline) has been run after these bumps for this package, per your usual release workflow.packages/hdwallet-keepkey-webusb/package.json (1)
3-23: KeepKey WebUSB manifest changes are consistentVersion bump, aligned caret ranges for
@shapeshiftoss/hdwallet-coreand@shapeshiftoss/hdwallet-keepkey, and gitHead addition all match the rest of the alpha-ledger-tron.1 release; nothing problematic here.Confirm CI/build for this package passes after the version/dependency updates.
packages/hdwallet-keepkey-tcp/package.json (1)
3-21: TCP transport manifest updates look goodThe version bump, internal dependency ranges (
@shapeshiftoss/hdwallet-coreand@shapeshiftoss/hdwallet-keepkey), and gitHead metadata are all consistent with the rest of the release; axios remains untouched, so no new surface area here.As a sanity check, run the usual build/tests that exercise the KeepKey TCP transport against this new alpha to confirm nothing regresses.
packages/hdwallet-trezor-connect/package.json (1)
3-21: Trezor Connect package.json changes are coherent with the releaseVersion, internal dependency ranges, and gitHead all match the monorepo-wide alpha-ledger-tron.1 pattern; no red flags.
Please make sure any Trezor-related integration tests (especially those pulling
@shapeshiftoss/hdwallet-trezor-connect) are run against this alpha tag.packages/hdwallet-ledger/src/solana.ts (1)
3-23: bs58 import style change preserves Solana behaviorSwitching to a default import for
bs58while continuing to callbs58.encode(...)should be a no-op at runtime given typicalesModuleInteropsettings; Solana address derivation still returns a base58-encoded string.Confirm your TypeScript/tsconfig settings (especially
esModuleInterop) and run Solana-related tests to ensure there’s no import/typing regression aroundbs58.packages/hdwallet-core/src/utxoUtils.ts (1)
1-85: bs58check migration inconvertXpubVersionlooks correctUsing a default
bs58checkimport and wrappingbs58check.decode(xpub)inBuffer.from(...), then re‑encoding withbs58check.encode(Buffer.concat([desiredVersion, key])), keeps the intended “swap version bytes and recompute checksum” behavior while being robust to bs58check v4’s return type.Please run/extend unit tests for
convertXpubVersion(covering at least Bitcoin, Litecoin, and Dogecoin xpubs) to validate behavior against bs58check 4.0.0.packages/hdwallet-gridplus/src/utils.ts (1)
3-16: GridPlus compressed pubkey derivation now correctly uses base58checkDecoding string pubkeys with
bs58check.decodeand slicingsubarray(45, 78)matches the BIP32 layout (version + metadata + 33‑byte key) while adding checksum verification, which is exactly what extended keys need; non‑string cases remain unchanged.Run or add GridPlus‑specific tests that feed known xpub/ypub/zpub values through
getCompressedPubkeyto confirm the derived compressed keys and downstream derivations match those from Tron/Ledger.packages/hdwallet-keepkey-nodehid/package.json (1)
3-25: KeepKey Node HID manifest changes are alignedThe version bump, caret range for
@shapeshiftoss/hdwallet-keepkey, and gitHead addition match the rest of the alpha-ledger-tron.1 updates; nothing concerning here.Double‑check that any code in this package that imports
@shapeshiftoss/hdwallet-core(if any) still has a direct dependency declared somewhere, and that the Node HID integration tests pass with this alpha.packages/hdwallet-phantom/package.json (1)
3-3: Version bump and dependency alignment looks good.The caret range for
@shapeshiftoss/hdwallet-coreand the added gitHead metadata align with the monorepo's pre-publish versioning workflow as documented in prior PR feedback.Also applies to: 18-18, 28-28
packages/hdwallet-keplr/package.json (1)
3-3: Version bump and dependency alignment looks good.Consistent with the monorepo's version update pattern across other packages in this PR.
Also applies to: 20-20, 32-32
packages/hdwallet-walletconnectV2/package.json (1)
3-3: Version bump and dependency alignment looks good.Consistent with monorepo versioning pattern.
Also applies to: 18-18, 23-23
packages/hdwallet-keepkey-electron/package.json (1)
3-3: Version bump and dependency alignment looks good.Correctly updated the internal dependency on
@shapeshiftoss/hdwallet-keepkeywith caret range.Also applies to: 17-17, 27-27
packages/hdwallet-walletconnect/package.json (1)
3-3: Version bump and dependency alignment looks good.Consistent with monorepo versioning pattern.
Also applies to: 18-18, 23-23
packages/hdwallet-ledger/package.json (2)
35-35: Verify bs58check 4.0.0 API compatibility and source code updates.The upgrade from bs58check 2.1.2 to ^4.0.0 is a major version jump with potentially breaking changes. This is the key change for the GridPlus derivation fix per the PR objective. Ensure:
- Source code changes exist to accommodate the new API (not visible in this file-only review)
- Type definitions (
@types/bs58check) remain compatible- All downstream packages using bs58check have been tested
43-43: Consider updating @types/bs58check for compatibility.The
@types/bs58checkis pinned to^2.1.0, but the runtime dependency is now^4.0.0. Verify that the type definitions remain compatible with the new major version, or update if needed.packages/hdwallet-keepkey-nodewebusb/package.json (1)
3-3: Version bump and dependency alignment looks good.Correctly updated both internal dependencies with caret ranges.
Also applies to: 17-18, 26-26
packages/hdwallet-ledger-webhid/package.json (1)
3-3: Version bump and dependency alignment looks good.Correctly updated internal dependencies with caret ranges.
Also applies to: 21-22, 25-25
integration/package.json (1)
3-3: Dependency updates are consistent with monorepo pre-release workflow.The integration package.json correctly updates all @shapeshiftoss/hdwallet-* dependencies to the new alpha version with caret ranges. All ten referenced packages have been properly bumped to 1.62.24-alpha-ledger-tron.1, confirming coordinated monorepo-wide pre-release.
There was a problem hiding this 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.
📒 Files selected for processing (3)
examples/sandbox/package.json(3 hunks)integration/package.json(3 hunks)packages/hdwallet-gridplus/package.json(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/hdwallet-gridplus/package.json
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 731
File: packages/hdwallet-gridplus/src/thormaya.ts:99-105
Timestamp: 2025-10-15T23:22:26.842Z
Learning: In packages/hdwallet-gridplus/src/thormaya.ts, the GridPlus SDK (gridplus-sdk) automatically pads the r and s signature components to 32 bytes, so explicit padding in the code may be redundant but is not required. The thorchainSignTx implementation works without explicit padding because the SDK handles it.
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.
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.
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.
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.
📚 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:
integration/package.jsonexamples/sandbox/package.json
📚 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:
integration/package.jsonexamples/sandbox/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:
integration/package.jsonexamples/sandbox/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:
integration/package.jsonexamples/sandbox/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:
integration/package.jsonexamples/sandbox/package.json
🪛 Biome (2.1.2)
integration/package.json
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: String values must be double quoted.
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: unexpected character <
(parse)
[error] 18-18: String values must be double quoted.
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 19-19: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 29-29: unexpected character =
(parse)
[error] 39-40: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 39-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
[error] 40-40: unexpected character >
(parse)
examples/sandbox/package.json
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: unexpected character <
(parse)
[error] 3-3: String values must be double quoted.
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-4: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 4-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 5-5: unexpected character =
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-6: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 6-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 7-7: unexpected character >
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: unexpected character <
(parse)
[error] 19-19: String values must be double quoted.
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 20-20: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 21-21: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 22-22: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 23-23: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 24-24: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 25-25: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 26-26: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 27-27: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 28-28: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 29-29: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 30-30: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 31-31: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 32-32: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 33-33: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 34-34: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 35-35: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 36-36: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-37: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 37-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 38-38: unexpected character =
(parse)
[error] 56-57: End of file expected
Use an array for a sequence of values: [1, 2]
(parse)
[error] 56-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
[error] 57-57: unexpected character >
(parse)
gomesalexandre
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, that's the one!
8be0129 to
f48e573
Compare
This fixes a TypeScript error in CI where bs58check.decode was not found. The issue was caused by: 1. Using namespace import (import * as bs58check) instead of default import 2. Type conflicts from @types/bs58check package with bs58check v4's built-in types Changes: - Change osmosis.ts to use default import (matches other keepkey files) - Remove @types/bs58check from hdwallet-ledger and hdwallet-native - bs58check v4 includes its own TypeScript definitions This follows the same pattern as cosmos.ts, thorchain.ts, and mayachain.ts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/hdwallet-keepkey-nodehid/package.json (1)
1-25: Verify GridPlus implementation changes and build artifacts were regenerated.This review covers the supporting package version bumps across the monorepo. However, the PR's primary objective—fixing GridPlus derivation by switching to
bs58check4.0.0—is not visible in these files. Based on the learnings and PR summary, you should verify:
- The
packages/hdwallet-gridplus/package.jsonnow includesbs58check^4.0.0as a dependency- The
packages/hdwallet-gridplus/src/utils.tscorrectly usesbs58check.decodewrapped withBuffer.fromfor string-path pubkey decoding- The
@types/bs58checkdevDependency was removed from packages that no longer need it (e.g.,packages/hdwallet-ledger/package.json)yarn buildwas run to regenerate dist/ artifacts after these dependency and version changesIf you'd like, I can generate a verification script to check these changes across the repository.
📜 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.
📒 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 (1)
- packages/hdwallet-walletconnectV2/package.json
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/hdwallet-ledger/package.json
- packages/hdwallet-native/package.json
- packages/hdwallet-gridplus/package.json
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
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.
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.
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: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-phantom/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-walletconnect/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/package.json
📚 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-phantom/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-walletconnect/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/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-phantom/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-walletconnect/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/package.json
📚 Learning: 2025-12-09T13:48:44.442Z
Learnt from: gomesalexandre
Repo: shapeshift/hdwallet PR: 764
File: packages/hdwallet-gridplus/package.json:0-0
Timestamp: 2025-12-09T13:48:44.442Z
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-phantom/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-core/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-walletconnect/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/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-phantom/package.jsonpackages/hdwallet-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-keepkey-electron/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-walletconnect/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/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-vultisig/package.jsonpackages/hdwallet-ledger-webusb/package.jsonpackages/hdwallet-native-vault/package.jsonpackages/hdwallet-keepkey-webusb/package.jsonpackages/hdwallet-ledger-webhid/package.jsonpackages/hdwallet-keepkey/package.jsonpackages/hdwallet-trezor-connect/package.jsonpackages/hdwallet-keepkey-nodewebusb/package.jsonpackages/hdwallet-coinbase/package.jsonintegration/package.jsonpackages/hdwallet-keepkey-tcp/package.jsonexamples/sandbox/package.jsonpackages/hdwallet-metamask-multichain/package.jsonpackages/hdwallet-keepkey-chromeusb/package.jsonpackages/hdwallet-keepkey-nodehid/package.jsonpackages/hdwallet-trezor/package.jsonpackages/hdwallet-keplr/package.jsonpackages/hdwallet-portis/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 (22)
packages/hdwallet-keepkey-chromeusb/package.json (1)
3-3: Coordinated version bump looks good.The version bump from 1.62.24 to 1.62.25 and the corresponding updates to internal dependencies are appropriate for a coordinated monorepo release. Based on learnings, ensure
yarn buildwas executed before the version bump to regenerate dist/ artifacts.Also applies to: 17-18
packages/hdwallet-native-vault/package.json (1)
3-3: Version bump coordinated with monorepo release.Package version and internal dependency updated consistently as part of the 1.62.25 release cycle. Aligns with learnings about expected pre-publish version bumps in this monorepo.
Also applies to: 18-18
packages/hdwallet-coinbase/package.json (1)
3-3: Core dependency updated to 1.62.25 with bs58check support.Package version and hdwallet-core dependency both bumped to 1.62.25. The core package now includes bs58check ^4.0.0 for GridPlus derivation fixes.
Also applies to: 18-18
lerna.json (1)
3-3: Monorepo version bump to 1.62.25.Root lerna version updated; all dependent packages are properly aligned to this version across the PR.
packages/hdwallet-walletconnect/package.json (1)
3-3: Core dependency updated to 1.62.25.Package and hdwallet-core dependency both bumped to 1.62.25. WalletConnect now inherits bs58check support from the updated core package.
Also applies to: 18-18
packages/hdwallet-portis/package.json (1)
3-3: Core dependency updated to 1.62.25.Package and hdwallet-core dependency both bumped to 1.62.25. Portis now inherits bs58check support from the updated core package.
Also applies to: 19-19
packages/hdwallet-vultisig/package.json (1)
3-3: Core dependency updated to 1.62.25.Package and hdwallet-core dependency both bumped to 1.62.25. Vultisig now inherits bs58check support from the updated core package.
Also applies to: 20-20
packages/hdwallet-phantom/package.json (1)
3-3: Core dependency updated to 1.62.25.Package and hdwallet-core dependency both bumped to 1.62.25. Phantom now inherits bs58check support from the updated core package.
Also applies to: 18-18
examples/sandbox/package.json (1)
3-3: Version bump and dependency alignment looks good.All
@shapeshiftoss/hdwallet-*dependencies are consistently updated to1.62.25, and the exact pinning strategy aligns with the monorepo's release workflow. The previous merge conflict has been properly resolved.Also applies to: 15-32
packages/hdwallet-trezor-connect/package.json (1)
3-3: Version and core dependency alignment is consistent.Internal dependencies pinned to exact versions (
1.62.25), while external dependencies use appropriate ranges (^9.6.4). Aligns with the coordinated release pattern across the monorepo.Also applies to: 17-18
packages/hdwallet-metamask-multichain/package.json (1)
3-3: Version and dependency updates are properly aligned.Core dependency updated to
1.62.25with exact pinning; external dependencies use appropriate caret ranges. Maintains consistency with the monorepo versioning strategy.Also applies to: 20-20
packages/hdwallet-trezor/package.json (1)
3-3: Version bump and core dependency alignment is correct.Updated to
1.62.25with consistent exact pinning for internal dependencies. Aligns with the coordinated version upgrade across the suite.Also applies to: 20-20
packages/hdwallet-ledger-webhid/package.json (1)
3-3: Version updates and Ledger dependency alignment are correct.Updated to
1.62.25with exact pinning for@ledgerhq/hw-transport(6.31.8) to avoid type mismatches, consistent with prior releases. Internal hdwallet dependencies properly aligned.Also applies to: 21-22
packages/hdwallet-keplr/package.json (1)
3-3: Version and dependency alignment is consistent across the monorepo.Core dependency updated to
1.62.25with exact pinning; external cosmjs dependencies appropriately use caret ranges. Maintains release strategy consistency.Also applies to: 20-20
packages/hdwallet-ledger-webusb/package.json (1)
3-3: Version alignment and transport dependency pinning strategy is sound.Updated to
1.62.25with exact pins on Ledger transport layers (6.31.8,6.29.8) to prevent type mismatches. Internal hdwallet dependencies correctly aligned. Consistent with ledger-webhid approach.Also applies to: 23-24
packages/hdwallet-keepkey-nodehid/package.json (1)
3-3: Version and keepkey dependency alignment is correct.Updated to
1.62.25with consistent exact pinning. Simple, focused module properly aligned with the coordinated release.Also applies to: 17-17
packages/hdwallet-keepkey-nodewebusb/package.json (1)
3-3: Version bumps are consistent across keepkey variants. All internal dependencies aligned to 1.62.25.Also applies to: 17-18
packages/hdwallet-keepkey/package.json (1)
3-3: Version sync is correct. Core dependency aligned.Also applies to: 24-24
packages/hdwallet-keepkey-webusb/package.json (1)
3-3: Consistent with other keepkey packages. Version and dependencies aligned to 1.62.25.Also applies to: 17-18
packages/hdwallet-keepkey-electron/package.json (1)
3-3: Correct dependency scope. Only keepkey is a direct dependency; core comes transitively.Also applies to: 17-17
packages/hdwallet-keepkey-tcp/package.json (1)
3-3: Keepkey variants fully aligned. All internal versions bumped consistently.Also applies to: 17-18
integration/package.json (1)
3-3: Comprehensive version alignment across integration. All 10 hdwallet dependencies synced to 1.62.25. Merge conflicts from prior commit have been resolved.Per the learnings from this monorepo, confirm that
yarn buildhas been executed after bumping versions to regenerate dist/ artifacts (UMD bundles, TypeScript declarations) before publication.Also applies to: 14-23
Same as tron and ledger derivation, changing to bs58check 4.0.0 does the do
Companion of shapeshift/web#11333
Summary by CodeRabbit
Release Notes - Version 1.62.25
Chores
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.