@shocknet/clink-sdk
Version:
sdk client for clink
79 lines • 2.28 kB
JavaScript
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