@contextvm/sdk 0.4.5 → 0.4.6
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/esm/core/utils/utils.d.ts +2 -0
- package/dist/esm/core/utils/utils.d.ts.map +1 -1
- package/dist/esm/core/utils/utils.js +10 -0
- package/dist/esm/core/utils/utils.js.map +1 -1
- package/dist/esm/payments/nip47/nwc-client.d.ts +7 -4
- package/dist/esm/payments/nip47/nwc-client.d.ts.map +1 -1
- package/dist/esm/payments/nip47/nwc-client.js +83 -13
- package/dist/esm/payments/nip47/nwc-client.js.map +1 -1
- package/dist/esm/payments/nip47/types.d.ts +5 -0
- package/dist/esm/payments/nip47/types.d.ts.map +1 -1
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.d.ts +16 -0
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.d.ts.map +1 -1
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.js +86 -3
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.js.map +1 -1
- package/package.json +1 -1
|
@@ -45,4 +45,6 @@ export declare function sleepWithAbort(params: {
|
|
|
45
45
|
ms: number;
|
|
46
46
|
abortSignal: AbortSignal | undefined;
|
|
47
47
|
}): Promise<void>;
|
|
48
|
+
export declare function getTagValue(tags: string[][], name: string): string | undefined;
|
|
49
|
+
export declare function getTagValues(tags: string[][], name: string): string[];
|
|
48
50
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,cAAc,EACf,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAMvE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,GACnB,IAAI,CAYN;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,cAAc,EACf,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBACmB,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAMvE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,GACnB,IAAI,CAYN;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;CACtC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EAAE,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrE"}
|
|
@@ -105,4 +105,14 @@ export async function sleepWithAbort(params) {
|
|
|
105
105
|
abortSignal.addEventListener('abort', onAbort, { once: true });
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
+
export function getTagValue(tags, name) {
|
|
109
|
+
var _a;
|
|
110
|
+
return (_a = tags.find((t) => t[0] === name)) === null || _a === void 0 ? void 0 : _a[1];
|
|
111
|
+
}
|
|
112
|
+
export function getTagValues(tags, name) {
|
|
113
|
+
return tags
|
|
114
|
+
.filter((t) => t[0] === name)
|
|
115
|
+
.map((t) => t[1])
|
|
116
|
+
.filter((v) => typeof v === 'string' && v.length > 0);
|
|
117
|
+
}
|
|
108
118
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { RelayHandler } from '../../core/interfaces.js';
|
|
2
|
-
import type { NwcConnection, NwcRequest, NwcResponse } from './types.js';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const NWC_RESPONSE_KIND = 23195;
|
|
2
|
+
import type { NwcConnection, NwcNotificationPayload, NwcRequest, NwcResponse } from './types.js';
|
|
3
|
+
export declare const NWC_NOTIFICATION_KIND = 23197;
|
|
4
|
+
export declare const NWC_NOTIFICATION_LEGACY_KIND = 23196;
|
|
6
5
|
export interface NwcClientOptions {
|
|
7
6
|
relayHandler: RelayHandler;
|
|
8
7
|
connection: NwcConnection;
|
|
@@ -26,6 +25,10 @@ export declare class NwcClient {
|
|
|
26
25
|
private requestQueue;
|
|
27
26
|
constructor(options: NwcClientOptions);
|
|
28
27
|
connect(): Promise<void>;
|
|
28
|
+
fetchInfoNotificationTypes(): Promise<ReadonlySet<string>>;
|
|
29
|
+
subscribeNotifications(params: {
|
|
30
|
+
onNotification: (payload: NwcNotificationPayload) => void;
|
|
31
|
+
}): Promise<() => void>;
|
|
29
32
|
disconnect(): Promise<void>;
|
|
30
33
|
request<M extends string, P, R>(params: {
|
|
31
34
|
method: M;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nwc-client.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip47/nwc-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"nwc-client.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip47/nwc-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AAQpB,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAMlD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,aAAa,CAAC;IAE1B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;IAI1B,OAAO,CAAC,YAAY,CAAoC;gBAErC,OAAO,EAAE,gBAAgB;IAO/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,0BAA0B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAqD1D,sBAAsB,CAAC,MAAM,EAAE;QAC1C,cAAc,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;KAC3D,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IA8CV,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,UAAU,EAAE,CAAC,CAAC;QACd,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC;QACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAwJ/B"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { kinds, nip04 } from 'nostr-tools';
|
|
2
|
-
import { finalizeEvent } from 'nostr-tools/pure';
|
|
2
|
+
import { finalizeEvent, getPublicKey } from 'nostr-tools/pure';
|
|
3
3
|
import { hexToBytes } from 'nostr-tools/utils';
|
|
4
4
|
import { createLogger } from '../../core/utils/logger.js';
|
|
5
|
-
import { withTimeout } from '../../core/utils/utils.js';
|
|
6
|
-
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
5
|
+
import { getTagValue, getTagValues, withTimeout, } from '../../core/utils/utils.js';
|
|
6
|
+
// Per NIP-47.
|
|
7
|
+
export const NWC_NOTIFICATION_KIND = 23197;
|
|
8
|
+
export const NWC_NOTIFICATION_LEGACY_KIND = 23196;
|
|
9
9
|
function nowSeconds() {
|
|
10
10
|
return Math.floor(Date.now() / 1000);
|
|
11
11
|
}
|
|
12
|
-
function getTagValue(tags, name) {
|
|
13
|
-
var _a;
|
|
14
|
-
return (_a = tags.find((t) => t[0] === name)) === null || _a === void 0 ? void 0 : _a[1];
|
|
15
|
-
}
|
|
16
12
|
/**
|
|
17
13
|
* Minimal NIP-47 client for request/response over relays.
|
|
18
14
|
*
|
|
@@ -39,6 +35,80 @@ export class NwcClient {
|
|
|
39
35
|
await this.relayHandler.connect();
|
|
40
36
|
this.connected = true;
|
|
41
37
|
}
|
|
38
|
+
async fetchInfoNotificationTypes() {
|
|
39
|
+
await this.connect();
|
|
40
|
+
let unsubscribe;
|
|
41
|
+
let settled = false;
|
|
42
|
+
const promise = new Promise((resolve, reject) => {
|
|
43
|
+
const filters = [
|
|
44
|
+
{
|
|
45
|
+
kinds: [kinds.NWCWalletInfo],
|
|
46
|
+
authors: [this.connection.walletPubkey],
|
|
47
|
+
limit: 1,
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
void this.relayHandler
|
|
51
|
+
.subscribe(filters, (event) => {
|
|
52
|
+
settled = true;
|
|
53
|
+
const tags = event.tags;
|
|
54
|
+
const raw = getTagValues(tags, 'notifications').join(' ');
|
|
55
|
+
const types = raw
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.map((t) => t.trim())
|
|
58
|
+
.filter(Boolean);
|
|
59
|
+
resolve(new Set(types));
|
|
60
|
+
}, () => {
|
|
61
|
+
if (settled)
|
|
62
|
+
return;
|
|
63
|
+
settled = true;
|
|
64
|
+
resolve(new Set());
|
|
65
|
+
})
|
|
66
|
+
.then((u) => {
|
|
67
|
+
unsubscribe = u;
|
|
68
|
+
if (settled)
|
|
69
|
+
unsubscribe();
|
|
70
|
+
})
|
|
71
|
+
.catch((error) => {
|
|
72
|
+
settled = true;
|
|
73
|
+
reject(error);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
promise.finally(() => unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe());
|
|
77
|
+
return await withTimeout(promise, this.responseTimeoutMs, 'NWC info event fetch timed out');
|
|
78
|
+
}
|
|
79
|
+
async subscribeNotifications(params) {
|
|
80
|
+
await this.connect();
|
|
81
|
+
const clientPubkey = getPublicKey(hexToBytes(this.connection.clientSecretKeyHex));
|
|
82
|
+
const filters = [
|
|
83
|
+
{
|
|
84
|
+
kinds: [NWC_NOTIFICATION_KIND, NWC_NOTIFICATION_LEGACY_KIND],
|
|
85
|
+
'#p': [clientPubkey],
|
|
86
|
+
authors: [this.connection.walletPubkey],
|
|
87
|
+
since: nowSeconds() - 5,
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
this.logger.debug('subscribe for notifications', { filters });
|
|
91
|
+
const unsubscribe = await this.relayHandler.subscribe(filters, (event) => {
|
|
92
|
+
void (async () => {
|
|
93
|
+
try {
|
|
94
|
+
const decrypted = nip04.decrypt(this.connection.clientSecretKeyHex, event.pubkey, event.content);
|
|
95
|
+
const parsed = JSON.parse(decrypted);
|
|
96
|
+
if (typeof parsed !== 'object' ||
|
|
97
|
+
parsed === null ||
|
|
98
|
+
typeof parsed.notification_type !== 'string') {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
params.onNotification(parsed);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
this.logger.debug('failed to decrypt/parse nwc notification', {
|
|
105
|
+
error: error instanceof Error ? error.message : String(error),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
})();
|
|
109
|
+
});
|
|
110
|
+
return unsubscribe;
|
|
111
|
+
}
|
|
42
112
|
async disconnect() {
|
|
43
113
|
this.relayHandler.unsubscribe();
|
|
44
114
|
if (!this.connected)
|
|
@@ -52,9 +122,9 @@ export class NwcClient {
|
|
|
52
122
|
await this.connect();
|
|
53
123
|
const clientSecretKey = hexToBytes(this.connection.clientSecretKeyHex);
|
|
54
124
|
const plaintext = JSON.stringify(params.request);
|
|
55
|
-
const encryptedContent =
|
|
125
|
+
const encryptedContent = nip04.encrypt(this.connection.clientSecretKeyHex, this.connection.walletPubkey, plaintext);
|
|
56
126
|
const eventTemplate = {
|
|
57
|
-
kind:
|
|
127
|
+
kind: kinds.NWCWalletRequest,
|
|
58
128
|
created_at: now,
|
|
59
129
|
content: encryptedContent,
|
|
60
130
|
tags: [
|
|
@@ -73,7 +143,7 @@ export class NwcClient {
|
|
|
73
143
|
const responsePromise = new Promise((resolve, reject) => {
|
|
74
144
|
const filters = [
|
|
75
145
|
{
|
|
76
|
-
kinds: [
|
|
146
|
+
kinds: [kinds.NWCWalletResponse],
|
|
77
147
|
'#e': [signedRequest.id],
|
|
78
148
|
authors: [this.connection.walletPubkey],
|
|
79
149
|
since: now - 5,
|
|
@@ -133,7 +203,7 @@ export class NwcClient {
|
|
|
133
203
|
if (eTag !== signedRequest.id) {
|
|
134
204
|
throw new Error('NWC response did not correlate to request');
|
|
135
205
|
}
|
|
136
|
-
const decrypted =
|
|
206
|
+
const decrypted = nip04.decrypt(this.connection.clientSecretKeyHex, responseEvent.pubkey, responseEvent.content);
|
|
137
207
|
const parsed = JSON.parse(decrypted);
|
|
138
208
|
if (parsed.result_type !== params.resultType) {
|
|
139
209
|
throw new Error(`Unexpected NWC result_type: ${String(parsed.result_type)} (expected ${params.resultType})`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nwc-client.js","sourceRoot":"","sources":["../../../../src/payments/nip47/nwc-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nwc-client.js","sourceRoot":"","sources":["../../../../src/payments/nip47/nwc-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export type NwcEncryptionMode = 'nip44_v2';
|
|
2
|
+
export type NwcNotificationType = 'payment_received' | 'payment_sent' | 'hold_invoice_accepted' | (string & {});
|
|
3
|
+
export type NwcNotificationPayload = {
|
|
4
|
+
notification_type: NwcNotificationType;
|
|
5
|
+
notification: unknown;
|
|
6
|
+
};
|
|
2
7
|
export interface NwcConnection {
|
|
3
8
|
/** Wallet service pubkey (hex). */
|
|
4
9
|
walletPubkey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip47/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAC/D,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAChE,WAAW,EAAE,CAAC,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip47/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,cAAc,GACd,uBAAuB,GACvB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAC/D,MAAM,EAAE,CAAC,CAAC;IACV,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,IAAI;IAChE,WAAW,EAAE,CAAC,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
|
@@ -13,6 +13,14 @@ export interface LnBolt11NwcPaymentProcessorOptions {
|
|
|
13
13
|
pollIntervalMs?: number;
|
|
14
14
|
/** Per-request response timeout. @default 60_000 */
|
|
15
15
|
responseTimeoutMs?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Controls whether payment verification uses NWC notifications.
|
|
18
|
+
*
|
|
19
|
+
* - `false`: always poll using `lookup_invoice`.
|
|
20
|
+
* - `true`: verify using `payment_received` notifications only.
|
|
21
|
+
* - `undefined` (default): best-effort auto-detect on first use via the wallet's info event.
|
|
22
|
+
*/
|
|
23
|
+
enableNotificationVerification?: boolean;
|
|
16
24
|
/**
|
|
17
25
|
* Maximum number of in-flight invoice verifications to dedupe.
|
|
18
26
|
*
|
|
@@ -38,9 +46,16 @@ export declare class LnBolt11NwcPaymentProcessor implements PaymentProcessor {
|
|
|
38
46
|
private readonly invoiceExpirySeconds;
|
|
39
47
|
private readonly pollIntervalMs;
|
|
40
48
|
private readonly logger;
|
|
49
|
+
private notificationVerificationEnabled;
|
|
50
|
+
private initNotificationsPromise;
|
|
51
|
+
private notificationsUnsubscribe;
|
|
52
|
+
private readonly notificationWaiters;
|
|
41
53
|
private readonly inFlightVerifications;
|
|
42
54
|
private readonly invoiceHashCache;
|
|
43
55
|
constructor(options: LnBolt11NwcPaymentProcessorOptions);
|
|
56
|
+
private initNotificationsBestEffort;
|
|
57
|
+
private ensureInitResolved;
|
|
58
|
+
private ensureNotificationsSubscribed;
|
|
44
59
|
private computeNextDelayMs;
|
|
45
60
|
private isSettledInvoice;
|
|
46
61
|
private getReceiptFromInvoiceResult;
|
|
@@ -55,5 +70,6 @@ export declare class LnBolt11NwcPaymentProcessor implements PaymentProcessor {
|
|
|
55
70
|
_meta?: Record<string, unknown>;
|
|
56
71
|
}>;
|
|
57
72
|
private verifyPaymentInternal;
|
|
73
|
+
private verifyPaymentWithNotifications;
|
|
58
74
|
}
|
|
59
75
|
//# sourceMappingURL=ln-bolt11-nwc-payment-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ln-bolt11-nwc-payment-processor.d.ts","sourceRoot":"","sources":["../../../../src/payments/processors/ln-bolt11-nwc-payment-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,kCAAkC;IACjD,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,SAAgB,GAAG,6BAAgC;IAEnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"ln-bolt11-nwc-payment-processor.d.ts","sourceRoot":"","sources":["../../../../src/payments/processors/ln-bolt11-nwc-payment-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,kCAAkC;IACjD,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAEzC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA4B,YAAW,gBAAgB;IAClE,SAAgB,GAAG,6BAAgC;IAEnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,+BAA+B,CAAU;IACjD,OAAO,CAAC,wBAAwB,CAA4B;IAE5D,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;IAIJ,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAEpC;IAGF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAEjC,OAAO,EAAE,kCAAkC;YA+BhD,2BAA2B;YAS3B,kBAAkB;YAMlB,6BAA6B;IAkB3C,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,2BAA2B;IAqBtB,qBAAqB,CAChC,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IA0CW,aAAa,CACxB,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;YAcjC,qBAAqB;YA0ErB,8BAA8B;CAyC7C"}
|
|
@@ -11,8 +11,9 @@ import { sleepWithAbort } from '../../core/utils/utils.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export class LnBolt11NwcPaymentProcessor {
|
|
13
13
|
constructor(options) {
|
|
14
|
-
var _a, _b, _c, _d, _e, _f;
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
15
15
|
this.pmi = PMI_BITCOIN_LIGHTNING_BOLT11;
|
|
16
|
+
this.notificationWaiters = new Map();
|
|
16
17
|
const connection = parseNwcConnectionString(options.nwcConnectionString);
|
|
17
18
|
const relayHandler = (_a = options.relayHandler) !== null && _a !== void 0 ? _a : new ApplesauceRelayPool([...connection.relays]);
|
|
18
19
|
this.nwc = new NwcClient({
|
|
@@ -24,8 +25,51 @@ export class LnBolt11NwcPaymentProcessor {
|
|
|
24
25
|
this.invoiceExpirySeconds = (_c = options.invoiceExpirySeconds) !== null && _c !== void 0 ? _c : this.ttlSeconds;
|
|
25
26
|
this.pollIntervalMs = (_d = options.pollIntervalMs) !== null && _d !== void 0 ? _d : 1500;
|
|
26
27
|
this.logger = createLogger('payments/nwc-processor');
|
|
27
|
-
this.
|
|
28
|
-
|
|
28
|
+
this.notificationVerificationEnabled =
|
|
29
|
+
(_e = options.enableNotificationVerification) !== null && _e !== void 0 ? _e : false;
|
|
30
|
+
if (options.enableNotificationVerification === undefined) {
|
|
31
|
+
this.notificationVerificationEnabled = false;
|
|
32
|
+
this.initNotificationsPromise = this.initNotificationsBestEffort();
|
|
33
|
+
}
|
|
34
|
+
this.inFlightVerifications = new LruCache((_f = options.maxInFlightVerifications) !== null && _f !== void 0 ? _f : 5000);
|
|
35
|
+
this.invoiceHashCache = new LruCache((_g = options.invoiceHashCacheSize) !== null && _g !== void 0 ? _g : 10000);
|
|
36
|
+
}
|
|
37
|
+
async initNotificationsBestEffort() {
|
|
38
|
+
try {
|
|
39
|
+
const types = await this.nwc.fetchInfoNotificationTypes();
|
|
40
|
+
this.notificationVerificationEnabled = types.has('payment_received');
|
|
41
|
+
}
|
|
42
|
+
catch (_a) {
|
|
43
|
+
this.notificationVerificationEnabled = false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async ensureInitResolved() {
|
|
47
|
+
if (!this.initNotificationsPromise)
|
|
48
|
+
return;
|
|
49
|
+
await this.initNotificationsPromise;
|
|
50
|
+
this.initNotificationsPromise = undefined;
|
|
51
|
+
}
|
|
52
|
+
async ensureNotificationsSubscribed() {
|
|
53
|
+
if (!this.notificationVerificationEnabled)
|
|
54
|
+
return;
|
|
55
|
+
if (this.notificationsUnsubscribe)
|
|
56
|
+
return;
|
|
57
|
+
this.notificationsUnsubscribe = await this.nwc.subscribeNotifications({
|
|
58
|
+
onNotification: (payload) => {
|
|
59
|
+
var _a;
|
|
60
|
+
if (payload.notification_type !== 'payment_received')
|
|
61
|
+
return;
|
|
62
|
+
const paymentHash = (_a = payload.notification) === null || _a === void 0 ? void 0 : _a.payment_hash;
|
|
63
|
+
if (typeof paymentHash !== 'string' || paymentHash.length === 0)
|
|
64
|
+
return;
|
|
65
|
+
const waiters = this.notificationWaiters.get(paymentHash);
|
|
66
|
+
if (!waiters || waiters.length === 0)
|
|
67
|
+
return;
|
|
68
|
+
this.notificationWaiters.delete(paymentHash);
|
|
69
|
+
for (const w of waiters)
|
|
70
|
+
w(paymentHash);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
29
73
|
}
|
|
30
74
|
computeNextDelayMs(params) {
|
|
31
75
|
// Prefer fast early checks (most invoices settle quickly), then back off.
|
|
@@ -96,6 +140,7 @@ export class LnBolt11NwcPaymentProcessor {
|
|
|
96
140
|
};
|
|
97
141
|
}
|
|
98
142
|
async verifyPayment(params) {
|
|
143
|
+
await this.ensureInitResolved();
|
|
99
144
|
const existing = this.inFlightVerifications.get(params.pay_req);
|
|
100
145
|
if (existing) {
|
|
101
146
|
return await existing;
|
|
@@ -108,6 +153,9 @@ export class LnBolt11NwcPaymentProcessor {
|
|
|
108
153
|
}
|
|
109
154
|
async verifyPaymentInternal(params) {
|
|
110
155
|
var _a;
|
|
156
|
+
if (this.notificationVerificationEnabled) {
|
|
157
|
+
return await this.verifyPaymentWithNotifications(params);
|
|
158
|
+
}
|
|
111
159
|
// Note: server-payments middleware already bounds overall time by the `ttl` it emitted.
|
|
112
160
|
// We still keep this loop tight and predictable.
|
|
113
161
|
let attempt = 0;
|
|
@@ -164,5 +212,40 @@ export class LnBolt11NwcPaymentProcessor {
|
|
|
164
212
|
await sleepWithAbort({ ms: delayMs, abortSignal: params.abortSignal });
|
|
165
213
|
}
|
|
166
214
|
}
|
|
215
|
+
async verifyPaymentWithNotifications(params) {
|
|
216
|
+
var _a;
|
|
217
|
+
await this.ensureNotificationsSubscribed();
|
|
218
|
+
if ((_a = params.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
219
|
+
throw new Error('verifyPayment aborted');
|
|
220
|
+
}
|
|
221
|
+
const paymentHash = this.invoiceHashCache.get(params.pay_req);
|
|
222
|
+
if (!paymentHash) {
|
|
223
|
+
throw new Error('NWC notification verification requires payment_hash');
|
|
224
|
+
}
|
|
225
|
+
const got = await new Promise((resolve, reject) => {
|
|
226
|
+
const existing = this.notificationWaiters.get(paymentHash);
|
|
227
|
+
const waiters = existing !== null && existing !== void 0 ? existing : [];
|
|
228
|
+
waiters.push(resolve);
|
|
229
|
+
this.notificationWaiters.set(paymentHash, waiters);
|
|
230
|
+
if (!params.abortSignal)
|
|
231
|
+
return;
|
|
232
|
+
const abortSignal = params.abortSignal;
|
|
233
|
+
const onAbort = () => {
|
|
234
|
+
abortSignal.removeEventListener('abort', onAbort);
|
|
235
|
+
// Remove this waiter so future notifications don't leak memory.
|
|
236
|
+
const current = this.notificationWaiters.get(paymentHash);
|
|
237
|
+
if (current) {
|
|
238
|
+
const next = current.filter((w) => w !== resolve);
|
|
239
|
+
if (next.length === 0)
|
|
240
|
+
this.notificationWaiters.delete(paymentHash);
|
|
241
|
+
else
|
|
242
|
+
this.notificationWaiters.set(paymentHash, next);
|
|
243
|
+
}
|
|
244
|
+
reject(new Error('verifyPayment aborted'));
|
|
245
|
+
};
|
|
246
|
+
abortSignal.addEventListener('abort', onAbort, { once: true });
|
|
247
|
+
});
|
|
248
|
+
return { _meta: { payment_hash: got } };
|
|
249
|
+
}
|
|
167
250
|
}
|
|
168
251
|
//# sourceMappingURL=ln-bolt11-nwc-payment-processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ln-bolt11-nwc-payment-processor.js","sourceRoot":"","sources":["../../../../src/payments/processors/ln-bolt11-nwc-payment-processor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAe,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ln-bolt11-nwc-payment-processor.js","sourceRoot":"","sources":["../../../../src/payments/processors/ln-bolt11-nwc-payment-processor.ts"],"names":[],"mappings":"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"}
|