diff --git a/js/nostr.js b/js/nostr.js index 45c9e580..b3a85f16 100644 --- a/js/nostr.js +++ b/js/nostr.js @@ -166,14 +166,16 @@ const WATCH_HISTORY_REPUBLISH_JITTER = 0.25; const NIP07_PERMISSIONS_STORAGE_KEY = "bitvid:nip07:permissions"; export const DEFAULT_NIP07_PERMISSION_METHODS = Object.freeze([ + // Core auth + relay metadata "get_public_key", "sign_event", + "read_relays", + "write_relays", + // Encryption helpers — request both legacy NIP-04 and modern NIP-44 upfront "nip04.encrypt", "nip04.decrypt", "nip44.encrypt", "nip44.decrypt", - "read_relays", - "write_relays", ]); const viewEventPublishMemory = new Map(); diff --git a/tests/nostr-login-permissions.test.mjs b/tests/nostr-login-permissions.test.mjs index 18046989..779c3814 100644 --- a/tests/nostr-login-permissions.test.mjs +++ b/tests/nostr-login-permissions.test.mjs @@ -200,6 +200,10 @@ test("NIP-07 decrypt reuses cached extension permissions", async () => { storedSet.has("nip04.decrypt"), "stored permissions should include nip04.decrypt", ); + assert.ok( + storedSet.has("nip44.encrypt"), + "stored permissions should include nip44.encrypt", + ); assert.ok( storedSet.has("nip44.decrypt"), "stored permissions should include nip44.decrypt", @@ -213,6 +217,10 @@ test("NIP-07 decrypt reuses cached extension permissions", async () => { freshClient.extensionPermissionCache.has("nip04.decrypt"), "fresh client should hydrate nip04.decrypt from storage", ); + assert.ok( + freshClient.extensionPermissionCache.has("nip44.encrypt"), + "fresh client should hydrate nip44.encrypt from storage", + ); assert.ok( freshClient.extensionPermissionCache.has("nip44.decrypt"), "fresh client should hydrate nip44.decrypt from storage",