UNPKG

@nostr-dev-kit/ndk

Version:

NDK - Nostr Development Kit. Includes AI Guardrails to catch common mistakes during development.

40 lines (35 loc) 1.14 kB
import { NDKUser } from "../../../user/index.js"; import type { IEventHandlingStrategy, NDKNip46Backend } from "./index.js"; export default class Nip04DecryptHandlingStrategy implements IEventHandlingStrategy { async handle( backend: NDKNip46Backend, id: string, remotePubkey: string, params: string[], ): Promise<string | undefined> { const [senderPubkey, payload] = params; const senderUser = new NDKUser({ pubkey: senderPubkey }); const decryptedPayload = await decrypt(backend, id, remotePubkey, senderUser, payload); return decryptedPayload; } } async function decrypt( backend: NDKNip46Backend, id: string, remotePubkey: string, senderUser: NDKUser, payload: string, ) { if ( !(await backend.pubkeyAllowed({ id, pubkey: remotePubkey, method: "nip04_decrypt", params: payload, })) ) { backend.debug(`decrypt request from ${remotePubkey} rejected`); return undefined; } return await backend.signer.decrypt(senderUser, payload, "nip04"); }