this.#isLocked = true
this.#isTerminated = false
this.#queue = []
- this.#url = URL.createObjectURL(new Blob([vaultWorker], { type: 'text/javascript' }))
+ BROWSER: this.#url = URL.createObjectURL(new Blob([vaultWorker], { type: 'text/javascript' }))
BROWSER: this.#worker = new Worker(this.#url, { type: 'module' })
BROWSER: this.#worker.addEventListener('message', message => {
this.#report(message.data)
NODE: this.#worker.on('message', message => {
this.#report(message)
})
+ NODE: this.#url = this.#worker.threadId.toString()
}
get isLocked (): boolean { return this.#isLocked }
//! SPDX-License-Identifier: GPL-3.0-or-later
import { derive as nano25519_derive, sign as nano25519_sign } from 'nano25519'
-import { parentPort } from 'node:worker_threads'
+import { parentPort, threadId } from 'node:worker_threads'
import { BIP44_COIN_NANO } from '../constants'
import { Bip39, Bip44, Blake2b, WalletAesGcm } from '../crypto'
import { WalletType } from '../wallet'
const listener = (event: MessageEvent<any>): void => {
const { url, id } = event.data
BROWSER: if (url !== location.href) return
+ NODE: if (url !== threadId.toString()) return
NODE: if (parentPort == null) setTimeout(() => listener(event), 0)
const data = _parseData(event.data)
const action = _parseAction(data)