]> git.codecow.com Git - libnemo.git/commitdiff
Reorganization. next/user-activation
authorChris Duncan <chris@zoso.dev>
Thu, 30 Apr 2026 19:36:58 +0000 (12:36 -0700)
committerChris Duncan <chris@zoso.dev>
Thu, 30 Apr 2026 19:36:58 +0000 (12:36 -0700)
src/lib/wallet/sign.ts

index 96eb6e90571cfd901015fcbddfbc5c33df8d2728..5b5d0002073e2d9560adbb6632e25e5c9c304b92 100644 (file)
@@ -7,39 +7,6 @@ import { Ledger } from '../ledger'
 import { Vault } from '../vault'
 import { Wallet } from '../wallet'
 
-export async function _signData (wallet: Wallet, vault: Vault, index: number, address: string, data: string | string[]): Promise<string>
-export async function _signData (wallet: Wallet, vault: Vault, index: unknown, address: unknown, data: unknown): Promise<string> {
-       try {
-               if (typeof index !== 'number') {
-                       throw new TypeError('Index must be a number', { cause: index })
-               }
-               if (typeof address !== 'string') {
-                       throw new TypeError('Address must be a string', { cause: address })
-               }
-               const message = Array.isArray(data) ? data : [data]
-               if (message.some(s => typeof s !== 'string')) {
-                       throw new TypeError('Data to sign must be strings', { cause: data })
-               }
-               if (wallet.type === 'Ledger') {
-                       return await Ledger.sign(index, message[0])
-               }
-               if (navigator.userActivation?.isActive === false) {
-                       throw new DOMException(
-                               'Signing request was blocked due to lack of user activation',
-                               'NotAllowedError'
-                       )
-               }
-               const { signature } = await vault.request<ArrayBuffer>({
-                       action: 'sign',
-                       index,
-                       message: utf8.toBuffer(message.join(''))
-               })
-               return bytes.toHex(new Uint8Array(signature))
-       } catch (err) {
-               throw new Error('Failed to sign data', { cause: err })
-       }
-}
-
 export async function _signBlock (wallet: Wallet, vault: Vault, index: number, address: string, block: Block, frontier?: Block): Promise<void>
 export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown, address: unknown, block: unknown, frontier?: unknown): Promise<void> {
        try {
@@ -79,3 +46,36 @@ export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown,
                throw new Error(`Failed to sign block`, { cause: err })
        }
 }
+
+export async function _signData (wallet: Wallet, vault: Vault, index: number, address: string, data: string | string[]): Promise<string>
+export async function _signData (wallet: Wallet, vault: Vault, index: unknown, address: unknown, data: unknown): Promise<string> {
+       try {
+               if (typeof index !== 'number') {
+                       throw new TypeError('Index must be a number', { cause: index })
+               }
+               if (typeof address !== 'string') {
+                       throw new TypeError('Address must be a string', { cause: address })
+               }
+               const message = Array.isArray(data) ? data : [data]
+               if (message.some(s => typeof s !== 'string')) {
+                       throw new TypeError('Data to sign must be strings', { cause: data })
+               }
+               if (wallet.type === 'Ledger') {
+                       return await Ledger.sign(index, message[0])
+               }
+               if (navigator.userActivation?.isActive === false) {
+                       throw new DOMException(
+                               'Signing request was blocked due to lack of user activation',
+                               'NotAllowedError'
+                       )
+               }
+               const { signature } = await vault.request<ArrayBuffer>({
+                       action: 'sign',
+                       index,
+                       message: utf8.toBuffer(message.join(''))
+               })
+               return bytes.toHex(new Uint8Array(signature))
+       } catch (err) {
+               throw new Error('Failed to sign data', { cause: err })
+       }
+}