beignet 0.36.0 → 0.37.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 (153) hide show
  1. package/README.md +13 -6
  2. package/dist/cli/beignet-node.js +1073 -33
  3. package/dist/cli/beignet-node.js.map +1 -1
  4. package/dist/cli/cli.js +149 -42
  5. package/dist/cli/cli.js.map +1 -1
  6. package/dist/cli/daemon.js +93 -14
  7. package/dist/cli/daemon.js.map +1 -1
  8. package/dist/cli/errors.js +10 -0
  9. package/dist/cli/errors.js.map +1 -1
  10. package/dist/cli/offline-receive.js +146 -30
  11. package/dist/cli/offline-receive.js.map +1 -1
  12. package/dist/cli/openapi.js +424 -21
  13. package/dist/cli/openapi.js.map +1 -1
  14. package/dist/cli/receive-steering.js +210 -0
  15. package/dist/cli/receive-steering.js.map +1 -0
  16. package/dist/cli/routes.js +22 -0
  17. package/dist/cli/routes.js.map +1 -1
  18. package/dist/direct-funding/bitcoin-core.js +548 -0
  19. package/dist/direct-funding/bitcoin-core.js.map +1 -0
  20. package/dist/direct-funding/client.js +257 -0
  21. package/dist/direct-funding/client.js.map +1 -0
  22. package/dist/direct-funding/index.js +47 -0
  23. package/dist/direct-funding/index.js.map +1 -0
  24. package/dist/direct-funding/node.js +119 -0
  25. package/dist/direct-funding/node.js.map +1 -0
  26. package/dist/direct-funding/peer-messaging.js +359 -0
  27. package/dist/direct-funding/peer-messaging.js.map +1 -0
  28. package/dist/direct-funding/psbt.js +282 -0
  29. package/dist/direct-funding/psbt.js.map +1 -0
  30. package/dist/direct-funding/transports.js +77 -0
  31. package/dist/direct-funding/transports.js.map +1 -0
  32. package/dist/lightning/chain/hashes.js +13 -0
  33. package/dist/lightning/chain/hashes.js.map +1 -0
  34. package/dist/lightning/channel/channel-actions.js +1 -0
  35. package/dist/lightning/channel/channel-actions.js.map +1 -1
  36. package/dist/lightning/channel/channel-manager.js +132 -12
  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 +471 -29
  40. package/dist/lightning/channel/channel.js.map +1 -1
  41. package/dist/lightning/channel/composite-splice-record.js +140 -0
  42. package/dist/lightning/channel/composite-splice-record.js.map +1 -0
  43. package/dist/lightning/channel/index.js +1 -0
  44. package/dist/lightning/channel/index.js.map +1 -1
  45. package/dist/lightning/channel/splice-weight.js +2 -0
  46. package/dist/lightning/channel/splice-weight.js.map +1 -1
  47. package/dist/lightning/channel/types.js +5 -8
  48. package/dist/lightning/channel/types.js.map +1 -1
  49. package/dist/lightning/direct-funding/receiver/engine.js +5 -2
  50. package/dist/lightning/direct-funding/receiver/engine.js.map +1 -1
  51. package/dist/lightning/direct-funding/receiver/types.js.map +1 -1
  52. package/dist/lightning/direct-funding/requests.js +20 -1
  53. package/dist/lightning/direct-funding/requests.js.map +1 -1
  54. package/dist/lightning/direct-funding/sender/engine.js +25 -2
  55. package/dist/lightning/direct-funding/sender/engine.js.map +1 -1
  56. package/dist/lightning/direct-funding/types.js +5 -5
  57. package/dist/lightning/direct-funding/types.js.map +1 -1
  58. package/dist/lightning/features/flags.js +16 -2
  59. package/dist/lightning/features/flags.js.map +1 -1
  60. package/dist/lightning/gossip/network-graph.js +30 -9
  61. package/dist/lightning/gossip/network-graph.js.map +1 -1
  62. package/dist/lightning/gossip/pathfinding.js +117 -2
  63. package/dist/lightning/gossip/pathfinding.js.map +1 -1
  64. package/dist/lightning/gossip/types.js +3 -1
  65. package/dist/lightning/gossip/types.js.map +1 -1
  66. package/dist/lightning/liquidity/index.js +10 -1
  67. package/dist/lightning/liquidity/index.js.map +1 -1
  68. package/dist/lightning/liquidity/primaries.js +274 -0
  69. package/dist/lightning/liquidity/primaries.js.map +1 -0
  70. package/dist/lightning/node/composite-splice-engine.js +1278 -0
  71. package/dist/lightning/node/composite-splice-engine.js.map +1 -0
  72. package/dist/lightning/node/index.js +1 -0
  73. package/dist/lightning/node/index.js.map +1 -1
  74. package/dist/lightning/node/lightning-node.js +412 -45
  75. package/dist/lightning/node/lightning-node.js.map +1 -1
  76. package/dist/lightning/node/types.js.map +1 -1
  77. package/dist/lightning/recovery/capsule.js +30 -0
  78. package/dist/lightning/recovery/capsule.js.map +1 -1
  79. package/dist/lightning/recovery/frame-codec.js +78 -16
  80. package/dist/lightning/recovery/frame-codec.js.map +1 -1
  81. package/dist/lightning/recovery/guardian-replication.js +92 -21
  82. package/dist/lightning/recovery/guardian-replication.js.map +1 -1
  83. package/dist/lightning/recovery/journal.js +85 -7
  84. package/dist/lightning/recovery/journal.js.map +1 -1
  85. package/dist/lightning/recovery/recovery-manager.js +5 -0
  86. package/dist/lightning/recovery/recovery-manager.js.map +1 -1
  87. package/dist/lightning/recovery/types.js.map +1 -1
  88. package/dist/lightning/storage/add-onion.js +63 -0
  89. package/dist/lightning/storage/add-onion.js.map +1 -0
  90. package/dist/lightning/storage/capabilities.js +6 -0
  91. package/dist/lightning/storage/capabilities.js.map +1 -1
  92. package/dist/lightning/storage/conformance.js +64 -0
  93. package/dist/lightning/storage/conformance.js.map +1 -1
  94. package/dist/lightning/storage/memory-storage.js +26 -0
  95. package/dist/lightning/storage/memory-storage.js.map +1 -1
  96. package/dist/lightning/storage/serialization.js +22 -5
  97. package/dist/lightning/storage/serialization.js.map +1 -1
  98. package/dist/lightning/storage/sqlite-storage.js +37 -1
  99. package/dist/lightning/storage/sqlite-storage.js.map +1 -1
  100. package/dist/lightning/storage/types.js.map +1 -1
  101. package/dist/types/cli/beignet-node.d.ts +272 -15
  102. package/dist/types/cli/errors.d.ts +7 -0
  103. package/dist/types/cli/offline-receive.d.ts +55 -9
  104. package/dist/types/cli/receive-steering.d.ts +135 -0
  105. package/dist/types/cli/routes.d.ts +41 -0
  106. package/dist/types/cli/types.d.ts +164 -3
  107. package/dist/types/direct-funding/bitcoin-core.d.ts +78 -0
  108. package/dist/types/direct-funding/client.d.ts +64 -0
  109. package/dist/types/direct-funding/index.d.ts +18 -0
  110. package/dist/types/direct-funding/node.d.ts +22 -0
  111. package/dist/types/direct-funding/peer-messaging.d.ts +74 -0
  112. package/dist/types/direct-funding/psbt.d.ts +27 -0
  113. package/dist/types/direct-funding/transports.d.ts +14 -0
  114. package/dist/types/lightning/chain/hashes.d.ts +11 -0
  115. package/dist/types/lightning/channel/channel-actions.d.ts +19 -2
  116. package/dist/types/lightning/channel/channel-manager.d.ts +37 -1
  117. package/dist/types/lightning/channel/channel-state.d.ts +21 -0
  118. package/dist/types/lightning/channel/channel.d.ts +106 -1
  119. package/dist/types/lightning/channel/composite-splice-record.d.ts +91 -0
  120. package/dist/types/lightning/channel/events.d.ts +9 -0
  121. package/dist/types/lightning/channel/index.d.ts +1 -0
  122. package/dist/types/lightning/channel/splice-weight.d.ts +13 -0
  123. package/dist/types/lightning/channel/types.d.ts +1 -8
  124. package/dist/types/lightning/direct-funding/receiver/types.d.ts +4 -1
  125. package/dist/types/lightning/direct-funding/requests.d.ts +1 -0
  126. package/dist/types/lightning/direct-funding/sender/engine.d.ts +11 -0
  127. package/dist/types/lightning/direct-funding/types.d.ts +9 -0
  128. package/dist/types/lightning/features/flags.d.ts +13 -1
  129. package/dist/types/lightning/gossip/network-graph.d.ts +8 -6
  130. package/dist/types/lightning/gossip/pathfinding.d.ts +8 -0
  131. package/dist/types/lightning/gossip/types.d.ts +2 -0
  132. package/dist/types/lightning/liquidity/index.d.ts +2 -0
  133. package/dist/types/lightning/liquidity/primaries.d.ts +127 -0
  134. package/dist/types/lightning/node/composite-splice-engine.d.ts +258 -0
  135. package/dist/types/lightning/node/events.d.ts +19 -1
  136. package/dist/types/lightning/node/index.d.ts +1 -0
  137. package/dist/types/lightning/node/lightning-node.d.ts +138 -4
  138. package/dist/types/lightning/node/types.d.ts +4 -1
  139. package/dist/types/lightning/recovery/capsule.d.ts +0 -10
  140. package/dist/types/lightning/recovery/guardian-replication.d.ts +32 -5
  141. package/dist/types/lightning/recovery/journal.d.ts +19 -0
  142. package/dist/types/lightning/recovery/types.d.ts +11 -1
  143. package/dist/types/lightning/storage/add-onion.d.ts +18 -0
  144. package/dist/types/lightning/storage/memory-storage.d.ts +7 -0
  145. package/dist/types/lightning/storage/serialization.d.ts +14 -0
  146. package/dist/types/lightning/storage/sqlite-storage.d.ts +6 -1
  147. package/dist/types/lightning/storage/types.d.ts +17 -1
  148. package/docs/AUTOMATIC-OFFLINE-RECEIVE.md +33 -9
  149. package/docs/MPP-SENDING.md +30 -0
  150. package/docs/MULTI-CHANNEL-SPLICE-OUT.md +622 -0
  151. package/docs/README.md +3 -0
  152. package/docs/RECOVERY-PROTOCOL.md +4 -1
  153. package/package.json +20 -4
package/README.md CHANGED
@@ -37,6 +37,8 @@ console.log(wallet.getBalance());
37
37
 
38
38
  From here: [the on-chain wallet](#on-chain-wallet) for sending, PSBTs, multisig and watch-only, or [Lightning](#lightning) for channels and payments.
39
39
 
40
+ For adding `bgnq` direct-funding payments to another wallet, see the [standalone TypeScript payer SDK](packages/direct-funding/README.md). It includes a PSBT signing adapter, Bitcoin Core integration, and a channel-free peer client.
41
+
40
42
  ## Try the examples
41
43
 
42
44
  The fastest way to understand the whole system is to run the two REPL examples against a live wallet and a live node. Both are checked-in TypeScript you can read and edit.
@@ -686,23 +688,29 @@ semicolon rule retained for JavaScript. Typed promise checks remain enabled for
686
688
  every TypeScript file.
687
689
 
688
690
  ```bash
689
- npm run test:local # test:lightning + test:cli at once; no infrastructure needed
691
+ npm test # same as test:local
692
+ npm run test:local # build, then test:lightning + test:cli at once; no infrastructure needed
690
693
  npm run coverage # test:local under c8, with a coverage summary of src
691
694
  npm run test:lightning # 9500+ Lightning unit tests (parallel), no infrastructure needed
692
- npm run test:cli # 2200+ CLI + daemon unit tests (parallel), no infrastructure needed
695
+ npm run test:cli # 2400+ CLI + daemon unit tests (parallel), no infrastructure needed; run npm run build first
693
696
  npm run test:conformance # 300+ official BOLT vector cases (subset of test:lightning)
694
697
  npm run test:chaos # recovery kill matrices (parallel), split out of test:lightning
695
698
  npm run test:sigkill # process-level SIGKILL chaos matrix (builds dist first)
696
699
  npm run test:api # exported API vs tests/api-snapshot (npm run api:snapshot regenerates it)
700
+ npm run test:direct-funding # standalone payer SDK, wallet adapters and packaging
701
+ npm run test:direct-funding:regtest # real Core wallets and funding transactions (needs Docker)
697
702
  npm run test:integration # daemon/Electrum integration (needs an Electrum server)
698
703
  npm run test:interop # 300+ cases vs LND/CLN/Eclair (needs Docker)
699
704
  npm run test:interop:ffor # FFOR Variant D chain gates on regtest (needs only the bitcoind container)
700
705
  npm run test:interop:ffor-concurrent # Concurrent receive process, durable boundary and current-chain qualification (bitcoind regtest)
701
- npm run test:all # Lightning + CLI + interop (needs Docker + Electrum)
702
706
  ```
703
707
 
704
708
  Counts are floors, not snapshots, and this is the only place they are kept. Run the suites for exact numbers (`npx mocha --dry-run` with a suite's arguments counts without running).
705
709
 
710
+ `test:cli` spawns the built `dist/cli/cli.js`, so its spawn tests fail with a
711
+ message to run `npm run build` when `dist/` is missing or older than `src/`.
712
+ `test:local` builds first.
713
+
706
714
  `test:local` is the fast inner loop. `test:lightning` and `test:cli` are
707
715
  independent processes and neither saturates the machine alone, so running them at
708
716
  once beats running them in sequence. Measured on 8 cores: 195.6s in sequence
@@ -719,8 +727,8 @@ the same suite passes 30/30 on its own. Run it separately. See
719
727
 
720
728
  `npm run coverage` prints a line, branch and function summary for `src`, and
721
729
  writes per-file numbers to `coverage/coverage-summary.json` and per-line hits to
722
- `coverage/lcov.info`. CI prints a summary per suite at the end of its
723
- `test:lightning` and `test:cli` steps. The numbers are information, not a gate:
730
+ `coverage/lcov.info`. On master pushes, CI prints a summary at the end of each
731
+ lightning shard and of its `test:cli` step; pull request runs skip c8. The numbers are information, not a gate:
724
732
  no threshold is set, and nothing fails on a percentage. A file the run never
725
733
  loads counts as wholly uncovered. Two runs of the same tree can differ by a few
726
734
  covered lines, because tests with random keys reach different branches. c8 also
@@ -733,7 +741,6 @@ rather than on your change. Each script runs `npm run build` first:
733
741
  ```bash
734
742
  npm run test:wallet # also test:transaction, test:electrum, test:storage,
735
743
  # test:derivation, test:receive, test:boost
736
- npm test # everything: build, on-chain, Lightning, CLI, interop
737
744
  ```
738
745
 
739
746
  The on-chain files without a dedicated script (multisig, PSBT, watch-only,