Conversation
🦋 Changeset detectedLatest commit: b3bc808 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
Jenkins BuildsClick to see older builds (4)
|
49abb3c to
41f5f03
Compare
|
Really nice work on this. The flow is clean, the hook usage is correct, and handling the multi-account case with the account select screen is exactly the right approach. A few things that might be useful. The
If you want to simplify the camera side a bit, On the animated QR latch, One more thing for later: since you're filtering on |
…ware wallet import tests
# Conflicts: # pnpm-lock.yaml
|
Great work overall. The flow hangs together well and useQRScanner + parseConnection are wired up exactly as intended. One thing worth fixing before merge: the importHardware mutation hardcodes derivationPath: "m/44'/60'/0'/0/0" for every imported account, but parseConnection already returns the correct path per account on the Account object. Pass account.derivationPath through to importHardware and store it. Otherwise Ledger Live accounts (which use m/44'/60'/x'/0/0) will store the wrong path, which will silently break once the signing flow is wired up. Also a small one: the "@qrkit/core>@noble/secp256k1" override in package.json can be removed. @qrkit/core no longer depends on @noble/secp256k1 at all (replaced with @noble/curves), so the override has no effect. |
|
@mmlado Thanks for the review!
-derivationPath: I tried this, but |
My bad on the derivationPath comment. I was sure it was already there, clearly wasn't. Sorry for the noise. Good news: it has shipped in @qrkit/core@0.5.0. Both EvmAccount and BtcAccount now expose derivationPath, reconstructed from the origin keypath in the QR plus the derived /0/0 suffix. You can replace the hardcoded "m/44'/60'/0'/0/0" with account.derivationPath once you bump the dependency. |
|
One small thing. This is adding a new feature, hardware wallet import via QR, new route, new tRPC procedure, new wallet type. A minor bump in version in changeset might be warranted instead of the patch. |
Summary
Adds a new onboarding entry point that lets users import any ERC-4527 compatible air-gapped wallet by scanning an animated QR. The signing flow is out of scope for this PR.
/onboarding/import-hardwarewith an inline jsQR + UR fountain decoder, plus a confirm step that names the walletwallet.importHardwareand ahardware-qrwallet type inWalletMeta.getSigningKeythrowsWALLET_IS_WATCH_ONLYfor these/onboardingand/onboarding/import@qrkit/core+@qrkit/react+@qrkit/bc-urbased on the guidelines from the Keycard teamHow to test
You don't need a physical device. The
AirGap Vaultmobile app (iOS / Android) can simulate any air-gapped wallet:Relevant issue
#929