UNPKG

@shocknet/clink-sdk

Version:

sdk client for clink

79 lines 2.28 kB
import { nip44, getPublicKey } from "nostr-tools"; import { sendRequest } from "./sender.js"; const { getConversationKey, decrypt, encrypt } = nip44; export const SendNmanageRequest = async (pool, privateKey, relays, toPubKey, data, timeoutSeconds) => { const publicKey = getPublicKey(privateKey); const content = encrypt(JSON.stringify(data), getConversationKey(privateKey, toPubKey)); const event = newNmanageEvent(content, publicKey, toPubKey); return sendRequest(pool, { privateKey, publicKey }, relays, toPubKey, event, 21003, timeoutSeconds); }; export const newNmanageEvent = (content, fromPub, toPub) => ({ content, created_at: Math.floor(Date.now() / 1000), kind: 21003, pubkey: fromPub, tags: [['p', toPub], ['clink_version', '1']] }); export const newNmanageFilter = (publicKey, eventId) => ({ since: Math.floor(Date.now() / 1000) - 1, kinds: [21003], '#p': [publicKey], '#e': [eventId] }); export const newCreateRequest = (label, data = {}, pointer) => { const offer = { label, callback_url: data.callback_url || "", payer_data: data.payer_data || [], price_sats: data.price_sats || 0 }; return { resource: 'offer', action: 'create', pointer, offer: { fields: offer } }; }; export const newUpdateRequest = (updatedOffer) => { return { resource: 'offer', action: 'update', offer: { id: updatedOffer.id, fields: { label: updatedOffer.label, price_sats: updatedOffer.price_sats, callback_url: updatedOffer.callback_url, payer_data: updatedOffer.payer_data } } }; }; export const newDeleteRequest = (offerId) => { return { resource: 'offer', action: 'delete', offer: { id: offerId } }; }; export const newGetRequest = (offerId) => { return { resource: 'offer', action: 'get', offer: { id: offerId } }; }; export const newListRequest = (pointer) => { return { resource: 'offer', action: 'list', pointer }; }; //# sourceMappingURL=nmanage.js.map