@contextvm/sdk 0.4.4 → 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/interfaces.d.ts.map +1 -1
- package/dist/esm/core/utils/utils.d.ts +9 -0
- package/dist/esm/core/utils/utils.d.ts.map +1 -1
- package/dist/esm/core/utils/utils.js +39 -0
- package/dist/esm/core/utils/utils.js.map +1 -1
- package/dist/esm/payments/index.d.ts +3 -0
- package/dist/esm/payments/index.d.ts.map +1 -1
- package/dist/esm/payments/index.js +3 -0
- package/dist/esm/payments/index.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/nip57/lnurl.d.ts +22 -0
- package/dist/esm/payments/nip57/lnurl.d.ts.map +1 -0
- package/dist/esm/payments/nip57/lnurl.js +41 -0
- package/dist/esm/payments/nip57/lnurl.js.map +1 -0
- package/dist/esm/payments/nip57/zap-events.d.ts +9 -0
- package/dist/esm/payments/nip57/zap-events.d.ts.map +1 -0
- package/dist/esm/payments/nip57/zap-events.js +18 -0
- package/dist/esm/payments/nip57/zap-events.js.map +1 -0
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.d.ts +34 -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 +127 -5
- package/dist/esm/payments/processors/ln-bolt11-nwc-payment-processor.js.map +1 -1
- package/dist/esm/payments/processors/ln-bolt11-zap-payment-processor.d.ts +48 -0
- package/dist/esm/payments/processors/ln-bolt11-zap-payment-processor.d.ts.map +1 -0
- package/dist/esm/payments/processors/ln-bolt11-zap-payment-processor.js +187 -0
- package/dist/esm/payments/processors/ln-bolt11-zap-payment-processor.js.map +1 -0
- package/dist/esm/relay/applesauce-relay-pool.d.ts +1 -2
- package/dist/esm/relay/applesauce-relay-pool.d.ts.map +1 -1
- package/dist/esm/relay/applesauce-relay-pool.js +23 -22
- package/dist/esm/relay/applesauce-relay-pool.js.map +1 -1
- package/dist/esm/transport/base-nostr-transport.d.ts +9 -0
- package/dist/esm/transport/base-nostr-transport.d.ts.map +1 -1
- package/dist/esm/transport/base-nostr-transport.js +27 -2
- package/dist/esm/transport/base-nostr-transport.js.map +1 -1
- package/dist/esm/transport/nostr-client-transport.d.ts.map +1 -1
- package/dist/esm/transport/nostr-client-transport.js +1 -0
- package/dist/esm/transport/nostr-client-transport.js.map +1 -1
- package/dist/esm/transport/nostr-server-transport.d.ts.map +1 -1
- package/dist/esm/transport/nostr-server-transport.js +1 -0
- package/dist/esm/transport/nostr-server-transport.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAGrD,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;IAGF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAGrD,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;IAGF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CACL,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,SAAS,CACP,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IACvB,WAAW,IAAI,IAAI,CAAC;IACpB,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClC,SAAS,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC1C,iBAAiB,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CACvC"}
|
|
@@ -38,4 +38,13 @@ export declare function isHex64(value: string | undefined): value is string;
|
|
|
38
38
|
* @returns The current time in seconds
|
|
39
39
|
*/
|
|
40
40
|
export declare function nowSeconds(): number;
|
|
41
|
+
/**
|
|
42
|
+
* Sleeps for a specified number of milliseconds, aborting if the abort signal is aborted.
|
|
43
|
+
*/
|
|
44
|
+
export declare function sleepWithAbort(params: {
|
|
45
|
+
ms: number;
|
|
46
|
+
abortSignal: AbortSignal | undefined;
|
|
47
|
+
}): Promise<void>;
|
|
48
|
+
export declare function getTagValue(tags: string[][], name: string): string | undefined;
|
|
49
|
+
export declare function getTagValues(tags: string[][], name: string): string[];
|
|
41
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"}
|
|
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"}
|
|
@@ -76,4 +76,43 @@ export function isHex64(value) {
|
|
|
76
76
|
export function nowSeconds() {
|
|
77
77
|
return Math.floor(Date.now() / 1000);
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Sleeps for a specified number of milliseconds, aborting if the abort signal is aborted.
|
|
81
|
+
*/
|
|
82
|
+
export async function sleepWithAbort(params) {
|
|
83
|
+
var _a;
|
|
84
|
+
if ((_a = params.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
85
|
+
throw new Error('sleep aborted');
|
|
86
|
+
}
|
|
87
|
+
if (!params.abortSignal) {
|
|
88
|
+
await sleep(params.ms);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const abortSignal = params.abortSignal;
|
|
92
|
+
await new Promise((resolve, reject) => {
|
|
93
|
+
const onAbort = () => {
|
|
94
|
+
cleanup();
|
|
95
|
+
reject(new Error('sleep aborted'));
|
|
96
|
+
};
|
|
97
|
+
const timeout = setTimeout(() => {
|
|
98
|
+
cleanup();
|
|
99
|
+
resolve();
|
|
100
|
+
}, params.ms);
|
|
101
|
+
const cleanup = () => {
|
|
102
|
+
clearTimeout(timeout);
|
|
103
|
+
abortSignal.removeEventListener('abort', onAbort);
|
|
104
|
+
};
|
|
105
|
+
abortSignal.addEventListener('abort', onAbort, { once: true });
|
|
106
|
+
});
|
|
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
|
+
}
|
|
79
118
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,GAErB,MAAM,oCAAoC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAClC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAuB,EACvB,YAAoB;IAEpB,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,YAAY,EAAE,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,OAAmB,EACnB,SAAiB,EACjB,eAAuB,qBAAqB;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,OAAO;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAyB;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,11 @@ export * from './pmis.js';
|
|
|
10
10
|
export * from './nip47/connection.js';
|
|
11
11
|
export * from './nip47/nwc-client.js';
|
|
12
12
|
export * from './nip47/types.js';
|
|
13
|
+
export * from './nip57/lnurl.js';
|
|
14
|
+
export * from './nip57/zap-events.js';
|
|
13
15
|
export * from './handlers/ln-bolt11-nwc-payment-handler.js';
|
|
14
16
|
export * from './handlers/ln-bolt11-lnbits-payment-handler.js';
|
|
15
17
|
export * from './processors/ln-bolt11-nwc-payment-processor.js';
|
|
16
18
|
export * from './processors/ln-bolt11-lnbits-payment-processor.js';
|
|
19
|
+
export * from './processors/ln-bolt11-zap-payment-processor.js';
|
|
17
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC"}
|
|
@@ -10,8 +10,11 @@ export * from './pmis.js';
|
|
|
10
10
|
export * from './nip47/connection.js';
|
|
11
11
|
export * from './nip47/nwc-client.js';
|
|
12
12
|
export * from './nip47/types.js';
|
|
13
|
+
export * from './nip57/lnurl.js';
|
|
14
|
+
export * from './nip57/zap-events.js';
|
|
13
15
|
export * from './handlers/ln-bolt11-nwc-payment-handler.js';
|
|
14
16
|
export * from './handlers/ln-bolt11-lnbits-payment-handler.js';
|
|
15
17
|
export * from './processors/ln-bolt11-nwc-payment-processor.js';
|
|
16
18
|
export * from './processors/ln-bolt11-lnbits-payment-processor.js';
|
|
19
|
+
export * from './processors/ln-bolt11-zap-payment-processor.js';
|
|
17
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type LnurlPayParams = {
|
|
2
|
+
callback: string;
|
|
3
|
+
allowsNostr?: boolean;
|
|
4
|
+
nostrPubkey?: string;
|
|
5
|
+
minSendable?: number;
|
|
6
|
+
maxSendable?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function parseLnAddress(lnAddress: string): {
|
|
9
|
+
username: string;
|
|
10
|
+
domain: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function fetchLnurlPayParams(params: {
|
|
13
|
+
lnAddress: string;
|
|
14
|
+
}): Promise<LnurlPayParams>;
|
|
15
|
+
export declare function requestZapInvoice(params: {
|
|
16
|
+
callback: string;
|
|
17
|
+
amountMsats: number;
|
|
18
|
+
zapRequestJson: string;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
pr: string;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=lnurl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lnurl.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip57/lnurl.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAUA;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CAe1B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB1B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function parseLnAddress(lnAddress) {
|
|
2
|
+
const parts = lnAddress.split('@');
|
|
3
|
+
if (parts.length !== 2) {
|
|
4
|
+
throw new Error(`Invalid lnAddress: ${lnAddress}`);
|
|
5
|
+
}
|
|
6
|
+
const [username, domain] = parts;
|
|
7
|
+
if (!username || !domain) {
|
|
8
|
+
throw new Error(`Invalid lnAddress: ${lnAddress}`);
|
|
9
|
+
}
|
|
10
|
+
return { username, domain };
|
|
11
|
+
}
|
|
12
|
+
export async function fetchLnurlPayParams(params) {
|
|
13
|
+
const { username, domain } = parseLnAddress(params.lnAddress);
|
|
14
|
+
const url = `https://${domain}/.well-known/lnurlp/${encodeURIComponent(username)}`;
|
|
15
|
+
const response = await fetch(url, { method: 'GET' });
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
const text = await response.text();
|
|
18
|
+
throw new Error(`LNURL-pay fetch failed: ${response.status} ${text}`);
|
|
19
|
+
}
|
|
20
|
+
const json = (await response.json());
|
|
21
|
+
if (!json.callback) {
|
|
22
|
+
throw new Error('LNURL-pay response missing callback');
|
|
23
|
+
}
|
|
24
|
+
return json;
|
|
25
|
+
}
|
|
26
|
+
export async function requestZapInvoice(params) {
|
|
27
|
+
const url = new URL(params.callback);
|
|
28
|
+
url.searchParams.set('amount', params.amountMsats.toString());
|
|
29
|
+
url.searchParams.set('nostr', params.zapRequestJson);
|
|
30
|
+
const response = await fetch(url.toString(), { method: 'GET' });
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
const text = await response.text();
|
|
33
|
+
throw new Error(`LNURL callback failed: ${response.status} ${text}`);
|
|
34
|
+
}
|
|
35
|
+
const json = (await response.json());
|
|
36
|
+
if (!json.pr) {
|
|
37
|
+
throw new Error(`LNURL callback missing pr${json.reason ? `: ${json.reason}` : ''}`);
|
|
38
|
+
}
|
|
39
|
+
return { pr: json.pr };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=lnurl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lnurl.js","sourceRoot":"","sources":["../../../../src/payments/nip57/lnurl.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,cAAc,CAAC,SAAiB;IAI9C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAEzC;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,WAAW,MAAM,uBAAuB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEnF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAIvC;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;IACzE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type NostrEvent } from 'nostr-tools';
|
|
2
|
+
import { type EventTemplate } from 'nostr-tools/pure';
|
|
3
|
+
export declare function createZapRequest(params: {
|
|
4
|
+
amountMsats: number;
|
|
5
|
+
recipientPubkey: string;
|
|
6
|
+
relays: string[];
|
|
7
|
+
}): EventTemplate;
|
|
8
|
+
export declare function getBolt11FromZapReceipt(event: NostrEvent): string | undefined;
|
|
9
|
+
//# sourceMappingURL=zap-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zap-events.d.ts","sourceRoot":"","sources":["../../../../src/payments/nip57/zap-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GAAG,aAAa,CAWhB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAE7E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { kinds } from 'nostr-tools';
|
|
2
|
+
export function createZapRequest(params) {
|
|
3
|
+
return {
|
|
4
|
+
kind: kinds.ZapRequest,
|
|
5
|
+
created_at: Math.floor(Date.now() / 1000),
|
|
6
|
+
content: '',
|
|
7
|
+
tags: [
|
|
8
|
+
['relays', ...params.relays],
|
|
9
|
+
['amount', params.amountMsats.toString()],
|
|
10
|
+
['p', params.recipientPubkey],
|
|
11
|
+
],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function getBolt11FromZapReceipt(event) {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = event.tags.find((t) => t[0] === 'bolt11')) === null || _a === void 0 ? void 0 : _a[1];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=zap-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zap-events.js","sourceRoot":"","sources":["../../../../src/payments/nip57/zap-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,aAAa,CAAC;AAGrD,MAAM,UAAU,gBAAgB,CAAC,MAIhC;IACC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,UAAU;QACtB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE;YACJ,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YACzC,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAiB;;IACvD,OAAO,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,0CAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -13,6 +13,28 @@ 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;
|
|
24
|
+
/**
|
|
25
|
+
* Maximum number of in-flight invoice verifications to dedupe.
|
|
26
|
+
*
|
|
27
|
+
* This is a scalability and relay-load guardrail.
|
|
28
|
+
* @default 5000
|
|
29
|
+
*/
|
|
30
|
+
maxInFlightVerifications?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Maximum number of invoice->payment_hash mappings to cache.
|
|
33
|
+
*
|
|
34
|
+
* This reduces the need to rely on invoice-string lookups when wallets support payment_hash.
|
|
35
|
+
* @default 10000
|
|
36
|
+
*/
|
|
37
|
+
invoiceHashCacheSize?: number;
|
|
16
38
|
}
|
|
17
39
|
/**
|
|
18
40
|
* CEP-8 server payment processor for PMI `bitcoin-lightning-bolt11` backed by NIP-47 (NWC).
|
|
@@ -24,7 +46,17 @@ export declare class LnBolt11NwcPaymentProcessor implements PaymentProcessor {
|
|
|
24
46
|
private readonly invoiceExpirySeconds;
|
|
25
47
|
private readonly pollIntervalMs;
|
|
26
48
|
private readonly logger;
|
|
49
|
+
private notificationVerificationEnabled;
|
|
50
|
+
private initNotificationsPromise;
|
|
51
|
+
private notificationsUnsubscribe;
|
|
52
|
+
private readonly notificationWaiters;
|
|
53
|
+
private readonly inFlightVerifications;
|
|
54
|
+
private readonly invoiceHashCache;
|
|
27
55
|
constructor(options: LnBolt11NwcPaymentProcessorOptions);
|
|
56
|
+
private initNotificationsBestEffort;
|
|
57
|
+
private ensureInitResolved;
|
|
58
|
+
private ensureNotificationsSubscribed;
|
|
59
|
+
private computeNextDelayMs;
|
|
28
60
|
private isSettledInvoice;
|
|
29
61
|
private getReceiptFromInvoiceResult;
|
|
30
62
|
createPaymentRequired(params: PaymentProcessorCreateParams): Promise<{
|
|
@@ -37,5 +69,7 @@ export declare class LnBolt11NwcPaymentProcessor implements PaymentProcessor {
|
|
|
37
69
|
verifyPayment(params: PaymentProcessorVerifyParams): Promise<{
|
|
38
70
|
_meta?: Record<string, unknown>;
|
|
39
71
|
}>;
|
|
72
|
+
private verifyPaymentInternal;
|
|
73
|
+
private verifyPaymentWithNotifications;
|
|
40
74
|
}
|
|
41
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;
|
|
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"}
|