@garydevenay/emporion 0.0.2 → 0.0.3
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/README.md +213 -5
- package/dist/src/cli.js +1195 -182
- package/dist/src/cli.js.map +1 -1
- package/dist/src/context-store.d.ts +22 -0
- package/dist/src/context-store.js +133 -0
- package/dist/src/context-store.js.map +1 -0
- package/dist/src/daemon.d.ts +2 -0
- package/dist/src/daemon.js.map +1 -1
- package/dist/src/errors.d.ts +8 -0
- package/dist/src/errors.js +8 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/experience/deals-store.d.ts +37 -0
- package/dist/src/experience/deals-store.js +96 -0
- package/dist/src/experience/deals-store.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/wallet/config-store.d.ts +16 -0
- package/dist/src/wallet/config-store.js +180 -0
- package/dist/src/wallet/config-store.js.map +1 -0
- package/dist/src/wallet/index.d.ts +3 -0
- package/dist/src/wallet/index.js +4 -0
- package/dist/src/wallet/index.js.map +1 -0
- package/dist/src/wallet/ledger.d.ts +50 -0
- package/dist/src/wallet/ledger.js +340 -0
- package/dist/src/wallet/ledger.js.map +1 -0
- package/dist/src/wallet/nostr-nwc-adapter.d.ts +40 -0
- package/dist/src/wallet/nostr-nwc-adapter.js +506 -0
- package/dist/src/wallet/nostr-nwc-adapter.js.map +1 -0
- package/dist/src/wallet/nwc-adapter.d.ts +20 -0
- package/dist/src/wallet/nwc-adapter.js +233 -0
- package/dist/src/wallet/nwc-adapter.js.map +1 -0
- package/dist/src/wallet/service.d.ts +42 -0
- package/dist/src/wallet/service.js +390 -0
- package/dist/src/wallet/service.js.map +1 -0
- package/dist/src/wallet/types.d.ts +140 -0
- package/dist/src/wallet/types.js +2 -0
- package/dist/src/wallet/types.js.map +1 -0
- package/dist/test/experience.test.d.ts +1 -0
- package/dist/test/experience.test.js +232 -0
- package/dist/test/experience.test.js.map +1 -0
- package/dist/test/wallet.test.d.ts +1 -0
- package/dist/test/wallet.test.js +853 -0
- package/dist/test/wallet.test.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { SimplePool, finalizeEvent, getPublicKey, kinds, nip04 } from "nostr-tools";
|
|
2
|
+
import { hexToBytes } from "nostr-tools/utils";
|
|
3
|
+
import { InvoiceCreationError, PaymentFailedError, WalletAuthError, WalletUnavailableError } from "../errors.js";
|
|
4
|
+
const DEFAULT_REQUEST_TIMEOUT_MS = 15_000;
|
|
5
|
+
function isHex64(value) {
|
|
6
|
+
return /^[a-f0-9]{64}$/i.test(value);
|
|
7
|
+
}
|
|
8
|
+
function parseInteger(value) {
|
|
9
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
10
|
+
return Math.trunc(value);
|
|
11
|
+
}
|
|
12
|
+
if (typeof value === "string" && /^\d+$/.test(value)) {
|
|
13
|
+
return Number.parseInt(value, 10);
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
function toRecord(value) {
|
|
18
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function toRecordFromJsonString(value) {
|
|
24
|
+
if (typeof value !== "string") {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
const trimmed = value.trim();
|
|
28
|
+
if (trimmed.length < 2 || (!trimmed.startsWith("{") && !trimmed.startsWith("["))) {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(trimmed);
|
|
33
|
+
return toRecord(parsed);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function pickString(record, fields) {
|
|
40
|
+
for (const field of fields) {
|
|
41
|
+
const value = record[field];
|
|
42
|
+
if (typeof value === "string" && value.trim().length > 0) {
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
function candidateRecords(record) {
|
|
49
|
+
return [
|
|
50
|
+
record,
|
|
51
|
+
toRecord(record.invoice),
|
|
52
|
+
toRecord(record.payment),
|
|
53
|
+
toRecord(record.data),
|
|
54
|
+
toRecord(record.details),
|
|
55
|
+
toRecord(record.response)
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
function pickStringFromCandidates(records, fields) {
|
|
59
|
+
for (const record of records) {
|
|
60
|
+
const value = pickString(record, fields);
|
|
61
|
+
if (value) {
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
function pickValueFromCandidates(records, fields) {
|
|
68
|
+
for (const record of records) {
|
|
69
|
+
for (const field of fields) {
|
|
70
|
+
if (Object.hasOwn(record, field)) {
|
|
71
|
+
return record[field];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
function summarizeResultShape(value) {
|
|
78
|
+
if (value === null) {
|
|
79
|
+
return "null";
|
|
80
|
+
}
|
|
81
|
+
if (value === undefined) {
|
|
82
|
+
return "undefined";
|
|
83
|
+
}
|
|
84
|
+
if (typeof value === "string") {
|
|
85
|
+
const trimmed = value.trim();
|
|
86
|
+
if (looksLikeBolt11(trimmed)) {
|
|
87
|
+
return "string:bolt11";
|
|
88
|
+
}
|
|
89
|
+
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
90
|
+
return "string:json";
|
|
91
|
+
}
|
|
92
|
+
return "string";
|
|
93
|
+
}
|
|
94
|
+
if (typeof value !== "object") {
|
|
95
|
+
return typeof value;
|
|
96
|
+
}
|
|
97
|
+
if (Array.isArray(value)) {
|
|
98
|
+
return `array(len=${value.length})`;
|
|
99
|
+
}
|
|
100
|
+
const keys = Object.keys(value);
|
|
101
|
+
return `object(keys=${keys.slice(0, 12).join(",") || "<none>"})`;
|
|
102
|
+
}
|
|
103
|
+
function normalizeHashReference(value) {
|
|
104
|
+
const trimmed = value.trim();
|
|
105
|
+
if (isHex64(trimmed)) {
|
|
106
|
+
return trimmed.toLowerCase();
|
|
107
|
+
}
|
|
108
|
+
// Some providers return payment hashes as base64/base64url (e.g. `r_hash`).
|
|
109
|
+
const normalized = trimmed.replace(/-/g, "+").replace(/_/g, "/");
|
|
110
|
+
const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, "=");
|
|
111
|
+
if (!/^[A-Za-z0-9+/=]+$/.test(padded)) {
|
|
112
|
+
return trimmed;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const decoded = Buffer.from(padded, "base64");
|
|
116
|
+
if (decoded.length === 32) {
|
|
117
|
+
return decoded.toString("hex");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Use the original string when decoding fails.
|
|
122
|
+
}
|
|
123
|
+
return trimmed;
|
|
124
|
+
}
|
|
125
|
+
function looksLikeBolt11(value) {
|
|
126
|
+
return value.trim().toLowerCase().startsWith("ln");
|
|
127
|
+
}
|
|
128
|
+
function satsToMsats(sats) {
|
|
129
|
+
if (!Number.isFinite(sats) || sats < 0) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
const safeSats = Math.min(Math.trunc(sats), Math.floor(Number.MAX_SAFE_INTEGER / 1_000));
|
|
133
|
+
return safeSats * 1_000;
|
|
134
|
+
}
|
|
135
|
+
function msatsToSats(msats) {
|
|
136
|
+
if (!Number.isFinite(msats) || msats < 0) {
|
|
137
|
+
return 0;
|
|
138
|
+
}
|
|
139
|
+
// Round up so local ledger accounting does not understate spent/received sats.
|
|
140
|
+
return Math.ceil(msats / 1_000);
|
|
141
|
+
}
|
|
142
|
+
function parseAmountSats(records) {
|
|
143
|
+
const satValue = pickValueFromCandidates(records, ["amount_sats", "amountSat", "amount_sat"]);
|
|
144
|
+
const satParsed = parseInteger(satValue);
|
|
145
|
+
if (satParsed !== undefined && satParsed >= 0) {
|
|
146
|
+
return satParsed;
|
|
147
|
+
}
|
|
148
|
+
const msatValue = pickValueFromCandidates(records, ["amount_msats", "amount_msat"]);
|
|
149
|
+
const msatParsed = parseInteger(msatValue);
|
|
150
|
+
if (msatParsed !== undefined && msatParsed >= 0) {
|
|
151
|
+
return msatsToSats(msatParsed);
|
|
152
|
+
}
|
|
153
|
+
// NIP-47 `amount` is millisatoshis.
|
|
154
|
+
const ambiguousAmount = parseInteger(pickValueFromCandidates(records, ["amount"]));
|
|
155
|
+
if (ambiguousAmount !== undefined && ambiguousAmount >= 0) {
|
|
156
|
+
return msatsToSats(ambiguousAmount);
|
|
157
|
+
}
|
|
158
|
+
return 0;
|
|
159
|
+
}
|
|
160
|
+
function parseFeeSats(records) {
|
|
161
|
+
const satValue = pickValueFromCandidates(records, ["fee_sats", "feeSat", "fee_sat"]);
|
|
162
|
+
const satParsed = parseInteger(satValue);
|
|
163
|
+
if (satParsed !== undefined && satParsed >= 0) {
|
|
164
|
+
return satParsed;
|
|
165
|
+
}
|
|
166
|
+
const msatValue = pickValueFromCandidates(records, ["fees_paid_msats", "fees_paid_msat", "fee_msats", "fee_msat"]);
|
|
167
|
+
const msatParsed = parseInteger(msatValue);
|
|
168
|
+
if (msatParsed !== undefined && msatParsed >= 0) {
|
|
169
|
+
return msatsToSats(msatParsed);
|
|
170
|
+
}
|
|
171
|
+
// NIP-47 `fees_paid`/`fee` are commonly millisatoshis.
|
|
172
|
+
const ambiguousFee = parseInteger(pickValueFromCandidates(records, ["fees_paid", "fee"]));
|
|
173
|
+
if (ambiguousFee !== undefined && ambiguousFee >= 0) {
|
|
174
|
+
return msatsToSats(ambiguousFee);
|
|
175
|
+
}
|
|
176
|
+
return 0;
|
|
177
|
+
}
|
|
178
|
+
function getLookupInvoiceParams(reference) {
|
|
179
|
+
const trimmed = reference.trim();
|
|
180
|
+
if (looksLikeBolt11(trimmed)) {
|
|
181
|
+
return { invoice: trimmed };
|
|
182
|
+
}
|
|
183
|
+
return { payment_hash: trimmed };
|
|
184
|
+
}
|
|
185
|
+
function normalizeToIsoFromUnix(value) {
|
|
186
|
+
const seconds = parseInteger(value);
|
|
187
|
+
if (seconds === undefined || seconds <= 0) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
return new Date(seconds * 1_000).toISOString();
|
|
191
|
+
}
|
|
192
|
+
function normalizeInvoiceStatus(record) {
|
|
193
|
+
if (record.settled_at !== undefined || record.preimage !== undefined || record.paid === true || record.is_paid === true) {
|
|
194
|
+
return "paid";
|
|
195
|
+
}
|
|
196
|
+
const state = String(record.state ?? record.status ?? "").toLowerCase();
|
|
197
|
+
if (state.includes("cancel")) {
|
|
198
|
+
return "canceled";
|
|
199
|
+
}
|
|
200
|
+
if (state.includes("expire") || state.includes("expired")) {
|
|
201
|
+
return "expired";
|
|
202
|
+
}
|
|
203
|
+
if (state.includes("paid") || state.includes("settled") || state.includes("complete")) {
|
|
204
|
+
return "paid";
|
|
205
|
+
}
|
|
206
|
+
const expiresAtSeconds = parseInteger(record.expires_at);
|
|
207
|
+
if (expiresAtSeconds !== undefined && expiresAtSeconds > 0 && expiresAtSeconds <= Math.floor(Date.now() / 1_000)) {
|
|
208
|
+
return "expired";
|
|
209
|
+
}
|
|
210
|
+
return "created";
|
|
211
|
+
}
|
|
212
|
+
function normalizePaymentStatus(record) {
|
|
213
|
+
if (record.preimage !== undefined || record.settled_at !== undefined) {
|
|
214
|
+
return "succeeded";
|
|
215
|
+
}
|
|
216
|
+
const state = String(record.state ?? record.status ?? "").toLowerCase();
|
|
217
|
+
if (state.includes("fail") || state.includes("error")) {
|
|
218
|
+
return "failed";
|
|
219
|
+
}
|
|
220
|
+
if (state.includes("paid") || state.includes("settled") || state.includes("complete")) {
|
|
221
|
+
return "succeeded";
|
|
222
|
+
}
|
|
223
|
+
return "pending";
|
|
224
|
+
}
|
|
225
|
+
function normalizeRelays(url) {
|
|
226
|
+
const relays = url.searchParams.getAll("relay").map((value) => value.trim()).filter((value) => value.length > 0);
|
|
227
|
+
return [...new Set(relays)];
|
|
228
|
+
}
|
|
229
|
+
export function isNostrWalletConnectUri(connectionUri) {
|
|
230
|
+
return connectionUri.startsWith("nostr+walletconnect://");
|
|
231
|
+
}
|
|
232
|
+
export function parseNostrWalletConnectConnectionUri(connectionUri) {
|
|
233
|
+
if (!isNostrWalletConnectUri(connectionUri)) {
|
|
234
|
+
throw new WalletUnavailableError("NWC connection URI must start with nostr+walletconnect:// for relay mode");
|
|
235
|
+
}
|
|
236
|
+
let url;
|
|
237
|
+
try {
|
|
238
|
+
url = new URL(connectionUri);
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
throw new WalletUnavailableError(`Invalid nostr+walletconnect URI: ${error instanceof Error ? error.message : String(error)}`);
|
|
242
|
+
}
|
|
243
|
+
const walletPubkey = (url.hostname || url.pathname.replace(/^\//, "")).trim();
|
|
244
|
+
const secret = (url.searchParams.get("secret") ?? "").trim();
|
|
245
|
+
const relays = normalizeRelays(url);
|
|
246
|
+
if (!isHex64(walletPubkey)) {
|
|
247
|
+
throw new WalletUnavailableError("nostr+walletconnect URI wallet pubkey must be 32-byte hex");
|
|
248
|
+
}
|
|
249
|
+
if (!isHex64(secret)) {
|
|
250
|
+
throw new WalletUnavailableError("nostr+walletconnect URI secret must be 32-byte hex");
|
|
251
|
+
}
|
|
252
|
+
if (relays.length === 0) {
|
|
253
|
+
throw new WalletUnavailableError("nostr+walletconnect URI must include at least one relay query parameter");
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
walletPubkey,
|
|
257
|
+
relays,
|
|
258
|
+
secret
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
export function parseNostrWalletConnectMetadata(connectionUri) {
|
|
262
|
+
const parsed = parseNostrWalletConnectConnectionUri(connectionUri);
|
|
263
|
+
return {
|
|
264
|
+
endpoint: `nostr+walletconnect://${parsed.walletPubkey}?relay=${encodeURIComponent(parsed.relays[0])}`
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
class RelayNostrNwcClient {
|
|
268
|
+
timeoutMs;
|
|
269
|
+
connection;
|
|
270
|
+
pool = new SimplePool();
|
|
271
|
+
secretKeyBytes;
|
|
272
|
+
clientPubkey;
|
|
273
|
+
constructor(connectionUri, timeoutMs = DEFAULT_REQUEST_TIMEOUT_MS) {
|
|
274
|
+
this.timeoutMs = timeoutMs;
|
|
275
|
+
this.connection = parseNostrWalletConnectConnectionUri(connectionUri);
|
|
276
|
+
this.secretKeyBytes = hexToBytes(this.connection.secret);
|
|
277
|
+
this.clientPubkey = getPublicKey(this.secretKeyBytes);
|
|
278
|
+
}
|
|
279
|
+
async request(method, params) {
|
|
280
|
+
const requestPayload = JSON.stringify({ method, params });
|
|
281
|
+
const encryptedContent = nip04.encrypt(this.connection.secret, this.connection.walletPubkey, requestPayload);
|
|
282
|
+
const requestEvent = finalizeEvent({
|
|
283
|
+
kind: kinds.NWCWalletRequest,
|
|
284
|
+
created_at: Math.floor(Date.now() / 1_000),
|
|
285
|
+
tags: [["p", this.connection.walletPubkey]],
|
|
286
|
+
content: encryptedContent
|
|
287
|
+
}, this.secretKeyBytes);
|
|
288
|
+
const responsePromise = this.waitForResponse(requestEvent);
|
|
289
|
+
await this.publishRequest(requestEvent);
|
|
290
|
+
return responsePromise;
|
|
291
|
+
}
|
|
292
|
+
close() {
|
|
293
|
+
this.pool.destroy();
|
|
294
|
+
}
|
|
295
|
+
async publishRequest(event) {
|
|
296
|
+
const outcomes = await Promise.allSettled(this.pool.publish(this.connection.relays, event));
|
|
297
|
+
if (outcomes.some((outcome) => outcome.status === "fulfilled")) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
const reasons = outcomes
|
|
301
|
+
.map((outcome) => outcome.status === "rejected" ? String(outcome.reason) : "")
|
|
302
|
+
.filter((value) => value.length > 0)
|
|
303
|
+
.join("; ");
|
|
304
|
+
throw new WalletUnavailableError(`Failed to publish nostr+walletconnect request to configured relays${reasons ? `: ${reasons}` : ""}`);
|
|
305
|
+
}
|
|
306
|
+
async waitForResponse(requestEvent) {
|
|
307
|
+
return await new Promise((resolve, reject) => {
|
|
308
|
+
const since = Math.max(0, requestEvent.created_at - 1);
|
|
309
|
+
let settled = false;
|
|
310
|
+
let timer;
|
|
311
|
+
const closeAndReject = (error) => {
|
|
312
|
+
if (settled) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
settled = true;
|
|
316
|
+
if (timer) {
|
|
317
|
+
clearTimeout(timer);
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
subscription.close("response-error");
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
// Ignore close errors while rejecting.
|
|
324
|
+
}
|
|
325
|
+
reject(error);
|
|
326
|
+
};
|
|
327
|
+
const finish = (response) => {
|
|
328
|
+
if (settled) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
settled = true;
|
|
332
|
+
if (timer) {
|
|
333
|
+
clearTimeout(timer);
|
|
334
|
+
}
|
|
335
|
+
try {
|
|
336
|
+
subscription.close("response-received");
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
// Ignore close errors on successful completion.
|
|
340
|
+
}
|
|
341
|
+
resolve(response);
|
|
342
|
+
};
|
|
343
|
+
const subscription = this.pool.subscribeMany(this.connection.relays, {
|
|
344
|
+
kinds: [kinds.NWCWalletResponse],
|
|
345
|
+
authors: [this.connection.walletPubkey],
|
|
346
|
+
"#e": [requestEvent.id],
|
|
347
|
+
since
|
|
348
|
+
}, {
|
|
349
|
+
maxWait: this.timeoutMs,
|
|
350
|
+
onevent: (event) => {
|
|
351
|
+
try {
|
|
352
|
+
const decrypted = nip04.decrypt(this.connection.secret, this.connection.walletPubkey, event.content);
|
|
353
|
+
const payload = JSON.parse(decrypted);
|
|
354
|
+
finish(payload);
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
closeAndReject(new WalletUnavailableError(`Failed to decode nostr+walletconnect response: ${error instanceof Error ? error.message : String(error)}`));
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
onclose: (reasons) => {
|
|
361
|
+
if (!settled) {
|
|
362
|
+
closeAndReject(new WalletUnavailableError(`Timed out waiting for nostr+walletconnect response (${reasons.join(", ") || "no response"})`));
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
timer = setTimeout(() => {
|
|
367
|
+
closeAndReject(new WalletUnavailableError("Timed out waiting for nostr+walletconnect response"));
|
|
368
|
+
}, this.timeoutMs + 500);
|
|
369
|
+
timer.unref();
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
get publicKey() {
|
|
373
|
+
return this.clientPubkey;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
function normalizeResponseError(operation, response) {
|
|
377
|
+
const errorRecord = response.error;
|
|
378
|
+
if (!errorRecord) {
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
const code = String(errorRecord.code ?? "").toUpperCase();
|
|
382
|
+
const message = String(errorRecord.message ?? `NWC request failed during ${operation}`);
|
|
383
|
+
if (code === "UNAUTHORIZED" || code === "RESTRICTED") {
|
|
384
|
+
throw new WalletAuthError(message);
|
|
385
|
+
}
|
|
386
|
+
if (operation === "createInvoice") {
|
|
387
|
+
throw new InvoiceCreationError(message);
|
|
388
|
+
}
|
|
389
|
+
if (operation === "payInvoice") {
|
|
390
|
+
throw new PaymentFailedError(message);
|
|
391
|
+
}
|
|
392
|
+
throw new WalletUnavailableError(message);
|
|
393
|
+
}
|
|
394
|
+
function parseLookupResult(response, operation) {
|
|
395
|
+
normalizeResponseError(operation, response);
|
|
396
|
+
return toRecord(response.result);
|
|
397
|
+
}
|
|
398
|
+
export class NostrWalletConnectAdapter {
|
|
399
|
+
client;
|
|
400
|
+
constructor(connectionUri, options) {
|
|
401
|
+
this.client = options?.client ?? new RelayNostrNwcClient(connectionUri, options?.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS);
|
|
402
|
+
}
|
|
403
|
+
async createInvoice(input) {
|
|
404
|
+
const nowSeconds = Math.floor(Date.now() / 1_000);
|
|
405
|
+
const expiry = input.expiresAt ? Math.max(1, Math.floor(Date.parse(input.expiresAt) / 1_000) - nowSeconds) : undefined;
|
|
406
|
+
const response = await this.client.request("make_invoice", {
|
|
407
|
+
amount: satsToMsats(input.amountSats),
|
|
408
|
+
...(input.memo ? { description: input.memo } : {}),
|
|
409
|
+
...(expiry ? { expiry } : {})
|
|
410
|
+
});
|
|
411
|
+
normalizeResponseError("createInvoice", response);
|
|
412
|
+
const result = toRecord(response.result);
|
|
413
|
+
const responseRecord = toRecord(response);
|
|
414
|
+
const parsedResult = toRecordFromJsonString(response.result);
|
|
415
|
+
const records = [
|
|
416
|
+
...candidateRecords(result),
|
|
417
|
+
...candidateRecords(parsedResult),
|
|
418
|
+
...candidateRecords(responseRecord)
|
|
419
|
+
];
|
|
420
|
+
const directResultString = typeof response.result === "string" ? response.result.trim() : undefined;
|
|
421
|
+
const bolt11 = pickStringFromCandidates(records, [
|
|
422
|
+
"invoice",
|
|
423
|
+
"bolt11",
|
|
424
|
+
"payment_request",
|
|
425
|
+
"paymentRequest",
|
|
426
|
+
"pr",
|
|
427
|
+
"request"
|
|
428
|
+
]) ?? (directResultString && looksLikeBolt11(directResultString) ? directResultString : undefined);
|
|
429
|
+
const externalRefCandidate = pickStringFromCandidates(records, [
|
|
430
|
+
"payment_hash",
|
|
431
|
+
"r_hash",
|
|
432
|
+
"paymentHash",
|
|
433
|
+
"hash",
|
|
434
|
+
"external_ref",
|
|
435
|
+
"externalRef",
|
|
436
|
+
"invoice_id",
|
|
437
|
+
"id"
|
|
438
|
+
]);
|
|
439
|
+
const externalRef = externalRefCandidate ? normalizeHashReference(externalRefCandidate) : bolt11;
|
|
440
|
+
if (!bolt11 || !externalRef) {
|
|
441
|
+
throw new InvoiceCreationError(`nostr+walletconnect make_invoice did not return invoice and payment hash (resultType=${summarizeResultShape(response.result_type)}, result=${summarizeResultShape(response.result)})`);
|
|
442
|
+
}
|
|
443
|
+
const expiresAt = normalizeToIsoFromUnix(result.expires_at);
|
|
444
|
+
return {
|
|
445
|
+
bolt11,
|
|
446
|
+
externalRef,
|
|
447
|
+
status: normalizeInvoiceStatus(result),
|
|
448
|
+
...(expiresAt ? { expiresAt } : {})
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
async payInvoice(input) {
|
|
452
|
+
const response = await this.client.request("pay_invoice", {
|
|
453
|
+
invoice: input.invoice
|
|
454
|
+
});
|
|
455
|
+
normalizeResponseError("payInvoice", response);
|
|
456
|
+
const result = toRecord(response.result);
|
|
457
|
+
const responseRecord = toRecord(response);
|
|
458
|
+
const parsedResult = toRecordFromJsonString(response.result);
|
|
459
|
+
const records = [
|
|
460
|
+
...candidateRecords(result),
|
|
461
|
+
...candidateRecords(parsedResult),
|
|
462
|
+
...candidateRecords(responseRecord)
|
|
463
|
+
];
|
|
464
|
+
const externalRefCandidate = pickStringFromCandidates(records, [
|
|
465
|
+
"payment_hash",
|
|
466
|
+
"r_hash",
|
|
467
|
+
"paymentHash",
|
|
468
|
+
"hash",
|
|
469
|
+
"external_ref",
|
|
470
|
+
"externalRef",
|
|
471
|
+
"id"
|
|
472
|
+
]);
|
|
473
|
+
const externalRef = externalRefCandidate ? normalizeHashReference(externalRefCandidate) : input.invoice;
|
|
474
|
+
if (!externalRef) {
|
|
475
|
+
throw new PaymentFailedError("nostr+walletconnect pay_invoice did not return payment hash");
|
|
476
|
+
}
|
|
477
|
+
const status = normalizePaymentStatus(result);
|
|
478
|
+
const amountSats = parseAmountSats(records);
|
|
479
|
+
const feeSats = parseFeeSats(records);
|
|
480
|
+
return {
|
|
481
|
+
externalRef,
|
|
482
|
+
amountSats,
|
|
483
|
+
feeSats,
|
|
484
|
+
status
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
async getInvoiceStatus(externalRef) {
|
|
488
|
+
const response = await this.client.request("lookup_invoice", getLookupInvoiceParams(externalRef));
|
|
489
|
+
const result = parseLookupResult(response, "getInvoiceStatus");
|
|
490
|
+
return normalizeInvoiceStatus(result);
|
|
491
|
+
}
|
|
492
|
+
async getPaymentStatus(externalRef) {
|
|
493
|
+
const response = await this.client.request("lookup_invoice", getLookupInvoiceParams(externalRef));
|
|
494
|
+
const result = parseLookupResult(response, "getPaymentStatus");
|
|
495
|
+
const records = candidateRecords(result);
|
|
496
|
+
const feeSats = parseFeeSats(records);
|
|
497
|
+
return {
|
|
498
|
+
status: normalizePaymentStatus(result),
|
|
499
|
+
...(feeSats > 0 ? { feeSats } : {})
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
async disconnect() {
|
|
503
|
+
this.client.close();
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
//# sourceMappingURL=nostr-nwc-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nostr-nwc-adapter.js","sourceRoot":"","sources":["../../../src/wallet/nostr-nwc-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CreateInvoiceInput, PayInvoiceInput, WalletAdapter, WalletAdapterCreateInvoiceResult, WalletAdapterPayInvoiceResult } from "./types.js";
|
|
2
|
+
export declare function parseNwcConnectionMetadata(connectionUri: string): {
|
|
3
|
+
endpoint: string;
|
|
4
|
+
};
|
|
5
|
+
export declare class NwcWalletAdapter implements WalletAdapter {
|
|
6
|
+
private readonly timeoutMs;
|
|
7
|
+
private readonly endpoint;
|
|
8
|
+
private readonly token?;
|
|
9
|
+
constructor(connectionUri: string, timeoutMs?: number);
|
|
10
|
+
createInvoice(input: CreateInvoiceInput): Promise<WalletAdapterCreateInvoiceResult>;
|
|
11
|
+
payInvoice(input: PayInvoiceInput): Promise<WalletAdapterPayInvoiceResult>;
|
|
12
|
+
getInvoiceStatus(externalRef: string): Promise<"created" | "paid" | "expired" | "canceled">;
|
|
13
|
+
getPaymentStatus(externalRef: string): Promise<{
|
|
14
|
+
status: "pending" | "succeeded" | "failed";
|
|
15
|
+
feeSats?: number;
|
|
16
|
+
failureReason?: string;
|
|
17
|
+
}>;
|
|
18
|
+
disconnect(): Promise<void>;
|
|
19
|
+
private callRpc;
|
|
20
|
+
}
|