From 0646ee846c895b8b8ba590ba3b5fa80194589925 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sun, 9 Aug 2026 12:22:28 -0700 Subject: [PATCH] Return bytes instead of buffer to enable array ops. --- src/lib/crypto/bip44.ts | 8 ++++---- src/lib/vault/vault-worker.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/crypto/bip44.ts b/src/lib/crypto/bip44.ts index 954f3f3..d17488d 100644 --- a/src/lib/crypto/bip44.ts +++ b/src/lib/crypto/bip44.ts @@ -24,10 +24,10 @@ const HARDENED_OFFSET: 0x80000000 = 0x80000000 * @param {number} account - Account number between 0 and 2^31-1 * @param {number} [change] - Used for change transactions, 0 for external and 1 for internal * @param {number} [address] - Sequentially increasing index of addresses to use for each account - * @returns {Promise} Private child key for the account + * @returns {Promise} Private child key for the account */ -export function Bip44 (curve: Curve, seed: ArrayBuffer, coin: number, account: number, change?: number, address?: number): Promise -export function Bip44 (curve: unknown, seed: unknown, coin: unknown, account: unknown, change?: unknown, address?: unknown): Promise { +export function Bip44 (curve: Curve, seed: ArrayBuffer, coin: number, account: number, change?: number, address?: number): Promise +export function Bip44 (curve: unknown, seed: unknown, coin: unknown, account: unknown, change?: unknown, address?: unknown): Promise { if (curve !== 'Bitcoin seed' && curve !== 'ed25519 seed') { throw new TypeError(`Unsupported curve ${curve}`) } @@ -61,7 +61,7 @@ export function Bip44 (curve: unknown, seed: unknown, coin: unknown, account: un if (address !== undefined && (!Number.isSafeInteger(address) || address < 0 || address > 0x7fffffff)) { throw new RangeError(`Invalid address index 0x${dec.toHex(account)}`) } - return ckd(curve, seed, coin, account, change, address) + return new Uint8Array(ckd(curve, seed, coin, account, change, address)) } function ckd (curve: Curve, seed: ArrayBuffer, coin: number, account: number, change?: number, address?: number): Promise { diff --git a/src/lib/vault/vault-worker.ts b/src/lib/vault/vault-worker.ts index 713602a..701ba53 100644 --- a/src/lib/vault/vault-worker.ts +++ b/src/lib/vault/vault-worker.ts @@ -448,9 +448,9 @@ const _index = new DataView(new ArrayBuffer(4)) * https://docs.nano.org/integration-guides/the-basics/ * * @param {number} index - 4-byte index of account to derive - * @returns {Promise} Private key for the account + * @returns {Promise} Private key for the account */ -function _ckd (index?: number): Promise { +function _ckd (index?: number): Promise { if (_seed == null) { throw new VaultError('Wallet seed not found') } @@ -468,7 +468,7 @@ function _ckd (index?: number): Promise { _index.setUint32(0, index, false) const sk = new Blake2b(32).update(_seed).update(_index.buffer).digest() _index.setUint32(0, 0) - return Promise.resolve(sk.buffer) + return Promise.resolve(sk) } } } -- 2.52.0