From 34ddcd0c0ee66832a6fa9a35a34de64cf6d4aa51 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Mon, 3 Aug 2026 13:31:43 -0700 Subject: [PATCH] Bypass user activation for automated testing with Node, else fail closed instead of open. --- esbuild/config.mjs | 1 + src/lib/block/sign.ts | 2 +- src/lib/tools.ts | 2 +- src/lib/wallet/sign.ts | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/esbuild/config.mjs b/esbuild/config.mjs index 597f03a..a31112d 100644 --- a/esbuild/config.mjs +++ b/esbuild/config.mjs @@ -59,6 +59,7 @@ export const nodeOptions = { './esbuild/inject/fake-indexeddb.mjs' ], define: { + 'navigator.userActivation.isActive': 'true', 'VAULT_WORKER': nodeVaultWorker } } diff --git a/src/lib/block/sign.ts b/src/lib/block/sign.ts index cbb115b..959c0a9 100644 --- a/src/lib/block/sign.ts +++ b/src/lib/block/sign.ts @@ -6,7 +6,7 @@ import type { Block } from '.' import { Wallet } from '../wallet' export function _sign (block: Block, input: unknown, index: unknown, frontier: unknown): Block | Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' diff --git a/src/lib/tools.ts b/src/lib/tools.ts index b3e4b5b..c43066b 100644 --- a/src/lib/tools.ts +++ b/src/lib/tools.ts @@ -108,7 +108,7 @@ export function convert (amount: unknown, inputUnit: unknown, outputUnit: unknow * @returns {string} 64-byte hexadecimal signature */ export function sign (secretKey: string | ArrayBuffer | Bytes, input: string): string { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' diff --git a/src/lib/wallet/sign.ts b/src/lib/wallet/sign.ts index cf1aa9d..f1c8089 100644 --- a/src/lib/wallet/sign.ts +++ b/src/lib/wallet/sign.ts @@ -9,7 +9,7 @@ import { Wallet } from '../wallet' export async function _signBlock (wallet: Wallet, vault: Vault, index: number, address: string, block: Block, frontier?: Block): Promise export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown, address: unknown, block: unknown, frontier?: unknown): Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' @@ -53,7 +53,7 @@ export async function _signBlock (wallet: Wallet, vault: Vault, index: unknown, export async function _signData (wallet: Wallet, vault: Vault, index: number, address: string, data: string): Promise export async function _signData (wallet: Wallet, vault: Vault, index: unknown, address: unknown, data: unknown): Promise { - if (navigator.userActivation?.isActive === false) { + if (!navigator.userActivation.isActive) { throw new DOMException( 'Signing request was blocked due to lack of user activation', 'NotAllowedError' -- 2.52.0