diff --git a/js/nostr/client.js b/js/nostr/client.js index f9124a95..35485988 100644 --- a/js/nostr/client.js +++ b/js/nostr/client.js @@ -2103,6 +2103,15 @@ export class NostrClient { } } + const permissionResult = await this.ensureExtensionPermissions([ + ...DEFAULT_NIP07_PERMISSION_METHODS, + ...DEFAULT_NIP07_ENCRYPTION_METHODS, + ]); + + if (!permissionResult.ok) { + throw permissionResult.error; + } + const adapter = await createNip07Adapter(extension); adapter.pubkey = pubkey; setActiveSigner(adapter); diff --git a/js/nostr/nip07Permissions.js b/js/nostr/nip07Permissions.js index c3e7a935..4c0b7cf8 100644 --- a/js/nostr/nip07Permissions.js +++ b/js/nostr/nip07Permissions.js @@ -327,13 +327,14 @@ export async function requestEnablePermissions( .filter(Boolean) : []; - const permissionVariants = [null]; + const permissionVariants = []; if (normalized.length) { permissionVariants.push({ permissions: normalized.map((method) => ({ method })), }); permissionVariants.push({ permissions: normalized }); } + permissionVariants.push(null); const enableTimeoutMs = getEnableVariantTimeoutMs(); const loginTimeoutMs = getNip07LoginTimeoutMs();