From 730618efa8baff5796dab50866d4aaa53ddb0ece Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:20:13 +0000 Subject: [PATCH] fix(nostr): correctly resolve signer capabilities when methods are present This fixes a critical issue where valid NIP-07 signers were treated as incapable of NIP-44/NIP-04 operations if their initial `capabilities` flag was false, even if the necessary methods (e.g., `nip44Decrypt`) were subsequently added or already present. This addresses errors like "Gift wrap events require a NIP-44 decryptor" for users with valid extensions. Co-authored-by: PR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> --- js/nostr/client.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/js/nostr/client.js b/js/nostr/client.js index 7ad2f43d..fcdb54fb 100644 --- a/js/nostr/client.js +++ b/js/nostr/client.js @@ -307,19 +307,16 @@ function resolveSignerCapabilities(signer) { return { sign: - typeof capabilities.sign === "boolean" - ? capabilities.sign - : typeof signer.signEvent === "function", + (typeof capabilities.sign === "boolean" && capabilities.sign) || + typeof signer.signEvent === "function", nip44: - typeof capabilities.nip44 === "boolean" - ? capabilities.nip44 - : typeof signer.nip44Encrypt === "function" || - typeof signer.nip44Decrypt === "function", + (typeof capabilities.nip44 === "boolean" && capabilities.nip44) || + typeof signer.nip44Encrypt === "function" || + typeof signer.nip44Decrypt === "function", nip04: - typeof capabilities.nip04 === "boolean" - ? capabilities.nip04 - : typeof signer.nip04Encrypt === "function" || - typeof signer.nip04Decrypt === "function", + (typeof capabilities.nip04 === "boolean" && capabilities.nip04) || + typeof signer.nip04Encrypt === "function" || + typeof signer.nip04Decrypt === "function", }; }