feat: add xprv wallet import support #53

Merged
sneak merged 11 commits from feature/import-xprv into main 2026-03-01 00:53:08 +01:00
Showing only changes of commit 57959b70c3 - Show all commits

View File

@@ -25,10 +25,11 @@ function hdWalletFromMnemonic(mnemonic) {
}
function hdWalletFromXprv(xprv) {
const node = HDNodeWallet.fromExtendedKey(xprv);
if (!node.privateKey) {
const root = HDNodeWallet.fromExtendedKey(xprv);
if (!root.privateKey) {
throw new Error("Not an extended private key (xprv).");
}
const node = root.derivePath("44'/60'/0'/0");
const xpub = node.neuter().extendedKey;
const firstAddress = node.deriveChild(0).address;
return { xpub, firstAddress };
@@ -58,7 +59,8 @@ function getSignerForAddress(walletData, addrIndex, decryptedSecret) {
return node.deriveChild(addrIndex);
}
if (walletData.type === "xprv") {
const node = HDNodeWallet.fromExtendedKey(decryptedSecret);
const root = HDNodeWallet.fromExtendedKey(decryptedSecret);
const node = root.derivePath("44'/60'/0'/0");
return node.deriveChild(addrIndex);
}
return new Wallet(decryptedSecret);