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
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
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
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 })
}
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 })
}
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
}
/**
*/
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'
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
}
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
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
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
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)
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) {
result = `unknown Safe method ${method}`
}
}
- results.push({ method, name, result })
} catch (err) {
+ console.log(err)
result = false
}
- return results
+ return result
}
/**