beignet 0.6.8 → 0.7.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 (37) hide show
  1. package/dist/cli/beignet-node.js +32 -4
  2. package/dist/cli/beignet-node.js.map +1 -1
  3. package/dist/cli/cli.js +6 -0
  4. package/dist/cli/cli.js.map +1 -1
  5. package/dist/cli/config.js +5 -0
  6. package/dist/cli/config.js.map +1 -1
  7. package/dist/cli/daemon.js.map +1 -1
  8. package/dist/lightning/advisor/liquidity-advisor.js +1 -1
  9. package/dist/lightning/advisor/liquidity-advisor.js.map +1 -1
  10. package/dist/lightning/chain/electrum-backend.js.map +1 -1
  11. package/dist/lightning/channel/channel-manager.js +158 -19
  12. package/dist/lightning/channel/channel-manager.js.map +1 -1
  13. package/dist/lightning/channel/channel.js +67 -9
  14. package/dist/lightning/channel/channel.js.map +1 -1
  15. package/dist/lightning/channel/types.js.map +1 -1
  16. package/dist/lightning/crypto/chacha20poly1305.js.map +1 -1
  17. package/dist/lightning/gossip/pathfinding.js +3 -1
  18. package/dist/lightning/gossip/pathfinding.js.map +1 -1
  19. package/dist/lightning/node/lightning-node.js +411 -102
  20. package/dist/lightning/node/lightning-node.js.map +1 -1
  21. package/dist/lightning/node/types.js.map +1 -1
  22. package/dist/lightning/storage/serialization.js +8 -0
  23. package/dist/lightning/storage/serialization.js.map +1 -1
  24. package/dist/lightning/storage/sqlite-storage.js.map +1 -1
  25. package/dist/lightning/transport/noise.js.map +1 -1
  26. package/dist/lightning/wallet/wallet-funding-provider.js +5 -5
  27. package/dist/lightning/wallet/wallet-funding-provider.js.map +1 -1
  28. package/dist/types/cli/beignet-node.d.ts +1 -0
  29. package/dist/types/cli/types.d.ts +1 -0
  30. package/dist/types/lightning/advisor/liquidity-advisor.d.ts +1 -0
  31. package/dist/types/lightning/channel/channel-manager.d.ts +7 -1
  32. package/dist/types/lightning/channel/channel.d.ts +2 -0
  33. package/dist/types/lightning/channel/types.d.ts +1 -0
  34. package/dist/types/lightning/node/lightning-node.d.ts +15 -1
  35. package/dist/types/lightning/node/types.d.ts +10 -1
  36. package/dist/types/lightning/storage/serialization.d.ts +2 -0
  37. package/package.json +1 -1
@@ -391,6 +391,7 @@ class BeignetNode extends events_1.EventEmitter {
391
391
  enableNetworking: true,
392
392
  autoReconnect: opts.autoReconnect ?? true,
393
393
  autoUpdateChannelFees: opts.autoUpdateChannelFees ?? false,
394
+ forwardingEnabled: opts.forwardingEnabled ?? true,
394
395
  localFeatures: lightning_node_1.LightningNode.defaultFeatures(),
395
396
  chainHashes: [chainHash],
396
397
  alias: opts.alias,
@@ -449,6 +450,7 @@ class BeignetNode extends events_1.EventEmitter {
449
450
  this.log('warn', 'Payment failed', {
450
451
  paymentHash: pi.paymentHash,
451
452
  failureCode: pi.failureCode,
453
+ ...(info.failureReason ? { reason: info.failureReason } : {}),
452
454
  ...this.describeFailureSource(info)
453
455
  });
454
456
  this.emit('payment:failed', pi);
@@ -511,7 +513,22 @@ class BeignetNode extends events_1.EventEmitter {
511
513
  });
512
514
  this.emit('invoice:settled', info);
513
515
  });
516
+ this.node.on('htlc:forward', (inChannelId, outChannelId, amountMsat, paymentHash) => {
517
+ this.log('info', 'HTLC forward', {
518
+ paymentHash: paymentHash.toString('hex'),
519
+ inChannelId: inChannelId.toString('hex'),
520
+ outChannelId: outChannelId.toString('hex'),
521
+ amountSats: (amountMsat / 1000n).toString()
522
+ });
523
+ });
514
524
  this.node.on('htlc:forwarded', (data) => {
525
+ this.log('info', 'HTLC forwarded', {
526
+ inChannelId: data.inChannelId.toString('hex'),
527
+ outChannelId: data.outChannelId.toString('hex'),
528
+ amountInSats: (data.amountInMsat / 1000n).toString(),
529
+ amountOutSats: (data.amountOutMsat / 1000n).toString(),
530
+ feeMsat: data.feeMsat.toString()
531
+ });
515
532
  this.emit('htlc:forwarded', {
516
533
  inChannelId: data.inChannelId.toString('hex'),
517
534
  outChannelId: data.outChannelId.toString('hex'),
@@ -520,6 +537,12 @@ class BeignetNode extends events_1.EventEmitter {
520
537
  feeMsat: data.feeMsat.toString()
521
538
  });
522
539
  });
540
+ this.node.on('htlc:forward-failed', (data) => {
541
+ this.log('info', 'HTLC forward failed', {
542
+ inChannelId: data.inChannelId.toString('hex'),
543
+ outChannelId: data.outChannelId.toString('hex')
544
+ });
545
+ });
523
546
  this.node.on('htlc:fulfilled', (data) => {
524
547
  this.emit('htlc:fulfilled', {
525
548
  channelId: data.channelId.toString('hex'),
@@ -2433,6 +2456,9 @@ class BeignetNode extends events_1.EventEmitter {
2433
2456
  info.failureCode = p.failureCode;
2434
2457
  info.failureDescription = (0, errors_1.describeFailureCode)(p.failureCode);
2435
2458
  }
2459
+ else if (p.failureReason) {
2460
+ info.failureDescription = p.failureReason;
2461
+ }
2436
2462
  if (p.route?.totalFeeMsat !== undefined) {
2437
2463
  info.feeSats = Number(p.route.totalFeeMsat / 1000n);
2438
2464
  }
@@ -2873,14 +2899,16 @@ class BeignetNode extends events_1.EventEmitter {
2873
2899
  let reserveMsat = 0n;
2874
2900
  let sendableMsat = 0n;
2875
2901
  for (const ch of this.node.listChannels()) {
2876
- if (ch.state !== types_3.ChannelState.NORMAL)
2902
+ if (ch.state !== types_3.ChannelState.NORMAL && !ch.htlcUsable)
2877
2903
  continue;
2878
2904
  const chReserveMsat = ch.localReserveMsat ?? 0n;
2879
2905
  reserveMsat += chReserveMsat;
2906
+ const effLocalMsat = ch.pendingSpliceLocalBalanceMsat !== undefined &&
2907
+ ch.pendingSpliceLocalBalanceMsat < ch.localBalanceMsat
2908
+ ? ch.pendingSpliceLocalBalanceMsat
2909
+ : ch.localBalanceMsat;
2880
2910
  sendableMsat +=
2881
- ch.localBalanceMsat > chReserveMsat
2882
- ? ch.localBalanceMsat - chReserveMsat
2883
- : 0n;
2911
+ effLocalMsat > chReserveMsat ? effLocalMsat - chReserveMsat : 0n;
2884
2912
  }
2885
2913
  return {
2886
2914
  totalLocalBalanceSats: snapshot.totalLocalBalanceSats,