beignet 0.24.1 → 0.25.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.
- package/README.md +17 -2
- package/dist/cli/auth.js +1 -0
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/beignet-node.js +281 -37
- package/dist/cli/beignet-node.js.map +1 -1
- package/dist/cli/cli.js +1 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/config.js +16 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/daemon-options.js +2 -0
- package/dist/cli/daemon-options.js.map +1 -1
- package/dist/cli/daemon.js +13 -2
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/direct-funding.js +8 -4
- package/dist/cli/direct-funding.js.map +1 -1
- package/dist/cli/ffor-receive.js +5 -1
- package/dist/cli/ffor-receive.js.map +1 -1
- package/dist/cli/offline-receive.js +103 -19
- package/dist/cli/offline-receive.js.map +1 -1
- package/dist/cli/openapi.js +84 -14
- package/dist/cli/openapi.js.map +1 -1
- package/dist/lightning/chain/broadcast-rejection.js +9 -0
- package/dist/lightning/chain/broadcast-rejection.js.map +1 -0
- package/dist/lightning/chain/chain-monitor.js +29 -0
- package/dist/lightning/chain/chain-monitor.js.map +1 -1
- package/dist/lightning/chain/chain-watcher.js +21 -8
- package/dist/lightning/chain/chain-watcher.js.map +1 -1
- package/dist/lightning/chain/output-resolver.js +29 -8
- package/dist/lightning/chain/output-resolver.js.map +1 -1
- package/dist/lightning/chain/types.js.map +1 -1
- package/dist/lightning/channel/channel-actions.js +3 -2
- package/dist/lightning/channel/channel-actions.js.map +1 -1
- package/dist/lightning/channel/channel-manager.js +103 -16
- package/dist/lightning/channel/channel-manager.js.map +1 -1
- package/dist/lightning/channel/channel-state.js.map +1 -1
- package/dist/lightning/channel/channel.js +1288 -110
- package/dist/lightning/channel/channel.js.map +1 -1
- package/dist/lightning/channel/commitment-builder.js +53 -26
- package/dist/lightning/channel/commitment-builder.js.map +1 -1
- package/dist/lightning/channel/types.js.map +1 -1
- package/dist/lightning/features/flags.js +7 -0
- package/dist/lightning/features/flags.js.map +1 -1
- package/dist/lightning/ffor/messages.js +165 -2
- package/dist/lightning/ffor/messages.js.map +1 -1
- package/dist/lightning/ffor/sync-state.js +75 -0
- package/dist/lightning/ffor/sync-state.js.map +1 -0
- package/dist/lightning/ffor/types.js +11 -1
- package/dist/lightning/ffor/types.js.map +1 -1
- package/dist/lightning/ffor/voucher-archive.js +204 -0
- package/dist/lightning/ffor/voucher-archive.js.map +1 -0
- package/dist/lightning/ffor/voucher-chain.js +75 -0
- package/dist/lightning/ffor/voucher-chain.js.map +1 -0
- package/dist/lightning/ffor/voucher-index.js +44 -0
- package/dist/lightning/ffor/voucher-index.js.map +1 -0
- package/dist/lightning/gossip/gossip-sync.js +49 -5
- package/dist/lightning/gossip/gossip-sync.js.map +1 -1
- package/dist/lightning/message/types.js +2 -0
- package/dist/lightning/message/types.js.map +1 -1
- package/dist/lightning/node/lightning-node.js +686 -72
- package/dist/lightning/node/lightning-node.js.map +1 -1
- package/dist/lightning/node/types.js.map +1 -1
- package/dist/lightning/recovery/capsule.js +18 -1
- package/dist/lightning/recovery/capsule.js.map +1 -1
- package/dist/lightning/recovery/frame-codec.js +53 -9
- package/dist/lightning/recovery/frame-codec.js.map +1 -1
- package/dist/lightning/recovery/guardian-client.js +4 -2
- package/dist/lightning/recovery/guardian-client.js.map +1 -1
- package/dist/lightning/recovery/guardian-proto.js +26 -2
- package/dist/lightning/recovery/guardian-proto.js.map +1 -1
- package/dist/lightning/recovery/guardian-rotation.js +93 -6
- package/dist/lightning/recovery/guardian-rotation.js.map +1 -1
- package/dist/lightning/recovery/guardian.js +241 -95
- package/dist/lightning/recovery/guardian.js.map +1 -1
- package/dist/lightning/recovery/journal.js +118 -22
- package/dist/lightning/recovery/journal.js.map +1 -1
- package/dist/lightning/recovery/recovery-manager.js +5 -0
- package/dist/lightning/recovery/recovery-manager.js.map +1 -1
- package/dist/lightning/recovery/restore-driver.js +136 -17
- package/dist/lightning/recovery/restore-driver.js.map +1 -1
- package/dist/lightning/recovery/types.js.map +1 -1
- package/dist/lightning/storage/htlc-history.js +114 -0
- package/dist/lightning/storage/htlc-history.js.map +1 -0
- package/dist/lightning/storage/serialization.js +160 -11
- package/dist/lightning/storage/serialization.js.map +1 -1
- package/dist/lightning/storage/sqlite-storage.js +38 -1
- package/dist/lightning/storage/sqlite-storage.js.map +1 -1
- package/dist/lightning/storage/types.js.map +1 -1
- package/dist/lightning/transport/peer.js +16 -3
- package/dist/lightning/transport/peer.js.map +1 -1
- package/dist/lightning/wallet/wallet-funding-provider.js +13 -6
- package/dist/lightning/wallet/wallet-funding-provider.js.map +1 -1
- package/dist/types/cli/beignet-node.d.ts +23 -1
- package/dist/types/cli/direct-funding.d.ts +1 -1
- package/dist/types/cli/ffor-receive.d.ts +2 -1
- package/dist/types/cli/offline-receive.d.ts +7 -1
- package/dist/types/cli/types.d.ts +19 -0
- package/dist/types/lightning/chain/broadcast-rejection.d.ts +1 -0
- package/dist/types/lightning/chain/chain-watcher.d.ts +1 -0
- package/dist/types/lightning/chain/types.d.ts +4 -0
- package/dist/types/lightning/channel/channel-actions.d.ts +1 -1
- package/dist/types/lightning/channel/channel-manager.d.ts +12 -0
- package/dist/types/lightning/channel/channel-state.d.ts +3 -0
- package/dist/types/lightning/channel/channel.d.ts +49 -1
- package/dist/types/lightning/features/flags.d.ts +2 -1
- package/dist/types/lightning/ffor/messages.d.ts +12 -1
- package/dist/types/lightning/ffor/sync-state.d.ts +2 -0
- package/dist/types/lightning/ffor/types.d.ts +36 -0
- package/dist/types/lightning/ffor/voucher-archive.d.ts +43 -0
- package/dist/types/lightning/ffor/voucher-chain.d.ts +3 -0
- package/dist/types/lightning/ffor/voucher-index.d.ts +10 -0
- package/dist/types/lightning/gossip/gossip-sync.d.ts +8 -2
- package/dist/types/lightning/message/types.d.ts +2 -0
- package/dist/types/lightning/node/lightning-node.d.ts +31 -1
- package/dist/types/lightning/node/types.d.ts +3 -0
- package/dist/types/lightning/recovery/frame-codec.d.ts +1 -0
- package/dist/types/lightning/recovery/guardian-client.d.ts +1 -1
- package/dist/types/lightning/recovery/guardian-proto.d.ts +2 -2
- package/dist/types/lightning/recovery/guardian-rotation.d.ts +4 -2
- package/dist/types/lightning/recovery/guardian.d.ts +5 -0
- package/dist/types/lightning/recovery/journal.d.ts +3 -1
- package/dist/types/lightning/recovery/restore-driver.d.ts +4 -1
- package/dist/types/lightning/recovery/types.d.ts +6 -1
- package/dist/types/lightning/storage/htlc-history.d.ts +22 -0
- package/dist/types/lightning/storage/serialization.d.ts +20 -1
- package/dist/types/lightning/storage/sqlite-storage.d.ts +5 -1
- package/dist/types/lightning/storage/types.d.ts +4 -0
- package/dist/types/lightning/transport/peer.d.ts +2 -0
- package/dist/wallet/index.js +4 -3
- package/dist/wallet/index.js.map +1 -1
- package/docs/AUTOMATIC-OFFLINE-RECEIVE.md +20 -8
- package/docs/FFOR-RESERVED-RETIREMENT.md +144 -0
- package/docs/RECOVERY-GUARDIAN-WIRE.md +61 -4
- package/docs/RECOVERY-PROTOCOL.md +19 -2
- package/docs/RECOVERY-TRANSITION-MATRIX.md +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -496,7 +496,7 @@ wallet receive while offline through a settlement peer that holds a pre-signed
|
|
|
496
496
|
voucher book. The daemon exposes the receiver's lifecycle under `/ffor/*`
|
|
497
497
|
(`/ffor/epoch/start`, `/ffor/invoice`, `/ffor/epoch/close`, `/ffor/preimage`,
|
|
498
498
|
`/ffor/witness/provision`, `/ffor/issuer/offer`, `/ffor/issuer/provision`,
|
|
499
|
-
`/ffor/recover`, `/ffor/enforce`, `/ffor/epochs`, `/ffor/epoch`,
|
|
499
|
+
`/ffor/sync`, `/ffor/recover`, `/ffor/enforce`, `/ffor/epochs`, `/ffor/epoch`,
|
|
500
500
|
`/ffor/witness/close`, `/ffor/issuer/issued`) and three roles a
|
|
501
501
|
node can run for others, each an explicit opt-in switched on with an exact
|
|
502
502
|
`true`:
|
|
@@ -507,9 +507,23 @@ node can run for others, each an explicit opt-in switched on with an exact
|
|
|
507
507
|
| `BEIGNET_FFOR_WITNESS` | Store a receiver-encrypted record of every delegated preimage this node relays before propagating the fulfil (a receipt witness). `BEIGNET_FFOR_WITNESS_MAX_MAILBOXES` and `BEIGNET_FFOR_WITNESS_MAX_BYTES` cap it. `GET /ffor/witness/status`. |
|
|
508
508
|
| `BEIGNET_FFOR_ISSUER` | Answer BOLT 12 invoice requests for offers a receiver delegated to this node, one fixed-amount slot per invoice. Needs the witness. `GET /ffor/issuer/status`. |
|
|
509
509
|
|
|
510
|
-
The SSE stream carries `ffor:state`, `ffor:settled`, `ffor:delegated-failed`,
|
|
510
|
+
The SSE stream carries `ffor:state`, `ffor:settled`, `ffor:slot-resolved`, `ffor:delegated-failed`,
|
|
511
511
|
`ffor:enforce` and the witness and issuer events.
|
|
512
512
|
|
|
513
|
+
The experimental concurrent profile keeps ordinary payments available
|
|
514
|
+
within the channel's remaining capacity. `LightningNode.fforSync()` fetches paid
|
|
515
|
+
slot receipts and redeems them while other vouchers remain live.
|
|
516
|
+
`rescueFforEpoch()` syncs a connected concurrent book without retiring it.
|
|
517
|
+
Feature bits 562/563 are advertised by default when their dependencies are enabled.
|
|
518
|
+
See [concurrent receive and reserved retirement](docs/FFOR-RESERVED-RETIREMENT.md)
|
|
519
|
+
for the version 1 and 2 contracts and storage requirements. The daemon enables
|
|
520
|
+
advertisement with `BEIGNET_FFOR_CONCURRENT=true` and new concurrent settlement
|
|
521
|
+
with `BEIGNET_FFOR_SETTLE_CONCURRENT=true`; both default to true. Set either to
|
|
522
|
+
`false` to disable it. Settlement still requires its separate role to be enabled. The automatic coordinator can reuse a funded home channel when
|
|
523
|
+
the peers negotiate concurrent settlement. See the
|
|
524
|
+
[automatic receive API](docs/AUTOMATIC-OFFLINE-RECEIVE.md#concurrent-receive)
|
|
525
|
+
for sync, retirement and reserved-capacity fields.
|
|
526
|
+
|
|
513
527
|
### Swaps (Lightning to on-chain, and on-chain to Lightning)
|
|
514
528
|
|
|
515
529
|
A beignet node can serve swaps to any Lightning peer in both directions.
|
|
@@ -666,6 +680,7 @@ npm run test:sigkill # process-level SIGKILL chaos matrix (builds dist fir
|
|
|
666
680
|
npm run test:integration # daemon/Electrum integration (needs an Electrum server)
|
|
667
681
|
npm run test:interop # 190+ cases vs LND/CLN/Eclair (needs Docker)
|
|
668
682
|
npm run test:interop:ffor # FFOR Variant D chain gates on regtest (needs only the bitcoind container)
|
|
683
|
+
npm run test:interop:ffor-concurrent # Concurrent receive process, durable boundary and current-chain qualification (bitcoind regtest)
|
|
669
684
|
npm run test:all # Lightning + CLI + interop (needs Docker + Electrum)
|
|
670
685
|
```
|
|
671
686
|
|
package/dist/cli/auth.js
CHANGED
|
@@ -71,6 +71,7 @@ exports.ROUTE_SCOPES = {
|
|
|
71
71
|
'POST /ffor/issuer/offer': ['invoice'],
|
|
72
72
|
'POST /ffor/issuer/provision': [],
|
|
73
73
|
'POST /ffor/recover': [],
|
|
74
|
+
'POST /ffor/sync': [],
|
|
74
75
|
'POST /ffor/enforce': [],
|
|
75
76
|
'GET /guardian/status': ['readonly'],
|
|
76
77
|
'POST /route/estimate': ['readonly'],
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/beignet-node.js
CHANGED
|
@@ -224,6 +224,17 @@ function sentSats(info) {
|
|
|
224
224
|
}
|
|
225
225
|
return spendLimitSats(info.amountMsat);
|
|
226
226
|
}
|
|
227
|
+
function paymentAmountSats(info) {
|
|
228
|
+
return info.direction === types_6.PaymentDirection.OUTGOING
|
|
229
|
+
? sentSats(info) ?? spendLimitSats(info.amountMsat)
|
|
230
|
+
: Number(info.amountMsat / 1000n);
|
|
231
|
+
}
|
|
232
|
+
function paymentFeeMsat(info) {
|
|
233
|
+
if (info.sentMsat !== undefined && info.sentMsat >= info.amountMsat) {
|
|
234
|
+
return info.sentMsat - info.amountMsat;
|
|
235
|
+
}
|
|
236
|
+
return info.route?.totalFeeMsat;
|
|
237
|
+
}
|
|
227
238
|
function settlesInvoice(p) {
|
|
228
239
|
return p?.status === 'COMPLETED' && p.direction === 'INCOMING';
|
|
229
240
|
}
|
|
@@ -621,6 +632,13 @@ const UNCONFIRMED_OWNER_FORCE_CLOSE_REFUSAL = 'This device has not confirmed wit
|
|
|
621
632
|
'Waiting for the guardians to confirm this device, or for the peer to ' +
|
|
622
633
|
'close, is the safe outcome. Set acceptStaleStateRisk: true to force ' +
|
|
623
634
|
'close anyway.';
|
|
635
|
+
const LISTENER_HELD_MESSAGE = 'held by the startup quarantine until writer ownership is confirmed ' +
|
|
636
|
+
'and any startup repair is receipted; it binds then';
|
|
637
|
+
const LISTENER_FENCED_MESSAGE = 'this node is fenced: another device owns its recovery namespace, so ' +
|
|
638
|
+
'the listener stays down';
|
|
639
|
+
function listenerLabel(kind) {
|
|
640
|
+
return kind === 'tcp' ? 'Lightning listener' : 'WebSocket listener';
|
|
641
|
+
}
|
|
624
642
|
class BeignetNode extends events_1.EventEmitter {
|
|
625
643
|
getOfflineReceive() {
|
|
626
644
|
if (!this.offlineReceive)
|
|
@@ -697,6 +715,8 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
697
715
|
this._deferredGossipSyncs = new Set();
|
|
698
716
|
this.electrumServerCount = 1;
|
|
699
717
|
this._failoverInProgress = false;
|
|
718
|
+
this._listenBinds = {};
|
|
719
|
+
this._listenEpoch = 0;
|
|
700
720
|
this._connectTimeoutMs = 15000;
|
|
701
721
|
this._dailySpentSats = 0;
|
|
702
722
|
this._dailySpentLightningSats = 0;
|
|
@@ -1064,8 +1084,10 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1064
1084
|
forwardingFeePropMillionths: opts.routingFeePpm,
|
|
1065
1085
|
forwardingCltvDelta: opts.routingCltvDelta,
|
|
1066
1086
|
leaseRates: opts.leaseRates,
|
|
1087
|
+
fforConcurrent: { enabled: opts.fforConcurrent !== false },
|
|
1067
1088
|
fforSettle: {
|
|
1068
1089
|
enabled: opts.fforSettle?.enabled === true,
|
|
1090
|
+
allowConcurrent: opts.fforSettleConcurrent !== false,
|
|
1069
1091
|
...(opts.fforSettle?.maxBudgetMsat !== undefined
|
|
1070
1092
|
? { maxBudgetMsat: BigInt(opts.fforSettle.maxBudgetMsat) }
|
|
1071
1093
|
: {}),
|
|
@@ -1251,7 +1273,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1251
1273
|
watchtowers: opts.watchtowers,
|
|
1252
1274
|
recovery: this.recoveryNodeConfig
|
|
1253
1275
|
});
|
|
1254
|
-
this.fforReceiveService = new ffor_receive_1.FforReceiveService(this, opts.fforSettle, opts.fforReceiveFunding);
|
|
1276
|
+
this.fforReceiveService = new ffor_receive_1.FforReceiveService(this, opts.fforSettle, opts.fforReceiveFunding, opts.fforSettleConcurrent !== false);
|
|
1255
1277
|
const receiveKey = 'automatic_receive_jobs_v1';
|
|
1256
1278
|
const receiveJobs = this.storage.loadWalletData(receiveKey);
|
|
1257
1279
|
this.offlineReceive = new offline_receive_1.OfflineReceive(this, (jobs) => {
|
|
@@ -1578,6 +1600,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1578
1600
|
});
|
|
1579
1601
|
this.node.on('node:ready', () => {
|
|
1580
1602
|
this.log('info', 'Node ready');
|
|
1603
|
+
this.bindHeldListeners();
|
|
1581
1604
|
this.emit('node:ready');
|
|
1582
1605
|
});
|
|
1583
1606
|
for (const evt of [
|
|
@@ -1592,6 +1615,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1592
1615
|
'direct-funding:offer:failed',
|
|
1593
1616
|
'direct-funding:offer:completed',
|
|
1594
1617
|
'ffor:settled',
|
|
1618
|
+
'ffor:slot-resolved',
|
|
1595
1619
|
'ffor:delegated-failed',
|
|
1596
1620
|
'ffor:witness-provisioned',
|
|
1597
1621
|
'ffor:witness-recorded',
|
|
@@ -1688,21 +1712,13 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1688
1712
|
this.backupTimer.unref();
|
|
1689
1713
|
}
|
|
1690
1714
|
}
|
|
1715
|
+
this.resetListenerState();
|
|
1691
1716
|
if (opts.listenPort) {
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
this._listenPort = opts.listenPort;
|
|
1695
|
-
}
|
|
1696
|
-
catch {
|
|
1697
|
-
}
|
|
1717
|
+
this._requestedListenPort = opts.listenPort;
|
|
1718
|
+
await this.bindListener('tcp', opts.listenPort);
|
|
1698
1719
|
}
|
|
1699
1720
|
if (opts.websocketPort) {
|
|
1700
|
-
|
|
1701
|
-
await this.node.listenWebSocket(opts.websocketPort);
|
|
1702
|
-
this._websocketPort = opts.websocketPort;
|
|
1703
|
-
}
|
|
1704
|
-
catch {
|
|
1705
|
-
}
|
|
1721
|
+
await this.bindListener('websocket', opts.websocketPort);
|
|
1706
1722
|
}
|
|
1707
1723
|
if (opts.connectTimeoutMs !== undefined && opts.connectTimeoutMs > 0) {
|
|
1708
1724
|
this._connectTimeoutMs = opts.connectTimeoutMs;
|
|
@@ -1950,6 +1966,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1950
1966
|
});
|
|
1951
1967
|
this.startRecoveryLeaseCheck();
|
|
1952
1968
|
this.resumeRotationWork();
|
|
1969
|
+
this.bindHeldListeners();
|
|
1953
1970
|
return;
|
|
1954
1971
|
}
|
|
1955
1972
|
if (outcome.state === 'fenced') {
|
|
@@ -1977,6 +1994,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1977
1994
|
}
|
|
1978
1995
|
relayRecoveryFenced(supersededBy) {
|
|
1979
1996
|
this.stopRecoveryLeaseCheck();
|
|
1997
|
+
this.fenceListeners();
|
|
1980
1998
|
if (this._recoveryFenceRelayed)
|
|
1981
1999
|
return;
|
|
1982
2000
|
this._recoveryFenceRelayed = true;
|
|
@@ -2645,6 +2663,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
2645
2663
|
this._autoRebalanceTimer = undefined;
|
|
2646
2664
|
}
|
|
2647
2665
|
this.paymentQueue?.removeAllListeners();
|
|
2666
|
+
this.resetListenerState();
|
|
2648
2667
|
this.node.destroy();
|
|
2649
2668
|
try {
|
|
2650
2669
|
this.storage.close();
|
|
@@ -2913,7 +2932,8 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
2913
2932
|
'no-quorum': 'ROTATION_NO_QUORUM',
|
|
2914
2933
|
'not-catching-up': 'ROTATION_NOT_CATCHING_UP',
|
|
2915
2934
|
'same-set': 'INVALID_PARAMS',
|
|
2916
|
-
malformed: 'INVALID_PARAMS'
|
|
2935
|
+
malformed: 'INVALID_PARAMS',
|
|
2936
|
+
'journal-behind': 'ROTATION_UNAVAILABLE'
|
|
2917
2937
|
};
|
|
2918
2938
|
return new errors_1.BeignetError(code[error.reason], error.message);
|
|
2919
2939
|
}
|
|
@@ -2984,7 +3004,12 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
2984
3004
|
const status = this.node?.getGuardianHostStatus() ?? null;
|
|
2985
3005
|
if (!status)
|
|
2986
3006
|
return { serving: false };
|
|
2987
|
-
|
|
3007
|
+
const serving = this._listenPort !== undefined && this.node.isListening();
|
|
3008
|
+
return {
|
|
3009
|
+
serving,
|
|
3010
|
+
...status,
|
|
3011
|
+
...(this._listenError ? { listenError: { ...this._listenError } } : {})
|
|
3012
|
+
};
|
|
2988
3013
|
}
|
|
2989
3014
|
async resolveGuardianUri(uri) {
|
|
2990
3015
|
let parsed;
|
|
@@ -3179,9 +3204,17 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
3179
3204
|
peerCount: info.peerCount,
|
|
3180
3205
|
listening: this.node.isListening()
|
|
3181
3206
|
};
|
|
3207
|
+
if (this._requestedListenPort !== undefined) {
|
|
3208
|
+
result.listenPort = this._requestedListenPort;
|
|
3209
|
+
}
|
|
3210
|
+
if (this._listenError)
|
|
3211
|
+
result.listenError = { ...this._listenError };
|
|
3182
3212
|
if (this._websocketPort !== undefined) {
|
|
3183
3213
|
result.websocketPort = this._websocketPort;
|
|
3184
3214
|
}
|
|
3215
|
+
if (this._websocketListenError) {
|
|
3216
|
+
result.websocketListenError = { ...this._websocketListenError };
|
|
3217
|
+
}
|
|
3185
3218
|
return result;
|
|
3186
3219
|
}
|
|
3187
3220
|
getMnemonic() {
|
|
@@ -4147,10 +4180,27 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4147
4180
|
const K = f.params.maxPayments;
|
|
4148
4181
|
const settledBit = (k) => f.settledBitmap !== null && (0, messages_1.bitmapGet)(f.settledBitmap, k);
|
|
4149
4182
|
const invoices = f.role === 'R' ? this.node.fforSlotInvoices(channelIdHex) : [];
|
|
4183
|
+
let snapshotSeq = '0';
|
|
4184
|
+
if (f.syncSnapshotWire) {
|
|
4185
|
+
try {
|
|
4186
|
+
snapshotSeq = (0, messages_1.decodeFforSyncReplyMessage)(f.syncSnapshotWire.subarray(2)).snapshotSeq.toString();
|
|
4187
|
+
}
|
|
4188
|
+
catch {
|
|
4189
|
+
snapshotSeq = null;
|
|
4190
|
+
}
|
|
4191
|
+
}
|
|
4150
4192
|
const slots = Array.from({ length: K }, (_, i) => {
|
|
4151
4193
|
const k = i + 1;
|
|
4152
4194
|
let state;
|
|
4153
|
-
if (f.
|
|
4195
|
+
if ((0, types_3.isFforConcurrentVersion)(f.concurrentVersion) &&
|
|
4196
|
+
f.voucherOutcomes?.[i]?.outcome === 'fulfilled') {
|
|
4197
|
+
state = 'redeemed';
|
|
4198
|
+
}
|
|
4199
|
+
else if ((0, types_3.isFforConcurrentVersion)(f.concurrentVersion) &&
|
|
4200
|
+
f.voucherOutcomes?.[i]?.outcome === 'cancelled') {
|
|
4201
|
+
state = 'cancelled';
|
|
4202
|
+
}
|
|
4203
|
+
else if (f.role === 'S') {
|
|
4154
4204
|
state =
|
|
4155
4205
|
f.slotStates[i] === types_3.FforSlotState.SETTLED
|
|
4156
4206
|
? 'settled'
|
|
@@ -4186,6 +4236,12 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4186
4236
|
epochId: f.epochId.toString('hex'),
|
|
4187
4237
|
peerNodeId: f.remoteNodeId.toString('hex'),
|
|
4188
4238
|
variant: f.params.variant,
|
|
4239
|
+
concurrent: (0, types_3.isFforConcurrentVersion)(f.concurrentVersion),
|
|
4240
|
+
...(f.concurrentVersion
|
|
4241
|
+
? { concurrentVersion: f.concurrentVersion }
|
|
4242
|
+
: {}),
|
|
4243
|
+
snapshotSeq,
|
|
4244
|
+
capabilityHold: f.capabilityHold === true,
|
|
4189
4245
|
budgetMsat: f.params.budgetMsat.toString(),
|
|
4190
4246
|
numSlots: K,
|
|
4191
4247
|
hashChain: f.params.hashChain === true,
|
|
@@ -4222,6 +4278,16 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4222
4278
|
}
|
|
4223
4279
|
return out;
|
|
4224
4280
|
}
|
|
4281
|
+
fforConcurrentNegotiated(peer) {
|
|
4282
|
+
return this.node.getChannelManager().peerNegotiatedFforConcurrent(peer);
|
|
4283
|
+
}
|
|
4284
|
+
fforSync(channelId) {
|
|
4285
|
+
const id = this.fforChannelId(channelId).toString('hex');
|
|
4286
|
+
const result = this.node.fforSync(id);
|
|
4287
|
+
if (!result.ok)
|
|
4288
|
+
throw new errors_1.BeignetError('FFOR_REFUSED', result.error ?? 'sync refused');
|
|
4289
|
+
return this.fforEpoch(id);
|
|
4290
|
+
}
|
|
4225
4291
|
fforEpoch(channelId) {
|
|
4226
4292
|
const idBuf = this.fforChannelId(channelId);
|
|
4227
4293
|
const f = this.node.getFforEpoch(idBuf.toString('hex'));
|
|
@@ -4232,6 +4298,11 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4232
4298
|
}
|
|
4233
4299
|
fforStartEpoch(body) {
|
|
4234
4300
|
const idBuf = this.fforChannelId(body.channelId);
|
|
4301
|
+
if ((body.concurrent !== undefined && typeof body.concurrent !== 'boolean') ||
|
|
4302
|
+
(body.concurrentVersion !== undefined &&
|
|
4303
|
+
(body.concurrent !== true ||
|
|
4304
|
+
(body.concurrentVersion !== 1 && body.concurrentVersion !== 2))))
|
|
4305
|
+
throw new errors_1.BeignetError('INVALID_PARAMS', 'concurrentVersion requires concurrent: true and version 1 or 2');
|
|
4235
4306
|
if (!Array.isArray(body.voucherAmountsMsat) ||
|
|
4236
4307
|
body.voucherAmountsMsat.length === 0) {
|
|
4237
4308
|
throw new errors_1.BeignetError('INVALID_PARAMS', 'voucherAmountsMsat required: one amount per slot');
|
|
@@ -4271,6 +4342,9 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4271
4342
|
feeBaseMsat: body.feeBaseMsat,
|
|
4272
4343
|
feeProportionalMillionths: body.feeProportionalMillionths,
|
|
4273
4344
|
...(body.hashChain === true ? { hashChain: true } : {}),
|
|
4345
|
+
...(body.concurrent === true
|
|
4346
|
+
? { concurrent: true, concurrentVersion: body.concurrentVersion ?? 2 }
|
|
4347
|
+
: {}),
|
|
4274
4348
|
...(witnessPeers.length > 0 ? { witnessPeers } : {})
|
|
4275
4349
|
});
|
|
4276
4350
|
if (!res.ok) {
|
|
@@ -4736,6 +4810,25 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
4736
4810
|
info.previousFundingTxids = [...ch.previousFundingTxids];
|
|
4737
4811
|
if (ch.htlcUsable !== undefined)
|
|
4738
4812
|
info.htlcUsable = ch.htlcUsable;
|
|
4813
|
+
const ffor = this.node.getFforEpoch(info.channelId);
|
|
4814
|
+
if (ffor) {
|
|
4815
|
+
const unresolved = ffor.state === types_3.FforState.CLOSED ||
|
|
4816
|
+
(ffor.state === types_3.FforState.ABORTED && !ffor.paymentHashes.length)
|
|
4817
|
+
? []
|
|
4818
|
+
: ffor.params.voucherAmountsMsat.filter((_amount, index) => !ffor.voucherOutcomes?.[index]);
|
|
4819
|
+
const reserved = ffor.role === 'R'
|
|
4820
|
+
? unresolved.reduce((total, amount) => total + amount, 0n)
|
|
4821
|
+
: 0n;
|
|
4822
|
+
info.ffor = {
|
|
4823
|
+
state: types_3.FforState[ffor.state],
|
|
4824
|
+
concurrent: (0, types_3.isFforConcurrentVersion)(ffor.concurrentVersion),
|
|
4825
|
+
...(ffor.concurrentVersion
|
|
4826
|
+
? { concurrentVersion: ffor.concurrentVersion }
|
|
4827
|
+
: {}),
|
|
4828
|
+
reservedInboundSats: Number(reserved / 1000n),
|
|
4829
|
+
unresolvedSlots: unresolved.length
|
|
4830
|
+
};
|
|
4831
|
+
}
|
|
4739
4832
|
if (ch.restoreRecencyUnproven)
|
|
4740
4833
|
info.restoreRecencyUnproven = ch.restoreRecencyUnproven;
|
|
4741
4834
|
if (ch.reestablishRecencyUnproven)
|
|
@@ -6488,19 +6581,20 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
6488
6581
|
this._l402Credentials.delete(scope);
|
|
6489
6582
|
}
|
|
6490
6583
|
getPaymentProof(paymentHash) {
|
|
6491
|
-
const
|
|
6492
|
-
|
|
6584
|
+
const hash = Buffer.from(paymentHash, 'hex');
|
|
6585
|
+
const proof = this.node.getPaymentProof(hash);
|
|
6586
|
+
const record = this.node.getPayment(hash);
|
|
6587
|
+
if (!proof || !record)
|
|
6493
6588
|
return null;
|
|
6589
|
+
const feeMsat = paymentFeeMsat(record);
|
|
6494
6590
|
return {
|
|
6495
6591
|
paymentHash: proof.paymentHash.toString('hex'),
|
|
6496
6592
|
preimage: proof.preimage.toString('hex'),
|
|
6497
|
-
amountSats:
|
|
6593
|
+
amountSats: paymentAmountSats(record),
|
|
6498
6594
|
completedAt: proof.completedAt,
|
|
6499
6595
|
invoice: proof.invoice,
|
|
6500
6596
|
hopCount: proof.route?.hops.length,
|
|
6501
|
-
feeSats:
|
|
6502
|
-
? Number(proof.route.totalFeeMsat / 1000n)
|
|
6503
|
-
: undefined
|
|
6597
|
+
feeSats: feeMsat !== undefined ? spendLimitSats(feeMsat) : undefined
|
|
6504
6598
|
};
|
|
6505
6599
|
}
|
|
6506
6600
|
verifyPaymentProof(paymentHash) {
|
|
@@ -6585,7 +6679,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
6585
6679
|
toPaymentInfo(p) {
|
|
6586
6680
|
const info = {
|
|
6587
6681
|
paymentHash: p.paymentHash.toString('hex'),
|
|
6588
|
-
amountSats:
|
|
6682
|
+
amountSats: paymentAmountSats(p),
|
|
6589
6683
|
status: p.status,
|
|
6590
6684
|
direction: p.direction,
|
|
6591
6685
|
createdAt: p.createdAt
|
|
@@ -6601,12 +6695,9 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
6601
6695
|
else if (p.failureReason) {
|
|
6602
6696
|
info.failureDescription = p.failureReason;
|
|
6603
6697
|
}
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
else if (p.route?.totalFeeMsat !== undefined) {
|
|
6608
|
-
info.feeSats = Number(p.route.totalFeeMsat / 1000n);
|
|
6609
|
-
}
|
|
6698
|
+
const feeMsat = paymentFeeMsat(p);
|
|
6699
|
+
if (feeMsat !== undefined)
|
|
6700
|
+
info.feeSats = spendLimitSats(feeMsat);
|
|
6610
6701
|
if (p.route) {
|
|
6611
6702
|
const hops = p.route.hops;
|
|
6612
6703
|
info.route = {
|
|
@@ -7251,6 +7342,9 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
7251
7342
|
if (!Number.isInteger(maxFeeSats) || maxFeeSats < 0)
|
|
7252
7343
|
throw new errors_1.BeignetError(errors_1.BeignetErrorCode.INVALID_PARAMS, 'maxFeeSats must be a non-negative integer');
|
|
7253
7344
|
this._checkDraining();
|
|
7345
|
+
if (this.destroyed) {
|
|
7346
|
+
throw new errors_1.BeignetError(errors_1.BeignetErrorCode.NODE_DESTROYED, 'Node is shutting down; no new rebalances accepted');
|
|
7347
|
+
}
|
|
7254
7348
|
this._checkSpendLimit(maxFeeSats);
|
|
7255
7349
|
this._recordSpend(maxFeeSats);
|
|
7256
7350
|
this._liveRebalanceChargeSats += maxFeeSats;
|
|
@@ -7285,7 +7379,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
7285
7379
|
paymentHash: result.paymentHash.toString('hex'),
|
|
7286
7380
|
amountSats,
|
|
7287
7381
|
feeMsat: result.feeMsat.toString(),
|
|
7288
|
-
feeSats:
|
|
7382
|
+
feeSats: spendLimitSats(result.feeMsat),
|
|
7289
7383
|
hops: result.hops
|
|
7290
7384
|
};
|
|
7291
7385
|
}
|
|
@@ -7310,7 +7404,7 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
7310
7404
|
budgetSatsPerDay,
|
|
7311
7405
|
stopRequested: () => {
|
|
7312
7406
|
reachedPlans = true;
|
|
7313
|
-
return this._draining;
|
|
7407
|
+
return this._draining || this.destroyed;
|
|
7314
7408
|
}
|
|
7315
7409
|
});
|
|
7316
7410
|
spentSats = spendLimitSats(summary.feeSpentMsat);
|
|
@@ -7753,13 +7847,12 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
7753
7847
|
continue;
|
|
7754
7848
|
if (p.direction === 'OUTGOING' && p.status === 'COMPLETED') {
|
|
7755
7849
|
sent++;
|
|
7756
|
-
satsSent +=
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
feesPaid +=
|
|
7850
|
+
satsSent += paymentAmountSats(p);
|
|
7851
|
+
const feeMsat = paymentFeeMsat(p);
|
|
7852
|
+
if (feeMsat !== undefined) {
|
|
7853
|
+
feesPaid += spendLimitSats(feeMsat);
|
|
7760
7854
|
if (p.amountMsat > 0n) {
|
|
7761
|
-
totalFeePct +=
|
|
7762
|
-
(Number(p.route.totalFeeMsat) / Number(p.amountMsat)) * 100;
|
|
7855
|
+
totalFeePct += (Number(feeMsat) / Number(p.amountMsat)) * 100;
|
|
7763
7856
|
feePctCount++;
|
|
7764
7857
|
}
|
|
7765
7858
|
}
|
|
@@ -8098,6 +8191,157 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
8098
8191
|
getPeerRetrievedBackup() {
|
|
8099
8192
|
return this._peerRetrievedScb;
|
|
8100
8193
|
}
|
|
8194
|
+
resetListenerState() {
|
|
8195
|
+
this._listenEpoch++;
|
|
8196
|
+
this._listenPort = undefined;
|
|
8197
|
+
this._websocketPort = undefined;
|
|
8198
|
+
this._requestedListenPort = undefined;
|
|
8199
|
+
this._listenError = undefined;
|
|
8200
|
+
this._websocketListenError = undefined;
|
|
8201
|
+
this._listenBinds = {};
|
|
8202
|
+
}
|
|
8203
|
+
bindListener(kind, port) {
|
|
8204
|
+
const inFlight = this._listenBinds[kind];
|
|
8205
|
+
if (inFlight)
|
|
8206
|
+
return inFlight;
|
|
8207
|
+
const attempt = this.attemptListen(kind, port).finally(() => {
|
|
8208
|
+
if (this._listenBinds[kind] === attempt) {
|
|
8209
|
+
delete this._listenBinds[kind];
|
|
8210
|
+
}
|
|
8211
|
+
});
|
|
8212
|
+
this._listenBinds[kind] = attempt;
|
|
8213
|
+
return attempt;
|
|
8214
|
+
}
|
|
8215
|
+
async attemptListen(kind, port) {
|
|
8216
|
+
const node = this.node;
|
|
8217
|
+
const epoch = this._listenEpoch;
|
|
8218
|
+
const stale = () => this.destroyed || this.node !== node || this._listenEpoch !== epoch;
|
|
8219
|
+
try {
|
|
8220
|
+
if (kind === 'tcp')
|
|
8221
|
+
await node.listen(port);
|
|
8222
|
+
else
|
|
8223
|
+
await node.listenWebSocket(port);
|
|
8224
|
+
}
|
|
8225
|
+
catch (err) {
|
|
8226
|
+
if (stale())
|
|
8227
|
+
return;
|
|
8228
|
+
const problem = this.classifyListenFailure(node, port, err);
|
|
8229
|
+
const held = this.listenerProblem(kind)?.state === 'held';
|
|
8230
|
+
this.setListenerProblem(kind, problem);
|
|
8231
|
+
if (problem.state === 'failed') {
|
|
8232
|
+
this.reportListenFailed(node, kind, problem);
|
|
8233
|
+
}
|
|
8234
|
+
else if (problem.state === 'held' && !held) {
|
|
8235
|
+
this.log('info', `${listenerLabel(kind)} on port ${port} is held until ` +
|
|
8236
|
+
'writer ownership is confirmed');
|
|
8237
|
+
}
|
|
8238
|
+
return;
|
|
8239
|
+
}
|
|
8240
|
+
if (stale())
|
|
8241
|
+
return;
|
|
8242
|
+
if (this.nodeFenced(node)) {
|
|
8243
|
+
this.setListenerProblem(kind, {
|
|
8244
|
+
port,
|
|
8245
|
+
state: 'fenced',
|
|
8246
|
+
message: LISTENER_FENCED_MESSAGE
|
|
8247
|
+
});
|
|
8248
|
+
return;
|
|
8249
|
+
}
|
|
8250
|
+
const wasHeld = this.listenerProblem(kind)?.state === 'held';
|
|
8251
|
+
if (kind === 'tcp')
|
|
8252
|
+
this._listenPort = port;
|
|
8253
|
+
else
|
|
8254
|
+
this._websocketPort = port;
|
|
8255
|
+
this.setListenerProblem(kind, undefined);
|
|
8256
|
+
if (wasHeld) {
|
|
8257
|
+
this.log('info', `${listenerLabel(kind)} bound on port ${port}`);
|
|
8258
|
+
}
|
|
8259
|
+
}
|
|
8260
|
+
classifyListenFailure(node, port, err) {
|
|
8261
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
8262
|
+
const rawCode = err !== null && typeof err === 'object' && 'code' in err
|
|
8263
|
+
? err.code
|
|
8264
|
+
: undefined;
|
|
8265
|
+
const code = typeof rawCode === 'string' ? rawCode : undefined;
|
|
8266
|
+
const errno = code !== 'STARTUP_QUARANTINE' ? code : undefined;
|
|
8267
|
+
if (errno === undefined && this.nodeFenced(node)) {
|
|
8268
|
+
return { port, state: 'fenced', message: LISTENER_FENCED_MESSAGE };
|
|
8269
|
+
}
|
|
8270
|
+
if (code === 'STARTUP_QUARANTINE') {
|
|
8271
|
+
return { port, state: 'held', message: LISTENER_HELD_MESSAGE };
|
|
8272
|
+
}
|
|
8273
|
+
return { port, state: 'failed', message, ...(errno ? { errno } : {}) };
|
|
8274
|
+
}
|
|
8275
|
+
reportListenFailed(node, kind, problem) {
|
|
8276
|
+
try {
|
|
8277
|
+
const hosting = kind === 'tcp' && node.getGuardianHostStatus() !== null
|
|
8278
|
+
? ' and the guardian this node hosts is unreachable'
|
|
8279
|
+
: '';
|
|
8280
|
+
node.emit('node:error', {
|
|
8281
|
+
code: 'LISTEN_FAILED',
|
|
8282
|
+
message: `${listenerLabel(kind)} could not bind port ${problem.port}: ` +
|
|
8283
|
+
`${problem.message}; inbound peers cannot connect${hosting}`,
|
|
8284
|
+
timestamp: Date.now()
|
|
8285
|
+
});
|
|
8286
|
+
}
|
|
8287
|
+
catch {
|
|
8288
|
+
}
|
|
8289
|
+
}
|
|
8290
|
+
nodeFenced(node) {
|
|
8291
|
+
try {
|
|
8292
|
+
return (node.getRecoveryGateState() === 'fenced' ||
|
|
8293
|
+
node.getRecoveryStatus().fenced);
|
|
8294
|
+
}
|
|
8295
|
+
catch {
|
|
8296
|
+
return false;
|
|
8297
|
+
}
|
|
8298
|
+
}
|
|
8299
|
+
listenerProblem(kind) {
|
|
8300
|
+
return kind === 'tcp' ? this._listenError : this._websocketListenError;
|
|
8301
|
+
}
|
|
8302
|
+
setListenerProblem(kind, problem) {
|
|
8303
|
+
if (kind === 'tcp')
|
|
8304
|
+
this._listenError = problem;
|
|
8305
|
+
else
|
|
8306
|
+
this._websocketListenError = problem;
|
|
8307
|
+
}
|
|
8308
|
+
bindHeldListeners() {
|
|
8309
|
+
if (this.destroyed || !this.node)
|
|
8310
|
+
return;
|
|
8311
|
+
const held = [];
|
|
8312
|
+
for (const kind of ['tcp', 'websocket']) {
|
|
8313
|
+
const problem = this.listenerProblem(kind);
|
|
8314
|
+
if (problem?.state === 'held')
|
|
8315
|
+
held.push([kind, problem.port]);
|
|
8316
|
+
}
|
|
8317
|
+
if (held.length === 0)
|
|
8318
|
+
return;
|
|
8319
|
+
if (this.nodeFenced(this.node)) {
|
|
8320
|
+
this.fenceListeners();
|
|
8321
|
+
return;
|
|
8322
|
+
}
|
|
8323
|
+
for (const [kind, port] of held) {
|
|
8324
|
+
void this.bindListener(kind, port).catch(() => undefined);
|
|
8325
|
+
}
|
|
8326
|
+
}
|
|
8327
|
+
fenceListeners() {
|
|
8328
|
+
for (const kind of ['tcp', 'websocket']) {
|
|
8329
|
+
const problem = this.listenerProblem(kind);
|
|
8330
|
+
const bound = kind === 'tcp' ? this._listenPort : this._websocketPort;
|
|
8331
|
+
const port = bound ?? (problem?.state === 'held' ? problem.port : undefined);
|
|
8332
|
+
if (port === undefined)
|
|
8333
|
+
continue;
|
|
8334
|
+
if (kind === 'tcp')
|
|
8335
|
+
this._listenPort = undefined;
|
|
8336
|
+
else
|
|
8337
|
+
this._websocketPort = undefined;
|
|
8338
|
+
this.setListenerProblem(kind, {
|
|
8339
|
+
port,
|
|
8340
|
+
state: 'fenced',
|
|
8341
|
+
message: LISTENER_FENCED_MESSAGE
|
|
8342
|
+
});
|
|
8343
|
+
}
|
|
8344
|
+
}
|
|
8101
8345
|
getNodeUri(externalHost) {
|
|
8102
8346
|
if (!this._listenPort)
|
|
8103
8347
|
return null;
|