aboutsummaryrefslogtreecommitdiffstats
path: root/lib/register.ts
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-12-30 23:20:22 -0800
committerAdam Soltys <[email protected]>2024-12-30 23:20:22 -0800
commit9dfd7a003436593de3418b659b915ef0d5078c0b (patch)
tree0f00ac1ec807cf50dc0f8efef9b317534ba84923 /lib/register.ts
parentbec6c516f63b84720192a9a3909c09fccfce7143 (diff)
downloadcoinos-server-9dfd7a003436593de3418b659b915ef0d5078c0b.tar.gz
coinos-server-9dfd7a003436593de3418b659b915ef0d5078c0b.zip
nostr registration
Diffstat (limited to 'lib/register.ts')
-rw-r--r--lib/register.ts15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/register.ts b/lib/register.ts
index 36b9d443..91c140b0 100644
--- a/lib/register.ts
+++ b/lib/register.ts
@@ -12,7 +12,7 @@ import { v4 } from "uuid";
const valid = /^[\p{L}\p{N}]{2,24}$/u;
export default async (user, ip) => {
- let { password, username } = user;
+ let { password, pubkey, username } = user;
l("registering", username);
if (!username) fail("Username required");
@@ -48,17 +48,20 @@ export default async (user, ip) => {
}
}
- const sk = randomBytes(32);
- const pubkey = getPublicKey(sk);
- user.pubkey = pubkey;
- user.nsec = nip49encrypt(sk, password);
user.currencies = [...new Set([user.currency, "CAD", "USD"])];
user.fiat = false;
user.otpsecret = authenticator.generateSecret();
user.migrated = true;
user.locktime = 300;
- user.npub = nip19.npubEncode(user.pubkey);
+ if (!pubkey) {
+ const sk = randomBytes(32);
+ const pubkey = getPublicKey(sk);
+ user.pubkey = pubkey;
+ user.nsec = nip49encrypt(sk, password);
+ }
+
+ user.npub = nip19.npubEncode(pubkey);
user.nwc = bytesToHex(randomBytes(32));
const account = JSON.stringify({