beignet 0.19.4 → 0.20.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 (38) hide show
  1. package/README.md +4 -0
  2. package/dist/cli/beignet-node.js +17 -4
  3. package/dist/cli/beignet-node.js.map +1 -1
  4. package/dist/cli/cli.js +7 -4
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/cli/daemon.js +30 -8
  7. package/dist/cli/daemon.js.map +1 -1
  8. package/dist/cli/openapi.js +25 -6
  9. package/dist/cli/openapi.js.map +1 -1
  10. package/dist/electrum/index.js +34 -1
  11. package/dist/electrum/index.js.map +1 -1
  12. package/dist/lightning/channel/channel.js +13 -0
  13. package/dist/lightning/channel/channel.js.map +1 -1
  14. package/dist/lightning/direct-funding/sender/engine.js +49 -7
  15. package/dist/lightning/direct-funding/sender/engine.js.map +1 -1
  16. package/dist/lightning/direct-funding/transport/onion.js +8 -1
  17. package/dist/lightning/direct-funding/transport/onion.js.map +1 -1
  18. package/dist/lightning/direct-funding/transport/registry.js +9 -1
  19. package/dist/lightning/direct-funding/transport/registry.js.map +1 -1
  20. package/dist/lightning/node/lightning-node.js +52 -15
  21. package/dist/lightning/node/lightning-node.js.map +1 -1
  22. package/dist/lightning/node/types.js.map +1 -1
  23. package/dist/lightning/storage/sqlite-storage.js +4 -2
  24. package/dist/lightning/storage/sqlite-storage.js.map +1 -1
  25. package/dist/types/cli/beignet-node.d.ts +1 -0
  26. package/dist/types/cli/types.d.ts +8 -0
  27. package/dist/types/lightning/direct-funding/sender/engine.d.ts +2 -0
  28. package/dist/types/lightning/node/lightning-node.d.ts +6 -0
  29. package/dist/types/lightning/node/types.d.ts +8 -0
  30. package/dist/types/lightning/storage/types.d.ts +1 -0
  31. package/dist/types/wallet/constants.d.ts +1 -0
  32. package/dist/types/wallet/index.d.ts +5 -1
  33. package/dist/wallet/constants.js +2 -1
  34. package/dist/wallet/constants.js.map +1 -1
  35. package/dist/wallet/index.js +47 -7
  36. package/dist/wallet/index.js.map +1 -1
  37. package/docs/AI_AGENT_GUIDE.md +4 -0
  38. package/package.json +2 -1
package/README.md CHANGED
@@ -711,6 +711,10 @@ Services in `docker/docker-compose.yml`:
711
711
  | eclair | 0.14.1, built locally from the release zip (`docker/eclair/Dockerfile`) | HTTP API 8082 |
712
712
  | electrs | `getumbrel/electrs:v0.10.10` | Electrum 60001 |
713
713
 
714
+ The LND helpers read `LND_REST_HOST` / `LND_REST_PORT` (default `127.0.0.1:8081`) and `LND_P2P_HOST` / `LND_P2P_PORT` (default `127.0.0.1:9735`); the dedicated taproot container reads `LND_TAPROOT_REST_HOST` / `LND_TAPROOT_REST_PORT` (default `127.0.0.1:8082`) and `LND_TAPROOT_P2P_HOST` / `LND_TAPROOT_P2P_PORT` (default `127.0.0.1:9736`). Point them at whatever your `docker/docker-compose.override.yml` publishes, for example `LND_REST_PORT=8091 npm run test:interop`.
715
+
716
+ An LND suite that has no usable counterparty skips itself and prints one line naming the suite, the endpoint it probed and the variables that move it (`[skip] lnd-jit-receive: LND REST not reachable at 127.0.0.1:8081 (set LND_REST_PORT / LND_REST_HOST)`, or `... LND reachable but macaroon read failed (docker exec lnd ...)`). A skip is invisible in a passing summary, so for a pre-release gate set `INTEROP_REQUIRE_LND=1` (and `INTEROP_REQUIRE_LND_TAPROOT=1` for the taproot suites): the same condition then fails the suite with that reason instead of skipping it.
717
+
714
718
  Covered per implementation: BOLT 8 handshake and BOLT 1 init/feature negotiation, disconnect/reconnect and ping/pong survival, channel open in both directions, bidirectional payments and payment_secret validation, MPP, SCID aliases, cooperative close, reestablish, gossip sync, inbound connections, anchor channels, anchor force-close with wallet-funded CPFP and HTLC-timeout fee-attach, and crash recovery. Beyond the shared matrix: taproot channel lifecycle vs LND (open, pay both directions, reestablish, coop and force close, penalty, SCB recovery), splice matrix and lease/liquidity-ads flows vs CLN, `simple_close` vs Eclair, blinded-path payments, and the watchtower client vs an LND tower.
715
719
 
716
720
  Interop tests are excluded from `npm run test:lightning`.
@@ -437,7 +437,11 @@ function holdInvoiceEvent(e) {
437
437
  paymentHash: e.paymentHash.toString('hex'),
438
438
  state: e.state,
439
439
  heldAmountMsat: e.heldAmountMsat.toString(),
440
- htlcCount: e.htlcCount
440
+ htlcCount: e.htlcCount,
441
+ minFinalCltvExpiry: e.minFinalCltvExpiry,
442
+ earliestExpiry: e.earliestExpiry,
443
+ cancelMarginBlocks: e.cancelMarginBlocks,
444
+ cancelHeight: e.cancelHeight
441
445
  };
442
446
  }
443
447
  exports.holdInvoiceEvent = holdInvoiceEvent;
@@ -1245,7 +1249,11 @@ class BeignetNode extends events_1.EventEmitter {
1245
1249
  paymentHash: e.paymentHash,
1246
1250
  state: 'CANCELLED',
1247
1251
  heldAmountMsat: e.heldAmountMsat,
1248
- htlcCount: e.htlcsFailed
1252
+ htlcCount: e.htlcsFailed,
1253
+ minFinalCltvExpiry: e.minFinalCltvExpiry,
1254
+ earliestExpiry: e.earliestExpiry,
1255
+ cancelMarginBlocks: e.cancelMarginBlocks,
1256
+ cancelHeight: e.cancelHeight
1249
1257
  }),
1250
1258
  reason: e.reason
1251
1259
  });
@@ -4518,7 +4526,8 @@ class BeignetNode extends events_1.EventEmitter {
4518
4526
  ? {
4519
4527
  maxTotalFeeSat: BigInt(requireNonNegativeSafeInteger(ceiling, 'maxTotalFeeSat'))
4520
4528
  }
4521
- : {})
4529
+ : {}),
4530
+ ...(opts.recoverReceipt === true ? { recoverReceipt: true } : {})
4522
4531
  };
4523
4532
  const replay = sender.isReplay(opts.request);
4524
4533
  let costSats = 0;
@@ -4638,7 +4647,11 @@ class BeignetNode extends events_1.EventEmitter {
4638
4647
  heldAmountMsat: inv.heldAmountMsat.toString(),
4639
4648
  htlcCount: inv.htlcCount,
4640
4649
  expiry: inv.expiry,
4641
- createdAt: inv.createdAt
4650
+ createdAt: inv.createdAt,
4651
+ minFinalCltvExpiry: inv.minFinalCltvExpiry,
4652
+ earliestExpiry: inv.earliestExpiry,
4653
+ cancelMarginBlocks: inv.cancelMarginBlocks,
4654
+ cancelHeight: inv.cancelHeight
4642
4655
  };
4643
4656
  if (inv.amountMsat !== undefined) {
4644
4657
  info.amountSats = Number(inv.amountMsat / 1000n);