@aibtc/mcp-server 1.48.0 → 1.49.1

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 (45) hide show
  1. package/dist/services/lightning/provider.d.ts +68 -0
  2. package/dist/services/lightning/provider.d.ts.map +1 -0
  3. package/dist/services/lightning/provider.js +8 -0
  4. package/dist/services/lightning/provider.js.map +1 -0
  5. package/dist/services/lightning/spark-provider.d.ts +41 -0
  6. package/dist/services/lightning/spark-provider.d.ts.map +1 -0
  7. package/dist/services/lightning/spark-provider.js +165 -0
  8. package/dist/services/lightning/spark-provider.js.map +1 -0
  9. package/dist/services/lightning-manager.d.ts +96 -0
  10. package/dist/services/lightning-manager.d.ts.map +1 -0
  11. package/dist/services/lightning-manager.js +226 -0
  12. package/dist/services/lightning-manager.js.map +1 -0
  13. package/dist/services/sbtc-deposit.service.d.ts.map +1 -1
  14. package/dist/services/sbtc-deposit.service.js +7 -13
  15. package/dist/services/sbtc-deposit.service.js.map +1 -1
  16. package/dist/services/unisat-indexer.d.ts +5 -0
  17. package/dist/services/unisat-indexer.d.ts.map +1 -1
  18. package/dist/services/unisat-indexer.js +8 -0
  19. package/dist/services/unisat-indexer.js.map +1 -1
  20. package/dist/services/x402.service.d.ts.map +1 -1
  21. package/dist/services/x402.service.js +228 -0
  22. package/dist/services/x402.service.js.map +1 -1
  23. package/dist/tools/bitcoin.tools.d.ts.map +1 -1
  24. package/dist/tools/bitcoin.tools.js +26 -46
  25. package/dist/tools/bitcoin.tools.js.map +1 -1
  26. package/dist/tools/index.d.ts.map +1 -1
  27. package/dist/tools/index.js +3 -0
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/lightning.tools.d.ts +11 -0
  30. package/dist/tools/lightning.tools.d.ts.map +1 -0
  31. package/dist/tools/lightning.tools.js +333 -0
  32. package/dist/tools/lightning.tools.js.map +1 -0
  33. package/dist/tools/styx.tools.d.ts.map +1 -1
  34. package/dist/tools/styx.tools.js +28 -30
  35. package/dist/tools/styx.tools.js.map +1 -1
  36. package/dist/utils/l402-protocol.d.ts +64 -0
  37. package/dist/utils/l402-protocol.d.ts.map +1 -0
  38. package/dist/utils/l402-protocol.js +114 -0
  39. package/dist/utils/l402-protocol.js.map +1 -0
  40. package/package.json +3 -1
  41. package/skill/SKILL.md +1 -1
  42. package/dist/services/ordinal-indexer.d.ts +0 -128
  43. package/dist/services/ordinal-indexer.d.ts.map +0 -1
  44. package/dist/services/ordinal-indexer.js +0 -126
  45. package/dist/services/ordinal-indexer.js.map +0 -1
@@ -16,7 +16,7 @@ import { createJsonResponse, createErrorResponse } from "../utils/index.js";
16
16
  import { getWalletManager } from "../services/wallet-manager.js";
17
17
  import { MempoolApi, getMempoolAddressUrl, getMempoolTxUrl, } from "../services/mempool-api.js";
18
18
  import { buildAndSignBtcTransaction } from "../transactions/bitcoin-builder.js";
19
- import { OrdinalIndexer } from "../services/ordinal-indexer.js";
19
+ import { UnisatIndexer } from "../services/unisat-indexer.js";
20
20
  /**
21
21
  * Get the Bitcoin address to use for queries.
22
22
  * Prefers the provided address, falls back to wallet's btcAddress.
@@ -244,30 +244,22 @@ export function registerBitcoinTools(server) {
244
244
  const api = new MempoolApi(NETWORK);
245
245
  // Fetch UTXOs - use cardinal UTXOs by default for safety
246
246
  let utxos;
247
- let testnetWarning = "";
248
247
  if (includeOrdinals) {
249
248
  // Power user mode: use all UTXOs
250
249
  utxos = await api.getUtxos(account.btcAddress);
251
250
  }
252
251
  else {
253
- // Safe mode: only use cardinal UTXOs (no inscriptions)
254
- // On testnet, Hiro API is not available, so fall back to all UTXOs
255
- if (NETWORK === "testnet") {
256
- utxos = await api.getUtxos(account.btcAddress);
257
- testnetWarning =
258
- " Note: Ordinal protection is not available on testnet. All UTXOs were used.";
259
- }
260
- else {
261
- const indexer = new OrdinalIndexer(NETWORK);
262
- utxos = await indexer.getCardinalUtxos(account.btcAddress);
263
- }
252
+ // Safe mode: Unisat-filtered cardinal UTXOs only,
253
+ // excluding inscription-bearing and rune-bearing outputs.
254
+ const indexer = new UnisatIndexer(NETWORK);
255
+ utxos = await indexer.getCardinalUtxos(account.btcAddress);
264
256
  }
265
257
  if (utxos.length === 0) {
266
258
  const errorMsg = includeOrdinals
267
259
  ? `No UTXOs found for address ${account.btcAddress}`
268
260
  : `No cardinal UTXOs available for address ${account.btcAddress}. ` +
269
- `You may have ordinal UTXOs (containing inscriptions). ` +
270
- `Set includeOrdinals=true to spend them (WARNING: may destroy inscriptions).`;
261
+ `Your remaining UTXOs may carry inscriptions or runes. ` +
262
+ `Set includeOrdinals=true to spend them (WARNING: may destroy inscriptions or runes).`;
271
263
  throw new Error(errorMsg);
272
264
  }
273
265
  // Resolve fee rate
@@ -327,9 +319,6 @@ export function registerBitcoinTools(server) {
327
319
  sender: account.btcAddress,
328
320
  network: NETWORK,
329
321
  };
330
- if (testnetWarning) {
331
- response.warning = testnetWarning.trim();
332
- }
333
322
  return createJsonResponse(response);
334
323
  }
335
324
  catch (error) {
@@ -338,10 +327,10 @@ export function registerBitcoinTools(server) {
338
327
  });
339
328
  // Get cardinal UTXOs (safe to spend)
340
329
  server.registerTool("get_cardinal_utxos", {
341
- description: "Get cardinal UTXOs (safe to spend - no inscriptions). " +
342
- "Cardinal UTXOs are regular Bitcoin outputs that do not contain ordinal inscriptions. " +
330
+ description: "Get cardinal UTXOs (safe to spend - no inscriptions or runes). " +
331
+ "Cardinal UTXOs are regular Bitcoin outputs that do not contain ordinal inscriptions or rune balances. " +
343
332
  "These UTXOs can be safely used for regular Bitcoin transfers and fees. " +
344
- "Only available on mainnet (Hiro Ordinals API does not index testnet).",
333
+ "Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.",
345
334
  inputSchema: {
346
335
  address: z
347
336
  .string()
@@ -356,7 +345,7 @@ export function registerBitcoinTools(server) {
356
345
  }, async ({ address, confirmedOnly }) => {
357
346
  try {
358
347
  const btcAddress = await getBtcAddress(address);
359
- const indexer = new OrdinalIndexer(NETWORK);
348
+ const indexer = new UnisatIndexer(NETWORK);
360
349
  let utxos = await indexer.getCardinalUtxos(btcAddress);
361
350
  if (confirmedOnly) {
362
351
  utxos = utxos.filter((u) => u.status.confirmed);
@@ -369,10 +358,6 @@ export function registerBitcoinTools(server) {
369
358
  summary: summarizeUtxos(utxos),
370
359
  explorerUrl: getMempoolAddressUrl(btcAddress, NETWORK),
371
360
  };
372
- if (NETWORK === "testnet") {
373
- response.warning =
374
- "Ordinal indexing not available on testnet. All UTXOs shown as cardinal.";
375
- }
376
361
  return createJsonResponse(response);
377
362
  }
378
363
  catch (error) {
@@ -381,10 +366,9 @@ export function registerBitcoinTools(server) {
381
366
  });
382
367
  // Get ordinal UTXOs (contain inscriptions)
383
368
  server.registerTool("get_ordinal_utxos", {
384
- description: "Get ordinal UTXOs (contain inscriptions - do not spend). " +
385
- "Ordinal UTXOs contain Bitcoin inscriptions and should not be spent in regular transfers. " +
386
- "These UTXOs are valuable as they carry ordinal data (text, images, etc.). " +
387
- "Only available on mainnet (Hiro Ordinals API does not index testnet).",
369
+ description: "Get ordinal UTXOs (contain inscriptions or runes - do not spend). " +
370
+ "Ordinal UTXOs carry inscriptions or rune balances and should not be spent in regular transfers. " +
371
+ "Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.",
388
372
  inputSchema: {
389
373
  address: z
390
374
  .string()
@@ -399,7 +383,7 @@ export function registerBitcoinTools(server) {
399
383
  }, async ({ address, confirmedOnly }) => {
400
384
  try {
401
385
  const btcAddress = await getBtcAddress(address);
402
- const indexer = new OrdinalIndexer(NETWORK);
386
+ const indexer = new UnisatIndexer(NETWORK);
403
387
  let utxos = await indexer.getOrdinalUtxos(btcAddress);
404
388
  if (confirmedOnly) {
405
389
  utxos = utxos.filter((u) => u.status.confirmed);
@@ -412,10 +396,6 @@ export function registerBitcoinTools(server) {
412
396
  summary: summarizeUtxos(utxos),
413
397
  explorerUrl: getMempoolAddressUrl(btcAddress, NETWORK),
414
398
  };
415
- if (NETWORK === "testnet") {
416
- response.warning =
417
- "Ordinal indexing not available on testnet. No inscriptions can be detected.";
418
- }
419
399
  return createJsonResponse(response);
420
400
  }
421
401
  catch (error) {
@@ -426,7 +406,7 @@ export function registerBitcoinTools(server) {
426
406
  server.registerTool("get_inscriptions_by_address", {
427
407
  description: "Get all inscriptions owned by a Bitcoin address. " +
428
408
  "Returns inscription IDs, content types, and metadata. " +
429
- "Only available on mainnet (Hiro Ordinals API does not index testnet).",
409
+ "Backed by the Unisat indexer; set UNISAT_API_KEY to lift free-tier rate limits.",
430
410
  inputSchema: {
431
411
  address: z
432
412
  .string()
@@ -436,22 +416,22 @@ export function registerBitcoinTools(server) {
436
416
  }, async ({ address }) => {
437
417
  try {
438
418
  const btcAddress = await getBtcAddress(address);
439
- const indexer = new OrdinalIndexer(NETWORK);
419
+ const indexer = new UnisatIndexer(NETWORK);
440
420
  const inscriptions = await indexer.getInscriptionsForAddress(btcAddress);
441
421
  // Format inscriptions for response
442
422
  const formattedInscriptions = inscriptions.map((ins) => ({
443
- id: ins.id,
444
- number: ins.number,
445
- contentType: ins.content_type,
446
- contentLength: ins.content_length,
423
+ id: ins.inscriptionId,
424
+ number: ins.inscriptionNumber,
425
+ contentType: ins.contentType,
426
+ contentLength: ins.contentLength,
447
427
  output: ins.output,
448
428
  location: ins.location,
449
429
  offset: ins.offset,
430
+ owner: ins.address,
431
+ outputValue: ins.outputValue,
450
432
  genesis: {
451
- txid: ins.genesis_tx_id,
452
- blockHeight: ins.genesis_block_height,
453
- blockHash: ins.genesis_block_hash,
454
- timestamp: new Date(ins.genesis_timestamp).toISOString(),
433
+ txid: ins.genesisTransaction,
434
+ timestamp: new Date(ins.timestamp * 1000).toISOString(),
455
435
  },
456
436
  }));
457
437
  return createJsonResponse({
@@ -461,7 +441,7 @@ export function registerBitcoinTools(server) {
461
441
  summary: {
462
442
  count: inscriptions.length,
463
443
  contentTypes: [
464
- ...new Set(inscriptions.map((i) => i.content_type)),
444
+ ...new Set(inscriptions.map((i) => i.contentType)),
465
445
  ].sort(),
466
446
  },
467
447
  explorerUrl: getMempoolAddressUrl(btcAddress, NETWORK),
@@ -1 +1 @@
1
- {"version":3,"file":"bitcoin.tools.js","sourceRoot":"","sources":["../../src/tools/bitcoin.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,eAAwB;IACnD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAEnD,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,0DAA0D;QACxD,wDAAwD,CAC3D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,QAAQ,GAAG,WAAW,CAAC;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3B;QACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;QACrC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACvD,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC;SAC3B;QACD,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM;QAC9D,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,6CAA6C;YAC7C,2EAA2E;QAC7E,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,qEAAqE;gBACnE,gDAAgD,CACnD;SACJ;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE7C,yCAAyC;YACzC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC1B,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,MAAM,mBAAmB,GAAG,aAAa,GAAG,iBAAiB,CAAC;YAE9D,OAAO,kBAAkB,CAAC;gBACxB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE;oBACP,QAAQ,EAAE,aAAa;oBACvB,GAAG,EAAE,SAAS,CAAC,aAAa,CAAC;iBAC9B;gBACD,SAAS,EAAE;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC;iBAClC;gBACD,WAAW,EAAE;oBACX,QAAQ,EAAE,mBAAmB;oBAC7B,GAAG,EAAE,SAAS,CAAC,mBAAmB,CAAC;iBACpC;gBACD,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,wEAAwE;YACxE,mFAAmF;KACtF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;YAElD,OAAO,kBAAkB,CAAC;gBACxB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE;oBACJ,IAAI,EAAE;wBACJ,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,MAAM,EAAE,0BAA0B;qBACnC;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK,CAAC,MAAM;wBACtB,MAAM,EAAE,aAAa;qBACtB;oBACD,IAAI,EAAE;wBACJ,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,MAAM,EAAE,SAAS;qBAClB;iBACF;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE,aAAa,CAAC,UAAU;oBAClC,MAAM,EAAE,WAAW;iBACpB;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE,aAAa,CAAC,UAAU;oBAClC,MAAM,EAAE,mBAAmB;iBAC5B;gBACD,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,sEAAsE;YACtE,2EAA2E;QAC7E,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0EAA0E,CAC3E;YACH,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE3C,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,kBAAkB,CAAC;gBACxB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC9B,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,uCAAuC;YACvC,uDAAuD;YACvD,gDAAgD;YAChD,0EAA0E;YAC1E,iFAAiF;QACnF,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,CACP,qEAAqE,CACtE;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC;gBACL,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;aAC5B,CAAC;iBACD,QAAQ,EAAE;iBACV,OAAO,CAAC,QAAQ,CAAC;iBACjB,QAAQ,CACP,qFAAqF,CACtF;YACH,eAAe,EAAE,CAAC;iBACf,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CACP,iFAAiF;gBACjF,kEAAkE,CACnE;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC3E,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;YAEpC,yDAAyD;YACzD,IAAI,KAAa,CAAC;YAClB,IAAI,cAAc,GAAG,EAAE,CAAC;YAExB,IAAI,eAAe,EAAE,CAAC;gBACpB,iCAAiC;gBACjC,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,uDAAuD;gBACvD,mEAAmE;gBACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC/C,cAAc;wBACZ,6EAA6E,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;oBAC5C,KAAK,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,eAAe;oBAC9B,CAAC,CAAC,8BAA8B,OAAO,CAAC,UAAU,EAAE;oBACpD,CAAC,CAAC,2CAA2C,OAAO,CAAC,UAAU,IAAI;wBACjE,wDAAwD;wBACxD,6EAA6E,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAED,mBAAmB;YACnB,IAAI,eAAuB,CAAC;YAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,eAAe,GAAG,OAAO,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;gBACzC,QAAQ,OAAO,EAAE,CAAC;oBAChB,KAAK,MAAM;wBACT,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAChC,MAAM;oBACR,KAAK,MAAM;wBACT,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;wBAChC,MAAM;oBACR,KAAK,QAAQ,CAAC;oBACd;wBACE,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;wBAClC,MAAM;gBACV,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,MAAM,QAAQ,GAAG,0BAA0B,CACzC;gBACE,KAAK;gBACL,SAAS;gBACT,MAAM;gBACN,OAAO,EAAE,eAAe;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,aAAa,EAAE,OAAO,CAAC,UAAU;gBACjC,OAAO,EAAE,OAAO;aACjB,EACD,OAAO,CAAC,aAAa,CACtB,CAAC;YAEF,4BAA4B;YAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC3C,WAAW,EAAE;oBACX,SAAS;oBACT,MAAM,EAAE;wBACN,QAAQ,EAAE,MAAM;wBAChB,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC;qBACvB;oBACD,GAAG,EAAE;wBACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;wBACtB,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAC5B,QAAQ,EAAE,GAAG,eAAe,SAAS;qBACtC;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,QAAQ,CAAC,MAAM;wBACzB,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAChC;oBACD,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe;iBACpD;gBACD,MAAM,EAAE,OAAO,CAAC,UAAU;gBAC1B,OAAO,EAAE,OAAO;aACjB,CAAC;YAEF,IAAI,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YAED,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,wDAAwD;YACxD,uFAAuF;YACvF,yEAAyE;YACzE,uEAAuE;QACzE,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0EAA0E,CAC3E;YACH,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC9B,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC;aACvD,CAAC;YAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,QAAQ,CAAC,OAAO;oBACd,yEAAyE,CAAC;YAC9E,CAAC;YAED,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,2DAA2D;YAC3D,2FAA2F;YAC3F,4EAA4E;YAC5E,uEAAuE;QACzE,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0EAA0E,CAC3E;YACH,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;QACnC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAEtD,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,QAAQ,GAA4B;gBACxC,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC9B,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC;aACvD,CAAC;YAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,QAAQ,CAAC,OAAO;oBACd,6EAA6E,CAAC;YAClF,CAAC;YAED,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,WAAW,EACT,mDAAmD;YACnD,wDAAwD;YACxD,uEAAuE;QACzE,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0EAA0E,CAC3E;SACJ;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAEzE,mCAAmC;YACnC,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvD,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,YAAY;gBAC7B,aAAa,EAAE,GAAG,CAAC,cAAc;gBACjC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE;oBACP,IAAI,EAAE,GAAG,CAAC,aAAa;oBACvB,WAAW,EAAE,GAAG,CAAC,oBAAoB;oBACrC,SAAS,EAAE,GAAG,CAAC,kBAAkB;oBACjC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE;iBACzD;aACF,CAAC,CAAC,CAAC;YAEJ,OAAO,kBAAkB,CAAC;gBACxB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,qBAAqB;gBACnC,OAAO,EAAE;oBACP,KAAK,EAAE,YAAY,CAAC,MAAM;oBAC1B,YAAY,EAAE;wBACZ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;qBACpD,CAAC,IAAI,EAAE;iBACT;gBACD,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bitcoin.tools.js","sourceRoot":"","sources":["../../src/tools/bitcoin.tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2EpE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqIxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4EpE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwIxD"}
@@ -23,6 +23,7 @@ import { registerYieldDashboardTools } from "./yield-dashboard.tools.js";
23
23
  import { registerPillarTools } from "./pillar.tools.js";
24
24
  import { registerPillarDirectTools } from "./pillar-direct.tools.js";
25
25
  import { registerBitcoinTools } from "./bitcoin.tools.js";
26
+ import { registerLightningTools } from "./lightning.tools.js";
26
27
  import { registerMempoolTools } from "./mempool.tools.js";
27
28
  import { registerNostrTools } from "./nostr.tools.js";
28
29
  import { registerRelayDiagnosticTools } from "./relay-diagnostic.tools.js";
@@ -123,6 +124,8 @@ export function registerAllTools(server) {
123
124
  registerPillarDirectTools(server);
124
125
  // Bitcoin L1 (read-only: balance, fees, UTXOs)
125
126
  registerBitcoinTools(server);
127
+ // Lightning Network (L402 auto-pay, Spark-backed wallet)
128
+ registerLightningTools(server);
126
129
  // Mempool Watch (read-only: mempool stats, tx status, address tx history)
127
130
  registerMempoolTools(server);
128
131
  // Nostr protocol (publish notes, read feed, manage profile)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,+DAA+D;AAC/D,6DAA6D;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAiB;IACtC,8DAA8D;IAC9D,MAAM,QAAQ,GAAI,MAAc,CAAC,YAAY,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5E,8DAA8D;IAC7D,MAAc,CAAC,YAAY,GAAG,UAAU,IAAY,EAAE,MAA+B,EAAE,EAAW;QACjG,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,KAA4C,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;YACjG,CAAC,CAAC,MAAM,CAAC;QACX,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,EAAE,CAAC;YACX,8DAA8D;YAC7D,MAAc,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,OAAQ,MAAc,CAAC,YAAY,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElD,mBAAmB;IACnB,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,yDAAyD;IACzD,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAEtC,YAAY;IACZ,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,kBAAkB;IAClB,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO;IACP,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,mBAAmB;IACnB,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,iBAAiB;IACjB,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,iBAAiB;IACjB,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,wDAAwD;IACxD,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElC,iEAAiE;IACjE,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErC,cAAc;IACd,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzB,qBAAqB;IACrB,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,2CAA2C;IAC3C,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,iBAAiB;IACjB,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,iCAAiC;IACjC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,+DAA+D;IAC/D,gCAAgC;IAEhC,2BAA2B;IAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,gDAAgD;IAChD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,0CAA0C;IAC1C,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,+CAA+C;IAC/C,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjC,oEAAoE;IACpE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAEpC,yCAAyC;IACzC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,mDAAmD;IACnD,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElC,+CAA+C;IAC/C,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,0EAA0E;IAC1E,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,4DAA4D;IAC5D,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,6EAA6E;IAC7E,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErC,iEAAiE;IACjE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,0CAA0C;IAC1C,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElC,sFAAsF;IACtF,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,mFAAmF;IACnF,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjC,gFAAgF;IAChF,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAEzC,yEAAyE;IACzE,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErC,uDAAuD;IACvD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,oFAAoF;IACpF,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE7B,sDAAsD;IACtD,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,yDAAyD;IACzD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,4EAA4E;IAC5E,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjC,yFAAyF;IACzF,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhC,2EAA2E;IAC3E,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEnC,oFAAoF;IACpF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,2DAA2D;IAC3D,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,+EAA+E;IAC/E,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEnC,mBAAmB,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Lightning Network (L402) tools.
3
+ *
4
+ * Exposes MCP tools for managing an embedded Spark-backed Lightning wallet,
5
+ * funding it from the user's L1 BTC wallet, and paying / creating Lightning
6
+ * invoices. The L402 interceptor in src/services/x402.service.ts uses the
7
+ * same LightningProvider singleton to auto-pay invoice challenges on 402s.
8
+ */
9
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
+ export declare function registerLightningTools(server: McpServer): void;
11
+ //# sourceMappingURL=lightning.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning.tools.d.ts","sourceRoot":"","sources":["../../src/tools/lightning.tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgZ9D"}
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Lightning Network (L402) tools.
3
+ *
4
+ * Exposes MCP tools for managing an embedded Spark-backed Lightning wallet,
5
+ * funding it from the user's L1 BTC wallet, and paying / creating Lightning
6
+ * invoices. The L402 interceptor in src/services/x402.service.ts uses the
7
+ * same LightningProvider singleton to auto-pay invoice challenges on 402s.
8
+ */
9
+ import { z } from "zod";
10
+ import { createJsonResponse, createErrorResponse } from "../utils/index.js";
11
+ import { getLightningManager } from "../services/lightning-manager.js";
12
+ import { getWalletManager } from "../services/wallet-manager.js";
13
+ import { MempoolApi, getMempoolTxUrl, } from "../services/mempool-api.js";
14
+ import { buildAndSignBtcTransaction } from "../transactions/bitcoin-builder.js";
15
+ import { UnisatIndexer } from "../services/unisat-indexer.js";
16
+ import { NETWORK } from "../config/networks.js";
17
+ export function registerLightningTools(server) {
18
+ // --- Wallet lifecycle -----------------------------------------------------
19
+ server.registerTool("lightning_create", {
20
+ description: "Create a new embedded Lightning wallet backed by the Spark SDK. " +
21
+ "Generates a fresh BIP39 mnemonic (shown once), encrypts it with the " +
22
+ "provided password, and stores it at ~/.aibtc/lightning/keystore.json. " +
23
+ "Returns the deposit address for funding the wallet from L1 BTC.",
24
+ inputSchema: {
25
+ name: z.string().describe("Name for the Lightning wallet (e.g., 'main')"),
26
+ password: z
27
+ .string()
28
+ .min(8)
29
+ .describe("Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value"),
30
+ },
31
+ }, async ({ name, password }) => {
32
+ try {
33
+ const manager = getLightningManager();
34
+ const result = await manager.createWallet(password, name);
35
+ return createJsonResponse({
36
+ success: true,
37
+ message: "Lightning wallet created. Save the mnemonic — it will NOT be shown again.",
38
+ walletId: result.walletId,
39
+ lightningAddress: result.lightningAddress,
40
+ depositAddress: result.depositAddress,
41
+ mnemonic: result.mnemonic,
42
+ network: NETWORK,
43
+ nextSteps: [
44
+ "Save the mnemonic in a secure location.",
45
+ "Use lightning_fund_from_btc to deposit L1 BTC into the wallet, then claim it once confirmed.",
46
+ ],
47
+ });
48
+ }
49
+ catch (error) {
50
+ return createErrorResponse(error);
51
+ }
52
+ });
53
+ server.registerTool("lightning_import", {
54
+ description: "Import an existing Lightning wallet into the embedded Spark-backed " +
55
+ "store from a BIP39 mnemonic phrase. Encrypted locally at " +
56
+ "~/.aibtc/lightning/keystore.json.",
57
+ inputSchema: {
58
+ name: z.string().describe("Name for the Lightning wallet"),
59
+ mnemonic: z
60
+ .string()
61
+ .describe("BIP39 mnemonic phrase - WARNING: sensitive value"),
62
+ password: z
63
+ .string()
64
+ .min(8)
65
+ .describe("Password to protect the Lightning wallet (minimum 8 characters) - WARNING: sensitive value"),
66
+ },
67
+ }, async ({ name, mnemonic, password }) => {
68
+ try {
69
+ const manager = getLightningManager();
70
+ const result = await manager.importWallet(mnemonic, password, name);
71
+ return createJsonResponse({
72
+ success: true,
73
+ message: "Lightning wallet imported.",
74
+ walletId: result.walletId,
75
+ lightningAddress: result.lightningAddress,
76
+ depositAddress: result.depositAddress,
77
+ network: NETWORK,
78
+ });
79
+ }
80
+ catch (error) {
81
+ return createErrorResponse(error);
82
+ }
83
+ });
84
+ server.registerTool("lightning_unlock", {
85
+ description: "Unlock the Lightning wallet for the current session. Required before " +
86
+ "paying or creating invoices, and before the L402 interceptor can " +
87
+ "auto-pay challenges.",
88
+ inputSchema: {
89
+ password: z.string().describe("Wallet password - WARNING: sensitive value"),
90
+ },
91
+ }, async ({ password }) => {
92
+ try {
93
+ const manager = getLightningManager();
94
+ const result = await manager.unlock(password);
95
+ return createJsonResponse({
96
+ success: true,
97
+ message: "Lightning wallet unlocked.",
98
+ walletId: result.walletId,
99
+ lightningAddress: result.lightningAddress,
100
+ balanceSats: result.balanceSats,
101
+ });
102
+ }
103
+ catch (error) {
104
+ return createErrorResponse(error);
105
+ }
106
+ });
107
+ server.registerTool("lightning_lock", {
108
+ description: "Lock the Lightning wallet and drop the Spark session from memory. " +
109
+ "L402 auto-pay will stop working until the wallet is unlocked again.",
110
+ }, async () => {
111
+ try {
112
+ const manager = getLightningManager();
113
+ manager.lock();
114
+ return createJsonResponse({
115
+ success: true,
116
+ message: "Lightning wallet locked.",
117
+ });
118
+ }
119
+ catch (error) {
120
+ return createErrorResponse(error);
121
+ }
122
+ });
123
+ server.registerTool("lightning_status", {
124
+ description: "Get the status of the embedded Lightning wallet: whether it's " +
125
+ "unlocked, its wallet id, current balance (if unlocked), deposit " +
126
+ "address, and optional Lightning address.",
127
+ }, async () => {
128
+ try {
129
+ const manager = getLightningManager();
130
+ const status = await manager.getStatus();
131
+ return createJsonResponse(status);
132
+ }
133
+ catch (error) {
134
+ return createErrorResponse(error);
135
+ }
136
+ });
137
+ // --- L1 → LN funding ------------------------------------------------------
138
+ server.registerTool("lightning_fund_from_btc", {
139
+ description: "Fund the Lightning wallet from the user's L1 BTC wallet. " +
140
+ "Sends BTC to the Spark deposit address and returns the L1 txid. " +
141
+ "After the transaction confirms on-chain, the deposit must be " +
142
+ "claimed to credit the Lightning balance (separate follow-up step; " +
143
+ "not automated in this PR). Requires the main wallet to be unlocked " +
144
+ "AND the Lightning wallet to be unlocked (to fetch the deposit address).",
145
+ inputSchema: {
146
+ amountSats: z
147
+ .number()
148
+ .int()
149
+ .positive()
150
+ .describe("Amount to deposit in satoshis (1 BTC = 100,000,000 satoshis)"),
151
+ feeRate: z
152
+ .union([
153
+ z.enum(["fast", "medium", "slow"]),
154
+ z.number().int().positive(),
155
+ ])
156
+ .optional()
157
+ .default("medium")
158
+ .describe("Fee rate: 'fast' (~10 min), 'medium' (~30 min), 'slow' (~1 hr), or number in sat/vB"),
159
+ },
160
+ }, async ({ amountSats, feeRate }) => {
161
+ try {
162
+ // Lightning wallet must be unlocked so we can fetch a deposit address.
163
+ const ln = getLightningManager();
164
+ const lnProvider = ln.getProvider();
165
+ if (!lnProvider) {
166
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first so we can fetch a deposit address.");
167
+ }
168
+ // L1 BTC wallet must be unlocked for signing.
169
+ const walletManager = getWalletManager();
170
+ const account = walletManager.getActiveAccount();
171
+ if (!account) {
172
+ throw new Error("Wallet is not unlocked. Use wallet_unlock first to enable transactions.");
173
+ }
174
+ if (!account.btcAddress || !account.btcPrivateKey || !account.btcPublicKey) {
175
+ throw new Error("Bitcoin keys not available. Please unlock your wallet again.");
176
+ }
177
+ const depositAddress = await lnProvider.getDepositAddress();
178
+ const api = new MempoolApi(NETWORK);
179
+ // Prefer cardinal UTXOs so we don't burn inscriptions or runes.
180
+ const indexer = new UnisatIndexer(NETWORK);
181
+ const utxos = await indexer.getCardinalUtxos(account.btcAddress);
182
+ if (utxos.length === 0) {
183
+ throw new Error(`No cardinal UTXOs available for address ${account.btcAddress}. ` +
184
+ `Deposit L1 BTC to this address before funding Lightning.`);
185
+ }
186
+ let resolvedFeeRate;
187
+ if (typeof feeRate === "number") {
188
+ resolvedFeeRate = feeRate;
189
+ }
190
+ else {
191
+ const tiers = await api.getFeeTiers();
192
+ resolvedFeeRate =
193
+ feeRate === "fast"
194
+ ? tiers.fast
195
+ : feeRate === "slow"
196
+ ? tiers.slow
197
+ : tiers.medium;
198
+ }
199
+ const txResult = buildAndSignBtcTransaction({
200
+ utxos,
201
+ recipient: depositAddress,
202
+ amount: amountSats,
203
+ feeRate: resolvedFeeRate,
204
+ senderPubKey: account.btcPublicKey,
205
+ senderAddress: account.btcAddress,
206
+ network: NETWORK,
207
+ }, account.btcPrivateKey);
208
+ const txid = await api.broadcastTransaction(txResult.txHex);
209
+ const response = {
210
+ success: true,
211
+ btcTxid: txid,
212
+ amountSats,
213
+ depositAddress,
214
+ explorerUrl: getMempoolTxUrl(txid, NETWORK),
215
+ feeSats: txResult.fee,
216
+ feeRateUsed: `${resolvedFeeRate} sat/vB`,
217
+ estimatedConfirmation: feeRate === "fast"
218
+ ? "~10 minutes"
219
+ : feeRate === "slow"
220
+ ? "~1 hour"
221
+ : "~30 minutes",
222
+ nextStep: "Once this transaction confirms on-chain, the deposit must be claimed " +
223
+ "to credit the Lightning balance. Automatic claim is out of scope for this PR.",
224
+ };
225
+ return createJsonResponse(response);
226
+ }
227
+ catch (error) {
228
+ return createErrorResponse(error);
229
+ }
230
+ });
231
+ server.registerTool("lightning_claim_deposit", {
232
+ description: "Claim a confirmed BTC L1 deposit into the Spark Lightning wallet. " +
233
+ "Call this AFTER lightning_fund_from_btc and after the on-chain " +
234
+ "transaction has 3 confirmations. Fetches a signed quote from the " +
235
+ "SSP, submits the claim, and returns the credited sats + Spark " +
236
+ "transfer id. Requires an unlocked Lightning wallet.",
237
+ inputSchema: {
238
+ transactionId: z
239
+ .string()
240
+ .describe("Bitcoin txid of the deposit transaction"),
241
+ outputIndex: z
242
+ .number()
243
+ .int()
244
+ .nonnegative()
245
+ .optional()
246
+ .describe("Vout index of the deposit output (default: SSP auto-detects)"),
247
+ },
248
+ }, async ({ transactionId, outputIndex }) => {
249
+ try {
250
+ const manager = getLightningManager();
251
+ const provider = manager.getProvider();
252
+ if (!provider) {
253
+ throw new Error("Lightning wallet not unlocked. Run lightning_unlock first.");
254
+ }
255
+ const result = await provider.claimDeposit(transactionId, outputIndex);
256
+ return createJsonResponse({
257
+ success: true,
258
+ ...result,
259
+ });
260
+ }
261
+ catch (error) {
262
+ return createErrorResponse(error);
263
+ }
264
+ });
265
+ // --- Manual Lightning ops -------------------------------------------------
266
+ server.registerTool("lightning_pay_invoice", {
267
+ description: "Pay a BOLT-11 Lightning invoice from the embedded Lightning wallet. " +
268
+ "Returns the payment preimage (proof of payment) and fees paid.",
269
+ inputSchema: {
270
+ bolt11: z
271
+ .string()
272
+ .describe("BOLT-11 encoded Lightning invoice (starts with lnbc... or lntb...)"),
273
+ maxFeeSats: z
274
+ .number()
275
+ .int()
276
+ .nonnegative()
277
+ .optional()
278
+ .describe("Maximum routing fee to pay in sats (provider default applies when omitted)"),
279
+ },
280
+ }, async ({ bolt11, maxFeeSats }) => {
281
+ try {
282
+ const manager = getLightningManager();
283
+ const provider = manager.getProvider();
284
+ if (!provider) {
285
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first.");
286
+ }
287
+ const result = await provider.payInvoice(bolt11, maxFeeSats);
288
+ return createJsonResponse({
289
+ success: true,
290
+ preimage: result.preimage,
291
+ feesPaidSats: result.feesPaid,
292
+ });
293
+ }
294
+ catch (error) {
295
+ return createErrorResponse(error);
296
+ }
297
+ });
298
+ server.registerTool("lightning_create_invoice", {
299
+ description: "Create a BOLT-11 Lightning invoice that can receive a payment into " +
300
+ "the embedded Lightning wallet.",
301
+ inputSchema: {
302
+ amountSats: z
303
+ .number()
304
+ .int()
305
+ .positive()
306
+ .describe("Amount to request in satoshis"),
307
+ memo: z
308
+ .string()
309
+ .optional()
310
+ .describe("Optional description attached to the invoice"),
311
+ },
312
+ }, async ({ amountSats, memo }) => {
313
+ try {
314
+ const manager = getLightningManager();
315
+ const provider = manager.getProvider();
316
+ if (!provider) {
317
+ throw new Error("Lightning wallet is locked. Use lightning_unlock first.");
318
+ }
319
+ const result = await provider.createInvoice(amountSats, memo);
320
+ return createJsonResponse({
321
+ success: true,
322
+ bolt11: result.bolt11,
323
+ paymentHash: result.paymentHash,
324
+ amountSats,
325
+ memo,
326
+ });
327
+ }
328
+ catch (error) {
329
+ return createErrorResponse(error);
330
+ }
331
+ });
332
+ }
333
+ //# sourceMappingURL=lightning.tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning.tools.js","sourceRoot":"","sources":["../../src/tools/lightning.tools.ts"],"names":[],"mappings":"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"}