beignet 0.2.0 → 0.3.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 +284 -1
- package/dist/cli/beignet-node.js +1019 -47
- package/dist/cli/beignet-node.js.map +1 -1
- package/dist/cli/cli.js +1201 -16
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/config.js +21 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/daemon.js +342 -16
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/errors.js +2 -0
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/openapi.js +1207 -14
- package/dist/cli/openapi.js.map +1 -1
- package/dist/cli/restore.js +89 -0
- package/dist/cli/restore.js.map +1 -0
- package/dist/cli/wallet-storage.js +34 -0
- package/dist/cli/wallet-storage.js.map +1 -0
- package/dist/electrum/index.js +105 -10
- package/dist/electrum/index.js.map +1 -1
- package/dist/lightning/advisor/fee-tuner.js +42 -0
- package/dist/lightning/advisor/fee-tuner.js.map +1 -0
- package/dist/lightning/advisor/index.js +9 -1
- package/dist/lightning/advisor/index.js.map +1 -1
- package/dist/lightning/advisor/rebalance-planner.js +55 -0
- package/dist/lightning/advisor/rebalance-planner.js.map +1 -0
- package/dist/lightning/backup/index.js +18 -0
- package/dist/lightning/backup/index.js.map +1 -0
- package/dist/lightning/backup/scb.js +42 -0
- package/dist/lightning/backup/scb.js.map +1 -0
- package/dist/lightning/chain/chain-monitor.js +27 -0
- package/dist/lightning/chain/chain-monitor.js.map +1 -1
- package/dist/lightning/chain/output-resolver.js +55 -6
- package/dist/lightning/chain/output-resolver.js.map +1 -1
- package/dist/lightning/chain/types.js +1 -0
- package/dist/lightning/chain/types.js.map +1 -1
- package/dist/lightning/channel/channel-manager.js +64 -0
- 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 +124 -4
- package/dist/lightning/channel/channel.js.map +1 -1
- package/dist/lightning/channel/dual-funding.js +6 -5
- package/dist/lightning/channel/dual-funding.js.map +1 -1
- package/dist/lightning/channel/types.js +3 -1
- package/dist/lightning/channel/types.js.map +1 -1
- package/dist/lightning/channel/validation.js +3 -3
- package/dist/lightning/channel/validation.js.map +1 -1
- package/dist/lightning/crypto/index.js +1 -0
- package/dist/lightning/crypto/index.js.map +1 -1
- package/dist/lightning/crypto/message-signing.js +116 -0
- package/dist/lightning/crypto/message-signing.js.map +1 -0
- package/dist/lightning/crypto/xchacha20poly1305.js +77 -0
- package/dist/lightning/crypto/xchacha20poly1305.js.map +1 -0
- package/dist/lightning/features/flags.js +1 -0
- package/dist/lightning/features/flags.js.map +1 -1
- package/dist/lightning/gossip/messages.js +37 -1
- package/dist/lightning/gossip/messages.js.map +1 -1
- package/dist/lightning/index.js +2 -1
- package/dist/lightning/index.js.map +1 -1
- package/dist/lightning/keys/wallet-keys.js +1 -0
- package/dist/lightning/keys/wallet-keys.js.map +1 -1
- package/dist/lightning/message/index.js +1 -0
- package/dist/lightning/message/index.js.map +1 -1
- package/dist/lightning/message/peer-storage.js +43 -0
- package/dist/lightning/message/peer-storage.js.map +1 -0
- package/dist/lightning/message/types.js +2 -0
- package/dist/lightning/message/types.js.map +1 -1
- package/dist/lightning/node/lightning-node.js +1583 -235
- package/dist/lightning/node/lightning-node.js.map +1 -1
- package/dist/lightning/node/types.js +18 -1
- package/dist/lightning/node/types.js.map +1 -1
- package/dist/lightning/offer/offer-manager.js +2 -5
- package/dist/lightning/offer/offer-manager.js.map +1 -1
- package/dist/lightning/offer/tlv.js +3 -1
- package/dist/lightning/offer/tlv.js.map +1 -1
- package/dist/lightning/storage/encryption.js +67 -0
- package/dist/lightning/storage/encryption.js.map +1 -0
- package/dist/lightning/storage/index.js +1 -0
- package/dist/lightning/storage/index.js.map +1 -1
- package/dist/lightning/storage/serialization.js +6 -2
- package/dist/lightning/storage/serialization.js.map +1 -1
- package/dist/lightning/storage/sqlite-storage.js +387 -33
- package/dist/lightning/storage/sqlite-storage.js.map +1 -1
- package/dist/lightning/watchtower/blob.js +135 -0
- package/dist/lightning/watchtower/blob.js.map +1 -0
- package/dist/lightning/watchtower/index.js +55 -0
- package/dist/lightning/watchtower/index.js.map +1 -0
- package/dist/lightning/watchtower/justice.js +182 -0
- package/dist/lightning/watchtower/justice.js.map +1 -0
- package/dist/lightning/watchtower/tower-connection.js +208 -0
- package/dist/lightning/watchtower/tower-connection.js.map +1 -0
- package/dist/lightning/watchtower/types.js +3 -0
- package/dist/lightning/watchtower/types.js.map +1 -0
- package/dist/lightning/watchtower/watchtower-client.js +402 -0
- package/dist/lightning/watchtower/watchtower-client.js.map +1 -0
- package/dist/lightning/watchtower/wtwire.js +201 -0
- package/dist/lightning/watchtower/wtwire.js.map +1 -0
- package/dist/shapes/electrum.js +32 -1
- package/dist/shapes/electrum.js.map +1 -1
- package/dist/shapes/wallet.js +11 -1
- package/dist/shapes/wallet.js.map +1 -1
- package/dist/transaction/index.js +163 -15
- package/dist/transaction/index.js.map +1 -1
- package/dist/types/cli/beignet-node.d.ts +144 -3
- package/dist/types/cli/daemon.d.ts +2 -0
- package/dist/types/cli/errors.d.ts +2 -0
- package/dist/types/cli/restore.d.ts +10 -0
- package/dist/types/cli/types.d.ts +228 -1
- package/dist/types/cli/wallet-storage.d.ts +3 -0
- package/dist/types/electrum/index.d.ts +12 -0
- package/dist/types/electrum.js +1 -0
- package/dist/types/electrum.js.map +1 -1
- package/dist/types/lightning/advisor/fee-tuner.d.ts +20 -0
- package/dist/types/lightning/advisor/index.d.ts +4 -0
- package/dist/types/lightning/advisor/rebalance-planner.d.ts +12 -0
- package/dist/types/lightning/backup/index.d.ts +1 -0
- package/dist/types/lightning/backup/scb.d.ts +24 -0
- package/dist/types/lightning/chain/chain-monitor.d.ts +1 -0
- package/dist/types/lightning/chain/types.d.ts +1 -0
- package/dist/types/lightning/channel/channel-manager.d.ts +7 -0
- package/dist/types/lightning/channel/channel-state.d.ts +2 -0
- package/dist/types/lightning/channel/channel.d.ts +6 -0
- package/dist/types/lightning/channel/dual-funding.d.ts +2 -1
- package/dist/types/lightning/channel/types.d.ts +2 -0
- package/dist/types/lightning/channel/validation.d.ts +1 -1
- package/dist/types/lightning/crypto/index.d.ts +1 -0
- package/dist/types/lightning/crypto/message-signing.d.ts +9 -0
- package/dist/types/lightning/crypto/xchacha20poly1305.d.ts +3 -0
- package/dist/types/lightning/features/flags.d.ts +1 -0
- package/dist/types/lightning/gossip/messages.d.ts +4 -0
- package/dist/types/lightning/index.d.ts +1 -0
- package/dist/types/lightning/keys/wallet-keys.d.ts +2 -1
- package/dist/types/lightning/message/index.d.ts +1 -0
- package/dist/types/lightning/message/peer-storage.d.ts +9 -0
- package/dist/types/lightning/message/types.d.ts +2 -0
- package/dist/types/lightning/node/lightning-node.d.ts +116 -4
- package/dist/types/lightning/node/types.d.ts +62 -1
- package/dist/types/lightning/storage/encryption.d.ts +11 -0
- package/dist/types/lightning/storage/index.d.ts +1 -0
- package/dist/types/lightning/storage/serialization.d.ts +2 -0
- package/dist/types/lightning/storage/sqlite-storage.d.ts +43 -3
- package/dist/types/lightning/storage/types.d.ts +62 -0
- package/dist/types/lightning/watchtower/blob.d.ts +32 -0
- package/dist/types/lightning/watchtower/index.d.ts +9 -0
- package/dist/types/lightning/watchtower/justice.d.ts +29 -0
- package/dist/types/lightning/watchtower/tower-connection.d.ts +34 -0
- package/dist/types/lightning/watchtower/types.d.ts +44 -0
- package/dist/types/lightning/watchtower/watchtower-client.d.ts +67 -0
- package/dist/types/lightning/watchtower/wtwire.d.ts +90 -0
- package/dist/types/shapes/electrum.d.ts +3 -1
- package/dist/types/transaction/index.d.ts +6 -0
- package/dist/types/transaction.js.map +1 -1
- package/dist/types/types/electrum.d.ts +3 -2
- package/dist/types/types/transaction.d.ts +1 -1
- package/dist/types/types/wallet.d.ts +78 -4
- package/dist/types/utils/descriptors.d.ts +2 -0
- package/dist/types/utils/fees.d.ts +3 -0
- package/dist/types/utils/helpers.d.ts +3 -1
- package/dist/types/utils/index.d.ts +5 -0
- package/dist/types/utils/multisig.d.ts +29 -0
- package/dist/types/utils/transaction.d.ts +7 -0
- package/dist/types/utils/wallet-storage-encryption.d.ts +3 -0
- package/dist/types/utils/wallet.d.ts +1 -1
- package/dist/types/utils/watch-only.d.ts +12 -0
- package/dist/types/wallet/constants.d.ts +1 -0
- package/dist/types/wallet/index.d.ts +61 -4
- package/dist/types/wallet.js +3 -0
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/derivation-path.js +8 -7
- package/dist/utils/derivation-path.js.map +1 -1
- package/dist/utils/descriptors.js +56 -0
- package/dist/utils/descriptors.js.map +1 -0
- package/dist/utils/electrum.js +10 -2
- package/dist/utils/electrum.js.map +1 -1
- package/dist/utils/fees.js +19 -0
- package/dist/utils/fees.js.map +1 -0
- package/dist/utils/helpers.js +22 -5
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/multisig.js +90 -0
- package/dist/utils/multisig.js.map +1 -0
- package/dist/utils/transaction.js +30 -3
- package/dist/utils/transaction.js.map +1 -1
- package/dist/utils/wallet-storage-encryption.js +45 -0
- package/dist/utils/wallet-storage-encryption.js.map +1 -0
- package/dist/utils/wallet.js +3 -1
- package/dist/utils/wallet.js.map +1 -1
- package/dist/utils/watch-only.js +102 -0
- package/dist/utils/watch-only.js.map +1 -0
- package/dist/wallet/constants.js +2 -1
- package/dist/wallet/constants.js.map +1 -1
- package/dist/wallet/index.js +787 -30
- package/dist/wallet/index.js.map +1 -1
- package/docs/ROADMAP.md +292 -0
- package/package.json +1 -1
|
@@ -32,6 +32,20 @@ export interface ChannelInfo {
|
|
|
32
32
|
shortChannelId?: string;
|
|
33
33
|
feeratePerKw?: number;
|
|
34
34
|
htlcCount?: number;
|
|
35
|
+
feeBaseMsat?: number;
|
|
36
|
+
feeProportionalMillionths?: number;
|
|
37
|
+
cltvExpiryDelta?: number;
|
|
38
|
+
htlcMinimumMsat?: string;
|
|
39
|
+
htlcMaximumMsat?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ChannelPolicyInfo {
|
|
42
|
+
channelId: string;
|
|
43
|
+
feeBaseMsat: number;
|
|
44
|
+
feeProportionalMillionths: number;
|
|
45
|
+
cltvExpiryDelta: number;
|
|
46
|
+
htlcMinimumMsat: string;
|
|
47
|
+
htlcMaximumMsat: string;
|
|
48
|
+
source: 'override' | 'default';
|
|
35
49
|
}
|
|
36
50
|
export interface PaymentRouteHop {
|
|
37
51
|
pubkey: string;
|
|
@@ -81,6 +95,17 @@ export interface InvoiceInfo {
|
|
|
81
95
|
createdAt?: number;
|
|
82
96
|
status?: 'PENDING' | 'PAID' | 'EXPIRED';
|
|
83
97
|
}
|
|
98
|
+
export interface HoldInvoiceInfo {
|
|
99
|
+
paymentHash: string;
|
|
100
|
+
bolt11: string;
|
|
101
|
+
state: 'OPEN' | 'ACCEPTED' | 'SETTLED' | 'CANCELLED';
|
|
102
|
+
heldAmountMsat: string;
|
|
103
|
+
htlcCount: number;
|
|
104
|
+
amountSats?: number;
|
|
105
|
+
description?: string;
|
|
106
|
+
expiry: number;
|
|
107
|
+
createdAt: number;
|
|
108
|
+
}
|
|
84
109
|
export interface DecodedInvoice {
|
|
85
110
|
network: string;
|
|
86
111
|
amountSats?: number;
|
|
@@ -122,6 +147,58 @@ export interface UtxoInfo {
|
|
|
122
147
|
address: string;
|
|
123
148
|
valueSats: number;
|
|
124
149
|
height: number;
|
|
150
|
+
frozen: boolean;
|
|
151
|
+
}
|
|
152
|
+
export interface DescriptorsInfo {
|
|
153
|
+
fingerprint: string;
|
|
154
|
+
network: string;
|
|
155
|
+
account: number;
|
|
156
|
+
birthdayHeight?: number;
|
|
157
|
+
watchOnly: boolean;
|
|
158
|
+
descriptors: Array<{
|
|
159
|
+
addressType: string;
|
|
160
|
+
external: string;
|
|
161
|
+
internal: string;
|
|
162
|
+
}>;
|
|
163
|
+
}
|
|
164
|
+
export interface PsbtBuildInfo {
|
|
165
|
+
psbtBase64: string;
|
|
166
|
+
feeSats: number;
|
|
167
|
+
vsizeEstimate: number;
|
|
168
|
+
satsPerVbyte: number;
|
|
169
|
+
inputs: Array<{
|
|
170
|
+
txid: string;
|
|
171
|
+
vout: number;
|
|
172
|
+
address: string;
|
|
173
|
+
valueSats: number;
|
|
174
|
+
path: string;
|
|
175
|
+
}>;
|
|
176
|
+
outputs: Array<{
|
|
177
|
+
address?: string;
|
|
178
|
+
valueSats: number;
|
|
179
|
+
}>;
|
|
180
|
+
}
|
|
181
|
+
export interface PsbtImportInfo {
|
|
182
|
+
txid: string;
|
|
183
|
+
txHex: string;
|
|
184
|
+
}
|
|
185
|
+
export interface BoostResult {
|
|
186
|
+
txid: string;
|
|
187
|
+
hex: string;
|
|
188
|
+
boostType: 'rbf' | 'cpfp';
|
|
189
|
+
feeSats: number;
|
|
190
|
+
originalTxid: string;
|
|
191
|
+
}
|
|
192
|
+
export interface BoostableTransactions {
|
|
193
|
+
rbf: OnchainTxInfo[];
|
|
194
|
+
cpfp: OnchainTxInfo[];
|
|
195
|
+
}
|
|
196
|
+
export interface ConsolidateResult {
|
|
197
|
+
txid: string;
|
|
198
|
+
hex: string;
|
|
199
|
+
utxosConsolidated: number;
|
|
200
|
+
address: string;
|
|
201
|
+
feeSats: number;
|
|
125
202
|
}
|
|
126
203
|
export interface BalanceInfo {
|
|
127
204
|
onchain: number;
|
|
@@ -162,7 +239,7 @@ export interface Bolt12InvoiceInfo {
|
|
|
162
239
|
}
|
|
163
240
|
export interface BeignetConfig {
|
|
164
241
|
mnemonic?: string;
|
|
165
|
-
network?: 'mainnet' | 'testnet' | 'regtest';
|
|
242
|
+
network?: 'mainnet' | 'testnet' | 'regtest' | 'signet';
|
|
166
243
|
alias?: string;
|
|
167
244
|
dataDir?: string;
|
|
168
245
|
electrumHost?: string;
|
|
@@ -173,10 +250,12 @@ export interface BeignetConfig {
|
|
|
173
250
|
port: number;
|
|
174
251
|
tls?: boolean;
|
|
175
252
|
}>;
|
|
253
|
+
feeEstimationSource?: 'electrum' | 'http' | 'auto';
|
|
176
254
|
listenPort?: number;
|
|
177
255
|
daemonPort?: number;
|
|
178
256
|
daemonHost?: string;
|
|
179
257
|
preferAnchors?: boolean;
|
|
258
|
+
largeChannels?: boolean;
|
|
180
259
|
apiToken?: string;
|
|
181
260
|
autoBootstrap?: boolean;
|
|
182
261
|
backupPath?: string;
|
|
@@ -187,6 +266,8 @@ export interface BeignetConfig {
|
|
|
187
266
|
tlsKey?: string;
|
|
188
267
|
torProxy?: string;
|
|
189
268
|
announceAddresses?: string[];
|
|
269
|
+
watchtowers?: string[];
|
|
270
|
+
htlcEvents?: boolean;
|
|
190
271
|
}
|
|
191
272
|
export interface HealthInfo {
|
|
192
273
|
status: 'ready' | 'syncing' | 'degraded';
|
|
@@ -220,11 +301,93 @@ export interface PaymentFilter {
|
|
|
220
301
|
metadataKey?: string;
|
|
221
302
|
metadataValue?: string;
|
|
222
303
|
}
|
|
304
|
+
export interface ForwardsFilter {
|
|
305
|
+
since?: number;
|
|
306
|
+
until?: number;
|
|
307
|
+
limit?: number;
|
|
308
|
+
offset?: number;
|
|
309
|
+
channelId?: string;
|
|
310
|
+
}
|
|
311
|
+
export interface ForwardingEventInfo {
|
|
312
|
+
id: number;
|
|
313
|
+
settledAt: number;
|
|
314
|
+
inChannelId: string;
|
|
315
|
+
outChannelId: string;
|
|
316
|
+
inScid?: string;
|
|
317
|
+
outScid?: string;
|
|
318
|
+
amountInMsat: string;
|
|
319
|
+
amountOutMsat: string;
|
|
320
|
+
feeMsat: string;
|
|
321
|
+
}
|
|
322
|
+
export interface ForwardingSummaryInfo {
|
|
323
|
+
count: number;
|
|
324
|
+
volumeOutMsat: string;
|
|
325
|
+
feesEarnedMsat: string;
|
|
326
|
+
}
|
|
223
327
|
export interface RouteEstimate {
|
|
224
328
|
feeSats: number;
|
|
225
329
|
hops: number;
|
|
226
330
|
cltvDelta: number;
|
|
227
331
|
}
|
|
332
|
+
export interface GraphInfo {
|
|
333
|
+
nodeCount: number;
|
|
334
|
+
channelCount: number;
|
|
335
|
+
lastSyncAt?: number;
|
|
336
|
+
}
|
|
337
|
+
export interface GraphChannelPolicy {
|
|
338
|
+
feeBaseMsat: number;
|
|
339
|
+
feeProportionalMillionths: number;
|
|
340
|
+
cltvExpiryDelta: number;
|
|
341
|
+
htlcMinimumMsat: string;
|
|
342
|
+
htlcMaximumMsat?: string;
|
|
343
|
+
disabled: boolean;
|
|
344
|
+
lastUpdate: number;
|
|
345
|
+
}
|
|
346
|
+
export interface GraphChannelInfo {
|
|
347
|
+
shortChannelId: string;
|
|
348
|
+
node1Pubkey: string;
|
|
349
|
+
node2Pubkey: string;
|
|
350
|
+
capacitySats?: number;
|
|
351
|
+
node1Policy?: GraphChannelPolicy;
|
|
352
|
+
node2Policy?: GraphChannelPolicy;
|
|
353
|
+
}
|
|
354
|
+
export interface GraphNodeInfo {
|
|
355
|
+
pubkey: string;
|
|
356
|
+
alias?: string;
|
|
357
|
+
color?: string;
|
|
358
|
+
addresses?: Array<{
|
|
359
|
+
type: number;
|
|
360
|
+
host: string;
|
|
361
|
+
port: number;
|
|
362
|
+
}>;
|
|
363
|
+
featuresHex?: string;
|
|
364
|
+
lastUpdate?: number;
|
|
365
|
+
channelCount: number;
|
|
366
|
+
channels: string[];
|
|
367
|
+
}
|
|
368
|
+
export interface GraphDescribeResult {
|
|
369
|
+
totalChannels: number;
|
|
370
|
+
limit: number;
|
|
371
|
+
offset: number;
|
|
372
|
+
channels: GraphChannelInfo[];
|
|
373
|
+
}
|
|
374
|
+
export interface RouteHop {
|
|
375
|
+
pubkey: string;
|
|
376
|
+
shortChannelId: string;
|
|
377
|
+
amountToForwardMsat: string;
|
|
378
|
+
outgoingCltvValue: number;
|
|
379
|
+
feeMsat: string;
|
|
380
|
+
cltvExpiryDelta: number;
|
|
381
|
+
}
|
|
382
|
+
export interface RouteQueryResult {
|
|
383
|
+
destination: string;
|
|
384
|
+
amountSats: number;
|
|
385
|
+
hops: RouteHop[];
|
|
386
|
+
totalAmountMsat: string;
|
|
387
|
+
totalFeeMsat: string;
|
|
388
|
+
totalCltvDelta: number;
|
|
389
|
+
finalCltvExpiry: number;
|
|
390
|
+
}
|
|
228
391
|
export interface NodeStats {
|
|
229
392
|
totalPaymentsSent: number;
|
|
230
393
|
totalPaymentsReceived: number;
|
|
@@ -254,6 +417,38 @@ export interface LiquiditySnapshot {
|
|
|
254
417
|
inboundLiquidityPct: number;
|
|
255
418
|
recommendations: LiquidityRecommendation[];
|
|
256
419
|
}
|
|
420
|
+
export interface RebalancePlanInfo {
|
|
421
|
+
fromChannelId: string;
|
|
422
|
+
toChannelId: string;
|
|
423
|
+
amountSats: number;
|
|
424
|
+
reason: string;
|
|
425
|
+
}
|
|
426
|
+
export interface AdvisorRecommendations extends LiquiditySnapshot {
|
|
427
|
+
rebalancePlan: RebalancePlanInfo[];
|
|
428
|
+
}
|
|
429
|
+
export interface RebalanceResult {
|
|
430
|
+
paymentHash: string;
|
|
431
|
+
amountSats: number;
|
|
432
|
+
feeMsat: string;
|
|
433
|
+
feeSats: number;
|
|
434
|
+
hops: number;
|
|
435
|
+
}
|
|
436
|
+
export interface RebalanceAttemptInfo {
|
|
437
|
+
fromChannelId: string;
|
|
438
|
+
toChannelId: string;
|
|
439
|
+
amountSats: number;
|
|
440
|
+
status: 'SUCCEEDED' | 'FAILED' | 'SKIPPED_BUDGET';
|
|
441
|
+
feeMsat?: string;
|
|
442
|
+
error?: string;
|
|
443
|
+
}
|
|
444
|
+
export interface RebalanceExecutionSummary {
|
|
445
|
+
attempts: RebalanceAttemptInfo[];
|
|
446
|
+
succeeded: number;
|
|
447
|
+
failed: number;
|
|
448
|
+
skippedBudget: number;
|
|
449
|
+
feeSpentMsat: string;
|
|
450
|
+
budgetRemainingMsat: string;
|
|
451
|
+
}
|
|
257
452
|
export interface WebhookRegistration {
|
|
258
453
|
id: string;
|
|
259
454
|
url: string;
|
|
@@ -351,12 +546,44 @@ export interface BeignetNodeEvents {
|
|
|
351
546
|
nextRetryMs: number;
|
|
352
547
|
error: string;
|
|
353
548
|
}) => void;
|
|
549
|
+
'invoice:settled': (data: {
|
|
550
|
+
paymentHash: string;
|
|
551
|
+
bolt11: string;
|
|
552
|
+
amountSats: number;
|
|
553
|
+
}) => void;
|
|
554
|
+
'channel:opening': (data: {
|
|
555
|
+
channelId: string;
|
|
556
|
+
fundingTxid: string;
|
|
557
|
+
}) => void;
|
|
354
558
|
'channel:ready': (data: {
|
|
355
559
|
channelId: string;
|
|
356
560
|
}) => void;
|
|
561
|
+
'channel:pending-close': (data: {
|
|
562
|
+
channelId: string;
|
|
563
|
+
initiator: 'local' | 'remote';
|
|
564
|
+
}) => void;
|
|
565
|
+
'channel:force-closing': (data: {
|
|
566
|
+
channelId: string;
|
|
567
|
+
initiator: 'local' | 'remote';
|
|
568
|
+
}) => void;
|
|
357
569
|
'channel:closed': (data: {
|
|
358
570
|
channelId: string;
|
|
359
571
|
}) => void;
|
|
572
|
+
'htlc:forwarded': (data: {
|
|
573
|
+
inChannelId: string;
|
|
574
|
+
outChannelId: string;
|
|
575
|
+
amountInMsat: string;
|
|
576
|
+
amountOutMsat: string;
|
|
577
|
+
feeMsat: string;
|
|
578
|
+
}) => void;
|
|
579
|
+
'htlc:fulfilled': (data: {
|
|
580
|
+
channelId: string;
|
|
581
|
+
htlcId: string;
|
|
582
|
+
}) => void;
|
|
583
|
+
'htlc:failed': (data: {
|
|
584
|
+
channelId: string;
|
|
585
|
+
htlcId: string;
|
|
586
|
+
}) => void;
|
|
360
587
|
'peer:connect': (data: {
|
|
361
588
|
pubkey: string;
|
|
362
589
|
}) => void;
|
|
@@ -9,6 +9,9 @@ export declare class Electrum {
|
|
|
9
9
|
private net;
|
|
10
10
|
private tls;
|
|
11
11
|
private _connectInFlight;
|
|
12
|
+
private _serverFailures;
|
|
13
|
+
private _currentServer;
|
|
14
|
+
private _rotationCount;
|
|
12
15
|
servers?: TServer | TServer[];
|
|
13
16
|
network: EAvailableNetworks;
|
|
14
17
|
electrumNetwork: EElectrumNetworks;
|
|
@@ -33,9 +36,18 @@ export declare class Electrum {
|
|
|
33
36
|
disableRegtestCheck?: boolean;
|
|
34
37
|
}): Promise<Result<TConnectToElectrumRes>>;
|
|
35
38
|
private _doConnect;
|
|
39
|
+
private attemptConnect;
|
|
40
|
+
private getServerCandidates;
|
|
41
|
+
private orderCandidates;
|
|
42
|
+
private serverKey;
|
|
43
|
+
private recordServerFailure;
|
|
44
|
+
private recordServerSuccess;
|
|
45
|
+
get currentServer(): TServer | null;
|
|
46
|
+
get rotationCount(): number;
|
|
36
47
|
isConnected(): Promise<boolean>;
|
|
37
48
|
getAddressBalance(scriptHash: string): Promise<IElectrumGetAddressBalanceRes>;
|
|
38
49
|
getAddressScriptHashBalances(scriptHashes: string[]): Promise<IGetAddressScriptHashBalances>;
|
|
50
|
+
getFeeEstimate(blocksWillingToWait: number): Promise<Result<number>>;
|
|
39
51
|
getConnectedPeer(): Promise<Result<IPeerData>>;
|
|
40
52
|
listUnspentAddressScriptHashes({ addresses }: {
|
|
41
53
|
addresses: TUnspentAddressScriptHashData;
|
package/dist/types/electrum.js
CHANGED
|
@@ -6,6 +6,7 @@ var EElectrumNetworks;
|
|
|
6
6
|
EElectrumNetworks["bitcoin"] = "bitcoin";
|
|
7
7
|
EElectrumNetworks["bitcoinTestnet"] = "bitcoinTestnet";
|
|
8
8
|
EElectrumNetworks["bitcoinRegtest"] = "bitcoinRegtest";
|
|
9
|
+
EElectrumNetworks["bitcoinSignet"] = "bitcoinSignet";
|
|
9
10
|
})(EElectrumNetworks = exports.EElectrumNetworks || (exports.EElectrumNetworks = {}));
|
|
10
11
|
var EProtocol;
|
|
11
12
|
(function (EProtocol) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electrum.js","sourceRoot":"","sources":["../../src/types/electrum.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"electrum.js","sourceRoot":"","sources":["../../src/types/electrum.ts"],"names":[],"mappings":";;;AAgBA,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC5B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,oDAA+B,CAAA;AAChC,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAcD,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,wBAAW,CAAA;IACX,wBAAW,CAAA;AACZ,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB;AAED,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC5B,gCAAW,CAAA;IACX,0CAAqB,CAAA;IACrB,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;AAC5B,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface IFeeTuneInput {
|
|
2
|
+
channelId: string;
|
|
3
|
+
currentPpm: number;
|
|
4
|
+
localBalanceFraction: number;
|
|
5
|
+
outboundForwards: number;
|
|
6
|
+
totalForwards: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IFeeTuneAdjustment {
|
|
9
|
+
channelId: string;
|
|
10
|
+
oldPpm: number;
|
|
11
|
+
newPpm: number;
|
|
12
|
+
reason: 'DEPLETED_OUTBOUND' | 'IDLE';
|
|
13
|
+
}
|
|
14
|
+
export interface IFeeTuneOptions {
|
|
15
|
+
floorPpm: number;
|
|
16
|
+
ceilPpm: number;
|
|
17
|
+
}
|
|
18
|
+
export declare const DEFAULT_FEE_TUNE_FLOOR_PPM = 1;
|
|
19
|
+
export declare const DEFAULT_FEE_TUNE_CEIL_PPM = 10000;
|
|
20
|
+
export declare function computeFeeTuneAdjustments(inputs: IFeeTuneInput[], options: IFeeTuneOptions): IFeeTuneAdjustment[];
|
|
@@ -4,3 +4,7 @@ export { FeeAdvisor } from './fee-advisor';
|
|
|
4
4
|
export type { IFeeSnapshot, FeeTrend, FeeRecommendation } from './fee-advisor';
|
|
5
5
|
export { ChannelSuggestions } from './channel-suggestions';
|
|
6
6
|
export type { IChannelSuggestion, IChannelSuggestionsOptions } from './channel-suggestions';
|
|
7
|
+
export { planRebalances, MIN_REBALANCE_SATS, DEFAULT_MIN_IMBALANCE_PCT } from './rebalance-planner';
|
|
8
|
+
export type { IRebalancePlan } from './rebalance-planner';
|
|
9
|
+
export { computeFeeTuneAdjustments, DEFAULT_FEE_TUNE_FLOOR_PPM, DEFAULT_FEE_TUNE_CEIL_PPM } from './fee-tuner';
|
|
10
|
+
export type { IFeeTuneInput, IFeeTuneAdjustment, IFeeTuneOptions } from './fee-tuner';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IChannelSnapshot } from './liquidity-advisor';
|
|
2
|
+
export interface IRebalancePlan {
|
|
3
|
+
fromChannelId: string;
|
|
4
|
+
toChannelId: string;
|
|
5
|
+
amountSats: bigint;
|
|
6
|
+
reason: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const MIN_REBALANCE_SATS = 1000n;
|
|
9
|
+
export declare const DEFAULT_MIN_IMBALANCE_PCT = 20;
|
|
10
|
+
export declare function planRebalances(channels: IChannelSnapshot[], options?: {
|
|
11
|
+
minImbalancePct?: number;
|
|
12
|
+
}): IRebalancePlan[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './scb';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const SCB_PREFIX = "beignet-scb-v1:";
|
|
3
|
+
export declare const SCB_VERSION = 1;
|
|
4
|
+
export interface IScbChannelEntry {
|
|
5
|
+
channelId: string;
|
|
6
|
+
peerNodeId: string;
|
|
7
|
+
peerAddresses: string[];
|
|
8
|
+
fundingTxid: string;
|
|
9
|
+
fundingOutputIndex: number;
|
|
10
|
+
fundingSatoshis: string;
|
|
11
|
+
channelKeyIndex: number | null;
|
|
12
|
+
channelType: string;
|
|
13
|
+
role: 'OPENER' | 'ACCEPTOR';
|
|
14
|
+
isTaproot: boolean;
|
|
15
|
+
isAnchor: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface IStaticChannelBackup {
|
|
18
|
+
version: 1;
|
|
19
|
+
network: string;
|
|
20
|
+
createdAt: number;
|
|
21
|
+
channels: IScbChannelEntry[];
|
|
22
|
+
}
|
|
23
|
+
export declare function encodeScb(backup: IStaticChannelBackup, seed: Buffer): string;
|
|
24
|
+
export declare function decodeScb(encoded: string, seed: Buffer): IStaticChannelBackup;
|
|
@@ -47,6 +47,7 @@ export declare class ChainMonitor {
|
|
|
47
47
|
private _scheduleSweep;
|
|
48
48
|
private _handleOurCommitment;
|
|
49
49
|
private _handleTheirCurrentCommitment;
|
|
50
|
+
private _handleTheirFutureCommitment;
|
|
50
51
|
rebuildSweep(output: ITrackedOutput, feeRatePerVbyte: number): bitcoin.Transaction | null;
|
|
51
52
|
private _handleRevokedCommitment;
|
|
52
53
|
}
|
|
@@ -4,6 +4,7 @@ export declare enum CommitmentType {
|
|
|
4
4
|
OUR_COMMITMENT = "OUR_COMMITMENT",
|
|
5
5
|
THEIR_CURRENT_COMMITMENT = "THEIR_CURRENT_COMMITMENT",
|
|
6
6
|
THEIR_REVOKED_COMMITMENT = "THEIR_REVOKED_COMMITMENT",
|
|
7
|
+
THEIR_FUTURE_COMMITMENT = "THEIR_FUTURE_COMMITMENT",
|
|
7
8
|
UNKNOWN = "UNKNOWN"
|
|
8
9
|
}
|
|
9
10
|
export declare enum OutputStatus {
|
|
@@ -36,6 +36,7 @@ export interface IChannelManagerConfig {
|
|
|
36
36
|
channelKeyDeriver?: (channelIndex: number) => IPerChannelKeys;
|
|
37
37
|
leaseRates?: ILeaseRates;
|
|
38
38
|
localFeatures?: FeatureFlags;
|
|
39
|
+
largeChannels?: boolean;
|
|
39
40
|
}
|
|
40
41
|
export declare class ChannelManager extends EventEmitter {
|
|
41
42
|
private config;
|
|
@@ -90,6 +91,11 @@ export declare class ChannelManager extends EventEmitter {
|
|
|
90
91
|
delayedPaymentBasepointSecret?: Buffer;
|
|
91
92
|
htlcBasepointSecret?: Buffer;
|
|
92
93
|
} | null;
|
|
94
|
+
getRecoveryChannelMaterial(channelKeyIndex: number | null): {
|
|
95
|
+
basepoints: IChannelBasepoints;
|
|
96
|
+
perCommitmentSeed: Buffer;
|
|
97
|
+
localConfig: IChannelConfig;
|
|
98
|
+
};
|
|
93
99
|
setMonitorDestinationScript(destinationScript: Buffer): void;
|
|
94
100
|
forceClose(channelId: Buffer, destinationScript: Buffer, feeRatePerVbyte?: number, network?: import('bitcoinjs-lib').Network): ChannelResult;
|
|
95
101
|
handleFundingSpent(channelId: Buffer, spendingTx: import('bitcoinjs-lib').Transaction, blockHeight: number, destinationScript: Buffer, feeRatePerVbyte?: number, revocationBasepointSecret?: Buffer, paymentPrivkey?: Buffer, network?: import('bitcoinjs-lib').Network): ChainAction[];
|
|
@@ -139,6 +145,7 @@ export declare class ChannelManager extends EventEmitter {
|
|
|
139
145
|
private handleStfu;
|
|
140
146
|
initiateQuiescence(channelId: Buffer): ChannelResult;
|
|
141
147
|
private peerSupportsSplicing;
|
|
148
|
+
private maxFundingForPeer;
|
|
142
149
|
private peerNegotiatedSimpleClose;
|
|
143
150
|
private handleSpliceMsg;
|
|
144
151
|
private handleSpliceAckMsg;
|
|
@@ -121,6 +121,8 @@ export interface IChannelState {
|
|
|
121
121
|
lastCooperativeCloseTxHex?: string;
|
|
122
122
|
localNonce?: Uint8Array;
|
|
123
123
|
localNextNonce?: Uint8Array;
|
|
124
|
+
dataLossDetected?: boolean;
|
|
125
|
+
dlpRemotePerCommitmentPoint?: Buffer;
|
|
124
126
|
remoteNonce?: Buffer;
|
|
125
127
|
remoteSigningNonce?: Buffer;
|
|
126
128
|
}
|
|
@@ -50,6 +50,8 @@ export declare class Channel {
|
|
|
50
50
|
private _spliceRemoteCommitmentSig;
|
|
51
51
|
private _pendingBatch;
|
|
52
52
|
private _lastSentBatch;
|
|
53
|
+
private _remoteCommitmentTxCache;
|
|
54
|
+
private static readonly REVOKED_TX_CACHE_MAX;
|
|
53
55
|
private _forgottenSplice;
|
|
54
56
|
private _spliceAbortPending;
|
|
55
57
|
private _reestablishRetransmitted;
|
|
@@ -62,7 +64,9 @@ export declare class Channel {
|
|
|
62
64
|
private _taprootClosingCache;
|
|
63
65
|
private _currentBlockHeight;
|
|
64
66
|
private _channelKeyIndex;
|
|
67
|
+
private _maxFundingSatoshis;
|
|
65
68
|
constructor(state: IChannelState, signer?: ChannelSigner);
|
|
69
|
+
setMaxFundingSatoshis(max: bigint): void;
|
|
66
70
|
get channelKeyIndex(): number | null;
|
|
67
71
|
set channelKeyIndex(value: number | null);
|
|
68
72
|
setSigner(signer: ChannelSigner): void;
|
|
@@ -114,6 +118,8 @@ export declare class Channel {
|
|
|
114
118
|
handleUpdateFailMalformedHtlc(msg: IUpdateFailMalformedHtlcMessage): ChannelAction[];
|
|
115
119
|
private _queuePendingLocalUpdate;
|
|
116
120
|
private _snapshotRemoteCommitmentHtlcs;
|
|
121
|
+
private _cacheRemoteCommitmentForWatchtower;
|
|
122
|
+
takeRevokedCommitmentTx(perCommitmentSecret: Buffer): Buffer | null;
|
|
117
123
|
signCommitment(signature: Buffer, htlcSignatures: Buffer[], partialSignatureWithNonce?: Buffer, spliceBatch?: {
|
|
118
124
|
spliceSignature: Buffer;
|
|
119
125
|
spliceHtlcSignatures: Buffer[];
|
|
@@ -53,7 +53,8 @@ export declare class DualFundingSession {
|
|
|
53
53
|
private _rbfCount;
|
|
54
54
|
private _openMsg;
|
|
55
55
|
private _acceptMsg;
|
|
56
|
-
|
|
56
|
+
private _maxFundingSatoshis;
|
|
57
|
+
constructor(isInitiator: boolean, channelId: Buffer, maxFundingSatoshis?: bigint);
|
|
57
58
|
getState(): DualFundingState;
|
|
58
59
|
isInitiator(): boolean;
|
|
59
60
|
getChannelId(): Buffer;
|
|
@@ -61,6 +61,7 @@ export interface IChannelConfig {
|
|
|
61
61
|
}
|
|
62
62
|
export declare const MAX_ACCEPTED_HTLCS = 483;
|
|
63
63
|
export declare const MAX_FUNDING_SATOSHIS = 16777216n;
|
|
64
|
+
export declare const MAX_WUMBO_FUNDING_SATOSHIS = 1000000000n;
|
|
64
65
|
export declare const MIN_DUST_LIMIT_SATOSHIS = 354n;
|
|
65
66
|
export declare const DEFAULT_CHANNEL_CONFIG: IChannelConfig;
|
|
66
67
|
export interface ChannelResult {
|
|
@@ -70,3 +71,4 @@ export interface ChannelResult {
|
|
|
70
71
|
}
|
|
71
72
|
export declare const BITCOIN_CHAIN_HASH: Buffer;
|
|
72
73
|
export declare const REGTEST_CHAIN_HASH: Buffer;
|
|
74
|
+
export declare const SIGNET_CHAIN_HASH: Buffer;
|
|
@@ -4,6 +4,6 @@ export declare function deriveChannelId(fundingTxid: Buffer, fundingOutputIndex:
|
|
|
4
4
|
export declare function generateTemporaryChannelId(): Buffer;
|
|
5
5
|
export declare function deriveV2ChannelId(revocationBasepointA: Buffer, revocationBasepointB: Buffer): Buffer;
|
|
6
6
|
export declare function deriveV2TemporaryChannelId(openerRevocationBasepoint: Buffer): Buffer;
|
|
7
|
-
export declare function validateOpenChannelParams(msg: IOpenChannelMessage): string | null;
|
|
7
|
+
export declare function validateOpenChannelParams(msg: IOpenChannelMessage, maxFundingSatoshis?: bigint): string | null;
|
|
8
8
|
export declare function validateAcceptChannelParams(open: IOpenChannelMessage, accept: IAcceptChannelMessage): string | null;
|
|
9
9
|
export declare function isValidShutdownScript(script: Buffer, allowAnySegwit?: boolean, allowOpReturn?: boolean): boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare function zbase32Encode(data: Buffer): string;
|
|
3
|
+
export declare function zbase32Decode(text: string): Buffer | null;
|
|
4
|
+
export declare function signMessageWithKey(message: string | Buffer, privateKey: Buffer): string;
|
|
5
|
+
export interface IVerifyMessageResult {
|
|
6
|
+
valid: boolean;
|
|
7
|
+
pubkey: Buffer | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function verifyMessageSignature(message: string | Buffer, signature: string): IVerifyMessageResult;
|
|
@@ -13,4 +13,8 @@ export declare function decodeNodeAddress(buf: Buffer, offset: number): {
|
|
|
13
13
|
address: INodeAddress;
|
|
14
14
|
bytesRead: number;
|
|
15
15
|
};
|
|
16
|
+
export declare function nodeAddressToHostPort(addr: INodeAddress): {
|
|
17
|
+
host: string;
|
|
18
|
+
port: number;
|
|
19
|
+
} | null;
|
|
16
20
|
export declare function parseAnnouncedAddress(input: string): INodeAddress;
|
|
@@ -11,6 +11,7 @@ export * from './channel-commitment';
|
|
|
11
11
|
export * from './channel-close';
|
|
12
12
|
export * from './channel-reestablish';
|
|
13
13
|
export * from './stfu';
|
|
14
|
+
export * from './peer-storage';
|
|
14
15
|
export * from './interactive-tx';
|
|
15
16
|
export * from './dual-funding';
|
|
16
17
|
export * from './splice';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare const PEER_STORAGE_MAX_BYTES = 65531;
|
|
3
|
+
export interface IPeerStorageMessage {
|
|
4
|
+
blob: Buffer;
|
|
5
|
+
}
|
|
6
|
+
export declare function encodePeerStorageMessage(msg: IPeerStorageMessage): Buffer;
|
|
7
|
+
export declare function decodePeerStorageMessage(payload: Buffer): IPeerStorageMessage;
|
|
8
|
+
export declare function encodePeerStorageRetrievalMessage(msg: IPeerStorageMessage): Buffer;
|
|
9
|
+
export declare function decodePeerStorageRetrievalMessage(payload: Buffer): IPeerStorageMessage;
|