@welshman/util 0.3.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/util/src/Zaps.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Filter } from "./Filters.js";
|
|
2
|
+
import type { TrustedEvent, SignedEvent } from "./Events.js";
|
|
3
|
+
export declare const toMsats: (sats: number) => number;
|
|
4
|
+
export declare const fromMsats: (msats: number) => number;
|
|
2
5
|
export declare const hrpToMillisat: (hrpString: string) => bigint;
|
|
3
6
|
export declare const getInvoiceAmount: (bolt11: string) => number;
|
|
4
|
-
export declare const getLnUrl: (address: string) => string |
|
|
7
|
+
export declare const getLnUrl: (address: string) => string | undefined;
|
|
5
8
|
export type Zapper = {
|
|
6
9
|
lnurl: string;
|
|
7
10
|
pubkey?: string;
|
|
@@ -16,5 +19,37 @@ export type Zap = {
|
|
|
16
19
|
response: TrustedEvent;
|
|
17
20
|
invoiceAmount: number;
|
|
18
21
|
};
|
|
19
|
-
export declare const zapFromEvent: (response: TrustedEvent, zapper: Zapper | undefined) => Zap |
|
|
22
|
+
export declare const zapFromEvent: (response: TrustedEvent, zapper: Zapper | undefined) => Zap | undefined;
|
|
23
|
+
export type ZapRequestParams = {
|
|
24
|
+
msats: number;
|
|
25
|
+
zapper: Zapper;
|
|
26
|
+
pubkey: string;
|
|
27
|
+
relays: string[];
|
|
28
|
+
content?: string;
|
|
29
|
+
eventId?: string;
|
|
30
|
+
anonymous?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare const makeZapRequest: ({ msats, zapper, pubkey, relays, content, eventId, anonymous, }: ZapRequestParams) => {
|
|
33
|
+
kind: number;
|
|
34
|
+
content: string;
|
|
35
|
+
tags: string[][];
|
|
36
|
+
created_at: number;
|
|
37
|
+
};
|
|
38
|
+
export type RequestInvoiceParams = {
|
|
39
|
+
zapper: Zapper;
|
|
40
|
+
event: SignedEvent;
|
|
41
|
+
};
|
|
42
|
+
export declare const requestZap: ({ zapper, event }: RequestInvoiceParams) => Promise<{
|
|
43
|
+
invoice: any;
|
|
44
|
+
error?: undefined;
|
|
45
|
+
} | {
|
|
46
|
+
error: any;
|
|
47
|
+
invoice?: undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export type ZapResponseFilterParams = {
|
|
50
|
+
zapper: Zapper;
|
|
51
|
+
pubkey: string;
|
|
52
|
+
eventId?: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const getZapResponseFilter: ({ zapper, pubkey, eventId }: ZapResponseFilterParams) => Filter;
|
|
20
55
|
//# sourceMappingURL=Zaps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zaps.d.ts","sourceRoot":"","sources":["../../../src/Zaps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Zaps.d.ts","sourceRoot":"","sources":["../../../src/Zaps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAC,YAAY,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AAc1D,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,WAAgB,CAAA;AAEpD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,WAA6B,CAAA;AAEpE,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,WA2B9C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,WAI9C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,uBAsBvC,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,YAAY,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,EAAE,QAAQ,MAAM,GAAG,SAAS,oBA0C9E,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,iEAQ5B,gBAAgB;;;;;CAiBlB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,mBAAiB,oBAAoB;;;;;;EAOrE,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,6BAA2B,uBAAuB,WAiBtF,CAAA"}
|
package/dist/util/src/Zaps.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { hexToBech32, fromPairs } from "@welshman/lib";
|
|
1
|
+
import { now, tryCatch, fetchJson, hexToBech32, fromPairs } from "@welshman/lib";
|
|
2
|
+
import { ZAP_RESPONSE, ZAP_REQUEST } from "./Kinds.js";
|
|
3
|
+
import { getTagValue } from "./Tags.js";
|
|
4
|
+
import { makeEvent } from "./Events.js";
|
|
2
5
|
const DIVISORS = {
|
|
3
6
|
m: BigInt(1e3),
|
|
4
7
|
u: BigInt(1e6),
|
|
@@ -7,6 +10,8 @@ const DIVISORS = {
|
|
|
7
10
|
};
|
|
8
11
|
const MAX_MILLISATS = BigInt("2100000000000000000");
|
|
9
12
|
const MILLISATS_PER_BTC = BigInt(1e11);
|
|
13
|
+
export const toMsats = (sats) => sats * 1000;
|
|
14
|
+
export const fromMsats = (msats) => Math.floor(msats / 1000);
|
|
10
15
|
export const hrpToMillisat = (hrpString) => {
|
|
11
16
|
let divisor, value;
|
|
12
17
|
if (hrpString.slice(-1).match(/^[munp]$/)) {
|
|
@@ -52,7 +57,7 @@ export const getLnUrl = (address) => {
|
|
|
52
57
|
return hexToBech32("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
|
-
return
|
|
60
|
+
return undefined;
|
|
56
61
|
};
|
|
57
62
|
export const zapFromEvent = (response, zapper) => {
|
|
58
63
|
const responseMeta = fromPairs(response.tags);
|
|
@@ -65,16 +70,16 @@ export const zapFromEvent = (response, zapper) => {
|
|
|
65
70
|
};
|
|
66
71
|
}
|
|
67
72
|
catch (e) {
|
|
68
|
-
return
|
|
73
|
+
return undefined;
|
|
69
74
|
}
|
|
70
75
|
// Don't count zaps that the user requested for himself
|
|
71
76
|
if (zap.request.pubkey === zapper?.pubkey) {
|
|
72
|
-
return
|
|
77
|
+
return undefined;
|
|
73
78
|
}
|
|
74
79
|
const { amount, lnurl } = fromPairs(zap.request.tags);
|
|
75
80
|
// Verify that the zapper actually sent the requested amount (if it was supplied)
|
|
76
81
|
if (amount && parseInt(amount) !== zap.invoiceAmount) {
|
|
77
|
-
return
|
|
82
|
+
return undefined;
|
|
78
83
|
}
|
|
79
84
|
// If the recipient and the zapper are the same person, it's legit
|
|
80
85
|
if (responseMeta.p === response.pubkey) {
|
|
@@ -82,12 +87,49 @@ export const zapFromEvent = (response, zapper) => {
|
|
|
82
87
|
}
|
|
83
88
|
// If the sending client provided an lnurl tag, verify that too
|
|
84
89
|
if (lnurl && lnurl !== zapper?.lnurl) {
|
|
85
|
-
return
|
|
90
|
+
return undefined;
|
|
86
91
|
}
|
|
87
92
|
// Verify that the request actually came from the recipient's zapper
|
|
88
93
|
if (zap.response.pubkey !== zapper?.nostrPubkey) {
|
|
89
|
-
return
|
|
94
|
+
return undefined;
|
|
90
95
|
}
|
|
91
96
|
return zap;
|
|
92
97
|
};
|
|
98
|
+
export const makeZapRequest = ({ msats, zapper, pubkey, relays, content = "", eventId, anonymous, }) => {
|
|
99
|
+
const tags = [
|
|
100
|
+
["relays", ...relays],
|
|
101
|
+
["amount", String(msats)],
|
|
102
|
+
["lnurl", zapper.lnurl],
|
|
103
|
+
["p", pubkey],
|
|
104
|
+
];
|
|
105
|
+
if (eventId) {
|
|
106
|
+
tags.push(["e", eventId]);
|
|
107
|
+
}
|
|
108
|
+
if (anonymous) {
|
|
109
|
+
tags.push(["anon"]);
|
|
110
|
+
}
|
|
111
|
+
return makeEvent(ZAP_REQUEST, { content, tags });
|
|
112
|
+
};
|
|
113
|
+
export const requestZap = async ({ zapper, event }) => {
|
|
114
|
+
const zapString = encodeURI(JSON.stringify(event));
|
|
115
|
+
const msats = parseInt(getTagValue("amount", event.tags));
|
|
116
|
+
const qs = `?amount=${msats}&nostr=${zapString}&lnurl=${zapper.lnurl}`;
|
|
117
|
+
const res = await tryCatch(() => fetchJson(zapper.callback + qs));
|
|
118
|
+
return res?.pr ? { invoice: res.pr } : { error: res.reason || "Failed to request invoice" };
|
|
119
|
+
};
|
|
120
|
+
export const getZapResponseFilter = ({ zapper, pubkey, eventId }) => {
|
|
121
|
+
if (!zapper.nostrPubkey) {
|
|
122
|
+
throw new Error("Zapper did not have a nostr pubkey");
|
|
123
|
+
}
|
|
124
|
+
const filter = {
|
|
125
|
+
kinds: [ZAP_RESPONSE],
|
|
126
|
+
authors: [zapper.nostrPubkey],
|
|
127
|
+
since: now() - 30,
|
|
128
|
+
"#p": [pubkey],
|
|
129
|
+
};
|
|
130
|
+
if (eventId) {
|
|
131
|
+
filter["#e"] = [eventId];
|
|
132
|
+
}
|
|
133
|
+
return filter;
|
|
134
|
+
};
|
|
93
135
|
//# sourceMappingURL=Zaps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zaps.js","sourceRoot":"","sources":["../../../src/Zaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Zaps.js","sourceRoot":"","sources":["../../../src/Zaps.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@welshman/util",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"author": "hodlbod",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A collection of nostr-related utilities.",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"js-base64": "^3.7.7",
|
|
19
19
|
"nostr-tools": "^2.14.2",
|
|
20
20
|
"nostr-wasm": "^0.1.0",
|
|
21
|
-
"@welshman/lib": "0.
|
|
21
|
+
"@welshman/lib": "0.4.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"rimraf": "~6.0.0",
|