Ensure NIP-07 permissions are granted before signing and encrypting

This commit is contained in:
thePR0M3TH3AN committed 2025-10-15 22:36:57 -04:00
1 parent a36d807361
commit deffbf7670
6 files changed
+232 -80

No files matched your search

+19 -1
View File
@@ -1,5 +1,9 @@
import { isDevMode } from "./config.js";
import { DEFAULT_RELAY_URLS, nostrClient } from "./nostr.js";
import {
DEFAULT_RELAY_URLS,
nostrClient,
requestDefaultExtensionPermissions,
} from "./nostr.js";
import { buildRelayListEvent } from "./nostrEventSchemas.js";
import { devLogger, userLogger } from "./utils/logger.js";
import {
@@ -596,6 +600,20 @@ class RelayPreferencesManager {
throw error;
}
const permissionResult = await requestDefaultExtensionPermissions();
if (!permissionResult.ok) {
userLogger.warn(
"[RelayPreferencesManager] Extension permissions denied while publishing relay preferences.",
permissionResult.error,
);
const error = new Error(
"The NIP-07 extension must allow signing before publishing relay preferences.",
);
error.code = "extension-permission-denied";
error.cause = permissionResult.error;
throw error;
}
if (!window?.nostr?.signEvent) {
const error = new Error(
"A NIP-07 extension is required to publish relay preferences."