mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-09 00:28:51 +00:00
simplify nip-42.
This commit is contained in:
26
nip42.ts
26
nip42.ts
@@ -1,33 +1,17 @@
|
||||
import { type EventTemplate, type Event } from './event.ts'
|
||||
import { EventTemplate } from './event.ts'
|
||||
import { ClientAuth } from './kinds.ts'
|
||||
import { Relay } from './relay.ts'
|
||||
|
||||
/**
|
||||
* Authenticate via NIP-42 flow.
|
||||
*
|
||||
* @example
|
||||
* const sign = window.nostr.signEvent
|
||||
* relay.on('auth', challenge =>
|
||||
* authenticate({ relay, sign, challenge })
|
||||
* )
|
||||
* creates an EventTemplate for an AUTH event to be signed.
|
||||
*/
|
||||
export const authenticate = async ({
|
||||
challenge,
|
||||
relay,
|
||||
sign,
|
||||
}: {
|
||||
challenge: string
|
||||
relay: Relay
|
||||
sign: (e: EventTemplate) => Promise<Event> | Event
|
||||
}): Promise<void> => {
|
||||
const evt: EventTemplate = {
|
||||
export function makeAuthEvent(relayURL: string, challenge: string): EventTemplate {
|
||||
return {
|
||||
kind: ClientAuth,
|
||||
created_at: Math.floor(Date.now() / 1000),
|
||||
tags: [
|
||||
['relay', relay.url],
|
||||
['relay', relayURL],
|
||||
['challenge', challenge],
|
||||
],
|
||||
content: '',
|
||||
}
|
||||
return relay.auth(await sign(evt))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user