2024-02-22 17:08:09 +07:00
|
|
|
"use strict";
|
2024-06-08 17:07:04 +07:00
|
|
|
const { threadId } = require("node:worker_threads");
|
2024-02-17 19:35:33 +07:00
|
|
|
const { finalizeEvent, 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;
|
|
|
|
|
2024-02-17 19:35:33 +07:00
|
|
|
let signed_challenge = finalizeEvent({
|
2023-11-16 21:53:58 +07:00
|
|
|
created_at: Math.floor(Date.now() / 1000),
|
|
|
|
kind: 22242,
|
|
|
|
tags: [
|
|
|
|
["relay", relay.url],
|
|
|
|
["challenge", challenge]
|
|
|
|
],
|
|
|
|
content: ""
|
2024-02-17 19:35:33 +07:00
|
|
|
}, privkey);
|
2023-11-16 21:53:58 +07:00
|
|
|
|
|
|
|
relay.send(JSON.stringify(["AUTH", signed_challenge]));
|
2024-06-08 17:07:04 +07:00
|
|
|
|
|
|
|
console.log(threadId, "-", relay.id, "NIP-42: Sending Signed Challenge to", relay.url);
|
2023-11-16 21:53:58 +07:00
|
|
|
}
|