]> git.codecow.com Git - libnemo.git/commitdiff
Import nano25519 sync methods only which avoids worker conflicts in vault.
authorChris Duncan <chris@zoso.dev>
Fri, 3 Apr 2026 21:50:19 +0000 (14:50 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 3 Apr 2026 21:50:19 +0000 (14:50 -0700)
src/lib/vault/vault-worker.ts

index 12be3aecb07b4d6d67c9469a269035ed51716b6c..fe36a8cdf91f6711c69d2be9f43fc7ea40f69a17 100644 (file)
@@ -1,7 +1,7 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import * as nano25519 from 'nano25519'
+import { derive as nano25519_derive, sign as nano25519_sign } from 'nano25519'
 import { parentPort } from 'node:worker_threads'
 import { BIP44_COIN_NANO } from '../constants'
 import { Bip39, Bip44, Blake2b, WalletAesGcm } from '../crypto'
@@ -22,7 +22,7 @@ let _mnemonic: ArrayBuffer | undefined = undefined
 
 const listener = (event: MessageEvent<any>): void => {
        const { url, id } = event.data
-       if (url !== location.href) return
+       BROWSER: if (url !== location.href) return
        NODE: if (parentPort == null) setTimeout(() => listener(event), 0)
        const data = _parseData(event.data)
        const action = _parseAction(data)
@@ -181,7 +181,7 @@ async function derive (index?: number): Promise<Record<string, number | ArrayBuf
                                : Blake2b.ckd(_seed, index)
                return derive.then(result => {
                        const prv = new Uint8Array(result)
-                       const pub = nano25519.derive(prv)
+                       const pub = nano25519_derive(prv)
                        _timer = new VaultTimer(() => lock(), _timeout)
                        return { index, publicKey: pub.buffer }
                })
@@ -248,8 +248,8 @@ async function sign (index?: number, data?: ArrayBuffer): Promise<Record<string,
                        : Bip44.ckd(_type === 'Exodus' ? 'Bitcoin seed' : 'ed25519 seed', _seed, BIP44_COIN_NANO, index)
                return derive.then(result => {
                        const prv = new Uint8Array(result)
-                       const pub = nano25519.derive(prv)
-                       const sig = nano25519.sign(new Uint8Array(data), new Uint8Array([...prv, ...pub]))
+                       const pub = nano25519_derive(prv)
+                       const sig = nano25519_sign(new Uint8Array(data), new Uint8Array([...prv, ...pub]))
                        _timer = new VaultTimer(() => lock(), _timeout)
                        return { signature: sig.buffer }
                })