From 90e110b1fdd4d334a83be9026451d7e9e9898062 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Sat, 30 Mar 2024 16:49:05 -0300 Subject: [PATCH] feat: script to generate an nsec This fixes: https://gitlab.com/soapbox-pub/ditto/-/issues/85 --- deno.json | 3 ++- scripts/nsec.ts | 16 ++++++++++++++++ src/deps.ts | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 scripts/nsec.ts diff --git a/deno.json b/deno.json index a552b644..58edb3e3 100644 --- a/deno.json +++ b/deno.json @@ -7,7 +7,8 @@ "debug": "deno run -A --unstable-ffi --inspect src/server.ts", "test": "DB_PATH=\":memory:\" deno test -A --unstable-ffi", "check": "deno check src/server.ts", - "relays:sync": "deno run -A --unstable-ffi scripts/relays.ts sync" + "relays:sync": "deno run -A --unstable-ffi scripts/relays.ts sync", + "nsec": "deno run -A --unstable-ffi scripts/nsec.ts" }, "exclude": ["./public"], "imports": { "@/": "./src/", "@soapbox/nspec": "jsr:@soapbox/nspec@^0.8.1", "~/fixtures/": "./fixtures/" }, diff --git a/scripts/nsec.ts b/scripts/nsec.ts new file mode 100644 index 00000000..cbef7c7c --- /dev/null +++ b/scripts/nsec.ts @@ -0,0 +1,16 @@ +import { generateSecretKey, nip19 } from '@/deps.ts'; + +switch (Deno.args[0]) { + default: { + const encodedNsec = generateEncodedPrivateKey(); + console.log(encodedNsec); + Deno.exit(0); + } +} + +function generateEncodedPrivateKey(): string { + const sk = generateSecretKey(); + const nsec = nip19.nsecEncode(sk); + + return nsec; +} diff --git a/src/deps.ts b/src/deps.ts index 2e5130e9..52275260 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -19,6 +19,7 @@ export { nip13, nip19, nip21, + generateSecretKey, type UnsignedEvent, type VerifiedEvent, } from 'npm:nostr-tools@^2.3.1';