aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-01-22 15:29:37 -0800
committerAdam Soltys <[email protected]>2025-01-22 15:29:37 -0800
commitcbc2f7a8e89d049a68ff520e6d640753c877bf57 (patch)
tree3e89afa1d0e2dab0a7d34efb719cc9f0b0382a86 /src/lib
parentb43e70ad7f4d6b7b82e0cc056413021f5d073f78 (diff)
downloadcoinos-ui-cbc2f7a8e89d049a68ff520e6d640753c877bf57.tar.gz
coinos-ui-cbc2f7a8e89d049a68ff520e6d640753c877bf57.zip
use nsec if available
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/nostr.ts13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/nostr.ts b/src/lib/nostr.ts
index 85f1bdaa..a5b2d990 100644
--- a/src/lib/nostr.ts
+++ b/src/lib/nostr.ts
@@ -8,6 +8,7 @@ import {
signer as $signer,
} from "$lib/store";
import { post, wait } from "$lib/utils";
+import { bytesToHex } from "@noble/hashes/utils";
import {
type EventTemplate,
finalizeEvent,
@@ -102,7 +103,17 @@ export const encryptNsec = async (nsec: string) => {
return nip49encrypt(d, await getPassword());
};
-export const sign = async (event) => {
+export const sign = async (event, user) => {
+ if (user?.nsec && !get($signer)?.ready) {
+ const sk = await getPrivateKey(user);
+
+ $signer.set({
+ method: "nsec",
+ ready: true,
+ params: { sk: bytesToHex(sk), pk: getPublicKey(sk) },
+ });
+ }
+
eventToSign.set(event);
let unsubscribe;
const { method, params } = await new Promise((r) => {