2023-11-16 22:07:07 +07:00
|
|
|
const { getEventHash, getSignature, nip19 } = require("nostr-tools");
|
2023-11-16 21:53:58 +07:00
|
|
|
|
|
|
|
module.exports = (relay, pubkey, privkey, challenge) => {
|
|
|
|
if (!privkey) return;
|
2023-11-16 22:07:07 +07:00
|
|
|
if (privkey.startsWith("nsec")) privkey = nip19.decode(privkey).data;
|
|
|
|
|
2023-11-16 21:53:58 +07:00
|
|
|
let signed_challenge = {
|
|
|
|
pubkey,
|
|
|
|
created_at: Math.floor(Date.now() / 1000),
|
|
|
|
kind: 22242,
|
|
|
|
tags: [
|
|
|
|
["relay", relay.url],
|
|
|
|
["challenge", challenge]
|
|
|
|
],
|
|
|
|
content: ""
|
|
|
|
}
|
|
|
|
|
|
|
|
signed_challenge.id = getEventHash(signed_challenge);
|
|
|
|
signed_challenge.sig = getSignature(signed_challenge, privkey);
|
|
|
|
relay.send(JSON.stringify(["AUTH", signed_challenge]));
|
|
|
|
}
|