import { _load } from './load'\r
import { _restore } from './restore'\r
import { Rpc } from '../rpc'\r
+import { _sign } from './sign'\r
import { default as VaultWorker } from '../vault/vault'\r
import { WorkerQueue } from '../vault/worker-queue'\r
\r
* @param {number} index - Account to use for signing\r
* @param {(Block)} block - Block data to be hashed and signed\r
*/\r
- async sign (index: number, block: Block): Promise<void>\r
- async sign (index: unknown, block: unknown): Promise<void> {\r
- try {\r
- if (typeof index !== 'number') {\r
- throw new TypeError('Index must be a number', { cause: index })\r
- }\r
- if (!(block instanceof Block)) {\r
- throw new TypeError('Invalid Block', { cause: block })\r
- }\r
- const { signature } = await this.#vault.request<ArrayBuffer>({\r
- action: 'sign',\r
- index,\r
- data: hex.toBuffer(block.hash)\r
- })\r
- block.signature = bytes.toHex(new Uint8Array(signature))\r
- clearTimeout(this.#lockTimer)\r
- this.#lockTimer = setTimeout(() => this.lock(), 300000)\r
- } catch (err) {\r
- throw new Error(`Failed to sign block`, { cause: err })\r
- }\r
+ async sign (index: number, block: Block): Promise<void> {\r
+ await _sign(this.#vault, index, block)\r
+ clearTimeout(this.#lockTimer)\r
+ this.#lockTimer = setTimeout(() => this.lock(), 300000)\r
}\r
\r
/**\r
--- /dev/null
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-License-Identifier: GPL-3.0-or-later
+
+import { Block } from '../block'
+import { bytes, hex } from '../convert'
+import { WorkerQueue } from '../vault/worker-queue'
+
+export async function _sign (vault: WorkerQueue, index: number, block: Block): Promise<void>
+export async function _sign (vault: WorkerQueue, index: unknown, block: unknown): Promise<void> {
+ try {
+ if (typeof index !== 'number') {
+ throw new TypeError('Index must be a number', { cause: index })
+ }
+ if (!(block instanceof Block)) {
+ throw new TypeError('Invalid Block', { cause: block })
+ }
+ const { signature } = await vault.request<ArrayBuffer>({
+ action: 'sign',
+ index,
+ data: hex.toBuffer(block.hash)
+ })
+ block.signature = bytes.toHex(new Uint8Array(signature))
+ } catch (err) {
+ throw new Error(`Failed to sign block`, { cause: err })
+ }
+}