beignet 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/README.md +284 -1
  2. package/dist/cli/beignet-node.js +1019 -47
  3. package/dist/cli/beignet-node.js.map +1 -1
  4. package/dist/cli/cli.js +1201 -16
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/cli/config.js +21 -1
  7. package/dist/cli/config.js.map +1 -1
  8. package/dist/cli/daemon.js +342 -16
  9. package/dist/cli/daemon.js.map +1 -1
  10. package/dist/cli/errors.js +2 -0
  11. package/dist/cli/errors.js.map +1 -1
  12. package/dist/cli/openapi.js +1207 -14
  13. package/dist/cli/openapi.js.map +1 -1
  14. package/dist/cli/restore.js +89 -0
  15. package/dist/cli/restore.js.map +1 -0
  16. package/dist/cli/wallet-storage.js +34 -0
  17. package/dist/cli/wallet-storage.js.map +1 -0
  18. package/dist/electrum/index.js +105 -10
  19. package/dist/electrum/index.js.map +1 -1
  20. package/dist/lightning/advisor/fee-tuner.js +42 -0
  21. package/dist/lightning/advisor/fee-tuner.js.map +1 -0
  22. package/dist/lightning/advisor/index.js +9 -1
  23. package/dist/lightning/advisor/index.js.map +1 -1
  24. package/dist/lightning/advisor/rebalance-planner.js +55 -0
  25. package/dist/lightning/advisor/rebalance-planner.js.map +1 -0
  26. package/dist/lightning/backup/index.js +18 -0
  27. package/dist/lightning/backup/index.js.map +1 -0
  28. package/dist/lightning/backup/scb.js +42 -0
  29. package/dist/lightning/backup/scb.js.map +1 -0
  30. package/dist/lightning/chain/chain-monitor.js +27 -0
  31. package/dist/lightning/chain/chain-monitor.js.map +1 -1
  32. package/dist/lightning/chain/output-resolver.js +55 -6
  33. package/dist/lightning/chain/output-resolver.js.map +1 -1
  34. package/dist/lightning/chain/types.js +1 -0
  35. package/dist/lightning/chain/types.js.map +1 -1
  36. package/dist/lightning/channel/channel-manager.js +64 -0
  37. package/dist/lightning/channel/channel-manager.js.map +1 -1
  38. package/dist/lightning/channel/channel-state.js.map +1 -1
  39. package/dist/lightning/channel/channel.js +124 -4
  40. package/dist/lightning/channel/channel.js.map +1 -1
  41. package/dist/lightning/channel/dual-funding.js +6 -5
  42. package/dist/lightning/channel/dual-funding.js.map +1 -1
  43. package/dist/lightning/channel/types.js +3 -1
  44. package/dist/lightning/channel/types.js.map +1 -1
  45. package/dist/lightning/channel/validation.js +3 -3
  46. package/dist/lightning/channel/validation.js.map +1 -1
  47. package/dist/lightning/crypto/index.js +1 -0
  48. package/dist/lightning/crypto/index.js.map +1 -1
  49. package/dist/lightning/crypto/message-signing.js +116 -0
  50. package/dist/lightning/crypto/message-signing.js.map +1 -0
  51. package/dist/lightning/crypto/xchacha20poly1305.js +77 -0
  52. package/dist/lightning/crypto/xchacha20poly1305.js.map +1 -0
  53. package/dist/lightning/features/flags.js +1 -0
  54. package/dist/lightning/features/flags.js.map +1 -1
  55. package/dist/lightning/gossip/messages.js +37 -1
  56. package/dist/lightning/gossip/messages.js.map +1 -1
  57. package/dist/lightning/index.js +2 -1
  58. package/dist/lightning/index.js.map +1 -1
  59. package/dist/lightning/keys/wallet-keys.js +1 -0
  60. package/dist/lightning/keys/wallet-keys.js.map +1 -1
  61. package/dist/lightning/message/index.js +1 -0
  62. package/dist/lightning/message/index.js.map +1 -1
  63. package/dist/lightning/message/peer-storage.js +43 -0
  64. package/dist/lightning/message/peer-storage.js.map +1 -0
  65. package/dist/lightning/message/types.js +2 -0
  66. package/dist/lightning/message/types.js.map +1 -1
  67. package/dist/lightning/node/lightning-node.js +1583 -235
  68. package/dist/lightning/node/lightning-node.js.map +1 -1
  69. package/dist/lightning/node/types.js +18 -1
  70. package/dist/lightning/node/types.js.map +1 -1
  71. package/dist/lightning/offer/offer-manager.js +2 -5
  72. package/dist/lightning/offer/offer-manager.js.map +1 -1
  73. package/dist/lightning/offer/tlv.js +3 -1
  74. package/dist/lightning/offer/tlv.js.map +1 -1
  75. package/dist/lightning/storage/encryption.js +67 -0
  76. package/dist/lightning/storage/encryption.js.map +1 -0
  77. package/dist/lightning/storage/index.js +1 -0
  78. package/dist/lightning/storage/index.js.map +1 -1
  79. package/dist/lightning/storage/serialization.js +6 -2
  80. package/dist/lightning/storage/serialization.js.map +1 -1
  81. package/dist/lightning/storage/sqlite-storage.js +387 -33
  82. package/dist/lightning/storage/sqlite-storage.js.map +1 -1
  83. package/dist/lightning/watchtower/blob.js +135 -0
  84. package/dist/lightning/watchtower/blob.js.map +1 -0
  85. package/dist/lightning/watchtower/index.js +55 -0
  86. package/dist/lightning/watchtower/index.js.map +1 -0
  87. package/dist/lightning/watchtower/justice.js +182 -0
  88. package/dist/lightning/watchtower/justice.js.map +1 -0
  89. package/dist/lightning/watchtower/tower-connection.js +208 -0
  90. package/dist/lightning/watchtower/tower-connection.js.map +1 -0
  91. package/dist/lightning/watchtower/types.js +3 -0
  92. package/dist/lightning/watchtower/types.js.map +1 -0
  93. package/dist/lightning/watchtower/watchtower-client.js +402 -0
  94. package/dist/lightning/watchtower/watchtower-client.js.map +1 -0
  95. package/dist/lightning/watchtower/wtwire.js +201 -0
  96. package/dist/lightning/watchtower/wtwire.js.map +1 -0
  97. package/dist/shapes/electrum.js +32 -1
  98. package/dist/shapes/electrum.js.map +1 -1
  99. package/dist/shapes/wallet.js +11 -1
  100. package/dist/shapes/wallet.js.map +1 -1
  101. package/dist/transaction/index.js +163 -15
  102. package/dist/transaction/index.js.map +1 -1
  103. package/dist/types/cli/beignet-node.d.ts +144 -3
  104. package/dist/types/cli/daemon.d.ts +2 -0
  105. package/dist/types/cli/errors.d.ts +2 -0
  106. package/dist/types/cli/restore.d.ts +10 -0
  107. package/dist/types/cli/types.d.ts +228 -1
  108. package/dist/types/cli/wallet-storage.d.ts +3 -0
  109. package/dist/types/electrum/index.d.ts +12 -0
  110. package/dist/types/electrum.js +1 -0
  111. package/dist/types/electrum.js.map +1 -1
  112. package/dist/types/lightning/advisor/fee-tuner.d.ts +20 -0
  113. package/dist/types/lightning/advisor/index.d.ts +4 -0
  114. package/dist/types/lightning/advisor/rebalance-planner.d.ts +12 -0
  115. package/dist/types/lightning/backup/index.d.ts +1 -0
  116. package/dist/types/lightning/backup/scb.d.ts +24 -0
  117. package/dist/types/lightning/chain/chain-monitor.d.ts +1 -0
  118. package/dist/types/lightning/chain/types.d.ts +1 -0
  119. package/dist/types/lightning/channel/channel-manager.d.ts +7 -0
  120. package/dist/types/lightning/channel/channel-state.d.ts +2 -0
  121. package/dist/types/lightning/channel/channel.d.ts +6 -0
  122. package/dist/types/lightning/channel/dual-funding.d.ts +2 -1
  123. package/dist/types/lightning/channel/types.d.ts +2 -0
  124. package/dist/types/lightning/channel/validation.d.ts +1 -1
  125. package/dist/types/lightning/crypto/index.d.ts +1 -0
  126. package/dist/types/lightning/crypto/message-signing.d.ts +9 -0
  127. package/dist/types/lightning/crypto/xchacha20poly1305.d.ts +3 -0
  128. package/dist/types/lightning/features/flags.d.ts +1 -0
  129. package/dist/types/lightning/gossip/messages.d.ts +4 -0
  130. package/dist/types/lightning/index.d.ts +1 -0
  131. package/dist/types/lightning/keys/wallet-keys.d.ts +2 -1
  132. package/dist/types/lightning/message/index.d.ts +1 -0
  133. package/dist/types/lightning/message/peer-storage.d.ts +9 -0
  134. package/dist/types/lightning/message/types.d.ts +2 -0
  135. package/dist/types/lightning/node/lightning-node.d.ts +116 -4
  136. package/dist/types/lightning/node/types.d.ts +62 -1
  137. package/dist/types/lightning/storage/encryption.d.ts +11 -0
  138. package/dist/types/lightning/storage/index.d.ts +1 -0
  139. package/dist/types/lightning/storage/serialization.d.ts +2 -0
  140. package/dist/types/lightning/storage/sqlite-storage.d.ts +43 -3
  141. package/dist/types/lightning/storage/types.d.ts +62 -0
  142. package/dist/types/lightning/watchtower/blob.d.ts +32 -0
  143. package/dist/types/lightning/watchtower/index.d.ts +9 -0
  144. package/dist/types/lightning/watchtower/justice.d.ts +29 -0
  145. package/dist/types/lightning/watchtower/tower-connection.d.ts +34 -0
  146. package/dist/types/lightning/watchtower/types.d.ts +44 -0
  147. package/dist/types/lightning/watchtower/watchtower-client.d.ts +67 -0
  148. package/dist/types/lightning/watchtower/wtwire.d.ts +90 -0
  149. package/dist/types/shapes/electrum.d.ts +3 -1
  150. package/dist/types/transaction/index.d.ts +6 -0
  151. package/dist/types/transaction.js.map +1 -1
  152. package/dist/types/types/electrum.d.ts +3 -2
  153. package/dist/types/types/transaction.d.ts +1 -1
  154. package/dist/types/types/wallet.d.ts +78 -4
  155. package/dist/types/utils/descriptors.d.ts +2 -0
  156. package/dist/types/utils/fees.d.ts +3 -0
  157. package/dist/types/utils/helpers.d.ts +3 -1
  158. package/dist/types/utils/index.d.ts +5 -0
  159. package/dist/types/utils/multisig.d.ts +29 -0
  160. package/dist/types/utils/transaction.d.ts +7 -0
  161. package/dist/types/utils/wallet-storage-encryption.d.ts +3 -0
  162. package/dist/types/utils/wallet.d.ts +1 -1
  163. package/dist/types/utils/watch-only.d.ts +12 -0
  164. package/dist/types/wallet/constants.d.ts +1 -0
  165. package/dist/types/wallet/index.d.ts +61 -4
  166. package/dist/types/wallet.js +3 -0
  167. package/dist/types/wallet.js.map +1 -1
  168. package/dist/utils/derivation-path.js +8 -7
  169. package/dist/utils/derivation-path.js.map +1 -1
  170. package/dist/utils/descriptors.js +56 -0
  171. package/dist/utils/descriptors.js.map +1 -0
  172. package/dist/utils/electrum.js +10 -2
  173. package/dist/utils/electrum.js.map +1 -1
  174. package/dist/utils/fees.js +19 -0
  175. package/dist/utils/fees.js.map +1 -0
  176. package/dist/utils/helpers.js +22 -5
  177. package/dist/utils/helpers.js.map +1 -1
  178. package/dist/utils/index.js +5 -0
  179. package/dist/utils/index.js.map +1 -1
  180. package/dist/utils/multisig.js +90 -0
  181. package/dist/utils/multisig.js.map +1 -0
  182. package/dist/utils/transaction.js +30 -3
  183. package/dist/utils/transaction.js.map +1 -1
  184. package/dist/utils/wallet-storage-encryption.js +45 -0
  185. package/dist/utils/wallet-storage-encryption.js.map +1 -0
  186. package/dist/utils/wallet.js +3 -1
  187. package/dist/utils/wallet.js.map +1 -1
  188. package/dist/utils/watch-only.js +102 -0
  189. package/dist/utils/watch-only.js.map +1 -0
  190. package/dist/wallet/constants.js +2 -1
  191. package/dist/wallet/constants.js.map +1 -1
  192. package/dist/wallet/index.js +787 -30
  193. package/dist/wallet/index.js.map +1 -1
  194. package/docs/ROADMAP.md +292 -0
  195. package/package.json +1 -1
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.startDaemon = exports.parseBody = void 0;
26
+ exports.startDaemon = exports.getRelayedEvents = exports.parseBody = void 0;
27
27
  const http = __importStar(require("http"));
28
28
  const https = __importStar(require("https"));
29
29
  const fs = __importStar(require("fs"));
@@ -33,6 +33,7 @@ const openapi_1 = require("./openapi");
33
33
  const webhooks_1 = require("./webhooks");
34
34
  const payment_queue_1 = require("./payment-queue");
35
35
  const http_rate_limiter_1 = require("./http-rate-limiter");
36
+ const transaction_1 = require("../utils/transaction");
36
37
  const MAX_BODY_BYTES = 1048576;
37
38
  const IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1000;
38
39
  const IDEMPOTENCY_CLEANUP_INTERVAL_MS = 10 * 60 * 1000;
@@ -42,7 +43,9 @@ const IDEMPOTENT_ROUTES = new Set([
42
43
  'POST /invoice/pay-async',
43
44
  'POST /invoice/pay-retry',
44
45
  'POST /keysend',
45
- 'POST /keysend/safe'
46
+ 'POST /keysend/safe',
47
+ 'POST /rebalance',
48
+ 'POST /advisor/execute-rebalances'
46
49
  ]);
47
50
  function success(result) {
48
51
  return { ok: true, result };
@@ -96,6 +99,27 @@ const AUTH_EXEMPT_ROUTES = new Set([
96
99
  'GET /openapi.json',
97
100
  'GET /metrics'
98
101
  ]);
102
+ function getRelayedEvents(htlcEvents) {
103
+ const events = [
104
+ 'payment:received',
105
+ 'payment:sent',
106
+ 'payment:failed',
107
+ 'invoice:settled',
108
+ 'channel:opening',
109
+ 'channel:ready',
110
+ 'channel:pending-close',
111
+ 'channel:force-closing',
112
+ 'channel:closed',
113
+ 'peer:connect',
114
+ 'peer:disconnect',
115
+ 'node:ready'
116
+ ];
117
+ if (htlcEvents === true) {
118
+ events.push('htlc:forwarded', 'htlc:fulfilled', 'htlc:failed');
119
+ }
120
+ return events;
121
+ }
122
+ exports.getRelayedEvents = getRelayedEvents;
99
123
  async function startDaemon(opts) {
100
124
  const port = opts.daemonPort !== undefined && opts.daemonPort !== null
101
125
  ? opts.daemonPort
@@ -148,6 +172,24 @@ async function startDaemon(opts) {
148
172
  filter.metadataValue = query.get('metadataValue');
149
173
  return success(node.listPayments(Object.keys(filter).length > 0 ? filter : undefined));
150
174
  },
175
+ 'GET /forwards': (_body, query) => {
176
+ const filter = {};
177
+ if (query.get('since'))
178
+ filter.since = Number(query.get('since'));
179
+ if (query.get('until'))
180
+ filter.until = Number(query.get('until'));
181
+ if (query.get('limit'))
182
+ filter.limit = Number(query.get('limit'));
183
+ if (query.get('offset'))
184
+ filter.offset = Number(query.get('offset'));
185
+ if (query.get('channelId'))
186
+ filter.channelId = query.get('channelId');
187
+ return success(node.listForwards(Object.keys(filter).length > 0 ? filter : undefined));
188
+ },
189
+ 'GET /forwards/summary': (_body, query) => {
190
+ const since = query.get('since') ? Number(query.get('since')) : undefined;
191
+ return success(node.getForwardingSummary(since));
192
+ },
151
193
  'GET /invoices': () => success(node.listInvoices()),
152
194
  'GET /invoice': (_body, query) => {
153
195
  const paymentHash = query.get('paymentHash');
@@ -170,6 +212,41 @@ async function startDaemon(opts) {
170
212
  },
171
213
  'GET /spend-limit': () => success(node.getDailySpendInfo()),
172
214
  'GET /liquidity': () => success(node.getLiquiditySnapshot()),
215
+ 'GET /watchtowers': () => success({ towers: node.listWatchtowers() }),
216
+ 'POST /watchtower/add': (body) => {
217
+ const { uri } = body;
218
+ if (!uri)
219
+ return failure('INVALID_PARAMS', 'uri required');
220
+ try {
221
+ node.addWatchtower(uri);
222
+ }
223
+ catch (err) {
224
+ return failure('INVALID_PARAMS', err instanceof Error ? err.message : String(err));
225
+ }
226
+ return success({ added: uri });
227
+ },
228
+ 'DELETE /watchtower/remove': (body) => {
229
+ const { uri } = body;
230
+ if (!uri)
231
+ return failure('INVALID_PARAMS', 'uri required');
232
+ node.removeWatchtower(uri);
233
+ return success({ removed: uri });
234
+ },
235
+ 'GET /advisor/recommendations': () => success(node.getAdvisorRecommendations()),
236
+ 'POST /advisor/execute-rebalances': async (body) => {
237
+ const { budgetSatsPerDay } = body;
238
+ return success(await node.executeRebalances(budgetSatsPerDay));
239
+ },
240
+ 'POST /rebalance': async (body) => {
241
+ const { fromChannelId, toChannelId, amountSats, maxFeeSats } = body;
242
+ if (!fromChannelId ||
243
+ !toChannelId ||
244
+ amountSats === undefined ||
245
+ maxFeeSats === undefined) {
246
+ return failure('INVALID_PARAMS', 'fromChannelId, toChannelId, amountSats, and maxFeeSats required');
247
+ }
248
+ return success(await node.rebalanceChannel(fromChannelId, toChannelId, amountSats, maxFeeSats));
249
+ },
173
250
  'GET /fees': () => {
174
251
  const snapshot = node.getFeeSnapshot();
175
252
  if (!snapshot)
@@ -189,6 +266,26 @@ async function startDaemon(opts) {
189
266
  return success(txs);
190
267
  },
191
268
  'GET /utxos': () => success(node.listUtxos()),
269
+ 'POST /utxo/freeze': async (body) => {
270
+ const { txid, index } = body;
271
+ if (!txid || index === undefined)
272
+ return failure('INVALID_PARAMS', 'txid and index required');
273
+ return success(await node.freezeUtxo(txid, index));
274
+ },
275
+ 'POST /utxo/unfreeze': async (body) => {
276
+ const { txid, index } = body;
277
+ if (!txid || index === undefined)
278
+ return failure('INVALID_PARAMS', 'txid and index required');
279
+ return success(await node.unfreezeUtxo(txid, index));
280
+ },
281
+ 'POST /address/label': async (body) => {
282
+ const { address, label } = body;
283
+ if (!address || label === undefined)
284
+ return failure('INVALID_PARAMS', 'address and label required (empty label clears)');
285
+ return success(await node.setAddressLabel(address, label));
286
+ },
287
+ 'GET /address/labels': () => success(node.listAddressLabels()),
288
+ 'GET /wallet/descriptors': () => success(node.exportDescriptors()),
192
289
  'GET /channel/suggestions': (_body, query) => {
193
290
  const count = query.get('count') ? Number(query.get('count')) : undefined;
194
291
  return success(node.getChannelSuggestions(count));
@@ -203,7 +300,16 @@ async function startDaemon(opts) {
203
300
  options.limit = Number(query.get('limit'));
204
301
  return success(node.getActionLog(Object.keys(options).length > 0 ? options : undefined));
205
302
  },
206
- 'POST /address/new': async () => success({ address: await node.getNewAddress() }),
303
+ 'POST /address/new': async (body) => {
304
+ const { bip21: wantBip21, amountSats, label, message } = (body ?? {});
305
+ const address = await node.getNewAddress();
306
+ if (!wantBip21)
307
+ return success({ address });
308
+ const uri = (0, transaction_1.encodeBip21)({ address, amountSats, label, message });
309
+ if (uri.isErr())
310
+ return failure('INVALID_PARAMS', uri.error.message);
311
+ return success({ address, bip21: uri.value });
312
+ },
207
313
  'POST /wallet/refresh': async () => {
208
314
  await node.refreshWallet();
209
315
  return success({ refreshed: true });
@@ -214,10 +320,53 @@ async function startDaemon(opts) {
214
320
  return failure('INVALID_PARAMS', 'address and amountSats required');
215
321
  return success(await node.sendOnchain(address, amountSats, satsPerVbyte));
216
322
  },
323
+ 'POST /send-max': async (body) => {
324
+ const { address, satsPerVbyte } = body;
325
+ if (!address)
326
+ return failure('INVALID_PARAMS', 'address required');
327
+ return success(await node.sendMaxOnchain(address, satsPerVbyte));
328
+ },
329
+ 'POST /tx/bump-fee': async (body) => {
330
+ const { txid, satsPerVbyte } = body;
331
+ if (!txid || satsPerVbyte === undefined)
332
+ return failure('INVALID_PARAMS', 'txid and satsPerVbyte required');
333
+ return success(await node.bumpFeeOnchain(txid, satsPerVbyte));
334
+ },
335
+ 'POST /tx/boost': async (body) => {
336
+ const { txid, satsPerVbyte } = body;
337
+ if (!txid)
338
+ return failure('INVALID_PARAMS', 'txid required');
339
+ return success(await node.boostOnchain(txid, satsPerVbyte));
340
+ },
341
+ 'GET /transactions/boostable': () => success(node.listBoostableTransactions()),
342
+ 'POST /consolidate': async (body) => {
343
+ const { satsPerVbyte } = body;
344
+ return success(await node.consolidateUtxos(satsPerVbyte));
345
+ },
346
+ 'POST /psbt/build': async (body) => {
347
+ const { outputs, satsPerVbyte } = body;
348
+ if (!outputs || !Array.isArray(outputs) || outputs.length === 0)
349
+ return failure('INVALID_PARAMS', 'outputs array of { address, amountSats } required');
350
+ return success(await node.buildPsbt(outputs, satsPerVbyte));
351
+ },
352
+ 'POST /psbt/import-signed': (body) => {
353
+ const { psbtBase64 } = body;
354
+ if (!psbtBase64)
355
+ return failure('INVALID_PARAMS', 'psbtBase64 required');
356
+ return success(node.importSignedPsbt(psbtBase64));
357
+ },
358
+ 'POST /psbt/combine': (body) => {
359
+ const { psbts } = body;
360
+ if (!psbts || !Array.isArray(psbts) || psbts.length < 2)
361
+ return failure('INVALID_PARAMS', 'psbts array with at least two base64 PSBTs required');
362
+ return success(node.combinePsbts(psbts));
363
+ },
217
364
  'POST /peer/connect': async (body) => {
218
365
  const { pubkey, host: peerHost, port: peerPort } = body;
219
- if (!pubkey || !peerHost || !peerPort)
220
- return failure('INVALID_PARAMS', 'pubkey, host, and port required');
366
+ if (!pubkey)
367
+ return failure('INVALID_PARAMS', 'pubkey required');
368
+ if ((peerHost === undefined) !== (peerPort === undefined))
369
+ return failure('INVALID_PARAMS', 'host and port must be provided together (omit both to resolve by node id)');
221
370
  return success(await node.connectPeer(pubkey, peerHost, peerPort));
222
371
  },
223
372
  'POST /peer/disconnect': (body) => {
@@ -254,7 +403,7 @@ async function startDaemon(opts) {
254
403
  commitmentTxid: result.commitmentTxid
255
404
  });
256
405
  },
257
- 'POST /channel/update-fee': (body) => {
406
+ 'POST /channel/update-commitment-feerate': (body) => {
258
407
  const { channelId, feeratePerKw } = body;
259
408
  if (!channelId)
260
409
  return failure('INVALID_PARAMS', 'channelId required');
@@ -262,6 +411,32 @@ async function startDaemon(opts) {
262
411
  return failure('INVALID_PARAMS', 'feeratePerKw required');
263
412
  return success(node.updateChannelFee(channelId, feeratePerKw));
264
413
  },
414
+ 'POST /channel/update-policy': (body) => {
415
+ const { channelId, all, feeBaseMsat, feeProportionalMillionths, cltvExpiryDelta, htlcMinimumMsat, htlcMaximumMsat } = body;
416
+ if (!channelId && all !== true)
417
+ return failure('INVALID_PARAMS', 'channelId or all:true required');
418
+ try {
419
+ return success(node.updateChannelPolicy(all === true ? 'all' : channelId, {
420
+ feeBaseMsat,
421
+ feeProportionalMillionths,
422
+ cltvExpiryDelta,
423
+ htlcMinimumMsat,
424
+ htlcMaximumMsat
425
+ }));
426
+ }
427
+ catch (err) {
428
+ return failure('INVALID_PARAMS', err.message);
429
+ }
430
+ },
431
+ 'GET /channel/policy': (body, query) => {
432
+ const channelId = query.get('channelId') || body.channelId;
433
+ if (!channelId)
434
+ return failure('INVALID_PARAMS', 'channelId required');
435
+ const policy = node.getChannelPolicy(channelId);
436
+ if (!policy)
437
+ return failure('NOT_FOUND', 'Channel not found');
438
+ return success(policy);
439
+ },
265
440
  'GET /channel': (body, query) => {
266
441
  const channelId = query.get('channelId') || body.channelId;
267
442
  if (!channelId)
@@ -306,6 +481,40 @@ async function startDaemon(opts) {
306
481
  : undefined;
307
482
  return success(node.createInvoice(amountSats, description, expirySecs, hashBuf));
308
483
  },
484
+ 'POST /invoice/create-hold': (body) => {
485
+ const { paymentHash, amountMsat, amountSats, description, expiry } = body;
486
+ if (!paymentHash)
487
+ return failure('INVALID_PARAMS', 'paymentHash required');
488
+ let amountMsatBig;
489
+ if (amountMsat !== undefined) {
490
+ try {
491
+ amountMsatBig = BigInt(amountMsat);
492
+ }
493
+ catch {
494
+ return failure('INVALID_PARAMS', 'amountMsat must be an integer');
495
+ }
496
+ }
497
+ return success(node.createHoldInvoice({
498
+ paymentHash,
499
+ amountMsat: amountMsatBig,
500
+ amountSats,
501
+ description,
502
+ expiry
503
+ }));
504
+ },
505
+ 'POST /invoice/settle-hold': (body) => {
506
+ const { preimage } = body;
507
+ if (!preimage)
508
+ return failure('INVALID_PARAMS', 'preimage required');
509
+ return success(node.settleHoldInvoice(preimage));
510
+ },
511
+ 'POST /invoice/cancel-hold': (body) => {
512
+ const { paymentHash } = body;
513
+ if (!paymentHash)
514
+ return failure('INVALID_PARAMS', 'paymentHash required');
515
+ return success(node.cancelHoldInvoice(paymentHash));
516
+ },
517
+ 'GET /invoices/held': () => success(node.listHoldInvoices()),
309
518
  'POST /invoice/decode': (body) => {
310
519
  const { bolt11 } = body;
311
520
  if (!bolt11)
@@ -525,6 +734,101 @@ async function startDaemon(opts) {
525
734
  return failure('INVALID_PARAMS', 'destination and amountSats required');
526
735
  return success(node.probeRoute(destination, amountSats));
527
736
  },
737
+ 'GET /graph/info': () => success(node.getGraphInfo()),
738
+ 'GET /graph/node': (_body, query) => {
739
+ const pubkey = query.get('pubkey');
740
+ if (!pubkey)
741
+ return failure('INVALID_PARAMS', 'pubkey required');
742
+ const info = node.getGraphNode(pubkey);
743
+ if (!info)
744
+ return failure('NOT_FOUND', 'Node not found in graph');
745
+ return success(info);
746
+ },
747
+ 'GET /graph/channel': (_body, query) => {
748
+ const scid = query.get('scid');
749
+ if (!scid)
750
+ return failure('INVALID_PARAMS', 'scid required');
751
+ const info = node.getGraphChannel(scid);
752
+ if (!info)
753
+ return failure('NOT_FOUND', 'Channel not found in graph');
754
+ return success(info);
755
+ },
756
+ 'GET /graph/describe': (_body, query) => {
757
+ const limitParam = query.get('limit');
758
+ const offsetParam = query.get('offset');
759
+ let limit;
760
+ let offset;
761
+ if (limitParam !== null) {
762
+ limit = Number(limitParam);
763
+ if (!Number.isInteger(limit) || limit < 1)
764
+ return failure('INVALID_PARAMS', 'limit must be a positive integer');
765
+ }
766
+ if (offsetParam !== null) {
767
+ offset = Number(offsetParam);
768
+ if (!Number.isInteger(offset) || offset < 0)
769
+ return failure('INVALID_PARAMS', 'offset must be a non-negative integer');
770
+ }
771
+ return success(node.describeGraph(limit, offset));
772
+ },
773
+ 'POST /route/query': (body) => {
774
+ const { destination, amountSats, maxFeeSats } = body;
775
+ if (!destination || amountSats === undefined)
776
+ return failure('INVALID_PARAMS', 'destination and amountSats required');
777
+ return success(node.queryRoute(destination, amountSats, maxFeeSats));
778
+ },
779
+ 'POST /payment/send-to-route': (body) => {
780
+ const { paymentHash, route, paymentSecret } = body;
781
+ if (!paymentHash || !route)
782
+ return failure('INVALID_PARAMS', 'paymentHash and route required');
783
+ return success(node.sendToRoute(paymentHash, route, paymentSecret));
784
+ },
785
+ 'POST /message/sign': (body) => {
786
+ const { message } = body;
787
+ if (!message)
788
+ return failure('INVALID_PARAMS', 'message required');
789
+ return success(node.signMessage(message));
790
+ },
791
+ 'POST /message/verify': (body) => {
792
+ const { message, signature } = body;
793
+ if (!message || !signature)
794
+ return failure('INVALID_PARAMS', 'message and signature required');
795
+ return success(node.verifyMessage(message, signature));
796
+ },
797
+ 'POST /gossip/sync': (body) => {
798
+ const { pubkey } = body;
799
+ return success({ syncedFrom: node.syncGossip(pubkey) });
800
+ },
801
+ 'POST /gossip/sync-rapid': async () => {
802
+ const result = await node.syncRapidGossip();
803
+ if (!result) {
804
+ return failure('INVALID_PARAMS', 'Rapid gossip sync is only available on mainnet');
805
+ }
806
+ return success(result);
807
+ },
808
+ 'GET /channel/diagnostics': (body, query) => {
809
+ const channelId = query.get('channelId') || body.channelId;
810
+ if (!channelId)
811
+ return failure('INVALID_PARAMS', 'channelId required');
812
+ const diagnostics = node.getChannelDiagnostics(channelId);
813
+ if (!diagnostics)
814
+ return failure('NOT_FOUND', 'Channel not found');
815
+ return success(diagnostics);
816
+ },
817
+ 'POST /address/validate': (body) => {
818
+ const { address } = body;
819
+ if (!address)
820
+ return failure('INVALID_PARAMS', 'address required');
821
+ return success({ address, valid: node.validateAddress(address) });
822
+ },
823
+ 'POST /recover-fallback-funds': async (body) => {
824
+ const { feeRatePerVbyte } = body;
825
+ const result = await node.recoverFallbackFunds(feeRatePerVbyte !== undefined ? { feeRatePerVbyte } : undefined);
826
+ return success(result ?? { recovered: false });
827
+ },
828
+ 'POST /backup/trigger': () => {
829
+ node.triggerBackup();
830
+ return success({ triggered: true });
831
+ },
528
832
  'POST /backup': async (body) => {
529
833
  const { destPath } = body;
530
834
  if (!destPath)
@@ -537,6 +841,35 @@ async function startDaemon(opts) {
537
841
  await node.backup(destPath);
538
842
  return success({ backed_up: true });
539
843
  },
844
+ 'GET /backup/scb': () => success(node.exportStaticChannelBackup()),
845
+ 'GET /backup/peer-retrieved': () => {
846
+ const retrieved = node.getPeerRetrievedBackup();
847
+ if (!retrieved) {
848
+ return failure('NOT_FOUND', 'No peer-retrieved backup this session (no capable peer has returned our SCB yet)');
849
+ }
850
+ return success(retrieved);
851
+ },
852
+ 'POST /restore/scb': async (body) => {
853
+ const { encoded, path: scbPath } = body;
854
+ if ((encoded ? 1 : 0) + (scbPath ? 1 : 0) !== 1) {
855
+ return failure('INVALID_PARAMS', 'Provide exactly one of encoded or path');
856
+ }
857
+ let blob = encoded;
858
+ if (scbPath) {
859
+ if (scbPath.includes('..') ||
860
+ scbPath.includes('%2e%2e') ||
861
+ scbPath.includes('%2E%2E')) {
862
+ return failure('INVALID_PARAMS', 'Path traversal not allowed');
863
+ }
864
+ try {
865
+ blob = fs.readFileSync(scbPath, 'utf8');
866
+ }
867
+ catch (err) {
868
+ return failure('INVALID_PARAMS', `Cannot read SCB file: ${err.message}`);
869
+ }
870
+ }
871
+ return success(await node.restoreFromScb(blob));
872
+ },
540
873
  'POST /offer/create': (body) => {
541
874
  const { description, amountSats, issuer } = body;
542
875
  if (!description)
@@ -588,6 +921,8 @@ async function startDaemon(opts) {
588
921
  return success({ cancelled: true });
589
922
  }
590
923
  };
924
+ routes['POST /channel/update-fee'] =
925
+ routes['POST /channel/update-commitment-feerate'];
591
926
  const sseClients = new Set();
592
927
  const corsOrigin = opts.cors === true ? '*' : typeof opts.cors === 'string' ? opts.cors : null;
593
928
  if (opts.tlsCert && !opts.tlsKey) {
@@ -747,16 +1082,7 @@ async function startDaemon(opts) {
747
1082
  else {
748
1083
  server = http.createServer(requestHandler);
749
1084
  }
750
- const sseEvents = [
751
- 'payment:received',
752
- 'payment:sent',
753
- 'payment:failed',
754
- 'channel:ready',
755
- 'channel:closed',
756
- 'peer:connect',
757
- 'peer:disconnect',
758
- 'node:ready'
759
- ];
1085
+ const sseEvents = getRelayedEvents(opts.htlcEvents);
760
1086
  for (const eventName of sseEvents) {
761
1087
  node.on(eventName, (data) => {
762
1088
  if (sseClients.size === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ var BeignetErrorCode;
7
7
  BeignetErrorCode["ADDRESS_FAILED"] = "ADDRESS_FAILED";
8
8
  BeignetErrorCode["SEND_FAILED"] = "SEND_FAILED";
9
9
  BeignetErrorCode["REFRESH_FAILED"] = "REFRESH_FAILED";
10
+ BeignetErrorCode["NOT_BOOSTABLE"] = "NOT_BOOSTABLE";
11
+ BeignetErrorCode["NOTHING_TO_CONSOLIDATE"] = "NOTHING_TO_CONSOLIDATE";
10
12
  BeignetErrorCode["INSTANCE_ALREADY_RUNNING"] = "INSTANCE_ALREADY_RUNNING";
11
13
  BeignetErrorCode["PAYMENT_FAILED"] = "PAYMENT_FAILED";
12
14
  BeignetErrorCode["PAYMENT_TIMEOUT"] = "PAYMENT_TIMEOUT";