]> git.codecow.com Git - libnemo.git/commitdiff
Return results directly from workers instead of always putting in an array now that...
authorChris Duncan <chris@zoso.dev>
Wed, 16 Jul 2025 03:29:44 +0000 (20:29 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 16 Jul 2025 03:29:44 +0000 (20:29 -0700)
src/lib/account.ts
src/lib/block.ts
src/lib/tools.ts
src/lib/wallets/bip44-wallet.ts
src/lib/wallets/wallet.ts
src/lib/workers/queue.ts
src/lib/workers/safe.ts

index 9f55252125b84be8e015d00f4df3ba2d06bacead..dee66c81623d2d7d19cb3f396926630d557daff2 100644 (file)
@@ -139,8 +139,7 @@ export class Account {
                        const data = {\r
                                privateKey: new Uint8Array(privateKey).buffer\r
                        }\r
-                       const result = await NanoNaClWorker.add(headers, data)\r
-                       publicKey = result[0]\r
+                       publicKey = await NanoNaClWorker.add(headers, data)\r
                } catch (err) {\r
                        throw new Error(`Failed to derive public key from private key`, { cause: err })\r
                }\r
@@ -170,8 +169,7 @@ export class Account {
                                id: hex.toBytes(this.#pub).buffer,\r
                                privateKey: this.#prv.buffer\r
                        }\r
-                       const response = await SafeWorker.add(headers, data)\r
-                       const success = response[0].result\r
+                       const success = await SafeWorker.add(headers, data)\r
                        if (!success) {\r
                                throw null\r
                        }\r
@@ -238,7 +236,7 @@ export class Account {
                                password: password.buffer\r
                        }\r
                        const response = await SafeWorker.add(headers, data)\r
-                       let { id, privateKey } = response[0].result\r
+                       let { id, privateKey } = response\r
                        if (id == null) {\r
                                throw null\r
                        }\r
index 208958fa42334e53ec10a8fa978e121b8e006ad7..12bc6c8a34f107397f7d28c1671e5a132c98c94f 100644 (file)
@@ -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 })
                }
index 2669e5b801660d87ae644a4b0934aa59fc35dfb5..41caeb1c2e9277fcd9169baf5705b88c9b5b246e 100644 (file)
@@ -98,15 +98,12 @@ export async function sign (key: string | Uint8Array<ArrayBuffer>, ...input: str
                        privateKey: key.buffer,
                        msg: (hash(input) as Uint8Array<ArrayBuffer>).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<ArrayBuffer>, signature: string, ...input: string[]): Promise<boolean> {
        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<ArrayBuffer>, 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
 }
index 200147d6852f0786be35c6c024836959af743e61..bd1ca66690e4ad9582fafd18b89d085c9cb7413f 100644 (file)
@@ -218,7 +218,7 @@ export class Bip44Wallet extends Wallet {
                const data = {\r
                        seed: hex.toBytes(this.seed).buffer\r
                }\r
-               const results = (await Bip44CkdWorker.add(headers, data))[0]\r
+               const results = await Bip44CkdWorker.add(headers, data)\r
                const privateKeys: KeyPair[] = []\r
                for (const i of Object.keys(results)) {\r
                        if (results[i] == null || !(results[i] instanceof ArrayBuffer)) {\r
index 4cf3c61b6c8443224dfea426049ba59b764a7abd..bac12f730c1acdf74048967a5fd0dad861bbd871 100644 (file)
@@ -164,8 +164,7 @@ export abstract class Wallet {
                        if (this.#m != null) {\r
                                data.mnemonic = utf8.toBytes(this.#m?.phrase ?? '').buffer\r
                        }\r
-                       const response = await SafeWorker.add(headers, data)\r
-                       const success = response[0].result\r
+                       const success = await SafeWorker.add(headers, data)\r
                        if (!success) {\r
                                throw null\r
                        }\r
@@ -233,7 +232,7 @@ export abstract class Wallet {
                                password: new Uint8Array(password).buffer\r
                        }\r
                        const response = await SafeWorker.add(headers, data)\r
-                       let { id, mnemonic, seed } = response[0].result\r
+                       let { id, mnemonic, seed } = response\r
                        if (id == null) {\r
                                throw null\r
                        }\r
index d8a6d262d2fcf30d2a2566b5df0e0474dd410d8f..2606f45e2b04bc07b2f3453dc084c926ed516ed2 100644 (file)
@@ -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)
index 2bb00c56b4c399d06fa77898069071c0cc2a5237..404a446f563f19cfabc98c6782f1959fc49e3bc6 100644 (file)
@@ -24,7 +24,6 @@ export class Safe extends WorkerInterface {
        static async work (headers: Headers, data: Data): Promise<any> {
                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
        }
 
        /**