@@ -73,8 +73,17 @@ export enum CommitmentType {
73
73
* channel before its maturity date.
74
74
*/
75
75
SCRIPT_ENFORCED_LEASE = 'SCRIPT_ENFORCED_LEASE' ,
76
- /** SIMPLE_TAPROOT - TODO(roasbeef): need script enforce mirror type for the above as well? */
76
+ /**
77
+ * SIMPLE_TAPROOT - A channel that uses musig2 for the funding output, and the new tapscript
78
+ * features where relevant.
79
+ */
77
80
SIMPLE_TAPROOT = 'SIMPLE_TAPROOT' ,
81
+ /**
82
+ * SIMPLE_TAPROOT_OVERLAY - Identical to the SIMPLE_TAPROOT channel type, but with extra functionality.
83
+ * This channel type also commits to additional meta data in the tapscript
84
+ * leaves for the scripts in a channel.
85
+ */
86
+ SIMPLE_TAPROOT_OVERLAY = 'SIMPLE_TAPROOT_OVERLAY' ,
78
87
UNRECOGNIZED = 'UNRECOGNIZED'
79
88
}
80
89
@@ -164,6 +173,8 @@ export enum PaymentFailureReason {
164
173
FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 'FAILURE_REASON_INCORRECT_PAYMENT_DETAILS' ,
165
174
/** FAILURE_REASON_INSUFFICIENT_BALANCE - Insufficient local balance. */
166
175
FAILURE_REASON_INSUFFICIENT_BALANCE = 'FAILURE_REASON_INSUFFICIENT_BALANCE' ,
176
+ /** FAILURE_REASON_CANCELED - The payment was canceled. */
177
+ FAILURE_REASON_CANCELED = 'FAILURE_REASON_CANCELED' ,
167
178
UNRECOGNIZED = 'UNRECOGNIZED'
168
179
}
169
180
@@ -729,9 +740,8 @@ export interface SendCoinsRequest {
729
740
*/
730
741
satPerByte : string ;
731
742
/**
732
- * If set, then the amount field will be ignored, and lnd will attempt to
733
- * send all the coins under control of the internal wallet to the specified
734
- * address.
743
+ * If set, the amount field should be unset. It indicates lnd will send all
744
+ * wallet coins or all selected coins to the specified address.
735
745
*/
736
746
sendAll : boolean ;
737
747
/** An optional label for the transaction, limited to 500 characters. */
@@ -745,6 +755,8 @@ export interface SendCoinsRequest {
745
755
spendUnconfirmed : boolean ;
746
756
/** The strategy to use for selecting coins. */
747
757
coinSelectionStrategy : CoinSelectionStrategy ;
758
+ /** A list of selected outpoints as inputs for the transaction. */
759
+ outpoints : OutPoint [ ] ;
748
760
}
749
761
750
762
export interface SendCoinsResponse {
@@ -1027,6 +1039,8 @@ export interface Channel {
1027
1039
* the channel's operation.
1028
1040
*/
1029
1041
memo : string ;
1042
+ /** Custom channel data that might be populated in custom channels. */
1043
+ customChannelData : Uint8Array | string ;
1030
1044
}
1031
1045
1032
1046
export interface ListChannelsRequest {
@@ -1356,9 +1370,39 @@ export interface ChannelOpenUpdate {
1356
1370
channelPoint : ChannelPoint | undefined ;
1357
1371
}
1358
1372
1373
+ export interface CloseOutput {
1374
+ /**
1375
+ * The amount in satoshi of this close output. This amount is the final
1376
+ * commitment balance of the channel and the actual amount paid out on chain
1377
+ * might be smaller due to subtracted fees.
1378
+ */
1379
+ amountSat : string ;
1380
+ /** The pkScript of the close output. */
1381
+ pkScript : Uint8Array | string ;
1382
+ /** Whether this output is for the local or remote node. */
1383
+ isLocal : boolean ;
1384
+ /**
1385
+ * The TLV encoded custom channel data records for this output, which might
1386
+ * be set for custom channels.
1387
+ */
1388
+ customChannelData : Uint8Array | string ;
1389
+ }
1390
+
1359
1391
export interface ChannelCloseUpdate {
1360
1392
closingTxid : Uint8Array | string ;
1361
1393
success : boolean ;
1394
+ /**
1395
+ * The local channel close output. If the local channel balance was dust to
1396
+ * begin with, this output will not be set.
1397
+ */
1398
+ localCloseOutput : CloseOutput | undefined ;
1399
+ /**
1400
+ * The remote channel close output. If the remote channel balance was dust
1401
+ * to begin with, this output will not be set.
1402
+ */
1403
+ remoteCloseOutput : CloseOutput | undefined ;
1404
+ /** Any additional outputs that might be added for custom channel types. */
1405
+ additionalOutputs : CloseOutput [ ] ;
1362
1406
}
1363
1407
1364
1408
export interface CloseChannelRequest {
@@ -1991,6 +2035,8 @@ export interface PendingChannelsResponse_PendingChannel {
1991
2035
* impacts the channel's operation.
1992
2036
*/
1993
2037
memo : string ;
2038
+ /** Custom channel data that might be populated in custom channels. */
2039
+ customChannelData : Uint8Array | string ;
1994
2040
}
1995
2041
1996
2042
export interface PendingChannelsResponse_PendingOpenChannel {
@@ -2212,6 +2258,11 @@ export interface ChannelBalanceResponse {
2212
2258
pendingOpenLocalBalance : Amount | undefined ;
2213
2259
/** Sum of channels pending remote balances. */
2214
2260
pendingOpenRemoteBalance : Amount | undefined ;
2261
+ /**
2262
+ * Custom channel data that might be populated if there are custom channels
2263
+ * present.
2264
+ */
2265
+ customChannelData : Uint8Array | string ;
2215
2266
}
2216
2267
2217
2268
export interface QueryRoutesRequest {
@@ -2507,6 +2558,16 @@ export interface Route {
2507
2558
totalFeesMsat : string ;
2508
2559
/** The total amount in millisatoshis. */
2509
2560
totalAmtMsat : string ;
2561
+ /**
2562
+ * The actual on-chain amount that was sent out to the first hop. This value is
2563
+ * only different from the total_amt_msat field if this is a custom channel
2564
+ * payment and the value transported in the HTLC is different from the BTC
2565
+ * amount in the HTLC. If this value is zero, then this is an old payment that
2566
+ * didn't have this value yet and can be ignored.
2567
+ */
2568
+ firstHopAmountMsat : string ;
2569
+ /** Custom channel data that might be populated in custom channels. */
2570
+ customChannelData : Uint8Array | string ;
2510
2571
}
2511
2572
2512
2573
export interface NodeInfoRequest {
@@ -2666,6 +2727,11 @@ export interface ChanInfoRequest {
2666
2727
* output index for the channel.
2667
2728
*/
2668
2729
chanId : string ;
2730
+ /**
2731
+ * The channel point of the channel in format funding_txid:output_index. If
2732
+ * chan_id is specified, this field is ignored.
2733
+ */
2734
+ chanPoint : string ;
2669
2735
}
2670
2736
2671
2737
export interface NetworkInfoRequest { }
@@ -3006,6 +3072,17 @@ export interface Invoice {
3006
3072
* Note: Output only, don't specify for creating an invoice.
3007
3073
*/
3008
3074
ampInvoiceState : { [ key : string ] : AMPInvoiceState } ;
3075
+ /**
3076
+ * Signals that the invoice should include blinded paths to hide the true
3077
+ * identity of the recipient.
3078
+ */
3079
+ isBlinded : boolean ;
3080
+ /**
3081
+ * Config values to use when creating blinded paths for this invoice. These
3082
+ * can be used to override the defaults config values provided in by the
3083
+ * global config. This field is only used if is_blinded is true.
3084
+ */
3085
+ blindedPathConfig : BlindedPathConfig | undefined ;
3009
3086
}
3010
3087
3011
3088
export enum Invoice_InvoiceState {
@@ -3026,6 +3103,30 @@ export interface Invoice_AmpInvoiceStateEntry {
3026
3103
value : AMPInvoiceState | undefined ;
3027
3104
}
3028
3105
3106
+ export interface BlindedPathConfig {
3107
+ /**
3108
+ * The minimum number of real hops to include in a blinded path. This doesn't
3109
+ * include our node, so if the minimum is 1, then the path will contain at
3110
+ * minimum our node along with an introduction node hop. If it is zero then
3111
+ * the shortest path will use our node as an introduction node.
3112
+ */
3113
+ minNumRealHops ?: number | undefined ;
3114
+ /**
3115
+ * The number of hops to include in a blinded path. This doesn't include our
3116
+ * node, so if it is 1, then the path will contain our node along with an
3117
+ * introduction node or dummy node hop. If paths shorter than NumHops is
3118
+ * found, then they will be padded using dummy hops.
3119
+ */
3120
+ numHops ?: number | undefined ;
3121
+ /** The maximum number of blinded paths to select and add to an invoice. */
3122
+ maxNumPaths ?: number | undefined ;
3123
+ /**
3124
+ * A list of node IDs of nodes that should not be used in any of our generated
3125
+ * blinded paths.
3126
+ */
3127
+ nodeOmissionList : Uint8Array | string [ ] ;
3128
+ }
3129
+
3029
3130
/** Details of an HTLC that paid to an invoice */
3030
3131
export interface InvoiceHTLC {
3031
3132
/** Short channel id over which the htlc was received. */
@@ -3050,6 +3151,8 @@ export interface InvoiceHTLC {
3050
3151
mppTotalAmtMsat : string ;
3051
3152
/** Details relevant to AMP HTLCs, only populated if this is an AMP HTLC. */
3052
3153
amp : AMP | undefined ;
3154
+ /** Custom channel data that might be populated in custom channels. */
3155
+ customChannelData : Uint8Array | string ;
3053
3156
}
3054
3157
3055
3158
export interface InvoiceHTLC_CustomRecordsEntry {
@@ -3232,6 +3335,11 @@ export interface Payment {
3232
3335
*/
3233
3336
paymentIndex : string ;
3234
3337
failureReason : PaymentFailureReason ;
3338
+ /**
3339
+ * The custom TLV records that were sent to the first hop as part of the HTLC
3340
+ * wire message for this payment.
3341
+ */
3342
+ firstHopCustomRecords : { [ key : string ] : Uint8Array | string } ;
3235
3343
}
3236
3344
3237
3345
export enum Payment_PaymentStatus {
@@ -3252,6 +3360,11 @@ export enum Payment_PaymentStatus {
3252
3360
UNRECOGNIZED = 'UNRECOGNIZED'
3253
3361
}
3254
3362
3363
+ export interface Payment_FirstHopCustomRecordsEntry {
3364
+ key : string ;
3365
+ value : Uint8Array | string ;
3366
+ }
3367
+
3255
3368
export interface HTLCAttempt {
3256
3369
/** The unique ID that is used for this attempt. */
3257
3370
attemptId : string ;
@@ -3408,6 +3521,7 @@ export interface PayReq {
3408
3521
paymentAddr : Uint8Array | string ;
3409
3522
numMsat : string ;
3410
3523
features : { [ key : number ] : Feature } ;
3524
+ blindedPaths : BlindedPaymentPath [ ] ;
3411
3525
}
3412
3526
3413
3527
export interface PayReq_FeaturesEntry {
0 commit comments