From: Chris Duncan Date: Wed, 16 Jul 2025 03:29:44 +0000 (-0700) Subject: Return results directly from workers instead of always putting in an array now that... X-Git-Tag: v0.10.5~57^2~3 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=68f9db854a2c24f7639a5866d45b1874a9243342;p=libnemo.git Return results directly from workers instead of always putting in an array now that we use Data objects. --- diff --git a/src/lib/account.ts b/src/lib/account.ts index 9f55252..dee66c8 100644 --- a/src/lib/account.ts +++ b/src/lib/account.ts @@ -139,8 +139,7 @@ export class Account { const data = { privateKey: new Uint8Array(privateKey).buffer } - const result = await NanoNaClWorker.add(headers, data) - publicKey = result[0] + publicKey = await NanoNaClWorker.add(headers, data) } catch (err) { throw new Error(`Failed to derive public key from private key`, { cause: err }) } @@ -170,8 +169,7 @@ export class Account { id: hex.toBytes(this.#pub).buffer, privateKey: this.#prv.buffer } - const response = await SafeWorker.add(headers, data) - const success = response[0].result + const success = await SafeWorker.add(headers, data) if (!success) { throw null } @@ -238,7 +236,7 @@ export class Account { password: password.buffer } const response = await SafeWorker.add(headers, data) - let { id, privateKey } = response[0].result + let { id, privateKey } = response if (id == null) { throw null } diff --git a/src/lib/block.ts b/src/lib/block.ts index 208958f..12bc6c8 100644 --- a/src/lib/block.ts +++ b/src/lib/block.ts @@ -152,8 +152,7 @@ abstract class Block { privateKey: hex.toBytes(account.privateKey).buffer, msg: hex.toBytes(this.hash).buffer } - const result = await NanoNaClWorker.add(headers, data) - this.signature = result[0] + this.signature = await NanoNaClWorker.add(headers, data) } catch (err) { throw new Error(`Failed to sign block`, { cause: err }) } @@ -209,8 +208,7 @@ abstract class Block { signature: hex.toBytes(this.signature ?? '').buffer, publicKey: hex.toBytes(key).buffer } - const result = await NanoNaClWorker.add(headers, data) - return result[0] + return await NanoNaClWorker.add(headers, data) } catch (err) { throw new Error(`Failed to derive public key from private key`, { cause: err }) } diff --git a/src/lib/tools.ts b/src/lib/tools.ts index 2669e5b..41caeb1 100644 --- a/src/lib/tools.ts +++ b/src/lib/tools.ts @@ -98,15 +98,12 @@ export async function sign (key: string | Uint8Array, ...input: str privateKey: key.buffer, msg: (hash(input) as Uint8Array).buffer } - const result = await NanoNaClWorker.add(headers, data) - signature = result[0] + return await NanoNaClWorker.add(headers, data) } catch (err) { throw new Error(`Failed to sign message with private key`, { cause: err }) } finally { bytes.erase(key) } - - return signature } /** @@ -180,7 +177,6 @@ export async function sweep ( */ export async function verify (key: string | Uint8Array, signature: string, ...input: string[]): Promise { if (typeof key === 'string') key = hex.toBytes(key) - let isVerified: boolean try { const headers = { method: 'verify' @@ -190,13 +186,10 @@ export async function verify (key: string | Uint8Array, signature: signature: hex.toBytes(signature).buffer, publicKey: new Uint8Array(key).buffer } - const result = await NanoNaClWorker.add(headers, data) - isVerified = result[0] + return await NanoNaClWorker.add(headers, data) } catch (err) { - console.log(err) - isVerified = false + throw new Error('Failed to verify signature', { cause: err }) } finally { bytes.erase(key) } - return isVerified } diff --git a/src/lib/wallets/bip44-wallet.ts b/src/lib/wallets/bip44-wallet.ts index 200147d..bd1ca66 100644 --- a/src/lib/wallets/bip44-wallet.ts +++ b/src/lib/wallets/bip44-wallet.ts @@ -218,7 +218,7 @@ export class Bip44Wallet extends Wallet { const data = { seed: hex.toBytes(this.seed).buffer } - const results = (await Bip44CkdWorker.add(headers, data))[0] + const results = await Bip44CkdWorker.add(headers, data) const privateKeys: KeyPair[] = [] for (const i of Object.keys(results)) { if (results[i] == null || !(results[i] instanceof ArrayBuffer)) { diff --git a/src/lib/wallets/wallet.ts b/src/lib/wallets/wallet.ts index 4cf3c61..bac12f7 100644 --- a/src/lib/wallets/wallet.ts +++ b/src/lib/wallets/wallet.ts @@ -164,8 +164,7 @@ export abstract class Wallet { if (this.#m != null) { data.mnemonic = utf8.toBytes(this.#m?.phrase ?? '').buffer } - const response = await SafeWorker.add(headers, data) - const success = response[0].result + const success = await SafeWorker.add(headers, data) if (!success) { throw null } @@ -233,7 +232,7 @@ export abstract class Wallet { password: new Uint8Array(password).buffer } const response = await SafeWorker.add(headers, data) - let { id, mnemonic, seed } = response[0].result + let { id, mnemonic, seed } = response if (id == null) { throw null } diff --git a/src/lib/workers/queue.ts b/src/lib/workers/queue.ts index d8a6d26..2606f45 100644 --- a/src/lib/workers/queue.ts +++ b/src/lib/workers/queue.ts @@ -40,7 +40,6 @@ export class Queue { this.#worker = new Worker(this.#url, { type: 'module' }) this.#worker.addEventListener('message', message => { let result = message.data - if (!Array.isArray(result)) result = [result] this.#report(result) }) Queue.#instances.push(this) diff --git a/src/lib/workers/safe.ts b/src/lib/workers/safe.ts index 2bb00c5..404a446 100644 --- a/src/lib/workers/safe.ts +++ b/src/lib/workers/safe.ts @@ -24,7 +24,6 @@ export class Safe extends WorkerInterface { static async work (headers: Headers, data: Data): Promise { this.#storage = await this.#open(this.DB_NAME) const { method, name } = headers - const results = [] let result try { switch (method) { @@ -44,11 +43,11 @@ export class Safe extends WorkerInterface { result = `unknown Safe method ${method}` } } - results.push({ method, name, result }) } catch (err) { + console.log(err) result = false } - return results + return result } /**