lnrpc: replace /// and /** with // and /*

This commit is contained in:
Oliver Gugger 2020-05-06 16:51:14 +02:00
parent 0800386138
commit 71c58c2c04
No known key found for this signature in database
GPG Key ID: 8E4256593F177720
22 changed files with 2096 additions and 2098 deletions

@ -54,7 +54,7 @@ func (m *StatusRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_StatusRequest proto.InternalMessageInfo var xxx_messageInfo_StatusRequest proto.InternalMessageInfo
type StatusResponse struct { type StatusResponse struct {
/// Indicates whether the autopilot is active or not. // Indicates whether the autopilot is active or not.
Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"` Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -94,7 +94,7 @@ func (m *StatusResponse) GetActive() bool {
} }
type ModifyStatusRequest struct { type ModifyStatusRequest struct {
/// Whether the autopilot agent should be enabled or not. // Whether the autopilot agent should be enabled or not.
Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"` Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -166,7 +166,7 @@ var xxx_messageInfo_ModifyStatusResponse proto.InternalMessageInfo
type QueryScoresRequest struct { type QueryScoresRequest struct {
Pubkeys []string `protobuf:"bytes,1,rep,name=pubkeys,proto3" json:"pubkeys,omitempty"` Pubkeys []string `protobuf:"bytes,1,rep,name=pubkeys,proto3" json:"pubkeys,omitempty"`
/// If set, we will ignore the local channel state when calculating scores. // If set, we will ignore the local channel state when calculating scores.
IgnoreLocalState bool `protobuf:"varint,2,opt,name=ignore_local_state,json=ignoreLocalState,proto3" json:"ignore_local_state,omitempty"` IgnoreLocalState bool `protobuf:"varint,2,opt,name=ignore_local_state,json=ignoreLocalState,proto3" json:"ignore_local_state,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -299,9 +299,9 @@ func (m *QueryScoresResponse_HeuristicResult) GetScores() map[string]float64 {
} }
type SetScoresRequest struct { type SetScoresRequest struct {
/// The name of the heuristic to provide scores to. // The name of the heuristic to provide scores to.
Heuristic string `protobuf:"bytes,1,opt,name=heuristic,proto3" json:"heuristic,omitempty"` Heuristic string `protobuf:"bytes,1,opt,name=heuristic,proto3" json:"heuristic,omitempty"`
//* //
//A map from hex-encoded public keys to scores. Scores must be in the range //A map from hex-encoded public keys to scores. Scores must be in the range
//[0.0, 1.0]. //[0.0, 1.0].
Scores map[string]float64 `protobuf:"bytes,2,rep,name=scores,proto3" json:"scores,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` Scores map[string]float64 `protobuf:"bytes,2,rep,name=scores,proto3" json:"scores,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
@ -442,19 +442,19 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AutopilotClient interface { type AutopilotClient interface {
//* //
//Status returns whether the daemon's autopilot agent is active. //Status returns whether the daemon's autopilot agent is active.
Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error)
//* //
//ModifyStatus is used to modify the status of the autopilot agent, like //ModifyStatus is used to modify the status of the autopilot agent, like
//enabling or disabling it. //enabling or disabling it.
ModifyStatus(ctx context.Context, in *ModifyStatusRequest, opts ...grpc.CallOption) (*ModifyStatusResponse, error) ModifyStatus(ctx context.Context, in *ModifyStatusRequest, opts ...grpc.CallOption) (*ModifyStatusResponse, error)
//* //
//QueryScores queries all available autopilot heuristics, in addition to any //QueryScores queries all available autopilot heuristics, in addition to any
//active combination of these heruristics, for the scores they would give to //active combination of these heruristics, for the scores they would give to
//the given nodes. //the given nodes.
QueryScores(ctx context.Context, in *QueryScoresRequest, opts ...grpc.CallOption) (*QueryScoresResponse, error) QueryScores(ctx context.Context, in *QueryScoresRequest, opts ...grpc.CallOption) (*QueryScoresResponse, error)
//* //
//SetScores attempts to set the scores used by the running autopilot agent, //SetScores attempts to set the scores used by the running autopilot agent,
//if the external scoring heuristic is enabled. //if the external scoring heuristic is enabled.
SetScores(ctx context.Context, in *SetScoresRequest, opts ...grpc.CallOption) (*SetScoresResponse, error) SetScores(ctx context.Context, in *SetScoresRequest, opts ...grpc.CallOption) (*SetScoresResponse, error)
@ -506,19 +506,19 @@ func (c *autopilotClient) SetScores(ctx context.Context, in *SetScoresRequest, o
// AutopilotServer is the server API for Autopilot service. // AutopilotServer is the server API for Autopilot service.
type AutopilotServer interface { type AutopilotServer interface {
//* //
//Status returns whether the daemon's autopilot agent is active. //Status returns whether the daemon's autopilot agent is active.
Status(context.Context, *StatusRequest) (*StatusResponse, error) Status(context.Context, *StatusRequest) (*StatusResponse, error)
//* //
//ModifyStatus is used to modify the status of the autopilot agent, like //ModifyStatus is used to modify the status of the autopilot agent, like
//enabling or disabling it. //enabling or disabling it.
ModifyStatus(context.Context, *ModifyStatusRequest) (*ModifyStatusResponse, error) ModifyStatus(context.Context, *ModifyStatusRequest) (*ModifyStatusResponse, error)
//* //
//QueryScores queries all available autopilot heuristics, in addition to any //QueryScores queries all available autopilot heuristics, in addition to any
//active combination of these heruristics, for the scores they would give to //active combination of these heruristics, for the scores they would give to
//the given nodes. //the given nodes.
QueryScores(context.Context, *QueryScoresRequest) (*QueryScoresResponse, error) QueryScores(context.Context, *QueryScoresRequest) (*QueryScoresResponse, error)
//* //
//SetScores attempts to set the scores used by the running autopilot agent, //SetScores attempts to set the scores used by the running autopilot agent,
//if the external scoring heuristic is enabled. //if the external scoring heuristic is enabled.
SetScores(context.Context, *SetScoresRequest) (*SetScoresResponse, error) SetScores(context.Context, *SetScoresRequest) (*SetScoresResponse, error)

@ -8,25 +8,25 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc";
// state of the daemon's autopilot agent, and also supply it with information // state of the daemon's autopilot agent, and also supply it with information
// that can be used when deciding where to open channels. // that can be used when deciding where to open channels.
service Autopilot { service Autopilot {
/** /*
Status returns whether the daemon's autopilot agent is active. Status returns whether the daemon's autopilot agent is active.
*/ */
rpc Status (StatusRequest) returns (StatusResponse); rpc Status (StatusRequest) returns (StatusResponse);
/** /*
ModifyStatus is used to modify the status of the autopilot agent, like ModifyStatus is used to modify the status of the autopilot agent, like
enabling or disabling it. enabling or disabling it.
*/ */
rpc ModifyStatus (ModifyStatusRequest) returns (ModifyStatusResponse); rpc ModifyStatus (ModifyStatusRequest) returns (ModifyStatusResponse);
/** /*
QueryScores queries all available autopilot heuristics, in addition to any QueryScores queries all available autopilot heuristics, in addition to any
active combination of these heruristics, for the scores they would give to active combination of these heruristics, for the scores they would give to
the given nodes. the given nodes.
*/ */
rpc QueryScores (QueryScoresRequest) returns (QueryScoresResponse); rpc QueryScores (QueryScoresRequest) returns (QueryScoresResponse);
/** /*
SetScores attempts to set the scores used by the running autopilot agent, SetScores attempts to set the scores used by the running autopilot agent,
if the external scoring heuristic is enabled. if the external scoring heuristic is enabled.
*/ */
@ -37,12 +37,12 @@ message StatusRequest {
} }
message StatusResponse { message StatusResponse {
/// Indicates whether the autopilot is active or not. // Indicates whether the autopilot is active or not.
bool active = 1; bool active = 1;
} }
message ModifyStatusRequest { message ModifyStatusRequest {
/// Whether the autopilot agent should be enabled or not. // Whether the autopilot agent should be enabled or not.
bool enable = 1; bool enable = 1;
} }
@ -52,7 +52,7 @@ message ModifyStatusResponse {
message QueryScoresRequest { message QueryScoresRequest {
repeated string pubkeys = 1; repeated string pubkeys = 1;
/// If set, we will ignore the local channel state when calculating scores. // If set, we will ignore the local channel state when calculating scores.
bool ignore_local_state = 2; bool ignore_local_state = 2;
} }
@ -66,10 +66,10 @@ message QueryScoresResponse {
} }
message SetScoresRequest { message SetScoresRequest {
/// The name of the heuristic to provide scores to. // The name of the heuristic to provide scores to.
string heuristic = 1; string heuristic = 1;
/** /*
A map from hex-encoded public keys to scores. Scores must be in the range A map from hex-encoded public keys to scores. Scores must be in the range
[0.0, 1.0]. [0.0, 1.0].
*/ */

@ -25,7 +25,7 @@ var _ = math.Inf
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type CancelInvoiceMsg struct { type CancelInvoiceMsg struct {
/// Hash corresponding to the (hold) invoice to cancel. // Hash corresponding to the (hold) invoice to cancel.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -96,40 +96,40 @@ func (m *CancelInvoiceResp) XXX_DiscardUnknown() {
var xxx_messageInfo_CancelInvoiceResp proto.InternalMessageInfo var xxx_messageInfo_CancelInvoiceResp proto.InternalMessageInfo
type AddHoldInvoiceRequest struct { type AddHoldInvoiceRequest struct {
//* //
//An optional memo to attach along with the invoice. Used for record keeping //An optional memo to attach along with the invoice. Used for record keeping
//purposes for the invoice's creator, and will also be set in the description //purposes for the invoice's creator, and will also be set in the description
//field of the encoded payment request if the description_hash field is not //field of the encoded payment request if the description_hash field is not
//being used. //being used.
Memo string `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` Memo string `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"`
/// The hash of the preimage // The hash of the preimage
Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"` Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
//* //
//The value of this invoice in satoshis //The value of this invoice in satoshis
// //
//The fields value and value_msat are mutually exclusive. //The fields value and value_msat are mutually exclusive.
Value int64 `protobuf:"varint,3,opt,name=value,proto3" json:"value,omitempty"` Value int64 `protobuf:"varint,3,opt,name=value,proto3" json:"value,omitempty"`
//* //
//The value of this invoice in millisatoshis //The value of this invoice in millisatoshis
// //
//The fields value and value_msat are mutually exclusive. //The fields value and value_msat are mutually exclusive.
ValueMsat int64 `protobuf:"varint,10,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"` ValueMsat int64 `protobuf:"varint,10,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"`
//* //
//Hash (SHA-256) of a description of the payment. Used if the description of //Hash (SHA-256) of a description of the payment. Used if the description of
//payment (memo) is too long to naturally fit within the description field //payment (memo) is too long to naturally fit within the description field
//of an encoded payment request. //of an encoded payment request.
DescriptionHash []byte `protobuf:"bytes,4,opt,name=description_hash,json=descriptionHash,proto3" json:"description_hash,omitempty"` DescriptionHash []byte `protobuf:"bytes,4,opt,name=description_hash,json=descriptionHash,proto3" json:"description_hash,omitempty"`
/// Payment request expiry time in seconds. Default is 3600 (1 hour). // Payment request expiry time in seconds. Default is 3600 (1 hour).
Expiry int64 `protobuf:"varint,5,opt,name=expiry,proto3" json:"expiry,omitempty"` Expiry int64 `protobuf:"varint,5,opt,name=expiry,proto3" json:"expiry,omitempty"`
/// Fallback on-chain address. // Fallback on-chain address.
FallbackAddr string `protobuf:"bytes,6,opt,name=fallback_addr,json=fallbackAddr,proto3" json:"fallback_addr,omitempty"` FallbackAddr string `protobuf:"bytes,6,opt,name=fallback_addr,json=fallbackAddr,proto3" json:"fallback_addr,omitempty"`
/// Delta to use for the time-lock of the CLTV extended to the final hop. // Delta to use for the time-lock of the CLTV extended to the final hop.
CltvExpiry uint64 `protobuf:"varint,7,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"` CltvExpiry uint64 `protobuf:"varint,7,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"`
//* //
//Route hints that can each be individually used to assist in reaching the //Route hints that can each be individually used to assist in reaching the
//invoice's destination. //invoice's destination.
RouteHints []*lnrpc.RouteHint `protobuf:"bytes,8,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"` RouteHints []*lnrpc.RouteHint `protobuf:"bytes,8,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
/// Whether this invoice should include routing hints for private channels. // Whether this invoice should include routing hints for private channels.
Private bool `protobuf:"varint,9,opt,name=private,proto3" json:"private,omitempty"` Private bool `protobuf:"varint,9,opt,name=private,proto3" json:"private,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -232,7 +232,7 @@ func (m *AddHoldInvoiceRequest) GetPrivate() bool {
} }
type AddHoldInvoiceResp struct { type AddHoldInvoiceResp struct {
//* //
//A bare-bones invoice for a payment within the Lightning Network. With the //A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a //details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. //payment to the recipient.
@ -275,8 +275,8 @@ func (m *AddHoldInvoiceResp) GetPaymentRequest() string {
} }
type SettleInvoiceMsg struct { type SettleInvoiceMsg struct {
/// Externally discovered pre-image that should be used to settle the hold // Externally discovered pre-image that should be used to settle the hold
/// invoice. // invoice.
Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"` Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -347,7 +347,7 @@ func (m *SettleInvoiceResp) XXX_DiscardUnknown() {
var xxx_messageInfo_SettleInvoiceResp proto.InternalMessageInfo var xxx_messageInfo_SettleInvoiceResp proto.InternalMessageInfo
type SubscribeSingleInvoiceRequest struct { type SubscribeSingleInvoiceRequest struct {
/// Hash corresponding to the (hold) invoice to subscribe to. // Hash corresponding to the (hold) invoice to subscribe to.
RHash []byte `protobuf:"bytes,2,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"` RHash []byte `protobuf:"bytes,2,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -448,21 +448,21 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type InvoicesClient interface { type InvoicesClient interface {
//* //
//SubscribeSingleInvoice returns a uni-directional stream (server -> client) //SubscribeSingleInvoice returns a uni-directional stream (server -> client)
//to notify the client of state transitions of the specified invoice. //to notify the client of state transitions of the specified invoice.
//Initially the current invoice state is always sent out. //Initially the current invoice state is always sent out.
SubscribeSingleInvoice(ctx context.Context, in *SubscribeSingleInvoiceRequest, opts ...grpc.CallOption) (Invoices_SubscribeSingleInvoiceClient, error) SubscribeSingleInvoice(ctx context.Context, in *SubscribeSingleInvoiceRequest, opts ...grpc.CallOption) (Invoices_SubscribeSingleInvoiceClient, error)
//* //
//CancelInvoice cancels a currently open invoice. If the invoice is already //CancelInvoice cancels a currently open invoice. If the invoice is already
//canceled, this call will succeed. If the invoice is already settled, it will //canceled, this call will succeed. If the invoice is already settled, it will
//fail. //fail.
CancelInvoice(ctx context.Context, in *CancelInvoiceMsg, opts ...grpc.CallOption) (*CancelInvoiceResp, error) CancelInvoice(ctx context.Context, in *CancelInvoiceMsg, opts ...grpc.CallOption) (*CancelInvoiceResp, error)
//* //
//AddHoldInvoice creates a hold invoice. It ties the invoice to the hash //AddHoldInvoice creates a hold invoice. It ties the invoice to the hash
//supplied in the request. //supplied in the request.
AddHoldInvoice(ctx context.Context, in *AddHoldInvoiceRequest, opts ...grpc.CallOption) (*AddHoldInvoiceResp, error) AddHoldInvoice(ctx context.Context, in *AddHoldInvoiceRequest, opts ...grpc.CallOption) (*AddHoldInvoiceResp, error)
//* //
//SettleInvoice settles an accepted invoice. If the invoice is already //SettleInvoice settles an accepted invoice. If the invoice is already
//settled, this call will succeed. //settled, this call will succeed.
SettleInvoice(ctx context.Context, in *SettleInvoiceMsg, opts ...grpc.CallOption) (*SettleInvoiceResp, error) SettleInvoice(ctx context.Context, in *SettleInvoiceMsg, opts ...grpc.CallOption) (*SettleInvoiceResp, error)
@ -537,21 +537,21 @@ func (c *invoicesClient) SettleInvoice(ctx context.Context, in *SettleInvoiceMsg
// InvoicesServer is the server API for Invoices service. // InvoicesServer is the server API for Invoices service.
type InvoicesServer interface { type InvoicesServer interface {
//* //
//SubscribeSingleInvoice returns a uni-directional stream (server -> client) //SubscribeSingleInvoice returns a uni-directional stream (server -> client)
//to notify the client of state transitions of the specified invoice. //to notify the client of state transitions of the specified invoice.
//Initially the current invoice state is always sent out. //Initially the current invoice state is always sent out.
SubscribeSingleInvoice(*SubscribeSingleInvoiceRequest, Invoices_SubscribeSingleInvoiceServer) error SubscribeSingleInvoice(*SubscribeSingleInvoiceRequest, Invoices_SubscribeSingleInvoiceServer) error
//* //
//CancelInvoice cancels a currently open invoice. If the invoice is already //CancelInvoice cancels a currently open invoice. If the invoice is already
//canceled, this call will succeed. If the invoice is already settled, it will //canceled, this call will succeed. If the invoice is already settled, it will
//fail. //fail.
CancelInvoice(context.Context, *CancelInvoiceMsg) (*CancelInvoiceResp, error) CancelInvoice(context.Context, *CancelInvoiceMsg) (*CancelInvoiceResp, error)
//* //
//AddHoldInvoice creates a hold invoice. It ties the invoice to the hash //AddHoldInvoice creates a hold invoice. It ties the invoice to the hash
//supplied in the request. //supplied in the request.
AddHoldInvoice(context.Context, *AddHoldInvoiceRequest) (*AddHoldInvoiceResp, error) AddHoldInvoice(context.Context, *AddHoldInvoiceRequest) (*AddHoldInvoiceResp, error)
//* //
//SettleInvoice settles an accepted invoice. If the invoice is already //SettleInvoice settles an accepted invoice. If the invoice is already
//settled, this call will succeed. //settled, this call will succeed.
SettleInvoice(context.Context, *SettleInvoiceMsg) (*SettleInvoiceResp, error) SettleInvoice(context.Context, *SettleInvoiceMsg) (*SettleInvoiceResp, error)

@ -10,7 +10,7 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/invoicesrpc";
// Invoices is a service that can be used to create, accept, settle and cancel // Invoices is a service that can be used to create, accept, settle and cancel
// invoices. // invoices.
service Invoices { service Invoices {
/** /*
SubscribeSingleInvoice returns a uni-directional stream (server -> client) SubscribeSingleInvoice returns a uni-directional stream (server -> client)
to notify the client of state transitions of the specified invoice. to notify the client of state transitions of the specified invoice.
Initially the current invoice state is always sent out. Initially the current invoice state is always sent out.
@ -18,20 +18,20 @@ service Invoices {
rpc SubscribeSingleInvoice (SubscribeSingleInvoiceRequest) rpc SubscribeSingleInvoice (SubscribeSingleInvoiceRequest)
returns (stream lnrpc.Invoice); returns (stream lnrpc.Invoice);
/** /*
CancelInvoice cancels a currently open invoice. If the invoice is already CancelInvoice cancels a currently open invoice. If the invoice is already
canceled, this call will succeed. If the invoice is already settled, it will canceled, this call will succeed. If the invoice is already settled, it will
fail. fail.
*/ */
rpc CancelInvoice (CancelInvoiceMsg) returns (CancelInvoiceResp); rpc CancelInvoice (CancelInvoiceMsg) returns (CancelInvoiceResp);
/** /*
AddHoldInvoice creates a hold invoice. It ties the invoice to the hash AddHoldInvoice creates a hold invoice. It ties the invoice to the hash
supplied in the request. supplied in the request.
*/ */
rpc AddHoldInvoice (AddHoldInvoiceRequest) returns (AddHoldInvoiceResp); rpc AddHoldInvoice (AddHoldInvoiceRequest) returns (AddHoldInvoiceResp);
/** /*
SettleInvoice settles an accepted invoice. If the invoice is already SettleInvoice settles an accepted invoice. If the invoice is already
settled, this call will succeed. settled, this call will succeed.
*/ */
@ -39,14 +39,14 @@ service Invoices {
} }
message CancelInvoiceMsg { message CancelInvoiceMsg {
/// Hash corresponding to the (hold) invoice to cancel. // Hash corresponding to the (hold) invoice to cancel.
bytes payment_hash = 1; bytes payment_hash = 1;
} }
message CancelInvoiceResp { message CancelInvoiceResp {
} }
message AddHoldInvoiceRequest { message AddHoldInvoiceRequest {
/** /*
An optional memo to attach along with the invoice. Used for record keeping An optional memo to attach along with the invoice. Used for record keeping
purposes for the invoice's creator, and will also be set in the description purposes for the invoice's creator, and will also be set in the description
field of the encoded payment request if the description_hash field is not field of the encoded payment request if the description_hash field is not
@ -54,51 +54,51 @@ message AddHoldInvoiceRequest {
*/ */
string memo = 1; string memo = 1;
/// The hash of the preimage // The hash of the preimage
bytes hash = 2; bytes hash = 2;
/** /*
The value of this invoice in satoshis The value of this invoice in satoshis
The fields value and value_msat are mutually exclusive. The fields value and value_msat are mutually exclusive.
*/ */
int64 value = 3; int64 value = 3;
/** /*
The value of this invoice in millisatoshis The value of this invoice in millisatoshis
The fields value and value_msat are mutually exclusive. The fields value and value_msat are mutually exclusive.
*/ */
int64 value_msat = 10; int64 value_msat = 10;
/** /*
Hash (SHA-256) of a description of the payment. Used if the description of Hash (SHA-256) of a description of the payment. Used if the description of
payment (memo) is too long to naturally fit within the description field payment (memo) is too long to naturally fit within the description field
of an encoded payment request. of an encoded payment request.
*/ */
bytes description_hash = 4; bytes description_hash = 4;
/// Payment request expiry time in seconds. Default is 3600 (1 hour). // Payment request expiry time in seconds. Default is 3600 (1 hour).
int64 expiry = 5; int64 expiry = 5;
/// Fallback on-chain address. // Fallback on-chain address.
string fallback_addr = 6; string fallback_addr = 6;
/// Delta to use for the time-lock of the CLTV extended to the final hop. // Delta to use for the time-lock of the CLTV extended to the final hop.
uint64 cltv_expiry = 7; uint64 cltv_expiry = 7;
/** /*
Route hints that can each be individually used to assist in reaching the Route hints that can each be individually used to assist in reaching the
invoice's destination. invoice's destination.
*/ */
repeated lnrpc.RouteHint route_hints = 8; repeated lnrpc.RouteHint route_hints = 8;
/// Whether this invoice should include routing hints for private channels. // Whether this invoice should include routing hints for private channels.
bool private = 9; bool private = 9;
} }
message AddHoldInvoiceResp { message AddHoldInvoiceResp {
/** /*
A bare-bones invoice for a payment within the Lightning Network. With the A bare-bones invoice for a payment within the Lightning Network. With the
details of the invoice, the sender has all the data necessary to send a details of the invoice, the sender has all the data necessary to send a
payment to the recipient. payment to the recipient.
@ -107,8 +107,8 @@ message AddHoldInvoiceResp {
} }
message SettleInvoiceMsg { message SettleInvoiceMsg {
/// Externally discovered pre-image that should be used to settle the hold // Externally discovered pre-image that should be used to settle the hold
/// invoice. // invoice.
bytes preimage = 1; bytes preimage = 1;
} }
@ -118,6 +118,6 @@ message SettleInvoiceResp {
message SubscribeSingleInvoiceRequest { message SubscribeSingleInvoiceRequest {
reserved 1; reserved 1;
/// Hash corresponding to the (hold) invoice to subscribe to. // Hash corresponding to the (hold) invoice to subscribe to.
bytes r_hash = 2; bytes r_hash = 2;
} }

@ -22,9 +22,9 @@ var _ = math.Inf
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type VersionResponse struct { type VersionResponse struct {
/// The version information for lncli. // The version information for lncli.
Lncli *verrpc.Version `protobuf:"bytes,1,opt,name=lncli,proto3" json:"lncli,omitempty"` Lncli *verrpc.Version `protobuf:"bytes,1,opt,name=lncli,proto3" json:"lncli,omitempty"`
/// The version information for lnd. // The version information for lnd.
Lnd *verrpc.Version `protobuf:"bytes,2,opt,name=lnd,proto3" json:"lnd,omitempty"` Lnd *verrpc.Version `protobuf:"bytes,2,opt,name=lnd,proto3" json:"lnd,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`

@ -7,9 +7,9 @@ package lnclipb;
option go_package = "github.com/lightningnetwork/lnd/lnrpc/lnclipb"; option go_package = "github.com/lightningnetwork/lnd/lnrpc/lnclipb";
message VersionResponse { message VersionResponse {
/// The version information for lncli. // The version information for lncli.
verrpc.Version lncli = 1; verrpc.Version lncli = 1;
/// The version information for lnd. // The version information for lnd.
verrpc.Version lnd = 2; verrpc.Version lnd = 2;
}; };

@ -114,27 +114,27 @@ func (FailureDetail) EnumDescriptor() ([]byte, []int) {
type PaymentState int32 type PaymentState int32
const ( const (
//* //
//Payment is still in flight. //Payment is still in flight.
PaymentState_IN_FLIGHT PaymentState = 0 PaymentState_IN_FLIGHT PaymentState = 0
//* //
//Payment completed successfully. //Payment completed successfully.
PaymentState_SUCCEEDED PaymentState = 1 PaymentState_SUCCEEDED PaymentState = 1
//* //
//There are more routes to try, but the payment timeout was exceeded. //There are more routes to try, but the payment timeout was exceeded.
PaymentState_FAILED_TIMEOUT PaymentState = 2 PaymentState_FAILED_TIMEOUT PaymentState = 2
//* //
//All possible routes were tried and failed permanently. Or were no //All possible routes were tried and failed permanently. Or were no
//routes to the destination at all. //routes to the destination at all.
PaymentState_FAILED_NO_ROUTE PaymentState = 3 PaymentState_FAILED_NO_ROUTE PaymentState = 3
//* //
//A non-recoverable error has occured. //A non-recoverable error has occured.
PaymentState_FAILED_ERROR PaymentState = 4 PaymentState_FAILED_ERROR PaymentState = 4
//* //
//Payment details incorrect (unknown hash, invalid amt or //Payment details incorrect (unknown hash, invalid amt or
//invalid final cltv delta) //invalid final cltv delta)
PaymentState_FAILED_INCORRECT_PAYMENT_DETAILS PaymentState = 5 PaymentState_FAILED_INCORRECT_PAYMENT_DETAILS PaymentState = 5
//* //
//Insufficient local balance. //Insufficient local balance.
PaymentState_FAILED_INSUFFICIENT_BALANCE PaymentState = 6 PaymentState_FAILED_INSUFFICIENT_BALANCE PaymentState = 6
) )
@ -199,38 +199,38 @@ func (HtlcEvent_EventType) EnumDescriptor() ([]byte, []int) {
} }
type SendPaymentRequest struct { type SendPaymentRequest struct {
/// The identity pubkey of the payment recipient // The identity pubkey of the payment recipient
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"` Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
//* //
//Number of satoshis to send. //Number of satoshis to send.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"` Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"`
//* //
//Number of millisatoshis to send. //Number of millisatoshis to send.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
/// The hash to use within the payment's HTLC // The hash to use within the payment's HTLC
PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//* //
//The CLTV delta from the current height that should be used to set the //The CLTV delta from the current height that should be used to set the
//timelock for the final hop. //timelock for the final hop.
FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"` FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
//* //
//A bare-bones invoice for a payment within the Lightning Network. With the //A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a //details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. The amount in the payment request may be zero. In //payment to the recipient. The amount in the payment request may be zero. In
//that case it is required to set the amt field as well. If no payment request //that case it is required to set the amt field as well. If no payment request
//is specified, the following fields are required: dest, amt and payment_hash. //is specified, the following fields are required: dest, amt and payment_hash.
PaymentRequest string `protobuf:"bytes,5,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"` PaymentRequest string `protobuf:"bytes,5,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
//* //
//An upper limit on the amount of time we should spend when attempting to //An upper limit on the amount of time we should spend when attempting to
//fulfill the payment. This is expressed in seconds. If we cannot make a //fulfill the payment. This is expressed in seconds. If we cannot make a
//successful payment within this time frame, an error will be returned. //successful payment within this time frame, an error will be returned.
//This field must be non-zero. //This field must be non-zero.
TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` TimeoutSeconds int32 `protobuf:"varint,6,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
//* //
//The maximum number of satoshis that will be paid as a fee of the payment. //The maximum number of satoshis that will be paid as a fee of the payment.
//If this field is left to the default value of 0, only zero-fee routes will //If this field is left to the default value of 0, only zero-fee routes will
//be considered. This usually means single hop routes connecting directly to //be considered. This usually means single hop routes connecting directly to
@ -238,7 +238,7 @@ type SendPaymentRequest struct {
// //
//The fields fee_limit_sat and fee_limit_msat are mutually exclusive. //The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
FeeLimitSat int64 `protobuf:"varint,7,opt,name=fee_limit_sat,json=feeLimitSat,proto3" json:"fee_limit_sat,omitempty"` FeeLimitSat int64 `protobuf:"varint,7,opt,name=fee_limit_sat,json=feeLimitSat,proto3" json:"fee_limit_sat,omitempty"`
//* //
//The maximum number of millisatoshis that will be paid as a fee of the //The maximum number of millisatoshis that will be paid as a fee of the
//payment. If this field is left to the default value of 0, only zero-fee //payment. If this field is left to the default value of 0, only zero-fee
//routes will be considered. This usually means single hop routes connecting //routes will be considered. This usually means single hop routes connecting
@ -247,42 +247,42 @@ type SendPaymentRequest struct {
// //
//The fields fee_limit_sat and fee_limit_msat are mutually exclusive. //The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
FeeLimitMsat int64 `protobuf:"varint,13,opt,name=fee_limit_msat,json=feeLimitMsat,proto3" json:"fee_limit_msat,omitempty"` FeeLimitMsat int64 `protobuf:"varint,13,opt,name=fee_limit_msat,json=feeLimitMsat,proto3" json:"fee_limit_msat,omitempty"`
//* //
//The channel id of the channel that must be taken to the first hop. If zero, //The channel id of the channel that must be taken to the first hop. If zero,
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,8,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //
//The pubkey of the last hop of the route. If empty, any hop may be used. //The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"` LastHopPubkey []byte `protobuf:"bytes,14,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//* //
//An optional maximum total time lock for the route. This should not exceed //An optional maximum total time lock for the route. This should not exceed
//lnd's `--max-cltv-expiry` setting. If zero, then the value of //lnd's `--max-cltv-expiry` setting. If zero, then the value of
//`--max-cltv-expiry` is enforced. //`--max-cltv-expiry` is enforced.
CltvLimit int32 `protobuf:"varint,9,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"` CltvLimit int32 `protobuf:"varint,9,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
//* //
//Optional route hints to reach the destination through private channels. //Optional route hints to reach the destination through private channels.
RouteHints []*lnrpc.RouteHint `protobuf:"bytes,10,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"` RouteHints []*lnrpc.RouteHint `protobuf:"bytes,10,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
//* //
//An optional field that can be used to pass an arbitrary set of TLV records //An optional field that can be used to pass an arbitrary set of TLV records
//to a peer which understands the new records. This can be used to pass //to a peer which understands the new records. This can be used to pass
//application specific data during the payment attempt. Record types are //application specific data during the payment attempt. Record types are
//required to be in the custom range >= 65536. When using REST, the values //required to be in the custom range >= 65536. When using REST, the values
//must be encoded as base64. //must be encoded as base64.
DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
/// If set, circular payments to self are permitted. // If set, circular payments to self are permitted.
AllowSelfPayment bool `protobuf:"varint,15,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"` AllowSelfPayment bool `protobuf:"varint,15,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"`
//* //
//Features assumed to be supported by the final node. All transitive feature //Features assumed to be supported by the final node. All transitive feature
//dependencies must also be set properly. For a given feature bit pair, either //dependencies must also be set properly. For a given feature bit pair, either
//optional or remote may be set, but not both. If this field is nil or empty, //optional or remote may be set, but not both. If this field is nil or empty,
//the router will try to load destination features from the graph as a //the router will try to load destination features from the graph as a
//fallback. //fallback.
DestFeatures []lnrpc.FeatureBit `protobuf:"varint,16,rep,packed,name=dest_features,json=destFeatures,proto3,enum=lnrpc.FeatureBit" json:"dest_features,omitempty"` DestFeatures []lnrpc.FeatureBit `protobuf:"varint,16,rep,packed,name=dest_features,json=destFeatures,proto3,enum=lnrpc.FeatureBit" json:"dest_features,omitempty"`
//* //
//The maximum number of partial payments that may be use to complete the full //The maximum number of partial payments that may be use to complete the full
//amount. //amount.
MaxParts uint32 `protobuf:"varint,17,opt,name=max_parts,json=maxParts,proto3" json:"max_parts,omitempty"` MaxParts uint32 `protobuf:"varint,17,opt,name=max_parts,json=maxParts,proto3" json:"max_parts,omitempty"`
//* //
//If set, only the final payment update is streamed back. Intermediate updates //If set, only the final payment update is streamed back. Intermediate updates
//that show which htlcs are still in flight are suppressed. //that show which htlcs are still in flight are suppressed.
NoInflightUpdates bool `protobuf:"varint,18,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"` NoInflightUpdates bool `protobuf:"varint,18,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
@ -443,9 +443,9 @@ func (m *SendPaymentRequest) GetNoInflightUpdates() bool {
} }
type TrackPaymentRequest struct { type TrackPaymentRequest struct {
/// The hash of the payment to look up. // The hash of the payment to look up.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//* //
//If set, only the final payment update is streamed back. Intermediate updates //If set, only the final payment update is streamed back. Intermediate updates
//that show which htlcs are still in flight are suppressed. //that show which htlcs are still in flight are suppressed.
NoInflightUpdates bool `protobuf:"varint,2,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"` NoInflightUpdates bool `protobuf:"varint,2,opt,name=no_inflight_updates,json=noInflightUpdates,proto3" json:"no_inflight_updates,omitempty"`
@ -494,10 +494,10 @@ func (m *TrackPaymentRequest) GetNoInflightUpdates() bool {
} }
type RouteFeeRequest struct { type RouteFeeRequest struct {
//* //
//The destination once wishes to obtain a routing fee quote to. //The destination once wishes to obtain a routing fee quote to.
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"` Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
//* //
//The amount one wishes to send to the target destination. //The amount one wishes to send to the target destination.
AmtSat int64 `protobuf:"varint,2,opt,name=amt_sat,json=amtSat,proto3" json:"amt_sat,omitempty"` AmtSat int64 `protobuf:"varint,2,opt,name=amt_sat,json=amtSat,proto3" json:"amt_sat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -545,11 +545,11 @@ func (m *RouteFeeRequest) GetAmtSat() int64 {
} }
type RouteFeeResponse struct { type RouteFeeResponse struct {
//* //
//A lower bound of the estimated fee to the target destination within the //A lower bound of the estimated fee to the target destination within the
//network, expressed in milli-satoshis. //network, expressed in milli-satoshis.
RoutingFeeMsat int64 `protobuf:"varint,1,opt,name=routing_fee_msat,json=routingFeeMsat,proto3" json:"routing_fee_msat,omitempty"` RoutingFeeMsat int64 `protobuf:"varint,1,opt,name=routing_fee_msat,json=routingFeeMsat,proto3" json:"routing_fee_msat,omitempty"`
//* //
//An estimate of the worst case time delay that can occur. Note that callers //An estimate of the worst case time delay that can occur. Note that callers
//will still need to factor in the final CLTV delta of the last hop into this //will still need to factor in the final CLTV delta of the last hop into this
//value. //value.
@ -599,9 +599,9 @@ func (m *RouteFeeResponse) GetTimeLockDelay() int64 {
} }
type SendToRouteRequest struct { type SendToRouteRequest struct {
/// The payment hash to use for the HTLC. // The payment hash to use for the HTLC.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
/// Route that should be used to attempt to complete the payment. // Route that should be used to attempt to complete the payment.
Route *lnrpc.Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` Route *lnrpc.Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -648,9 +648,9 @@ func (m *SendToRouteRequest) GetRoute() *lnrpc.Route {
} }
type SendToRouteResponse struct { type SendToRouteResponse struct {
/// The preimage obtained by making the payment. // The preimage obtained by making the payment.
Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"` Preimage []byte `protobuf:"bytes,1,opt,name=preimage,proto3" json:"preimage,omitempty"`
/// The failure message in case the payment failed. // The failure message in case the payment failed.
Failure *lnrpc.Failure `protobuf:"bytes,2,opt,name=failure,proto3" json:"failure,omitempty"` Failure *lnrpc.Failure `protobuf:"bytes,2,opt,name=failure,proto3" json:"failure,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -789,9 +789,9 @@ func (m *QueryMissionControlRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryMissionControlRequest proto.InternalMessageInfo var xxx_messageInfo_QueryMissionControlRequest proto.InternalMessageInfo
/// QueryMissionControlResponse contains mission control state. // QueryMissionControlResponse contains mission control state.
type QueryMissionControlResponse struct { type QueryMissionControlResponse struct {
/// Node pair-level mission control state. // Node pair-level mission control state.
Pairs []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"` Pairs []*PairHistory `protobuf:"bytes,2,rep,name=pairs,proto3" json:"pairs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -830,11 +830,11 @@ func (m *QueryMissionControlResponse) GetPairs() []*PairHistory {
return nil return nil
} }
/// PairHistory contains the mission control state for a particular node pair. // PairHistory contains the mission control state for a particular node pair.
type PairHistory struct { type PairHistory struct {
/// The source node pubkey of the pair. // The source node pubkey of the pair.
NodeFrom []byte `protobuf:"bytes,1,opt,name=node_from,json=nodeFrom,proto3" json:"node_from,omitempty"` NodeFrom []byte `protobuf:"bytes,1,opt,name=node_from,json=nodeFrom,proto3" json:"node_from,omitempty"`
/// The destination node pubkey of the pair. // The destination node pubkey of the pair.
NodeTo []byte `protobuf:"bytes,2,opt,name=node_to,json=nodeTo,proto3" json:"node_to,omitempty"` NodeTo []byte `protobuf:"bytes,2,opt,name=node_to,json=nodeTo,proto3" json:"node_to,omitempty"`
History *PairData `protobuf:"bytes,7,opt,name=history,proto3" json:"history,omitempty"` History *PairData `protobuf:"bytes,7,opt,name=history,proto3" json:"history,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -889,21 +889,21 @@ func (m *PairHistory) GetHistory() *PairData {
} }
type PairData struct { type PairData struct {
/// Time of last failure. // Time of last failure.
FailTime int64 `protobuf:"varint,1,opt,name=fail_time,json=failTime,proto3" json:"fail_time,omitempty"` FailTime int64 `protobuf:"varint,1,opt,name=fail_time,json=failTime,proto3" json:"fail_time,omitempty"`
//* //
//Lowest amount that failed to forward rounded to whole sats. This may be //Lowest amount that failed to forward rounded to whole sats. This may be
//set to zero if the failure is independent of amount. //set to zero if the failure is independent of amount.
FailAmtSat int64 `protobuf:"varint,2,opt,name=fail_amt_sat,json=failAmtSat,proto3" json:"fail_amt_sat,omitempty"` FailAmtSat int64 `protobuf:"varint,2,opt,name=fail_amt_sat,json=failAmtSat,proto3" json:"fail_amt_sat,omitempty"`
//* //
//Lowest amount that failed to forward in millisats. This may be //Lowest amount that failed to forward in millisats. This may be
//set to zero if the failure is independent of amount. //set to zero if the failure is independent of amount.
FailAmtMsat int64 `protobuf:"varint,4,opt,name=fail_amt_msat,json=failAmtMsat,proto3" json:"fail_amt_msat,omitempty"` FailAmtMsat int64 `protobuf:"varint,4,opt,name=fail_amt_msat,json=failAmtMsat,proto3" json:"fail_amt_msat,omitempty"`
/// Time of last success. // Time of last success.
SuccessTime int64 `protobuf:"varint,5,opt,name=success_time,json=successTime,proto3" json:"success_time,omitempty"` SuccessTime int64 `protobuf:"varint,5,opt,name=success_time,json=successTime,proto3" json:"success_time,omitempty"`
/// Highest amount that we could successfully forward rounded to whole sats. // Highest amount that we could successfully forward rounded to whole sats.
SuccessAmtSat int64 `protobuf:"varint,6,opt,name=success_amt_sat,json=successAmtSat,proto3" json:"success_amt_sat,omitempty"` SuccessAmtSat int64 `protobuf:"varint,6,opt,name=success_amt_sat,json=successAmtSat,proto3" json:"success_amt_sat,omitempty"`
/// Highest amount that we could successfully forward in millisats. // Highest amount that we could successfully forward in millisats.
SuccessAmtMsat int64 `protobuf:"varint,7,opt,name=success_amt_msat,json=successAmtMsat,proto3" json:"success_amt_msat,omitempty"` SuccessAmtMsat int64 `protobuf:"varint,7,opt,name=success_amt_msat,json=successAmtMsat,proto3" json:"success_amt_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -978,11 +978,11 @@ func (m *PairData) GetSuccessAmtMsat() int64 {
} }
type QueryProbabilityRequest struct { type QueryProbabilityRequest struct {
/// The source node pubkey of the pair. // The source node pubkey of the pair.
FromNode []byte `protobuf:"bytes,1,opt,name=from_node,json=fromNode,proto3" json:"from_node,omitempty"` FromNode []byte `protobuf:"bytes,1,opt,name=from_node,json=fromNode,proto3" json:"from_node,omitempty"`
/// The destination node pubkey of the pair. // The destination node pubkey of the pair.
ToNode []byte `protobuf:"bytes,2,opt,name=to_node,json=toNode,proto3" json:"to_node,omitempty"` ToNode []byte `protobuf:"bytes,2,opt,name=to_node,json=toNode,proto3" json:"to_node,omitempty"`
/// The amount for which to calculate a probability. // The amount for which to calculate a probability.
AmtMsat int64 `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat int64 `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1036,9 +1036,9 @@ func (m *QueryProbabilityRequest) GetAmtMsat() int64 {
} }
type QueryProbabilityResponse struct { type QueryProbabilityResponse struct {
/// The success probability for the requested pair. // The success probability for the requested pair.
Probability float64 `protobuf:"fixed64,1,opt,name=probability,proto3" json:"probability,omitempty"` Probability float64 `protobuf:"fixed64,1,opt,name=probability,proto3" json:"probability,omitempty"`
/// The historical data for the requested pair. // The historical data for the requested pair.
History *PairData `protobuf:"bytes,2,opt,name=history,proto3" json:"history,omitempty"` History *PairData `protobuf:"bytes,2,opt,name=history,proto3" json:"history,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1085,19 +1085,19 @@ func (m *QueryProbabilityResponse) GetHistory() *PairData {
} }
type BuildRouteRequest struct { type BuildRouteRequest struct {
//* //
//The amount to send expressed in msat. If set to zero, the minimum routable //The amount to send expressed in msat. If set to zero, the minimum routable
//amount is used. //amount is used.
AmtMsat int64 `protobuf:"varint,1,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat int64 `protobuf:"varint,1,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
//* //
//CLTV delta from the current height that should be used for the timelock //CLTV delta from the current height that should be used for the timelock
//of the final hop //of the final hop
FinalCltvDelta int32 `protobuf:"varint,2,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"` FinalCltvDelta int32 `protobuf:"varint,2,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
//* //
//The channel id of the channel that must be taken to the first hop. If zero, //The channel id of the channel that must be taken to the first hop. If zero,
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,3,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,3,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //
//A list of hops that defines the route. This does not include the source hop //A list of hops that defines the route. This does not include the source hop
//pubkey. //pubkey.
HopPubkeys [][]byte `protobuf:"bytes,4,rep,name=hop_pubkeys,json=hopPubkeys,proto3" json:"hop_pubkeys,omitempty"` HopPubkeys [][]byte `protobuf:"bytes,4,rep,name=hop_pubkeys,json=hopPubkeys,proto3" json:"hop_pubkeys,omitempty"`
@ -1160,7 +1160,7 @@ func (m *BuildRouteRequest) GetHopPubkeys() [][]byte {
} }
type BuildRouteResponse struct { type BuildRouteResponse struct {
//* //
//Fully specified route that can be used to execute the payment. //Fully specified route that can be used to execute the payment.
Route *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"` Route *lnrpc.Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -1231,7 +1231,7 @@ func (m *SubscribeHtlcEventsRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_SubscribeHtlcEventsRequest proto.InternalMessageInfo var xxx_messageInfo_SubscribeHtlcEventsRequest proto.InternalMessageInfo
//* //
//HtlcEvent contains the htlc event that was processed. These are served on a //HtlcEvent contains the htlc event that was processed. These are served on a
//best-effort basis; events are not persisted, delivery is not guaranteed //best-effort basis; events are not persisted, delivery is not guaranteed
//(in the event of a crash in the switch, forward events may be lost) and //(in the event of a crash in the switch, forward events may be lost) and
@ -1239,26 +1239,26 @@ var xxx_messageInfo_SubscribeHtlcEventsRequest proto.InternalMessageInfo
//should be de-duplicated by the htlc's unique combination of incoming and //should be de-duplicated by the htlc's unique combination of incoming and
//outgoing channel id and htlc id. [EXPERIMENTAL] //outgoing channel id and htlc id. [EXPERIMENTAL]
type HtlcEvent struct { type HtlcEvent struct {
//* //
//The short channel id that the incoming htlc arrived at our node on. This //The short channel id that the incoming htlc arrived at our node on. This
//value is zero for sends. //value is zero for sends.
IncomingChannelId uint64 `protobuf:"varint,1,opt,name=incoming_channel_id,json=incomingChannelId,proto3" json:"incoming_channel_id,omitempty"` IncomingChannelId uint64 `protobuf:"varint,1,opt,name=incoming_channel_id,json=incomingChannelId,proto3" json:"incoming_channel_id,omitempty"`
//* //
//The short channel id that the outgoing htlc left our node on. This value //The short channel id that the outgoing htlc left our node on. This value
//is zero for receives. //is zero for receives.
OutgoingChannelId uint64 `protobuf:"varint,2,opt,name=outgoing_channel_id,json=outgoingChannelId,proto3" json:"outgoing_channel_id,omitempty"` OutgoingChannelId uint64 `protobuf:"varint,2,opt,name=outgoing_channel_id,json=outgoingChannelId,proto3" json:"outgoing_channel_id,omitempty"`
//* //
//Incoming id is the index of the incoming htlc in the incoming channel. //Incoming id is the index of the incoming htlc in the incoming channel.
//This value is zero for sends. //This value is zero for sends.
IncomingHtlcId uint64 `protobuf:"varint,3,opt,name=incoming_htlc_id,json=incomingHtlcId,proto3" json:"incoming_htlc_id,omitempty"` IncomingHtlcId uint64 `protobuf:"varint,3,opt,name=incoming_htlc_id,json=incomingHtlcId,proto3" json:"incoming_htlc_id,omitempty"`
//* //
//Outgoing id is the index of the outgoing htlc in the outgoing channel. //Outgoing id is the index of the outgoing htlc in the outgoing channel.
//This value is zero for receives. //This value is zero for receives.
OutgoingHtlcId uint64 `protobuf:"varint,4,opt,name=outgoing_htlc_id,json=outgoingHtlcId,proto3" json:"outgoing_htlc_id,omitempty"` OutgoingHtlcId uint64 `protobuf:"varint,4,opt,name=outgoing_htlc_id,json=outgoingHtlcId,proto3" json:"outgoing_htlc_id,omitempty"`
//* //
//The time in unix nanoseconds that the event occurred. //The time in unix nanoseconds that the event occurred.
TimestampNs uint64 `protobuf:"varint,5,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"` TimestampNs uint64 `protobuf:"varint,5,opt,name=timestamp_ns,json=timestampNs,proto3" json:"timestamp_ns,omitempty"`
//* //
//The event type indicates whether the htlc was part of a send, receive or //The event type indicates whether the htlc was part of a send, receive or
//forward. //forward.
EventType HtlcEvent_EventType `protobuf:"varint,6,opt,name=event_type,json=eventType,proto3,enum=routerrpc.HtlcEvent_EventType" json:"event_type,omitempty"` EventType HtlcEvent_EventType `protobuf:"varint,6,opt,name=event_type,json=eventType,proto3,enum=routerrpc.HtlcEvent_EventType" json:"event_type,omitempty"`
@ -1587,7 +1587,7 @@ type LinkFailEvent struct {
Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` Info *HtlcInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
// FailureCode is the BOLT error code for the failure. // FailureCode is the BOLT error code for the failure.
WireFailure lnrpc.Failure_FailureCode `protobuf:"varint,2,opt,name=wire_failure,json=wireFailure,proto3,enum=lnrpc.Failure_FailureCode" json:"wire_failure,omitempty"` WireFailure lnrpc.Failure_FailureCode `protobuf:"varint,2,opt,name=wire_failure,json=wireFailure,proto3,enum=lnrpc.Failure_FailureCode" json:"wire_failure,omitempty"`
//* //
//FailureDetail provides additional information about the reason for the //FailureDetail provides additional information about the reason for the
//failure. This detail enriches the information provided by the wire message //failure. This detail enriches the information provided by the wire message
//and may be 'no detail' if the wire message requires no additional metadata. //and may be 'no detail' if the wire message requires no additional metadata.
@ -1653,12 +1653,12 @@ func (m *LinkFailEvent) GetFailureString() string {
} }
type PaymentStatus struct { type PaymentStatus struct {
/// Current state the payment is in. // Current state the payment is in.
State PaymentState `protobuf:"varint,1,opt,name=state,proto3,enum=routerrpc.PaymentState" json:"state,omitempty"` State PaymentState `protobuf:"varint,1,opt,name=state,proto3,enum=routerrpc.PaymentState" json:"state,omitempty"`
//* //
//The pre-image of the payment when state is SUCCEEDED. //The pre-image of the payment when state is SUCCEEDED.
Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"` Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"`
//* //
//The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. //The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"` Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -1902,51 +1902,51 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RouterClient interface { type RouterClient interface {
//* //
//SendPaymentV2 attempts to route a payment described by the passed //SendPaymentV2 attempts to route a payment described by the passed
//PaymentRequest to the final destination. The call returns a stream of //PaymentRequest to the final destination. The call returns a stream of
//payment updates. //payment updates.
SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error) SendPaymentV2(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentV2Client, error)
//* //
//TrackPaymentV2 returns an update stream for the payment identified by the //TrackPaymentV2 returns an update stream for the payment identified by the
//payment hash. //payment hash.
TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error) TrackPaymentV2(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentV2Client, error)
//* //
//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it //EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
//may cost to send an HTLC to the target end destination. //may cost to send an HTLC to the target end destination.
EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error) EstimateRouteFee(ctx context.Context, in *RouteFeeRequest, opts ...grpc.CallOption) (*RouteFeeResponse, error)
//* //
//SendToRoute attempts to make a payment via the specified route. This method //SendToRoute attempts to make a payment via the specified route. This method
//differs from SendPayment in that it allows users to specify a full route //differs from SendPayment in that it allows users to specify a full route
//manually. This can be used for things like rebalancing, and atomic swaps. //manually. This can be used for things like rebalancing, and atomic swaps.
SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error) SendToRoute(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendToRouteResponse, error)
//* //
//ResetMissionControl clears all mission control state and starts with a clean //ResetMissionControl clears all mission control state and starts with a clean
//slate. //slate.
ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error) ResetMissionControl(ctx context.Context, in *ResetMissionControlRequest, opts ...grpc.CallOption) (*ResetMissionControlResponse, error)
//* //
//QueryMissionControl exposes the internal mission control state to callers. //QueryMissionControl exposes the internal mission control state to callers.
//It is a development feature. //It is a development feature.
QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error) QueryMissionControl(ctx context.Context, in *QueryMissionControlRequest, opts ...grpc.CallOption) (*QueryMissionControlResponse, error)
//* //
//QueryProbability returns the current success probability estimate for a //QueryProbability returns the current success probability estimate for a
//given node pair and amount. //given node pair and amount.
QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error) QueryProbability(ctx context.Context, in *QueryProbabilityRequest, opts ...grpc.CallOption) (*QueryProbabilityResponse, error)
//* //
//BuildRoute builds a fully specified route based on a list of hop public //BuildRoute builds a fully specified route based on a list of hop public
//keys. It retrieves the relevant channel policies from the graph in order to //keys. It retrieves the relevant channel policies from the graph in order to
//calculate the correct fees and time locks. //calculate the correct fees and time locks.
BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error) BuildRoute(ctx context.Context, in *BuildRouteRequest, opts ...grpc.CallOption) (*BuildRouteResponse, error)
//* //
//SubscribeHtlcEvents creates a uni-directional stream from the server to //SubscribeHtlcEvents creates a uni-directional stream from the server to
//the client which delivers a stream of htlc events. //the client which delivers a stream of htlc events.
SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error) SubscribeHtlcEvents(ctx context.Context, in *SubscribeHtlcEventsRequest, opts ...grpc.CallOption) (Router_SubscribeHtlcEventsClient, error)
//* //
//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment //Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
//described by the passed PaymentRequest to the final destination. The call //described by the passed PaymentRequest to the final destination. The call
//returns a stream of payment status updates. //returns a stream of payment status updates.
SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error) SendPayment(ctx context.Context, in *SendPaymentRequest, opts ...grpc.CallOption) (Router_SendPaymentClient, error)
//* //
//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for //Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
//the payment identified by the payment hash. //the payment identified by the payment hash.
TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error) TrackPayment(ctx context.Context, in *TrackPaymentRequest, opts ...grpc.CallOption) (Router_TrackPaymentClient, error)
@ -2178,51 +2178,51 @@ func (x *routerTrackPaymentClient) Recv() (*PaymentStatus, error) {
// RouterServer is the server API for Router service. // RouterServer is the server API for Router service.
type RouterServer interface { type RouterServer interface {
//* //
//SendPaymentV2 attempts to route a payment described by the passed //SendPaymentV2 attempts to route a payment described by the passed
//PaymentRequest to the final destination. The call returns a stream of //PaymentRequest to the final destination. The call returns a stream of
//payment updates. //payment updates.
SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error SendPaymentV2(*SendPaymentRequest, Router_SendPaymentV2Server) error
//* //
//TrackPaymentV2 returns an update stream for the payment identified by the //TrackPaymentV2 returns an update stream for the payment identified by the
//payment hash. //payment hash.
TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error TrackPaymentV2(*TrackPaymentRequest, Router_TrackPaymentV2Server) error
//* //
//EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it //EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
//may cost to send an HTLC to the target end destination. //may cost to send an HTLC to the target end destination.
EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error) EstimateRouteFee(context.Context, *RouteFeeRequest) (*RouteFeeResponse, error)
//* //
//SendToRoute attempts to make a payment via the specified route. This method //SendToRoute attempts to make a payment via the specified route. This method
//differs from SendPayment in that it allows users to specify a full route //differs from SendPayment in that it allows users to specify a full route
//manually. This can be used for things like rebalancing, and atomic swaps. //manually. This can be used for things like rebalancing, and atomic swaps.
SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error) SendToRoute(context.Context, *SendToRouteRequest) (*SendToRouteResponse, error)
//* //
//ResetMissionControl clears all mission control state and starts with a clean //ResetMissionControl clears all mission control state and starts with a clean
//slate. //slate.
ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error) ResetMissionControl(context.Context, *ResetMissionControlRequest) (*ResetMissionControlResponse, error)
//* //
//QueryMissionControl exposes the internal mission control state to callers. //QueryMissionControl exposes the internal mission control state to callers.
//It is a development feature. //It is a development feature.
QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error) QueryMissionControl(context.Context, *QueryMissionControlRequest) (*QueryMissionControlResponse, error)
//* //
//QueryProbability returns the current success probability estimate for a //QueryProbability returns the current success probability estimate for a
//given node pair and amount. //given node pair and amount.
QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error) QueryProbability(context.Context, *QueryProbabilityRequest) (*QueryProbabilityResponse, error)
//* //
//BuildRoute builds a fully specified route based on a list of hop public //BuildRoute builds a fully specified route based on a list of hop public
//keys. It retrieves the relevant channel policies from the graph in order to //keys. It retrieves the relevant channel policies from the graph in order to
//calculate the correct fees and time locks. //calculate the correct fees and time locks.
BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error) BuildRoute(context.Context, *BuildRouteRequest) (*BuildRouteResponse, error)
//* //
//SubscribeHtlcEvents creates a uni-directional stream from the server to //SubscribeHtlcEvents creates a uni-directional stream from the server to
//the client which delivers a stream of htlc events. //the client which delivers a stream of htlc events.
SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error SubscribeHtlcEvents(*SubscribeHtlcEventsRequest, Router_SubscribeHtlcEventsServer) error
//* //
//Deprecated, use SendPaymentV2. SendPayment attempts to route a payment //Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
//described by the passed PaymentRequest to the final destination. The call //described by the passed PaymentRequest to the final destination. The call
//returns a stream of payment status updates. //returns a stream of payment status updates.
SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error SendPayment(*SendPaymentRequest, Router_SendPaymentServer) error
//* //
//Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for //Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
//the payment identified by the payment hash. //the payment identified by the payment hash.
TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error TrackPayment(*TrackPaymentRequest, Router_TrackPaymentServer) error

@ -9,68 +9,68 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/routerrpc";
// Router is a service that offers advanced interaction with the router // Router is a service that offers advanced interaction with the router
// subsystem of the daemon. // subsystem of the daemon.
service Router { service Router {
/** /*
SendPaymentV2 attempts to route a payment described by the passed SendPaymentV2 attempts to route a payment described by the passed
PaymentRequest to the final destination. The call returns a stream of PaymentRequest to the final destination. The call returns a stream of
payment updates. payment updates.
*/ */
rpc SendPaymentV2 (SendPaymentRequest) returns (stream lnrpc.Payment); rpc SendPaymentV2 (SendPaymentRequest) returns (stream lnrpc.Payment);
/** /*
TrackPaymentV2 returns an update stream for the payment identified by the TrackPaymentV2 returns an update stream for the payment identified by the
payment hash. payment hash.
*/ */
rpc TrackPaymentV2 (TrackPaymentRequest) returns (stream lnrpc.Payment); rpc TrackPaymentV2 (TrackPaymentRequest) returns (stream lnrpc.Payment);
/** /*
EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
may cost to send an HTLC to the target end destination. may cost to send an HTLC to the target end destination.
*/ */
rpc EstimateRouteFee (RouteFeeRequest) returns (RouteFeeResponse); rpc EstimateRouteFee (RouteFeeRequest) returns (RouteFeeResponse);
/** /*
SendToRoute attempts to make a payment via the specified route. This method SendToRoute attempts to make a payment via the specified route. This method
differs from SendPayment in that it allows users to specify a full route differs from SendPayment in that it allows users to specify a full route
manually. This can be used for things like rebalancing, and atomic swaps. manually. This can be used for things like rebalancing, and atomic swaps.
*/ */
rpc SendToRoute (SendToRouteRequest) returns (SendToRouteResponse); rpc SendToRoute (SendToRouteRequest) returns (SendToRouteResponse);
/** /*
ResetMissionControl clears all mission control state and starts with a clean ResetMissionControl clears all mission control state and starts with a clean
slate. slate.
*/ */
rpc ResetMissionControl (ResetMissionControlRequest) rpc ResetMissionControl (ResetMissionControlRequest)
returns (ResetMissionControlResponse); returns (ResetMissionControlResponse);
/** /*
QueryMissionControl exposes the internal mission control state to callers. QueryMissionControl exposes the internal mission control state to callers.
It is a development feature. It is a development feature.
*/ */
rpc QueryMissionControl (QueryMissionControlRequest) rpc QueryMissionControl (QueryMissionControlRequest)
returns (QueryMissionControlResponse); returns (QueryMissionControlResponse);
/** /*
QueryProbability returns the current success probability estimate for a QueryProbability returns the current success probability estimate for a
given node pair and amount. given node pair and amount.
*/ */
rpc QueryProbability (QueryProbabilityRequest) rpc QueryProbability (QueryProbabilityRequest)
returns (QueryProbabilityResponse); returns (QueryProbabilityResponse);
/** /*
BuildRoute builds a fully specified route based on a list of hop public BuildRoute builds a fully specified route based on a list of hop public
keys. It retrieves the relevant channel policies from the graph in order to keys. It retrieves the relevant channel policies from the graph in order to
calculate the correct fees and time locks. calculate the correct fees and time locks.
*/ */
rpc BuildRoute (BuildRouteRequest) returns (BuildRouteResponse); rpc BuildRoute (BuildRouteRequest) returns (BuildRouteResponse);
/** /*
SubscribeHtlcEvents creates a uni-directional stream from the server to SubscribeHtlcEvents creates a uni-directional stream from the server to
the client which delivers a stream of htlc events. the client which delivers a stream of htlc events.
*/ */
rpc SubscribeHtlcEvents (SubscribeHtlcEventsRequest) rpc SubscribeHtlcEvents (SubscribeHtlcEventsRequest)
returns (stream HtlcEvent); returns (stream HtlcEvent);
/** /*
Deprecated, use SendPaymentV2. SendPayment attempts to route a payment Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
described by the passed PaymentRequest to the final destination. The call described by the passed PaymentRequest to the final destination. The call
returns a stream of payment status updates. returns a stream of payment status updates.
@ -79,7 +79,7 @@ service Router {
option deprecated = true; option deprecated = true;
} }
/** /*
Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
the payment identified by the payment hash. the payment identified by the payment hash.
*/ */
@ -89,33 +89,33 @@ service Router {
} }
message SendPaymentRequest { message SendPaymentRequest {
/// The identity pubkey of the payment recipient // The identity pubkey of the payment recipient
bytes dest = 1; bytes dest = 1;
/** /*
Number of satoshis to send. Number of satoshis to send.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
*/ */
int64 amt = 2; int64 amt = 2;
/** /*
Number of millisatoshis to send. Number of millisatoshis to send.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
*/ */
int64 amt_msat = 12; int64 amt_msat = 12;
/// The hash to use within the payment's HTLC // The hash to use within the payment's HTLC
bytes payment_hash = 3; bytes payment_hash = 3;
/** /*
The CLTV delta from the current height that should be used to set the The CLTV delta from the current height that should be used to set the
timelock for the final hop. timelock for the final hop.
*/ */
int32 final_cltv_delta = 4; int32 final_cltv_delta = 4;
/** /*
A bare-bones invoice for a payment within the Lightning Network. With the A bare-bones invoice for a payment within the Lightning Network. With the
details of the invoice, the sender has all the data necessary to send a details of the invoice, the sender has all the data necessary to send a
payment to the recipient. The amount in the payment request may be zero. In payment to the recipient. The amount in the payment request may be zero. In
@ -124,7 +124,7 @@ message SendPaymentRequest {
*/ */
string payment_request = 5; string payment_request = 5;
/** /*
An upper limit on the amount of time we should spend when attempting to An upper limit on the amount of time we should spend when attempting to
fulfill the payment. This is expressed in seconds. If we cannot make a fulfill the payment. This is expressed in seconds. If we cannot make a
successful payment within this time frame, an error will be returned. successful payment within this time frame, an error will be returned.
@ -132,7 +132,7 @@ message SendPaymentRequest {
*/ */
int32 timeout_seconds = 6; int32 timeout_seconds = 6;
/** /*
The maximum number of satoshis that will be paid as a fee of the payment. The maximum number of satoshis that will be paid as a fee of the payment.
If this field is left to the default value of 0, only zero-fee routes will If this field is left to the default value of 0, only zero-fee routes will
be considered. This usually means single hop routes connecting directly to be considered. This usually means single hop routes connecting directly to
@ -142,7 +142,7 @@ message SendPaymentRequest {
*/ */
int64 fee_limit_sat = 7; int64 fee_limit_sat = 7;
/** /*
The maximum number of millisatoshis that will be paid as a fee of the The maximum number of millisatoshis that will be paid as a fee of the
payment. If this field is left to the default value of 0, only zero-fee payment. If this field is left to the default value of 0, only zero-fee
routes will be considered. This usually means single hop routes connecting routes will be considered. This usually means single hop routes connecting
@ -153,30 +153,30 @@ message SendPaymentRequest {
*/ */
int64 fee_limit_msat = 13; int64 fee_limit_msat = 13;
/** /*
The channel id of the channel that must be taken to the first hop. If zero, The channel id of the channel that must be taken to the first hop. If zero,
any channel may be used. any channel may be used.
*/ */
uint64 outgoing_chan_id = 8 [jstype = JS_STRING]; uint64 outgoing_chan_id = 8 [jstype = JS_STRING];
/** /*
The pubkey of the last hop of the route. If empty, any hop may be used. The pubkey of the last hop of the route. If empty, any hop may be used.
*/ */
bytes last_hop_pubkey = 14; bytes last_hop_pubkey = 14;
/** /*
An optional maximum total time lock for the route. This should not exceed An optional maximum total time lock for the route. This should not exceed
lnd's `--max-cltv-expiry` setting. If zero, then the value of lnd's `--max-cltv-expiry` setting. If zero, then the value of
`--max-cltv-expiry` is enforced. `--max-cltv-expiry` is enforced.
*/ */
int32 cltv_limit = 9; int32 cltv_limit = 9;
/** /*
Optional route hints to reach the destination through private channels. Optional route hints to reach the destination through private channels.
*/ */
repeated lnrpc.RouteHint route_hints = 10; repeated lnrpc.RouteHint route_hints = 10;
/** /*
An optional field that can be used to pass an arbitrary set of TLV records An optional field that can be used to pass an arbitrary set of TLV records
to a peer which understands the new records. This can be used to pass to a peer which understands the new records. This can be used to pass
application specific data during the payment attempt. Record types are application specific data during the payment attempt. Record types are
@ -185,10 +185,10 @@ message SendPaymentRequest {
*/ */
map<uint64, bytes> dest_custom_records = 11; map<uint64, bytes> dest_custom_records = 11;
/// If set, circular payments to self are permitted. // If set, circular payments to self are permitted.
bool allow_self_payment = 15; bool allow_self_payment = 15;
/** /*
Features assumed to be supported by the final node. All transitive feature Features assumed to be supported by the final node. All transitive feature
dependencies must also be set properly. For a given feature bit pair, either dependencies must also be set properly. For a given feature bit pair, either
optional or remote may be set, but not both. If this field is nil or empty, optional or remote may be set, but not both. If this field is nil or empty,
@ -197,13 +197,13 @@ message SendPaymentRequest {
*/ */
repeated lnrpc.FeatureBit dest_features = 16; repeated lnrpc.FeatureBit dest_features = 16;
/** /*
The maximum number of partial payments that may be use to complete the full The maximum number of partial payments that may be use to complete the full
amount. amount.
*/ */
uint32 max_parts = 17; uint32 max_parts = 17;
/** /*
If set, only the final payment update is streamed back. Intermediate updates If set, only the final payment update is streamed back. Intermediate updates
that show which htlcs are still in flight are suppressed. that show which htlcs are still in flight are suppressed.
*/ */
@ -211,10 +211,10 @@ message SendPaymentRequest {
} }
message TrackPaymentRequest { message TrackPaymentRequest {
/// The hash of the payment to look up. // The hash of the payment to look up.
bytes payment_hash = 1; bytes payment_hash = 1;
/** /*
If set, only the final payment update is streamed back. Intermediate updates If set, only the final payment update is streamed back. Intermediate updates
that show which htlcs are still in flight are suppressed. that show which htlcs are still in flight are suppressed.
*/ */
@ -222,25 +222,25 @@ message TrackPaymentRequest {
} }
message RouteFeeRequest { message RouteFeeRequest {
/** /*
The destination once wishes to obtain a routing fee quote to. The destination once wishes to obtain a routing fee quote to.
*/ */
bytes dest = 1; bytes dest = 1;
/** /*
The amount one wishes to send to the target destination. The amount one wishes to send to the target destination.
*/ */
int64 amt_sat = 2; int64 amt_sat = 2;
} }
message RouteFeeResponse { message RouteFeeResponse {
/** /*
A lower bound of the estimated fee to the target destination within the A lower bound of the estimated fee to the target destination within the
network, expressed in milli-satoshis. network, expressed in milli-satoshis.
*/ */
int64 routing_fee_msat = 1; int64 routing_fee_msat = 1;
/** /*
An estimate of the worst case time delay that can occur. Note that callers An estimate of the worst case time delay that can occur. Note that callers
will still need to factor in the final CLTV delta of the last hop into this will still need to factor in the final CLTV delta of the last hop into this
value. value.
@ -249,18 +249,18 @@ message RouteFeeResponse {
} }
message SendToRouteRequest { message SendToRouteRequest {
/// The payment hash to use for the HTLC. // The payment hash to use for the HTLC.
bytes payment_hash = 1; bytes payment_hash = 1;
/// Route that should be used to attempt to complete the payment. // Route that should be used to attempt to complete the payment.
lnrpc.Route route = 2; lnrpc.Route route = 2;
} }
message SendToRouteResponse { message SendToRouteResponse {
/// The preimage obtained by making the payment. // The preimage obtained by making the payment.
bytes preimage = 1; bytes preimage = 1;
/// The failure message in case the payment failed. // The failure message in case the payment failed.
lnrpc.Failure failure = 2; lnrpc.Failure failure = 2;
} }
@ -273,20 +273,20 @@ message ResetMissionControlResponse {
message QueryMissionControlRequest { message QueryMissionControlRequest {
} }
/// QueryMissionControlResponse contains mission control state. // QueryMissionControlResponse contains mission control state.
message QueryMissionControlResponse { message QueryMissionControlResponse {
reserved 1; reserved 1;
/// Node pair-level mission control state. // Node pair-level mission control state.
repeated PairHistory pairs = 2; repeated PairHistory pairs = 2;
} }
/// PairHistory contains the mission control state for a particular node pair. // PairHistory contains the mission control state for a particular node pair.
message PairHistory { message PairHistory {
/// The source node pubkey of the pair. // The source node pubkey of the pair.
bytes node_from = 1; bytes node_from = 1;
/// The destination node pubkey of the pair. // The destination node pubkey of the pair.
bytes node_to = 2; bytes node_to = 2;
reserved 3, 4, 5, 6; reserved 3, 4, 5, 6;
@ -295,16 +295,16 @@ message PairHistory {
} }
message PairData { message PairData {
/// Time of last failure. // Time of last failure.
int64 fail_time = 1; int64 fail_time = 1;
/** /*
Lowest amount that failed to forward rounded to whole sats. This may be Lowest amount that failed to forward rounded to whole sats. This may be
set to zero if the failure is independent of amount. set to zero if the failure is independent of amount.
*/ */
int64 fail_amt_sat = 2; int64 fail_amt_sat = 2;
/** /*
Lowest amount that failed to forward in millisats. This may be Lowest amount that failed to forward in millisats. This may be
set to zero if the failure is independent of amount. set to zero if the failure is independent of amount.
*/ */
@ -312,55 +312,55 @@ message PairData {
reserved 3; reserved 3;
/// Time of last success. // Time of last success.
int64 success_time = 5; int64 success_time = 5;
/// Highest amount that we could successfully forward rounded to whole sats. // Highest amount that we could successfully forward rounded to whole sats.
int64 success_amt_sat = 6; int64 success_amt_sat = 6;
/// Highest amount that we could successfully forward in millisats. // Highest amount that we could successfully forward in millisats.
int64 success_amt_msat = 7; int64 success_amt_msat = 7;
} }
message QueryProbabilityRequest { message QueryProbabilityRequest {
/// The source node pubkey of the pair. // The source node pubkey of the pair.
bytes from_node = 1; bytes from_node = 1;
/// The destination node pubkey of the pair. // The destination node pubkey of the pair.
bytes to_node = 2; bytes to_node = 2;
/// The amount for which to calculate a probability. // The amount for which to calculate a probability.
int64 amt_msat = 3; int64 amt_msat = 3;
} }
message QueryProbabilityResponse { message QueryProbabilityResponse {
/// The success probability for the requested pair. // The success probability for the requested pair.
double probability = 1; double probability = 1;
/// The historical data for the requested pair. // The historical data for the requested pair.
PairData history = 2; PairData history = 2;
} }
message BuildRouteRequest { message BuildRouteRequest {
/** /*
The amount to send expressed in msat. If set to zero, the minimum routable The amount to send expressed in msat. If set to zero, the minimum routable
amount is used. amount is used.
*/ */
int64 amt_msat = 1; int64 amt_msat = 1;
/** /*
CLTV delta from the current height that should be used for the timelock CLTV delta from the current height that should be used for the timelock
of the final hop of the final hop
*/ */
int32 final_cltv_delta = 2; int32 final_cltv_delta = 2;
/** /*
The channel id of the channel that must be taken to the first hop. If zero, The channel id of the channel that must be taken to the first hop. If zero,
any channel may be used. any channel may be used.
*/ */
uint64 outgoing_chan_id = 3 [jstype = JS_STRING]; uint64 outgoing_chan_id = 3 [jstype = JS_STRING];
/** /*
A list of hops that defines the route. This does not include the source hop A list of hops that defines the route. This does not include the source hop
pubkey. pubkey.
*/ */
@ -368,7 +368,7 @@ message BuildRouteRequest {
} }
message BuildRouteResponse { message BuildRouteResponse {
/** /*
Fully specified route that can be used to execute the payment. Fully specified route that can be used to execute the payment.
*/ */
lnrpc.Route route = 1; lnrpc.Route route = 1;
@ -377,7 +377,7 @@ message BuildRouteResponse {
message SubscribeHtlcEventsRequest { message SubscribeHtlcEventsRequest {
} }
/** /*
HtlcEvent contains the htlc event that was processed. These are served on a HtlcEvent contains the htlc event that was processed. These are served on a
best-effort basis; events are not persisted, delivery is not guaranteed best-effort basis; events are not persisted, delivery is not guaranteed
(in the event of a crash in the switch, forward events may be lost) and (in the event of a crash in the switch, forward events may be lost) and
@ -386,31 +386,31 @@ should be de-duplicated by the htlc's unique combination of incoming and
outgoing channel id and htlc id. [EXPERIMENTAL] outgoing channel id and htlc id. [EXPERIMENTAL]
*/ */
message HtlcEvent { message HtlcEvent {
/** /*
The short channel id that the incoming htlc arrived at our node on. This The short channel id that the incoming htlc arrived at our node on. This
value is zero for sends. value is zero for sends.
*/ */
uint64 incoming_channel_id = 1; uint64 incoming_channel_id = 1;
/** /*
The short channel id that the outgoing htlc left our node on. This value The short channel id that the outgoing htlc left our node on. This value
is zero for receives. is zero for receives.
*/ */
uint64 outgoing_channel_id = 2; uint64 outgoing_channel_id = 2;
/** /*
Incoming id is the index of the incoming htlc in the incoming channel. Incoming id is the index of the incoming htlc in the incoming channel.
This value is zero for sends. This value is zero for sends.
*/ */
uint64 incoming_htlc_id = 3; uint64 incoming_htlc_id = 3;
/** /*
Outgoing id is the index of the outgoing htlc in the outgoing channel. Outgoing id is the index of the outgoing htlc in the outgoing channel.
This value is zero for receives. This value is zero for receives.
*/ */
uint64 outgoing_htlc_id = 4; uint64 outgoing_htlc_id = 4;
/** /*
The time in unix nanoseconds that the event occurred. The time in unix nanoseconds that the event occurred.
*/ */
uint64 timestamp_ns = 5; uint64 timestamp_ns = 5;
@ -422,7 +422,7 @@ message HtlcEvent {
FORWARD = 3; FORWARD = 3;
} }
/** /*
The event type indicates whether the htlc was part of a send, receive or The event type indicates whether the htlc was part of a send, receive or
forward. forward.
*/ */
@ -468,7 +468,7 @@ message LinkFailEvent {
// FailureCode is the BOLT error code for the failure. // FailureCode is the BOLT error code for the failure.
lnrpc.Failure.FailureCode wire_failure = 2; lnrpc.Failure.FailureCode wire_failure = 2;
/** /*
FailureDetail provides additional information about the reason for the FailureDetail provides additional information about the reason for the
failure. This detail enriches the information provided by the wire message failure. This detail enriches the information provided by the wire message
and may be 'no detail' if the wire message requires no additional metadata. and may be 'no detail' if the wire message requires no additional metadata.
@ -506,56 +506,56 @@ enum FailureDetail {
} }
enum PaymentState { enum PaymentState {
/** /*
Payment is still in flight. Payment is still in flight.
*/ */
IN_FLIGHT = 0; IN_FLIGHT = 0;
/** /*
Payment completed successfully. Payment completed successfully.
*/ */
SUCCEEDED = 1; SUCCEEDED = 1;
/** /*
There are more routes to try, but the payment timeout was exceeded. There are more routes to try, but the payment timeout was exceeded.
*/ */
FAILED_TIMEOUT = 2; FAILED_TIMEOUT = 2;
/** /*
All possible routes were tried and failed permanently. Or were no All possible routes were tried and failed permanently. Or were no
routes to the destination at all. routes to the destination at all.
*/ */
FAILED_NO_ROUTE = 3; FAILED_NO_ROUTE = 3;
/** /*
A non-recoverable error has occured. A non-recoverable error has occured.
*/ */
FAILED_ERROR = 4; FAILED_ERROR = 4;
/** /*
Payment details incorrect (unknown hash, invalid amt or Payment details incorrect (unknown hash, invalid amt or
invalid final cltv delta) invalid final cltv delta)
*/ */
FAILED_INCORRECT_PAYMENT_DETAILS = 5; FAILED_INCORRECT_PAYMENT_DETAILS = 5;
/** /*
Insufficient local balance. Insufficient local balance.
*/ */
FAILED_INSUFFICIENT_BALANCE = 6; FAILED_INSUFFICIENT_BALANCE = 6;
} }
message PaymentStatus { message PaymentStatus {
/// Current state the payment is in. // Current state the payment is in.
PaymentState state = 1; PaymentState state = 1;
/** /*
The pre-image of the payment when state is SUCCEEDED. The pre-image of the payment when state is SUCCEEDED.
*/ */
bytes preimage = 2; bytes preimage = 2;
reserved 3; reserved 3;
/** /*
The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
*/ */
repeated lnrpc.HTLCAttempt htlcs = 4; repeated lnrpc.HTLCAttempt htlcs = 4;

@ -23,7 +23,7 @@ var _ = math.Inf
// proto package needs to be updated. // proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
//* //
//`AddressType` has to be one of: //`AddressType` has to be one of:
// //
//- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0) //- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)
@ -62,22 +62,22 @@ func (AddressType) EnumDescriptor() ([]byte, []int) {
type CommitmentType int32 type CommitmentType int32
const ( const (
//* //
//A channel using the legacy commitment format having tweaked to_remote //A channel using the legacy commitment format having tweaked to_remote
//keys. //keys.
CommitmentType_LEGACY CommitmentType = 0 CommitmentType_LEGACY CommitmentType = 0
//* //
//A channel that uses the modern commitment format where the key in the //A channel that uses the modern commitment format where the key in the
//output of the remote party does not change each state. This makes back //output of the remote party does not change each state. This makes back
//up and recovery easier as when the channel is closed, the funds go //up and recovery easier as when the channel is closed, the funds go
//directly to that key. //directly to that key.
CommitmentType_STATIC_REMOTE_KEY CommitmentType = 1 CommitmentType_STATIC_REMOTE_KEY CommitmentType = 1
//* //
//A channel that uses a commitment format that has anchor outputs on the //A channel that uses a commitment format that has anchor outputs on the
//commitments, allowing fee bumping after a force close transaction has //commitments, allowing fee bumping after a force close transaction has
//been broadcast. //been broadcast.
CommitmentType_ANCHORS CommitmentType = 2 CommitmentType_ANCHORS CommitmentType = 2
//* //
//Returned when the commitment type isn't known or unavailable. //Returned when the commitment type isn't known or unavailable.
CommitmentType_UNKNOWN_COMMITMENT_TYPE CommitmentType = 999 CommitmentType_UNKNOWN_COMMITMENT_TYPE CommitmentType = 999
) )
@ -191,24 +191,24 @@ func (InvoiceHTLCState) EnumDescriptor() ([]byte, []int) {
type PaymentFailureReason int32 type PaymentFailureReason int32
const ( const (
//* //
//Payment isn't failed (yet). //Payment isn't failed (yet).
PaymentFailureReason_FAILURE_REASON_NONE PaymentFailureReason = 0 PaymentFailureReason_FAILURE_REASON_NONE PaymentFailureReason = 0
//* //
//There are more routes to try, but the payment timeout was exceeded. //There are more routes to try, but the payment timeout was exceeded.
PaymentFailureReason_FAILURE_REASON_TIMEOUT PaymentFailureReason = 1 PaymentFailureReason_FAILURE_REASON_TIMEOUT PaymentFailureReason = 1
//* //
//All possible routes were tried and failed permanently. Or were no //All possible routes were tried and failed permanently. Or were no
//routes to the destination at all. //routes to the destination at all.
PaymentFailureReason_FAILURE_REASON_NO_ROUTE PaymentFailureReason = 2 PaymentFailureReason_FAILURE_REASON_NO_ROUTE PaymentFailureReason = 2
//* //
//A non-recoverable error has occured. //A non-recoverable error has occured.
PaymentFailureReason_FAILURE_REASON_ERROR PaymentFailureReason = 3 PaymentFailureReason_FAILURE_REASON_ERROR PaymentFailureReason = 3
//* //
//Payment details incorrect (unknown hash, invalid amt or //Payment details incorrect (unknown hash, invalid amt or
//invalid final cltv delta) //invalid final cltv delta)
PaymentFailureReason_FAILURE_REASON_INCORRECT_PAYMENT_DETAILS PaymentFailureReason = 4 PaymentFailureReason_FAILURE_REASON_INCORRECT_PAYMENT_DETAILS PaymentFailureReason = 4
//* //
//Insufficient local balance. //Insufficient local balance.
PaymentFailureReason_FAILURE_REASON_INSUFFICIENT_BALANCE PaymentFailureReason = 5 PaymentFailureReason_FAILURE_REASON_INSUFFICIENT_BALANCE PaymentFailureReason = 5
) )
@ -349,13 +349,13 @@ func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) {
type Peer_SyncType int32 type Peer_SyncType int32
const ( const (
//* //
//Denotes that we cannot determine the peer's current sync type. //Denotes that we cannot determine the peer's current sync type.
Peer_UNKNOWN_SYNC Peer_SyncType = 0 Peer_UNKNOWN_SYNC Peer_SyncType = 0
//* //
//Denotes that we are actively receiving new graph updates from the peer. //Denotes that we are actively receiving new graph updates from the peer.
Peer_ACTIVE_SYNC Peer_SyncType = 1 Peer_ACTIVE_SYNC Peer_SyncType = 1
//* //
//Denotes that we are not receiving new graph updates from the peer. //Denotes that we are not receiving new graph updates from the peer.
Peer_PASSIVE_SYNC Peer_SyncType = 2 Peer_PASSIVE_SYNC Peer_SyncType = 2
) )
@ -560,7 +560,7 @@ func (HTLCAttempt_HTLCStatus) EnumDescriptor() ([]byte, []int) {
type Failure_FailureCode int32 type Failure_FailureCode int32
const ( const (
//* //
//The numbers assigned in this enumeration match the failure codes as //The numbers assigned in this enumeration match the failure codes as
//defined in BOLT #4. Because protobuf 3 requires enums to start with 0, //defined in BOLT #4. Because protobuf 3 requires enums to start with 0,
//a RESERVED value is added. //a RESERVED value is added.
@ -588,13 +588,13 @@ const (
Failure_PERMANENT_CHANNEL_FAILURE Failure_FailureCode = 21 Failure_PERMANENT_CHANNEL_FAILURE Failure_FailureCode = 21
Failure_EXPIRY_TOO_FAR Failure_FailureCode = 22 Failure_EXPIRY_TOO_FAR Failure_FailureCode = 22
Failure_MPP_TIMEOUT Failure_FailureCode = 23 Failure_MPP_TIMEOUT Failure_FailureCode = 23
//* //
//An internal error occurred. //An internal error occurred.
Failure_INTERNAL_FAILURE Failure_FailureCode = 997 Failure_INTERNAL_FAILURE Failure_FailureCode = 997
//* //
//The error source is known, but the failure itself couldn't be decoded. //The error source is known, but the failure itself couldn't be decoded.
Failure_UNKNOWN_FAILURE Failure_FailureCode = 998 Failure_UNKNOWN_FAILURE Failure_FailureCode = 998
//* //
//An unreadable failure result is returned if the received failure message //An unreadable failure result is returned if the received failure message
//cannot be decrypted. In that case the error source is unknown. //cannot be decrypted. In that case the error source is unknown.
Failure_UNREADABLE_FAILURE Failure_FailureCode = 999 Failure_UNREADABLE_FAILURE Failure_FailureCode = 999
@ -669,17 +669,17 @@ func (Failure_FailureCode) EnumDescriptor() ([]byte, []int) {
} }
type Utxo struct { type Utxo struct {
/// The type of address // The type of address
AddressType AddressType `protobuf:"varint,1,opt,name=address_type,json=addressType,proto3,enum=lnrpc.AddressType" json:"address_type,omitempty"` AddressType AddressType `protobuf:"varint,1,opt,name=address_type,json=addressType,proto3,enum=lnrpc.AddressType" json:"address_type,omitempty"`
/// The address // The address
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
/// The value of the unspent coin in satoshis // The value of the unspent coin in satoshis
AmountSat int64 `protobuf:"varint,3,opt,name=amount_sat,json=amountSat,proto3" json:"amount_sat,omitempty"` AmountSat int64 `protobuf:"varint,3,opt,name=amount_sat,json=amountSat,proto3" json:"amount_sat,omitempty"`
/// The pkscript in hex // The pkscript in hex
PkScript string `protobuf:"bytes,4,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"` PkScript string `protobuf:"bytes,4,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"`
/// The outpoint in format txid:n // The outpoint in format txid:n
Outpoint *OutPoint `protobuf:"bytes,5,opt,name=outpoint,proto3" json:"outpoint,omitempty"` Outpoint *OutPoint `protobuf:"bytes,5,opt,name=outpoint,proto3" json:"outpoint,omitempty"`
/// The number of confirmations for the Utxo // The number of confirmations for the Utxo
Confirmations int64 `protobuf:"varint,6,opt,name=confirmations,proto3" json:"confirmations,omitempty"` Confirmations int64 `protobuf:"varint,6,opt,name=confirmations,proto3" json:"confirmations,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -754,23 +754,23 @@ func (m *Utxo) GetConfirmations() int64 {
} }
type Transaction struct { type Transaction struct {
/// The transaction hash // The transaction hash
TxHash string `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` TxHash string `protobuf:"bytes,1,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"`
/// The transaction amount, denominated in satoshis // The transaction amount, denominated in satoshis
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
/// The number of confirmations // The number of confirmations
NumConfirmations int32 `protobuf:"varint,3,opt,name=num_confirmations,json=numConfirmations,proto3" json:"num_confirmations,omitempty"` NumConfirmations int32 `protobuf:"varint,3,opt,name=num_confirmations,json=numConfirmations,proto3" json:"num_confirmations,omitempty"`
/// The hash of the block this transaction was included in // The hash of the block this transaction was included in
BlockHash string `protobuf:"bytes,4,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` BlockHash string `protobuf:"bytes,4,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
/// The height of the block this transaction was included in // The height of the block this transaction was included in
BlockHeight int32 `protobuf:"varint,5,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` BlockHeight int32 `protobuf:"varint,5,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
/// Timestamp of this transaction // Timestamp of this transaction
TimeStamp int64 `protobuf:"varint,6,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` TimeStamp int64 `protobuf:"varint,6,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"`
/// Fees paid for this transaction // Fees paid for this transaction
TotalFees int64 `protobuf:"varint,7,opt,name=total_fees,json=totalFees,proto3" json:"total_fees,omitempty"` TotalFees int64 `protobuf:"varint,7,opt,name=total_fees,json=totalFees,proto3" json:"total_fees,omitempty"`
/// Addresses that received funds for this transaction // Addresses that received funds for this transaction
DestAddresses []string `protobuf:"bytes,8,rep,name=dest_addresses,json=destAddresses,proto3" json:"dest_addresses,omitempty"` DestAddresses []string `protobuf:"bytes,8,rep,name=dest_addresses,json=destAddresses,proto3" json:"dest_addresses,omitempty"`
/// The raw transaction hex. // The raw transaction hex.
RawTxHex string `protobuf:"bytes,9,opt,name=raw_tx_hex,json=rawTxHex,proto3" json:"raw_tx_hex,omitempty"` RawTxHex string `protobuf:"bytes,9,opt,name=raw_tx_hex,json=rawTxHex,proto3" json:"raw_tx_hex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -922,7 +922,7 @@ func (m *GetTransactionsRequest) GetEndHeight() int32 {
} }
type TransactionDetails struct { type TransactionDetails struct {
/// The list of transactions relevant to the wallet. // The list of transactions relevant to the wallet.
Transactions []*Transaction `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` Transactions []*Transaction `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1057,69 +1057,69 @@ func (*FeeLimit) XXX_OneofWrappers() []interface{} {
} }
type SendRequest struct { type SendRequest struct {
//* //
//The identity pubkey of the payment recipient. When using REST, this field //The identity pubkey of the payment recipient. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"` Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
//* //
//The hex-encoded identity pubkey of the payment recipient. Deprecated now //The hex-encoded identity pubkey of the payment recipient. Deprecated now
//that the REST gateway supports base64 encoding of bytes fields. //that the REST gateway supports base64 encoding of bytes fields.
DestString string `protobuf:"bytes,2,opt,name=dest_string,json=destString,proto3" json:"dest_string,omitempty"` // Deprecated: Do not use. DestString string `protobuf:"bytes,2,opt,name=dest_string,json=destString,proto3" json:"dest_string,omitempty"` // Deprecated: Do not use.
//* //
//The amount to send expressed in satoshis. //The amount to send expressed in satoshis.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
Amt int64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"` Amt int64 `protobuf:"varint,3,opt,name=amt,proto3" json:"amt,omitempty"`
//* //
//The amount to send expressed in millisatoshis. //The amount to send expressed in millisatoshis.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
//* //
//The hash to use within the payment's HTLC. When using REST, this field //The hash to use within the payment's HTLC. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//* //
//The hex-encoded hash to use within the payment's HTLC. Deprecated now //The hex-encoded hash to use within the payment's HTLC. Deprecated now
//that the REST gateway supports base64 encoding of bytes fields. //that the REST gateway supports base64 encoding of bytes fields.
PaymentHashString string `protobuf:"bytes,5,opt,name=payment_hash_string,json=paymentHashString,proto3" json:"payment_hash_string,omitempty"` // Deprecated: Do not use. PaymentHashString string `protobuf:"bytes,5,opt,name=payment_hash_string,json=paymentHashString,proto3" json:"payment_hash_string,omitempty"` // Deprecated: Do not use.
//* //
//A bare-bones invoice for a payment within the Lightning Network. With the //A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a //details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. //payment to the recipient.
PaymentRequest string `protobuf:"bytes,6,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"` PaymentRequest string `protobuf:"bytes,6,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
//* //
//The CLTV delta from the current height that should be used to set the //The CLTV delta from the current height that should be used to set the
//timelock for the final hop. //timelock for the final hop.
FinalCltvDelta int32 `protobuf:"varint,7,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"` FinalCltvDelta int32 `protobuf:"varint,7,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
//* //
//The maximum number of satoshis that will be paid as a fee of the payment. //The maximum number of satoshis that will be paid as a fee of the payment.
//This value can be represented either as a percentage of the amount being //This value can be represented either as a percentage of the amount being
//sent, or as a fixed amount of the maximum fee the user is willing the pay to //sent, or as a fixed amount of the maximum fee the user is willing the pay to
//send the payment. //send the payment.
FeeLimit *FeeLimit `protobuf:"bytes,8,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"` FeeLimit *FeeLimit `protobuf:"bytes,8,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
//* //
//The channel id of the channel that must be taken to the first hop. If zero, //The channel id of the channel that must be taken to the first hop. If zero,
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //
//The pubkey of the last hop of the route. If empty, any hop may be used. //The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,13,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"` LastHopPubkey []byte `protobuf:"bytes,13,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//* //
//An optional maximum total time lock for the route. This should not exceed //An optional maximum total time lock for the route. This should not exceed
//lnd's `--max-cltv-expiry` setting. If zero, then the value of //lnd's `--max-cltv-expiry` setting. If zero, then the value of
//`--max-cltv-expiry` is enforced. //`--max-cltv-expiry` is enforced.
CltvLimit uint32 `protobuf:"varint,10,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"` CltvLimit uint32 `protobuf:"varint,10,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
//* //
//An optional field that can be used to pass an arbitrary set of TLV records //An optional field that can be used to pass an arbitrary set of TLV records
//to a peer which understands the new records. This can be used to pass //to a peer which understands the new records. This can be used to pass
//application specific data during the payment attempt. Record types are //application specific data during the payment attempt. Record types are
//required to be in the custom range >= 65536. When using REST, the values //required to be in the custom range >= 65536. When using REST, the values
//must be encoded as base64. //must be encoded as base64.
DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` DestCustomRecords map[uint64][]byte `protobuf:"bytes,11,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
/// If set, circular payments to self are permitted. // If set, circular payments to self are permitted.
AllowSelfPayment bool `protobuf:"varint,14,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"` AllowSelfPayment bool `protobuf:"varint,14,opt,name=allow_self_payment,json=allowSelfPayment,proto3" json:"allow_self_payment,omitempty"`
//* //
//Features assumed to be supported by the final node. All transitive feature //Features assumed to be supported by the final node. All transitive feature
//dependencies must also be set properly. For a given feature bit pair, either //dependencies must also be set properly. For a given feature bit pair, either
//optional or remote may be set, but not both. If this field is nil or empty, //optional or remote may be set, but not both. If this field is nil or empty,
@ -1327,15 +1327,15 @@ func (m *SendResponse) GetPaymentHash() []byte {
} }
type SendToRouteRequest struct { type SendToRouteRequest struct {
//* //
//The payment hash to use for the HTLC. When using REST, this field must be //The payment hash to use for the HTLC. When using REST, this field must be
//encoded as base64. //encoded as base64.
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
//* //
//An optional hex-encoded payment hash to be used for the HTLC. Deprecated now //An optional hex-encoded payment hash to be used for the HTLC. Deprecated now
//that the REST gateway supports base64 encoding of bytes fields. //that the REST gateway supports base64 encoding of bytes fields.
PaymentHashString string `protobuf:"bytes,2,opt,name=payment_hash_string,json=paymentHashString,proto3" json:"payment_hash_string,omitempty"` // Deprecated: Do not use. PaymentHashString string `protobuf:"bytes,2,opt,name=payment_hash_string,json=paymentHashString,proto3" json:"payment_hash_string,omitempty"` // Deprecated: Do not use.
/// Route that should be used to attempt to complete the payment. // Route that should be used to attempt to complete the payment.
Route *Route `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"` Route *Route `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1390,38 +1390,38 @@ func (m *SendToRouteRequest) GetRoute() *Route {
} }
type ChannelAcceptRequest struct { type ChannelAcceptRequest struct {
/// The pubkey of the node that wishes to open an inbound channel. // The pubkey of the node that wishes to open an inbound channel.
NodePubkey []byte `protobuf:"bytes,1,opt,name=node_pubkey,json=nodePubkey,proto3" json:"node_pubkey,omitempty"` NodePubkey []byte `protobuf:"bytes,1,opt,name=node_pubkey,json=nodePubkey,proto3" json:"node_pubkey,omitempty"`
/// The hash of the genesis block that the proposed channel resides in. // The hash of the genesis block that the proposed channel resides in.
ChainHash []byte `protobuf:"bytes,2,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"` ChainHash []byte `protobuf:"bytes,2,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"`
/// The pending channel id. // The pending channel id.
PendingChanId []byte `protobuf:"bytes,3,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,3,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
/// The funding amount in satoshis that initiator wishes to use in the // The funding amount in satoshis that initiator wishes to use in the
/// channel. // channel.
FundingAmt uint64 `protobuf:"varint,4,opt,name=funding_amt,json=fundingAmt,proto3" json:"funding_amt,omitempty"` FundingAmt uint64 `protobuf:"varint,4,opt,name=funding_amt,json=fundingAmt,proto3" json:"funding_amt,omitempty"`
/// The push amount of the proposed channel in millisatoshis. // The push amount of the proposed channel in millisatoshis.
PushAmt uint64 `protobuf:"varint,5,opt,name=push_amt,json=pushAmt,proto3" json:"push_amt,omitempty"` PushAmt uint64 `protobuf:"varint,5,opt,name=push_amt,json=pushAmt,proto3" json:"push_amt,omitempty"`
/// The dust limit of the initiator's commitment tx. // The dust limit of the initiator's commitment tx.
DustLimit uint64 `protobuf:"varint,6,opt,name=dust_limit,json=dustLimit,proto3" json:"dust_limit,omitempty"` DustLimit uint64 `protobuf:"varint,6,opt,name=dust_limit,json=dustLimit,proto3" json:"dust_limit,omitempty"`
/// The maximum amount of coins in millisatoshis that can be pending in this // The maximum amount of coins in millisatoshis that can be pending in this
/// channel. // channel.
MaxValueInFlight uint64 `protobuf:"varint,7,opt,name=max_value_in_flight,json=maxValueInFlight,proto3" json:"max_value_in_flight,omitempty"` MaxValueInFlight uint64 `protobuf:"varint,7,opt,name=max_value_in_flight,json=maxValueInFlight,proto3" json:"max_value_in_flight,omitempty"`
/// The minimum amount of satoshis the initiator requires us to have at all // The minimum amount of satoshis the initiator requires us to have at all
/// times. // times.
ChannelReserve uint64 `protobuf:"varint,8,opt,name=channel_reserve,json=channelReserve,proto3" json:"channel_reserve,omitempty"` ChannelReserve uint64 `protobuf:"varint,8,opt,name=channel_reserve,json=channelReserve,proto3" json:"channel_reserve,omitempty"`
/// The smallest HTLC in millisatoshis that the initiator will accept. // The smallest HTLC in millisatoshis that the initiator will accept.
MinHtlc uint64 `protobuf:"varint,9,opt,name=min_htlc,json=minHtlc,proto3" json:"min_htlc,omitempty"` MinHtlc uint64 `protobuf:"varint,9,opt,name=min_htlc,json=minHtlc,proto3" json:"min_htlc,omitempty"`
/// The initial fee rate that the initiator suggests for both commitment // The initial fee rate that the initiator suggests for both commitment
/// transactions. // transactions.
FeePerKw uint64 `protobuf:"varint,10,opt,name=fee_per_kw,json=feePerKw,proto3" json:"fee_per_kw,omitempty"` FeePerKw uint64 `protobuf:"varint,10,opt,name=fee_per_kw,json=feePerKw,proto3" json:"fee_per_kw,omitempty"`
//* //
//The number of blocks to use for the relative time lock in the pay-to-self //The number of blocks to use for the relative time lock in the pay-to-self
//output of both commitment transactions. //output of both commitment transactions.
CsvDelay uint32 `protobuf:"varint,11,opt,name=csv_delay,json=csvDelay,proto3" json:"csv_delay,omitempty"` CsvDelay uint32 `protobuf:"varint,11,opt,name=csv_delay,json=csvDelay,proto3" json:"csv_delay,omitempty"`
/// The total number of incoming HTLC's that the initiator will accept. // The total number of incoming HTLC's that the initiator will accept.
MaxAcceptedHtlcs uint32 `protobuf:"varint,12,opt,name=max_accepted_htlcs,json=maxAcceptedHtlcs,proto3" json:"max_accepted_htlcs,omitempty"` MaxAcceptedHtlcs uint32 `protobuf:"varint,12,opt,name=max_accepted_htlcs,json=maxAcceptedHtlcs,proto3" json:"max_accepted_htlcs,omitempty"`
/// A bit-field which the initiator uses to specify proposed channel // A bit-field which the initiator uses to specify proposed channel
/// behavior. // behavior.
ChannelFlags uint32 `protobuf:"varint,13,opt,name=channel_flags,json=channelFlags,proto3" json:"channel_flags,omitempty"` ChannelFlags uint32 `protobuf:"varint,13,opt,name=channel_flags,json=channelFlags,proto3" json:"channel_flags,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1545,9 +1545,9 @@ func (m *ChannelAcceptRequest) GetChannelFlags() uint32 {
} }
type ChannelAcceptResponse struct { type ChannelAcceptResponse struct {
/// Whether or not the client accepts the channel. // Whether or not the client accepts the channel.
Accept bool `protobuf:"varint,1,opt,name=accept,proto3" json:"accept,omitempty"` Accept bool `protobuf:"varint,1,opt,name=accept,proto3" json:"accept,omitempty"`
/// The pending channel id to which this response applies. // The pending channel id to which this response applies.
PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1598,7 +1598,7 @@ type ChannelPoint struct {
// *ChannelPoint_FundingTxidBytes // *ChannelPoint_FundingTxidBytes
// *ChannelPoint_FundingTxidStr // *ChannelPoint_FundingTxidStr
FundingTxid isChannelPoint_FundingTxid `protobuf_oneof:"funding_txid"` FundingTxid isChannelPoint_FundingTxid `protobuf_oneof:"funding_txid"`
/// The index of the output of the funding transaction // The index of the output of the funding transaction
OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1683,11 +1683,11 @@ func (*ChannelPoint) XXX_OneofWrappers() []interface{} {
} }
type OutPoint struct { type OutPoint struct {
/// Raw bytes representing the transaction id. // Raw bytes representing the transaction id.
TxidBytes []byte `protobuf:"bytes,1,opt,name=txid_bytes,json=txidBytes,proto3" json:"txid_bytes,omitempty"` TxidBytes []byte `protobuf:"bytes,1,opt,name=txid_bytes,json=txidBytes,proto3" json:"txid_bytes,omitempty"`
/// Reversed, hex-encoded string representing the transaction id. // Reversed, hex-encoded string representing the transaction id.
TxidStr string `protobuf:"bytes,2,opt,name=txid_str,json=txidStr,proto3" json:"txid_str,omitempty"` TxidStr string `protobuf:"bytes,2,opt,name=txid_str,json=txidStr,proto3" json:"txid_str,omitempty"`
/// The index of the output on the transaction. // The index of the output on the transaction.
OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1741,10 +1741,10 @@ func (m *OutPoint) GetOutputIndex() uint32 {
} }
type LightningAddress struct { type LightningAddress struct {
/// The identity pubkey of the Lightning node // The identity pubkey of the Lightning node
Pubkey string `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` Pubkey string `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
/// The network location of the lightning node, e.g. `69.69.69.69:1337` or // The network location of the lightning node, e.g. `69.69.69.69:1337` or
/// `localhost:10011` // `localhost:10011`
Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1791,10 +1791,10 @@ func (m *LightningAddress) GetHost() string {
} }
type EstimateFeeRequest struct { type EstimateFeeRequest struct {
/// The map from addresses to amounts for the transaction. // The map from addresses to amounts for the transaction.
AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount,proto3" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount,proto3" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
TargetConf int32 `protobuf:"varint,2,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` TargetConf int32 `protobuf:"varint,2,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1841,9 +1841,9 @@ func (m *EstimateFeeRequest) GetTargetConf() int32 {
} }
type EstimateFeeResponse struct { type EstimateFeeResponse struct {
/// The total fee in satoshis. // The total fee in satoshis.
FeeSat int64 `protobuf:"varint,1,opt,name=fee_sat,json=feeSat,proto3" json:"fee_sat,omitempty"` FeeSat int64 `protobuf:"varint,1,opt,name=fee_sat,json=feeSat,proto3" json:"fee_sat,omitempty"`
/// The fee rate in satoshi/byte. // The fee rate in satoshi/byte.
FeerateSatPerByte int64 `protobuf:"varint,2,opt,name=feerate_sat_per_byte,json=feerateSatPerByte,proto3" json:"feerate_sat_per_byte,omitempty"` FeerateSatPerByte int64 `protobuf:"varint,2,opt,name=feerate_sat_per_byte,json=feerateSatPerByte,proto3" json:"feerate_sat_per_byte,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1890,13 +1890,13 @@ func (m *EstimateFeeResponse) GetFeerateSatPerByte() int64 {
} }
type SendManyRequest struct { type SendManyRequest struct {
/// The map from addresses to amounts // The map from addresses to amounts
AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount,proto3" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount,proto3" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"`
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// transaction. // transaction.
SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1950,7 +1950,7 @@ func (m *SendManyRequest) GetSatPerByte() int64 {
} }
type SendManyResponse struct { type SendManyResponse struct {
/// The id of the transaction // The id of the transaction
Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -1990,17 +1990,17 @@ func (m *SendManyResponse) GetTxid() string {
} }
type SendCoinsRequest struct { type SendCoinsRequest struct {
/// The address to send coins to // The address to send coins to
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
/// The amount in satoshis to send // The amount in satoshis to send
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"`
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// transaction. // transaction.
SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` SatPerByte int64 `protobuf:"varint,5,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"`
//* //
//If set, then the amount field will be ignored, and lnd will attempt to //If set, then the amount field will be ignored, and lnd will attempt to
//send all the coins under control of the internal wallet to the specified //send all the coins under control of the internal wallet to the specified
//address. //address.
@ -2071,7 +2071,7 @@ func (m *SendCoinsRequest) GetSendAll() bool {
} }
type SendCoinsResponse struct { type SendCoinsResponse struct {
/// The transaction ID of the transaction // The transaction ID of the transaction
Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2111,9 +2111,9 @@ func (m *SendCoinsResponse) GetTxid() string {
} }
type ListUnspentRequest struct { type ListUnspentRequest struct {
/// The minimum number of confirmations to be included. // The minimum number of confirmations to be included.
MinConfs int32 `protobuf:"varint,1,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"` MinConfs int32 `protobuf:"varint,1,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"`
/// The maximum number of confirmations to be included. // The maximum number of confirmations to be included.
MaxConfs int32 `protobuf:"varint,2,opt,name=max_confs,json=maxConfs,proto3" json:"max_confs,omitempty"` MaxConfs int32 `protobuf:"varint,2,opt,name=max_confs,json=maxConfs,proto3" json:"max_confs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2160,7 +2160,7 @@ func (m *ListUnspentRequest) GetMaxConfs() int32 {
} }
type ListUnspentResponse struct { type ListUnspentResponse struct {
/// A list of utxos // A list of utxos
Utxos []*Utxo `protobuf:"bytes,1,rep,name=utxos,proto3" json:"utxos,omitempty"` Utxos []*Utxo `protobuf:"bytes,1,rep,name=utxos,proto3" json:"utxos,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2200,7 +2200,7 @@ func (m *ListUnspentResponse) GetUtxos() []*Utxo {
} }
type NewAddressRequest struct { type NewAddressRequest struct {
/// The address type // The address type
Type AddressType `protobuf:"varint,1,opt,name=type,proto3,enum=lnrpc.AddressType" json:"type,omitempty"` Type AddressType `protobuf:"varint,1,opt,name=type,proto3,enum=lnrpc.AddressType" json:"type,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2240,7 +2240,7 @@ func (m *NewAddressRequest) GetType() AddressType {
} }
type NewAddressResponse struct { type NewAddressResponse struct {
/// The newly generated wallet address // The newly generated wallet address
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2280,7 +2280,7 @@ func (m *NewAddressResponse) GetAddress() string {
} }
type SignMessageRequest struct { type SignMessageRequest struct {
//* //
//The message to be signed. When using REST, this field must be encoded as //The message to be signed. When using REST, this field must be encoded as
//base64. //base64.
Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
@ -2322,7 +2322,7 @@ func (m *SignMessageRequest) GetMsg() []byte {
} }
type SignMessageResponse struct { type SignMessageResponse struct {
/// The signature for the given message // The signature for the given message
Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2362,11 +2362,11 @@ func (m *SignMessageResponse) GetSignature() string {
} }
type VerifyMessageRequest struct { type VerifyMessageRequest struct {
//* //
//The message over which the signature is to be verified. When using REST, //The message over which the signature is to be verified. When using REST,
//this field must be encoded as base64. //this field must be encoded as base64.
Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
/// The signature to be verified over the given message // The signature to be verified over the given message
Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` Signature string `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2413,9 +2413,9 @@ func (m *VerifyMessageRequest) GetSignature() string {
} }
type VerifyMessageResponse struct { type VerifyMessageResponse struct {
/// Whether the signature was valid over the given message // Whether the signature was valid over the given message
Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
/// The pubkey recovered from the signature // The pubkey recovered from the signature
Pubkey string `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"` Pubkey string `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2462,9 +2462,9 @@ func (m *VerifyMessageResponse) GetPubkey() string {
} }
type ConnectPeerRequest struct { type ConnectPeerRequest struct {
/// Lightning address of the peer, in the format `<pubkey>@host` // Lightning address of the peer, in the format `<pubkey>@host`
Addr *LightningAddress `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` Addr *LightningAddress `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
//* If set, the daemon will attempt to persistently connect to the target // If set, the daemon will attempt to persistently connect to the target
// peer. Otherwise, the call will be synchronous. // peer. Otherwise, the call will be synchronous.
Perm bool `protobuf:"varint,2,opt,name=perm,proto3" json:"perm,omitempty"` Perm bool `protobuf:"varint,2,opt,name=perm,proto3" json:"perm,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -2543,7 +2543,7 @@ func (m *ConnectPeerResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_ConnectPeerResponse proto.InternalMessageInfo var xxx_messageInfo_ConnectPeerResponse proto.InternalMessageInfo
type DisconnectPeerRequest struct { type DisconnectPeerRequest struct {
/// The pubkey of the node to disconnect from // The pubkey of the node to disconnect from
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2677,83 +2677,83 @@ func (m *HTLC) GetExpirationHeight() uint32 {
} }
type Channel struct { type Channel struct {
/// Whether this channel is active or not // Whether this channel is active or not
Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"` Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"`
/// The identity pubkey of the remote node // The identity pubkey of the remote node
RemotePubkey string `protobuf:"bytes,2,opt,name=remote_pubkey,json=remotePubkey,proto3" json:"remote_pubkey,omitempty"` RemotePubkey string `protobuf:"bytes,2,opt,name=remote_pubkey,json=remotePubkey,proto3" json:"remote_pubkey,omitempty"`
//* //
//The outpoint (txid:index) of the funding transaction. With this value, Bob //The outpoint (txid:index) of the funding transaction. With this value, Bob
//will be able to generate a signature for Alice's version of the commitment //will be able to generate a signature for Alice's version of the commitment
//transaction. //transaction.
ChannelPoint string `protobuf:"bytes,3,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"` ChannelPoint string `protobuf:"bytes,3,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
ChanId uint64 `protobuf:"varint,4,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,4,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// The total amount of funds held in this channel // The total amount of funds held in this channel
Capacity int64 `protobuf:"varint,5,opt,name=capacity,proto3" json:"capacity,omitempty"` Capacity int64 `protobuf:"varint,5,opt,name=capacity,proto3" json:"capacity,omitempty"`
/// This node's current balance in this channel // This node's current balance in this channel
LocalBalance int64 `protobuf:"varint,6,opt,name=local_balance,json=localBalance,proto3" json:"local_balance,omitempty"` LocalBalance int64 `protobuf:"varint,6,opt,name=local_balance,json=localBalance,proto3" json:"local_balance,omitempty"`
/// The counterparty's current balance in this channel // The counterparty's current balance in this channel
RemoteBalance int64 `protobuf:"varint,7,opt,name=remote_balance,json=remoteBalance,proto3" json:"remote_balance,omitempty"` RemoteBalance int64 `protobuf:"varint,7,opt,name=remote_balance,json=remoteBalance,proto3" json:"remote_balance,omitempty"`
//* //
//The amount calculated to be paid in fees for the current set of commitment //The amount calculated to be paid in fees for the current set of commitment
//transactions. The fee amount is persisted with the channel in order to //transactions. The fee amount is persisted with the channel in order to
//allow the fee amount to be removed and recalculated with each channel state //allow the fee amount to be removed and recalculated with each channel state
//update, including updates that happen after a system restart. //update, including updates that happen after a system restart.
CommitFee int64 `protobuf:"varint,8,opt,name=commit_fee,json=commitFee,proto3" json:"commit_fee,omitempty"` CommitFee int64 `protobuf:"varint,8,opt,name=commit_fee,json=commitFee,proto3" json:"commit_fee,omitempty"`
/// The weight of the commitment transaction // The weight of the commitment transaction
CommitWeight int64 `protobuf:"varint,9,opt,name=commit_weight,json=commitWeight,proto3" json:"commit_weight,omitempty"` CommitWeight int64 `protobuf:"varint,9,opt,name=commit_weight,json=commitWeight,proto3" json:"commit_weight,omitempty"`
//* //
//The required number of satoshis per kilo-weight that the requester will pay //The required number of satoshis per kilo-weight that the requester will pay
//at all times, for both the funding transaction and commitment transaction. //at all times, for both the funding transaction and commitment transaction.
//This value can later be updated once the channel is open. //This value can later be updated once the channel is open.
FeePerKw int64 `protobuf:"varint,10,opt,name=fee_per_kw,json=feePerKw,proto3" json:"fee_per_kw,omitempty"` FeePerKw int64 `protobuf:"varint,10,opt,name=fee_per_kw,json=feePerKw,proto3" json:"fee_per_kw,omitempty"`
/// The unsettled balance in this channel // The unsettled balance in this channel
UnsettledBalance int64 `protobuf:"varint,11,opt,name=unsettled_balance,json=unsettledBalance,proto3" json:"unsettled_balance,omitempty"` UnsettledBalance int64 `protobuf:"varint,11,opt,name=unsettled_balance,json=unsettledBalance,proto3" json:"unsettled_balance,omitempty"`
//* //
//The total number of satoshis we've sent within this channel. //The total number of satoshis we've sent within this channel.
TotalSatoshisSent int64 `protobuf:"varint,12,opt,name=total_satoshis_sent,json=totalSatoshisSent,proto3" json:"total_satoshis_sent,omitempty"` TotalSatoshisSent int64 `protobuf:"varint,12,opt,name=total_satoshis_sent,json=totalSatoshisSent,proto3" json:"total_satoshis_sent,omitempty"`
//* //
//The total number of satoshis we've received within this channel. //The total number of satoshis we've received within this channel.
TotalSatoshisReceived int64 `protobuf:"varint,13,opt,name=total_satoshis_received,json=totalSatoshisReceived,proto3" json:"total_satoshis_received,omitempty"` TotalSatoshisReceived int64 `protobuf:"varint,13,opt,name=total_satoshis_received,json=totalSatoshisReceived,proto3" json:"total_satoshis_received,omitempty"`
//* //
//The total number of updates conducted within this channel. //The total number of updates conducted within this channel.
NumUpdates uint64 `protobuf:"varint,14,opt,name=num_updates,json=numUpdates,proto3" json:"num_updates,omitempty"` NumUpdates uint64 `protobuf:"varint,14,opt,name=num_updates,json=numUpdates,proto3" json:"num_updates,omitempty"`
//* //
//The list of active, uncleared HTLCs currently pending within the channel. //The list of active, uncleared HTLCs currently pending within the channel.
PendingHtlcs []*HTLC `protobuf:"bytes,15,rep,name=pending_htlcs,json=pendingHtlcs,proto3" json:"pending_htlcs,omitempty"` PendingHtlcs []*HTLC `protobuf:"bytes,15,rep,name=pending_htlcs,json=pendingHtlcs,proto3" json:"pending_htlcs,omitempty"`
//* //
//The CSV delay expressed in relative blocks. If the channel is force closed, //The CSV delay expressed in relative blocks. If the channel is force closed,
//we will need to wait for this many blocks before we can regain our funds. //we will need to wait for this many blocks before we can regain our funds.
CsvDelay uint32 `protobuf:"varint,16,opt,name=csv_delay,json=csvDelay,proto3" json:"csv_delay,omitempty"` CsvDelay uint32 `protobuf:"varint,16,opt,name=csv_delay,json=csvDelay,proto3" json:"csv_delay,omitempty"`
/// Whether this channel is advertised to the network or not. // Whether this channel is advertised to the network or not.
Private bool `protobuf:"varint,17,opt,name=private,proto3" json:"private,omitempty"` Private bool `protobuf:"varint,17,opt,name=private,proto3" json:"private,omitempty"`
/// True if we were the ones that created the channel. // True if we were the ones that created the channel.
Initiator bool `protobuf:"varint,18,opt,name=initiator,proto3" json:"initiator,omitempty"` Initiator bool `protobuf:"varint,18,opt,name=initiator,proto3" json:"initiator,omitempty"`
/// A set of flags showing the current state of the channel. // A set of flags showing the current state of the channel.
ChanStatusFlags string `protobuf:"bytes,19,opt,name=chan_status_flags,json=chanStatusFlags,proto3" json:"chan_status_flags,omitempty"` ChanStatusFlags string `protobuf:"bytes,19,opt,name=chan_status_flags,json=chanStatusFlags,proto3" json:"chan_status_flags,omitempty"`
/// The minimum satoshis this node is required to reserve in its balance. // The minimum satoshis this node is required to reserve in its balance.
LocalChanReserveSat int64 `protobuf:"varint,20,opt,name=local_chan_reserve_sat,json=localChanReserveSat,proto3" json:"local_chan_reserve_sat,omitempty"` LocalChanReserveSat int64 `protobuf:"varint,20,opt,name=local_chan_reserve_sat,json=localChanReserveSat,proto3" json:"local_chan_reserve_sat,omitempty"`
//* //
//The minimum satoshis the other node is required to reserve in its balance. //The minimum satoshis the other node is required to reserve in its balance.
RemoteChanReserveSat int64 `protobuf:"varint,21,opt,name=remote_chan_reserve_sat,json=remoteChanReserveSat,proto3" json:"remote_chan_reserve_sat,omitempty"` RemoteChanReserveSat int64 `protobuf:"varint,21,opt,name=remote_chan_reserve_sat,json=remoteChanReserveSat,proto3" json:"remote_chan_reserve_sat,omitempty"`
/// Deprecated. Use commitment_type. // Deprecated. Use commitment_type.
StaticRemoteKey bool `protobuf:"varint,22,opt,name=static_remote_key,json=staticRemoteKey,proto3" json:"static_remote_key,omitempty"` // Deprecated: Do not use. StaticRemoteKey bool `protobuf:"varint,22,opt,name=static_remote_key,json=staticRemoteKey,proto3" json:"static_remote_key,omitempty"` // Deprecated: Do not use.
/// The commitment type used by this channel. // The commitment type used by this channel.
CommitmentType CommitmentType `protobuf:"varint,26,opt,name=commitment_type,json=commitmentType,proto3,enum=lnrpc.CommitmentType" json:"commitment_type,omitempty"` CommitmentType CommitmentType `protobuf:"varint,26,opt,name=commitment_type,json=commitmentType,proto3,enum=lnrpc.CommitmentType" json:"commitment_type,omitempty"`
//* //
//The number of seconds that the channel has been monitored by the channel //The number of seconds that the channel has been monitored by the channel
//scoring system. Scores are currently not persisted, so this value may be //scoring system. Scores are currently not persisted, so this value may be
//less than the lifetime of the channel [EXPERIMENTAL]. //less than the lifetime of the channel [EXPERIMENTAL].
Lifetime int64 `protobuf:"varint,23,opt,name=lifetime,proto3" json:"lifetime,omitempty"` Lifetime int64 `protobuf:"varint,23,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
//* //
//The number of seconds that the remote peer has been observed as being online //The number of seconds that the remote peer has been observed as being online
//by the channel scoring system over the lifetime of the channel //by the channel scoring system over the lifetime of the channel
//[EXPERIMENTAL]. //[EXPERIMENTAL].
Uptime int64 `protobuf:"varint,24,opt,name=uptime,proto3" json:"uptime,omitempty"` Uptime int64 `protobuf:"varint,24,opt,name=uptime,proto3" json:"uptime,omitempty"`
//* //
//Close address is the address that we will enforce payout to on cooperative //Close address is the address that we will enforce payout to on cooperative
//close if the channel was opened utilizing option upfront shutdown. This //close if the channel was opened utilizing option upfront shutdown. This
//value can be set on channel open by setting close_address in an open channel //value can be set on channel open by setting close_address in an open channel
@ -2767,7 +2767,7 @@ type Channel struct {
//pushed this amount to our peer, if it is false, the remote peer pushed this //pushed this amount to our peer, if it is false, the remote peer pushed this
//amount to us. //amount to us.
PushAmountSat uint64 `protobuf:"varint,27,opt,name=push_amount_sat,json=pushAmountSat,proto3" json:"push_amount_sat,omitempty"` PushAmountSat uint64 `protobuf:"varint,27,opt,name=push_amount_sat,json=pushAmountSat,proto3" json:"push_amount_sat,omitempty"`
//* //
//This uint32 indicates if this channel is to be considered 'frozen'. A //This uint32 indicates if this channel is to be considered 'frozen'. A
//frozen channel doest not allow a cooperative channel close by the //frozen channel doest not allow a cooperative channel close by the
//initiator. The thaw_height is the height that this restriction stops //initiator. The thaw_height is the height that this restriction stops
@ -3006,7 +3006,7 @@ type ListChannelsRequest struct {
InactiveOnly bool `protobuf:"varint,2,opt,name=inactive_only,json=inactiveOnly,proto3" json:"inactive_only,omitempty"` InactiveOnly bool `protobuf:"varint,2,opt,name=inactive_only,json=inactiveOnly,proto3" json:"inactive_only,omitempty"`
PublicOnly bool `protobuf:"varint,3,opt,name=public_only,json=publicOnly,proto3" json:"public_only,omitempty"` PublicOnly bool `protobuf:"varint,3,opt,name=public_only,json=publicOnly,proto3" json:"public_only,omitempty"`
PrivateOnly bool `protobuf:"varint,4,opt,name=private_only,json=privateOnly,proto3" json:"private_only,omitempty"` PrivateOnly bool `protobuf:"varint,4,opt,name=private_only,json=privateOnly,proto3" json:"private_only,omitempty"`
//* //
//Filters the response for channels with a target peer's pubkey. If peer is //Filters the response for channels with a target peer's pubkey. If peer is
//empty, all channels will be returned. //empty, all channels will be returned.
Peer []byte `protobuf:"bytes,5,opt,name=peer,proto3" json:"peer,omitempty"` Peer []byte `protobuf:"bytes,5,opt,name=peer,proto3" json:"peer,omitempty"`
@ -3076,7 +3076,7 @@ func (m *ListChannelsRequest) GetPeer() []byte {
} }
type ListChannelsResponse struct { type ListChannelsResponse struct {
/// The list of active channels // The list of active channels
Channels []*Channel `protobuf:"bytes,11,rep,name=channels,proto3" json:"channels,omitempty"` Channels []*Channel `protobuf:"bytes,11,rep,name=channels,proto3" json:"channels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -3116,32 +3116,32 @@ func (m *ListChannelsResponse) GetChannels() []*Channel {
} }
type ChannelCloseSummary struct { type ChannelCloseSummary struct {
/// The outpoint (txid:index) of the funding transaction. // The outpoint (txid:index) of the funding transaction.
ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"` ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
/// The unique channel ID for the channel. // The unique channel ID for the channel.
ChanId uint64 `protobuf:"varint,2,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,2,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// The hash of the genesis block that this channel resides within. // The hash of the genesis block that this channel resides within.
ChainHash string `protobuf:"bytes,3,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"` ChainHash string `protobuf:"bytes,3,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"`
/// The txid of the transaction which ultimately closed this channel. // The txid of the transaction which ultimately closed this channel.
ClosingTxHash string `protobuf:"bytes,4,opt,name=closing_tx_hash,json=closingTxHash,proto3" json:"closing_tx_hash,omitempty"` ClosingTxHash string `protobuf:"bytes,4,opt,name=closing_tx_hash,json=closingTxHash,proto3" json:"closing_tx_hash,omitempty"`
/// Public key of the remote peer that we formerly had a channel with. // Public key of the remote peer that we formerly had a channel with.
RemotePubkey string `protobuf:"bytes,5,opt,name=remote_pubkey,json=remotePubkey,proto3" json:"remote_pubkey,omitempty"` RemotePubkey string `protobuf:"bytes,5,opt,name=remote_pubkey,json=remotePubkey,proto3" json:"remote_pubkey,omitempty"`
/// Total capacity of the channel. // Total capacity of the channel.
Capacity int64 `protobuf:"varint,6,opt,name=capacity,proto3" json:"capacity,omitempty"` Capacity int64 `protobuf:"varint,6,opt,name=capacity,proto3" json:"capacity,omitempty"`
/// Height at which the funding transaction was spent. // Height at which the funding transaction was spent.
CloseHeight uint32 `protobuf:"varint,7,opt,name=close_height,json=closeHeight,proto3" json:"close_height,omitempty"` CloseHeight uint32 `protobuf:"varint,7,opt,name=close_height,json=closeHeight,proto3" json:"close_height,omitempty"`
/// Settled balance at the time of channel closure // Settled balance at the time of channel closure
SettledBalance int64 `protobuf:"varint,8,opt,name=settled_balance,json=settledBalance,proto3" json:"settled_balance,omitempty"` SettledBalance int64 `protobuf:"varint,8,opt,name=settled_balance,json=settledBalance,proto3" json:"settled_balance,omitempty"`
/// The sum of all the time-locked outputs at the time of channel closure // The sum of all the time-locked outputs at the time of channel closure
TimeLockedBalance int64 `protobuf:"varint,9,opt,name=time_locked_balance,json=timeLockedBalance,proto3" json:"time_locked_balance,omitempty"` TimeLockedBalance int64 `protobuf:"varint,9,opt,name=time_locked_balance,json=timeLockedBalance,proto3" json:"time_locked_balance,omitempty"`
/// Details on how the channel was closed. // Details on how the channel was closed.
CloseType ChannelCloseSummary_ClosureType `protobuf:"varint,10,opt,name=close_type,json=closeType,proto3,enum=lnrpc.ChannelCloseSummary_ClosureType" json:"close_type,omitempty"` CloseType ChannelCloseSummary_ClosureType `protobuf:"varint,10,opt,name=close_type,json=closeType,proto3,enum=lnrpc.ChannelCloseSummary_ClosureType" json:"close_type,omitempty"`
//* //
//Open initiator is the party that initiated opening the channel. Note that //Open initiator is the party that initiated opening the channel. Note that
//this value may be unknown if the channel was closed before we migrated to //this value may be unknown if the channel was closed before we migrated to
//store open channel information after close. //store open channel information after close.
OpenInitiator Initiator `protobuf:"varint,11,opt,name=open_initiator,json=openInitiator,proto3,enum=lnrpc.Initiator" json:"open_initiator,omitempty"` OpenInitiator Initiator `protobuf:"varint,11,opt,name=open_initiator,json=openInitiator,proto3,enum=lnrpc.Initiator" json:"open_initiator,omitempty"`
//* //
//Close initiator indicates which party initiated the close. This value will //Close initiator indicates which party initiated the close. This value will
//be unknown for channels that were cooperatively closed before we started //be unknown for channels that were cooperatively closed before we started
//tracking cooperative close initiators. Note that this indicates which party //tracking cooperative close initiators. Note that this indicates which party
@ -3381,25 +3381,25 @@ func (m *ClosedChannelsResponse) GetChannels() []*ChannelCloseSummary {
} }
type Peer struct { type Peer struct {
/// The identity pubkey of the peer // The identity pubkey of the peer
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
/// Network address of the peer; eg `127.0.0.1:10011` // Network address of the peer; eg `127.0.0.1:10011`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
/// Bytes of data transmitted to this peer // Bytes of data transmitted to this peer
BytesSent uint64 `protobuf:"varint,4,opt,name=bytes_sent,json=bytesSent,proto3" json:"bytes_sent,omitempty"` BytesSent uint64 `protobuf:"varint,4,opt,name=bytes_sent,json=bytesSent,proto3" json:"bytes_sent,omitempty"`
/// Bytes of data transmitted from this peer // Bytes of data transmitted from this peer
BytesRecv uint64 `protobuf:"varint,5,opt,name=bytes_recv,json=bytesRecv,proto3" json:"bytes_recv,omitempty"` BytesRecv uint64 `protobuf:"varint,5,opt,name=bytes_recv,json=bytesRecv,proto3" json:"bytes_recv,omitempty"`
/// Satoshis sent to this peer // Satoshis sent to this peer
SatSent int64 `protobuf:"varint,6,opt,name=sat_sent,json=satSent,proto3" json:"sat_sent,omitempty"` SatSent int64 `protobuf:"varint,6,opt,name=sat_sent,json=satSent,proto3" json:"sat_sent,omitempty"`
/// Satoshis received from this peer // Satoshis received from this peer
SatRecv int64 `protobuf:"varint,7,opt,name=sat_recv,json=satRecv,proto3" json:"sat_recv,omitempty"` SatRecv int64 `protobuf:"varint,7,opt,name=sat_recv,json=satRecv,proto3" json:"sat_recv,omitempty"`
/// A channel is inbound if the counterparty initiated the channel // A channel is inbound if the counterparty initiated the channel
Inbound bool `protobuf:"varint,8,opt,name=inbound,proto3" json:"inbound,omitempty"` Inbound bool `protobuf:"varint,8,opt,name=inbound,proto3" json:"inbound,omitempty"`
/// Ping time to this peer // Ping time to this peer
PingTime int64 `protobuf:"varint,9,opt,name=ping_time,json=pingTime,proto3" json:"ping_time,omitempty"` PingTime int64 `protobuf:"varint,9,opt,name=ping_time,json=pingTime,proto3" json:"ping_time,omitempty"`
// The type of sync we are currently performing with this peer. // The type of sync we are currently performing with this peer.
SyncType Peer_SyncType `protobuf:"varint,10,opt,name=sync_type,json=syncType,proto3,enum=lnrpc.Peer_SyncType" json:"sync_type,omitempty"` SyncType Peer_SyncType `protobuf:"varint,10,opt,name=sync_type,json=syncType,proto3,enum=lnrpc.Peer_SyncType" json:"sync_type,omitempty"`
/// Features advertised by the remote peer in their init message. // Features advertised by the remote peer in their init message.
Features map[uint32]*Feature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Features map[uint32]*Feature `protobuf:"bytes,11,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// //
//The latest errors received from our peer with timestamps, limited to the 10 //The latest errors received from our peer with timestamps, limited to the 10
@ -3608,7 +3608,7 @@ func (m *ListPeersRequest) GetLatestError() bool {
} }
type ListPeersResponse struct { type ListPeersResponse struct {
/// The list of currently connected peers // The list of currently connected peers
Peers []*Peer `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` Peers []*Peer `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -3679,7 +3679,7 @@ func (m *PeerEventSubscription) XXX_DiscardUnknown() {
var xxx_messageInfo_PeerEventSubscription proto.InternalMessageInfo var xxx_messageInfo_PeerEventSubscription proto.InternalMessageInfo
type PeerEvent struct { type PeerEvent struct {
/// The identity pubkey of the peer. // The identity pubkey of the peer.
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
Type PeerEvent_EventType `protobuf:"varint,2,opt,name=type,proto3,enum=lnrpc.PeerEvent_EventType" json:"type,omitempty"` Type PeerEvent_EventType `protobuf:"varint,2,opt,name=type,proto3,enum=lnrpc.PeerEvent_EventType" json:"type,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -3758,41 +3758,41 @@ func (m *GetInfoRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_GetInfoRequest proto.InternalMessageInfo var xxx_messageInfo_GetInfoRequest proto.InternalMessageInfo
type GetInfoResponse struct { type GetInfoResponse struct {
/// The version of the LND software that the node is running. // The version of the LND software that the node is running.
Version string `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,14,opt,name=version,proto3" json:"version,omitempty"`
/// The SHA1 commit hash that the daemon is compiled with. // The SHA1 commit hash that the daemon is compiled with.
CommitHash string `protobuf:"bytes,20,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"` CommitHash string `protobuf:"bytes,20,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"`
/// The identity pubkey of the current node. // The identity pubkey of the current node.
IdentityPubkey string `protobuf:"bytes,1,opt,name=identity_pubkey,json=identityPubkey,proto3" json:"identity_pubkey,omitempty"` IdentityPubkey string `protobuf:"bytes,1,opt,name=identity_pubkey,json=identityPubkey,proto3" json:"identity_pubkey,omitempty"`
/// If applicable, the alias of the current node, e.g. "bob" // If applicable, the alias of the current node, e.g. "bob"
Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"` Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"`
/// The color of the current node in hex code format // The color of the current node in hex code format
Color string `protobuf:"bytes,17,opt,name=color,proto3" json:"color,omitempty"` Color string `protobuf:"bytes,17,opt,name=color,proto3" json:"color,omitempty"`
/// Number of pending channels // Number of pending channels
NumPendingChannels uint32 `protobuf:"varint,3,opt,name=num_pending_channels,json=numPendingChannels,proto3" json:"num_pending_channels,omitempty"` NumPendingChannels uint32 `protobuf:"varint,3,opt,name=num_pending_channels,json=numPendingChannels,proto3" json:"num_pending_channels,omitempty"`
/// Number of active channels // Number of active channels
NumActiveChannels uint32 `protobuf:"varint,4,opt,name=num_active_channels,json=numActiveChannels,proto3" json:"num_active_channels,omitempty"` NumActiveChannels uint32 `protobuf:"varint,4,opt,name=num_active_channels,json=numActiveChannels,proto3" json:"num_active_channels,omitempty"`
/// Number of inactive channels // Number of inactive channels
NumInactiveChannels uint32 `protobuf:"varint,15,opt,name=num_inactive_channels,json=numInactiveChannels,proto3" json:"num_inactive_channels,omitempty"` NumInactiveChannels uint32 `protobuf:"varint,15,opt,name=num_inactive_channels,json=numInactiveChannels,proto3" json:"num_inactive_channels,omitempty"`
/// Number of peers // Number of peers
NumPeers uint32 `protobuf:"varint,5,opt,name=num_peers,json=numPeers,proto3" json:"num_peers,omitempty"` NumPeers uint32 `protobuf:"varint,5,opt,name=num_peers,json=numPeers,proto3" json:"num_peers,omitempty"`
/// The node's current view of the height of the best block // The node's current view of the height of the best block
BlockHeight uint32 `protobuf:"varint,6,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` BlockHeight uint32 `protobuf:"varint,6,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"`
/// The node's current view of the hash of the best block // The node's current view of the hash of the best block
BlockHash string `protobuf:"bytes,8,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` BlockHash string `protobuf:"bytes,8,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
/// Timestamp of the block best known to the wallet // Timestamp of the block best known to the wallet
BestHeaderTimestamp int64 `protobuf:"varint,13,opt,name=best_header_timestamp,json=bestHeaderTimestamp,proto3" json:"best_header_timestamp,omitempty"` BestHeaderTimestamp int64 `protobuf:"varint,13,opt,name=best_header_timestamp,json=bestHeaderTimestamp,proto3" json:"best_header_timestamp,omitempty"`
/// Whether the wallet's view is synced to the main chain // Whether the wallet's view is synced to the main chain
SyncedToChain bool `protobuf:"varint,9,opt,name=synced_to_chain,json=syncedToChain,proto3" json:"synced_to_chain,omitempty"` SyncedToChain bool `protobuf:"varint,9,opt,name=synced_to_chain,json=syncedToChain,proto3" json:"synced_to_chain,omitempty"`
// Whether we consider ourselves synced with the public channel graph. // Whether we consider ourselves synced with the public channel graph.
SyncedToGraph bool `protobuf:"varint,18,opt,name=synced_to_graph,json=syncedToGraph,proto3" json:"synced_to_graph,omitempty"` SyncedToGraph bool `protobuf:"varint,18,opt,name=synced_to_graph,json=syncedToGraph,proto3" json:"synced_to_graph,omitempty"`
//* //
//Whether the current node is connected to testnet. This field is //Whether the current node is connected to testnet. This field is
//deprecated and the network field should be used instead //deprecated and the network field should be used instead
Testnet bool `protobuf:"varint,10,opt,name=testnet,proto3" json:"testnet,omitempty"` // Deprecated: Do not use. Testnet bool `protobuf:"varint,10,opt,name=testnet,proto3" json:"testnet,omitempty"` // Deprecated: Do not use.
/// A list of active chains the node is connected to // A list of active chains the node is connected to
Chains []*Chain `protobuf:"bytes,16,rep,name=chains,proto3" json:"chains,omitempty"` Chains []*Chain `protobuf:"bytes,16,rep,name=chains,proto3" json:"chains,omitempty"`
/// The URIs of the current node. // The URIs of the current node.
Uris []string `protobuf:"bytes,12,rep,name=uris,proto3" json:"uris,omitempty"` Uris []string `protobuf:"bytes,12,rep,name=uris,proto3" json:"uris,omitempty"`
// //
//Features that our node has advertised in our init message, node //Features that our node has advertised in our init message, node
@ -3956,9 +3956,9 @@ func (m *GetInfoResponse) GetFeatures() map[uint32]*Feature {
} }
type Chain struct { type Chain struct {
/// The blockchain the node is on (eg bitcoin, litecoin) // The blockchain the node is on (eg bitcoin, litecoin)
Chain string `protobuf:"bytes,1,opt,name=chain,proto3" json:"chain,omitempty"` Chain string `protobuf:"bytes,1,opt,name=chain,proto3" json:"chain,omitempty"`
/// The network the node is on (eg regtest, testnet, mainnet) // The network the node is on (eg regtest, testnet, mainnet)
Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"` Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -4146,19 +4146,19 @@ func (m *ChannelCloseUpdate) GetSuccess() bool {
} }
type CloseChannelRequest struct { type CloseChannelRequest struct {
//* //
//The outpoint (txid:index) of the funding transaction. With this value, Bob //The outpoint (txid:index) of the funding transaction. With this value, Bob
//will be able to generate a signature for Alice's version of the commitment //will be able to generate a signature for Alice's version of the commitment
//transaction. //transaction.
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"` ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
/// If true, then the channel will be closed forcibly. This means the // If true, then the channel will be closed forcibly. This means the
/// current commitment transaction will be signed and broadcast. // current commitment transaction will be signed and broadcast.
Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
/// The target number of blocks that the closure transaction should be // The target number of blocks that the closure transaction should be
/// confirmed by. // confirmed by.
TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` TargetConf int32 `protobuf:"varint,3,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"`
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// closure transaction. // closure transaction.
SatPerByte int64 `protobuf:"varint,4,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` SatPerByte int64 `protobuf:"varint,4,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"`
// //
//An optional address to send funds to in the case of a cooperative close. //An optional address to send funds to in the case of a cooperative close.
@ -4359,15 +4359,15 @@ func (m *PendingUpdate) GetOutputIndex() uint32 {
} }
type ReadyForPsbtFunding struct { type ReadyForPsbtFunding struct {
//* //
//The P2WSH address of the channel funding multisig address that the below //The P2WSH address of the channel funding multisig address that the below
//specified amount in satoshis needs to be sent to. //specified amount in satoshis needs to be sent to.
FundingAddress string `protobuf:"bytes,1,opt,name=funding_address,json=fundingAddress,proto3" json:"funding_address,omitempty"` FundingAddress string `protobuf:"bytes,1,opt,name=funding_address,json=fundingAddress,proto3" json:"funding_address,omitempty"`
//* //
//The exact amount in satoshis that needs to be sent to the above address to //The exact amount in satoshis that needs to be sent to the above address to
//fund the pending channel. //fund the pending channel.
FundingAmount int64 `protobuf:"varint,2,opt,name=funding_amount,json=fundingAmount,proto3" json:"funding_amount,omitempty"` FundingAmount int64 `protobuf:"varint,2,opt,name=funding_amount,json=fundingAmount,proto3" json:"funding_amount,omitempty"`
//* //
//A raw PSBT that contains the pending channel output. If a base PSBT was //A raw PSBT that contains the pending channel output. If a base PSBT was
//provided in the PsbtShim, this is the base PSBT with one additional output. //provided in the PsbtShim, this is the base PSBT with one additional output.
//If no base PSBT was specified, this is an otherwise empty PSBT with exactly //If no base PSBT was specified, this is an otherwise empty PSBT with exactly
@ -4425,39 +4425,39 @@ func (m *ReadyForPsbtFunding) GetPsbt() []byte {
} }
type OpenChannelRequest struct { type OpenChannelRequest struct {
//* //
//The pubkey of the node to open a channel with. When using REST, this field //The pubkey of the node to open a channel with. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
NodePubkey []byte `protobuf:"bytes,2,opt,name=node_pubkey,json=nodePubkey,proto3" json:"node_pubkey,omitempty"` NodePubkey []byte `protobuf:"bytes,2,opt,name=node_pubkey,json=nodePubkey,proto3" json:"node_pubkey,omitempty"`
//* //
//The hex encoded pubkey of the node to open a channel with. Deprecated now //The hex encoded pubkey of the node to open a channel with. Deprecated now
//that the REST gateway supports base64 encoding of bytes fields. //that the REST gateway supports base64 encoding of bytes fields.
NodePubkeyString string `protobuf:"bytes,3,opt,name=node_pubkey_string,json=nodePubkeyString,proto3" json:"node_pubkey_string,omitempty"` // Deprecated: Do not use. NodePubkeyString string `protobuf:"bytes,3,opt,name=node_pubkey_string,json=nodePubkeyString,proto3" json:"node_pubkey_string,omitempty"` // Deprecated: Do not use.
/// The number of satoshis the wallet should commit to the channel // The number of satoshis the wallet should commit to the channel
LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount,json=localFundingAmount,proto3" json:"local_funding_amount,omitempty"` LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount,json=localFundingAmount,proto3" json:"local_funding_amount,omitempty"`
/// The number of satoshis to push to the remote side as part of the initial // The number of satoshis to push to the remote side as part of the initial
/// commitment state // commitment state
PushSat int64 `protobuf:"varint,5,opt,name=push_sat,json=pushSat,proto3" json:"push_sat,omitempty"` PushSat int64 `protobuf:"varint,5,opt,name=push_sat,json=pushSat,proto3" json:"push_sat,omitempty"`
/// The target number of blocks that the funding transaction should be // The target number of blocks that the funding transaction should be
/// confirmed by. // confirmed by.
TargetConf int32 `protobuf:"varint,6,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"` TargetConf int32 `protobuf:"varint,6,opt,name=target_conf,json=targetConf,proto3" json:"target_conf,omitempty"`
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// funding transaction. // funding transaction.
SatPerByte int64 `protobuf:"varint,7,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` SatPerByte int64 `protobuf:"varint,7,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"`
/// Whether this channel should be private, not announced to the greater // Whether this channel should be private, not announced to the greater
/// network. // network.
Private bool `protobuf:"varint,8,opt,name=private,proto3" json:"private,omitempty"` Private bool `protobuf:"varint,8,opt,name=private,proto3" json:"private,omitempty"`
/// The minimum value in millisatoshi we will require for incoming HTLCs on // The minimum value in millisatoshi we will require for incoming HTLCs on
/// the channel. // the channel.
MinHtlcMsat int64 `protobuf:"varint,9,opt,name=min_htlc_msat,json=minHtlcMsat,proto3" json:"min_htlc_msat,omitempty"` MinHtlcMsat int64 `protobuf:"varint,9,opt,name=min_htlc_msat,json=minHtlcMsat,proto3" json:"min_htlc_msat,omitempty"`
/// The delay we require on the remote's commitment transaction. If this is // The delay we require on the remote's commitment transaction. If this is
/// not set, it will be scaled automatically with the channel size. // not set, it will be scaled automatically with the channel size.
RemoteCsvDelay uint32 `protobuf:"varint,10,opt,name=remote_csv_delay,json=remoteCsvDelay,proto3" json:"remote_csv_delay,omitempty"` RemoteCsvDelay uint32 `protobuf:"varint,10,opt,name=remote_csv_delay,json=remoteCsvDelay,proto3" json:"remote_csv_delay,omitempty"`
/// The minimum number of confirmations each one of your outputs used for // The minimum number of confirmations each one of your outputs used for
/// the funding transaction must satisfy. // the funding transaction must satisfy.
MinConfs int32 `protobuf:"varint,11,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"` MinConfs int32 `protobuf:"varint,11,opt,name=min_confs,json=minConfs,proto3" json:"min_confs,omitempty"`
/// Whether unconfirmed outputs should be used as inputs for the funding // Whether unconfirmed outputs should be used as inputs for the funding
/// transaction. // transaction.
SpendUnconfirmed bool `protobuf:"varint,12,opt,name=spend_unconfirmed,json=spendUnconfirmed,proto3" json:"spend_unconfirmed,omitempty"` SpendUnconfirmed bool `protobuf:"varint,12,opt,name=spend_unconfirmed,json=spendUnconfirmed,proto3" json:"spend_unconfirmed,omitempty"`
// //
//Close address is an optional address which specifies the address to which //Close address is an optional address which specifies the address to which
@ -4469,7 +4469,7 @@ type OpenChannelRequest struct {
//Note: If this value is set on channel creation, you will *not* be able to //Note: If this value is set on channel creation, you will *not* be able to
//cooperatively close out to a different address. //cooperatively close out to a different address.
CloseAddress string `protobuf:"bytes,13,opt,name=close_address,json=closeAddress,proto3" json:"close_address,omitempty"` CloseAddress string `protobuf:"bytes,13,opt,name=close_address,json=closeAddress,proto3" json:"close_address,omitempty"`
//* //
//Funding shims are an optional argument that allow the caller to intercept //Funding shims are an optional argument that allow the caller to intercept
//certain funding functionality. For example, a shim can be provided to use a //certain funding functionality. For example, a shim can be provided to use a
//particular key for the commitment key (ideally cold) rather than use one //particular key for the commitment key (ideally cold) rather than use one
@ -4604,7 +4604,7 @@ type OpenStatusUpdate struct {
// *OpenStatusUpdate_ChanOpen // *OpenStatusUpdate_ChanOpen
// *OpenStatusUpdate_PsbtFund // *OpenStatusUpdate_PsbtFund
Update isOpenStatusUpdate_Update `protobuf_oneof:"update"` Update isOpenStatusUpdate_Update `protobuf_oneof:"update"`
//* //
//The pending channel ID of the created channel. This value may be used to //The pending channel ID of the created channel. This value may be used to
//further the funding flow manually via the FundingStateStep method. //further the funding flow manually via the FundingStateStep method.
PendingChanId []byte `protobuf:"bytes,4,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,4,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
@ -4705,9 +4705,9 @@ func (*OpenStatusUpdate) XXX_OneofWrappers() []interface{} {
} }
type KeyLocator struct { type KeyLocator struct {
/// The family of key being identified. // The family of key being identified.
KeyFamily int32 `protobuf:"varint,1,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"` KeyFamily int32 `protobuf:"varint,1,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"`
/// The precise index of the key being identified. // The precise index of the key being identified.
KeyIndex int32 `protobuf:"varint,2,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` KeyIndex int32 `protobuf:"varint,2,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -4754,10 +4754,10 @@ func (m *KeyLocator) GetKeyIndex() int32 {
} }
type KeyDescriptor struct { type KeyDescriptor struct {
//* //
//The raw bytes of the key being identified. //The raw bytes of the key being identified.
RawKeyBytes []byte `protobuf:"bytes,1,opt,name=raw_key_bytes,json=rawKeyBytes,proto3" json:"raw_key_bytes,omitempty"` RawKeyBytes []byte `protobuf:"bytes,1,opt,name=raw_key_bytes,json=rawKeyBytes,proto3" json:"raw_key_bytes,omitempty"`
//* //
//The key locator that identifies which key to use for signing. //The key locator that identifies which key to use for signing.
KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"` KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -4805,23 +4805,23 @@ func (m *KeyDescriptor) GetKeyLoc() *KeyLocator {
} }
type ChanPointShim struct { type ChanPointShim struct {
//* //
//The size of the pre-crafted output to be used as the channel point for this //The size of the pre-crafted output to be used as the channel point for this
//channel funding. //channel funding.
Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"` Amt int64 `protobuf:"varint,1,opt,name=amt,proto3" json:"amt,omitempty"`
/// The target channel point to refrence in created commitment transactions. // The target channel point to refrence in created commitment transactions.
ChanPoint *ChannelPoint `protobuf:"bytes,2,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"` ChanPoint *ChannelPoint `protobuf:"bytes,2,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
/// Our local key to use when creating the multi-sig output. // Our local key to use when creating the multi-sig output.
LocalKey *KeyDescriptor `protobuf:"bytes,3,opt,name=local_key,json=localKey,proto3" json:"local_key,omitempty"` LocalKey *KeyDescriptor `protobuf:"bytes,3,opt,name=local_key,json=localKey,proto3" json:"local_key,omitempty"`
/// The key of the remote party to use when creating the multi-sig output. // The key of the remote party to use when creating the multi-sig output.
RemoteKey []byte `protobuf:"bytes,4,opt,name=remote_key,json=remoteKey,proto3" json:"remote_key,omitempty"` RemoteKey []byte `protobuf:"bytes,4,opt,name=remote_key,json=remoteKey,proto3" json:"remote_key,omitempty"`
//* //
//If non-zero, then this will be used as the pending channel ID on the wire //If non-zero, then this will be used as the pending channel ID on the wire
//protocol to initate the funding request. This is an optional field, and //protocol to initate the funding request. This is an optional field, and
//should only be set if the responder is already expecting a specific pending //should only be set if the responder is already expecting a specific pending
//channel ID. //channel ID.
PendingChanId []byte `protobuf:"bytes,5,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,5,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
//* //
//This uint32 indicates if this channel is to be considered 'frozen'. A //This uint32 indicates if this channel is to be considered 'frozen'. A
//frozen channel does not allow a cooperative channel close by the //frozen channel does not allow a cooperative channel close by the
//initiator. The thaw_height is the height that this restriction stops //initiator. The thaw_height is the height that this restriction stops
@ -4900,12 +4900,12 @@ func (m *ChanPointShim) GetThawHeight() uint32 {
} }
type PsbtShim struct { type PsbtShim struct {
//* //
//A unique identifier of 32 random bytes that will be used as the pending //A unique identifier of 32 random bytes that will be used as the pending
//channel ID to identify the PSBT state machine when interacting with it and //channel ID to identify the PSBT state machine when interacting with it and
//on the wire protocol to initiate the funding request. //on the wire protocol to initiate the funding request.
PendingChanId []byte `protobuf:"bytes,1,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,1,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
//* //
//An optional base PSBT the new channel output will be added to. If this is //An optional base PSBT the new channel output will be added to. If this is
//non-empty, it must be a binary serialized PSBT. //non-empty, it must be a binary serialized PSBT.
BasePsbt []byte `protobuf:"bytes,2,opt,name=base_psbt,json=basePsbt,proto3" json:"base_psbt,omitempty"` BasePsbt []byte `protobuf:"bytes,2,opt,name=base_psbt,json=basePsbt,proto3" json:"base_psbt,omitempty"`
@ -5034,7 +5034,7 @@ func (*FundingShim) XXX_OneofWrappers() []interface{} {
} }
type FundingShimCancel struct { type FundingShimCancel struct {
/// The pending channel ID of the channel to cancel the funding shim for. // The pending channel ID of the channel to cancel the funding shim for.
PendingChanId []byte `protobuf:"bytes,1,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,1,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5074,12 +5074,12 @@ func (m *FundingShimCancel) GetPendingChanId() []byte {
} }
type FundingPsbtVerify struct { type FundingPsbtVerify struct {
//* //
//The funded but not yet signed PSBT that sends the exact channel capacity //The funded but not yet signed PSBT that sends the exact channel capacity
//amount to the PK script returned in the open channel message in a previous //amount to the PK script returned in the open channel message in a previous
//step. //step.
FundedPsbt []byte `protobuf:"bytes,1,opt,name=funded_psbt,json=fundedPsbt,proto3" json:"funded_psbt,omitempty"` FundedPsbt []byte `protobuf:"bytes,1,opt,name=funded_psbt,json=fundedPsbt,proto3" json:"funded_psbt,omitempty"`
/// The pending channel ID of the channel to get the PSBT for. // The pending channel ID of the channel to get the PSBT for.
PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5126,12 +5126,12 @@ func (m *FundingPsbtVerify) GetPendingChanId() []byte {
} }
type FundingPsbtFinalize struct { type FundingPsbtFinalize struct {
//* //
//The funded PSBT that contains all witness data to send the exact channel //The funded PSBT that contains all witness data to send the exact channel
//capacity amount to the PK script returned in the open channel message in a //capacity amount to the PK script returned in the open channel message in a
//previous step. //previous step.
SignedPsbt []byte `protobuf:"bytes,1,opt,name=signed_psbt,json=signedPsbt,proto3" json:"signed_psbt,omitempty"` SignedPsbt []byte `protobuf:"bytes,1,opt,name=signed_psbt,json=signedPsbt,proto3" json:"signed_psbt,omitempty"`
/// The pending channel ID of the channel to get the PSBT for. // The pending channel ID of the channel to get the PSBT for.
PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"` PendingChanId []byte `protobuf:"bytes,2,opt,name=pending_chan_id,json=pendingChanId,proto3" json:"pending_chan_id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5319,20 +5319,20 @@ func (m *FundingStateStepResp) XXX_DiscardUnknown() {
var xxx_messageInfo_FundingStateStepResp proto.InternalMessageInfo var xxx_messageInfo_FundingStateStepResp proto.InternalMessageInfo
type PendingHTLC struct { type PendingHTLC struct {
/// The direction within the channel that the htlc was sent // The direction within the channel that the htlc was sent
Incoming bool `protobuf:"varint,1,opt,name=incoming,proto3" json:"incoming,omitempty"` Incoming bool `protobuf:"varint,1,opt,name=incoming,proto3" json:"incoming,omitempty"`
/// The total value of the htlc // The total value of the htlc
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
/// The final output to be swept back to the user's wallet // The final output to be swept back to the user's wallet
Outpoint string `protobuf:"bytes,3,opt,name=outpoint,proto3" json:"outpoint,omitempty"` Outpoint string `protobuf:"bytes,3,opt,name=outpoint,proto3" json:"outpoint,omitempty"`
/// The next block height at which we can spend the current stage // The next block height at which we can spend the current stage
MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height,json=maturityHeight,proto3" json:"maturity_height,omitempty"` MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height,json=maturityHeight,proto3" json:"maturity_height,omitempty"`
//* //
//The number of blocks remaining until the current stage can be swept. //The number of blocks remaining until the current stage can be swept.
//Negative values indicate how many blocks have passed since becoming //Negative values indicate how many blocks have passed since becoming
//mature. //mature.
BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity,json=blocksTilMaturity,proto3" json:"blocks_til_maturity,omitempty"` BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity,json=blocksTilMaturity,proto3" json:"blocks_til_maturity,omitempty"`
/// Indicates whether the htlc is in its first or second stage of recovery // Indicates whether the htlc is in its first or second stage of recovery
Stage uint32 `protobuf:"varint,6,opt,name=stage,proto3" json:"stage,omitempty"` Stage uint32 `protobuf:"varint,6,opt,name=stage,proto3" json:"stage,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5438,18 +5438,18 @@ func (m *PendingChannelsRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_PendingChannelsRequest proto.InternalMessageInfo var xxx_messageInfo_PendingChannelsRequest proto.InternalMessageInfo
type PendingChannelsResponse struct { type PendingChannelsResponse struct {
/// The balance in satoshis encumbered in pending channels // The balance in satoshis encumbered in pending channels
TotalLimboBalance int64 `protobuf:"varint,1,opt,name=total_limbo_balance,json=totalLimboBalance,proto3" json:"total_limbo_balance,omitempty"` TotalLimboBalance int64 `protobuf:"varint,1,opt,name=total_limbo_balance,json=totalLimboBalance,proto3" json:"total_limbo_balance,omitempty"`
/// Channels pending opening // Channels pending opening
PendingOpenChannels []*PendingChannelsResponse_PendingOpenChannel `protobuf:"bytes,2,rep,name=pending_open_channels,json=pendingOpenChannels,proto3" json:"pending_open_channels,omitempty"` PendingOpenChannels []*PendingChannelsResponse_PendingOpenChannel `protobuf:"bytes,2,rep,name=pending_open_channels,json=pendingOpenChannels,proto3" json:"pending_open_channels,omitempty"`
// //
//Deprecated: Channels pending closing previously contained cooperatively //Deprecated: Channels pending closing previously contained cooperatively
//closed channels with a single confirmation. These channels are now //closed channels with a single confirmation. These channels are now
//considered closed from the time we see them on chain. //considered closed from the time we see them on chain.
PendingClosingChannels []*PendingChannelsResponse_ClosedChannel `protobuf:"bytes,3,rep,name=pending_closing_channels,json=pendingClosingChannels,proto3" json:"pending_closing_channels,omitempty"` // Deprecated: Do not use. PendingClosingChannels []*PendingChannelsResponse_ClosedChannel `protobuf:"bytes,3,rep,name=pending_closing_channels,json=pendingClosingChannels,proto3" json:"pending_closing_channels,omitempty"` // Deprecated: Do not use.
/// Channels pending force closing // Channels pending force closing
PendingForceClosingChannels []*PendingChannelsResponse_ForceClosedChannel `protobuf:"bytes,4,rep,name=pending_force_closing_channels,json=pendingForceClosingChannels,proto3" json:"pending_force_closing_channels,omitempty"` PendingForceClosingChannels []*PendingChannelsResponse_ForceClosedChannel `protobuf:"bytes,4,rep,name=pending_force_closing_channels,json=pendingForceClosingChannels,proto3" json:"pending_force_closing_channels,omitempty"`
/// Channels waiting for closing tx to confirm // Channels waiting for closing tx to confirm
WaitingCloseChannels []*PendingChannelsResponse_WaitingCloseChannel `protobuf:"bytes,5,rep,name=waiting_close_channels,json=waitingCloseChannels,proto3" json:"waiting_close_channels,omitempty"` WaitingCloseChannels []*PendingChannelsResponse_WaitingCloseChannel `protobuf:"bytes,5,rep,name=waiting_close_channels,json=waitingCloseChannels,proto3" json:"waiting_close_channels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5523,16 +5523,16 @@ type PendingChannelsResponse_PendingChannel struct {
Capacity int64 `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"` Capacity int64 `protobuf:"varint,3,opt,name=capacity,proto3" json:"capacity,omitempty"`
LocalBalance int64 `protobuf:"varint,4,opt,name=local_balance,json=localBalance,proto3" json:"local_balance,omitempty"` LocalBalance int64 `protobuf:"varint,4,opt,name=local_balance,json=localBalance,proto3" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,5,opt,name=remote_balance,json=remoteBalance,proto3" json:"remote_balance,omitempty"` RemoteBalance int64 `protobuf:"varint,5,opt,name=remote_balance,json=remoteBalance,proto3" json:"remote_balance,omitempty"`
/// The minimum satoshis this node is required to reserve in its // The minimum satoshis this node is required to reserve in its
/// balance. // balance.
LocalChanReserveSat int64 `protobuf:"varint,6,opt,name=local_chan_reserve_sat,json=localChanReserveSat,proto3" json:"local_chan_reserve_sat,omitempty"` LocalChanReserveSat int64 `protobuf:"varint,6,opt,name=local_chan_reserve_sat,json=localChanReserveSat,proto3" json:"local_chan_reserve_sat,omitempty"`
//* //
//The minimum satoshis the other node is required to reserve in its //The minimum satoshis the other node is required to reserve in its
//balance. //balance.
RemoteChanReserveSat int64 `protobuf:"varint,7,opt,name=remote_chan_reserve_sat,json=remoteChanReserveSat,proto3" json:"remote_chan_reserve_sat,omitempty"` RemoteChanReserveSat int64 `protobuf:"varint,7,opt,name=remote_chan_reserve_sat,json=remoteChanReserveSat,proto3" json:"remote_chan_reserve_sat,omitempty"`
// The party that initiated opening the channel. // The party that initiated opening the channel.
Initiator Initiator `protobuf:"varint,8,opt,name=initiator,proto3,enum=lnrpc.Initiator" json:"initiator,omitempty"` Initiator Initiator `protobuf:"varint,8,opt,name=initiator,proto3,enum=lnrpc.Initiator" json:"initiator,omitempty"`
/// The commitment type used by this channel. // The commitment type used by this channel.
CommitmentType CommitmentType `protobuf:"varint,9,opt,name=commitment_type,json=commitmentType,proto3,enum=lnrpc.CommitmentType" json:"commitment_type,omitempty"` CommitmentType CommitmentType `protobuf:"varint,9,opt,name=commitment_type,json=commitmentType,proto3,enum=lnrpc.CommitmentType" json:"commitment_type,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5630,20 +5630,20 @@ func (m *PendingChannelsResponse_PendingChannel) GetCommitmentType() CommitmentT
} }
type PendingChannelsResponse_PendingOpenChannel struct { type PendingChannelsResponse_PendingOpenChannel struct {
/// The pending channel // The pending channel
Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
/// The height at which this channel will be confirmed // The height at which this channel will be confirmed
ConfirmationHeight uint32 `protobuf:"varint,2,opt,name=confirmation_height,json=confirmationHeight,proto3" json:"confirmation_height,omitempty"` ConfirmationHeight uint32 `protobuf:"varint,2,opt,name=confirmation_height,json=confirmationHeight,proto3" json:"confirmation_height,omitempty"`
//* //
//The amount calculated to be paid in fees for the current set of //The amount calculated to be paid in fees for the current set of
//commitment transactions. The fee amount is persisted with the channel //commitment transactions. The fee amount is persisted with the channel
//in order to allow the fee amount to be removed and recalculated with //in order to allow the fee amount to be removed and recalculated with
//each channel state update, including updates that happen after a system //each channel state update, including updates that happen after a system
//restart. //restart.
CommitFee int64 `protobuf:"varint,4,opt,name=commit_fee,json=commitFee,proto3" json:"commit_fee,omitempty"` CommitFee int64 `protobuf:"varint,4,opt,name=commit_fee,json=commitFee,proto3" json:"commit_fee,omitempty"`
/// The weight of the commitment transaction // The weight of the commitment transaction
CommitWeight int64 `protobuf:"varint,5,opt,name=commit_weight,json=commitWeight,proto3" json:"commit_weight,omitempty"` CommitWeight int64 `protobuf:"varint,5,opt,name=commit_weight,json=commitWeight,proto3" json:"commit_weight,omitempty"`
//* //
//The required number of satoshis per kilo-weight that the requester will //The required number of satoshis per kilo-weight that the requester will
//pay at all times, for both the funding transaction and commitment //pay at all times, for both the funding transaction and commitment
//transaction. This value can later be updated once the channel is open. //transaction. This value can later be updated once the channel is open.
@ -5718,11 +5718,11 @@ func (m *PendingChannelsResponse_PendingOpenChannel) GetFeePerKw() int64 {
} }
type PendingChannelsResponse_WaitingCloseChannel struct { type PendingChannelsResponse_WaitingCloseChannel struct {
/// The pending channel waiting for closing tx to confirm // The pending channel waiting for closing tx to confirm
Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
/// The balance in satoshis encumbered in this channel // The balance in satoshis encumbered in this channel
LimboBalance int64 `protobuf:"varint,2,opt,name=limbo_balance,json=limboBalance,proto3" json:"limbo_balance,omitempty"` LimboBalance int64 `protobuf:"varint,2,opt,name=limbo_balance,json=limboBalance,proto3" json:"limbo_balance,omitempty"`
//* //
//A list of valid commitment transactions. Any of these can confirm at //A list of valid commitment transactions. Any of these can confirm at
//this point. //this point.
Commitments *PendingChannelsResponse_Commitments `protobuf:"bytes,3,opt,name=commitments,proto3" json:"commitments,omitempty"` Commitments *PendingChannelsResponse_Commitments `protobuf:"bytes,3,opt,name=commitments,proto3" json:"commitments,omitempty"`
@ -5782,11 +5782,11 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) GetCommitments() *PendingC
} }
type PendingChannelsResponse_Commitments struct { type PendingChannelsResponse_Commitments struct {
/// Hash of the local version of the commitment tx. // Hash of the local version of the commitment tx.
LocalTxid string `protobuf:"bytes,1,opt,name=local_txid,json=localTxid,proto3" json:"local_txid,omitempty"` LocalTxid string `protobuf:"bytes,1,opt,name=local_txid,json=localTxid,proto3" json:"local_txid,omitempty"`
/// Hash of the remote version of the commitment tx. // Hash of the remote version of the commitment tx.
RemoteTxid string `protobuf:"bytes,2,opt,name=remote_txid,json=remoteTxid,proto3" json:"remote_txid,omitempty"` RemoteTxid string `protobuf:"bytes,2,opt,name=remote_txid,json=remoteTxid,proto3" json:"remote_txid,omitempty"`
/// Hash of the remote pending version of the commitment tx. // Hash of the remote pending version of the commitment tx.
RemotePendingTxid string `protobuf:"bytes,3,opt,name=remote_pending_txid,json=remotePendingTxid,proto3" json:"remote_pending_txid,omitempty"` RemotePendingTxid string `protobuf:"bytes,3,opt,name=remote_pending_txid,json=remotePendingTxid,proto3" json:"remote_pending_txid,omitempty"`
// //
//The amount in satoshis calculated to be paid in fees for the local //The amount in satoshis calculated to be paid in fees for the local
@ -5873,9 +5873,9 @@ func (m *PendingChannelsResponse_Commitments) GetRemotePendingCommitFeeSat() uin
} }
type PendingChannelsResponse_ClosedChannel struct { type PendingChannelsResponse_ClosedChannel struct {
/// The pending channel to be closed // The pending channel to be closed
Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
/// The transaction id of the closing transaction // The transaction id of the closing transaction
ClosingTxid string `protobuf:"bytes,2,opt,name=closing_txid,json=closingTxid,proto3" json:"closing_txid,omitempty"` ClosingTxid string `protobuf:"bytes,2,opt,name=closing_txid,json=closingTxid,proto3" json:"closing_txid,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -5922,20 +5922,20 @@ func (m *PendingChannelsResponse_ClosedChannel) GetClosingTxid() string {
} }
type PendingChannelsResponse_ForceClosedChannel struct { type PendingChannelsResponse_ForceClosedChannel struct {
/// The pending channel to be force closed // The pending channel to be force closed
Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` Channel *PendingChannelsResponse_PendingChannel `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
/// The transaction id of the closing transaction // The transaction id of the closing transaction
ClosingTxid string `protobuf:"bytes,2,opt,name=closing_txid,json=closingTxid,proto3" json:"closing_txid,omitempty"` ClosingTxid string `protobuf:"bytes,2,opt,name=closing_txid,json=closingTxid,proto3" json:"closing_txid,omitempty"`
/// The balance in satoshis encumbered in this pending channel // The balance in satoshis encumbered in this pending channel
LimboBalance int64 `protobuf:"varint,3,opt,name=limbo_balance,json=limboBalance,proto3" json:"limbo_balance,omitempty"` LimboBalance int64 `protobuf:"varint,3,opt,name=limbo_balance,json=limboBalance,proto3" json:"limbo_balance,omitempty"`
/// The height at which funds can be swept into the wallet // The height at which funds can be swept into the wallet
MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height,json=maturityHeight,proto3" json:"maturity_height,omitempty"` MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height,json=maturityHeight,proto3" json:"maturity_height,omitempty"`
// //
//Remaining # of blocks until the commitment output can be swept. //Remaining # of blocks until the commitment output can be swept.
//Negative values indicate how many blocks have passed since becoming //Negative values indicate how many blocks have passed since becoming
//mature. //mature.
BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity,json=blocksTilMaturity,proto3" json:"blocks_til_maturity,omitempty"` BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity,json=blocksTilMaturity,proto3" json:"blocks_til_maturity,omitempty"`
/// The total value of funds successfully recovered from this channel // The total value of funds successfully recovered from this channel
RecoveredBalance int64 `protobuf:"varint,6,opt,name=recovered_balance,json=recoveredBalance,proto3" json:"recovered_balance,omitempty"` RecoveredBalance int64 `protobuf:"varint,6,opt,name=recovered_balance,json=recoveredBalance,proto3" json:"recovered_balance,omitempty"`
PendingHtlcs []*PendingHTLC `protobuf:"bytes,8,rep,name=pending_htlcs,json=pendingHtlcs,proto3" json:"pending_htlcs,omitempty"` PendingHtlcs []*PendingHTLC `protobuf:"bytes,8,rep,name=pending_htlcs,json=pendingHtlcs,proto3" json:"pending_htlcs,omitempty"`
Anchor PendingChannelsResponse_ForceClosedChannel_AnchorState `protobuf:"varint,9,opt,name=anchor,proto3,enum=lnrpc.PendingChannelsResponse_ForceClosedChannel_AnchorState" json:"anchor,omitempty"` Anchor PendingChannelsResponse_ForceClosedChannel_AnchorState `protobuf:"varint,9,opt,name=anchor,proto3,enum=lnrpc.PendingChannelsResponse_ForceClosedChannel_AnchorState" json:"anchor,omitempty"`
@ -6225,11 +6225,11 @@ func (m *WalletBalanceRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_WalletBalanceRequest proto.InternalMessageInfo var xxx_messageInfo_WalletBalanceRequest proto.InternalMessageInfo
type WalletBalanceResponse struct { type WalletBalanceResponse struct {
/// The balance of the wallet // The balance of the wallet
TotalBalance int64 `protobuf:"varint,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` TotalBalance int64 `protobuf:"varint,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"`
/// The confirmed balance of a wallet(with >= 1 confirmations) // The confirmed balance of a wallet(with >= 1 confirmations)
ConfirmedBalance int64 `protobuf:"varint,2,opt,name=confirmed_balance,json=confirmedBalance,proto3" json:"confirmed_balance,omitempty"` ConfirmedBalance int64 `protobuf:"varint,2,opt,name=confirmed_balance,json=confirmedBalance,proto3" json:"confirmed_balance,omitempty"`
/// The unconfirmed balance of a wallet(with 0 confirmations) // The unconfirmed balance of a wallet(with 0 confirmations)
UnconfirmedBalance int64 `protobuf:"varint,3,opt,name=unconfirmed_balance,json=unconfirmedBalance,proto3" json:"unconfirmed_balance,omitempty"` UnconfirmedBalance int64 `protobuf:"varint,3,opt,name=unconfirmed_balance,json=unconfirmedBalance,proto3" json:"unconfirmed_balance,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -6314,9 +6314,9 @@ func (m *ChannelBalanceRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_ChannelBalanceRequest proto.InternalMessageInfo var xxx_messageInfo_ChannelBalanceRequest proto.InternalMessageInfo
type ChannelBalanceResponse struct { type ChannelBalanceResponse struct {
/// Sum of channels balances denominated in satoshis // Sum of channels balances denominated in satoshis
Balance int64 `protobuf:"varint,1,opt,name=balance,proto3" json:"balance,omitempty"` Balance int64 `protobuf:"varint,1,opt,name=balance,proto3" json:"balance,omitempty"`
/// Sum of channels pending balances denominated in satoshis // Sum of channels pending balances denominated in satoshis
PendingOpenBalance int64 `protobuf:"varint,2,opt,name=pending_open_balance,json=pendingOpenBalance,proto3" json:"pending_open_balance,omitempty"` PendingOpenBalance int64 `protobuf:"varint,2,opt,name=pending_open_balance,json=pendingOpenBalance,proto3" json:"pending_open_balance,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -6363,55 +6363,55 @@ func (m *ChannelBalanceResponse) GetPendingOpenBalance() int64 {
} }
type QueryRoutesRequest struct { type QueryRoutesRequest struct {
/// The 33-byte hex-encoded public key for the payment destination // The 33-byte hex-encoded public key for the payment destination
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
//* //
//The amount to send expressed in satoshis. //The amount to send expressed in satoshis.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"` Amt int64 `protobuf:"varint,2,opt,name=amt,proto3" json:"amt,omitempty"`
//* //
//The amount to send expressed in millisatoshis. //The amount to send expressed in millisatoshis.
// //
//The fields amt and amt_msat are mutually exclusive. //The fields amt and amt_msat are mutually exclusive.
AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat int64 `protobuf:"varint,12,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
//* //
//An optional CLTV delta from the current height that should be used for the //An optional CLTV delta from the current height that should be used for the
//timelock of the final hop. Note that unlike SendPayment, QueryRoutes does //timelock of the final hop. Note that unlike SendPayment, QueryRoutes does
//not add any additional block padding on top of final_ctlv_delta. This //not add any additional block padding on top of final_ctlv_delta. This
//padding of a few blocks needs to be added manually or otherwise failures may //padding of a few blocks needs to be added manually or otherwise failures may
//happen when a block comes in while the payment is in flight. //happen when a block comes in while the payment is in flight.
FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"` FinalCltvDelta int32 `protobuf:"varint,4,opt,name=final_cltv_delta,json=finalCltvDelta,proto3" json:"final_cltv_delta,omitempty"`
//* //
//The maximum number of satoshis that will be paid as a fee of the payment. //The maximum number of satoshis that will be paid as a fee of the payment.
//This value can be represented either as a percentage of the amount being //This value can be represented either as a percentage of the amount being
//sent, or as a fixed amount of the maximum fee the user is willing the pay to //sent, or as a fixed amount of the maximum fee the user is willing the pay to
//send the payment. //send the payment.
FeeLimit *FeeLimit `protobuf:"bytes,5,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"` FeeLimit *FeeLimit `protobuf:"bytes,5,opt,name=fee_limit,json=feeLimit,proto3" json:"fee_limit,omitempty"`
//* //
//A list of nodes to ignore during path finding. When using REST, these fields //A list of nodes to ignore during path finding. When using REST, these fields
//must be encoded as base64. //must be encoded as base64.
IgnoredNodes [][]byte `protobuf:"bytes,6,rep,name=ignored_nodes,json=ignoredNodes,proto3" json:"ignored_nodes,omitempty"` IgnoredNodes [][]byte `protobuf:"bytes,6,rep,name=ignored_nodes,json=ignoredNodes,proto3" json:"ignored_nodes,omitempty"`
//* //
//Deprecated. A list of edges to ignore during path finding. //Deprecated. A list of edges to ignore during path finding.
IgnoredEdges []*EdgeLocator `protobuf:"bytes,7,rep,name=ignored_edges,json=ignoredEdges,proto3" json:"ignored_edges,omitempty"` // Deprecated: Do not use. IgnoredEdges []*EdgeLocator `protobuf:"bytes,7,rep,name=ignored_edges,json=ignoredEdges,proto3" json:"ignored_edges,omitempty"` // Deprecated: Do not use.
//* //
//The source node where the request route should originated from. If empty, //The source node where the request route should originated from. If empty,
//self is assumed. //self is assumed.
SourcePubKey string `protobuf:"bytes,8,opt,name=source_pub_key,json=sourcePubKey,proto3" json:"source_pub_key,omitempty"` SourcePubKey string `protobuf:"bytes,8,opt,name=source_pub_key,json=sourcePubKey,proto3" json:"source_pub_key,omitempty"`
//* //
//If set to true, edge probabilities from mission control will be used to get //If set to true, edge probabilities from mission control will be used to get
//the optimal route. //the optimal route.
UseMissionControl bool `protobuf:"varint,9,opt,name=use_mission_control,json=useMissionControl,proto3" json:"use_mission_control,omitempty"` UseMissionControl bool `protobuf:"varint,9,opt,name=use_mission_control,json=useMissionControl,proto3" json:"use_mission_control,omitempty"`
//* //
//A list of directed node pairs that will be ignored during path finding. //A list of directed node pairs that will be ignored during path finding.
IgnoredPairs []*NodePair `protobuf:"bytes,10,rep,name=ignored_pairs,json=ignoredPairs,proto3" json:"ignored_pairs,omitempty"` IgnoredPairs []*NodePair `protobuf:"bytes,10,rep,name=ignored_pairs,json=ignoredPairs,proto3" json:"ignored_pairs,omitempty"`
//* //
//An optional maximum total time lock for the route. If the source is empty or //An optional maximum total time lock for the route. If the source is empty or
//ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If //ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If
//zero, then the value of `--max-cltv-expiry` is used as the limit. //zero, then the value of `--max-cltv-expiry` is used as the limit.
CltvLimit uint32 `protobuf:"varint,11,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"` CltvLimit uint32 `protobuf:"varint,11,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,omitempty"`
//* //
//An optional field that can be used to pass an arbitrary set of TLV records //An optional field that can be used to pass an arbitrary set of TLV records
//to a peer which understands the new records. This can be used to pass //to a peer which understands the new records. This can be used to pass
//application specific data during the payment attempt. If the destination //application specific data during the payment attempt. If the destination
@ -6419,17 +6419,17 @@ type QueryRoutesRequest struct {
//Record types are required to be in the custom range >= 65536. When using //Record types are required to be in the custom range >= 65536. When using
//REST, the values must be encoded as base64. //REST, the values must be encoded as base64.
DestCustomRecords map[uint64][]byte `protobuf:"bytes,13,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` DestCustomRecords map[uint64][]byte `protobuf:"bytes,13,rep,name=dest_custom_records,json=destCustomRecords,proto3" json:"dest_custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
//* //
//The channel id of the channel that must be taken to the first hop. If zero, //The channel id of the channel that must be taken to the first hop. If zero,
//any channel may be used. //any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,14,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,14,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
//* //
//The pubkey of the last hop of the route. If empty, any hop may be used. //The pubkey of the last hop of the route. If empty, any hop may be used.
LastHopPubkey []byte `protobuf:"bytes,15,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"` LastHopPubkey []byte `protobuf:"bytes,15,opt,name=last_hop_pubkey,json=lastHopPubkey,proto3" json:"last_hop_pubkey,omitempty"`
//* //
//Optional route hints to reach the destination through private channels. //Optional route hints to reach the destination through private channels.
RouteHints []*RouteHint `protobuf:"bytes,16,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"` RouteHints []*RouteHint `protobuf:"bytes,16,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
//* //
//Features assumed to be supported by the final node. All transitive feature //Features assumed to be supported by the final node. All transitive feature
//dependencies must also be set properly. For a given feature bit pair, either //dependencies must also be set properly. For a given feature bit pair, either
//optional or remote may be set, but not both. If this field is nil or empty, //optional or remote may be set, but not both. If this field is nil or empty,
@ -6580,11 +6580,11 @@ func (m *QueryRoutesRequest) GetDestFeatures() []FeatureBit {
} }
type NodePair struct { type NodePair struct {
//* //
//The sending node of the pair. When using REST, this field must be encoded as //The sending node of the pair. When using REST, this field must be encoded as
//base64. //base64.
From []byte `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` From []byte `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
//* //
//The receiving node of the pair. When using REST, this field must be encoded //The receiving node of the pair. When using REST, this field must be encoded
//as base64. //as base64.
To []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` To []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
@ -6633,9 +6633,9 @@ func (m *NodePair) GetTo() []byte {
} }
type EdgeLocator struct { type EdgeLocator struct {
/// The short channel id of this edge. // The short channel id of this edge.
ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
//* //
//The direction of this edge. If direction_reverse is false, the direction //The direction of this edge. If direction_reverse is false, the direction
//of this edge is from the channel endpoint with the lexicographically smaller //of this edge is from the channel endpoint with the lexicographically smaller
//pub key to the endpoint with the larger pub key. If direction_reverse is //pub key to the endpoint with the larger pub key. If direction_reverse is
@ -6686,11 +6686,11 @@ func (m *EdgeLocator) GetDirectionReverse() bool {
} }
type QueryRoutesResponse struct { type QueryRoutesResponse struct {
//* //
//The route that results from the path finding operation. This is still a //The route that results from the path finding operation. This is still a
//repeated field to retain backwards compatibility. //repeated field to retain backwards compatibility.
Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
//* //
//The success probability of the returned route based on the current mission //The success probability of the returned route based on the current mission
//control state. [EXPERIMENTAL] //control state. [EXPERIMENTAL]
SuccessProb float64 `protobuf:"fixed64,2,opt,name=success_prob,json=successProb,proto3" json:"success_prob,omitempty"` SuccessProb float64 `protobuf:"fixed64,2,opt,name=success_prob,json=successProb,proto3" json:"success_prob,omitempty"`
@ -6739,7 +6739,7 @@ func (m *QueryRoutesResponse) GetSuccessProb() float64 {
} }
type Hop struct { type Hop struct {
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
@ -6750,22 +6750,22 @@ type Hop struct {
Expiry uint32 `protobuf:"varint,5,opt,name=expiry,proto3" json:"expiry,omitempty"` Expiry uint32 `protobuf:"varint,5,opt,name=expiry,proto3" json:"expiry,omitempty"`
AmtToForwardMsat int64 `protobuf:"varint,6,opt,name=amt_to_forward_msat,json=amtToForwardMsat,proto3" json:"amt_to_forward_msat,omitempty"` AmtToForwardMsat int64 `protobuf:"varint,6,opt,name=amt_to_forward_msat,json=amtToForwardMsat,proto3" json:"amt_to_forward_msat,omitempty"`
FeeMsat int64 `protobuf:"varint,7,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"` FeeMsat int64 `protobuf:"varint,7,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"`
//* //
//An optional public key of the hop. If the public key is given, the payment //An optional public key of the hop. If the public key is given, the payment
//can be executed without relying on a copy of the channel graph. //can be executed without relying on a copy of the channel graph.
PubKey string `protobuf:"bytes,8,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,8,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
//* //
//If set to true, then this hop will be encoded using the new variable length //If set to true, then this hop will be encoded using the new variable length
//TLV format. Note that if any custom tlv_records below are specified, then //TLV format. Note that if any custom tlv_records below are specified, then
//this field MUST be set to true for them to be encoded properly. //this field MUST be set to true for them to be encoded properly.
TlvPayload bool `protobuf:"varint,9,opt,name=tlv_payload,json=tlvPayload,proto3" json:"tlv_payload,omitempty"` TlvPayload bool `protobuf:"varint,9,opt,name=tlv_payload,json=tlvPayload,proto3" json:"tlv_payload,omitempty"`
//* //
//An optional TLV record that signals the use of an MPP payment. If present, //An optional TLV record that signals the use of an MPP payment. If present,
//the receiver will enforce that that the same mpp_record is included in the //the receiver will enforce that that the same mpp_record is included in the
//final hop payload of all non-zero payments in the HTLC set. If empty, a //final hop payload of all non-zero payments in the HTLC set. If empty, a
//regular single-shot payment is or was attempted. //regular single-shot payment is or was attempted.
MppRecord *MPPRecord `protobuf:"bytes,10,opt,name=mpp_record,json=mppRecord,proto3" json:"mpp_record,omitempty"` MppRecord *MPPRecord `protobuf:"bytes,10,opt,name=mpp_record,json=mppRecord,proto3" json:"mpp_record,omitempty"`
//* //
//An optional set of key-value TLV records. This is useful within the context //An optional set of key-value TLV records. This is useful within the context
//of the SendToRoute call as it allows callers to specify arbitrary K-V pairs //of the SendToRoute call as it allows callers to specify arbitrary K-V pairs
//to drop off at each hop within the onion. //to drop off at each hop within the onion.
@ -6880,13 +6880,13 @@ func (m *Hop) GetCustomRecords() map[uint64][]byte {
} }
type MPPRecord struct { type MPPRecord struct {
//* //
//A unique, random identifier used to authenticate the sender as the intended //A unique, random identifier used to authenticate the sender as the intended
//payer of a multi-path payment. The payment_addr must be the same for all //payer of a multi-path payment. The payment_addr must be the same for all
//subpayments, and match the payment_addr provided in the receiver's invoice. //subpayments, and match the payment_addr provided in the receiver's invoice.
//The same payment_addr must be used on all subpayments. //The same payment_addr must be used on all subpayments.
PaymentAddr []byte `protobuf:"bytes,11,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"` PaymentAddr []byte `protobuf:"bytes,11,opt,name=payment_addr,json=paymentAddr,proto3" json:"payment_addr,omitempty"`
//* //
//The total amount in milli-satoshis being sent as part of a larger multi-path //The total amount in milli-satoshis being sent as part of a larger multi-path
//payment. The caller is responsible for ensuring subpayments to the same node //payment. The caller is responsible for ensuring subpayments to the same node
//and payment_hash sum exactly to total_amt_msat. The same //and payment_hash sum exactly to total_amt_msat. The same
@ -6936,38 +6936,38 @@ func (m *MPPRecord) GetTotalAmtMsat() int64 {
return 0 return 0
} }
//* //
//A path through the channel graph which runs over one or more channels in //A path through the channel graph which runs over one or more channels in
//succession. This struct carries all the information required to craft the //succession. This struct carries all the information required to craft the
//Sphinx onion packet, and send the payment along the first hop in the path. A //Sphinx onion packet, and send the payment along the first hop in the path. A
//route is only selected as valid if all the channels have sufficient capacity to //route is only selected as valid if all the channels have sufficient capacity to
//carry the initial payment amount after fees are accounted for. //carry the initial payment amount after fees are accounted for.
type Route struct { type Route struct {
//* //
//The cumulative (final) time lock across the entire route. This is the CLTV //The cumulative (final) time lock across the entire route. This is the CLTV
//value that should be extended to the first hop in the route. All other hops //value that should be extended to the first hop in the route. All other hops
//will decrement the time-lock as advertised, leaving enough time for all //will decrement the time-lock as advertised, leaving enough time for all
//hops to wait for or present the payment preimage to complete the payment. //hops to wait for or present the payment preimage to complete the payment.
TotalTimeLock uint32 `protobuf:"varint,1,opt,name=total_time_lock,json=totalTimeLock,proto3" json:"total_time_lock,omitempty"` TotalTimeLock uint32 `protobuf:"varint,1,opt,name=total_time_lock,json=totalTimeLock,proto3" json:"total_time_lock,omitempty"`
//* //
//The sum of the fees paid at each hop within the final route. In the case //The sum of the fees paid at each hop within the final route. In the case
//of a one-hop payment, this value will be zero as we don't need to pay a fee //of a one-hop payment, this value will be zero as we don't need to pay a fee
//to ourselves. //to ourselves.
TotalFees int64 `protobuf:"varint,2,opt,name=total_fees,json=totalFees,proto3" json:"total_fees,omitempty"` // Deprecated: Do not use. TotalFees int64 `protobuf:"varint,2,opt,name=total_fees,json=totalFees,proto3" json:"total_fees,omitempty"` // Deprecated: Do not use.
//* //
//The total amount of funds required to complete a payment over this route. //The total amount of funds required to complete a payment over this route.
//This value includes the cumulative fees at each hop. As a result, the HTLC //This value includes the cumulative fees at each hop. As a result, the HTLC
//extended to the first-hop in the route will need to have at least this many //extended to the first-hop in the route will need to have at least this many
//satoshis, otherwise the route will fail at an intermediate node due to an //satoshis, otherwise the route will fail at an intermediate node due to an
//insufficient amount of fees. //insufficient amount of fees.
TotalAmt int64 `protobuf:"varint,3,opt,name=total_amt,json=totalAmt,proto3" json:"total_amt,omitempty"` // Deprecated: Do not use. TotalAmt int64 `protobuf:"varint,3,opt,name=total_amt,json=totalAmt,proto3" json:"total_amt,omitempty"` // Deprecated: Do not use.
//* //
//Contains details concerning the specific forwarding details at each hop. //Contains details concerning the specific forwarding details at each hop.
Hops []*Hop `protobuf:"bytes,4,rep,name=hops,proto3" json:"hops,omitempty"` Hops []*Hop `protobuf:"bytes,4,rep,name=hops,proto3" json:"hops,omitempty"`
//* //
//The total fees in millisatoshis. //The total fees in millisatoshis.
TotalFeesMsat int64 `protobuf:"varint,5,opt,name=total_fees_msat,json=totalFeesMsat,proto3" json:"total_fees_msat,omitempty"` TotalFeesMsat int64 `protobuf:"varint,5,opt,name=total_fees_msat,json=totalFeesMsat,proto3" json:"total_fees_msat,omitempty"`
//* //
//The total amount in millisatoshis. //The total amount in millisatoshis.
TotalAmtMsat int64 `protobuf:"varint,6,opt,name=total_amt_msat,json=totalAmtMsat,proto3" json:"total_amt_msat,omitempty"` TotalAmtMsat int64 `protobuf:"varint,6,opt,name=total_amt_msat,json=totalAmtMsat,proto3" json:"total_amt_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -7045,9 +7045,9 @@ func (m *Route) GetTotalAmtMsat() int64 {
} }
type NodeInfoRequest struct { type NodeInfoRequest struct {
/// The 33-byte hex-encoded compressed public of the target node // The 33-byte hex-encoded compressed public of the target node
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
/// If true, will include all known channels associated with the node. // If true, will include all known channels associated with the node.
IncludeChannels bool `protobuf:"varint,2,opt,name=include_channels,json=includeChannels,proto3" json:"include_channels,omitempty"` IncludeChannels bool `protobuf:"varint,2,opt,name=include_channels,json=includeChannels,proto3" json:"include_channels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -7094,17 +7094,17 @@ func (m *NodeInfoRequest) GetIncludeChannels() bool {
} }
type NodeInfo struct { type NodeInfo struct {
//* //
//An individual vertex/node within the channel graph. A node is //An individual vertex/node within the channel graph. A node is
//connected to other nodes by one or more channel edges emanating from it. As //connected to other nodes by one or more channel edges emanating from it. As
//the graph is directed, a node will also have an incoming edge attached to //the graph is directed, a node will also have an incoming edge attached to
//it for each outgoing edge. //it for each outgoing edge.
Node *LightningNode `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` Node *LightningNode `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
/// The total number of channels for the node. // The total number of channels for the node.
NumChannels uint32 `protobuf:"varint,2,opt,name=num_channels,json=numChannels,proto3" json:"num_channels,omitempty"` NumChannels uint32 `protobuf:"varint,2,opt,name=num_channels,json=numChannels,proto3" json:"num_channels,omitempty"`
/// The sum of all channels capacity for the node, denominated in satoshis. // The sum of all channels capacity for the node, denominated in satoshis.
TotalCapacity int64 `protobuf:"varint,3,opt,name=total_capacity,json=totalCapacity,proto3" json:"total_capacity,omitempty"` TotalCapacity int64 `protobuf:"varint,3,opt,name=total_capacity,json=totalCapacity,proto3" json:"total_capacity,omitempty"`
/// A list of all public channels for the node. // A list of all public channels for the node.
Channels []*ChannelEdge `protobuf:"bytes,4,rep,name=channels,proto3" json:"channels,omitempty"` Channels []*ChannelEdge `protobuf:"bytes,4,rep,name=channels,proto3" json:"channels,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -7164,7 +7164,7 @@ func (m *NodeInfo) GetChannels() []*ChannelEdge {
return nil return nil
} }
//* //
//An individual vertex/node within the channel graph. A node is //An individual vertex/node within the channel graph. A node is
//connected to other nodes by one or more channel edges emanating from it. As the //connected to other nodes by one or more channel edges emanating from it. As the
//graph is directed, a node will also have an incoming edge attached to it for //graph is directed, a node will also have an incoming edge attached to it for
@ -7382,14 +7382,14 @@ func (m *RoutingPolicy) GetLastUpdate() uint32 {
return 0 return 0
} }
//* //
//A fully authenticated channel along with all its unique attributes. //A fully authenticated channel along with all its unique attributes.
//Once an authenticated channel announcement has been processed on the network, //Once an authenticated channel announcement has been processed on the network,
//then an instance of ChannelEdgeInfo encapsulating the channels attributes is //then an instance of ChannelEdgeInfo encapsulating the channels attributes is
//stored. The other portions relevant to routing policy of a channel are stored //stored. The other portions relevant to routing policy of a channel are stored
//within a ChannelEdgePolicy for each direction of the channel. //within a ChannelEdgePolicy for each direction of the channel.
type ChannelEdge struct { type ChannelEdge struct {
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
@ -7489,7 +7489,7 @@ func (m *ChannelEdge) GetNode2Policy() *RoutingPolicy {
} }
type ChannelGraphRequest struct { type ChannelGraphRequest struct {
//* //
//Whether unannounced channels are included in the response or not. If set, //Whether unannounced channels are included in the response or not. If set,
//unannounced channels are included. Unannounced channels are both private //unannounced channels are included. Unannounced channels are both private
//channels, and public channels that are not yet announced to the network. //channels, and public channels that are not yet announced to the network.
@ -7531,11 +7531,11 @@ func (m *ChannelGraphRequest) GetIncludeUnannounced() bool {
return false return false
} }
/// Returns a new instance of the directed channel graph. // Returns a new instance of the directed channel graph.
type ChannelGraph struct { type ChannelGraph struct {
/// The list of `LightningNode`s in this channel graph // The list of `LightningNode`s in this channel graph
Nodes []*LightningNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` Nodes []*LightningNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
/// The list of `ChannelEdge`s in this channel graph // The list of `ChannelEdge`s in this channel graph
Edges []*ChannelEdge `protobuf:"bytes,2,rep,name=edges,proto3" json:"edges,omitempty"` Edges []*ChannelEdge `protobuf:"bytes,2,rep,name=edges,proto3" json:"edges,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -7582,7 +7582,7 @@ func (m *ChannelGraph) GetEdges() []*ChannelEdge {
} }
type NodeMetricsRequest struct { type NodeMetricsRequest struct {
/// The requested node metrics. // The requested node metrics.
Types []NodeMetricType `protobuf:"varint,1,rep,packed,name=types,proto3,enum=lnrpc.NodeMetricType" json:"types,omitempty"` Types []NodeMetricType `protobuf:"varint,1,rep,packed,name=types,proto3,enum=lnrpc.NodeMetricType" json:"types,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -7622,7 +7622,7 @@ func (m *NodeMetricsRequest) GetTypes() []NodeMetricType {
} }
type NodeMetricsResponse struct { type NodeMetricsResponse struct {
//* //
//Betweenness centrality is the sum of the ratio of shortest paths that pass //Betweenness centrality is the sum of the ratio of shortest paths that pass
//through the node for each pair of nodes in the graph (not counting paths //through the node for each pair of nodes in the graph (not counting paths
//starting or ending at this node). //starting or ending at this node).
@ -7667,9 +7667,9 @@ func (m *NodeMetricsResponse) GetBetweennessCentrality() map[string]*FloatMetric
} }
type FloatMetric struct { type FloatMetric struct {
/// Arbitrary float value. // Arbitrary float value.
Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
/// The value normalized to [0,1] or [-1,1]. // The value normalized to [0,1] or [-1,1].
NormalizedValue float64 `protobuf:"fixed64,2,opt,name=normalized_value,json=normalizedValue,proto3" json:"normalized_value,omitempty"` NormalizedValue float64 `protobuf:"fixed64,2,opt,name=normalized_value,json=normalizedValue,proto3" json:"normalized_value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -7716,7 +7716,7 @@ func (m *FloatMetric) GetNormalizedValue() float64 {
} }
type ChanInfoRequest struct { type ChanInfoRequest struct {
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
@ -8129,7 +8129,7 @@ func (m *NodeUpdate) GetColor() string {
} }
type ChannelEdgeUpdate struct { type ChannelEdgeUpdate struct {
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
@ -8212,7 +8212,7 @@ func (m *ChannelEdgeUpdate) GetConnectingNode() string {
} }
type ClosedChannelUpdate struct { type ClosedChannelUpdate struct {
//* //
//The unique channel ID for the channel. The first 3 bytes are the block //The unique channel ID for the channel. The first 3 bytes are the block
//height, the next 3 the index within the block, and the last 2 bytes are the //height, the next 3 the index within the block, and the last 2 bytes are the
//output index for the channel. //output index for the channel.
@ -8279,17 +8279,17 @@ func (m *ClosedChannelUpdate) GetChanPoint() *ChannelPoint {
} }
type HopHint struct { type HopHint struct {
/// The public key of the node at the start of the channel. // The public key of the node at the start of the channel.
NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
/// The unique identifier of the channel. // The unique identifier of the channel.
ChanId uint64 `protobuf:"varint,2,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,2,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// The base fee of the channel denominated in millisatoshis. // The base fee of the channel denominated in millisatoshis.
FeeBaseMsat uint32 `protobuf:"varint,3,opt,name=fee_base_msat,json=feeBaseMsat,proto3" json:"fee_base_msat,omitempty"` FeeBaseMsat uint32 `protobuf:"varint,3,opt,name=fee_base_msat,json=feeBaseMsat,proto3" json:"fee_base_msat,omitempty"`
//* //
//The fee rate of the channel for sending one satoshi across it denominated in //The fee rate of the channel for sending one satoshi across it denominated in
//millionths of a satoshi. //millionths of a satoshi.
FeeProportionalMillionths uint32 `protobuf:"varint,4,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3" json:"fee_proportional_millionths,omitempty"` FeeProportionalMillionths uint32 `protobuf:"varint,4,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3" json:"fee_proportional_millionths,omitempty"`
/// The time-lock delta of the channel. // The time-lock delta of the channel.
CltvExpiryDelta uint32 `protobuf:"varint,5,opt,name=cltv_expiry_delta,json=cltvExpiryDelta,proto3" json:"cltv_expiry_delta,omitempty"` CltvExpiryDelta uint32 `protobuf:"varint,5,opt,name=cltv_expiry_delta,json=cltvExpiryDelta,proto3" json:"cltv_expiry_delta,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -8357,7 +8357,7 @@ func (m *HopHint) GetCltvExpiryDelta() uint32 {
} }
type RouteHint struct { type RouteHint struct {
//* //
//A list of hop hints that when chained together can assist in reaching a //A list of hop hints that when chained together can assist in reaching a
//specific destination. //specific destination.
HopHints []*HopHint `protobuf:"bytes,1,rep,name=hop_hints,json=hopHints,proto3" json:"hop_hints,omitempty"` HopHints []*HopHint `protobuf:"bytes,1,rep,name=hop_hints,json=hopHints,proto3" json:"hop_hints,omitempty"`
@ -8399,75 +8399,75 @@ func (m *RouteHint) GetHopHints() []*HopHint {
} }
type Invoice struct { type Invoice struct {
//* //
//An optional memo to attach along with the invoice. Used for record keeping //An optional memo to attach along with the invoice. Used for record keeping
//purposes for the invoice's creator, and will also be set in the description //purposes for the invoice's creator, and will also be set in the description
//field of the encoded payment request if the description_hash field is not //field of the encoded payment request if the description_hash field is not
//being used. //being used.
Memo string `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` Memo string `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"`
//* //
//The hex-encoded preimage (32 byte) which will allow settling an incoming //The hex-encoded preimage (32 byte) which will allow settling an incoming
//HTLC payable to this preimage. When using REST, this field must be encoded //HTLC payable to this preimage. When using REST, this field must be encoded
//as base64. //as base64.
RPreimage []byte `protobuf:"bytes,3,opt,name=r_preimage,json=rPreimage,proto3" json:"r_preimage,omitempty"` RPreimage []byte `protobuf:"bytes,3,opt,name=r_preimage,json=rPreimage,proto3" json:"r_preimage,omitempty"`
//* //
//The hash of the preimage. When using REST, this field must be encoded as //The hash of the preimage. When using REST, this field must be encoded as
//base64. //base64.
RHash []byte `protobuf:"bytes,4,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"` RHash []byte `protobuf:"bytes,4,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
//* //
//The value of this invoice in satoshis //The value of this invoice in satoshis
// //
//The fields value and value_msat are mutually exclusive. //The fields value and value_msat are mutually exclusive.
Value int64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"` Value int64 `protobuf:"varint,5,opt,name=value,proto3" json:"value,omitempty"`
//* //
//The value of this invoice in millisatoshis //The value of this invoice in millisatoshis
// //
//The fields value and value_msat are mutually exclusive. //The fields value and value_msat are mutually exclusive.
ValueMsat int64 `protobuf:"varint,23,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"` ValueMsat int64 `protobuf:"varint,23,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"`
/// Whether this invoice has been fulfilled // Whether this invoice has been fulfilled
Settled bool `protobuf:"varint,6,opt,name=settled,proto3" json:"settled,omitempty"` // Deprecated: Do not use. Settled bool `protobuf:"varint,6,opt,name=settled,proto3" json:"settled,omitempty"` // Deprecated: Do not use.
/// When this invoice was created // When this invoice was created
CreationDate int64 `protobuf:"varint,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` CreationDate int64 `protobuf:"varint,7,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"`
/// When this invoice was settled // When this invoice was settled
SettleDate int64 `protobuf:"varint,8,opt,name=settle_date,json=settleDate,proto3" json:"settle_date,omitempty"` SettleDate int64 `protobuf:"varint,8,opt,name=settle_date,json=settleDate,proto3" json:"settle_date,omitempty"`
//* //
//A bare-bones invoice for a payment within the Lightning Network. With the //A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a //details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. //payment to the recipient.
PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"` PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
//* //
//Hash (SHA-256) of a description of the payment. Used if the description of //Hash (SHA-256) of a description of the payment. Used if the description of
//payment (memo) is too long to naturally fit within the description field //payment (memo) is too long to naturally fit within the description field
//of an encoded payment request. When using REST, this field must be encoded //of an encoded payment request. When using REST, this field must be encoded
//as base64. //as base64.
DescriptionHash []byte `protobuf:"bytes,10,opt,name=description_hash,json=descriptionHash,proto3" json:"description_hash,omitempty"` DescriptionHash []byte `protobuf:"bytes,10,opt,name=description_hash,json=descriptionHash,proto3" json:"description_hash,omitempty"`
/// Payment request expiry time in seconds. Default is 3600 (1 hour). // Payment request expiry time in seconds. Default is 3600 (1 hour).
Expiry int64 `protobuf:"varint,11,opt,name=expiry,proto3" json:"expiry,omitempty"` Expiry int64 `protobuf:"varint,11,opt,name=expiry,proto3" json:"expiry,omitempty"`
/// Fallback on-chain address. // Fallback on-chain address.
FallbackAddr string `protobuf:"bytes,12,opt,name=fallback_addr,json=fallbackAddr,proto3" json:"fallback_addr,omitempty"` FallbackAddr string `protobuf:"bytes,12,opt,name=fallback_addr,json=fallbackAddr,proto3" json:"fallback_addr,omitempty"`
/// Delta to use for the time-lock of the CLTV extended to the final hop. // Delta to use for the time-lock of the CLTV extended to the final hop.
CltvExpiry uint64 `protobuf:"varint,13,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"` CltvExpiry uint64 `protobuf:"varint,13,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"`
//* //
//Route hints that can each be individually used to assist in reaching the //Route hints that can each be individually used to assist in reaching the
//invoice's destination. //invoice's destination.
RouteHints []*RouteHint `protobuf:"bytes,14,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"` RouteHints []*RouteHint `protobuf:"bytes,14,rep,name=route_hints,json=routeHints,proto3" json:"route_hints,omitempty"`
/// Whether this invoice should include routing hints for private channels. // Whether this invoice should include routing hints for private channels.
Private bool `protobuf:"varint,15,opt,name=private,proto3" json:"private,omitempty"` Private bool `protobuf:"varint,15,opt,name=private,proto3" json:"private,omitempty"`
//* //
//The "add" index of this invoice. Each newly created invoice will increment //The "add" index of this invoice. Each newly created invoice will increment
//this index making it monotonically increasing. Callers to the //this index making it monotonically increasing. Callers to the
//SubscribeInvoices call can use this to instantly get notified of all added //SubscribeInvoices call can use this to instantly get notified of all added
//invoices with an add_index greater than this one. //invoices with an add_index greater than this one.
AddIndex uint64 `protobuf:"varint,16,opt,name=add_index,json=addIndex,proto3" json:"add_index,omitempty"` AddIndex uint64 `protobuf:"varint,16,opt,name=add_index,json=addIndex,proto3" json:"add_index,omitempty"`
//* //
//The "settle" index of this invoice. Each newly settled invoice will //The "settle" index of this invoice. Each newly settled invoice will
//increment this index making it monotonically increasing. Callers to the //increment this index making it monotonically increasing. Callers to the
//SubscribeInvoices call can use this to instantly get notified of all //SubscribeInvoices call can use this to instantly get notified of all
//settled invoices with an settle_index greater than this one. //settled invoices with an settle_index greater than this one.
SettleIndex uint64 `protobuf:"varint,17,opt,name=settle_index,json=settleIndex,proto3" json:"settle_index,omitempty"` SettleIndex uint64 `protobuf:"varint,17,opt,name=settle_index,json=settleIndex,proto3" json:"settle_index,omitempty"`
/// Deprecated, use amt_paid_sat or amt_paid_msat. // Deprecated, use amt_paid_sat or amt_paid_msat.
AmtPaid int64 `protobuf:"varint,18,opt,name=amt_paid,json=amtPaid,proto3" json:"amt_paid,omitempty"` // Deprecated: Do not use. AmtPaid int64 `protobuf:"varint,18,opt,name=amt_paid,json=amtPaid,proto3" json:"amt_paid,omitempty"` // Deprecated: Do not use.
//* //
//The amount that was accepted for this invoice, in satoshis. This will ONLY //The amount that was accepted for this invoice, in satoshis. This will ONLY
//be set if this invoice has been settled. We provide this field as if the //be set if this invoice has been settled. We provide this field as if the
//invoice was created with a zero value, then we need to record what amount //invoice was created with a zero value, then we need to record what amount
@ -8475,7 +8475,7 @@ type Invoice struct {
//MORE that was specified in the original invoice. So we'll record that here //MORE that was specified in the original invoice. So we'll record that here
//as well. //as well.
AmtPaidSat int64 `protobuf:"varint,19,opt,name=amt_paid_sat,json=amtPaidSat,proto3" json:"amt_paid_sat,omitempty"` AmtPaidSat int64 `protobuf:"varint,19,opt,name=amt_paid_sat,json=amtPaidSat,proto3" json:"amt_paid_sat,omitempty"`
//* //
//The amount that was accepted for this invoice, in millisatoshis. This will //The amount that was accepted for this invoice, in millisatoshis. This will
//ONLY be set if this invoice has been settled. We provide this field as if //ONLY be set if this invoice has been settled. We provide this field as if
//the invoice was created with a zero value, then we need to record what //the invoice was created with a zero value, then we need to record what
@ -8483,14 +8483,14 @@ type Invoice struct {
//paid MORE that was specified in the original invoice. So we'll record that //paid MORE that was specified in the original invoice. So we'll record that
//here as well. //here as well.
AmtPaidMsat int64 `protobuf:"varint,20,opt,name=amt_paid_msat,json=amtPaidMsat,proto3" json:"amt_paid_msat,omitempty"` AmtPaidMsat int64 `protobuf:"varint,20,opt,name=amt_paid_msat,json=amtPaidMsat,proto3" json:"amt_paid_msat,omitempty"`
//* //
//The state the invoice is in. //The state the invoice is in.
State Invoice_InvoiceState `protobuf:"varint,21,opt,name=state,proto3,enum=lnrpc.Invoice_InvoiceState" json:"state,omitempty"` State Invoice_InvoiceState `protobuf:"varint,21,opt,name=state,proto3,enum=lnrpc.Invoice_InvoiceState" json:"state,omitempty"`
/// List of HTLCs paying to this invoice [EXPERIMENTAL]. // List of HTLCs paying to this invoice [EXPERIMENTAL].
Htlcs []*InvoiceHTLC `protobuf:"bytes,22,rep,name=htlcs,proto3" json:"htlcs,omitempty"` Htlcs []*InvoiceHTLC `protobuf:"bytes,22,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
/// List of features advertised on the invoice. // List of features advertised on the invoice.
Features map[uint32]*Feature `protobuf:"bytes,24,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Features map[uint32]*Feature `protobuf:"bytes,24,rep,name=features,proto3" json:"features,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
//* //
//Indicates if this invoice was a spontaneous payment that arrived via keysend //Indicates if this invoice was a spontaneous payment that arrived via keysend
//[EXPERIMENTAL]. //[EXPERIMENTAL].
IsKeysend bool `protobuf:"varint,25,opt,name=is_keysend,json=isKeysend,proto3" json:"is_keysend,omitempty"` IsKeysend bool `protobuf:"varint,25,opt,name=is_keysend,json=isKeysend,proto3" json:"is_keysend,omitempty"`
@ -8694,27 +8694,27 @@ func (m *Invoice) GetIsKeysend() bool {
return false return false
} }
/// Details of an HTLC that paid to an invoice // Details of an HTLC that paid to an invoice
type InvoiceHTLC struct { type InvoiceHTLC struct {
/// Short channel id over which the htlc was received. // Short channel id over which the htlc was received.
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// Index identifying the htlc on the channel. // Index identifying the htlc on the channel.
HtlcIndex uint64 `protobuf:"varint,2,opt,name=htlc_index,json=htlcIndex,proto3" json:"htlc_index,omitempty"` HtlcIndex uint64 `protobuf:"varint,2,opt,name=htlc_index,json=htlcIndex,proto3" json:"htlc_index,omitempty"`
/// The amount of the htlc in msat. // The amount of the htlc in msat.
AmtMsat uint64 `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"` AmtMsat uint64 `protobuf:"varint,3,opt,name=amt_msat,json=amtMsat,proto3" json:"amt_msat,omitempty"`
/// Block height at which this htlc was accepted. // Block height at which this htlc was accepted.
AcceptHeight int32 `protobuf:"varint,4,opt,name=accept_height,json=acceptHeight,proto3" json:"accept_height,omitempty"` AcceptHeight int32 `protobuf:"varint,4,opt,name=accept_height,json=acceptHeight,proto3" json:"accept_height,omitempty"`
/// Time at which this htlc was accepted. // Time at which this htlc was accepted.
AcceptTime int64 `protobuf:"varint,5,opt,name=accept_time,json=acceptTime,proto3" json:"accept_time,omitempty"` AcceptTime int64 `protobuf:"varint,5,opt,name=accept_time,json=acceptTime,proto3" json:"accept_time,omitempty"`
/// Time at which this htlc was settled or canceled. // Time at which this htlc was settled or canceled.
ResolveTime int64 `protobuf:"varint,6,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` ResolveTime int64 `protobuf:"varint,6,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"`
/// Block height at which this htlc expires. // Block height at which this htlc expires.
ExpiryHeight int32 `protobuf:"varint,7,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` ExpiryHeight int32 `protobuf:"varint,7,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"`
/// Current state the htlc is in. // Current state the htlc is in.
State InvoiceHTLCState `protobuf:"varint,8,opt,name=state,proto3,enum=lnrpc.InvoiceHTLCState" json:"state,omitempty"` State InvoiceHTLCState `protobuf:"varint,8,opt,name=state,proto3,enum=lnrpc.InvoiceHTLCState" json:"state,omitempty"`
/// Custom tlv records. // Custom tlv records.
CustomRecords map[uint64][]byte `protobuf:"bytes,9,rep,name=custom_records,json=customRecords,proto3" json:"custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` CustomRecords map[uint64][]byte `protobuf:"bytes,9,rep,name=custom_records,json=customRecords,proto3" json:"custom_records,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
/// The total amount of the mpp payment in msat. // The total amount of the mpp payment in msat.
MppTotalAmtMsat uint64 `protobuf:"varint,10,opt,name=mpp_total_amt_msat,json=mppTotalAmtMsat,proto3" json:"mpp_total_amt_msat,omitempty"` MppTotalAmtMsat uint64 `protobuf:"varint,10,opt,name=mpp_total_amt_msat,json=mppTotalAmtMsat,proto3" json:"mpp_total_amt_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -8818,12 +8818,12 @@ func (m *InvoiceHTLC) GetMppTotalAmtMsat() uint64 {
type AddInvoiceResponse struct { type AddInvoiceResponse struct {
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"` RHash []byte `protobuf:"bytes,1,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
//* //
//A bare-bones invoice for a payment within the Lightning Network. With the //A bare-bones invoice for a payment within the Lightning Network. With the
//details of the invoice, the sender has all the data necessary to send a //details of the invoice, the sender has all the data necessary to send a
//payment to the recipient. //payment to the recipient.
PaymentRequest string `protobuf:"bytes,2,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"` PaymentRequest string `protobuf:"bytes,2,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
//* //
//The "add" index of this invoice. Each newly created invoice will increment //The "add" index of this invoice. Each newly created invoice will increment
//this index making it monotonically increasing. Callers to the //this index making it monotonically increasing. Callers to the
//SubscribeInvoices call can use this to instantly get notified of all added //SubscribeInvoices call can use this to instantly get notified of all added
@ -8881,13 +8881,13 @@ func (m *AddInvoiceResponse) GetAddIndex() uint64 {
} }
type PaymentHash struct { type PaymentHash struct {
//* //
//The hex-encoded payment hash of the invoice to be looked up. The passed //The hex-encoded payment hash of the invoice to be looked up. The passed
//payment hash must be exactly 32 bytes, otherwise an error is returned. //payment hash must be exactly 32 bytes, otherwise an error is returned.
//Deprecated now that the REST gateway supports base64 encoding of bytes //Deprecated now that the REST gateway supports base64 encoding of bytes
//fields. //fields.
RHashStr string `protobuf:"bytes,1,opt,name=r_hash_str,json=rHashStr,proto3" json:"r_hash_str,omitempty"` // Deprecated: Do not use. RHashStr string `protobuf:"bytes,1,opt,name=r_hash_str,json=rHashStr,proto3" json:"r_hash_str,omitempty"` // Deprecated: Do not use.
//* //
//The payment hash of the invoice to be looked up. When using REST, this field //The payment hash of the invoice to be looked up. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
RHash []byte `protobuf:"bytes,2,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"` RHash []byte `protobuf:"bytes,2,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
@ -8937,17 +8937,17 @@ func (m *PaymentHash) GetRHash() []byte {
} }
type ListInvoiceRequest struct { type ListInvoiceRequest struct {
//* //
//If set, only invoices that are not settled and not canceled will be returned //If set, only invoices that are not settled and not canceled will be returned
//in the response. //in the response.
PendingOnly bool `protobuf:"varint,1,opt,name=pending_only,json=pendingOnly,proto3" json:"pending_only,omitempty"` PendingOnly bool `protobuf:"varint,1,opt,name=pending_only,json=pendingOnly,proto3" json:"pending_only,omitempty"`
//* //
//The index of an invoice that will be used as either the start or end of a //The index of an invoice that will be used as either the start or end of a
//query to determine which invoices should be returned in the response. //query to determine which invoices should be returned in the response.
IndexOffset uint64 `protobuf:"varint,4,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"` IndexOffset uint64 `protobuf:"varint,4,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"`
/// The max number of invoices to return in the response to this query. // The max number of invoices to return in the response to this query.
NumMaxInvoices uint64 `protobuf:"varint,5,opt,name=num_max_invoices,json=numMaxInvoices,proto3" json:"num_max_invoices,omitempty"` NumMaxInvoices uint64 `protobuf:"varint,5,opt,name=num_max_invoices,json=numMaxInvoices,proto3" json:"num_max_invoices,omitempty"`
//* //
//If set, the invoices returned will result from seeking backwards from the //If set, the invoices returned will result from seeking backwards from the
//specified index offset. This can be used to paginate backwards. //specified index offset. This can be used to paginate backwards.
Reversed bool `protobuf:"varint,6,opt,name=reversed,proto3" json:"reversed,omitempty"` Reversed bool `protobuf:"varint,6,opt,name=reversed,proto3" json:"reversed,omitempty"`
@ -9010,15 +9010,15 @@ func (m *ListInvoiceRequest) GetReversed() bool {
} }
type ListInvoiceResponse struct { type ListInvoiceResponse struct {
//* //
//A list of invoices from the time slice of the time series specified in the //A list of invoices from the time slice of the time series specified in the
//request. //request.
Invoices []*Invoice `protobuf:"bytes,1,rep,name=invoices,proto3" json:"invoices,omitempty"` Invoices []*Invoice `protobuf:"bytes,1,rep,name=invoices,proto3" json:"invoices,omitempty"`
//* //
//The index of the last item in the set of returned invoices. This can be used //The index of the last item in the set of returned invoices. This can be used
//to seek further, pagination style. //to seek further, pagination style.
LastIndexOffset uint64 `protobuf:"varint,2,opt,name=last_index_offset,json=lastIndexOffset,proto3" json:"last_index_offset,omitempty"` LastIndexOffset uint64 `protobuf:"varint,2,opt,name=last_index_offset,json=lastIndexOffset,proto3" json:"last_index_offset,omitempty"`
//* //
//The index of the last item in the set of returned invoices. This can be used //The index of the last item in the set of returned invoices. This can be used
//to seek backwards, pagination style. //to seek backwards, pagination style.
FirstIndexOffset uint64 `protobuf:"varint,3,opt,name=first_index_offset,json=firstIndexOffset,proto3" json:"first_index_offset,omitempty"` FirstIndexOffset uint64 `protobuf:"varint,3,opt,name=first_index_offset,json=firstIndexOffset,proto3" json:"first_index_offset,omitempty"`
@ -9074,13 +9074,13 @@ func (m *ListInvoiceResponse) GetFirstIndexOffset() uint64 {
} }
type InvoiceSubscription struct { type InvoiceSubscription struct {
//* //
//If specified (non-zero), then we'll first start by sending out //If specified (non-zero), then we'll first start by sending out
//notifications for all added indexes with an add_index greater than this //notifications for all added indexes with an add_index greater than this
//value. This allows callers to catch up on any events they missed while they //value. This allows callers to catch up on any events they missed while they
//weren't connected to the streaming RPC. //weren't connected to the streaming RPC.
AddIndex uint64 `protobuf:"varint,1,opt,name=add_index,json=addIndex,proto3" json:"add_index,omitempty"` AddIndex uint64 `protobuf:"varint,1,opt,name=add_index,json=addIndex,proto3" json:"add_index,omitempty"`
//* //
//If specified (non-zero), then we'll first start by sending out //If specified (non-zero), then we'll first start by sending out
//notifications for all settled indexes with an settle_index greater than //notifications for all settled indexes with an settle_index greater than
//this value. This allows callers to catch up on any events they missed while //this value. This allows callers to catch up on any events they missed while
@ -9131,33 +9131,33 @@ func (m *InvoiceSubscription) GetSettleIndex() uint64 {
} }
type Payment struct { type Payment struct {
/// The payment hash // The payment hash
PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
/// Deprecated, use value_sat or value_msat. // Deprecated, use value_sat or value_msat.
Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` // Deprecated: Do not use. Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` // Deprecated: Do not use.
/// Deprecated, use creation_time_ns // Deprecated, use creation_time_ns
CreationDate int64 `protobuf:"varint,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` // Deprecated: Do not use. CreationDate int64 `protobuf:"varint,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` // Deprecated: Do not use.
/// Deprecated, use fee_sat or fee_msat. // Deprecated, use fee_sat or fee_msat.
Fee int64 `protobuf:"varint,5,opt,name=fee,proto3" json:"fee,omitempty"` // Deprecated: Do not use. Fee int64 `protobuf:"varint,5,opt,name=fee,proto3" json:"fee,omitempty"` // Deprecated: Do not use.
/// The payment preimage // The payment preimage
PaymentPreimage string `protobuf:"bytes,6,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"` PaymentPreimage string `protobuf:"bytes,6,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"`
/// The value of the payment in satoshis // The value of the payment in satoshis
ValueSat int64 `protobuf:"varint,7,opt,name=value_sat,json=valueSat,proto3" json:"value_sat,omitempty"` ValueSat int64 `protobuf:"varint,7,opt,name=value_sat,json=valueSat,proto3" json:"value_sat,omitempty"`
/// The value of the payment in milli-satoshis // The value of the payment in milli-satoshis
ValueMsat int64 `protobuf:"varint,8,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"` ValueMsat int64 `protobuf:"varint,8,opt,name=value_msat,json=valueMsat,proto3" json:"value_msat,omitempty"`
/// The optional payment request being fulfilled. // The optional payment request being fulfilled.
PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"` PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request,json=paymentRequest,proto3" json:"payment_request,omitempty"`
// The status of the payment. // The status of the payment.
Status Payment_PaymentStatus `protobuf:"varint,10,opt,name=status,proto3,enum=lnrpc.Payment_PaymentStatus" json:"status,omitempty"` Status Payment_PaymentStatus `protobuf:"varint,10,opt,name=status,proto3,enum=lnrpc.Payment_PaymentStatus" json:"status,omitempty"`
/// The fee paid for this payment in satoshis // The fee paid for this payment in satoshis
FeeSat int64 `protobuf:"varint,11,opt,name=fee_sat,json=feeSat,proto3" json:"fee_sat,omitempty"` FeeSat int64 `protobuf:"varint,11,opt,name=fee_sat,json=feeSat,proto3" json:"fee_sat,omitempty"`
/// The fee paid for this payment in milli-satoshis // The fee paid for this payment in milli-satoshis
FeeMsat int64 `protobuf:"varint,12,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"` FeeMsat int64 `protobuf:"varint,12,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"`
/// The time in UNIX nanoseconds at which the payment was created. // The time in UNIX nanoseconds at which the payment was created.
CreationTimeNs int64 `protobuf:"varint,13,opt,name=creation_time_ns,json=creationTimeNs,proto3" json:"creation_time_ns,omitempty"` CreationTimeNs int64 `protobuf:"varint,13,opt,name=creation_time_ns,json=creationTimeNs,proto3" json:"creation_time_ns,omitempty"`
/// The HTLCs made in attempt to settle the payment. // The HTLCs made in attempt to settle the payment.
Htlcs []*HTLCAttempt `protobuf:"bytes,14,rep,name=htlcs,proto3" json:"htlcs,omitempty"` Htlcs []*HTLCAttempt `protobuf:"bytes,14,rep,name=htlcs,proto3" json:"htlcs,omitempty"`
//* //
//The creation index of this payment. Each payment can be uniquely identified //The creation index of this payment. Each payment can be uniquely identified
//by this index, which may not strictly increment by 1 for payments made in //by this index, which may not strictly increment by 1 for payments made in
//older versions of lnd. //older versions of lnd.
@ -9302,13 +9302,13 @@ func (m *Payment) GetFailureReason() PaymentFailureReason {
} }
type HTLCAttempt struct { type HTLCAttempt struct {
/// The status of the HTLC. // The status of the HTLC.
Status HTLCAttempt_HTLCStatus `protobuf:"varint,1,opt,name=status,proto3,enum=lnrpc.HTLCAttempt_HTLCStatus" json:"status,omitempty"` Status HTLCAttempt_HTLCStatus `protobuf:"varint,1,opt,name=status,proto3,enum=lnrpc.HTLCAttempt_HTLCStatus" json:"status,omitempty"`
/// The route taken by this HTLC. // The route taken by this HTLC.
Route *Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` Route *Route `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
/// The time in UNIX nanoseconds at which this HTLC was sent. // The time in UNIX nanoseconds at which this HTLC was sent.
AttemptTimeNs int64 `protobuf:"varint,3,opt,name=attempt_time_ns,json=attemptTimeNs,proto3" json:"attempt_time_ns,omitempty"` AttemptTimeNs int64 `protobuf:"varint,3,opt,name=attempt_time_ns,json=attemptTimeNs,proto3" json:"attempt_time_ns,omitempty"`
//* //
//The time in UNIX nanoseconds at which this HTLC was settled or failed. //The time in UNIX nanoseconds at which this HTLC was settled or failed.
//This value will not be set if the HTLC is still IN_FLIGHT. //This value will not be set if the HTLC is still IN_FLIGHT.
ResolveTimeNs int64 `protobuf:"varint,4,opt,name=resolve_time_ns,json=resolveTimeNs,proto3" json:"resolve_time_ns,omitempty"` ResolveTimeNs int64 `protobuf:"varint,4,opt,name=resolve_time_ns,json=resolveTimeNs,proto3" json:"resolve_time_ns,omitempty"`
@ -9380,22 +9380,22 @@ func (m *HTLCAttempt) GetFailure() *Failure {
} }
type ListPaymentsRequest struct { type ListPaymentsRequest struct {
//* //
//If true, then return payments that have not yet fully completed. This means //If true, then return payments that have not yet fully completed. This means
//that pending payments, as well as failed payments will show up if this //that pending payments, as well as failed payments will show up if this
//field is set to true. This flag doesn't change the meaning of the indices, //field is set to true. This flag doesn't change the meaning of the indices,
//which are tied to individual payments. //which are tied to individual payments.
IncludeIncomplete bool `protobuf:"varint,1,opt,name=include_incomplete,json=includeIncomplete,proto3" json:"include_incomplete,omitempty"` IncludeIncomplete bool `protobuf:"varint,1,opt,name=include_incomplete,json=includeIncomplete,proto3" json:"include_incomplete,omitempty"`
//* //
//The index of a payment that will be used as either the start or end of a //The index of a payment that will be used as either the start or end of a
//query to determine which payments should be returned in the response. The //query to determine which payments should be returned in the response. The
//index_offset is exclusive. In the case of a zero index_offset, the query //index_offset is exclusive. In the case of a zero index_offset, the query
//will start with the oldest payment when paginating forwards, or will end //will start with the oldest payment when paginating forwards, or will end
//with the most recent payment when paginating backwards. //with the most recent payment when paginating backwards.
IndexOffset uint64 `protobuf:"varint,2,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"` IndexOffset uint64 `protobuf:"varint,2,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"`
/// The maximal number of payments returned in the response to this query. // The maximal number of payments returned in the response to this query.
MaxPayments uint64 `protobuf:"varint,3,opt,name=max_payments,json=maxPayments,proto3" json:"max_payments,omitempty"` MaxPayments uint64 `protobuf:"varint,3,opt,name=max_payments,json=maxPayments,proto3" json:"max_payments,omitempty"`
//* //
//If set, the payments returned will result from seeking backwards from the //If set, the payments returned will result from seeking backwards from the
//specified index offset. This can be used to paginate backwards. The order //specified index offset. This can be used to paginate backwards. The order
//of the returned payments is always oldest first (ascending index order). //of the returned payments is always oldest first (ascending index order).
@ -9459,13 +9459,13 @@ func (m *ListPaymentsRequest) GetReversed() bool {
} }
type ListPaymentsResponse struct { type ListPaymentsResponse struct {
/// The list of payments // The list of payments
Payments []*Payment `protobuf:"bytes,1,rep,name=payments,proto3" json:"payments,omitempty"` Payments []*Payment `protobuf:"bytes,1,rep,name=payments,proto3" json:"payments,omitempty"`
//* //
//The index of the first item in the set of returned payments. This can be //The index of the first item in the set of returned payments. This can be
//used as the index_offset to continue seeking backwards in the next request. //used as the index_offset to continue seeking backwards in the next request.
FirstIndexOffset uint64 `protobuf:"varint,2,opt,name=first_index_offset,json=firstIndexOffset,proto3" json:"first_index_offset,omitempty"` FirstIndexOffset uint64 `protobuf:"varint,2,opt,name=first_index_offset,json=firstIndexOffset,proto3" json:"first_index_offset,omitempty"`
//* //
//The index of the last item in the set of returned payments. This can be used //The index of the last item in the set of returned payments. This can be used
//as the index_offset to continue seeking forwards in the next request. //as the index_offset to continue seeking forwards in the next request.
LastIndexOffset uint64 `protobuf:"varint,3,opt,name=last_index_offset,json=lastIndexOffset,proto3" json:"last_index_offset,omitempty"` LastIndexOffset uint64 `protobuf:"varint,3,opt,name=last_index_offset,json=lastIndexOffset,proto3" json:"last_index_offset,omitempty"`
@ -9739,7 +9739,7 @@ func (m *DebugLevelResponse) GetSubSystems() string {
} }
type PayReqString struct { type PayReqString struct {
/// The payment request string to be decoded // The payment request string to be decoded
PayReq string `protobuf:"bytes,1,opt,name=pay_req,json=payReq,proto3" json:"pay_req,omitempty"` PayReq string `protobuf:"bytes,1,opt,name=pay_req,json=payReq,proto3" json:"pay_req,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10000,17 +10000,17 @@ func (m *FeeReportRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_FeeReportRequest proto.InternalMessageInfo var xxx_messageInfo_FeeReportRequest proto.InternalMessageInfo
type ChannelFeeReport struct { type ChannelFeeReport struct {
/// The short channel id that this fee report belongs to. // The short channel id that this fee report belongs to.
ChanId uint64 `protobuf:"varint,5,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,5,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
/// The channel that this fee report belongs to. // The channel that this fee report belongs to.
ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"` ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint,proto3" json:"channel_point,omitempty"`
/// The base fee charged regardless of the number of milli-satoshis sent. // The base fee charged regardless of the number of milli-satoshis sent.
BaseFeeMsat int64 `protobuf:"varint,2,opt,name=base_fee_msat,json=baseFeeMsat,proto3" json:"base_fee_msat,omitempty"` BaseFeeMsat int64 `protobuf:"varint,2,opt,name=base_fee_msat,json=baseFeeMsat,proto3" json:"base_fee_msat,omitempty"`
/// The amount charged per milli-satoshis transferred expressed in // The amount charged per milli-satoshis transferred expressed in
/// millionths of a satoshi. // millionths of a satoshi.
FeePerMil int64 `protobuf:"varint,3,opt,name=fee_per_mil,json=feePerMil,proto3" json:"fee_per_mil,omitempty"` FeePerMil int64 `protobuf:"varint,3,opt,name=fee_per_mil,json=feePerMil,proto3" json:"fee_per_mil,omitempty"`
/// The effective fee rate in milli-satoshis. Computed by dividing the // The effective fee rate in milli-satoshis. Computed by dividing the
/// fee_per_mil value by 1 million. // fee_per_mil value by 1 million.
FeeRate float64 `protobuf:"fixed64,4,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"` FeeRate float64 `protobuf:"fixed64,4,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10078,17 +10078,17 @@ func (m *ChannelFeeReport) GetFeeRate() float64 {
} }
type FeeReportResponse struct { type FeeReportResponse struct {
/// An array of channel fee reports which describes the current fee schedule // An array of channel fee reports which describes the current fee schedule
/// for each channel. // for each channel.
ChannelFees []*ChannelFeeReport `protobuf:"bytes,1,rep,name=channel_fees,json=channelFees,proto3" json:"channel_fees,omitempty"` ChannelFees []*ChannelFeeReport `protobuf:"bytes,1,rep,name=channel_fees,json=channelFees,proto3" json:"channel_fees,omitempty"`
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 24 hrs. // over the past 24 hrs.
DayFeeSum uint64 `protobuf:"varint,2,opt,name=day_fee_sum,json=dayFeeSum,proto3" json:"day_fee_sum,omitempty"` DayFeeSum uint64 `protobuf:"varint,2,opt,name=day_fee_sum,json=dayFeeSum,proto3" json:"day_fee_sum,omitempty"`
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 1 week. // over the past 1 week.
WeekFeeSum uint64 `protobuf:"varint,3,opt,name=week_fee_sum,json=weekFeeSum,proto3" json:"week_fee_sum,omitempty"` WeekFeeSum uint64 `protobuf:"varint,3,opt,name=week_fee_sum,json=weekFeeSum,proto3" json:"week_fee_sum,omitempty"`
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 1 month. // over the past 1 month.
MonthFeeSum uint64 `protobuf:"varint,4,opt,name=month_fee_sum,json=monthFeeSum,proto3" json:"month_fee_sum,omitempty"` MonthFeeSum uint64 `protobuf:"varint,4,opt,name=month_fee_sum,json=monthFeeSum,proto3" json:"month_fee_sum,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10153,20 +10153,20 @@ type PolicyUpdateRequest struct {
// *PolicyUpdateRequest_Global // *PolicyUpdateRequest_Global
// *PolicyUpdateRequest_ChanPoint // *PolicyUpdateRequest_ChanPoint
Scope isPolicyUpdateRequest_Scope `protobuf_oneof:"scope"` Scope isPolicyUpdateRequest_Scope `protobuf_oneof:"scope"`
/// The base fee charged regardless of the number of milli-satoshis sent. // The base fee charged regardless of the number of milli-satoshis sent.
BaseFeeMsat int64 `protobuf:"varint,3,opt,name=base_fee_msat,json=baseFeeMsat,proto3" json:"base_fee_msat,omitempty"` BaseFeeMsat int64 `protobuf:"varint,3,opt,name=base_fee_msat,json=baseFeeMsat,proto3" json:"base_fee_msat,omitempty"`
/// The effective fee rate in milli-satoshis. The precision of this value // The effective fee rate in milli-satoshis. The precision of this value
/// goes up to 6 decimal places, so 1e-6. // goes up to 6 decimal places, so 1e-6.
FeeRate float64 `protobuf:"fixed64,4,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"` FeeRate float64 `protobuf:"fixed64,4,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"`
/// The required timelock delta for HTLCs forwarded over the channel. // The required timelock delta for HTLCs forwarded over the channel.
TimeLockDelta uint32 `protobuf:"varint,5,opt,name=time_lock_delta,json=timeLockDelta,proto3" json:"time_lock_delta,omitempty"` TimeLockDelta uint32 `protobuf:"varint,5,opt,name=time_lock_delta,json=timeLockDelta,proto3" json:"time_lock_delta,omitempty"`
/// If set, the maximum HTLC size in milli-satoshis. If unset, the maximum // If set, the maximum HTLC size in milli-satoshis. If unset, the maximum
/// HTLC will be unchanged. // HTLC will be unchanged.
MaxHtlcMsat uint64 `protobuf:"varint,6,opt,name=max_htlc_msat,json=maxHtlcMsat,proto3" json:"max_htlc_msat,omitempty"` MaxHtlcMsat uint64 `protobuf:"varint,6,opt,name=max_htlc_msat,json=maxHtlcMsat,proto3" json:"max_htlc_msat,omitempty"`
/// The minimum HTLC size in milli-satoshis. Only applied if // The minimum HTLC size in milli-satoshis. Only applied if
/// min_htlc_msat_specified is true. // min_htlc_msat_specified is true.
MinHtlcMsat uint64 `protobuf:"varint,7,opt,name=min_htlc_msat,json=minHtlcMsat,proto3" json:"min_htlc_msat,omitempty"` MinHtlcMsat uint64 `protobuf:"varint,7,opt,name=min_htlc_msat,json=minHtlcMsat,proto3" json:"min_htlc_msat,omitempty"`
/// If true, min_htlc_msat is applied. // If true, min_htlc_msat is applied.
MinHtlcMsatSpecified bool `protobuf:"varint,8,opt,name=min_htlc_msat_specified,json=minHtlcMsatSpecified,proto3" json:"min_htlc_msat_specified,omitempty"` MinHtlcMsatSpecified bool `protobuf:"varint,8,opt,name=min_htlc_msat_specified,json=minHtlcMsatSpecified,proto3" json:"min_htlc_msat_specified,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10317,19 +10317,19 @@ func (m *PolicyUpdateResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_PolicyUpdateResponse proto.InternalMessageInfo var xxx_messageInfo_PolicyUpdateResponse proto.InternalMessageInfo
type ForwardingHistoryRequest struct { type ForwardingHistoryRequest struct {
/// Start time is the starting point of the forwarding history request. All // Start time is the starting point of the forwarding history request. All
/// records beyond this point will be included, respecting the end time, and // records beyond this point will be included, respecting the end time, and
/// the index offset. // the index offset.
StartTime uint64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` StartTime uint64 `protobuf:"varint,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
/// End time is the end point of the forwarding history request. The // End time is the end point of the forwarding history request. The
/// response will carry at most 50k records between the start time and the // response will carry at most 50k records between the start time and the
/// end time. The index offset can be used to implement pagination. // end time. The index offset can be used to implement pagination.
EndTime uint64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` EndTime uint64 `protobuf:"varint,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
/// Index offset is the offset in the time series to start at. As each // Index offset is the offset in the time series to start at. As each
/// response can only contain 50k records, callers can use this to skip // response can only contain 50k records, callers can use this to skip
/// around within a packed time series. // around within a packed time series.
IndexOffset uint32 `protobuf:"varint,3,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"` IndexOffset uint32 `protobuf:"varint,3,opt,name=index_offset,json=indexOffset,proto3" json:"index_offset,omitempty"`
/// The max number of events to return in the response to this query. // The max number of events to return in the response to this query.
NumMaxEvents uint32 `protobuf:"varint,4,opt,name=num_max_events,json=numMaxEvents,proto3" json:"num_max_events,omitempty"` NumMaxEvents uint32 `protobuf:"varint,4,opt,name=num_max_events,json=numMaxEvents,proto3" json:"num_max_events,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10390,29 +10390,29 @@ func (m *ForwardingHistoryRequest) GetNumMaxEvents() uint32 {
} }
type ForwardingEvent struct { type ForwardingEvent struct {
/// Timestamp is the time (unix epoch offset) that this circuit was // Timestamp is the time (unix epoch offset) that this circuit was
/// completed. // completed.
Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
/// The incoming channel ID that carried the HTLC that created the circuit. // The incoming channel ID that carried the HTLC that created the circuit.
ChanIdIn uint64 `protobuf:"varint,2,opt,name=chan_id_in,json=chanIdIn,proto3" json:"chan_id_in,omitempty"` ChanIdIn uint64 `protobuf:"varint,2,opt,name=chan_id_in,json=chanIdIn,proto3" json:"chan_id_in,omitempty"`
/// The outgoing channel ID that carried the preimage that completed the // The outgoing channel ID that carried the preimage that completed the
/// circuit. // circuit.
ChanIdOut uint64 `protobuf:"varint,4,opt,name=chan_id_out,json=chanIdOut,proto3" json:"chan_id_out,omitempty"` ChanIdOut uint64 `protobuf:"varint,4,opt,name=chan_id_out,json=chanIdOut,proto3" json:"chan_id_out,omitempty"`
/// The total amount (in satoshis) of the incoming HTLC that created half // The total amount (in satoshis) of the incoming HTLC that created half
/// the circuit. // the circuit.
AmtIn uint64 `protobuf:"varint,5,opt,name=amt_in,json=amtIn,proto3" json:"amt_in,omitempty"` AmtIn uint64 `protobuf:"varint,5,opt,name=amt_in,json=amtIn,proto3" json:"amt_in,omitempty"`
/// The total amount (in satoshis) of the outgoing HTLC that created the // The total amount (in satoshis) of the outgoing HTLC that created the
/// second half of the circuit. // second half of the circuit.
AmtOut uint64 `protobuf:"varint,6,opt,name=amt_out,json=amtOut,proto3" json:"amt_out,omitempty"` AmtOut uint64 `protobuf:"varint,6,opt,name=amt_out,json=amtOut,proto3" json:"amt_out,omitempty"`
/// The total fee (in satoshis) that this payment circuit carried. // The total fee (in satoshis) that this payment circuit carried.
Fee uint64 `protobuf:"varint,7,opt,name=fee,proto3" json:"fee,omitempty"` Fee uint64 `protobuf:"varint,7,opt,name=fee,proto3" json:"fee,omitempty"`
/// The total fee (in milli-satoshis) that this payment circuit carried. // The total fee (in milli-satoshis) that this payment circuit carried.
FeeMsat uint64 `protobuf:"varint,8,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"` FeeMsat uint64 `protobuf:"varint,8,opt,name=fee_msat,json=feeMsat,proto3" json:"fee_msat,omitempty"`
/// The total amount (in milli-satoshis) of the incoming HTLC that created // The total amount (in milli-satoshis) of the incoming HTLC that created
/// half the circuit. // half the circuit.
AmtInMsat uint64 `protobuf:"varint,9,opt,name=amt_in_msat,json=amtInMsat,proto3" json:"amt_in_msat,omitempty"` AmtInMsat uint64 `protobuf:"varint,9,opt,name=amt_in_msat,json=amtInMsat,proto3" json:"amt_in_msat,omitempty"`
/// The total amount (in milli-satoshis) of the outgoing HTLC that created // The total amount (in milli-satoshis) of the outgoing HTLC that created
/// the second half of the circuit. // the second half of the circuit.
AmtOutMsat uint64 `protobuf:"varint,10,opt,name=amt_out_msat,json=amtOutMsat,proto3" json:"amt_out_msat,omitempty"` AmtOutMsat uint64 `protobuf:"varint,10,opt,name=amt_out_msat,json=amtOutMsat,proto3" json:"amt_out_msat,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10508,11 +10508,11 @@ func (m *ForwardingEvent) GetAmtOutMsat() uint64 {
} }
type ForwardingHistoryResponse struct { type ForwardingHistoryResponse struct {
/// A list of forwarding events from the time slice of the time series // A list of forwarding events from the time slice of the time series
/// specified in the request. // specified in the request.
ForwardingEvents []*ForwardingEvent `protobuf:"bytes,1,rep,name=forwarding_events,json=forwardingEvents,proto3" json:"forwarding_events,omitempty"` ForwardingEvents []*ForwardingEvent `protobuf:"bytes,1,rep,name=forwarding_events,json=forwardingEvents,proto3" json:"forwarding_events,omitempty"`
/// The index of the last time in the set of returned forwarding events. Can // The index of the last time in the set of returned forwarding events. Can
/// be used to seek further, pagination style. // be used to seek further, pagination style.
LastOffsetIndex uint32 `protobuf:"varint,2,opt,name=last_offset_index,json=lastOffsetIndex,proto3" json:"last_offset_index,omitempty"` LastOffsetIndex uint32 `protobuf:"varint,2,opt,name=last_offset_index,json=lastOffsetIndex,proto3" json:"last_offset_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10559,7 +10559,7 @@ func (m *ForwardingHistoryResponse) GetLastOffsetIndex() uint32 {
} }
type ExportChannelBackupRequest struct { type ExportChannelBackupRequest struct {
/// The target channel point to obtain a back up for. // The target channel point to obtain a back up for.
ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"` ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -10599,10 +10599,10 @@ func (m *ExportChannelBackupRequest) GetChanPoint() *ChannelPoint {
} }
type ChannelBackup struct { type ChannelBackup struct {
//* //
//Identifies the channel that this backup belongs to. //Identifies the channel that this backup belongs to.
ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"` ChanPoint *ChannelPoint `protobuf:"bytes,1,opt,name=chan_point,json=chanPoint,proto3" json:"chan_point,omitempty"`
//* //
//Is an encrypted single-chan backup. this can be passed to //Is an encrypted single-chan backup. this can be passed to
//RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in //RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in
//order to trigger the recovery protocol. When using REST, this field must be //order to trigger the recovery protocol. When using REST, this field must be
@ -10653,10 +10653,10 @@ func (m *ChannelBackup) GetChanBackup() []byte {
} }
type MultiChanBackup struct { type MultiChanBackup struct {
//* //
//Is the set of all channels that are included in this multi-channel backup. //Is the set of all channels that are included in this multi-channel backup.
ChanPoints []*ChannelPoint `protobuf:"bytes,1,rep,name=chan_points,json=chanPoints,proto3" json:"chan_points,omitempty"` ChanPoints []*ChannelPoint `protobuf:"bytes,1,rep,name=chan_points,json=chanPoints,proto3" json:"chan_points,omitempty"`
//* //
//A single encrypted blob containing all the static channel backups of the //A single encrypted blob containing all the static channel backups of the
//channel listed above. This can be stored as a single file or blob, and //channel listed above. This can be stored as a single file or blob, and
//safely be replaced with any prior/future versions. When using REST, this //safely be replaced with any prior/future versions. When using REST, this
@ -10738,11 +10738,11 @@ func (m *ChanBackupExportRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_ChanBackupExportRequest proto.InternalMessageInfo var xxx_messageInfo_ChanBackupExportRequest proto.InternalMessageInfo
type ChanBackupSnapshot struct { type ChanBackupSnapshot struct {
//* //
//The set of new channels that have been added since the last channel backup //The set of new channels that have been added since the last channel backup
//snapshot was requested. //snapshot was requested.
SingleChanBackups *ChannelBackups `protobuf:"bytes,1,opt,name=single_chan_backups,json=singleChanBackups,proto3" json:"single_chan_backups,omitempty"` SingleChanBackups *ChannelBackups `protobuf:"bytes,1,opt,name=single_chan_backups,json=singleChanBackups,proto3" json:"single_chan_backups,omitempty"`
//* //
//A multi-channel backup that covers all open channels currently known to //A multi-channel backup that covers all open channels currently known to
//lnd. //lnd.
MultiChanBackup *MultiChanBackup `protobuf:"bytes,2,opt,name=multi_chan_backup,json=multiChanBackup,proto3" json:"multi_chan_backup,omitempty"` MultiChanBackup *MultiChanBackup `protobuf:"bytes,2,opt,name=multi_chan_backup,json=multiChanBackup,proto3" json:"multi_chan_backup,omitempty"`
@ -10791,7 +10791,7 @@ func (m *ChanBackupSnapshot) GetMultiChanBackup() *MultiChanBackup {
} }
type ChannelBackups struct { type ChannelBackups struct {
//* //
//A set of single-chan static channel backups. //A set of single-chan static channel backups.
ChanBackups []*ChannelBackup `protobuf:"bytes,1,rep,name=chan_backups,json=chanBackups,proto3" json:"chan_backups,omitempty"` ChanBackups []*ChannelBackup `protobuf:"bytes,1,rep,name=chan_backups,json=chanBackups,proto3" json:"chan_backups,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -11005,9 +11005,9 @@ func (m *VerifyChanBackupResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_VerifyChanBackupResponse proto.InternalMessageInfo var xxx_messageInfo_VerifyChanBackupResponse proto.InternalMessageInfo
type MacaroonPermission struct { type MacaroonPermission struct {
/// The entity a permission grants access to. // The entity a permission grants access to.
Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
/// The action that is granted. // The action that is granted.
Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"` Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -11054,7 +11054,7 @@ func (m *MacaroonPermission) GetAction() string {
} }
type BakeMacaroonRequest struct { type BakeMacaroonRequest struct {
/// The list of permissions the new macaroon should grant. // The list of permissions the new macaroon should grant.
Permissions []*MacaroonPermission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"` Permissions []*MacaroonPermission `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -11094,7 +11094,7 @@ func (m *BakeMacaroonRequest) GetPermissions() []*MacaroonPermission {
} }
type BakeMacaroonResponse struct { type BakeMacaroonResponse struct {
/// The hex encoded macaroon, serialized in binary format. // The hex encoded macaroon, serialized in binary format.
Macaroon string `protobuf:"bytes,1,opt,name=macaroon,proto3" json:"macaroon,omitempty"` Macaroon string `protobuf:"bytes,1,opt,name=macaroon,proto3" json:"macaroon,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -11134,23 +11134,23 @@ func (m *BakeMacaroonResponse) GetMacaroon() string {
} }
type Failure struct { type Failure struct {
/// Failure code as defined in the Lightning spec // Failure code as defined in the Lightning spec
Code Failure_FailureCode `protobuf:"varint,1,opt,name=code,proto3,enum=lnrpc.Failure_FailureCode" json:"code,omitempty"` Code Failure_FailureCode `protobuf:"varint,1,opt,name=code,proto3,enum=lnrpc.Failure_FailureCode" json:"code,omitempty"`
/// An optional channel update message. // An optional channel update message.
ChannelUpdate *ChannelUpdate `protobuf:"bytes,3,opt,name=channel_update,json=channelUpdate,proto3" json:"channel_update,omitempty"` ChannelUpdate *ChannelUpdate `protobuf:"bytes,3,opt,name=channel_update,json=channelUpdate,proto3" json:"channel_update,omitempty"`
/// A failure type-dependent htlc value. // A failure type-dependent htlc value.
HtlcMsat uint64 `protobuf:"varint,4,opt,name=htlc_msat,json=htlcMsat,proto3" json:"htlc_msat,omitempty"` HtlcMsat uint64 `protobuf:"varint,4,opt,name=htlc_msat,json=htlcMsat,proto3" json:"htlc_msat,omitempty"`
/// The sha256 sum of the onion payload. // The sha256 sum of the onion payload.
OnionSha_256 []byte `protobuf:"bytes,5,opt,name=onion_sha_256,json=onionSha256,proto3" json:"onion_sha_256,omitempty"` OnionSha_256 []byte `protobuf:"bytes,5,opt,name=onion_sha_256,json=onionSha256,proto3" json:"onion_sha_256,omitempty"`
/// A failure type-dependent cltv expiry value. // A failure type-dependent cltv expiry value.
CltvExpiry uint32 `protobuf:"varint,6,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"` CltvExpiry uint32 `protobuf:"varint,6,opt,name=cltv_expiry,json=cltvExpiry,proto3" json:"cltv_expiry,omitempty"`
/// A failure type-dependent flags value. // A failure type-dependent flags value.
Flags uint32 `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"` Flags uint32 `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"`
//* //
//The position in the path of the intermediate or final node that generated //The position in the path of the intermediate or final node that generated
//the failure message. Position zero is the sender node. //the failure message. Position zero is the sender node.
FailureSourceIndex uint32 `protobuf:"varint,8,opt,name=failure_source_index,json=failureSourceIndex,proto3" json:"failure_source_index,omitempty"` FailureSourceIndex uint32 `protobuf:"varint,8,opt,name=failure_source_index,json=failureSourceIndex,proto3" json:"failure_source_index,omitempty"`
/// A failure type-dependent block height. // A failure type-dependent block height.
Height uint32 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"` Height uint32 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -11239,57 +11239,57 @@ func (m *Failure) GetHeight() uint32 {
} }
type ChannelUpdate struct { type ChannelUpdate struct {
//* //
//The signature that validates the announced data and proves the ownership //The signature that validates the announced data and proves the ownership
//of node id. //of node id.
Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
//* //
//The target chain that this channel was opened within. This value //The target chain that this channel was opened within. This value
//should be the genesis hash of the target chain. Along with the short //should be the genesis hash of the target chain. Along with the short
//channel ID, this uniquely identifies the channel globally in a //channel ID, this uniquely identifies the channel globally in a
//blockchain. //blockchain.
ChainHash []byte `protobuf:"bytes,2,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"` ChainHash []byte `protobuf:"bytes,2,opt,name=chain_hash,json=chainHash,proto3" json:"chain_hash,omitempty"`
//* //
//The unique description of the funding transaction. //The unique description of the funding transaction.
ChanId uint64 `protobuf:"varint,3,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"` ChanId uint64 `protobuf:"varint,3,opt,name=chan_id,json=chanId,proto3" json:"chan_id,omitempty"`
//* //
//A timestamp that allows ordering in the case of multiple announcements. //A timestamp that allows ordering in the case of multiple announcements.
//We should ignore the message if timestamp is not greater than the //We should ignore the message if timestamp is not greater than the
//last-received. //last-received.
Timestamp uint32 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Timestamp uint32 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
//* //
//The bitfield that describes whether optional fields are present in this //The bitfield that describes whether optional fields are present in this
//update. Currently, the least-significant bit must be set to 1 if the //update. Currently, the least-significant bit must be set to 1 if the
//optional field MaxHtlc is present. //optional field MaxHtlc is present.
MessageFlags uint32 `protobuf:"varint,10,opt,name=message_flags,json=messageFlags,proto3" json:"message_flags,omitempty"` MessageFlags uint32 `protobuf:"varint,10,opt,name=message_flags,json=messageFlags,proto3" json:"message_flags,omitempty"`
//* //
//The bitfield that describes additional meta-data concerning how the //The bitfield that describes additional meta-data concerning how the
//update is to be interpreted. Currently, the least-significant bit must be //update is to be interpreted. Currently, the least-significant bit must be
//set to 0 if the creating node corresponds to the first node in the //set to 0 if the creating node corresponds to the first node in the
//previously sent channel announcement and 1 otherwise. If the second bit //previously sent channel announcement and 1 otherwise. If the second bit
//is set, then the channel is set to be disabled. //is set, then the channel is set to be disabled.
ChannelFlags uint32 `protobuf:"varint,5,opt,name=channel_flags,json=channelFlags,proto3" json:"channel_flags,omitempty"` ChannelFlags uint32 `protobuf:"varint,5,opt,name=channel_flags,json=channelFlags,proto3" json:"channel_flags,omitempty"`
//* //
//The minimum number of blocks this node requires to be added to the expiry //The minimum number of blocks this node requires to be added to the expiry
//of HTLCs. This is a security parameter determined by the node operator. //of HTLCs. This is a security parameter determined by the node operator.
//This value represents the required gap between the time locks of the //This value represents the required gap between the time locks of the
//incoming and outgoing HTLC's set to this node. //incoming and outgoing HTLC's set to this node.
TimeLockDelta uint32 `protobuf:"varint,6,opt,name=time_lock_delta,json=timeLockDelta,proto3" json:"time_lock_delta,omitempty"` TimeLockDelta uint32 `protobuf:"varint,6,opt,name=time_lock_delta,json=timeLockDelta,proto3" json:"time_lock_delta,omitempty"`
//* //
//The minimum HTLC value which will be accepted. //The minimum HTLC value which will be accepted.
HtlcMinimumMsat uint64 `protobuf:"varint,7,opt,name=htlc_minimum_msat,json=htlcMinimumMsat,proto3" json:"htlc_minimum_msat,omitempty"` HtlcMinimumMsat uint64 `protobuf:"varint,7,opt,name=htlc_minimum_msat,json=htlcMinimumMsat,proto3" json:"htlc_minimum_msat,omitempty"`
//* //
//The base fee that must be used for incoming HTLC's to this particular //The base fee that must be used for incoming HTLC's to this particular
//channel. This value will be tacked onto the required for a payment //channel. This value will be tacked onto the required for a payment
//independent of the size of the payment. //independent of the size of the payment.
BaseFee uint32 `protobuf:"varint,8,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"` BaseFee uint32 `protobuf:"varint,8,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"`
//* //
//The fee rate that will be charged per millionth of a satoshi. //The fee rate that will be charged per millionth of a satoshi.
FeeRate uint32 `protobuf:"varint,9,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"` FeeRate uint32 `protobuf:"varint,9,opt,name=fee_rate,json=feeRate,proto3" json:"fee_rate,omitempty"`
//* //
//The maximum HTLC value which will be accepted. //The maximum HTLC value which will be accepted.
HtlcMaximumMsat uint64 `protobuf:"varint,11,opt,name=htlc_maximum_msat,json=htlcMaximumMsat,proto3" json:"htlc_maximum_msat,omitempty"` HtlcMaximumMsat uint64 `protobuf:"varint,11,opt,name=htlc_maximum_msat,json=htlcMaximumMsat,proto3" json:"htlc_maximum_msat,omitempty"`
//* //
//The set of data that was appended to this message, some of which we may //The set of data that was appended to this message, some of which we may
//not actually know how to iterate or parse. By holding onto this data, we //not actually know how to iterate or parse. By holding onto this data, we
//ensure that we're able to properly validate the set of signatures that //ensure that we're able to properly validate the set of signatures that
@ -12344,109 +12344,109 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type LightningClient interface { type LightningClient interface {
//* lncli: `walletbalance` // lncli: `walletbalance`
//WalletBalance returns total unspent outputs(confirmed and unconfirmed), all //WalletBalance returns total unspent outputs(confirmed and unconfirmed), all
//confirmed unspent outputs and all unconfirmed unspent outputs under control //confirmed unspent outputs and all unconfirmed unspent outputs under control
//of the wallet. //of the wallet.
WalletBalance(ctx context.Context, in *WalletBalanceRequest, opts ...grpc.CallOption) (*WalletBalanceResponse, error) WalletBalance(ctx context.Context, in *WalletBalanceRequest, opts ...grpc.CallOption) (*WalletBalanceResponse, error)
//* lncli: `channelbalance` // lncli: `channelbalance`
//ChannelBalance returns the total funds available across all open channels //ChannelBalance returns the total funds available across all open channels
//in satoshis. //in satoshis.
ChannelBalance(ctx context.Context, in *ChannelBalanceRequest, opts ...grpc.CallOption) (*ChannelBalanceResponse, error) ChannelBalance(ctx context.Context, in *ChannelBalanceRequest, opts ...grpc.CallOption) (*ChannelBalanceResponse, error)
//* lncli: `listchaintxns` // lncli: `listchaintxns`
//GetTransactions returns a list describing all the known transactions //GetTransactions returns a list describing all the known transactions
//relevant to the wallet. //relevant to the wallet.
GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*TransactionDetails, error) GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*TransactionDetails, error)
//* lncli: `estimatefee` // lncli: `estimatefee`
//EstimateFee asks the chain backend to estimate the fee rate and total fees //EstimateFee asks the chain backend to estimate the fee rate and total fees
//for a transaction that pays to multiple specified outputs. //for a transaction that pays to multiple specified outputs.
EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error) EstimateFee(ctx context.Context, in *EstimateFeeRequest, opts ...grpc.CallOption) (*EstimateFeeResponse, error)
//* lncli: `sendcoins` // lncli: `sendcoins`
//SendCoins executes a request to send coins to a particular address. Unlike //SendCoins executes a request to send coins to a particular address. Unlike
//SendMany, this RPC call only allows creating a single output at a time. If //SendMany, this RPC call only allows creating a single output at a time. If
//neither target_conf, or sat_per_byte are set, then the internal wallet will //neither target_conf, or sat_per_byte are set, then the internal wallet will
//consult its fee model to determine a fee for the default confirmation //consult its fee model to determine a fee for the default confirmation
//target. //target.
SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error) SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error)
//* lncli: `listunspent` // lncli: `listunspent`
//ListUnspent returns a list of all utxos spendable by the wallet with a //ListUnspent returns a list of all utxos spendable by the wallet with a
//number of confirmations between the specified minimum and maximum. //number of confirmations between the specified minimum and maximum.
ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error) ListUnspent(ctx context.Context, in *ListUnspentRequest, opts ...grpc.CallOption) (*ListUnspentResponse, error)
//* //
//SubscribeTransactions creates a uni-directional stream from the server to //SubscribeTransactions creates a uni-directional stream from the server to
//the client in which any newly discovered transactions relevant to the //the client in which any newly discovered transactions relevant to the
//wallet are sent over. //wallet are sent over.
SubscribeTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (Lightning_SubscribeTransactionsClient, error) SubscribeTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (Lightning_SubscribeTransactionsClient, error)
//* lncli: `sendmany` // lncli: `sendmany`
//SendMany handles a request for a transaction that creates multiple specified //SendMany handles a request for a transaction that creates multiple specified
//outputs in parallel. If neither target_conf, or sat_per_byte are set, then //outputs in parallel. If neither target_conf, or sat_per_byte are set, then
//the internal wallet will consult its fee model to determine a fee for the //the internal wallet will consult its fee model to determine a fee for the
//default confirmation target. //default confirmation target.
SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error) SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error)
//* lncli: `newaddress` // lncli: `newaddress`
//NewAddress creates a new address under control of the local wallet. //NewAddress creates a new address under control of the local wallet.
NewAddress(ctx context.Context, in *NewAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error) NewAddress(ctx context.Context, in *NewAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error)
//* lncli: `signmessage` // lncli: `signmessage`
//SignMessage signs a message with this node's private key. The returned //SignMessage signs a message with this node's private key. The returned
//signature string is `zbase32` encoded and pubkey recoverable, meaning that //signature string is `zbase32` encoded and pubkey recoverable, meaning that
//only the message digest and signature are needed for verification. //only the message digest and signature are needed for verification.
SignMessage(ctx context.Context, in *SignMessageRequest, opts ...grpc.CallOption) (*SignMessageResponse, error) SignMessage(ctx context.Context, in *SignMessageRequest, opts ...grpc.CallOption) (*SignMessageResponse, error)
//* lncli: `verifymessage` // lncli: `verifymessage`
//VerifyMessage verifies a signature over a msg. The signature must be //VerifyMessage verifies a signature over a msg. The signature must be
//zbase32 encoded and signed by an active node in the resident node's //zbase32 encoded and signed by an active node in the resident node's
//channel database. In addition to returning the validity of the signature, //channel database. In addition to returning the validity of the signature,
//VerifyMessage also returns the recovered pubkey from the signature. //VerifyMessage also returns the recovered pubkey from the signature.
VerifyMessage(ctx context.Context, in *VerifyMessageRequest, opts ...grpc.CallOption) (*VerifyMessageResponse, error) VerifyMessage(ctx context.Context, in *VerifyMessageRequest, opts ...grpc.CallOption) (*VerifyMessageResponse, error)
//* lncli: `connect` // lncli: `connect`
//ConnectPeer attempts to establish a connection to a remote peer. This is at //ConnectPeer attempts to establish a connection to a remote peer. This is at
//the networking level, and is used for communication between nodes. This is //the networking level, and is used for communication between nodes. This is
//distinct from establishing a channel with a peer. //distinct from establishing a channel with a peer.
ConnectPeer(ctx context.Context, in *ConnectPeerRequest, opts ...grpc.CallOption) (*ConnectPeerResponse, error) ConnectPeer(ctx context.Context, in *ConnectPeerRequest, opts ...grpc.CallOption) (*ConnectPeerResponse, error)
//* lncli: `disconnect` // lncli: `disconnect`
//DisconnectPeer attempts to disconnect one peer from another identified by a //DisconnectPeer attempts to disconnect one peer from another identified by a
//given pubKey. In the case that we currently have a pending or active channel //given pubKey. In the case that we currently have a pending or active channel
//with the target peer, then this action will be not be allowed. //with the target peer, then this action will be not be allowed.
DisconnectPeer(ctx context.Context, in *DisconnectPeerRequest, opts ...grpc.CallOption) (*DisconnectPeerResponse, error) DisconnectPeer(ctx context.Context, in *DisconnectPeerRequest, opts ...grpc.CallOption) (*DisconnectPeerResponse, error)
//* lncli: `listpeers` // lncli: `listpeers`
//ListPeers returns a verbose listing of all currently active peers. //ListPeers returns a verbose listing of all currently active peers.
ListPeers(ctx context.Context, in *ListPeersRequest, opts ...grpc.CallOption) (*ListPeersResponse, error) ListPeers(ctx context.Context, in *ListPeersRequest, opts ...grpc.CallOption) (*ListPeersResponse, error)
//* //
//SubscribePeerEvents creates a uni-directional stream from the server to //SubscribePeerEvents creates a uni-directional stream from the server to
//the client in which any events relevant to the state of peers are sent //the client in which any events relevant to the state of peers are sent
//over. Events include peers going online and offline. //over. Events include peers going online and offline.
SubscribePeerEvents(ctx context.Context, in *PeerEventSubscription, opts ...grpc.CallOption) (Lightning_SubscribePeerEventsClient, error) SubscribePeerEvents(ctx context.Context, in *PeerEventSubscription, opts ...grpc.CallOption) (Lightning_SubscribePeerEventsClient, error)
//* lncli: `getinfo` // lncli: `getinfo`
//GetInfo returns general information concerning the lightning node including //GetInfo returns general information concerning the lightning node including
//it's identity pubkey, alias, the chains it is connected to, and information //it's identity pubkey, alias, the chains it is connected to, and information
//concerning the number of open+pending channels. //concerning the number of open+pending channels.
GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error)
//* lncli: `pendingchannels` // lncli: `pendingchannels`
//PendingChannels returns a list of all the channels that are currently //PendingChannels returns a list of all the channels that are currently
//considered "pending". A channel is pending if it has finished the funding //considered "pending". A channel is pending if it has finished the funding
//workflow and is waiting for confirmations for the funding txn, or is in the //workflow and is waiting for confirmations for the funding txn, or is in the
//process of closure, either initiated cooperatively or non-cooperatively. //process of closure, either initiated cooperatively or non-cooperatively.
PendingChannels(ctx context.Context, in *PendingChannelsRequest, opts ...grpc.CallOption) (*PendingChannelsResponse, error) PendingChannels(ctx context.Context, in *PendingChannelsRequest, opts ...grpc.CallOption) (*PendingChannelsResponse, error)
//* lncli: `listchannels` // lncli: `listchannels`
//ListChannels returns a description of all the open channels that this node //ListChannels returns a description of all the open channels that this node
//is a participant in. //is a participant in.
ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error) ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error)
//* //
//SubscribeChannelEvents creates a uni-directional stream from the server to //SubscribeChannelEvents creates a uni-directional stream from the server to
//the client in which any updates relevant to the state of the channels are //the client in which any updates relevant to the state of the channels are
//sent over. Events include new active channels, inactive channels, and closed //sent over. Events include new active channels, inactive channels, and closed
//channels. //channels.
SubscribeChannelEvents(ctx context.Context, in *ChannelEventSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelEventsClient, error) SubscribeChannelEvents(ctx context.Context, in *ChannelEventSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelEventsClient, error)
//* lncli: `closedchannels` // lncli: `closedchannels`
//ClosedChannels returns a description of all the closed channels that //ClosedChannels returns a description of all the closed channels that
//this node was a participant in. //this node was a participant in.
ClosedChannels(ctx context.Context, in *ClosedChannelsRequest, opts ...grpc.CallOption) (*ClosedChannelsResponse, error) ClosedChannels(ctx context.Context, in *ClosedChannelsRequest, opts ...grpc.CallOption) (*ClosedChannelsResponse, error)
//* //
//OpenChannelSync is a synchronous version of the OpenChannel RPC call. This //OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
//call is meant to be consumed by clients to the REST proxy. As with all //call is meant to be consumed by clients to the REST proxy. As with all
//other sync calls, all byte slices are intended to be populated as hex //other sync calls, all byte slices are intended to be populated as hex
//encoded strings. //encoded strings.
OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, error) OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, error)
//* lncli: `openchannel` // lncli: `openchannel`
//OpenChannel attempts to open a singly funded channel specified in the //OpenChannel attempts to open a singly funded channel specified in the
//request to a remote peer. Users are able to specify a target number of //request to a remote peer. Users are able to specify a target number of
//blocks that the funding transaction should be confirmed in, or a manual fee //blocks that the funding transaction should be confirmed in, or a manual fee
@ -12456,7 +12456,7 @@ type LightningClient interface {
//arguments specified in the OpenChannelRequest, this pending channel ID can //arguments specified in the OpenChannelRequest, this pending channel ID can
//then be used to manually progress the channel funding flow. //then be used to manually progress the channel funding flow.
OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (Lightning_OpenChannelClient, error) OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (Lightning_OpenChannelClient, error)
//* //
//FundingStateStep is an advanced funding related call that allows the caller //FundingStateStep is an advanced funding related call that allows the caller
//to either execute some preparatory steps for a funding workflow, or //to either execute some preparatory steps for a funding workflow, or
//manually progress a funding workflow. The primary way a funding flow is //manually progress a funding workflow. The primary way a funding flow is
@ -12466,14 +12466,14 @@ type LightningClient interface {
//Alternatively, this can be used to interactively drive PSBT signing for //Alternatively, this can be used to interactively drive PSBT signing for
//funding for partially complete funding transactions. //funding for partially complete funding transactions.
FundingStateStep(ctx context.Context, in *FundingTransitionMsg, opts ...grpc.CallOption) (*FundingStateStepResp, error) FundingStateStep(ctx context.Context, in *FundingTransitionMsg, opts ...grpc.CallOption) (*FundingStateStepResp, error)
//* //
//ChannelAcceptor dispatches a bi-directional streaming RPC in which //ChannelAcceptor dispatches a bi-directional streaming RPC in which
//OpenChannel requests are sent to the client and the client responds with //OpenChannel requests are sent to the client and the client responds with
//a boolean that tells LND whether or not to accept the channel. This allows //a boolean that tells LND whether or not to accept the channel. This allows
//node operators to specify their own criteria for accepting inbound channels //node operators to specify their own criteria for accepting inbound channels
//through a single persistent connection. //through a single persistent connection.
ChannelAcceptor(ctx context.Context, opts ...grpc.CallOption) (Lightning_ChannelAcceptorClient, error) ChannelAcceptor(ctx context.Context, opts ...grpc.CallOption) (Lightning_ChannelAcceptorClient, error)
//* lncli: `closechannel` // lncli: `closechannel`
//CloseChannel attempts to close an active channel identified by its channel //CloseChannel attempts to close an active channel identified by its channel
//outpoint (ChannelPoint). The actions of this method can additionally be //outpoint (ChannelPoint). The actions of this method can additionally be
//augmented to attempt a force close after a timeout period in the case of an //augmented to attempt a force close after a timeout period in the case of an
@ -12482,41 +12482,41 @@ type LightningClient interface {
//closure transaction is confirmed, or a manual fee rate. If neither are //closure transaction is confirmed, or a manual fee rate. If neither are
//specified, then a default lax, block confirmation target is used. //specified, then a default lax, block confirmation target is used.
CloseChannel(ctx context.Context, in *CloseChannelRequest, opts ...grpc.CallOption) (Lightning_CloseChannelClient, error) CloseChannel(ctx context.Context, in *CloseChannelRequest, opts ...grpc.CallOption) (Lightning_CloseChannelClient, error)
//* lncli: `abandonchannel` // lncli: `abandonchannel`
//AbandonChannel removes all channel state from the database except for a //AbandonChannel removes all channel state from the database except for a
//close summary. This method can be used to get rid of permanently unusable //close summary. This method can be used to get rid of permanently unusable
//channels due to bugs fixed in newer versions of lnd. Only available //channels due to bugs fixed in newer versions of lnd. Only available
//when in debug builds of lnd. //when in debug builds of lnd.
AbandonChannel(ctx context.Context, in *AbandonChannelRequest, opts ...grpc.CallOption) (*AbandonChannelResponse, error) AbandonChannel(ctx context.Context, in *AbandonChannelRequest, opts ...grpc.CallOption) (*AbandonChannelResponse, error)
//* lncli: `sendpayment` // lncli: `sendpayment`
//Deprecated, use routerrpc.SendPayment. SendPayment dispatches a //Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
//bi-directional streaming RPC for sending payments through the Lightning //bi-directional streaming RPC for sending payments through the Lightning
//Network. A single RPC invocation creates a persistent bi-directional //Network. A single RPC invocation creates a persistent bi-directional
//stream allowing clients to rapidly send payments through the Lightning //stream allowing clients to rapidly send payments through the Lightning
//Network with a single persistent connection. //Network with a single persistent connection.
SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error)
//* //
//SendPaymentSync is the synchronous non-streaming version of SendPayment. //SendPaymentSync is the synchronous non-streaming version of SendPayment.
//This RPC is intended to be consumed by clients of the REST proxy. //This RPC is intended to be consumed by clients of the REST proxy.
//Additionally, this RPC expects the destination's public key and the payment //Additionally, this RPC expects the destination's public key and the payment
//hash (if any) to be encoded as hex strings. //hash (if any) to be encoded as hex strings.
SendPaymentSync(ctx context.Context, in *SendRequest, opts ...grpc.CallOption) (*SendResponse, error) SendPaymentSync(ctx context.Context, in *SendRequest, opts ...grpc.CallOption) (*SendResponse, error)
//* lncli: `sendtoroute` // lncli: `sendtoroute`
//SendToRoute is a bi-directional streaming RPC for sending payment through //SendToRoute is a bi-directional streaming RPC for sending payment through
//the Lightning Network. This method differs from SendPayment in that it //the Lightning Network. This method differs from SendPayment in that it
//allows users to specify a full route manually. This can be used for things //allows users to specify a full route manually. This can be used for things
//like rebalancing, and atomic swaps. //like rebalancing, and atomic swaps.
SendToRoute(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendToRouteClient, error) SendToRoute(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendToRouteClient, error)
//* //
//SendToRouteSync is a synchronous version of SendToRoute. It Will block //SendToRouteSync is a synchronous version of SendToRoute. It Will block
//until the payment either fails or succeeds. //until the payment either fails or succeeds.
SendToRouteSync(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendResponse, error) SendToRouteSync(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendResponse, error)
//* lncli: `addinvoice` // lncli: `addinvoice`
//AddInvoice attempts to add a new invoice to the invoice database. Any //AddInvoice attempts to add a new invoice to the invoice database. Any
//duplicated invoices are rejected, therefore all invoices *must* have a //duplicated invoices are rejected, therefore all invoices *must* have a
//unique payment preimage. //unique payment preimage.
AddInvoice(ctx context.Context, in *Invoice, opts ...grpc.CallOption) (*AddInvoiceResponse, error) AddInvoice(ctx context.Context, in *Invoice, opts ...grpc.CallOption) (*AddInvoiceResponse, error)
//* lncli: `listinvoices` // lncli: `listinvoices`
//ListInvoices returns a list of all the invoices currently stored within the //ListInvoices returns a list of all the invoices currently stored within the
//database. Any active debug invoices are ignored. It has full support for //database. Any active debug invoices are ignored. It has full support for
//paginated responses, allowing users to query for specific invoices through //paginated responses, allowing users to query for specific invoices through
@ -12525,12 +12525,12 @@ type LightningClient interface {
//next request. By default, the first 100 invoices created will be returned. //next request. By default, the first 100 invoices created will be returned.
//Backwards pagination is also supported through the Reversed flag. //Backwards pagination is also supported through the Reversed flag.
ListInvoices(ctx context.Context, in *ListInvoiceRequest, opts ...grpc.CallOption) (*ListInvoiceResponse, error) ListInvoices(ctx context.Context, in *ListInvoiceRequest, opts ...grpc.CallOption) (*ListInvoiceResponse, error)
//* lncli: `lookupinvoice` // lncli: `lookupinvoice`
//LookupInvoice attempts to look up an invoice according to its payment hash. //LookupInvoice attempts to look up an invoice according to its payment hash.
//The passed payment hash *must* be exactly 32 bytes, if not, an error is //The passed payment hash *must* be exactly 32 bytes, if not, an error is
//returned. //returned.
LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error) LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error)
//* //
//SubscribeInvoices returns a uni-directional stream (server -> client) for //SubscribeInvoices returns a uni-directional stream (server -> client) for
//notifying the client of newly added/settled invoices. The caller can //notifying the client of newly added/settled invoices. The caller can
//optionally specify the add_index and/or the settle_index. If the add_index //optionally specify the add_index and/or the settle_index. If the add_index
@ -12541,18 +12541,18 @@ type LightningClient interface {
//of these fields can be set. If no fields are set, then we'll only send out //of these fields can be set. If no fields are set, then we'll only send out
//the latest add/settle events. //the latest add/settle events.
SubscribeInvoices(ctx context.Context, in *InvoiceSubscription, opts ...grpc.CallOption) (Lightning_SubscribeInvoicesClient, error) SubscribeInvoices(ctx context.Context, in *InvoiceSubscription, opts ...grpc.CallOption) (Lightning_SubscribeInvoicesClient, error)
//* lncli: `decodepayreq` // lncli: `decodepayreq`
//DecodePayReq takes an encoded payment request string and attempts to decode //DecodePayReq takes an encoded payment request string and attempts to decode
//it, returning a full description of the conditions encoded within the //it, returning a full description of the conditions encoded within the
//payment request. //payment request.
DecodePayReq(ctx context.Context, in *PayReqString, opts ...grpc.CallOption) (*PayReq, error) DecodePayReq(ctx context.Context, in *PayReqString, opts ...grpc.CallOption) (*PayReq, error)
//* lncli: `listpayments` // lncli: `listpayments`
//ListPayments returns a list of all outgoing payments. //ListPayments returns a list of all outgoing payments.
ListPayments(ctx context.Context, in *ListPaymentsRequest, opts ...grpc.CallOption) (*ListPaymentsResponse, error) ListPayments(ctx context.Context, in *ListPaymentsRequest, opts ...grpc.CallOption) (*ListPaymentsResponse, error)
//* //
//DeleteAllPayments deletes all outgoing payments from DB. //DeleteAllPayments deletes all outgoing payments from DB.
DeleteAllPayments(ctx context.Context, in *DeleteAllPaymentsRequest, opts ...grpc.CallOption) (*DeleteAllPaymentsResponse, error) DeleteAllPayments(ctx context.Context, in *DeleteAllPaymentsRequest, opts ...grpc.CallOption) (*DeleteAllPaymentsResponse, error)
//* lncli: `describegraph` // lncli: `describegraph`
//DescribeGraph returns a description of the latest graph state from the //DescribeGraph returns a description of the latest graph state from the
//point of view of the node. The graph information is partitioned into two //point of view of the node. The graph information is partitioned into two
//components: all the nodes/vertexes, and all the edges that connect the //components: all the nodes/vertexes, and all the edges that connect the
@ -12560,36 +12560,36 @@ type LightningClient interface {
//the node directional specific routing policy which includes: the time lock //the node directional specific routing policy which includes: the time lock
//delta, fee information, etc. //delta, fee information, etc.
DescribeGraph(ctx context.Context, in *ChannelGraphRequest, opts ...grpc.CallOption) (*ChannelGraph, error) DescribeGraph(ctx context.Context, in *ChannelGraphRequest, opts ...grpc.CallOption) (*ChannelGraph, error)
//* lncli: `getnodemetrics` // lncli: `getnodemetrics`
//GetNodeMetrics returns node metrics calculated from the graph. Currently //GetNodeMetrics returns node metrics calculated from the graph. Currently
//the only supported metric is betweenness centrality of individual nodes. //the only supported metric is betweenness centrality of individual nodes.
GetNodeMetrics(ctx context.Context, in *NodeMetricsRequest, opts ...grpc.CallOption) (*NodeMetricsResponse, error) GetNodeMetrics(ctx context.Context, in *NodeMetricsRequest, opts ...grpc.CallOption) (*NodeMetricsResponse, error)
//* lncli: `getchaninfo` // lncli: `getchaninfo`
//GetChanInfo returns the latest authenticated network announcement for the //GetChanInfo returns the latest authenticated network announcement for the
//given channel identified by its channel ID: an 8-byte integer which //given channel identified by its channel ID: an 8-byte integer which
//uniquely identifies the location of transaction's funding output within the //uniquely identifies the location of transaction's funding output within the
//blockchain. //blockchain.
GetChanInfo(ctx context.Context, in *ChanInfoRequest, opts ...grpc.CallOption) (*ChannelEdge, error) GetChanInfo(ctx context.Context, in *ChanInfoRequest, opts ...grpc.CallOption) (*ChannelEdge, error)
//* lncli: `getnodeinfo` // lncli: `getnodeinfo`
//GetNodeInfo returns the latest advertised, aggregated, and authenticated //GetNodeInfo returns the latest advertised, aggregated, and authenticated
//channel information for the specified node identified by its public key. //channel information for the specified node identified by its public key.
GetNodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfo, error) GetNodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfo, error)
//* lncli: `queryroutes` // lncli: `queryroutes`
//QueryRoutes attempts to query the daemon's Channel Router for a possible //QueryRoutes attempts to query the daemon's Channel Router for a possible
//route to a target destination capable of carrying a specific amount of //route to a target destination capable of carrying a specific amount of
//satoshis. The returned route contains the full details required to craft and //satoshis. The returned route contains the full details required to craft and
//send an HTLC, also including the necessary information that should be //send an HTLC, also including the necessary information that should be
//present within the Sphinx packet encapsulated within the HTLC. //present within the Sphinx packet encapsulated within the HTLC.
QueryRoutes(ctx context.Context, in *QueryRoutesRequest, opts ...grpc.CallOption) (*QueryRoutesResponse, error) QueryRoutes(ctx context.Context, in *QueryRoutesRequest, opts ...grpc.CallOption) (*QueryRoutesResponse, error)
//* lncli: `getnetworkinfo` // lncli: `getnetworkinfo`
//GetNetworkInfo returns some basic stats about the known channel graph from //GetNetworkInfo returns some basic stats about the known channel graph from
//the point of view of the node. //the point of view of the node.
GetNetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfo, error) GetNetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfo, error)
//* lncli: `stop` // lncli: `stop`
//StopDaemon will send a shutdown request to the interrupt handler, triggering //StopDaemon will send a shutdown request to the interrupt handler, triggering
//a graceful shutdown of the daemon. //a graceful shutdown of the daemon.
StopDaemon(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopResponse, error) StopDaemon(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopResponse, error)
//* //
//SubscribeChannelGraph launches a streaming RPC that allows the caller to //SubscribeChannelGraph launches a streaming RPC that allows the caller to
//receive notifications upon any changes to the channel graph topology from //receive notifications upon any changes to the channel graph topology from
//the point of view of the responding node. Events notified include: new //the point of view of the responding node. Events notified include: new
@ -12597,21 +12597,21 @@ type LightningClient interface {
//channels being advertised, updates in the routing policy for a directional //channels being advertised, updates in the routing policy for a directional
//channel edge, and when channels are closed on-chain. //channel edge, and when channels are closed on-chain.
SubscribeChannelGraph(ctx context.Context, in *GraphTopologySubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelGraphClient, error) SubscribeChannelGraph(ctx context.Context, in *GraphTopologySubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelGraphClient, error)
//* lncli: `debuglevel` // lncli: `debuglevel`
//DebugLevel allows a caller to programmatically set the logging verbosity of //DebugLevel allows a caller to programmatically set the logging verbosity of
//lnd. The logging can be targeted according to a coarse daemon-wide logging //lnd. The logging can be targeted according to a coarse daemon-wide logging
//level, or in a granular fashion to specify the logging for a target //level, or in a granular fashion to specify the logging for a target
//sub-system. //sub-system.
DebugLevel(ctx context.Context, in *DebugLevelRequest, opts ...grpc.CallOption) (*DebugLevelResponse, error) DebugLevel(ctx context.Context, in *DebugLevelRequest, opts ...grpc.CallOption) (*DebugLevelResponse, error)
//* lncli: `feereport` // lncli: `feereport`
//FeeReport allows the caller to obtain a report detailing the current fee //FeeReport allows the caller to obtain a report detailing the current fee
//schedule enforced by the node globally for each channel. //schedule enforced by the node globally for each channel.
FeeReport(ctx context.Context, in *FeeReportRequest, opts ...grpc.CallOption) (*FeeReportResponse, error) FeeReport(ctx context.Context, in *FeeReportRequest, opts ...grpc.CallOption) (*FeeReportResponse, error)
//* lncli: `updatechanpolicy` // lncli: `updatechanpolicy`
//UpdateChannelPolicy allows the caller to update the fee schedule and //UpdateChannelPolicy allows the caller to update the fee schedule and
//channel policies for all channels globally, or a particular channel. //channel policies for all channels globally, or a particular channel.
UpdateChannelPolicy(ctx context.Context, in *PolicyUpdateRequest, opts ...grpc.CallOption) (*PolicyUpdateResponse, error) UpdateChannelPolicy(ctx context.Context, in *PolicyUpdateRequest, opts ...grpc.CallOption) (*PolicyUpdateResponse, error)
//* lncli: `fwdinghistory` // lncli: `fwdinghistory`
//ForwardingHistory allows the caller to query the htlcswitch for a record of //ForwardingHistory allows the caller to query the htlcswitch for a record of
//all HTLCs forwarded within the target time range, and integer offset //all HTLCs forwarded within the target time range, and integer offset
//within that time range. If no time-range is specified, then the first chunk //within that time range. If no time-range is specified, then the first chunk
@ -12623,7 +12623,7 @@ type LightningClient interface {
//the index offset of the last entry. The index offset can be provided to the //the index offset of the last entry. The index offset can be provided to the
//request to allow the caller to skip a series of records. //request to allow the caller to skip a series of records.
ForwardingHistory(ctx context.Context, in *ForwardingHistoryRequest, opts ...grpc.CallOption) (*ForwardingHistoryResponse, error) ForwardingHistory(ctx context.Context, in *ForwardingHistoryRequest, opts ...grpc.CallOption) (*ForwardingHistoryResponse, error)
//* lncli: `exportchanbackup` // lncli: `exportchanbackup`
//ExportChannelBackup attempts to return an encrypted static channel backup //ExportChannelBackup attempts to return an encrypted static channel backup
//for the target channel identified by it channel point. The backup is //for the target channel identified by it channel point. The backup is
//encrypted with a key generated from the aezeed seed of the user. The //encrypted with a key generated from the aezeed seed of the user. The
@ -12631,25 +12631,25 @@ type LightningClient interface {
//method once lnd is running, or via the InitWallet and UnlockWallet methods //method once lnd is running, or via the InitWallet and UnlockWallet methods
//from the WalletUnlocker service. //from the WalletUnlocker service.
ExportChannelBackup(ctx context.Context, in *ExportChannelBackupRequest, opts ...grpc.CallOption) (*ChannelBackup, error) ExportChannelBackup(ctx context.Context, in *ExportChannelBackupRequest, opts ...grpc.CallOption) (*ChannelBackup, error)
//* //
//ExportAllChannelBackups returns static channel backups for all existing //ExportAllChannelBackups returns static channel backups for all existing
//channels known to lnd. A set of regular singular static channel backups for //channels known to lnd. A set of regular singular static channel backups for
//each channel are returned. Additionally, a multi-channel backup is returned //each channel are returned. Additionally, a multi-channel backup is returned
//as well, which contains a single encrypted blob containing the backups of //as well, which contains a single encrypted blob containing the backups of
//each channel. //each channel.
ExportAllChannelBackups(ctx context.Context, in *ChanBackupExportRequest, opts ...grpc.CallOption) (*ChanBackupSnapshot, error) ExportAllChannelBackups(ctx context.Context, in *ChanBackupExportRequest, opts ...grpc.CallOption) (*ChanBackupSnapshot, error)
//* //
//VerifyChanBackup allows a caller to verify the integrity of a channel backup //VerifyChanBackup allows a caller to verify the integrity of a channel backup
//snapshot. This method will accept either a packed Single or a packed Multi. //snapshot. This method will accept either a packed Single or a packed Multi.
//Specifying both will result in an error. //Specifying both will result in an error.
VerifyChanBackup(ctx context.Context, in *ChanBackupSnapshot, opts ...grpc.CallOption) (*VerifyChanBackupResponse, error) VerifyChanBackup(ctx context.Context, in *ChanBackupSnapshot, opts ...grpc.CallOption) (*VerifyChanBackupResponse, error)
//* lncli: `restorechanbackup` // lncli: `restorechanbackup`
//RestoreChannelBackups accepts a set of singular channel backups, or a //RestoreChannelBackups accepts a set of singular channel backups, or a
//single encrypted multi-chan backup and attempts to recover any funds //single encrypted multi-chan backup and attempts to recover any funds
//remaining within the channel. If we are able to unpack the backup, then the //remaining within the channel. If we are able to unpack the backup, then the
//new channel will be shown under listchannels, as well as pending channels. //new channel will be shown under listchannels, as well as pending channels.
RestoreChannelBackups(ctx context.Context, in *RestoreChanBackupRequest, opts ...grpc.CallOption) (*RestoreBackupResponse, error) RestoreChannelBackups(ctx context.Context, in *RestoreChanBackupRequest, opts ...grpc.CallOption) (*RestoreBackupResponse, error)
//* //
//SubscribeChannelBackups allows a client to sub-subscribe to the most up to //SubscribeChannelBackups allows a client to sub-subscribe to the most up to
//date information concerning the state of all channel backups. Each time a //date information concerning the state of all channel backups. Each time a
//new channel is added, we return the new set of channels, along with a //new channel is added, we return the new set of channels, along with a
@ -12658,7 +12658,7 @@ type LightningClient interface {
//ups, but the updated set of encrypted multi-chan backups with the closed //ups, but the updated set of encrypted multi-chan backups with the closed
//channel(s) removed. //channel(s) removed.
SubscribeChannelBackups(ctx context.Context, in *ChannelBackupSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelBackupsClient, error) SubscribeChannelBackups(ctx context.Context, in *ChannelBackupSubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelBackupsClient, error)
//* lncli: `bakemacaroon` // lncli: `bakemacaroon`
//BakeMacaroon allows the creation of a new macaroon with custom read and //BakeMacaroon allows the creation of a new macaroon with custom read and
//write permissions. No first-party caveats are added since this can be done //write permissions. No first-party caveats are added since this can be done
//offline. //offline.
@ -13421,109 +13421,109 @@ func (c *lightningClient) BakeMacaroon(ctx context.Context, in *BakeMacaroonRequ
// LightningServer is the server API for Lightning service. // LightningServer is the server API for Lightning service.
type LightningServer interface { type LightningServer interface {
//* lncli: `walletbalance` // lncli: `walletbalance`
//WalletBalance returns total unspent outputs(confirmed and unconfirmed), all //WalletBalance returns total unspent outputs(confirmed and unconfirmed), all
//confirmed unspent outputs and all unconfirmed unspent outputs under control //confirmed unspent outputs and all unconfirmed unspent outputs under control
//of the wallet. //of the wallet.
WalletBalance(context.Context, *WalletBalanceRequest) (*WalletBalanceResponse, error) WalletBalance(context.Context, *WalletBalanceRequest) (*WalletBalanceResponse, error)
//* lncli: `channelbalance` // lncli: `channelbalance`
//ChannelBalance returns the total funds available across all open channels //ChannelBalance returns the total funds available across all open channels
//in satoshis. //in satoshis.
ChannelBalance(context.Context, *ChannelBalanceRequest) (*ChannelBalanceResponse, error) ChannelBalance(context.Context, *ChannelBalanceRequest) (*ChannelBalanceResponse, error)
//* lncli: `listchaintxns` // lncli: `listchaintxns`
//GetTransactions returns a list describing all the known transactions //GetTransactions returns a list describing all the known transactions
//relevant to the wallet. //relevant to the wallet.
GetTransactions(context.Context, *GetTransactionsRequest) (*TransactionDetails, error) GetTransactions(context.Context, *GetTransactionsRequest) (*TransactionDetails, error)
//* lncli: `estimatefee` // lncli: `estimatefee`
//EstimateFee asks the chain backend to estimate the fee rate and total fees //EstimateFee asks the chain backend to estimate the fee rate and total fees
//for a transaction that pays to multiple specified outputs. //for a transaction that pays to multiple specified outputs.
EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error) EstimateFee(context.Context, *EstimateFeeRequest) (*EstimateFeeResponse, error)
//* lncli: `sendcoins` // lncli: `sendcoins`
//SendCoins executes a request to send coins to a particular address. Unlike //SendCoins executes a request to send coins to a particular address. Unlike
//SendMany, this RPC call only allows creating a single output at a time. If //SendMany, this RPC call only allows creating a single output at a time. If
//neither target_conf, or sat_per_byte are set, then the internal wallet will //neither target_conf, or sat_per_byte are set, then the internal wallet will
//consult its fee model to determine a fee for the default confirmation //consult its fee model to determine a fee for the default confirmation
//target. //target.
SendCoins(context.Context, *SendCoinsRequest) (*SendCoinsResponse, error) SendCoins(context.Context, *SendCoinsRequest) (*SendCoinsResponse, error)
//* lncli: `listunspent` // lncli: `listunspent`
//ListUnspent returns a list of all utxos spendable by the wallet with a //ListUnspent returns a list of all utxos spendable by the wallet with a
//number of confirmations between the specified minimum and maximum. //number of confirmations between the specified minimum and maximum.
ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error) ListUnspent(context.Context, *ListUnspentRequest) (*ListUnspentResponse, error)
//* //
//SubscribeTransactions creates a uni-directional stream from the server to //SubscribeTransactions creates a uni-directional stream from the server to
//the client in which any newly discovered transactions relevant to the //the client in which any newly discovered transactions relevant to the
//wallet are sent over. //wallet are sent over.
SubscribeTransactions(*GetTransactionsRequest, Lightning_SubscribeTransactionsServer) error SubscribeTransactions(*GetTransactionsRequest, Lightning_SubscribeTransactionsServer) error
//* lncli: `sendmany` // lncli: `sendmany`
//SendMany handles a request for a transaction that creates multiple specified //SendMany handles a request for a transaction that creates multiple specified
//outputs in parallel. If neither target_conf, or sat_per_byte are set, then //outputs in parallel. If neither target_conf, or sat_per_byte are set, then
//the internal wallet will consult its fee model to determine a fee for the //the internal wallet will consult its fee model to determine a fee for the
//default confirmation target. //default confirmation target.
SendMany(context.Context, *SendManyRequest) (*SendManyResponse, error) SendMany(context.Context, *SendManyRequest) (*SendManyResponse, error)
//* lncli: `newaddress` // lncli: `newaddress`
//NewAddress creates a new address under control of the local wallet. //NewAddress creates a new address under control of the local wallet.
NewAddress(context.Context, *NewAddressRequest) (*NewAddressResponse, error) NewAddress(context.Context, *NewAddressRequest) (*NewAddressResponse, error)
//* lncli: `signmessage` // lncli: `signmessage`
//SignMessage signs a message with this node's private key. The returned //SignMessage signs a message with this node's private key. The returned
//signature string is `zbase32` encoded and pubkey recoverable, meaning that //signature string is `zbase32` encoded and pubkey recoverable, meaning that
//only the message digest and signature are needed for verification. //only the message digest and signature are needed for verification.
SignMessage(context.Context, *SignMessageRequest) (*SignMessageResponse, error) SignMessage(context.Context, *SignMessageRequest) (*SignMessageResponse, error)
//* lncli: `verifymessage` // lncli: `verifymessage`
//VerifyMessage verifies a signature over a msg. The signature must be //VerifyMessage verifies a signature over a msg. The signature must be
//zbase32 encoded and signed by an active node in the resident node's //zbase32 encoded and signed by an active node in the resident node's
//channel database. In addition to returning the validity of the signature, //channel database. In addition to returning the validity of the signature,
//VerifyMessage also returns the recovered pubkey from the signature. //VerifyMessage also returns the recovered pubkey from the signature.
VerifyMessage(context.Context, *VerifyMessageRequest) (*VerifyMessageResponse, error) VerifyMessage(context.Context, *VerifyMessageRequest) (*VerifyMessageResponse, error)
//* lncli: `connect` // lncli: `connect`
//ConnectPeer attempts to establish a connection to a remote peer. This is at //ConnectPeer attempts to establish a connection to a remote peer. This is at
//the networking level, and is used for communication between nodes. This is //the networking level, and is used for communication between nodes. This is
//distinct from establishing a channel with a peer. //distinct from establishing a channel with a peer.
ConnectPeer(context.Context, *ConnectPeerRequest) (*ConnectPeerResponse, error) ConnectPeer(context.Context, *ConnectPeerRequest) (*ConnectPeerResponse, error)
//* lncli: `disconnect` // lncli: `disconnect`
//DisconnectPeer attempts to disconnect one peer from another identified by a //DisconnectPeer attempts to disconnect one peer from another identified by a
//given pubKey. In the case that we currently have a pending or active channel //given pubKey. In the case that we currently have a pending or active channel
//with the target peer, then this action will be not be allowed. //with the target peer, then this action will be not be allowed.
DisconnectPeer(context.Context, *DisconnectPeerRequest) (*DisconnectPeerResponse, error) DisconnectPeer(context.Context, *DisconnectPeerRequest) (*DisconnectPeerResponse, error)
//* lncli: `listpeers` // lncli: `listpeers`
//ListPeers returns a verbose listing of all currently active peers. //ListPeers returns a verbose listing of all currently active peers.
ListPeers(context.Context, *ListPeersRequest) (*ListPeersResponse, error) ListPeers(context.Context, *ListPeersRequest) (*ListPeersResponse, error)
//* //
//SubscribePeerEvents creates a uni-directional stream from the server to //SubscribePeerEvents creates a uni-directional stream from the server to
//the client in which any events relevant to the state of peers are sent //the client in which any events relevant to the state of peers are sent
//over. Events include peers going online and offline. //over. Events include peers going online and offline.
SubscribePeerEvents(*PeerEventSubscription, Lightning_SubscribePeerEventsServer) error SubscribePeerEvents(*PeerEventSubscription, Lightning_SubscribePeerEventsServer) error
//* lncli: `getinfo` // lncli: `getinfo`
//GetInfo returns general information concerning the lightning node including //GetInfo returns general information concerning the lightning node including
//it's identity pubkey, alias, the chains it is connected to, and information //it's identity pubkey, alias, the chains it is connected to, and information
//concerning the number of open+pending channels. //concerning the number of open+pending channels.
GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
//* lncli: `pendingchannels` // lncli: `pendingchannels`
//PendingChannels returns a list of all the channels that are currently //PendingChannels returns a list of all the channels that are currently
//considered "pending". A channel is pending if it has finished the funding //considered "pending". A channel is pending if it has finished the funding
//workflow and is waiting for confirmations for the funding txn, or is in the //workflow and is waiting for confirmations for the funding txn, or is in the
//process of closure, either initiated cooperatively or non-cooperatively. //process of closure, either initiated cooperatively or non-cooperatively.
PendingChannels(context.Context, *PendingChannelsRequest) (*PendingChannelsResponse, error) PendingChannels(context.Context, *PendingChannelsRequest) (*PendingChannelsResponse, error)
//* lncli: `listchannels` // lncli: `listchannels`
//ListChannels returns a description of all the open channels that this node //ListChannels returns a description of all the open channels that this node
//is a participant in. //is a participant in.
ListChannels(context.Context, *ListChannelsRequest) (*ListChannelsResponse, error) ListChannels(context.Context, *ListChannelsRequest) (*ListChannelsResponse, error)
//* //
//SubscribeChannelEvents creates a uni-directional stream from the server to //SubscribeChannelEvents creates a uni-directional stream from the server to
//the client in which any updates relevant to the state of the channels are //the client in which any updates relevant to the state of the channels are
//sent over. Events include new active channels, inactive channels, and closed //sent over. Events include new active channels, inactive channels, and closed
//channels. //channels.
SubscribeChannelEvents(*ChannelEventSubscription, Lightning_SubscribeChannelEventsServer) error SubscribeChannelEvents(*ChannelEventSubscription, Lightning_SubscribeChannelEventsServer) error
//* lncli: `closedchannels` // lncli: `closedchannels`
//ClosedChannels returns a description of all the closed channels that //ClosedChannels returns a description of all the closed channels that
//this node was a participant in. //this node was a participant in.
ClosedChannels(context.Context, *ClosedChannelsRequest) (*ClosedChannelsResponse, error) ClosedChannels(context.Context, *ClosedChannelsRequest) (*ClosedChannelsResponse, error)
//* //
//OpenChannelSync is a synchronous version of the OpenChannel RPC call. This //OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
//call is meant to be consumed by clients to the REST proxy. As with all //call is meant to be consumed by clients to the REST proxy. As with all
//other sync calls, all byte slices are intended to be populated as hex //other sync calls, all byte slices are intended to be populated as hex
//encoded strings. //encoded strings.
OpenChannelSync(context.Context, *OpenChannelRequest) (*ChannelPoint, error) OpenChannelSync(context.Context, *OpenChannelRequest) (*ChannelPoint, error)
//* lncli: `openchannel` // lncli: `openchannel`
//OpenChannel attempts to open a singly funded channel specified in the //OpenChannel attempts to open a singly funded channel specified in the
//request to a remote peer. Users are able to specify a target number of //request to a remote peer. Users are able to specify a target number of
//blocks that the funding transaction should be confirmed in, or a manual fee //blocks that the funding transaction should be confirmed in, or a manual fee
@ -13533,7 +13533,7 @@ type LightningServer interface {
//arguments specified in the OpenChannelRequest, this pending channel ID can //arguments specified in the OpenChannelRequest, this pending channel ID can
//then be used to manually progress the channel funding flow. //then be used to manually progress the channel funding flow.
OpenChannel(*OpenChannelRequest, Lightning_OpenChannelServer) error OpenChannel(*OpenChannelRequest, Lightning_OpenChannelServer) error
//* //
//FundingStateStep is an advanced funding related call that allows the caller //FundingStateStep is an advanced funding related call that allows the caller
//to either execute some preparatory steps for a funding workflow, or //to either execute some preparatory steps for a funding workflow, or
//manually progress a funding workflow. The primary way a funding flow is //manually progress a funding workflow. The primary way a funding flow is
@ -13543,14 +13543,14 @@ type LightningServer interface {
//Alternatively, this can be used to interactively drive PSBT signing for //Alternatively, this can be used to interactively drive PSBT signing for
//funding for partially complete funding transactions. //funding for partially complete funding transactions.
FundingStateStep(context.Context, *FundingTransitionMsg) (*FundingStateStepResp, error) FundingStateStep(context.Context, *FundingTransitionMsg) (*FundingStateStepResp, error)
//* //
//ChannelAcceptor dispatches a bi-directional streaming RPC in which //ChannelAcceptor dispatches a bi-directional streaming RPC in which
//OpenChannel requests are sent to the client and the client responds with //OpenChannel requests are sent to the client and the client responds with
//a boolean that tells LND whether or not to accept the channel. This allows //a boolean that tells LND whether or not to accept the channel. This allows
//node operators to specify their own criteria for accepting inbound channels //node operators to specify their own criteria for accepting inbound channels
//through a single persistent connection. //through a single persistent connection.
ChannelAcceptor(Lightning_ChannelAcceptorServer) error ChannelAcceptor(Lightning_ChannelAcceptorServer) error
//* lncli: `closechannel` // lncli: `closechannel`
//CloseChannel attempts to close an active channel identified by its channel //CloseChannel attempts to close an active channel identified by its channel
//outpoint (ChannelPoint). The actions of this method can additionally be //outpoint (ChannelPoint). The actions of this method can additionally be
//augmented to attempt a force close after a timeout period in the case of an //augmented to attempt a force close after a timeout period in the case of an
@ -13559,41 +13559,41 @@ type LightningServer interface {
//closure transaction is confirmed, or a manual fee rate. If neither are //closure transaction is confirmed, or a manual fee rate. If neither are
//specified, then a default lax, block confirmation target is used. //specified, then a default lax, block confirmation target is used.
CloseChannel(*CloseChannelRequest, Lightning_CloseChannelServer) error CloseChannel(*CloseChannelRequest, Lightning_CloseChannelServer) error
//* lncli: `abandonchannel` // lncli: `abandonchannel`
//AbandonChannel removes all channel state from the database except for a //AbandonChannel removes all channel state from the database except for a
//close summary. This method can be used to get rid of permanently unusable //close summary. This method can be used to get rid of permanently unusable
//channels due to bugs fixed in newer versions of lnd. Only available //channels due to bugs fixed in newer versions of lnd. Only available
//when in debug builds of lnd. //when in debug builds of lnd.
AbandonChannel(context.Context, *AbandonChannelRequest) (*AbandonChannelResponse, error) AbandonChannel(context.Context, *AbandonChannelRequest) (*AbandonChannelResponse, error)
//* lncli: `sendpayment` // lncli: `sendpayment`
//Deprecated, use routerrpc.SendPayment. SendPayment dispatches a //Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
//bi-directional streaming RPC for sending payments through the Lightning //bi-directional streaming RPC for sending payments through the Lightning
//Network. A single RPC invocation creates a persistent bi-directional //Network. A single RPC invocation creates a persistent bi-directional
//stream allowing clients to rapidly send payments through the Lightning //stream allowing clients to rapidly send payments through the Lightning
//Network with a single persistent connection. //Network with a single persistent connection.
SendPayment(Lightning_SendPaymentServer) error SendPayment(Lightning_SendPaymentServer) error
//* //
//SendPaymentSync is the synchronous non-streaming version of SendPayment. //SendPaymentSync is the synchronous non-streaming version of SendPayment.
//This RPC is intended to be consumed by clients of the REST proxy. //This RPC is intended to be consumed by clients of the REST proxy.
//Additionally, this RPC expects the destination's public key and the payment //Additionally, this RPC expects the destination's public key and the payment
//hash (if any) to be encoded as hex strings. //hash (if any) to be encoded as hex strings.
SendPaymentSync(context.Context, *SendRequest) (*SendResponse, error) SendPaymentSync(context.Context, *SendRequest) (*SendResponse, error)
//* lncli: `sendtoroute` // lncli: `sendtoroute`
//SendToRoute is a bi-directional streaming RPC for sending payment through //SendToRoute is a bi-directional streaming RPC for sending payment through
//the Lightning Network. This method differs from SendPayment in that it //the Lightning Network. This method differs from SendPayment in that it
//allows users to specify a full route manually. This can be used for things //allows users to specify a full route manually. This can be used for things
//like rebalancing, and atomic swaps. //like rebalancing, and atomic swaps.
SendToRoute(Lightning_SendToRouteServer) error SendToRoute(Lightning_SendToRouteServer) error
//* //
//SendToRouteSync is a synchronous version of SendToRoute. It Will block //SendToRouteSync is a synchronous version of SendToRoute. It Will block
//until the payment either fails or succeeds. //until the payment either fails or succeeds.
SendToRouteSync(context.Context, *SendToRouteRequest) (*SendResponse, error) SendToRouteSync(context.Context, *SendToRouteRequest) (*SendResponse, error)
//* lncli: `addinvoice` // lncli: `addinvoice`
//AddInvoice attempts to add a new invoice to the invoice database. Any //AddInvoice attempts to add a new invoice to the invoice database. Any
//duplicated invoices are rejected, therefore all invoices *must* have a //duplicated invoices are rejected, therefore all invoices *must* have a
//unique payment preimage. //unique payment preimage.
AddInvoice(context.Context, *Invoice) (*AddInvoiceResponse, error) AddInvoice(context.Context, *Invoice) (*AddInvoiceResponse, error)
//* lncli: `listinvoices` // lncli: `listinvoices`
//ListInvoices returns a list of all the invoices currently stored within the //ListInvoices returns a list of all the invoices currently stored within the
//database. Any active debug invoices are ignored. It has full support for //database. Any active debug invoices are ignored. It has full support for
//paginated responses, allowing users to query for specific invoices through //paginated responses, allowing users to query for specific invoices through
@ -13602,12 +13602,12 @@ type LightningServer interface {
//next request. By default, the first 100 invoices created will be returned. //next request. By default, the first 100 invoices created will be returned.
//Backwards pagination is also supported through the Reversed flag. //Backwards pagination is also supported through the Reversed flag.
ListInvoices(context.Context, *ListInvoiceRequest) (*ListInvoiceResponse, error) ListInvoices(context.Context, *ListInvoiceRequest) (*ListInvoiceResponse, error)
//* lncli: `lookupinvoice` // lncli: `lookupinvoice`
//LookupInvoice attempts to look up an invoice according to its payment hash. //LookupInvoice attempts to look up an invoice according to its payment hash.
//The passed payment hash *must* be exactly 32 bytes, if not, an error is //The passed payment hash *must* be exactly 32 bytes, if not, an error is
//returned. //returned.
LookupInvoice(context.Context, *PaymentHash) (*Invoice, error) LookupInvoice(context.Context, *PaymentHash) (*Invoice, error)
//* //
//SubscribeInvoices returns a uni-directional stream (server -> client) for //SubscribeInvoices returns a uni-directional stream (server -> client) for
//notifying the client of newly added/settled invoices. The caller can //notifying the client of newly added/settled invoices. The caller can
//optionally specify the add_index and/or the settle_index. If the add_index //optionally specify the add_index and/or the settle_index. If the add_index
@ -13618,18 +13618,18 @@ type LightningServer interface {
//of these fields can be set. If no fields are set, then we'll only send out //of these fields can be set. If no fields are set, then we'll only send out
//the latest add/settle events. //the latest add/settle events.
SubscribeInvoices(*InvoiceSubscription, Lightning_SubscribeInvoicesServer) error SubscribeInvoices(*InvoiceSubscription, Lightning_SubscribeInvoicesServer) error
//* lncli: `decodepayreq` // lncli: `decodepayreq`
//DecodePayReq takes an encoded payment request string and attempts to decode //DecodePayReq takes an encoded payment request string and attempts to decode
//it, returning a full description of the conditions encoded within the //it, returning a full description of the conditions encoded within the
//payment request. //payment request.
DecodePayReq(context.Context, *PayReqString) (*PayReq, error) DecodePayReq(context.Context, *PayReqString) (*PayReq, error)
//* lncli: `listpayments` // lncli: `listpayments`
//ListPayments returns a list of all outgoing payments. //ListPayments returns a list of all outgoing payments.
ListPayments(context.Context, *ListPaymentsRequest) (*ListPaymentsResponse, error) ListPayments(context.Context, *ListPaymentsRequest) (*ListPaymentsResponse, error)
//* //
//DeleteAllPayments deletes all outgoing payments from DB. //DeleteAllPayments deletes all outgoing payments from DB.
DeleteAllPayments(context.Context, *DeleteAllPaymentsRequest) (*DeleteAllPaymentsResponse, error) DeleteAllPayments(context.Context, *DeleteAllPaymentsRequest) (*DeleteAllPaymentsResponse, error)
//* lncli: `describegraph` // lncli: `describegraph`
//DescribeGraph returns a description of the latest graph state from the //DescribeGraph returns a description of the latest graph state from the
//point of view of the node. The graph information is partitioned into two //point of view of the node. The graph information is partitioned into two
//components: all the nodes/vertexes, and all the edges that connect the //components: all the nodes/vertexes, and all the edges that connect the
@ -13637,36 +13637,36 @@ type LightningServer interface {
//the node directional specific routing policy which includes: the time lock //the node directional specific routing policy which includes: the time lock
//delta, fee information, etc. //delta, fee information, etc.
DescribeGraph(context.Context, *ChannelGraphRequest) (*ChannelGraph, error) DescribeGraph(context.Context, *ChannelGraphRequest) (*ChannelGraph, error)
//* lncli: `getnodemetrics` // lncli: `getnodemetrics`
//GetNodeMetrics returns node metrics calculated from the graph. Currently //GetNodeMetrics returns node metrics calculated from the graph. Currently
//the only supported metric is betweenness centrality of individual nodes. //the only supported metric is betweenness centrality of individual nodes.
GetNodeMetrics(context.Context, *NodeMetricsRequest) (*NodeMetricsResponse, error) GetNodeMetrics(context.Context, *NodeMetricsRequest) (*NodeMetricsResponse, error)
//* lncli: `getchaninfo` // lncli: `getchaninfo`
//GetChanInfo returns the latest authenticated network announcement for the //GetChanInfo returns the latest authenticated network announcement for the
//given channel identified by its channel ID: an 8-byte integer which //given channel identified by its channel ID: an 8-byte integer which
//uniquely identifies the location of transaction's funding output within the //uniquely identifies the location of transaction's funding output within the
//blockchain. //blockchain.
GetChanInfo(context.Context, *ChanInfoRequest) (*ChannelEdge, error) GetChanInfo(context.Context, *ChanInfoRequest) (*ChannelEdge, error)
//* lncli: `getnodeinfo` // lncli: `getnodeinfo`
//GetNodeInfo returns the latest advertised, aggregated, and authenticated //GetNodeInfo returns the latest advertised, aggregated, and authenticated
//channel information for the specified node identified by its public key. //channel information for the specified node identified by its public key.
GetNodeInfo(context.Context, *NodeInfoRequest) (*NodeInfo, error) GetNodeInfo(context.Context, *NodeInfoRequest) (*NodeInfo, error)
//* lncli: `queryroutes` // lncli: `queryroutes`
//QueryRoutes attempts to query the daemon's Channel Router for a possible //QueryRoutes attempts to query the daemon's Channel Router for a possible
//route to a target destination capable of carrying a specific amount of //route to a target destination capable of carrying a specific amount of
//satoshis. The returned route contains the full details required to craft and //satoshis. The returned route contains the full details required to craft and
//send an HTLC, also including the necessary information that should be //send an HTLC, also including the necessary information that should be
//present within the Sphinx packet encapsulated within the HTLC. //present within the Sphinx packet encapsulated within the HTLC.
QueryRoutes(context.Context, *QueryRoutesRequest) (*QueryRoutesResponse, error) QueryRoutes(context.Context, *QueryRoutesRequest) (*QueryRoutesResponse, error)
//* lncli: `getnetworkinfo` // lncli: `getnetworkinfo`
//GetNetworkInfo returns some basic stats about the known channel graph from //GetNetworkInfo returns some basic stats about the known channel graph from
//the point of view of the node. //the point of view of the node.
GetNetworkInfo(context.Context, *NetworkInfoRequest) (*NetworkInfo, error) GetNetworkInfo(context.Context, *NetworkInfoRequest) (*NetworkInfo, error)
//* lncli: `stop` // lncli: `stop`
//StopDaemon will send a shutdown request to the interrupt handler, triggering //StopDaemon will send a shutdown request to the interrupt handler, triggering
//a graceful shutdown of the daemon. //a graceful shutdown of the daemon.
StopDaemon(context.Context, *StopRequest) (*StopResponse, error) StopDaemon(context.Context, *StopRequest) (*StopResponse, error)
//* //
//SubscribeChannelGraph launches a streaming RPC that allows the caller to //SubscribeChannelGraph launches a streaming RPC that allows the caller to
//receive notifications upon any changes to the channel graph topology from //receive notifications upon any changes to the channel graph topology from
//the point of view of the responding node. Events notified include: new //the point of view of the responding node. Events notified include: new
@ -13674,21 +13674,21 @@ type LightningServer interface {
//channels being advertised, updates in the routing policy for a directional //channels being advertised, updates in the routing policy for a directional
//channel edge, and when channels are closed on-chain. //channel edge, and when channels are closed on-chain.
SubscribeChannelGraph(*GraphTopologySubscription, Lightning_SubscribeChannelGraphServer) error SubscribeChannelGraph(*GraphTopologySubscription, Lightning_SubscribeChannelGraphServer) error
//* lncli: `debuglevel` // lncli: `debuglevel`
//DebugLevel allows a caller to programmatically set the logging verbosity of //DebugLevel allows a caller to programmatically set the logging verbosity of
//lnd. The logging can be targeted according to a coarse daemon-wide logging //lnd. The logging can be targeted according to a coarse daemon-wide logging
//level, or in a granular fashion to specify the logging for a target //level, or in a granular fashion to specify the logging for a target
//sub-system. //sub-system.
DebugLevel(context.Context, *DebugLevelRequest) (*DebugLevelResponse, error) DebugLevel(context.Context, *DebugLevelRequest) (*DebugLevelResponse, error)
//* lncli: `feereport` // lncli: `feereport`
//FeeReport allows the caller to obtain a report detailing the current fee //FeeReport allows the caller to obtain a report detailing the current fee
//schedule enforced by the node globally for each channel. //schedule enforced by the node globally for each channel.
FeeReport(context.Context, *FeeReportRequest) (*FeeReportResponse, error) FeeReport(context.Context, *FeeReportRequest) (*FeeReportResponse, error)
//* lncli: `updatechanpolicy` // lncli: `updatechanpolicy`
//UpdateChannelPolicy allows the caller to update the fee schedule and //UpdateChannelPolicy allows the caller to update the fee schedule and
//channel policies for all channels globally, or a particular channel. //channel policies for all channels globally, or a particular channel.
UpdateChannelPolicy(context.Context, *PolicyUpdateRequest) (*PolicyUpdateResponse, error) UpdateChannelPolicy(context.Context, *PolicyUpdateRequest) (*PolicyUpdateResponse, error)
//* lncli: `fwdinghistory` // lncli: `fwdinghistory`
//ForwardingHistory allows the caller to query the htlcswitch for a record of //ForwardingHistory allows the caller to query the htlcswitch for a record of
//all HTLCs forwarded within the target time range, and integer offset //all HTLCs forwarded within the target time range, and integer offset
//within that time range. If no time-range is specified, then the first chunk //within that time range. If no time-range is specified, then the first chunk
@ -13700,7 +13700,7 @@ type LightningServer interface {
//the index offset of the last entry. The index offset can be provided to the //the index offset of the last entry. The index offset can be provided to the
//request to allow the caller to skip a series of records. //request to allow the caller to skip a series of records.
ForwardingHistory(context.Context, *ForwardingHistoryRequest) (*ForwardingHistoryResponse, error) ForwardingHistory(context.Context, *ForwardingHistoryRequest) (*ForwardingHistoryResponse, error)
//* lncli: `exportchanbackup` // lncli: `exportchanbackup`
//ExportChannelBackup attempts to return an encrypted static channel backup //ExportChannelBackup attempts to return an encrypted static channel backup
//for the target channel identified by it channel point. The backup is //for the target channel identified by it channel point. The backup is
//encrypted with a key generated from the aezeed seed of the user. The //encrypted with a key generated from the aezeed seed of the user. The
@ -13708,25 +13708,25 @@ type LightningServer interface {
//method once lnd is running, or via the InitWallet and UnlockWallet methods //method once lnd is running, or via the InitWallet and UnlockWallet methods
//from the WalletUnlocker service. //from the WalletUnlocker service.
ExportChannelBackup(context.Context, *ExportChannelBackupRequest) (*ChannelBackup, error) ExportChannelBackup(context.Context, *ExportChannelBackupRequest) (*ChannelBackup, error)
//* //
//ExportAllChannelBackups returns static channel backups for all existing //ExportAllChannelBackups returns static channel backups for all existing
//channels known to lnd. A set of regular singular static channel backups for //channels known to lnd. A set of regular singular static channel backups for
//each channel are returned. Additionally, a multi-channel backup is returned //each channel are returned. Additionally, a multi-channel backup is returned
//as well, which contains a single encrypted blob containing the backups of //as well, which contains a single encrypted blob containing the backups of
//each channel. //each channel.
ExportAllChannelBackups(context.Context, *ChanBackupExportRequest) (*ChanBackupSnapshot, error) ExportAllChannelBackups(context.Context, *ChanBackupExportRequest) (*ChanBackupSnapshot, error)
//* //
//VerifyChanBackup allows a caller to verify the integrity of a channel backup //VerifyChanBackup allows a caller to verify the integrity of a channel backup
//snapshot. This method will accept either a packed Single or a packed Multi. //snapshot. This method will accept either a packed Single or a packed Multi.
//Specifying both will result in an error. //Specifying both will result in an error.
VerifyChanBackup(context.Context, *ChanBackupSnapshot) (*VerifyChanBackupResponse, error) VerifyChanBackup(context.Context, *ChanBackupSnapshot) (*VerifyChanBackupResponse, error)
//* lncli: `restorechanbackup` // lncli: `restorechanbackup`
//RestoreChannelBackups accepts a set of singular channel backups, or a //RestoreChannelBackups accepts a set of singular channel backups, or a
//single encrypted multi-chan backup and attempts to recover any funds //single encrypted multi-chan backup and attempts to recover any funds
//remaining within the channel. If we are able to unpack the backup, then the //remaining within the channel. If we are able to unpack the backup, then the
//new channel will be shown under listchannels, as well as pending channels. //new channel will be shown under listchannels, as well as pending channels.
RestoreChannelBackups(context.Context, *RestoreChanBackupRequest) (*RestoreBackupResponse, error) RestoreChannelBackups(context.Context, *RestoreChanBackupRequest) (*RestoreBackupResponse, error)
//* //
//SubscribeChannelBackups allows a client to sub-subscribe to the most up to //SubscribeChannelBackups allows a client to sub-subscribe to the most up to
//date information concerning the state of all channel backups. Each time a //date information concerning the state of all channel backups. Each time a
//new channel is added, we return the new set of channels, along with a //new channel is added, we return the new set of channels, along with a
@ -13735,7 +13735,7 @@ type LightningServer interface {
//ups, but the updated set of encrypted multi-chan backups with the closed //ups, but the updated set of encrypted multi-chan backups with the closed
//channel(s) removed. //channel(s) removed.
SubscribeChannelBackups(*ChannelBackupSubscription, Lightning_SubscribeChannelBackupsServer) error SubscribeChannelBackups(*ChannelBackupSubscription, Lightning_SubscribeChannelBackupsServer) error
//* lncli: `bakemacaroon` // lncli: `bakemacaroon`
//BakeMacaroon allows the creation of a new macaroon with custom read and //BakeMacaroon allows the creation of a new macaroon with custom read and
//write permissions. No first-party caveats are added since this can be done //write permissions. No first-party caveats are added since this can be done
//offline. //offline.

@ -6,15 +6,11 @@ package lnrpc;
option go_package = "github.com/lightningnetwork/lnd/lnrpc"; option go_package = "github.com/lightningnetwork/lnd/lnrpc";
/** /*
* Comments in this file will be directly parsed into the API * Comments in this file will be directly parsed into the API
* Documentation as descriptions of the associated method, message, or field. * Documentation as descriptions of the associated method, message, or field.
* These descriptions should go right above the definition of the object, and * These descriptions should go right above the definition of the object, and
* can be in either block or /// comment format. * can be in either block or // comment format.
*
* One edge case exists where a // comment followed by a /// comment in the
* next line will cause the description not to show up in the documentation. In
* that instance, simply separate the two comments with a blank line.
* *
* An RPC method can be matched to an lncli command by placing a line in the * An RPC method can be matched to an lncli command by placing a line in the
* beginning of the description in exactly the following format: * beginning of the description in exactly the following format:
@ -30,7 +26,7 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc";
// Lightning is the main RPC server of the daemon. // Lightning is the main RPC server of the daemon.
service Lightning { service Lightning {
/** lncli: `walletbalance` /* lncli: `walletbalance`
WalletBalance returns total unspent outputs(confirmed and unconfirmed), all WalletBalance returns total unspent outputs(confirmed and unconfirmed), all
confirmed unspent outputs and all unconfirmed unspent outputs under control confirmed unspent outputs and all unconfirmed unspent outputs under control
of the wallet. of the wallet.
@ -41,7 +37,7 @@ service Lightning {
}; };
} }
/** lncli: `channelbalance` /* lncli: `channelbalance`
ChannelBalance returns the total funds available across all open channels ChannelBalance returns the total funds available across all open channels
in satoshis. in satoshis.
*/ */
@ -52,7 +48,7 @@ service Lightning {
}; };
} }
/** lncli: `listchaintxns` /* lncli: `listchaintxns`
GetTransactions returns a list describing all the known transactions GetTransactions returns a list describing all the known transactions
relevant to the wallet. relevant to the wallet.
*/ */
@ -62,7 +58,7 @@ service Lightning {
}; };
} }
/** lncli: `estimatefee` /* lncli: `estimatefee`
EstimateFee asks the chain backend to estimate the fee rate and total fees EstimateFee asks the chain backend to estimate the fee rate and total fees
for a transaction that pays to multiple specified outputs. for a transaction that pays to multiple specified outputs.
*/ */
@ -72,7 +68,7 @@ service Lightning {
}; };
} }
/** lncli: `sendcoins` /* lncli: `sendcoins`
SendCoins executes a request to send coins to a particular address. Unlike SendCoins executes a request to send coins to a particular address. Unlike
SendMany, this RPC call only allows creating a single output at a time. If SendMany, this RPC call only allows creating a single output at a time. If
neither target_conf, or sat_per_byte are set, then the internal wallet will neither target_conf, or sat_per_byte are set, then the internal wallet will
@ -86,7 +82,7 @@ service Lightning {
}; };
} }
/** lncli: `listunspent` /* lncli: `listunspent`
ListUnspent returns a list of all utxos spendable by the wallet with a ListUnspent returns a list of all utxos spendable by the wallet with a
number of confirmations between the specified minimum and maximum. number of confirmations between the specified minimum and maximum.
*/ */
@ -96,7 +92,7 @@ service Lightning {
}; };
} }
/** /*
SubscribeTransactions creates a uni-directional stream from the server to SubscribeTransactions creates a uni-directional stream from the server to
the client in which any newly discovered transactions relevant to the the client in which any newly discovered transactions relevant to the
wallet are sent over. wallet are sent over.
@ -104,7 +100,7 @@ service Lightning {
rpc SubscribeTransactions (GetTransactionsRequest) rpc SubscribeTransactions (GetTransactionsRequest)
returns (stream Transaction); returns (stream Transaction);
/** lncli: `sendmany` /* lncli: `sendmany`
SendMany handles a request for a transaction that creates multiple specified SendMany handles a request for a transaction that creates multiple specified
outputs in parallel. If neither target_conf, or sat_per_byte are set, then outputs in parallel. If neither target_conf, or sat_per_byte are set, then
the internal wallet will consult its fee model to determine a fee for the the internal wallet will consult its fee model to determine a fee for the
@ -112,7 +108,7 @@ service Lightning {
*/ */
rpc SendMany (SendManyRequest) returns (SendManyResponse); rpc SendMany (SendManyRequest) returns (SendManyResponse);
/** lncli: `newaddress` /* lncli: `newaddress`
NewAddress creates a new address under control of the local wallet. NewAddress creates a new address under control of the local wallet.
*/ */
rpc NewAddress (NewAddressRequest) returns (NewAddressResponse) { rpc NewAddress (NewAddressRequest) returns (NewAddressResponse) {
@ -121,7 +117,7 @@ service Lightning {
}; };
} }
/** lncli: `signmessage` /* lncli: `signmessage`
SignMessage signs a message with this node's private key. The returned SignMessage signs a message with this node's private key. The returned
signature string is `zbase32` encoded and pubkey recoverable, meaning that signature string is `zbase32` encoded and pubkey recoverable, meaning that
only the message digest and signature are needed for verification. only the message digest and signature are needed for verification.
@ -133,7 +129,7 @@ service Lightning {
}; };
} }
/** lncli: `verifymessage` /* lncli: `verifymessage`
VerifyMessage verifies a signature over a msg. The signature must be VerifyMessage verifies a signature over a msg. The signature must be
zbase32 encoded and signed by an active node in the resident node's zbase32 encoded and signed by an active node in the resident node's
channel database. In addition to returning the validity of the signature, channel database. In addition to returning the validity of the signature,
@ -146,7 +142,7 @@ service Lightning {
}; };
} }
/** lncli: `connect` /* lncli: `connect`
ConnectPeer attempts to establish a connection to a remote peer. This is at ConnectPeer attempts to establish a connection to a remote peer. This is at
the networking level, and is used for communication between nodes. This is the networking level, and is used for communication between nodes. This is
distinct from establishing a channel with a peer. distinct from establishing a channel with a peer.
@ -158,7 +154,7 @@ service Lightning {
}; };
} }
/** lncli: `disconnect` /* lncli: `disconnect`
DisconnectPeer attempts to disconnect one peer from another identified by a DisconnectPeer attempts to disconnect one peer from another identified by a
given pubKey. In the case that we currently have a pending or active channel given pubKey. In the case that we currently have a pending or active channel
with the target peer, then this action will be not be allowed. with the target peer, then this action will be not be allowed.
@ -170,7 +166,7 @@ service Lightning {
}; };
} }
/** lncli: `listpeers` /* lncli: `listpeers`
ListPeers returns a verbose listing of all currently active peers. ListPeers returns a verbose listing of all currently active peers.
*/ */
rpc ListPeers (ListPeersRequest) returns (ListPeersResponse) { rpc ListPeers (ListPeersRequest) returns (ListPeersResponse) {
@ -179,14 +175,14 @@ service Lightning {
}; };
} }
/** /*
SubscribePeerEvents creates a uni-directional stream from the server to SubscribePeerEvents creates a uni-directional stream from the server to
the client in which any events relevant to the state of peers are sent the client in which any events relevant to the state of peers are sent
over. Events include peers going online and offline. over. Events include peers going online and offline.
*/ */
rpc SubscribePeerEvents (PeerEventSubscription) returns (stream PeerEvent); rpc SubscribePeerEvents (PeerEventSubscription) returns (stream PeerEvent);
/** lncli: `getinfo` /* lncli: `getinfo`
GetInfo returns general information concerning the lightning node including GetInfo returns general information concerning the lightning node including
it's identity pubkey, alias, the chains it is connected to, and information it's identity pubkey, alias, the chains it is connected to, and information
concerning the number of open+pending channels. concerning the number of open+pending channels.
@ -198,7 +194,7 @@ service Lightning {
} }
// TODO(roasbeef): merge with below with bool? // TODO(roasbeef): merge with below with bool?
/** lncli: `pendingchannels` /* lncli: `pendingchannels`
PendingChannels returns a list of all the channels that are currently PendingChannels returns a list of all the channels that are currently
considered "pending". A channel is pending if it has finished the funding considered "pending". A channel is pending if it has finished the funding
workflow and is waiting for confirmations for the funding txn, or is in the workflow and is waiting for confirmations for the funding txn, or is in the
@ -211,7 +207,7 @@ service Lightning {
}; };
} }
/** lncli: `listchannels` /* lncli: `listchannels`
ListChannels returns a description of all the open channels that this node ListChannels returns a description of all the open channels that this node
is a participant in. is a participant in.
*/ */
@ -221,7 +217,7 @@ service Lightning {
}; };
} }
/** /*
SubscribeChannelEvents creates a uni-directional stream from the server to SubscribeChannelEvents creates a uni-directional stream from the server to
the client in which any updates relevant to the state of the channels are the client in which any updates relevant to the state of the channels are
sent over. Events include new active channels, inactive channels, and closed sent over. Events include new active channels, inactive channels, and closed
@ -230,7 +226,7 @@ service Lightning {
rpc SubscribeChannelEvents (ChannelEventSubscription) rpc SubscribeChannelEvents (ChannelEventSubscription)
returns (stream ChannelEventUpdate); returns (stream ChannelEventUpdate);
/** lncli: `closedchannels` /* lncli: `closedchannels`
ClosedChannels returns a description of all the closed channels that ClosedChannels returns a description of all the closed channels that
this node was a participant in. this node was a participant in.
*/ */
@ -241,7 +237,7 @@ service Lightning {
}; };
} }
/** /*
OpenChannelSync is a synchronous version of the OpenChannel RPC call. This OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
call is meant to be consumed by clients to the REST proxy. As with all call is meant to be consumed by clients to the REST proxy. As with all
other sync calls, all byte slices are intended to be populated as hex other sync calls, all byte slices are intended to be populated as hex
@ -254,7 +250,7 @@ service Lightning {
}; };
} }
/** lncli: `openchannel` /* lncli: `openchannel`
OpenChannel attempts to open a singly funded channel specified in the OpenChannel attempts to open a singly funded channel specified in the
request to a remote peer. Users are able to specify a target number of request to a remote peer. Users are able to specify a target number of
blocks that the funding transaction should be confirmed in, or a manual fee blocks that the funding transaction should be confirmed in, or a manual fee
@ -266,7 +262,7 @@ service Lightning {
*/ */
rpc OpenChannel (OpenChannelRequest) returns (stream OpenStatusUpdate); rpc OpenChannel (OpenChannelRequest) returns (stream OpenStatusUpdate);
/** /*
FundingStateStep is an advanced funding related call that allows the caller FundingStateStep is an advanced funding related call that allows the caller
to either execute some preparatory steps for a funding workflow, or to either execute some preparatory steps for a funding workflow, or
manually progress a funding workflow. The primary way a funding flow is manually progress a funding workflow. The primary way a funding flow is
@ -278,7 +274,7 @@ service Lightning {
*/ */
rpc FundingStateStep (FundingTransitionMsg) returns (FundingStateStepResp); rpc FundingStateStep (FundingTransitionMsg) returns (FundingStateStepResp);
/** /*
ChannelAcceptor dispatches a bi-directional streaming RPC in which ChannelAcceptor dispatches a bi-directional streaming RPC in which
OpenChannel requests are sent to the client and the client responds with OpenChannel requests are sent to the client and the client responds with
a boolean that tells LND whether or not to accept the channel. This allows a boolean that tells LND whether or not to accept the channel. This allows
@ -288,7 +284,7 @@ service Lightning {
rpc ChannelAcceptor (stream ChannelAcceptResponse) rpc ChannelAcceptor (stream ChannelAcceptResponse)
returns (stream ChannelAcceptRequest); returns (stream ChannelAcceptRequest);
/** lncli: `closechannel` /* lncli: `closechannel`
CloseChannel attempts to close an active channel identified by its channel CloseChannel attempts to close an active channel identified by its channel
outpoint (ChannelPoint). The actions of this method can additionally be outpoint (ChannelPoint). The actions of this method can additionally be
augmented to attempt a force close after a timeout period in the case of an augmented to attempt a force close after a timeout period in the case of an
@ -303,7 +299,7 @@ service Lightning {
}; };
} }
/** lncli: `abandonchannel` /* lncli: `abandonchannel`
AbandonChannel removes all channel state from the database except for a AbandonChannel removes all channel state from the database except for a
close summary. This method can be used to get rid of permanently unusable close summary. This method can be used to get rid of permanently unusable
channels due to bugs fixed in newer versions of lnd. Only available channels due to bugs fixed in newer versions of lnd. Only available
@ -316,7 +312,7 @@ service Lightning {
}; };
} }
/** lncli: `sendpayment` /* lncli: `sendpayment`
Deprecated, use routerrpc.SendPayment. SendPayment dispatches a Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
bi-directional streaming RPC for sending payments through the Lightning bi-directional streaming RPC for sending payments through the Lightning
Network. A single RPC invocation creates a persistent bi-directional Network. A single RPC invocation creates a persistent bi-directional
@ -327,7 +323,7 @@ service Lightning {
option deprecated = true; option deprecated = true;
} }
/** /*
SendPaymentSync is the synchronous non-streaming version of SendPayment. SendPaymentSync is the synchronous non-streaming version of SendPayment.
This RPC is intended to be consumed by clients of the REST proxy. This RPC is intended to be consumed by clients of the REST proxy.
Additionally, this RPC expects the destination's public key and the payment Additionally, this RPC expects the destination's public key and the payment
@ -340,7 +336,7 @@ service Lightning {
}; };
} }
/** lncli: `sendtoroute` /* lncli: `sendtoroute`
SendToRoute is a bi-directional streaming RPC for sending payment through SendToRoute is a bi-directional streaming RPC for sending payment through
the Lightning Network. This method differs from SendPayment in that it the Lightning Network. This method differs from SendPayment in that it
allows users to specify a full route manually. This can be used for things allows users to specify a full route manually. This can be used for things
@ -348,7 +344,7 @@ service Lightning {
*/ */
rpc SendToRoute (stream SendToRouteRequest) returns (stream SendResponse); rpc SendToRoute (stream SendToRouteRequest) returns (stream SendResponse);
/** /*
SendToRouteSync is a synchronous version of SendToRoute. It Will block SendToRouteSync is a synchronous version of SendToRoute. It Will block
until the payment either fails or succeeds. until the payment either fails or succeeds.
*/ */
@ -359,7 +355,7 @@ service Lightning {
}; };
} }
/** lncli: `addinvoice` /* lncli: `addinvoice`
AddInvoice attempts to add a new invoice to the invoice database. Any AddInvoice attempts to add a new invoice to the invoice database. Any
duplicated invoices are rejected, therefore all invoices *must* have a duplicated invoices are rejected, therefore all invoices *must* have a
unique payment preimage. unique payment preimage.
@ -371,7 +367,7 @@ service Lightning {
}; };
} }
/** lncli: `listinvoices` /* lncli: `listinvoices`
ListInvoices returns a list of all the invoices currently stored within the ListInvoices returns a list of all the invoices currently stored within the
database. Any active debug invoices are ignored. It has full support for database. Any active debug invoices are ignored. It has full support for
paginated responses, allowing users to query for specific invoices through paginated responses, allowing users to query for specific invoices through
@ -386,7 +382,7 @@ service Lightning {
}; };
} }
/** lncli: `lookupinvoice` /* lncli: `lookupinvoice`
LookupInvoice attempts to look up an invoice according to its payment hash. LookupInvoice attempts to look up an invoice according to its payment hash.
The passed payment hash *must* be exactly 32 bytes, if not, an error is The passed payment hash *must* be exactly 32 bytes, if not, an error is
returned. returned.
@ -397,7 +393,7 @@ service Lightning {
}; };
} }
/** /*
SubscribeInvoices returns a uni-directional stream (server -> client) for SubscribeInvoices returns a uni-directional stream (server -> client) for
notifying the client of newly added/settled invoices. The caller can notifying the client of newly added/settled invoices. The caller can
optionally specify the add_index and/or the settle_index. If the add_index optionally specify the add_index and/or the settle_index. If the add_index
@ -414,7 +410,7 @@ service Lightning {
}; };
} }
/** lncli: `decodepayreq` /* lncli: `decodepayreq`
DecodePayReq takes an encoded payment request string and attempts to decode DecodePayReq takes an encoded payment request string and attempts to decode
it, returning a full description of the conditions encoded within the it, returning a full description of the conditions encoded within the
payment request. payment request.
@ -425,7 +421,7 @@ service Lightning {
}; };
} }
/** lncli: `listpayments` /* lncli: `listpayments`
ListPayments returns a list of all outgoing payments. ListPayments returns a list of all outgoing payments.
*/ */
rpc ListPayments (ListPaymentsRequest) returns (ListPaymentsResponse) { rpc ListPayments (ListPaymentsRequest) returns (ListPaymentsResponse) {
@ -434,7 +430,7 @@ service Lightning {
}; };
}; };
/** /*
DeleteAllPayments deletes all outgoing payments from DB. DeleteAllPayments deletes all outgoing payments from DB.
*/ */
rpc DeleteAllPayments (DeleteAllPaymentsRequest) rpc DeleteAllPayments (DeleteAllPaymentsRequest)
@ -444,7 +440,7 @@ service Lightning {
}; };
}; };
/** lncli: `describegraph` /* lncli: `describegraph`
DescribeGraph returns a description of the latest graph state from the DescribeGraph returns a description of the latest graph state from the
point of view of the node. The graph information is partitioned into two point of view of the node. The graph information is partitioned into two
components: all the nodes/vertexes, and all the edges that connect the components: all the nodes/vertexes, and all the edges that connect the
@ -458,7 +454,7 @@ service Lightning {
}; };
} }
/** lncli: `getnodemetrics` /* lncli: `getnodemetrics`
GetNodeMetrics returns node metrics calculated from the graph. Currently GetNodeMetrics returns node metrics calculated from the graph. Currently
the only supported metric is betweenness centrality of individual nodes. the only supported metric is betweenness centrality of individual nodes.
*/ */
@ -468,7 +464,7 @@ service Lightning {
}; };
} }
/** lncli: `getchaninfo` /* lncli: `getchaninfo`
GetChanInfo returns the latest authenticated network announcement for the GetChanInfo returns the latest authenticated network announcement for the
given channel identified by its channel ID: an 8-byte integer which given channel identified by its channel ID: an 8-byte integer which
uniquely identifies the location of transaction's funding output within the uniquely identifies the location of transaction's funding output within the
@ -480,7 +476,7 @@ service Lightning {
}; };
} }
/** lncli: `getnodeinfo` /* lncli: `getnodeinfo`
GetNodeInfo returns the latest advertised, aggregated, and authenticated GetNodeInfo returns the latest advertised, aggregated, and authenticated
channel information for the specified node identified by its public key. channel information for the specified node identified by its public key.
*/ */
@ -490,7 +486,7 @@ service Lightning {
}; };
} }
/** lncli: `queryroutes` /* lncli: `queryroutes`
QueryRoutes attempts to query the daemon's Channel Router for a possible QueryRoutes attempts to query the daemon's Channel Router for a possible
route to a target destination capable of carrying a specific amount of route to a target destination capable of carrying a specific amount of
satoshis. The returned route contains the full details required to craft and satoshis. The returned route contains the full details required to craft and
@ -503,7 +499,7 @@ service Lightning {
}; };
} }
/** lncli: `getnetworkinfo` /* lncli: `getnetworkinfo`
GetNetworkInfo returns some basic stats about the known channel graph from GetNetworkInfo returns some basic stats about the known channel graph from
the point of view of the node. the point of view of the node.
*/ */
@ -513,13 +509,13 @@ service Lightning {
}; };
} }
/** lncli: `stop` /* lncli: `stop`
StopDaemon will send a shutdown request to the interrupt handler, triggering StopDaemon will send a shutdown request to the interrupt handler, triggering
a graceful shutdown of the daemon. a graceful shutdown of the daemon.
*/ */
rpc StopDaemon (StopRequest) returns (StopResponse); rpc StopDaemon (StopRequest) returns (StopResponse);
/** /*
SubscribeChannelGraph launches a streaming RPC that allows the caller to SubscribeChannelGraph launches a streaming RPC that allows the caller to
receive notifications upon any changes to the channel graph topology from receive notifications upon any changes to the channel graph topology from
the point of view of the responding node. Events notified include: new the point of view of the responding node. Events notified include: new
@ -530,7 +526,7 @@ service Lightning {
rpc SubscribeChannelGraph (GraphTopologySubscription) rpc SubscribeChannelGraph (GraphTopologySubscription)
returns (stream GraphTopologyUpdate); returns (stream GraphTopologyUpdate);
/** lncli: `debuglevel` /* lncli: `debuglevel`
DebugLevel allows a caller to programmatically set the logging verbosity of DebugLevel allows a caller to programmatically set the logging verbosity of
lnd. The logging can be targeted according to a coarse daemon-wide logging lnd. The logging can be targeted according to a coarse daemon-wide logging
level, or in a granular fashion to specify the logging for a target level, or in a granular fashion to specify the logging for a target
@ -538,7 +534,7 @@ service Lightning {
*/ */
rpc DebugLevel (DebugLevelRequest) returns (DebugLevelResponse); rpc DebugLevel (DebugLevelRequest) returns (DebugLevelResponse);
/** lncli: `feereport` /* lncli: `feereport`
FeeReport allows the caller to obtain a report detailing the current fee FeeReport allows the caller to obtain a report detailing the current fee
schedule enforced by the node globally for each channel. schedule enforced by the node globally for each channel.
*/ */
@ -548,7 +544,7 @@ service Lightning {
}; };
} }
/** lncli: `updatechanpolicy` /* lncli: `updatechanpolicy`
UpdateChannelPolicy allows the caller to update the fee schedule and UpdateChannelPolicy allows the caller to update the fee schedule and
channel policies for all channels globally, or a particular channel. channel policies for all channels globally, or a particular channel.
*/ */
@ -560,7 +556,7 @@ service Lightning {
}; };
} }
/** lncli: `fwdinghistory` /* lncli: `fwdinghistory`
ForwardingHistory allows the caller to query the htlcswitch for a record of ForwardingHistory allows the caller to query the htlcswitch for a record of
all HTLCs forwarded within the target time range, and integer offset all HTLCs forwarded within the target time range, and integer offset
within that time range. If no time-range is specified, then the first chunk within that time range. If no time-range is specified, then the first chunk
@ -580,7 +576,7 @@ service Lightning {
}; };
}; };
/** lncli: `exportchanbackup` /* lncli: `exportchanbackup`
ExportChannelBackup attempts to return an encrypted static channel backup ExportChannelBackup attempts to return an encrypted static channel backup
for the target channel identified by it channel point. The backup is for the target channel identified by it channel point. The backup is
encrypted with a key generated from the aezeed seed of the user. The encrypted with a key generated from the aezeed seed of the user. The
@ -595,7 +591,7 @@ service Lightning {
}; };
}; };
/** /*
ExportAllChannelBackups returns static channel backups for all existing ExportAllChannelBackups returns static channel backups for all existing
channels known to lnd. A set of regular singular static channel backups for channels known to lnd. A set of regular singular static channel backups for
each channel are returned. Additionally, a multi-channel backup is returned each channel are returned. Additionally, a multi-channel backup is returned
@ -609,7 +605,7 @@ service Lightning {
}; };
}; };
/** /*
VerifyChanBackup allows a caller to verify the integrity of a channel backup VerifyChanBackup allows a caller to verify the integrity of a channel backup
snapshot. This method will accept either a packed Single or a packed Multi. snapshot. This method will accept either a packed Single or a packed Multi.
Specifying both will result in an error. Specifying both will result in an error.
@ -622,7 +618,7 @@ service Lightning {
}; };
}; };
/** lncli: `restorechanbackup` /* lncli: `restorechanbackup`
RestoreChannelBackups accepts a set of singular channel backups, or a RestoreChannelBackups accepts a set of singular channel backups, or a
single encrypted multi-chan backup and attempts to recover any funds single encrypted multi-chan backup and attempts to recover any funds
remaining within the channel. If we are able to unpack the backup, then the remaining within the channel. If we are able to unpack the backup, then the
@ -636,7 +632,7 @@ service Lightning {
}; };
}; };
/** /*
SubscribeChannelBackups allows a client to sub-subscribe to the most up to SubscribeChannelBackups allows a client to sub-subscribe to the most up to
date information concerning the state of all channel backups. Each time a date information concerning the state of all channel backups. Each time a
new channel is added, we return the new set of channels, along with a new channel is added, we return the new set of channels, along with a
@ -649,7 +645,7 @@ service Lightning {
returns (stream ChanBackupSnapshot) { returns (stream ChanBackupSnapshot) {
}; };
/** lncli: `bakemacaroon` /* lncli: `bakemacaroon`
BakeMacaroon allows the creation of a new macaroon with custom read and BakeMacaroon allows the creation of a new macaroon with custom read and
write permissions. No first-party caveats are added since this can be done write permissions. No first-party caveats are added since this can be done
offline. offline.
@ -663,51 +659,51 @@ service Lightning {
} }
message Utxo { message Utxo {
/// The type of address // The type of address
AddressType address_type = 1; AddressType address_type = 1;
/// The address // The address
string address = 2; string address = 2;
/// The value of the unspent coin in satoshis // The value of the unspent coin in satoshis
int64 amount_sat = 3; int64 amount_sat = 3;
/// The pkscript in hex // The pkscript in hex
string pk_script = 4; string pk_script = 4;
/// The outpoint in format txid:n // The outpoint in format txid:n
OutPoint outpoint = 5; OutPoint outpoint = 5;
/// The number of confirmations for the Utxo // The number of confirmations for the Utxo
int64 confirmations = 6; int64 confirmations = 6;
} }
message Transaction { message Transaction {
/// The transaction hash // The transaction hash
string tx_hash = 1; string tx_hash = 1;
/// The transaction amount, denominated in satoshis // The transaction amount, denominated in satoshis
int64 amount = 2; int64 amount = 2;
/// The number of confirmations // The number of confirmations
int32 num_confirmations = 3; int32 num_confirmations = 3;
/// The hash of the block this transaction was included in // The hash of the block this transaction was included in
string block_hash = 4; string block_hash = 4;
/// The height of the block this transaction was included in // The height of the block this transaction was included in
int32 block_height = 5; int32 block_height = 5;
/// Timestamp of this transaction // Timestamp of this transaction
int64 time_stamp = 6; int64 time_stamp = 6;
/// Fees paid for this transaction // Fees paid for this transaction
int64 total_fees = 7; int64 total_fees = 7;
/// Addresses that received funds for this transaction // Addresses that received funds for this transaction
repeated string dest_addresses = 8; repeated string dest_addresses = 8;
/// The raw transaction hex. // The raw transaction hex.
string raw_tx_hex = 9; string raw_tx_hex = 9;
} }
message GetTransactionsRequest { message GetTransactionsRequest {
@ -728,84 +724,84 @@ message GetTransactionsRequest {
} }
message TransactionDetails { message TransactionDetails {
/// The list of transactions relevant to the wallet. // The list of transactions relevant to the wallet.
repeated Transaction transactions = 1; repeated Transaction transactions = 1;
} }
message FeeLimit { message FeeLimit {
oneof limit { oneof limit {
/** /*
The fee limit expressed as a fixed amount of satoshis. The fee limit expressed as a fixed amount of satoshis.
The fields fixed and fixed_msat are mutually exclusive. The fields fixed and fixed_msat are mutually exclusive.
*/ */
int64 fixed = 1; int64 fixed = 1;
/** /*
The fee limit expressed as a fixed amount of millisatoshis. The fee limit expressed as a fixed amount of millisatoshis.
The fields fixed and fixed_msat are mutually exclusive. The fields fixed and fixed_msat are mutually exclusive.
*/ */
int64 fixed_msat = 3; int64 fixed_msat = 3;
/// The fee limit expressed as a percentage of the payment amount. // The fee limit expressed as a percentage of the payment amount.
int64 percent = 2; int64 percent = 2;
} }
} }
message SendRequest { message SendRequest {
/** /*
The identity pubkey of the payment recipient. When using REST, this field The identity pubkey of the payment recipient. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
bytes dest = 1; bytes dest = 1;
/** /*
The hex-encoded identity pubkey of the payment recipient. Deprecated now The hex-encoded identity pubkey of the payment recipient. Deprecated now
that the REST gateway supports base64 encoding of bytes fields. that the REST gateway supports base64 encoding of bytes fields.
*/ */
string dest_string = 2 [deprecated = true]; string dest_string = 2 [deprecated = true];
/** /*
The amount to send expressed in satoshis. The amount to send expressed in satoshis.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
*/ */
int64 amt = 3; int64 amt = 3;
/** /*
The amount to send expressed in millisatoshis. The amount to send expressed in millisatoshis.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
*/ */
int64 amt_msat = 12; int64 amt_msat = 12;
/** /*
The hash to use within the payment's HTLC. When using REST, this field The hash to use within the payment's HTLC. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
bytes payment_hash = 4; bytes payment_hash = 4;
/** /*
The hex-encoded hash to use within the payment's HTLC. Deprecated now The hex-encoded hash to use within the payment's HTLC. Deprecated now
that the REST gateway supports base64 encoding of bytes fields. that the REST gateway supports base64 encoding of bytes fields.
*/ */
string payment_hash_string = 5 [deprecated = true]; string payment_hash_string = 5 [deprecated = true];
/** /*
A bare-bones invoice for a payment within the Lightning Network. With the A bare-bones invoice for a payment within the Lightning Network. With the
details of the invoice, the sender has all the data necessary to send a details of the invoice, the sender has all the data necessary to send a
payment to the recipient. payment to the recipient.
*/ */
string payment_request = 6; string payment_request = 6;
/** /*
The CLTV delta from the current height that should be used to set the The CLTV delta from the current height that should be used to set the
timelock for the final hop. timelock for the final hop.
*/ */
int32 final_cltv_delta = 7; int32 final_cltv_delta = 7;
/** /*
The maximum number of satoshis that will be paid as a fee of the payment. The maximum number of satoshis that will be paid as a fee of the payment.
This value can be represented either as a percentage of the amount being This value can be represented either as a percentage of the amount being
sent, or as a fixed amount of the maximum fee the user is willing the pay to sent, or as a fixed amount of the maximum fee the user is willing the pay to
@ -813,25 +809,25 @@ message SendRequest {
*/ */
FeeLimit fee_limit = 8; FeeLimit fee_limit = 8;
/** /*
The channel id of the channel that must be taken to the first hop. If zero, The channel id of the channel that must be taken to the first hop. If zero,
any channel may be used. any channel may be used.
*/ */
uint64 outgoing_chan_id = 9 [jstype = JS_STRING]; uint64 outgoing_chan_id = 9 [jstype = JS_STRING];
/** /*
The pubkey of the last hop of the route. If empty, any hop may be used. The pubkey of the last hop of the route. If empty, any hop may be used.
*/ */
bytes last_hop_pubkey = 13; bytes last_hop_pubkey = 13;
/** /*
An optional maximum total time lock for the route. This should not exceed An optional maximum total time lock for the route. This should not exceed
lnd's `--max-cltv-expiry` setting. If zero, then the value of lnd's `--max-cltv-expiry` setting. If zero, then the value of
`--max-cltv-expiry` is enforced. `--max-cltv-expiry` is enforced.
*/ */
uint32 cltv_limit = 10; uint32 cltv_limit = 10;
/** /*
An optional field that can be used to pass an arbitrary set of TLV records An optional field that can be used to pass an arbitrary set of TLV records
to a peer which understands the new records. This can be used to pass to a peer which understands the new records. This can be used to pass
application specific data during the payment attempt. Record types are application specific data during the payment attempt. Record types are
@ -840,10 +836,10 @@ message SendRequest {
*/ */
map<uint64, bytes> dest_custom_records = 11; map<uint64, bytes> dest_custom_records = 11;
/// If set, circular payments to self are permitted. // If set, circular payments to self are permitted.
bool allow_self_payment = 14; bool allow_self_payment = 14;
/** /*
Features assumed to be supported by the final node. All transitive feature Features assumed to be supported by the final node. All transitive feature
dependencies must also be set properly. For a given feature bit pair, either dependencies must also be set properly. For a given feature bit pair, either
optional or remote may be set, but not both. If this field is nil or empty, optional or remote may be set, but not both. If this field is nil or empty,
@ -861,13 +857,13 @@ message SendResponse {
} }
message SendToRouteRequest { message SendToRouteRequest {
/** /*
The payment hash to use for the HTLC. When using REST, this field must be The payment hash to use for the HTLC. When using REST, this field must be
encoded as base64. encoded as base64.
*/ */
bytes payment_hash = 1; bytes payment_hash = 1;
/** /*
An optional hex-encoded payment hash to be used for the HTLC. Deprecated now An optional hex-encoded payment hash to be used for the HTLC. Deprecated now
that the REST gateway supports base64 encoding of bytes fields. that the REST gateway supports base64 encoding of bytes fields.
*/ */
@ -875,156 +871,156 @@ message SendToRouteRequest {
reserved 3; reserved 3;
/// Route that should be used to attempt to complete the payment. // Route that should be used to attempt to complete the payment.
Route route = 4; Route route = 4;
} }
message ChannelAcceptRequest { message ChannelAcceptRequest {
/// The pubkey of the node that wishes to open an inbound channel. // The pubkey of the node that wishes to open an inbound channel.
bytes node_pubkey = 1; bytes node_pubkey = 1;
/// The hash of the genesis block that the proposed channel resides in. // The hash of the genesis block that the proposed channel resides in.
bytes chain_hash = 2; bytes chain_hash = 2;
/// The pending channel id. // The pending channel id.
bytes pending_chan_id = 3; bytes pending_chan_id = 3;
/// The funding amount in satoshis that initiator wishes to use in the // The funding amount in satoshis that initiator wishes to use in the
/// channel. // channel.
uint64 funding_amt = 4; uint64 funding_amt = 4;
/// The push amount of the proposed channel in millisatoshis. // The push amount of the proposed channel in millisatoshis.
uint64 push_amt = 5; uint64 push_amt = 5;
/// The dust limit of the initiator's commitment tx. // The dust limit of the initiator's commitment tx.
uint64 dust_limit = 6; uint64 dust_limit = 6;
/// The maximum amount of coins in millisatoshis that can be pending in this // The maximum amount of coins in millisatoshis that can be pending in this
/// channel. // channel.
uint64 max_value_in_flight = 7; uint64 max_value_in_flight = 7;
/// The minimum amount of satoshis the initiator requires us to have at all // The minimum amount of satoshis the initiator requires us to have at all
/// times. // times.
uint64 channel_reserve = 8; uint64 channel_reserve = 8;
/// The smallest HTLC in millisatoshis that the initiator will accept. // The smallest HTLC in millisatoshis that the initiator will accept.
uint64 min_htlc = 9; uint64 min_htlc = 9;
/// The initial fee rate that the initiator suggests for both commitment // The initial fee rate that the initiator suggests for both commitment
/// transactions. // transactions.
uint64 fee_per_kw = 10; uint64 fee_per_kw = 10;
/** /*
The number of blocks to use for the relative time lock in the pay-to-self The number of blocks to use for the relative time lock in the pay-to-self
output of both commitment transactions. output of both commitment transactions.
*/ */
uint32 csv_delay = 11; uint32 csv_delay = 11;
/// The total number of incoming HTLC's that the initiator will accept. // The total number of incoming HTLC's that the initiator will accept.
uint32 max_accepted_htlcs = 12; uint32 max_accepted_htlcs = 12;
/// A bit-field which the initiator uses to specify proposed channel // A bit-field which the initiator uses to specify proposed channel
/// behavior. // behavior.
uint32 channel_flags = 13; uint32 channel_flags = 13;
} }
message ChannelAcceptResponse { message ChannelAcceptResponse {
/// Whether or not the client accepts the channel. // Whether or not the client accepts the channel.
bool accept = 1; bool accept = 1;
/// The pending channel id to which this response applies. // The pending channel id to which this response applies.
bytes pending_chan_id = 2; bytes pending_chan_id = 2;
} }
message ChannelPoint { message ChannelPoint {
oneof funding_txid { oneof funding_txid {
/** /*
Txid of the funding transaction. When using REST, this field must be Txid of the funding transaction. When using REST, this field must be
encoded as base64. encoded as base64.
*/ */
bytes funding_txid_bytes = 1; bytes funding_txid_bytes = 1;
/** /*
Hex-encoded string representing the byte-reversed hash of the funding Hex-encoded string representing the byte-reversed hash of the funding
transaction. transaction.
*/ */
string funding_txid_str = 2; string funding_txid_str = 2;
} }
/// The index of the output of the funding transaction // The index of the output of the funding transaction
uint32 output_index = 3; uint32 output_index = 3;
} }
message OutPoint { message OutPoint {
/// Raw bytes representing the transaction id. // Raw bytes representing the transaction id.
bytes txid_bytes = 1; bytes txid_bytes = 1;
/// Reversed, hex-encoded string representing the transaction id. // Reversed, hex-encoded string representing the transaction id.
string txid_str = 2; string txid_str = 2;
/// The index of the output on the transaction. // The index of the output on the transaction.
uint32 output_index = 3; uint32 output_index = 3;
} }
message LightningAddress { message LightningAddress {
/// The identity pubkey of the Lightning node // The identity pubkey of the Lightning node
string pubkey = 1; string pubkey = 1;
/// The network location of the lightning node, e.g. `69.69.69.69:1337` or // The network location of the lightning node, e.g. `69.69.69.69:1337` or
/// `localhost:10011` // `localhost:10011`
string host = 2; string host = 2;
} }
message EstimateFeeRequest { message EstimateFeeRequest {
/// The map from addresses to amounts for the transaction. // The map from addresses to amounts for the transaction.
map<string, int64> AddrToAmount = 1; map<string, int64> AddrToAmount = 1;
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
int32 target_conf = 2; int32 target_conf = 2;
} }
message EstimateFeeResponse { message EstimateFeeResponse {
/// The total fee in satoshis. // The total fee in satoshis.
int64 fee_sat = 1; int64 fee_sat = 1;
/// The fee rate in satoshi/byte. // The fee rate in satoshi/byte.
int64 feerate_sat_per_byte = 2; int64 feerate_sat_per_byte = 2;
} }
message SendManyRequest { message SendManyRequest {
/// The map from addresses to amounts // The map from addresses to amounts
map<string, int64> AddrToAmount = 1; map<string, int64> AddrToAmount = 1;
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
int32 target_conf = 3; int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// transaction. // transaction.
int64 sat_per_byte = 5; int64 sat_per_byte = 5;
} }
message SendManyResponse { message SendManyResponse {
/// The id of the transaction // The id of the transaction
string txid = 1; string txid = 1;
} }
message SendCoinsRequest { message SendCoinsRequest {
/// The address to send coins to // The address to send coins to
string addr = 1; string addr = 1;
/// The amount in satoshis to send // The amount in satoshis to send
int64 amount = 2; int64 amount = 2;
/// The target number of blocks that this transaction should be confirmed // The target number of blocks that this transaction should be confirmed
/// by. // by.
int32 target_conf = 3; int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// transaction. // transaction.
int64 sat_per_byte = 5; int64 sat_per_byte = 5;
/** /*
If set, then the amount field will be ignored, and lnd will attempt to If set, then the amount field will be ignored, and lnd will attempt to
send all the coins under control of the internal wallet to the specified send all the coins under control of the internal wallet to the specified
address. address.
@ -1032,23 +1028,23 @@ message SendCoinsRequest {
bool send_all = 6; bool send_all = 6;
} }
message SendCoinsResponse { message SendCoinsResponse {
/// The transaction ID of the transaction // The transaction ID of the transaction
string txid = 1; string txid = 1;
} }
message ListUnspentRequest { message ListUnspentRequest {
/// The minimum number of confirmations to be included. // The minimum number of confirmations to be included.
int32 min_confs = 1; int32 min_confs = 1;
/// The maximum number of confirmations to be included. // The maximum number of confirmations to be included.
int32 max_confs = 2; int32 max_confs = 2;
} }
message ListUnspentResponse { message ListUnspentResponse {
/// A list of utxos // A list of utxos
repeated Utxo utxos = 1; repeated Utxo utxos = 1;
} }
/** /*
`AddressType` has to be one of: `AddressType` has to be one of:
- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0) - `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)
@ -1062,49 +1058,49 @@ enum AddressType {
} }
message NewAddressRequest { message NewAddressRequest {
/// The address type // The address type
AddressType type = 1; AddressType type = 1;
} }
message NewAddressResponse { message NewAddressResponse {
/// The newly generated wallet address // The newly generated wallet address
string address = 1; string address = 1;
} }
message SignMessageRequest { message SignMessageRequest {
/** /*
The message to be signed. When using REST, this field must be encoded as The message to be signed. When using REST, this field must be encoded as
base64. base64.
*/ */
bytes msg = 1; bytes msg = 1;
} }
message SignMessageResponse { message SignMessageResponse {
/// The signature for the given message // The signature for the given message
string signature = 1; string signature = 1;
} }
message VerifyMessageRequest { message VerifyMessageRequest {
/** /*
The message over which the signature is to be verified. When using REST, The message over which the signature is to be verified. When using REST,
this field must be encoded as base64. this field must be encoded as base64.
*/ */
bytes msg = 1; bytes msg = 1;
/// The signature to be verified over the given message // The signature to be verified over the given message
string signature = 2; string signature = 2;
} }
message VerifyMessageResponse { message VerifyMessageResponse {
/// Whether the signature was valid over the given message // Whether the signature was valid over the given message
bool valid = 1; bool valid = 1;
/// The pubkey recovered from the signature // The pubkey recovered from the signature
string pubkey = 2; string pubkey = 2;
} }
message ConnectPeerRequest { message ConnectPeerRequest {
/// Lightning address of the peer, in the format `<pubkey>@host` // Lightning address of the peer, in the format `<pubkey>@host`
LightningAddress addr = 1; LightningAddress addr = 1;
/** If set, the daemon will attempt to persistently connect to the target /* If set, the daemon will attempt to persistently connect to the target
* peer. Otherwise, the call will be synchronous. */ * peer. Otherwise, the call will be synchronous. */
bool perm = 2; bool perm = 2;
} }
@ -1112,7 +1108,7 @@ message ConnectPeerResponse {
} }
message DisconnectPeerRequest { message DisconnectPeerRequest {
/// The pubkey of the node to disconnect from // The pubkey of the node to disconnect from
string pub_key = 1; string pub_key = 1;
} }
message DisconnectPeerResponse { message DisconnectPeerResponse {
@ -1126,13 +1122,13 @@ message HTLC {
} }
enum CommitmentType { enum CommitmentType {
/** /*
A channel using the legacy commitment format having tweaked to_remote A channel using the legacy commitment format having tweaked to_remote
keys. keys.
*/ */
LEGACY = 0; LEGACY = 0;
/** /*
A channel that uses the modern commitment format where the key in the A channel that uses the modern commitment format where the key in the
output of the remote party does not change each state. This makes back output of the remote party does not change each state. This makes back
up and recovery easier as when the channel is closed, the funds go up and recovery easier as when the channel is closed, the funds go
@ -1140,50 +1136,50 @@ enum CommitmentType {
*/ */
STATIC_REMOTE_KEY = 1; STATIC_REMOTE_KEY = 1;
/** /*
A channel that uses a commitment format that has anchor outputs on the A channel that uses a commitment format that has anchor outputs on the
commitments, allowing fee bumping after a force close transaction has commitments, allowing fee bumping after a force close transaction has
been broadcast. been broadcast.
*/ */
ANCHORS = 2; ANCHORS = 2;
/** /*
Returned when the commitment type isn't known or unavailable. Returned when the commitment type isn't known or unavailable.
*/ */
UNKNOWN_COMMITMENT_TYPE = 999; UNKNOWN_COMMITMENT_TYPE = 999;
} }
message Channel { message Channel {
/// Whether this channel is active or not // Whether this channel is active or not
bool active = 1; bool active = 1;
/// The identity pubkey of the remote node // The identity pubkey of the remote node
string remote_pubkey = 2; string remote_pubkey = 2;
/** /*
The outpoint (txid:index) of the funding transaction. With this value, Bob The outpoint (txid:index) of the funding transaction. With this value, Bob
will be able to generate a signature for Alice's version of the commitment will be able to generate a signature for Alice's version of the commitment
transaction. transaction.
*/ */
string channel_point = 3; string channel_point = 3;
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
*/ */
uint64 chan_id = 4 [jstype = JS_STRING]; uint64 chan_id = 4 [jstype = JS_STRING];
/// The total amount of funds held in this channel // The total amount of funds held in this channel
int64 capacity = 5; int64 capacity = 5;
/// This node's current balance in this channel // This node's current balance in this channel
int64 local_balance = 6; int64 local_balance = 6;
/// The counterparty's current balance in this channel // The counterparty's current balance in this channel
int64 remote_balance = 7; int64 remote_balance = 7;
/** /*
The amount calculated to be paid in fees for the current set of commitment The amount calculated to be paid in fees for the current set of commitment
transactions. The fee amount is persisted with the channel in order to transactions. The fee amount is persisted with the channel in order to
allow the fee amount to be removed and recalculated with each channel state allow the fee amount to be removed and recalculated with each channel state
@ -1191,83 +1187,83 @@ message Channel {
*/ */
int64 commit_fee = 8; int64 commit_fee = 8;
/// The weight of the commitment transaction // The weight of the commitment transaction
int64 commit_weight = 9; int64 commit_weight = 9;
/** /*
The required number of satoshis per kilo-weight that the requester will pay The required number of satoshis per kilo-weight that the requester will pay
at all times, for both the funding transaction and commitment transaction. at all times, for both the funding transaction and commitment transaction.
This value can later be updated once the channel is open. This value can later be updated once the channel is open.
*/ */
int64 fee_per_kw = 10; int64 fee_per_kw = 10;
/// The unsettled balance in this channel // The unsettled balance in this channel
int64 unsettled_balance = 11; int64 unsettled_balance = 11;
/** /*
The total number of satoshis we've sent within this channel. The total number of satoshis we've sent within this channel.
*/ */
int64 total_satoshis_sent = 12; int64 total_satoshis_sent = 12;
/** /*
The total number of satoshis we've received within this channel. The total number of satoshis we've received within this channel.
*/ */
int64 total_satoshis_received = 13; int64 total_satoshis_received = 13;
/** /*
The total number of updates conducted within this channel. The total number of updates conducted within this channel.
*/ */
uint64 num_updates = 14; uint64 num_updates = 14;
/** /*
The list of active, uncleared HTLCs currently pending within the channel. The list of active, uncleared HTLCs currently pending within the channel.
*/ */
repeated HTLC pending_htlcs = 15; repeated HTLC pending_htlcs = 15;
/** /*
The CSV delay expressed in relative blocks. If the channel is force closed, The CSV delay expressed in relative blocks. If the channel is force closed,
we will need to wait for this many blocks before we can regain our funds. we will need to wait for this many blocks before we can regain our funds.
*/ */
uint32 csv_delay = 16; uint32 csv_delay = 16;
/// Whether this channel is advertised to the network or not. // Whether this channel is advertised to the network or not.
bool private = 17; bool private = 17;
/// True if we were the ones that created the channel. // True if we were the ones that created the channel.
bool initiator = 18; bool initiator = 18;
/// A set of flags showing the current state of the channel. // A set of flags showing the current state of the channel.
string chan_status_flags = 19; string chan_status_flags = 19;
/// The minimum satoshis this node is required to reserve in its balance. // The minimum satoshis this node is required to reserve in its balance.
int64 local_chan_reserve_sat = 20; int64 local_chan_reserve_sat = 20;
/** /*
The minimum satoshis the other node is required to reserve in its balance. The minimum satoshis the other node is required to reserve in its balance.
*/ */
int64 remote_chan_reserve_sat = 21; int64 remote_chan_reserve_sat = 21;
/// Deprecated. Use commitment_type. // Deprecated. Use commitment_type.
bool static_remote_key = 22 [deprecated = true]; bool static_remote_key = 22 [deprecated = true];
/// The commitment type used by this channel. // The commitment type used by this channel.
CommitmentType commitment_type = 26; CommitmentType commitment_type = 26;
/** /*
The number of seconds that the channel has been monitored by the channel The number of seconds that the channel has been monitored by the channel
scoring system. Scores are currently not persisted, so this value may be scoring system. Scores are currently not persisted, so this value may be
less than the lifetime of the channel [EXPERIMENTAL]. less than the lifetime of the channel [EXPERIMENTAL].
*/ */
int64 lifetime = 23; int64 lifetime = 23;
/** /*
The number of seconds that the remote peer has been observed as being online The number of seconds that the remote peer has been observed as being online
by the channel scoring system over the lifetime of the channel by the channel scoring system over the lifetime of the channel
[EXPERIMENTAL]. [EXPERIMENTAL].
*/ */
int64 uptime = 24; int64 uptime = 24;
/** /*
Close address is the address that we will enforce payout to on cooperative Close address is the address that we will enforce payout to on cooperative
close if the channel was opened utilizing option upfront shutdown. This close if the channel was opened utilizing option upfront shutdown. This
value can be set on channel open by setting close_address in an open channel value can be set on channel open by setting close_address in an open channel
@ -1285,7 +1281,7 @@ message Channel {
*/ */
uint64 push_amount_sat = 27; uint64 push_amount_sat = 27;
/** /*
This uint32 indicates if this channel is to be considered 'frozen'. A This uint32 indicates if this channel is to be considered 'frozen'. A
frozen channel doest not allow a cooperative channel close by the frozen channel doest not allow a cooperative channel close by the
initiator. The thaw_height is the height that this restriction stops initiator. The thaw_height is the height that this restriction stops
@ -1301,14 +1297,14 @@ message ListChannelsRequest {
bool public_only = 3; bool public_only = 3;
bool private_only = 4; bool private_only = 4;
/** /*
Filters the response for channels with a target peer's pubkey. If peer is Filters the response for channels with a target peer's pubkey. If peer is
empty, all channels will be returned. empty, all channels will be returned.
*/ */
bytes peer = 5; bytes peer = 5;
} }
message ListChannelsResponse { message ListChannelsResponse {
/// The list of active channels // The list of active channels
repeated Channel channels = 11; repeated Channel channels = 11;
} }
@ -1320,31 +1316,31 @@ enum Initiator {
} }
message ChannelCloseSummary { message ChannelCloseSummary {
/// The outpoint (txid:index) of the funding transaction. // The outpoint (txid:index) of the funding transaction.
string channel_point = 1; string channel_point = 1;
/// The unique channel ID for the channel. // The unique channel ID for the channel.
uint64 chan_id = 2 [jstype = JS_STRING]; uint64 chan_id = 2 [jstype = JS_STRING];
/// The hash of the genesis block that this channel resides within. // The hash of the genesis block that this channel resides within.
string chain_hash = 3; string chain_hash = 3;
/// The txid of the transaction which ultimately closed this channel. // The txid of the transaction which ultimately closed this channel.
string closing_tx_hash = 4; string closing_tx_hash = 4;
/// Public key of the remote peer that we formerly had a channel with. // Public key of the remote peer that we formerly had a channel with.
string remote_pubkey = 5; string remote_pubkey = 5;
/// Total capacity of the channel. // Total capacity of the channel.
int64 capacity = 6; int64 capacity = 6;
/// Height at which the funding transaction was spent. // Height at which the funding transaction was spent.
uint32 close_height = 7; uint32 close_height = 7;
/// Settled balance at the time of channel closure // Settled balance at the time of channel closure
int64 settled_balance = 8; int64 settled_balance = 8;
/// The sum of all the time-locked outputs at the time of channel closure // The sum of all the time-locked outputs at the time of channel closure
int64 time_locked_balance = 9; int64 time_locked_balance = 9;
enum ClosureType { enum ClosureType {
@ -1356,17 +1352,17 @@ message ChannelCloseSummary {
ABANDONED = 5; ABANDONED = 5;
} }
/// Details on how the channel was closed. // Details on how the channel was closed.
ClosureType close_type = 10; ClosureType close_type = 10;
/** /*
Open initiator is the party that initiated opening the channel. Note that Open initiator is the party that initiated opening the channel. Note that
this value may be unknown if the channel was closed before we migrated to this value may be unknown if the channel was closed before we migrated to
store open channel information after close. store open channel information after close.
*/ */
Initiator open_initiator = 11; Initiator open_initiator = 11;
/** /*
Close initiator indicates which party initiated the close. This value will Close initiator indicates which party initiated the close. This value will
be unknown for channels that were cooperatively closed before we started be unknown for channels that were cooperatively closed before we started
tracking cooperative close initiators. Note that this indicates which party tracking cooperative close initiators. Note that this indicates which party
@ -1390,42 +1386,42 @@ message ClosedChannelsResponse {
} }
message Peer { message Peer {
/// The identity pubkey of the peer // The identity pubkey of the peer
string pub_key = 1; string pub_key = 1;
/// Network address of the peer; eg `127.0.0.1:10011` // Network address of the peer; eg `127.0.0.1:10011`
string address = 3; string address = 3;
/// Bytes of data transmitted to this peer // Bytes of data transmitted to this peer
uint64 bytes_sent = 4; uint64 bytes_sent = 4;
/// Bytes of data transmitted from this peer // Bytes of data transmitted from this peer
uint64 bytes_recv = 5; uint64 bytes_recv = 5;
/// Satoshis sent to this peer // Satoshis sent to this peer
int64 sat_sent = 6; int64 sat_sent = 6;
/// Satoshis received from this peer // Satoshis received from this peer
int64 sat_recv = 7; int64 sat_recv = 7;
/// A channel is inbound if the counterparty initiated the channel // A channel is inbound if the counterparty initiated the channel
bool inbound = 8; bool inbound = 8;
/// Ping time to this peer // Ping time to this peer
int64 ping_time = 9; int64 ping_time = 9;
enum SyncType { enum SyncType {
/** /*
Denotes that we cannot determine the peer's current sync type. Denotes that we cannot determine the peer's current sync type.
*/ */
UNKNOWN_SYNC = 0; UNKNOWN_SYNC = 0;
/** /*
Denotes that we are actively receiving new graph updates from the peer. Denotes that we are actively receiving new graph updates from the peer.
*/ */
ACTIVE_SYNC = 1; ACTIVE_SYNC = 1;
/** /*
Denotes that we are not receiving new graph updates from the peer. Denotes that we are not receiving new graph updates from the peer.
*/ */
PASSIVE_SYNC = 2; PASSIVE_SYNC = 2;
@ -1434,7 +1430,7 @@ message Peer {
// The type of sync we are currently performing with this peer. // The type of sync we are currently performing with this peer.
SyncType sync_type = 10; SyncType sync_type = 10;
/// Features advertised by the remote peer in their init message. // Features advertised by the remote peer in their init message.
map<uint32, Feature> features = 11; map<uint32, Feature> features = 11;
/* /*
@ -1464,7 +1460,7 @@ message ListPeersRequest {
bool latest_error = 1; bool latest_error = 1;
} }
message ListPeersResponse { message ListPeersResponse {
/// The list of currently connected peers // The list of currently connected peers
repeated Peer peers = 1; repeated Peer peers = 1;
} }
@ -1472,7 +1468,7 @@ message PeerEventSubscription {
} }
message PeerEvent { message PeerEvent {
/// The identity pubkey of the peer. // The identity pubkey of the peer.
string pub_key = 1; string pub_key = 1;
enum EventType { enum EventType {
@ -1486,49 +1482,49 @@ message PeerEvent {
message GetInfoRequest { message GetInfoRequest {
} }
message GetInfoResponse { message GetInfoResponse {
/// The version of the LND software that the node is running. // The version of the LND software that the node is running.
string version = 14; string version = 14;
/// The SHA1 commit hash that the daemon is compiled with. // The SHA1 commit hash that the daemon is compiled with.
string commit_hash = 20; string commit_hash = 20;
/// The identity pubkey of the current node. // The identity pubkey of the current node.
string identity_pubkey = 1; string identity_pubkey = 1;
/// If applicable, the alias of the current node, e.g. "bob" // If applicable, the alias of the current node, e.g. "bob"
string alias = 2; string alias = 2;
/// The color of the current node in hex code format // The color of the current node in hex code format
string color = 17; string color = 17;
/// Number of pending channels // Number of pending channels
uint32 num_pending_channels = 3; uint32 num_pending_channels = 3;
/// Number of active channels // Number of active channels
uint32 num_active_channels = 4; uint32 num_active_channels = 4;
/// Number of inactive channels // Number of inactive channels
uint32 num_inactive_channels = 15; uint32 num_inactive_channels = 15;
/// Number of peers // Number of peers
uint32 num_peers = 5; uint32 num_peers = 5;
/// The node's current view of the height of the best block // The node's current view of the height of the best block
uint32 block_height = 6; uint32 block_height = 6;
/// The node's current view of the hash of the best block // The node's current view of the hash of the best block
string block_hash = 8; string block_hash = 8;
/// Timestamp of the block best known to the wallet // Timestamp of the block best known to the wallet
int64 best_header_timestamp = 13; int64 best_header_timestamp = 13;
/// Whether the wallet's view is synced to the main chain // Whether the wallet's view is synced to the main chain
bool synced_to_chain = 9; bool synced_to_chain = 9;
// Whether we consider ourselves synced with the public channel graph. // Whether we consider ourselves synced with the public channel graph.
bool synced_to_graph = 18; bool synced_to_graph = 18;
/** /*
Whether the current node is connected to testnet. This field is Whether the current node is connected to testnet. This field is
deprecated and the network field should be used instead deprecated and the network field should be used instead
**/ **/
@ -1536,10 +1532,10 @@ message GetInfoResponse {
reserved 11; reserved 11;
/// A list of active chains the node is connected to // A list of active chains the node is connected to
repeated Chain chains = 16; repeated Chain chains = 16;
/// The URIs of the current node. // The URIs of the current node.
repeated string uris = 12; repeated string uris = 12;
/* /*
@ -1550,10 +1546,10 @@ message GetInfoResponse {
} }
message Chain { message Chain {
/// The blockchain the node is on (eg bitcoin, litecoin) // The blockchain the node is on (eg bitcoin, litecoin)
string chain = 1; string chain = 1;
/// The network the node is on (eg regtest, testnet, mainnet) // The network the node is on (eg regtest, testnet, mainnet)
string network = 2; string network = 2;
} }
@ -1575,23 +1571,23 @@ message ChannelCloseUpdate {
} }
message CloseChannelRequest { message CloseChannelRequest {
/** /*
The outpoint (txid:index) of the funding transaction. With this value, Bob The outpoint (txid:index) of the funding transaction. With this value, Bob
will be able to generate a signature for Alice's version of the commitment will be able to generate a signature for Alice's version of the commitment
transaction. transaction.
*/ */
ChannelPoint channel_point = 1; ChannelPoint channel_point = 1;
/// If true, then the channel will be closed forcibly. This means the // If true, then the channel will be closed forcibly. This means the
/// current commitment transaction will be signed and broadcast. // current commitment transaction will be signed and broadcast.
bool force = 2; bool force = 2;
/// The target number of blocks that the closure transaction should be // The target number of blocks that the closure transaction should be
/// confirmed by. // confirmed by.
int32 target_conf = 3; int32 target_conf = 3;
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// closure transaction. // closure transaction.
int64 sat_per_byte = 4; int64 sat_per_byte = 4;
/* /*
@ -1616,19 +1612,19 @@ message PendingUpdate {
} }
message ReadyForPsbtFunding { message ReadyForPsbtFunding {
/** /*
The P2WSH address of the channel funding multisig address that the below The P2WSH address of the channel funding multisig address that the below
specified amount in satoshis needs to be sent to. specified amount in satoshis needs to be sent to.
*/ */
string funding_address = 1; string funding_address = 1;
/** /*
The exact amount in satoshis that needs to be sent to the above address to The exact amount in satoshis that needs to be sent to the above address to
fund the pending channel. fund the pending channel.
*/ */
int64 funding_amount = 2; int64 funding_amount = 2;
/** /*
A raw PSBT that contains the pending channel output. If a base PSBT was A raw PSBT that contains the pending channel output. If a base PSBT was
provided in the PsbtShim, this is the base PSBT with one additional output. provided in the PsbtShim, this is the base PSBT with one additional output.
If no base PSBT was specified, this is an otherwise empty PSBT with exactly If no base PSBT was specified, this is an otherwise empty PSBT with exactly
@ -1638,51 +1634,51 @@ message ReadyForPsbtFunding {
} }
message OpenChannelRequest { message OpenChannelRequest {
/** /*
The pubkey of the node to open a channel with. When using REST, this field The pubkey of the node to open a channel with. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
bytes node_pubkey = 2; bytes node_pubkey = 2;
/** /*
The hex encoded pubkey of the node to open a channel with. Deprecated now The hex encoded pubkey of the node to open a channel with. Deprecated now
that the REST gateway supports base64 encoding of bytes fields. that the REST gateway supports base64 encoding of bytes fields.
*/ */
string node_pubkey_string = 3 [deprecated = true]; string node_pubkey_string = 3 [deprecated = true];
/// The number of satoshis the wallet should commit to the channel // The number of satoshis the wallet should commit to the channel
int64 local_funding_amount = 4; int64 local_funding_amount = 4;
/// The number of satoshis to push to the remote side as part of the initial // The number of satoshis to push to the remote side as part of the initial
/// commitment state // commitment state
int64 push_sat = 5; int64 push_sat = 5;
/// The target number of blocks that the funding transaction should be // The target number of blocks that the funding transaction should be
/// confirmed by. // confirmed by.
int32 target_conf = 6; int32 target_conf = 6;
/// A manual fee rate set in sat/byte that should be used when crafting the // A manual fee rate set in sat/byte that should be used when crafting the
/// funding transaction. // funding transaction.
int64 sat_per_byte = 7; int64 sat_per_byte = 7;
/// Whether this channel should be private, not announced to the greater // Whether this channel should be private, not announced to the greater
/// network. // network.
bool private = 8; bool private = 8;
/// The minimum value in millisatoshi we will require for incoming HTLCs on // The minimum value in millisatoshi we will require for incoming HTLCs on
/// the channel. // the channel.
int64 min_htlc_msat = 9; int64 min_htlc_msat = 9;
/// The delay we require on the remote's commitment transaction. If this is // The delay we require on the remote's commitment transaction. If this is
/// not set, it will be scaled automatically with the channel size. // not set, it will be scaled automatically with the channel size.
uint32 remote_csv_delay = 10; uint32 remote_csv_delay = 10;
/// The minimum number of confirmations each one of your outputs used for // The minimum number of confirmations each one of your outputs used for
/// the funding transaction must satisfy. // the funding transaction must satisfy.
int32 min_confs = 11; int32 min_confs = 11;
/// Whether unconfirmed outputs should be used as inputs for the funding // Whether unconfirmed outputs should be used as inputs for the funding
/// transaction. // transaction.
bool spend_unconfirmed = 12; bool spend_unconfirmed = 12;
/* /*
@ -1697,7 +1693,7 @@ message OpenChannelRequest {
*/ */
string close_address = 13; string close_address = 13;
/** /*
Funding shims are an optional argument that allow the caller to intercept Funding shims are an optional argument that allow the caller to intercept
certain funding functionality. For example, a shim can be provided to use a certain funding functionality. For example, a shim can be provided to use a
particular key for the commitment key (ideally cold) rather than use one particular key for the commitment key (ideally cold) rather than use one
@ -1708,26 +1704,26 @@ message OpenChannelRequest {
} }
message OpenStatusUpdate { message OpenStatusUpdate {
oneof update { oneof update {
/** /*
Signals that the channel is now fully negotiated and the funding Signals that the channel is now fully negotiated and the funding
transaction published. transaction published.
*/ */
PendingUpdate chan_pending = 1; PendingUpdate chan_pending = 1;
/** /*
Signals that the channel's funding transaction has now reached the Signals that the channel's funding transaction has now reached the
required number of confirmations on chain and can be used. required number of confirmations on chain and can be used.
*/ */
ChannelOpenUpdate chan_open = 3; ChannelOpenUpdate chan_open = 3;
/** /*
Signals that the funding process has been suspended and the construction Signals that the funding process has been suspended and the construction
of a PSBT that funds the channel PK script is now required. of a PSBT that funds the channel PK script is now required.
*/ */
ReadyForPsbtFunding psbt_fund = 5; ReadyForPsbtFunding psbt_fund = 5;
} }
/** /*
The pending channel ID of the created channel. This value may be used to The pending channel ID of the created channel. This value may be used to
further the funding flow manually via the FundingStateStep method. further the funding flow manually via the FundingStateStep method.
*/ */
@ -1735,42 +1731,42 @@ message OpenStatusUpdate {
} }
message KeyLocator { message KeyLocator {
/// The family of key being identified. // The family of key being identified.
int32 key_family = 1; int32 key_family = 1;
/// The precise index of the key being identified. // The precise index of the key being identified.
int32 key_index = 2; int32 key_index = 2;
} }
message KeyDescriptor { message KeyDescriptor {
/** /*
The raw bytes of the key being identified. The raw bytes of the key being identified.
*/ */
bytes raw_key_bytes = 1; bytes raw_key_bytes = 1;
/** /*
The key locator that identifies which key to use for signing. The key locator that identifies which key to use for signing.
*/ */
KeyLocator key_loc = 2; KeyLocator key_loc = 2;
} }
message ChanPointShim { message ChanPointShim {
/** /*
The size of the pre-crafted output to be used as the channel point for this The size of the pre-crafted output to be used as the channel point for this
channel funding. channel funding.
*/ */
int64 amt = 1; int64 amt = 1;
/// The target channel point to refrence in created commitment transactions. // The target channel point to refrence in created commitment transactions.
ChannelPoint chan_point = 2; ChannelPoint chan_point = 2;
/// Our local key to use when creating the multi-sig output. // Our local key to use when creating the multi-sig output.
KeyDescriptor local_key = 3; KeyDescriptor local_key = 3;
/// The key of the remote party to use when creating the multi-sig output. // The key of the remote party to use when creating the multi-sig output.
bytes remote_key = 4; bytes remote_key = 4;
/** /*
If non-zero, then this will be used as the pending channel ID on the wire If non-zero, then this will be used as the pending channel ID on the wire
protocol to initate the funding request. This is an optional field, and protocol to initate the funding request. This is an optional field, and
should only be set if the responder is already expecting a specific pending should only be set if the responder is already expecting a specific pending
@ -1778,7 +1774,7 @@ message ChanPointShim {
*/ */
bytes pending_chan_id = 5; bytes pending_chan_id = 5;
/** /*
This uint32 indicates if this channel is to be considered 'frozen'. A This uint32 indicates if this channel is to be considered 'frozen'. A
frozen channel does not allow a cooperative channel close by the frozen channel does not allow a cooperative channel close by the
initiator. The thaw_height is the height that this restriction stops initiator. The thaw_height is the height that this restriction stops
@ -1788,14 +1784,14 @@ message ChanPointShim {
} }
message PsbtShim { message PsbtShim {
/** /*
A unique identifier of 32 random bytes that will be used as the pending A unique identifier of 32 random bytes that will be used as the pending
channel ID to identify the PSBT state machine when interacting with it and channel ID to identify the PSBT state machine when interacting with it and
on the wire protocol to initiate the funding request. on the wire protocol to initiate the funding request.
*/ */
bytes pending_chan_id = 1; bytes pending_chan_id = 1;
/** /*
An optional base PSBT the new channel output will be added to. If this is An optional base PSBT the new channel output will be added to. If this is
non-empty, it must be a binary serialized PSBT. non-empty, it must be a binary serialized PSBT.
*/ */
@ -1804,13 +1800,13 @@ message PsbtShim {
message FundingShim { message FundingShim {
oneof shim { oneof shim {
/** /*
A channel shim where the channel point was fully constructed outside A channel shim where the channel point was fully constructed outside
of lnd's wallet and the transaction might already be published. of lnd's wallet and the transaction might already be published.
*/ */
ChanPointShim chan_point_shim = 1; ChanPointShim chan_point_shim = 1;
/** /*
A channel shim that uses a PSBT to fund and sign the channel funding A channel shim that uses a PSBT to fund and sign the channel funding
transaction. transaction.
*/ */
@ -1819,54 +1815,54 @@ message FundingShim {
} }
message FundingShimCancel { message FundingShimCancel {
/// The pending channel ID of the channel to cancel the funding shim for. // The pending channel ID of the channel to cancel the funding shim for.
bytes pending_chan_id = 1; bytes pending_chan_id = 1;
} }
message FundingPsbtVerify { message FundingPsbtVerify {
/** /*
The funded but not yet signed PSBT that sends the exact channel capacity The funded but not yet signed PSBT that sends the exact channel capacity
amount to the PK script returned in the open channel message in a previous amount to the PK script returned in the open channel message in a previous
step. step.
*/ */
bytes funded_psbt = 1; bytes funded_psbt = 1;
/// The pending channel ID of the channel to get the PSBT for. // The pending channel ID of the channel to get the PSBT for.
bytes pending_chan_id = 2; bytes pending_chan_id = 2;
} }
message FundingPsbtFinalize { message FundingPsbtFinalize {
/** /*
The funded PSBT that contains all witness data to send the exact channel The funded PSBT that contains all witness data to send the exact channel
capacity amount to the PK script returned in the open channel message in a capacity amount to the PK script returned in the open channel message in a
previous step. previous step.
*/ */
bytes signed_psbt = 1; bytes signed_psbt = 1;
/// The pending channel ID of the channel to get the PSBT for. // The pending channel ID of the channel to get the PSBT for.
bytes pending_chan_id = 2; bytes pending_chan_id = 2;
} }
message FundingTransitionMsg { message FundingTransitionMsg {
oneof trigger { oneof trigger {
/** /*
The funding shim to register. This should be used before any The funding shim to register. This should be used before any
channel funding has began by the remote party, as it is intended as a channel funding has began by the remote party, as it is intended as a
preparatory step for the full channel funding. preparatory step for the full channel funding.
*/ */
FundingShim shim_register = 1; FundingShim shim_register = 1;
/// Used to cancel an existing registered funding shim. // Used to cancel an existing registered funding shim.
FundingShimCancel shim_cancel = 2; FundingShimCancel shim_cancel = 2;
/** /*
Used to continue a funding flow that was initiated to be executed Used to continue a funding flow that was initiated to be executed
through a PSBT. This step verifies that the PSBT contains the correct through a PSBT. This step verifies that the PSBT contains the correct
outputs to fund the channel. outputs to fund the channel.
*/ */
FundingPsbtVerify psbt_verify = 3; FundingPsbtVerify psbt_verify = 3;
/** /*
Used to continue a funding flow that was initiated to be executed Used to continue a funding flow that was initiated to be executed
through a PSBT. This step finalizes the funded and signed PSBT, finishes through a PSBT. This step finalizes the funded and signed PSBT, finishes
negotiation with the peer and finally publishes the resulting funding negotiation with the peer and finally publishes the resulting funding
@ -1880,26 +1876,26 @@ message FundingStateStepResp {
} }
message PendingHTLC { message PendingHTLC {
/// The direction within the channel that the htlc was sent // The direction within the channel that the htlc was sent
bool incoming = 1; bool incoming = 1;
/// The total value of the htlc // The total value of the htlc
int64 amount = 2; int64 amount = 2;
/// The final output to be swept back to the user's wallet // The final output to be swept back to the user's wallet
string outpoint = 3; string outpoint = 3;
/// The next block height at which we can spend the current stage // The next block height at which we can spend the current stage
uint32 maturity_height = 4; uint32 maturity_height = 4;
/** /*
The number of blocks remaining until the current stage can be swept. The number of blocks remaining until the current stage can be swept.
Negative values indicate how many blocks have passed since becoming Negative values indicate how many blocks have passed since becoming
mature. mature.
*/ */
int32 blocks_til_maturity = 5; int32 blocks_til_maturity = 5;
/// Indicates whether the htlc is in its first or second stage of recovery // Indicates whether the htlc is in its first or second stage of recovery
uint32 stage = 6; uint32 stage = 6;
} }
@ -1915,11 +1911,11 @@ message PendingChannelsResponse {
int64 local_balance = 4; int64 local_balance = 4;
int64 remote_balance = 5; int64 remote_balance = 5;
/// The minimum satoshis this node is required to reserve in its // The minimum satoshis this node is required to reserve in its
/// balance. // balance.
int64 local_chan_reserve_sat = 6; int64 local_chan_reserve_sat = 6;
/** /*
The minimum satoshis the other node is required to reserve in its The minimum satoshis the other node is required to reserve in its
balance. balance.
*/ */
@ -1928,18 +1924,18 @@ message PendingChannelsResponse {
// The party that initiated opening the channel. // The party that initiated opening the channel.
Initiator initiator = 8; Initiator initiator = 8;
/// The commitment type used by this channel. // The commitment type used by this channel.
CommitmentType commitment_type = 9; CommitmentType commitment_type = 9;
} }
message PendingOpenChannel { message PendingOpenChannel {
/// The pending channel // The pending channel
PendingChannel channel = 1; PendingChannel channel = 1;
/// The height at which this channel will be confirmed // The height at which this channel will be confirmed
uint32 confirmation_height = 2; uint32 confirmation_height = 2;
/** /*
The amount calculated to be paid in fees for the current set of The amount calculated to be paid in fees for the current set of
commitment transactions. The fee amount is persisted with the channel commitment transactions. The fee amount is persisted with the channel
in order to allow the fee amount to be removed and recalculated with in order to allow the fee amount to be removed and recalculated with
@ -1948,10 +1944,10 @@ message PendingChannelsResponse {
*/ */
int64 commit_fee = 4; int64 commit_fee = 4;
/// The weight of the commitment transaction // The weight of the commitment transaction
int64 commit_weight = 5; int64 commit_weight = 5;
/** /*
The required number of satoshis per kilo-weight that the requester will The required number of satoshis per kilo-weight that the requester will
pay at all times, for both the funding transaction and commitment pay at all times, for both the funding transaction and commitment
transaction. This value can later be updated once the channel is open. transaction. This value can later be updated once the channel is open.
@ -1960,13 +1956,13 @@ message PendingChannelsResponse {
} }
message WaitingCloseChannel { message WaitingCloseChannel {
/// The pending channel waiting for closing tx to confirm // The pending channel waiting for closing tx to confirm
PendingChannel channel = 1; PendingChannel channel = 1;
/// The balance in satoshis encumbered in this channel // The balance in satoshis encumbered in this channel
int64 limbo_balance = 2; int64 limbo_balance = 2;
/** /*
A list of valid commitment transactions. Any of these can confirm at A list of valid commitment transactions. Any of these can confirm at
this point. this point.
*/ */
@ -1974,13 +1970,13 @@ message PendingChannelsResponse {
} }
message Commitments { message Commitments {
/// Hash of the local version of the commitment tx. // Hash of the local version of the commitment tx.
string local_txid = 1; string local_txid = 1;
/// Hash of the remote version of the commitment tx. // Hash of the remote version of the commitment tx.
string remote_txid = 2; string remote_txid = 2;
/// Hash of the remote pending version of the commitment tx. // Hash of the remote pending version of the commitment tx.
string remote_pending_txid = 3; string remote_pending_txid = 3;
/* /*
@ -2003,24 +1999,24 @@ message PendingChannelsResponse {
} }
message ClosedChannel { message ClosedChannel {
/// The pending channel to be closed // The pending channel to be closed
PendingChannel channel = 1; PendingChannel channel = 1;
/// The transaction id of the closing transaction // The transaction id of the closing transaction
string closing_txid = 2; string closing_txid = 2;
} }
message ForceClosedChannel { message ForceClosedChannel {
/// The pending channel to be force closed // The pending channel to be force closed
PendingChannel channel = 1; PendingChannel channel = 1;
/// The transaction id of the closing transaction // The transaction id of the closing transaction
string closing_txid = 2; string closing_txid = 2;
/// The balance in satoshis encumbered in this pending channel // The balance in satoshis encumbered in this pending channel
int64 limbo_balance = 3; int64 limbo_balance = 3;
/// The height at which funds can be swept into the wallet // The height at which funds can be swept into the wallet
uint32 maturity_height = 4; uint32 maturity_height = 4;
/* /*
@ -2030,7 +2026,7 @@ message PendingChannelsResponse {
*/ */
int32 blocks_til_maturity = 5; int32 blocks_til_maturity = 5;
/// The total value of funds successfully recovered from this channel // The total value of funds successfully recovered from this channel
int64 recovered_balance = 6; int64 recovered_balance = 6;
repeated PendingHTLC pending_htlcs = 8; repeated PendingHTLC pending_htlcs = 8;
@ -2044,10 +2040,10 @@ message PendingChannelsResponse {
AnchorState anchor = 9; AnchorState anchor = 9;
} }
/// The balance in satoshis encumbered in pending channels // The balance in satoshis encumbered in pending channels
int64 total_limbo_balance = 1; int64 total_limbo_balance = 1;
/// Channels pending opening // Channels pending opening
repeated PendingOpenChannel pending_open_channels = 2; repeated PendingOpenChannel pending_open_channels = 2;
/* /*
@ -2057,10 +2053,10 @@ message PendingChannelsResponse {
*/ */
repeated ClosedChannel pending_closing_channels = 3 [deprecated = true]; repeated ClosedChannel pending_closing_channels = 3 [deprecated = true];
/// Channels pending force closing // Channels pending force closing
repeated ForceClosedChannel pending_force_closing_channels = 4; repeated ForceClosedChannel pending_force_closing_channels = 4;
/// Channels waiting for closing tx to confirm // Channels waiting for closing tx to confirm
repeated WaitingCloseChannel waiting_close_channels = 5; repeated WaitingCloseChannel waiting_close_channels = 5;
} }
@ -2090,38 +2086,38 @@ message ChannelEventUpdate {
message WalletBalanceRequest { message WalletBalanceRequest {
} }
message WalletBalanceResponse { message WalletBalanceResponse {
/// The balance of the wallet // The balance of the wallet
int64 total_balance = 1; int64 total_balance = 1;
/// The confirmed balance of a wallet(with >= 1 confirmations) // The confirmed balance of a wallet(with >= 1 confirmations)
int64 confirmed_balance = 2; int64 confirmed_balance = 2;
/// The unconfirmed balance of a wallet(with 0 confirmations) // The unconfirmed balance of a wallet(with 0 confirmations)
int64 unconfirmed_balance = 3; int64 unconfirmed_balance = 3;
} }
message ChannelBalanceRequest { message ChannelBalanceRequest {
} }
message ChannelBalanceResponse { message ChannelBalanceResponse {
/// Sum of channels balances denominated in satoshis // Sum of channels balances denominated in satoshis
int64 balance = 1; int64 balance = 1;
/// Sum of channels pending balances denominated in satoshis // Sum of channels pending balances denominated in satoshis
int64 pending_open_balance = 2; int64 pending_open_balance = 2;
} }
message QueryRoutesRequest { message QueryRoutesRequest {
/// The 33-byte hex-encoded public key for the payment destination // The 33-byte hex-encoded public key for the payment destination
string pub_key = 1; string pub_key = 1;
/** /*
The amount to send expressed in satoshis. The amount to send expressed in satoshis.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
*/ */
int64 amt = 2; int64 amt = 2;
/** /*
The amount to send expressed in millisatoshis. The amount to send expressed in millisatoshis.
The fields amt and amt_msat are mutually exclusive. The fields amt and amt_msat are mutually exclusive.
@ -2130,7 +2126,7 @@ message QueryRoutesRequest {
reserved 3; reserved 3;
/** /*
An optional CLTV delta from the current height that should be used for the An optional CLTV delta from the current height that should be used for the
timelock of the final hop. Note that unlike SendPayment, QueryRoutes does timelock of the final hop. Note that unlike SendPayment, QueryRoutes does
not add any additional block padding on top of final_ctlv_delta. This not add any additional block padding on top of final_ctlv_delta. This
@ -2139,7 +2135,7 @@ message QueryRoutesRequest {
*/ */
int32 final_cltv_delta = 4; int32 final_cltv_delta = 4;
/** /*
The maximum number of satoshis that will be paid as a fee of the payment. The maximum number of satoshis that will be paid as a fee of the payment.
This value can be represented either as a percentage of the amount being This value can be represented either as a percentage of the amount being
sent, or as a fixed amount of the maximum fee the user is willing the pay to sent, or as a fixed amount of the maximum fee the user is willing the pay to
@ -2147,42 +2143,42 @@ message QueryRoutesRequest {
*/ */
FeeLimit fee_limit = 5; FeeLimit fee_limit = 5;
/** /*
A list of nodes to ignore during path finding. When using REST, these fields A list of nodes to ignore during path finding. When using REST, these fields
must be encoded as base64. must be encoded as base64.
*/ */
repeated bytes ignored_nodes = 6; repeated bytes ignored_nodes = 6;
/** /*
Deprecated. A list of edges to ignore during path finding. Deprecated. A list of edges to ignore during path finding.
*/ */
repeated EdgeLocator ignored_edges = 7 [deprecated = true]; repeated EdgeLocator ignored_edges = 7 [deprecated = true];
/** /*
The source node where the request route should originated from. If empty, The source node where the request route should originated from. If empty,
self is assumed. self is assumed.
*/ */
string source_pub_key = 8; string source_pub_key = 8;
/** /*
If set to true, edge probabilities from mission control will be used to get If set to true, edge probabilities from mission control will be used to get
the optimal route. the optimal route.
*/ */
bool use_mission_control = 9; bool use_mission_control = 9;
/** /*
A list of directed node pairs that will be ignored during path finding. A list of directed node pairs that will be ignored during path finding.
*/ */
repeated NodePair ignored_pairs = 10; repeated NodePair ignored_pairs = 10;
/** /*
An optional maximum total time lock for the route. If the source is empty or An optional maximum total time lock for the route. If the source is empty or
ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If ourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If
zero, then the value of `--max-cltv-expiry` is used as the limit. zero, then the value of `--max-cltv-expiry` is used as the limit.
*/ */
uint32 cltv_limit = 11; uint32 cltv_limit = 11;
/** /*
An optional field that can be used to pass an arbitrary set of TLV records An optional field that can be used to pass an arbitrary set of TLV records
to a peer which understands the new records. This can be used to pass to a peer which understands the new records. This can be used to pass
application specific data during the payment attempt. If the destination application specific data during the payment attempt. If the destination
@ -2192,23 +2188,23 @@ message QueryRoutesRequest {
*/ */
map<uint64, bytes> dest_custom_records = 13; map<uint64, bytes> dest_custom_records = 13;
/** /*
The channel id of the channel that must be taken to the first hop. If zero, The channel id of the channel that must be taken to the first hop. If zero,
any channel may be used. any channel may be used.
*/ */
uint64 outgoing_chan_id = 14 [jstype = JS_STRING]; uint64 outgoing_chan_id = 14 [jstype = JS_STRING];
/** /*
The pubkey of the last hop of the route. If empty, any hop may be used. The pubkey of the last hop of the route. If empty, any hop may be used.
*/ */
bytes last_hop_pubkey = 15; bytes last_hop_pubkey = 15;
/** /*
Optional route hints to reach the destination through private channels. Optional route hints to reach the destination through private channels.
*/ */
repeated lnrpc.RouteHint route_hints = 16; repeated lnrpc.RouteHint route_hints = 16;
/** /*
Features assumed to be supported by the final node. All transitive feature Features assumed to be supported by the final node. All transitive feature
dependencies must also be set properly. For a given feature bit pair, either dependencies must also be set properly. For a given feature bit pair, either
optional or remote may be set, but not both. If this field is nil or empty, optional or remote may be set, but not both. If this field is nil or empty,
@ -2219,13 +2215,13 @@ message QueryRoutesRequest {
} }
message NodePair { message NodePair {
/** /*
The sending node of the pair. When using REST, this field must be encoded as The sending node of the pair. When using REST, this field must be encoded as
base64. base64.
*/ */
bytes from = 1; bytes from = 1;
/** /*
The receiving node of the pair. When using REST, this field must be encoded The receiving node of the pair. When using REST, this field must be encoded
as base64. as base64.
*/ */
@ -2233,10 +2229,10 @@ message NodePair {
} }
message EdgeLocator { message EdgeLocator {
/// The short channel id of this edge. // The short channel id of this edge.
uint64 channel_id = 1 [jstype = JS_STRING]; uint64 channel_id = 1 [jstype = JS_STRING];
/** /*
The direction of this edge. If direction_reverse is false, the direction The direction of this edge. If direction_reverse is false, the direction
of this edge is from the channel endpoint with the lexicographically smaller of this edge is from the channel endpoint with the lexicographically smaller
pub key to the endpoint with the larger pub key. If direction_reverse is pub key to the endpoint with the larger pub key. If direction_reverse is
@ -2246,13 +2242,13 @@ message EdgeLocator {
} }
message QueryRoutesResponse { message QueryRoutesResponse {
/** /*
The route that results from the path finding operation. This is still a The route that results from the path finding operation. This is still a
repeated field to retain backwards compatibility. repeated field to retain backwards compatibility.
*/ */
repeated Route routes = 1; repeated Route routes = 1;
/** /*
The success probability of the returned route based on the current mission The success probability of the returned route based on the current mission
control state. [EXPERIMENTAL] control state. [EXPERIMENTAL]
*/ */
@ -2260,7 +2256,7 @@ message QueryRoutesResponse {
} }
message Hop { message Hop {
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
@ -2273,20 +2269,20 @@ message Hop {
int64 amt_to_forward_msat = 6; int64 amt_to_forward_msat = 6;
int64 fee_msat = 7; int64 fee_msat = 7;
/** /*
An optional public key of the hop. If the public key is given, the payment An optional public key of the hop. If the public key is given, the payment
can be executed without relying on a copy of the channel graph. can be executed without relying on a copy of the channel graph.
*/ */
string pub_key = 8; string pub_key = 8;
/** /*
If set to true, then this hop will be encoded using the new variable length If set to true, then this hop will be encoded using the new variable length
TLV format. Note that if any custom tlv_records below are specified, then TLV format. Note that if any custom tlv_records below are specified, then
this field MUST be set to true for them to be encoded properly. this field MUST be set to true for them to be encoded properly.
*/ */
bool tlv_payload = 9; bool tlv_payload = 9;
/** /*
An optional TLV record that signals the use of an MPP payment. If present, An optional TLV record that signals the use of an MPP payment. If present,
the receiver will enforce that that the same mpp_record is included in the the receiver will enforce that that the same mpp_record is included in the
final hop payload of all non-zero payments in the HTLC set. If empty, a final hop payload of all non-zero payments in the HTLC set. If empty, a
@ -2294,7 +2290,7 @@ message Hop {
*/ */
MPPRecord mpp_record = 10; MPPRecord mpp_record = 10;
/** /*
An optional set of key-value TLV records. This is useful within the context An optional set of key-value TLV records. This is useful within the context
of the SendToRoute call as it allows callers to specify arbitrary K-V pairs of the SendToRoute call as it allows callers to specify arbitrary K-V pairs
to drop off at each hop within the onion. to drop off at each hop within the onion.
@ -2303,7 +2299,7 @@ message Hop {
} }
message MPPRecord { message MPPRecord {
/** /*
A unique, random identifier used to authenticate the sender as the intended A unique, random identifier used to authenticate the sender as the intended
payer of a multi-path payment. The payment_addr must be the same for all payer of a multi-path payment. The payment_addr must be the same for all
subpayments, and match the payment_addr provided in the receiver's invoice. subpayments, and match the payment_addr provided in the receiver's invoice.
@ -2311,7 +2307,7 @@ message MPPRecord {
*/ */
bytes payment_addr = 11; bytes payment_addr = 11;
/** /*
The total amount in milli-satoshis being sent as part of a larger multi-path The total amount in milli-satoshis being sent as part of a larger multi-path
payment. The caller is responsible for ensuring subpayments to the same node payment. The caller is responsible for ensuring subpayments to the same node
and payment_hash sum exactly to total_amt_msat. The same and payment_hash sum exactly to total_amt_msat. The same
@ -2320,7 +2316,7 @@ message MPPRecord {
int64 total_amt_msat = 10; int64 total_amt_msat = 10;
} }
/** /*
A path through the channel graph which runs over one or more channels in A path through the channel graph which runs over one or more channels in
succession. This struct carries all the information required to craft the succession. This struct carries all the information required to craft the
Sphinx onion packet, and send the payment along the first hop in the path. A Sphinx onion packet, and send the payment along the first hop in the path. A
@ -2328,7 +2324,7 @@ route is only selected as valid if all the channels have sufficient capacity to
carry the initial payment amount after fees are accounted for. carry the initial payment amount after fees are accounted for.
*/ */
message Route { message Route {
/** /*
The cumulative (final) time lock across the entire route. This is the CLTV The cumulative (final) time lock across the entire route. This is the CLTV
value that should be extended to the first hop in the route. All other hops value that should be extended to the first hop in the route. All other hops
will decrement the time-lock as advertised, leaving enough time for all will decrement the time-lock as advertised, leaving enough time for all
@ -2336,14 +2332,14 @@ message Route {
*/ */
uint32 total_time_lock = 1; uint32 total_time_lock = 1;
/** /*
The sum of the fees paid at each hop within the final route. In the case The sum of the fees paid at each hop within the final route. In the case
of a one-hop payment, this value will be zero as we don't need to pay a fee of a one-hop payment, this value will be zero as we don't need to pay a fee
to ourselves. to ourselves.
*/ */
int64 total_fees = 2 [deprecated = true]; int64 total_fees = 2 [deprecated = true];
/** /*
The total amount of funds required to complete a payment over this route. The total amount of funds required to complete a payment over this route.
This value includes the cumulative fees at each hop. As a result, the HTLC This value includes the cumulative fees at each hop. As a result, the HTLC
extended to the first-hop in the route will need to have at least this many extended to the first-hop in the route will need to have at least this many
@ -2352,32 +2348,32 @@ message Route {
*/ */
int64 total_amt = 3 [deprecated = true]; int64 total_amt = 3 [deprecated = true];
/** /*
Contains details concerning the specific forwarding details at each hop. Contains details concerning the specific forwarding details at each hop.
*/ */
repeated Hop hops = 4; repeated Hop hops = 4;
/** /*
The total fees in millisatoshis. The total fees in millisatoshis.
*/ */
int64 total_fees_msat = 5; int64 total_fees_msat = 5;
/** /*
The total amount in millisatoshis. The total amount in millisatoshis.
*/ */
int64 total_amt_msat = 6; int64 total_amt_msat = 6;
} }
message NodeInfoRequest { message NodeInfoRequest {
/// The 33-byte hex-encoded compressed public of the target node // The 33-byte hex-encoded compressed public of the target node
string pub_key = 1; string pub_key = 1;
/// If true, will include all known channels associated with the node. // If true, will include all known channels associated with the node.
bool include_channels = 2; bool include_channels = 2;
} }
message NodeInfo { message NodeInfo {
/** /*
An individual vertex/node within the channel graph. A node is An individual vertex/node within the channel graph. A node is
connected to other nodes by one or more channel edges emanating from it. As connected to other nodes by one or more channel edges emanating from it. As
the graph is directed, a node will also have an incoming edge attached to the graph is directed, a node will also have an incoming edge attached to
@ -2385,17 +2381,17 @@ message NodeInfo {
*/ */
LightningNode node = 1; LightningNode node = 1;
/// The total number of channels for the node. // The total number of channels for the node.
uint32 num_channels = 2; uint32 num_channels = 2;
/// The sum of all channels capacity for the node, denominated in satoshis. // The sum of all channels capacity for the node, denominated in satoshis.
int64 total_capacity = 3; int64 total_capacity = 3;
/// A list of all public channels for the node. // A list of all public channels for the node.
repeated ChannelEdge channels = 4; repeated ChannelEdge channels = 4;
} }
/** /*
An individual vertex/node within the channel graph. A node is An individual vertex/node within the channel graph. A node is
connected to other nodes by one or more channel edges emanating from it. As the connected to other nodes by one or more channel edges emanating from it. As the
graph is directed, a node will also have an incoming edge attached to it for graph is directed, a node will also have an incoming edge attached to it for
@ -2425,7 +2421,7 @@ message RoutingPolicy {
uint32 last_update = 7; uint32 last_update = 7;
} }
/** /*
A fully authenticated channel along with all its unique attributes. A fully authenticated channel along with all its unique attributes.
Once an authenticated channel announcement has been processed on the network, Once an authenticated channel announcement has been processed on the network,
then an instance of ChannelEdgeInfo encapsulating the channels attributes is then an instance of ChannelEdgeInfo encapsulating the channels attributes is
@ -2433,7 +2429,7 @@ stored. The other portions relevant to routing policy of a channel are stored
within a ChannelEdgePolicy for each direction of the channel. within a ChannelEdgePolicy for each direction of the channel.
*/ */
message ChannelEdge { message ChannelEdge {
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
@ -2453,7 +2449,7 @@ message ChannelEdge {
} }
message ChannelGraphRequest { message ChannelGraphRequest {
/** /*
Whether unannounced channels are included in the response or not. If set, Whether unannounced channels are included in the response or not. If set,
unannounced channels are included. Unannounced channels are both private unannounced channels are included. Unannounced channels are both private
channels, and public channels that are not yet announced to the network. channels, and public channels that are not yet announced to the network.
@ -2461,12 +2457,12 @@ message ChannelGraphRequest {
bool include_unannounced = 1; bool include_unannounced = 1;
} }
/// Returns a new instance of the directed channel graph. // Returns a new instance of the directed channel graph.
message ChannelGraph { message ChannelGraph {
/// The list of `LightningNode`s in this channel graph // The list of `LightningNode`s in this channel graph
repeated LightningNode nodes = 1; repeated LightningNode nodes = 1;
/// The list of `ChannelEdge`s in this channel graph // The list of `ChannelEdge`s in this channel graph
repeated ChannelEdge edges = 2; repeated ChannelEdge edges = 2;
} }
@ -2476,12 +2472,12 @@ enum NodeMetricType {
} }
message NodeMetricsRequest { message NodeMetricsRequest {
/// The requested node metrics. // The requested node metrics.
repeated NodeMetricType types = 1; repeated NodeMetricType types = 1;
} }
message NodeMetricsResponse { message NodeMetricsResponse {
/** /*
Betweenness centrality is the sum of the ratio of shortest paths that pass Betweenness centrality is the sum of the ratio of shortest paths that pass
through the node for each pair of nodes in the graph (not counting paths through the node for each pair of nodes in the graph (not counting paths
starting or ending at this node). starting or ending at this node).
@ -2492,15 +2488,15 @@ message NodeMetricsResponse {
} }
message FloatMetric { message FloatMetric {
/// Arbitrary float value. // Arbitrary float value.
double value = 1; double value = 1;
/// The value normalized to [0,1] or [-1,1]. // The value normalized to [0,1] or [-1,1].
double normalized_value = 2; double normalized_value = 2;
} }
message ChanInfoRequest { message ChanInfoRequest {
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
@ -2552,7 +2548,7 @@ message NodeUpdate {
string color = 5; string color = 5;
} }
message ChannelEdgeUpdate { message ChannelEdgeUpdate {
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
@ -2569,7 +2565,7 @@ message ChannelEdgeUpdate {
string connecting_node = 6; string connecting_node = 6;
} }
message ClosedChannelUpdate { message ClosedChannelUpdate {
/** /*
The unique channel ID for the channel. The first 3 bytes are the block The unique channel ID for the channel. The first 3 bytes are the block
height, the next 3 the index within the block, and the last 2 bytes are the height, the next 3 the index within the block, and the last 2 bytes are the
output index for the channel. output index for the channel.
@ -2581,27 +2577,27 @@ message ClosedChannelUpdate {
} }
message HopHint { message HopHint {
/// The public key of the node at the start of the channel. // The public key of the node at the start of the channel.
string node_id = 1; string node_id = 1;
/// The unique identifier of the channel. // The unique identifier of the channel.
uint64 chan_id = 2 [jstype = JS_STRING]; uint64 chan_id = 2 [jstype = JS_STRING];
/// The base fee of the channel denominated in millisatoshis. // The base fee of the channel denominated in millisatoshis.
uint32 fee_base_msat = 3; uint32 fee_base_msat = 3;
/** /*
The fee rate of the channel for sending one satoshi across it denominated in The fee rate of the channel for sending one satoshi across it denominated in
millionths of a satoshi. millionths of a satoshi.
*/ */
uint32 fee_proportional_millionths = 4; uint32 fee_proportional_millionths = 4;
/// The time-lock delta of the channel. // The time-lock delta of the channel.
uint32 cltv_expiry_delta = 5; uint32 cltv_expiry_delta = 5;
} }
message RouteHint { message RouteHint {
/** /*
A list of hop hints that when chained together can assist in reaching a A list of hop hints that when chained together can assist in reaching a
specific destination. specific destination.
*/ */
@ -2609,7 +2605,7 @@ message RouteHint {
} }
message Invoice { message Invoice {
/** /*
An optional memo to attach along with the invoice. Used for record keeping An optional memo to attach along with the invoice. Used for record keeping
purposes for the invoice's creator, and will also be set in the description purposes for the invoice's creator, and will also be set in the description
field of the encoded payment request if the description_hash field is not field of the encoded payment request if the description_hash field is not
@ -2619,50 +2615,50 @@ message Invoice {
reserved 2; reserved 2;
/** /*
The hex-encoded preimage (32 byte) which will allow settling an incoming The hex-encoded preimage (32 byte) which will allow settling an incoming
HTLC payable to this preimage. When using REST, this field must be encoded HTLC payable to this preimage. When using REST, this field must be encoded
as base64. as base64.
*/ */
bytes r_preimage = 3; bytes r_preimage = 3;
/** /*
The hash of the preimage. When using REST, this field must be encoded as The hash of the preimage. When using REST, this field must be encoded as
base64. base64.
*/ */
bytes r_hash = 4; bytes r_hash = 4;
/** /*
The value of this invoice in satoshis The value of this invoice in satoshis
The fields value and value_msat are mutually exclusive. The fields value and value_msat are mutually exclusive.
*/ */
int64 value = 5; int64 value = 5;
/** /*
The value of this invoice in millisatoshis The value of this invoice in millisatoshis
The fields value and value_msat are mutually exclusive. The fields value and value_msat are mutually exclusive.
*/ */
int64 value_msat = 23; int64 value_msat = 23;
/// Whether this invoice has been fulfilled // Whether this invoice has been fulfilled
bool settled = 6 [deprecated = true]; bool settled = 6 [deprecated = true];
/// When this invoice was created // When this invoice was created
int64 creation_date = 7; int64 creation_date = 7;
/// When this invoice was settled // When this invoice was settled
int64 settle_date = 8; int64 settle_date = 8;
/** /*
A bare-bones invoice for a payment within the Lightning Network. With the A bare-bones invoice for a payment within the Lightning Network. With the
details of the invoice, the sender has all the data necessary to send a details of the invoice, the sender has all the data necessary to send a
payment to the recipient. payment to the recipient.
*/ */
string payment_request = 9; string payment_request = 9;
/** /*
Hash (SHA-256) of a description of the payment. Used if the description of Hash (SHA-256) of a description of the payment. Used if the description of
payment (memo) is too long to naturally fit within the description field payment (memo) is too long to naturally fit within the description field
of an encoded payment request. When using REST, this field must be encoded of an encoded payment request. When using REST, this field must be encoded
@ -2670,25 +2666,25 @@ message Invoice {
*/ */
bytes description_hash = 10; bytes description_hash = 10;
/// Payment request expiry time in seconds. Default is 3600 (1 hour). // Payment request expiry time in seconds. Default is 3600 (1 hour).
int64 expiry = 11; int64 expiry = 11;
/// Fallback on-chain address. // Fallback on-chain address.
string fallback_addr = 12; string fallback_addr = 12;
/// Delta to use for the time-lock of the CLTV extended to the final hop. // Delta to use for the time-lock of the CLTV extended to the final hop.
uint64 cltv_expiry = 13; uint64 cltv_expiry = 13;
/** /*
Route hints that can each be individually used to assist in reaching the Route hints that can each be individually used to assist in reaching the
invoice's destination. invoice's destination.
*/ */
repeated RouteHint route_hints = 14; repeated RouteHint route_hints = 14;
/// Whether this invoice should include routing hints for private channels. // Whether this invoice should include routing hints for private channels.
bool private = 15; bool private = 15;
/** /*
The "add" index of this invoice. Each newly created invoice will increment The "add" index of this invoice. Each newly created invoice will increment
this index making it monotonically increasing. Callers to the this index making it monotonically increasing. Callers to the
SubscribeInvoices call can use this to instantly get notified of all added SubscribeInvoices call can use this to instantly get notified of all added
@ -2696,7 +2692,7 @@ message Invoice {
*/ */
uint64 add_index = 16; uint64 add_index = 16;
/** /*
The "settle" index of this invoice. Each newly settled invoice will The "settle" index of this invoice. Each newly settled invoice will
increment this index making it monotonically increasing. Callers to the increment this index making it monotonically increasing. Callers to the
SubscribeInvoices call can use this to instantly get notified of all SubscribeInvoices call can use this to instantly get notified of all
@ -2704,10 +2700,10 @@ message Invoice {
*/ */
uint64 settle_index = 17; uint64 settle_index = 17;
/// Deprecated, use amt_paid_sat or amt_paid_msat. // Deprecated, use amt_paid_sat or amt_paid_msat.
int64 amt_paid = 18 [deprecated = true]; int64 amt_paid = 18 [deprecated = true];
/** /*
The amount that was accepted for this invoice, in satoshis. This will ONLY The amount that was accepted for this invoice, in satoshis. This will ONLY
be set if this invoice has been settled. We provide this field as if the be set if this invoice has been settled. We provide this field as if the
invoice was created with a zero value, then we need to record what amount invoice was created with a zero value, then we need to record what amount
@ -2717,7 +2713,7 @@ message Invoice {
*/ */
int64 amt_paid_sat = 19; int64 amt_paid_sat = 19;
/** /*
The amount that was accepted for this invoice, in millisatoshis. This will The amount that was accepted for this invoice, in millisatoshis. This will
ONLY be set if this invoice has been settled. We provide this field as if ONLY be set if this invoice has been settled. We provide this field as if
the invoice was created with a zero value, then we need to record what the invoice was created with a zero value, then we need to record what
@ -2734,18 +2730,18 @@ message Invoice {
ACCEPTED = 3; ACCEPTED = 3;
} }
/** /*
The state the invoice is in. The state the invoice is in.
*/ */
InvoiceState state = 21; InvoiceState state = 21;
/// List of HTLCs paying to this invoice [EXPERIMENTAL]. // List of HTLCs paying to this invoice [EXPERIMENTAL].
repeated InvoiceHTLC htlcs = 22; repeated InvoiceHTLC htlcs = 22;
/// List of features advertised on the invoice. // List of features advertised on the invoice.
map<uint32, Feature> features = 24; map<uint32, Feature> features = 24;
/** /*
Indicates if this invoice was a spontaneous payment that arrived via keysend Indicates if this invoice was a spontaneous payment that arrived via keysend
[EXPERIMENTAL]. [EXPERIMENTAL].
*/ */
@ -2758,50 +2754,50 @@ enum InvoiceHTLCState {
CANCELED = 2; CANCELED = 2;
} }
/// Details of an HTLC that paid to an invoice // Details of an HTLC that paid to an invoice
message InvoiceHTLC { message InvoiceHTLC {
/// Short channel id over which the htlc was received. // Short channel id over which the htlc was received.
uint64 chan_id = 1 [jstype = JS_STRING]; uint64 chan_id = 1 [jstype = JS_STRING];
/// Index identifying the htlc on the channel. // Index identifying the htlc on the channel.
uint64 htlc_index = 2; uint64 htlc_index = 2;
/// The amount of the htlc in msat. // The amount of the htlc in msat.
uint64 amt_msat = 3; uint64 amt_msat = 3;
/// Block height at which this htlc was accepted. // Block height at which this htlc was accepted.
int32 accept_height = 4; int32 accept_height = 4;
/// Time at which this htlc was accepted. // Time at which this htlc was accepted.
int64 accept_time = 5; int64 accept_time = 5;
/// Time at which this htlc was settled or canceled. // Time at which this htlc was settled or canceled.
int64 resolve_time = 6; int64 resolve_time = 6;
/// Block height at which this htlc expires. // Block height at which this htlc expires.
int32 expiry_height = 7; int32 expiry_height = 7;
/// Current state the htlc is in. // Current state the htlc is in.
InvoiceHTLCState state = 8; InvoiceHTLCState state = 8;
/// Custom tlv records. // Custom tlv records.
map<uint64, bytes> custom_records = 9; map<uint64, bytes> custom_records = 9;
/// The total amount of the mpp payment in msat. // The total amount of the mpp payment in msat.
uint64 mpp_total_amt_msat = 10; uint64 mpp_total_amt_msat = 10;
} }
message AddInvoiceResponse { message AddInvoiceResponse {
bytes r_hash = 1; bytes r_hash = 1;
/** /*
A bare-bones invoice for a payment within the Lightning Network. With the A bare-bones invoice for a payment within the Lightning Network. With the
details of the invoice, the sender has all the data necessary to send a details of the invoice, the sender has all the data necessary to send a
payment to the recipient. payment to the recipient.
*/ */
string payment_request = 2; string payment_request = 2;
/** /*
The "add" index of this invoice. Each newly created invoice will increment The "add" index of this invoice. Each newly created invoice will increment
this index making it monotonically increasing. Callers to the this index making it monotonically increasing. Callers to the
SubscribeInvoices call can use this to instantly get notified of all added SubscribeInvoices call can use this to instantly get notified of all added
@ -2810,7 +2806,7 @@ message AddInvoiceResponse {
uint64 add_index = 16; uint64 add_index = 16;
} }
message PaymentHash { message PaymentHash {
/** /*
The hex-encoded payment hash of the invoice to be looked up. The passed The hex-encoded payment hash of the invoice to be looked up. The passed
payment hash must be exactly 32 bytes, otherwise an error is returned. payment hash must be exactly 32 bytes, otherwise an error is returned.
Deprecated now that the REST gateway supports base64 encoding of bytes Deprecated now that the REST gateway supports base64 encoding of bytes
@ -2818,7 +2814,7 @@ message PaymentHash {
*/ */
string r_hash_str = 1 [deprecated = true]; string r_hash_str = 1 [deprecated = true];
/** /*
The payment hash of the invoice to be looked up. When using REST, this field The payment hash of the invoice to be looked up. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
@ -2826,41 +2822,41 @@ message PaymentHash {
} }
message ListInvoiceRequest { message ListInvoiceRequest {
/** /*
If set, only invoices that are not settled and not canceled will be returned If set, only invoices that are not settled and not canceled will be returned
in the response. in the response.
*/ */
bool pending_only = 1; bool pending_only = 1;
/** /*
The index of an invoice that will be used as either the start or end of a The index of an invoice that will be used as either the start or end of a
query to determine which invoices should be returned in the response. query to determine which invoices should be returned in the response.
*/ */
uint64 index_offset = 4; uint64 index_offset = 4;
/// The max number of invoices to return in the response to this query. // The max number of invoices to return in the response to this query.
uint64 num_max_invoices = 5; uint64 num_max_invoices = 5;
/** /*
If set, the invoices returned will result from seeking backwards from the If set, the invoices returned will result from seeking backwards from the
specified index offset. This can be used to paginate backwards. specified index offset. This can be used to paginate backwards.
*/ */
bool reversed = 6; bool reversed = 6;
} }
message ListInvoiceResponse { message ListInvoiceResponse {
/** /*
A list of invoices from the time slice of the time series specified in the A list of invoices from the time slice of the time series specified in the
request. request.
*/ */
repeated Invoice invoices = 1; repeated Invoice invoices = 1;
/** /*
The index of the last item in the set of returned invoices. This can be used The index of the last item in the set of returned invoices. This can be used
to seek further, pagination style. to seek further, pagination style.
*/ */
uint64 last_index_offset = 2; uint64 last_index_offset = 2;
/** /*
The index of the last item in the set of returned invoices. This can be used The index of the last item in the set of returned invoices. This can be used
to seek backwards, pagination style. to seek backwards, pagination style.
*/ */
@ -2868,7 +2864,7 @@ message ListInvoiceResponse {
} }
message InvoiceSubscription { message InvoiceSubscription {
/** /*
If specified (non-zero), then we'll first start by sending out If specified (non-zero), then we'll first start by sending out
notifications for all added indexes with an add_index greater than this notifications for all added indexes with an add_index greater than this
value. This allows callers to catch up on any events they missed while they value. This allows callers to catch up on any events they missed while they
@ -2876,7 +2872,7 @@ message InvoiceSubscription {
*/ */
uint64 add_index = 1; uint64 add_index = 1;
/** /*
If specified (non-zero), then we'll first start by sending out If specified (non-zero), then we'll first start by sending out
notifications for all settled indexes with an settle_index greater than notifications for all settled indexes with an settle_index greater than
this value. This allows callers to catch up on any events they missed while this value. This allows callers to catch up on any events they missed while
@ -2886,64 +2882,64 @@ message InvoiceSubscription {
} }
enum PaymentFailureReason { enum PaymentFailureReason {
/** /*
Payment isn't failed (yet). Payment isn't failed (yet).
*/ */
FAILURE_REASON_NONE = 0; FAILURE_REASON_NONE = 0;
/** /*
There are more routes to try, but the payment timeout was exceeded. There are more routes to try, but the payment timeout was exceeded.
*/ */
FAILURE_REASON_TIMEOUT = 1; FAILURE_REASON_TIMEOUT = 1;
/** /*
All possible routes were tried and failed permanently. Or were no All possible routes were tried and failed permanently. Or were no
routes to the destination at all. routes to the destination at all.
*/ */
FAILURE_REASON_NO_ROUTE = 2; FAILURE_REASON_NO_ROUTE = 2;
/** /*
A non-recoverable error has occured. A non-recoverable error has occured.
*/ */
FAILURE_REASON_ERROR = 3; FAILURE_REASON_ERROR = 3;
/** /*
Payment details incorrect (unknown hash, invalid amt or Payment details incorrect (unknown hash, invalid amt or
invalid final cltv delta) invalid final cltv delta)
*/ */
FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4; FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4;
/** /*
Insufficient local balance. Insufficient local balance.
*/ */
FAILURE_REASON_INSUFFICIENT_BALANCE = 5; FAILURE_REASON_INSUFFICIENT_BALANCE = 5;
} }
message Payment { message Payment {
/// The payment hash // The payment hash
string payment_hash = 1; string payment_hash = 1;
/// Deprecated, use value_sat or value_msat. // Deprecated, use value_sat or value_msat.
int64 value = 2 [deprecated = true]; int64 value = 2 [deprecated = true];
/// Deprecated, use creation_time_ns // Deprecated, use creation_time_ns
int64 creation_date = 3 [deprecated = true]; int64 creation_date = 3 [deprecated = true];
reserved 4; reserved 4;
/// Deprecated, use fee_sat or fee_msat. // Deprecated, use fee_sat or fee_msat.
int64 fee = 5 [deprecated = true]; int64 fee = 5 [deprecated = true];
/// The payment preimage // The payment preimage
string payment_preimage = 6; string payment_preimage = 6;
/// The value of the payment in satoshis // The value of the payment in satoshis
int64 value_sat = 7; int64 value_sat = 7;
/// The value of the payment in milli-satoshis // The value of the payment in milli-satoshis
int64 value_msat = 8; int64 value_msat = 8;
/// The optional payment request being fulfilled. // The optional payment request being fulfilled.
string payment_request = 9; string payment_request = 9;
enum PaymentStatus { enum PaymentStatus {
@ -2956,19 +2952,19 @@ message Payment {
// The status of the payment. // The status of the payment.
PaymentStatus status = 10; PaymentStatus status = 10;
/// The fee paid for this payment in satoshis // The fee paid for this payment in satoshis
int64 fee_sat = 11; int64 fee_sat = 11;
/// The fee paid for this payment in milli-satoshis // The fee paid for this payment in milli-satoshis
int64 fee_msat = 12; int64 fee_msat = 12;
/// The time in UNIX nanoseconds at which the payment was created. // The time in UNIX nanoseconds at which the payment was created.
int64 creation_time_ns = 13; int64 creation_time_ns = 13;
/// The HTLCs made in attempt to settle the payment. // The HTLCs made in attempt to settle the payment.
repeated HTLCAttempt htlcs = 14; repeated HTLCAttempt htlcs = 14;
/** /*
The creation index of this payment. Each payment can be uniquely identified The creation index of this payment. Each payment can be uniquely identified
by this index, which may not strictly increment by 1 for payments made in by this index, which may not strictly increment by 1 for payments made in
older versions of lnd. older versions of lnd.
@ -2985,16 +2981,16 @@ message HTLCAttempt {
FAILED = 2; FAILED = 2;
} }
/// The status of the HTLC. // The status of the HTLC.
HTLCStatus status = 1; HTLCStatus status = 1;
/// The route taken by this HTLC. // The route taken by this HTLC.
Route route = 2; Route route = 2;
/// The time in UNIX nanoseconds at which this HTLC was sent. // The time in UNIX nanoseconds at which this HTLC was sent.
int64 attempt_time_ns = 3; int64 attempt_time_ns = 3;
/** /*
The time in UNIX nanoseconds at which this HTLC was settled or failed. The time in UNIX nanoseconds at which this HTLC was settled or failed.
This value will not be set if the HTLC is still IN_FLIGHT. This value will not be set if the HTLC is still IN_FLIGHT.
*/ */
@ -3005,7 +3001,7 @@ message HTLCAttempt {
} }
message ListPaymentsRequest { message ListPaymentsRequest {
/** /*
If true, then return payments that have not yet fully completed. This means If true, then return payments that have not yet fully completed. This means
that pending payments, as well as failed payments will show up if this that pending payments, as well as failed payments will show up if this
field is set to true. This flag doesn't change the meaning of the indices, field is set to true. This flag doesn't change the meaning of the indices,
@ -3013,7 +3009,7 @@ message ListPaymentsRequest {
*/ */
bool include_incomplete = 1; bool include_incomplete = 1;
/** /*
The index of a payment that will be used as either the start or end of a The index of a payment that will be used as either the start or end of a
query to determine which payments should be returned in the response. The query to determine which payments should be returned in the response. The
index_offset is exclusive. In the case of a zero index_offset, the query index_offset is exclusive. In the case of a zero index_offset, the query
@ -3022,10 +3018,10 @@ message ListPaymentsRequest {
*/ */
uint64 index_offset = 2; uint64 index_offset = 2;
/// The maximal number of payments returned in the response to this query. // The maximal number of payments returned in the response to this query.
uint64 max_payments = 3; uint64 max_payments = 3;
/** /*
If set, the payments returned will result from seeking backwards from the If set, the payments returned will result from seeking backwards from the
specified index offset. This can be used to paginate backwards. The order specified index offset. This can be used to paginate backwards. The order
of the returned payments is always oldest first (ascending index order). of the returned payments is always oldest first (ascending index order).
@ -3034,16 +3030,16 @@ message ListPaymentsRequest {
} }
message ListPaymentsResponse { message ListPaymentsResponse {
/// The list of payments // The list of payments
repeated Payment payments = 1; repeated Payment payments = 1;
/** /*
The index of the first item in the set of returned payments. This can be The index of the first item in the set of returned payments. This can be
used as the index_offset to continue seeking backwards in the next request. used as the index_offset to continue seeking backwards in the next request.
*/ */
uint64 first_index_offset = 2; uint64 first_index_offset = 2;
/** /*
The index of the last item in the set of returned payments. This can be used The index of the last item in the set of returned payments. This can be used
as the index_offset to continue seeking forwards in the next request. as the index_offset to continue seeking forwards in the next request.
*/ */
@ -3072,7 +3068,7 @@ message DebugLevelResponse {
} }
message PayReqString { message PayReqString {
/// The payment request string to be decoded // The payment request string to be decoded
string pay_req = 1; string pay_req = 1;
} }
message PayReq { message PayReq {
@ -3120,125 +3116,125 @@ message Feature {
message FeeReportRequest { message FeeReportRequest {
} }
message ChannelFeeReport { message ChannelFeeReport {
/// The short channel id that this fee report belongs to. // The short channel id that this fee report belongs to.
uint64 chan_id = 5 [jstype = JS_STRING]; uint64 chan_id = 5 [jstype = JS_STRING];
/// The channel that this fee report belongs to. // The channel that this fee report belongs to.
string channel_point = 1; string channel_point = 1;
/// The base fee charged regardless of the number of milli-satoshis sent. // The base fee charged regardless of the number of milli-satoshis sent.
int64 base_fee_msat = 2; int64 base_fee_msat = 2;
/// The amount charged per milli-satoshis transferred expressed in // The amount charged per milli-satoshis transferred expressed in
/// millionths of a satoshi. // millionths of a satoshi.
int64 fee_per_mil = 3; int64 fee_per_mil = 3;
/// The effective fee rate in milli-satoshis. Computed by dividing the // The effective fee rate in milli-satoshis. Computed by dividing the
/// fee_per_mil value by 1 million. // fee_per_mil value by 1 million.
double fee_rate = 4; double fee_rate = 4;
} }
message FeeReportResponse { message FeeReportResponse {
/// An array of channel fee reports which describes the current fee schedule // An array of channel fee reports which describes the current fee schedule
/// for each channel. // for each channel.
repeated ChannelFeeReport channel_fees = 1; repeated ChannelFeeReport channel_fees = 1;
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 24 hrs. // over the past 24 hrs.
uint64 day_fee_sum = 2; uint64 day_fee_sum = 2;
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 1 week. // over the past 1 week.
uint64 week_fee_sum = 3; uint64 week_fee_sum = 3;
/// The total amount of fee revenue (in satoshis) the switch has collected // The total amount of fee revenue (in satoshis) the switch has collected
/// over the past 1 month. // over the past 1 month.
uint64 month_fee_sum = 4; uint64 month_fee_sum = 4;
} }
message PolicyUpdateRequest { message PolicyUpdateRequest {
oneof scope { oneof scope {
/// If set, then this update applies to all currently active channels. // If set, then this update applies to all currently active channels.
bool global = 1; bool global = 1;
/// If set, this update will target a specific channel. // If set, this update will target a specific channel.
ChannelPoint chan_point = 2; ChannelPoint chan_point = 2;
} }
/// The base fee charged regardless of the number of milli-satoshis sent. // The base fee charged regardless of the number of milli-satoshis sent.
int64 base_fee_msat = 3; int64 base_fee_msat = 3;
/// The effective fee rate in milli-satoshis. The precision of this value // The effective fee rate in milli-satoshis. The precision of this value
/// goes up to 6 decimal places, so 1e-6. // goes up to 6 decimal places, so 1e-6.
double fee_rate = 4; double fee_rate = 4;
/// The required timelock delta for HTLCs forwarded over the channel. // The required timelock delta for HTLCs forwarded over the channel.
uint32 time_lock_delta = 5; uint32 time_lock_delta = 5;
/// If set, the maximum HTLC size in milli-satoshis. If unset, the maximum // If set, the maximum HTLC size in milli-satoshis. If unset, the maximum
/// HTLC will be unchanged. // HTLC will be unchanged.
uint64 max_htlc_msat = 6; uint64 max_htlc_msat = 6;
/// The minimum HTLC size in milli-satoshis. Only applied if // The minimum HTLC size in milli-satoshis. Only applied if
/// min_htlc_msat_specified is true. // min_htlc_msat_specified is true.
uint64 min_htlc_msat = 7; uint64 min_htlc_msat = 7;
/// If true, min_htlc_msat is applied. // If true, min_htlc_msat is applied.
bool min_htlc_msat_specified = 8; bool min_htlc_msat_specified = 8;
} }
message PolicyUpdateResponse { message PolicyUpdateResponse {
} }
message ForwardingHistoryRequest { message ForwardingHistoryRequest {
/// Start time is the starting point of the forwarding history request. All // Start time is the starting point of the forwarding history request. All
/// records beyond this point will be included, respecting the end time, and // records beyond this point will be included, respecting the end time, and
/// the index offset. // the index offset.
uint64 start_time = 1; uint64 start_time = 1;
/// End time is the end point of the forwarding history request. The // End time is the end point of the forwarding history request. The
/// response will carry at most 50k records between the start time and the // response will carry at most 50k records between the start time and the
/// end time. The index offset can be used to implement pagination. // end time. The index offset can be used to implement pagination.
uint64 end_time = 2; uint64 end_time = 2;
/// Index offset is the offset in the time series to start at. As each // Index offset is the offset in the time series to start at. As each
/// response can only contain 50k records, callers can use this to skip // response can only contain 50k records, callers can use this to skip
/// around within a packed time series. // around within a packed time series.
uint32 index_offset = 3; uint32 index_offset = 3;
/// The max number of events to return in the response to this query. // The max number of events to return in the response to this query.
uint32 num_max_events = 4; uint32 num_max_events = 4;
} }
message ForwardingEvent { message ForwardingEvent {
/// Timestamp is the time (unix epoch offset) that this circuit was // Timestamp is the time (unix epoch offset) that this circuit was
/// completed. // completed.
uint64 timestamp = 1; uint64 timestamp = 1;
/// The incoming channel ID that carried the HTLC that created the circuit. // The incoming channel ID that carried the HTLC that created the circuit.
uint64 chan_id_in = 2 [jstype = JS_STRING]; uint64 chan_id_in = 2 [jstype = JS_STRING];
/// The outgoing channel ID that carried the preimage that completed the // The outgoing channel ID that carried the preimage that completed the
/// circuit. // circuit.
uint64 chan_id_out = 4 [jstype = JS_STRING]; uint64 chan_id_out = 4 [jstype = JS_STRING];
/// The total amount (in satoshis) of the incoming HTLC that created half // The total amount (in satoshis) of the incoming HTLC that created half
/// the circuit. // the circuit.
uint64 amt_in = 5; uint64 amt_in = 5;
/// The total amount (in satoshis) of the outgoing HTLC that created the // The total amount (in satoshis) of the outgoing HTLC that created the
/// second half of the circuit. // second half of the circuit.
uint64 amt_out = 6; uint64 amt_out = 6;
/// The total fee (in satoshis) that this payment circuit carried. // The total fee (in satoshis) that this payment circuit carried.
uint64 fee = 7; uint64 fee = 7;
/// The total fee (in milli-satoshis) that this payment circuit carried. // The total fee (in milli-satoshis) that this payment circuit carried.
uint64 fee_msat = 8; uint64 fee_msat = 8;
/// The total amount (in milli-satoshis) of the incoming HTLC that created // The total amount (in milli-satoshis) of the incoming HTLC that created
/// half the circuit. // half the circuit.
uint64 amt_in_msat = 9; uint64 amt_in_msat = 9;
/// The total amount (in milli-satoshis) of the outgoing HTLC that created // The total amount (in milli-satoshis) of the outgoing HTLC that created
/// the second half of the circuit. // the second half of the circuit.
uint64 amt_out_msat = 10; uint64 amt_out_msat = 10;
// TODO(roasbeef): add settlement latency? // TODO(roasbeef): add settlement latency?
@ -3246,27 +3242,27 @@ message ForwardingEvent {
// * also list failures? // * also list failures?
} }
message ForwardingHistoryResponse { message ForwardingHistoryResponse {
/// A list of forwarding events from the time slice of the time series // A list of forwarding events from the time slice of the time series
/// specified in the request. // specified in the request.
repeated ForwardingEvent forwarding_events = 1; repeated ForwardingEvent forwarding_events = 1;
/// The index of the last time in the set of returned forwarding events. Can // The index of the last time in the set of returned forwarding events. Can
/// be used to seek further, pagination style. // be used to seek further, pagination style.
uint32 last_offset_index = 2; uint32 last_offset_index = 2;
} }
message ExportChannelBackupRequest { message ExportChannelBackupRequest {
/// The target channel point to obtain a back up for. // The target channel point to obtain a back up for.
ChannelPoint chan_point = 1; ChannelPoint chan_point = 1;
} }
message ChannelBackup { message ChannelBackup {
/** /*
Identifies the channel that this backup belongs to. Identifies the channel that this backup belongs to.
*/ */
ChannelPoint chan_point = 1; ChannelPoint chan_point = 1;
/** /*
Is an encrypted single-chan backup. this can be passed to Is an encrypted single-chan backup. this can be passed to
RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in RestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in
order to trigger the recovery protocol. When using REST, this field must be order to trigger the recovery protocol. When using REST, this field must be
@ -3276,12 +3272,12 @@ message ChannelBackup {
} }
message MultiChanBackup { message MultiChanBackup {
/** /*
Is the set of all channels that are included in this multi-channel backup. Is the set of all channels that are included in this multi-channel backup.
*/ */
repeated ChannelPoint chan_points = 1; repeated ChannelPoint chan_points = 1;
/** /*
A single encrypted blob containing all the static channel backups of the A single encrypted blob containing all the static channel backups of the
channel listed above. This can be stored as a single file or blob, and channel listed above. This can be stored as a single file or blob, and
safely be replaced with any prior/future versions. When using REST, this safely be replaced with any prior/future versions. When using REST, this
@ -3293,13 +3289,13 @@ message MultiChanBackup {
message ChanBackupExportRequest { message ChanBackupExportRequest {
} }
message ChanBackupSnapshot { message ChanBackupSnapshot {
/** /*
The set of new channels that have been added since the last channel backup The set of new channels that have been added since the last channel backup
snapshot was requested. snapshot was requested.
*/ */
ChannelBackups single_chan_backups = 1; ChannelBackups single_chan_backups = 1;
/** /*
A multi-channel backup that covers all open channels currently known to A multi-channel backup that covers all open channels currently known to
lnd. lnd.
*/ */
@ -3307,7 +3303,7 @@ message ChanBackupSnapshot {
} }
message ChannelBackups { message ChannelBackups {
/** /*
A set of single-chan static channel backups. A set of single-chan static channel backups.
*/ */
repeated ChannelBackup chan_backups = 1; repeated ChannelBackup chan_backups = 1;
@ -3315,12 +3311,12 @@ message ChannelBackups {
message RestoreChanBackupRequest { message RestoreChanBackupRequest {
oneof backup { oneof backup {
/** /*
The channels to restore as a list of channel/backup pairs. The channels to restore as a list of channel/backup pairs.
*/ */
ChannelBackups chan_backups = 1; ChannelBackups chan_backups = 1;
/** /*
The channels to restore in the packed multi backup format. When using The channels to restore in the packed multi backup format. When using
REST, this field must be encoded as base64. REST, this field must be encoded as base64.
*/ */
@ -3337,24 +3333,24 @@ message VerifyChanBackupResponse {
} }
message MacaroonPermission { message MacaroonPermission {
/// The entity a permission grants access to. // The entity a permission grants access to.
string entity = 1; string entity = 1;
/// The action that is granted. // The action that is granted.
string action = 2; string action = 2;
} }
message BakeMacaroonRequest { message BakeMacaroonRequest {
/// The list of permissions the new macaroon should grant. // The list of permissions the new macaroon should grant.
repeated MacaroonPermission permissions = 1; repeated MacaroonPermission permissions = 1;
} }
message BakeMacaroonResponse { message BakeMacaroonResponse {
/// The hex encoded macaroon, serialized in binary format. // The hex encoded macaroon, serialized in binary format.
string macaroon = 1; string macaroon = 1;
} }
message Failure { message Failure {
enum FailureCode { enum FailureCode {
/** /*
The numbers assigned in this enumeration match the failure codes as The numbers assigned in this enumeration match the failure codes as
defined in BOLT #4. Because protobuf 3 requires enums to start with 0, defined in BOLT #4. Because protobuf 3 requires enums to start with 0,
a RESERVED value is added. a RESERVED value is added.
@ -3385,61 +3381,61 @@ message Failure {
EXPIRY_TOO_FAR = 22; EXPIRY_TOO_FAR = 22;
MPP_TIMEOUT = 23; MPP_TIMEOUT = 23;
/** /*
An internal error occurred. An internal error occurred.
*/ */
INTERNAL_FAILURE = 997; INTERNAL_FAILURE = 997;
/** /*
The error source is known, but the failure itself couldn't be decoded. The error source is known, but the failure itself couldn't be decoded.
*/ */
UNKNOWN_FAILURE = 998; UNKNOWN_FAILURE = 998;
/** /*
An unreadable failure result is returned if the received failure message An unreadable failure result is returned if the received failure message
cannot be decrypted. In that case the error source is unknown. cannot be decrypted. In that case the error source is unknown.
*/ */
UNREADABLE_FAILURE = 999; UNREADABLE_FAILURE = 999;
} }
/// Failure code as defined in the Lightning spec // Failure code as defined in the Lightning spec
FailureCode code = 1; FailureCode code = 1;
reserved 2; reserved 2;
/// An optional channel update message. // An optional channel update message.
ChannelUpdate channel_update = 3; ChannelUpdate channel_update = 3;
/// A failure type-dependent htlc value. // A failure type-dependent htlc value.
uint64 htlc_msat = 4; uint64 htlc_msat = 4;
/// The sha256 sum of the onion payload. // The sha256 sum of the onion payload.
bytes onion_sha_256 = 5; bytes onion_sha_256 = 5;
/// A failure type-dependent cltv expiry value. // A failure type-dependent cltv expiry value.
uint32 cltv_expiry = 6; uint32 cltv_expiry = 6;
/// A failure type-dependent flags value. // A failure type-dependent flags value.
uint32 flags = 7; uint32 flags = 7;
/** /*
The position in the path of the intermediate or final node that generated The position in the path of the intermediate or final node that generated
the failure message. Position zero is the sender node. the failure message. Position zero is the sender node.
**/ **/
uint32 failure_source_index = 8; uint32 failure_source_index = 8;
/// A failure type-dependent block height. // A failure type-dependent block height.
uint32 height = 9; uint32 height = 9;
} }
message ChannelUpdate { message ChannelUpdate {
/** /*
The signature that validates the announced data and proves the ownership The signature that validates the announced data and proves the ownership
of node id. of node id.
*/ */
bytes signature = 1; bytes signature = 1;
/** /*
The target chain that this channel was opened within. This value The target chain that this channel was opened within. This value
should be the genesis hash of the target chain. Along with the short should be the genesis hash of the target chain. Along with the short
channel ID, this uniquely identifies the channel globally in a channel ID, this uniquely identifies the channel globally in a
@ -3447,26 +3443,26 @@ message ChannelUpdate {
*/ */
bytes chain_hash = 2; bytes chain_hash = 2;
/** /*
The unique description of the funding transaction. The unique description of the funding transaction.
*/ */
uint64 chan_id = 3 [jstype = JS_STRING]; uint64 chan_id = 3 [jstype = JS_STRING];
/** /*
A timestamp that allows ordering in the case of multiple announcements. A timestamp that allows ordering in the case of multiple announcements.
We should ignore the message if timestamp is not greater than the We should ignore the message if timestamp is not greater than the
last-received. last-received.
*/ */
uint32 timestamp = 4; uint32 timestamp = 4;
/** /*
The bitfield that describes whether optional fields are present in this The bitfield that describes whether optional fields are present in this
update. Currently, the least-significant bit must be set to 1 if the update. Currently, the least-significant bit must be set to 1 if the
optional field MaxHtlc is present. optional field MaxHtlc is present.
*/ */
uint32 message_flags = 10; uint32 message_flags = 10;
/** /*
The bitfield that describes additional meta-data concerning how the The bitfield that describes additional meta-data concerning how the
update is to be interpreted. Currently, the least-significant bit must be update is to be interpreted. Currently, the least-significant bit must be
set to 0 if the creating node corresponds to the first node in the set to 0 if the creating node corresponds to the first node in the
@ -3475,7 +3471,7 @@ message ChannelUpdate {
*/ */
uint32 channel_flags = 5; uint32 channel_flags = 5;
/** /*
The minimum number of blocks this node requires to be added to the expiry The minimum number of blocks this node requires to be added to the expiry
of HTLCs. This is a security parameter determined by the node operator. of HTLCs. This is a security parameter determined by the node operator.
This value represents the required gap between the time locks of the This value represents the required gap between the time locks of the
@ -3483,29 +3479,29 @@ message ChannelUpdate {
*/ */
uint32 time_lock_delta = 6; uint32 time_lock_delta = 6;
/** /*
The minimum HTLC value which will be accepted. The minimum HTLC value which will be accepted.
*/ */
uint64 htlc_minimum_msat = 7; uint64 htlc_minimum_msat = 7;
/** /*
The base fee that must be used for incoming HTLC's to this particular The base fee that must be used for incoming HTLC's to this particular
channel. This value will be tacked onto the required for a payment channel. This value will be tacked onto the required for a payment
independent of the size of the payment. independent of the size of the payment.
*/ */
uint32 base_fee = 8; uint32 base_fee = 8;
/** /*
The fee rate that will be charged per millionth of a satoshi. The fee rate that will be charged per millionth of a satoshi.
*/ */
uint32 fee_rate = 9; uint32 fee_rate = 9;
/** /*
The maximum HTLC value which will be accepted. The maximum HTLC value which will be accepted.
*/ */
uint64 htlc_maximum_msat = 11; uint64 htlc_maximum_msat = 11;
/** /*
The set of data that was appended to this message, some of which we may The set of data that was appended to this message, some of which we may
not actually know how to iterate or parse. By holding onto this data, we not actually know how to iterate or parse. By holding onto this data, we
ensure that we're able to properly validate the set of signatures that ensure that we're able to properly validate the set of signatures that

@ -17,7 +17,7 @@
"paths": { "paths": {
"/v1/balance/blockchain": { "/v1/balance/blockchain": {
"get": { "get": {
"summary": "* lncli: `walletbalance`\nWalletBalance returns total unspent outputs(confirmed and unconfirmed), all\nconfirmed unspent outputs and all unconfirmed unspent outputs under control\nof the wallet.", "summary": "lncli: `walletbalance`\nWalletBalance returns total unspent outputs(confirmed and unconfirmed), all\nconfirmed unspent outputs and all unconfirmed unspent outputs under control\nof the wallet.",
"operationId": "WalletBalance", "operationId": "WalletBalance",
"responses": { "responses": {
"200": { "200": {
@ -34,7 +34,7 @@
}, },
"/v1/balance/channels": { "/v1/balance/channels": {
"get": { "get": {
"summary": "* lncli: `channelbalance`\nChannelBalance returns the total funds available across all open channels\nin satoshis.", "summary": "lncli: `channelbalance`\nChannelBalance returns the total funds available across all open channels\nin satoshis.",
"operationId": "ChannelBalance", "operationId": "ChannelBalance",
"responses": { "responses": {
"200": { "200": {
@ -51,7 +51,7 @@
}, },
"/v1/channels": { "/v1/channels": {
"get": { "get": {
"summary": "* lncli: `listchannels`\nListChannels returns a description of all the open channels that this node\nis a participant in.", "summary": "lncli: `listchannels`\nListChannels returns a description of all the open channels that this node\nis a participant in.",
"operationId": "ListChannels", "operationId": "ListChannels",
"responses": { "responses": {
"200": { "200": {
@ -92,7 +92,7 @@
}, },
{ {
"name": "peer", "name": "peer",
"description": "*\nFilters the response for channels with a target peer's pubkey. If peer is\nempty, all channels will be returned.", "description": "Filters the response for channels with a target peer's pubkey. If peer is\nempty, all channels will be returned.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -104,7 +104,7 @@
] ]
}, },
"post": { "post": {
"summary": "*\nOpenChannelSync is a synchronous version of the OpenChannel RPC call. This\ncall is meant to be consumed by clients to the REST proxy. As with all\nother sync calls, all byte slices are intended to be populated as hex\nencoded strings.", "summary": "OpenChannelSync is a synchronous version of the OpenChannel RPC call. This\ncall is meant to be consumed by clients to the REST proxy. As with all\nother sync calls, all byte slices are intended to be populated as hex\nencoded strings.",
"operationId": "OpenChannelSync", "operationId": "OpenChannelSync",
"responses": { "responses": {
"200": { "200": {
@ -131,7 +131,7 @@
}, },
"/v1/channels/abandon/{channel_point.funding_txid_str}/{channel_point.output_index}": { "/v1/channels/abandon/{channel_point.funding_txid_str}/{channel_point.output_index}": {
"delete": { "delete": {
"summary": "* lncli: `abandonchannel`\nAbandonChannel removes all channel state from the database except for a\nclose summary. This method can be used to get rid of permanently unusable\nchannels due to bugs fixed in newer versions of lnd. Only available\nwhen in debug builds of lnd.", "summary": "lncli: `abandonchannel`\nAbandonChannel removes all channel state from the database except for a\nclose summary. This method can be used to get rid of permanently unusable\nchannels due to bugs fixed in newer versions of lnd. Only available\nwhen in debug builds of lnd.",
"operationId": "AbandonChannel", "operationId": "AbandonChannel",
"responses": { "responses": {
"200": { "200": {
@ -144,14 +144,14 @@
"parameters": [ "parameters": [
{ {
"name": "channel_point.funding_txid_str", "name": "channel_point.funding_txid_str",
"description": "*\nHex-encoded string representing the byte-reversed hash of the funding\ntransaction.", "description": "Hex-encoded string representing the byte-reversed hash of the funding\ntransaction.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "channel_point.output_index", "name": "channel_point.output_index",
"description": "/ The index of the output of the funding transaction", "description": "The index of the output of the funding transaction",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "integer", "type": "integer",
@ -159,7 +159,7 @@
}, },
{ {
"name": "channel_point.funding_txid_bytes", "name": "channel_point.funding_txid_bytes",
"description": "*\nTxid of the funding transaction. When using REST, this field must be\nencoded as base64.", "description": "Txid of the funding transaction. When using REST, this field must be\nencoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -173,7 +173,7 @@
}, },
"/v1/channels/backup": { "/v1/channels/backup": {
"get": { "get": {
"summary": "*\nExportAllChannelBackups returns static channel backups for all existing\nchannels known to lnd. A set of regular singular static channel backups for\neach channel are returned. Additionally, a multi-channel backup is returned\nas well, which contains a single encrypted blob containing the backups of\neach channel.", "summary": "ExportAllChannelBackups returns static channel backups for all existing\nchannels known to lnd. A set of regular singular static channel backups for\neach channel are returned. Additionally, a multi-channel backup is returned\nas well, which contains a single encrypted blob containing the backups of\neach channel.",
"operationId": "ExportAllChannelBackups", "operationId": "ExportAllChannelBackups",
"responses": { "responses": {
"200": { "200": {
@ -190,7 +190,7 @@
}, },
"/v1/channels/backup/restore": { "/v1/channels/backup/restore": {
"post": { "post": {
"summary": "* lncli: `restorechanbackup`\nRestoreChannelBackups accepts a set of singular channel backups, or a\nsingle encrypted multi-chan backup and attempts to recover any funds\nremaining within the channel. If we are able to unpack the backup, then the\nnew channel will be shown under listchannels, as well as pending channels.", "summary": "lncli: `restorechanbackup`\nRestoreChannelBackups accepts a set of singular channel backups, or a\nsingle encrypted multi-chan backup and attempts to recover any funds\nremaining within the channel. If we are able to unpack the backup, then the\nnew channel will be shown under listchannels, as well as pending channels.",
"operationId": "RestoreChannelBackups", "operationId": "RestoreChannelBackups",
"responses": { "responses": {
"200": { "200": {
@ -217,7 +217,7 @@
}, },
"/v1/channels/backup/verify": { "/v1/channels/backup/verify": {
"post": { "post": {
"summary": "*\nVerifyChanBackup allows a caller to verify the integrity of a channel backup\nsnapshot. This method will accept either a packed Single or a packed Multi.\nSpecifying both will result in an error.", "summary": "VerifyChanBackup allows a caller to verify the integrity of a channel backup\nsnapshot. This method will accept either a packed Single or a packed Multi.\nSpecifying both will result in an error.",
"operationId": "VerifyChanBackup", "operationId": "VerifyChanBackup",
"responses": { "responses": {
"200": { "200": {
@ -244,7 +244,7 @@
}, },
"/v1/channels/backup/{chan_point.funding_txid_str}/{chan_point.output_index}": { "/v1/channels/backup/{chan_point.funding_txid_str}/{chan_point.output_index}": {
"get": { "get": {
"summary": "* lncli: `exportchanbackup`\nExportChannelBackup attempts to return an encrypted static channel backup\nfor the target channel identified by it channel point. The backup is\nencrypted with a key generated from the aezeed seed of the user. The\nreturned backup can either be restored using the RestoreChannelBackup\nmethod once lnd is running, or via the InitWallet and UnlockWallet methods\nfrom the WalletUnlocker service.", "summary": "lncli: `exportchanbackup`\nExportChannelBackup attempts to return an encrypted static channel backup\nfor the target channel identified by it channel point. The backup is\nencrypted with a key generated from the aezeed seed of the user. The\nreturned backup can either be restored using the RestoreChannelBackup\nmethod once lnd is running, or via the InitWallet and UnlockWallet methods\nfrom the WalletUnlocker service.",
"operationId": "ExportChannelBackup", "operationId": "ExportChannelBackup",
"responses": { "responses": {
"200": { "200": {
@ -257,14 +257,14 @@
"parameters": [ "parameters": [
{ {
"name": "chan_point.funding_txid_str", "name": "chan_point.funding_txid_str",
"description": "*\nHex-encoded string representing the byte-reversed hash of the funding\ntransaction.", "description": "Hex-encoded string representing the byte-reversed hash of the funding\ntransaction.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "chan_point.output_index", "name": "chan_point.output_index",
"description": "/ The index of the output of the funding transaction", "description": "The index of the output of the funding transaction",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "integer", "type": "integer",
@ -272,7 +272,7 @@
}, },
{ {
"name": "chan_point.funding_txid_bytes", "name": "chan_point.funding_txid_bytes",
"description": "*\nTxid of the funding transaction. When using REST, this field must be\nencoded as base64.", "description": "Txid of the funding transaction. When using REST, this field must be\nencoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -286,7 +286,7 @@
}, },
"/v1/channels/closed": { "/v1/channels/closed": {
"get": { "get": {
"summary": "* lncli: `closedchannels`\nClosedChannels returns a description of all the closed channels that\nthis node was a participant in.", "summary": "lncli: `closedchannels`\nClosedChannels returns a description of all the closed channels that\nthis node was a participant in.",
"operationId": "ClosedChannels", "operationId": "ClosedChannels",
"responses": { "responses": {
"200": { "200": {
@ -347,7 +347,7 @@
}, },
"/v1/channels/pending": { "/v1/channels/pending": {
"get": { "get": {
"summary": "* lncli: `pendingchannels`\nPendingChannels returns a list of all the channels that are currently\nconsidered \"pending\". A channel is pending if it has finished the funding\nworkflow and is waiting for confirmations for the funding txn, or is in the\nprocess of closure, either initiated cooperatively or non-cooperatively.", "summary": "lncli: `pendingchannels`\nPendingChannels returns a list of all the channels that are currently\nconsidered \"pending\". A channel is pending if it has finished the funding\nworkflow and is waiting for confirmations for the funding txn, or is in the\nprocess of closure, either initiated cooperatively or non-cooperatively.",
"operationId": "PendingChannels", "operationId": "PendingChannels",
"responses": { "responses": {
"200": { "200": {
@ -364,7 +364,7 @@
}, },
"/v1/channels/transactions": { "/v1/channels/transactions": {
"post": { "post": {
"summary": "*\nSendPaymentSync is the synchronous non-streaming version of SendPayment.\nThis RPC is intended to be consumed by clients of the REST proxy.\nAdditionally, this RPC expects the destination's public key and the payment\nhash (if any) to be encoded as hex strings.", "summary": "SendPaymentSync is the synchronous non-streaming version of SendPayment.\nThis RPC is intended to be consumed by clients of the REST proxy.\nAdditionally, this RPC expects the destination's public key and the payment\nhash (if any) to be encoded as hex strings.",
"operationId": "SendPaymentSync", "operationId": "SendPaymentSync",
"responses": { "responses": {
"200": { "200": {
@ -391,7 +391,7 @@
}, },
"/v1/channels/transactions/route": { "/v1/channels/transactions/route": {
"post": { "post": {
"summary": "*\nSendToRouteSync is a synchronous version of SendToRoute. It Will block\nuntil the payment either fails or succeeds.", "summary": "SendToRouteSync is a synchronous version of SendToRoute. It Will block\nuntil the payment either fails or succeeds.",
"operationId": "SendToRouteSync", "operationId": "SendToRouteSync",
"responses": { "responses": {
"200": { "200": {
@ -418,7 +418,7 @@
}, },
"/v1/channels/{channel_point.funding_txid_str}/{channel_point.output_index}": { "/v1/channels/{channel_point.funding_txid_str}/{channel_point.output_index}": {
"delete": { "delete": {
"summary": "* lncli: `closechannel`\nCloseChannel attempts to close an active channel identified by its channel\noutpoint (ChannelPoint). The actions of this method can additionally be\naugmented to attempt a force close after a timeout period in the case of an\ninactive peer. If a non-force close (cooperative closure) is requested,\nthen the user can specify either a target number of blocks until the\nclosure transaction is confirmed, or a manual fee rate. If neither are\nspecified, then a default lax, block confirmation target is used.", "summary": "lncli: `closechannel`\nCloseChannel attempts to close an active channel identified by its channel\noutpoint (ChannelPoint). The actions of this method can additionally be\naugmented to attempt a force close after a timeout period in the case of an\ninactive peer. If a non-force close (cooperative closure) is requested,\nthen the user can specify either a target number of blocks until the\nclosure transaction is confirmed, or a manual fee rate. If neither are\nspecified, then a default lax, block confirmation target is used.",
"operationId": "CloseChannel", "operationId": "CloseChannel",
"responses": { "responses": {
"200": { "200": {
@ -431,14 +431,14 @@
"parameters": [ "parameters": [
{ {
"name": "channel_point.funding_txid_str", "name": "channel_point.funding_txid_str",
"description": "*\nHex-encoded string representing the byte-reversed hash of the funding\ntransaction.", "description": "Hex-encoded string representing the byte-reversed hash of the funding\ntransaction.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "channel_point.output_index", "name": "channel_point.output_index",
"description": "/ The index of the output of the funding transaction", "description": "The index of the output of the funding transaction",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "integer", "type": "integer",
@ -446,7 +446,7 @@
}, },
{ {
"name": "channel_point.funding_txid_bytes", "name": "channel_point.funding_txid_bytes",
"description": "*\nTxid of the funding transaction. When using REST, this field must be\nencoded as base64.", "description": "Txid of the funding transaction. When using REST, this field must be\nencoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -454,7 +454,7 @@
}, },
{ {
"name": "force", "name": "force",
"description": "/ If true, then the channel will be closed forcibly. This means the\n/ current commitment transaction will be signed and broadcast.", "description": "If true, then the channel will be closed forcibly. This means the\ncurrent commitment transaction will be signed and broadcast.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -462,7 +462,7 @@
}, },
{ {
"name": "target_conf", "name": "target_conf",
"description": "/ The target number of blocks that the closure transaction should be\n/ confirmed by.", "description": "The target number of blocks that the closure transaction should be\nconfirmed by.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -470,7 +470,7 @@
}, },
{ {
"name": "sat_per_byte", "name": "sat_per_byte",
"description": "/ A manual fee rate set in sat/byte that should be used when crafting the\n/ closure transaction.", "description": "A manual fee rate set in sat/byte that should be used when crafting the\nclosure transaction.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -491,7 +491,7 @@
}, },
"/v1/chanpolicy": { "/v1/chanpolicy": {
"post": { "post": {
"summary": "* lncli: `updatechanpolicy`\nUpdateChannelPolicy allows the caller to update the fee schedule and\nchannel policies for all channels globally, or a particular channel.", "summary": "lncli: `updatechanpolicy`\nUpdateChannelPolicy allows the caller to update the fee schedule and\nchannel policies for all channels globally, or a particular channel.",
"operationId": "UpdateChannelPolicy", "operationId": "UpdateChannelPolicy",
"responses": { "responses": {
"200": { "200": {
@ -518,7 +518,7 @@
}, },
"/v1/fees": { "/v1/fees": {
"get": { "get": {
"summary": "* lncli: `feereport`\nFeeReport allows the caller to obtain a report detailing the current fee\nschedule enforced by the node globally for each channel.", "summary": "lncli: `feereport`\nFeeReport allows the caller to obtain a report detailing the current fee\nschedule enforced by the node globally for each channel.",
"operationId": "FeeReport", "operationId": "FeeReport",
"responses": { "responses": {
"200": { "200": {
@ -535,7 +535,7 @@
}, },
"/v1/getinfo": { "/v1/getinfo": {
"get": { "get": {
"summary": "* lncli: `getinfo`\nGetInfo returns general information concerning the lightning node including\nit's identity pubkey, alias, the chains it is connected to, and information\nconcerning the number of open+pending channels.", "summary": "lncli: `getinfo`\nGetInfo returns general information concerning the lightning node including\nit's identity pubkey, alias, the chains it is connected to, and information\nconcerning the number of open+pending channels.",
"operationId": "GetInfo", "operationId": "GetInfo",
"responses": { "responses": {
"200": { "200": {
@ -552,7 +552,7 @@
}, },
"/v1/graph": { "/v1/graph": {
"get": { "get": {
"summary": "* lncli: `describegraph`\nDescribeGraph returns a description of the latest graph state from the\npoint of view of the node. The graph information is partitioned into two\ncomponents: all the nodes/vertexes, and all the edges that connect the\nvertexes themselves. As this is a directed graph, the edges also contain\nthe node directional specific routing policy which includes: the time lock\ndelta, fee information, etc.", "summary": "lncli: `describegraph`\nDescribeGraph returns a description of the latest graph state from the\npoint of view of the node. The graph information is partitioned into two\ncomponents: all the nodes/vertexes, and all the edges that connect the\nvertexes themselves. As this is a directed graph, the edges also contain\nthe node directional specific routing policy which includes: the time lock\ndelta, fee information, etc.",
"operationId": "DescribeGraph", "operationId": "DescribeGraph",
"responses": { "responses": {
"200": { "200": {
@ -565,7 +565,7 @@
"parameters": [ "parameters": [
{ {
"name": "include_unannounced", "name": "include_unannounced",
"description": "*\nWhether unannounced channels are included in the response or not. If set,\nunannounced channels are included. Unannounced channels are both private\nchannels, and public channels that are not yet announced to the network.", "description": "Whether unannounced channels are included in the response or not. If set,\nunannounced channels are included. Unannounced channels are both private\nchannels, and public channels that are not yet announced to the network.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -579,7 +579,7 @@
}, },
"/v1/graph/edge/{chan_id}": { "/v1/graph/edge/{chan_id}": {
"get": { "get": {
"summary": "* lncli: `getchaninfo`\nGetChanInfo returns the latest authenticated network announcement for the\ngiven channel identified by its channel ID: an 8-byte integer which\nuniquely identifies the location of transaction's funding output within the\nblockchain.", "summary": "lncli: `getchaninfo`\nGetChanInfo returns the latest authenticated network announcement for the\ngiven channel identified by its channel ID: an 8-byte integer which\nuniquely identifies the location of transaction's funding output within the\nblockchain.",
"operationId": "GetChanInfo", "operationId": "GetChanInfo",
"responses": { "responses": {
"200": { "200": {
@ -592,7 +592,7 @@
"parameters": [ "parameters": [
{ {
"name": "chan_id", "name": "chan_id",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel.", "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string", "type": "string",
@ -606,7 +606,7 @@
}, },
"/v1/graph/info": { "/v1/graph/info": {
"get": { "get": {
"summary": "* lncli: `getnetworkinfo`\nGetNetworkInfo returns some basic stats about the known channel graph from\nthe point of view of the node.", "summary": "lncli: `getnetworkinfo`\nGetNetworkInfo returns some basic stats about the known channel graph from\nthe point of view of the node.",
"operationId": "GetNetworkInfo", "operationId": "GetNetworkInfo",
"responses": { "responses": {
"200": { "200": {
@ -623,7 +623,7 @@
}, },
"/v1/graph/node/{pub_key}": { "/v1/graph/node/{pub_key}": {
"get": { "get": {
"summary": "* lncli: `getnodeinfo`\nGetNodeInfo returns the latest advertised, aggregated, and authenticated\nchannel information for the specified node identified by its public key.", "summary": "lncli: `getnodeinfo`\nGetNodeInfo returns the latest advertised, aggregated, and authenticated\nchannel information for the specified node identified by its public key.",
"operationId": "GetNodeInfo", "operationId": "GetNodeInfo",
"responses": { "responses": {
"200": { "200": {
@ -636,14 +636,14 @@
"parameters": [ "parameters": [
{ {
"name": "pub_key", "name": "pub_key",
"description": "/ The 33-byte hex-encoded compressed public of the target node", "description": "The 33-byte hex-encoded compressed public of the target node",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "include_channels", "name": "include_channels",
"description": "/ If true, will include all known channels associated with the node.", "description": "If true, will include all known channels associated with the node.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -657,7 +657,7 @@
}, },
"/v1/graph/nodemetrics": { "/v1/graph/nodemetrics": {
"get": { "get": {
"summary": "* lncli: `getnodemetrics`\nGetNodeMetrics returns node metrics calculated from the graph. Currently\nthe only supported metric is betweenness centrality of individual nodes.", "summary": "lncli: `getnodemetrics`\nGetNodeMetrics returns node metrics calculated from the graph. Currently\nthe only supported metric is betweenness centrality of individual nodes.",
"operationId": "GetNodeMetrics", "operationId": "GetNodeMetrics",
"responses": { "responses": {
"200": { "200": {
@ -670,7 +670,7 @@
"parameters": [ "parameters": [
{ {
"name": "types", "name": "types",
"description": "/ The requested node metrics.", "description": "The requested node metrics.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "array", "type": "array",
@ -691,7 +691,7 @@
}, },
"/v1/graph/routes/{pub_key}/{amt}": { "/v1/graph/routes/{pub_key}/{amt}": {
"get": { "get": {
"summary": "* lncli: `queryroutes`\nQueryRoutes attempts to query the daemon's Channel Router for a possible\nroute to a target destination capable of carrying a specific amount of\nsatoshis. The returned route contains the full details required to craft and\nsend an HTLC, also including the necessary information that should be\npresent within the Sphinx packet encapsulated within the HTLC.", "summary": "lncli: `queryroutes`\nQueryRoutes attempts to query the daemon's Channel Router for a possible\nroute to a target destination capable of carrying a specific amount of\nsatoshis. The returned route contains the full details required to craft and\nsend an HTLC, also including the necessary information that should be\npresent within the Sphinx packet encapsulated within the HTLC.",
"operationId": "QueryRoutes", "operationId": "QueryRoutes",
"responses": { "responses": {
"200": { "200": {
@ -704,14 +704,14 @@
"parameters": [ "parameters": [
{ {
"name": "pub_key", "name": "pub_key",
"description": "/ The 33-byte hex-encoded public key for the payment destination", "description": "The 33-byte hex-encoded public key for the payment destination",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "amt", "name": "amt",
"description": "*\nThe amount to send expressed in satoshis.\n\nThe fields amt and amt_msat are mutually exclusive.", "description": "The amount to send expressed in satoshis.\n\nThe fields amt and amt_msat are mutually exclusive.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string", "type": "string",
@ -719,7 +719,7 @@
}, },
{ {
"name": "amt_msat", "name": "amt_msat",
"description": "*\nThe amount to send expressed in millisatoshis.\n\nThe fields amt and amt_msat are mutually exclusive.", "description": "The amount to send expressed in millisatoshis.\n\nThe fields amt and amt_msat are mutually exclusive.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -727,7 +727,7 @@
}, },
{ {
"name": "final_cltv_delta", "name": "final_cltv_delta",
"description": "*\nAn optional CLTV delta from the current height that should be used for the\ntimelock of the final hop. Note that unlike SendPayment, QueryRoutes does\nnot add any additional block padding on top of final_ctlv_delta. This\npadding of a few blocks needs to be added manually or otherwise failures may\nhappen when a block comes in while the payment is in flight.", "description": "An optional CLTV delta from the current height that should be used for the\ntimelock of the final hop. Note that unlike SendPayment, QueryRoutes does\nnot add any additional block padding on top of final_ctlv_delta. This\npadding of a few blocks needs to be added manually or otherwise failures may\nhappen when a block comes in while the payment is in flight.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -735,7 +735,7 @@
}, },
{ {
"name": "fee_limit.fixed", "name": "fee_limit.fixed",
"description": "*\nThe fee limit expressed as a fixed amount of satoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive.", "description": "The fee limit expressed as a fixed amount of satoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -743,7 +743,7 @@
}, },
{ {
"name": "fee_limit.fixed_msat", "name": "fee_limit.fixed_msat",
"description": "*\nThe fee limit expressed as a fixed amount of millisatoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive.", "description": "The fee limit expressed as a fixed amount of millisatoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -751,7 +751,7 @@
}, },
{ {
"name": "fee_limit.percent", "name": "fee_limit.percent",
"description": "/ The fee limit expressed as a percentage of the payment amount.", "description": "The fee limit expressed as a percentage of the payment amount.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -759,7 +759,7 @@
}, },
{ {
"name": "ignored_nodes", "name": "ignored_nodes",
"description": "*\nA list of nodes to ignore during path finding. When using REST, these fields\nmust be encoded as base64.", "description": "A list of nodes to ignore during path finding. When using REST, these fields\nmust be encoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "array", "type": "array",
@ -771,14 +771,14 @@
}, },
{ {
"name": "source_pub_key", "name": "source_pub_key",
"description": "*\nThe source node where the request route should originated from. If empty,\nself is assumed.", "description": "The source node where the request route should originated from. If empty,\nself is assumed.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string" "type": "string"
}, },
{ {
"name": "use_mission_control", "name": "use_mission_control",
"description": "*\nIf set to true, edge probabilities from mission control will be used to get\nthe optimal route.", "description": "If set to true, edge probabilities from mission control will be used to get\nthe optimal route.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -786,7 +786,7 @@
}, },
{ {
"name": "cltv_limit", "name": "cltv_limit",
"description": "*\nAn optional maximum total time lock for the route. If the source is empty or\nourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If\nzero, then the value of `--max-cltv-expiry` is used as the limit.", "description": "An optional maximum total time lock for the route. If the source is empty or\nourselves, this should not exceed lnd's `--max-cltv-expiry` setting. If\nzero, then the value of `--max-cltv-expiry` is used as the limit.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -794,7 +794,7 @@
}, },
{ {
"name": "outgoing_chan_id", "name": "outgoing_chan_id",
"description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used.", "description": "The channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -802,7 +802,7 @@
}, },
{ {
"name": "last_hop_pubkey", "name": "last_hop_pubkey",
"description": "*\nThe pubkey of the last hop of the route. If empty, any hop may be used.", "description": "The pubkey of the last hop of the route. If empty, any hop may be used.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -810,7 +810,7 @@
}, },
{ {
"name": "dest_features", "name": "dest_features",
"description": "*\nFeatures assumed to be supported by the final node. All transitive feature\ndependencies must also be set properly. For a given feature bit pair, either\noptional or remote may be set, but not both. If this field is nil or empty,\nthe router will try to load destination features from the graph as a\nfallback.", "description": "Features assumed to be supported by the final node. All transitive feature\ndependencies must also be set properly. For a given feature bit pair, either\noptional or remote may be set, but not both. If this field is nil or empty,\nthe router will try to load destination features from the graph as a\nfallback.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "array", "type": "array",
@ -846,7 +846,7 @@
}, },
"/v1/invoice/{r_hash_str}": { "/v1/invoice/{r_hash_str}": {
"get": { "get": {
"summary": "* lncli: `lookupinvoice`\nLookupInvoice attempts to look up an invoice according to its payment hash.\nThe passed payment hash *must* be exactly 32 bytes, if not, an error is\nreturned.", "summary": "lncli: `lookupinvoice`\nLookupInvoice attempts to look up an invoice according to its payment hash.\nThe passed payment hash *must* be exactly 32 bytes, if not, an error is\nreturned.",
"operationId": "LookupInvoice", "operationId": "LookupInvoice",
"responses": { "responses": {
"200": { "200": {
@ -859,14 +859,14 @@
"parameters": [ "parameters": [
{ {
"name": "r_hash_str", "name": "r_hash_str",
"description": "*\nThe hex-encoded payment hash of the invoice to be looked up. The passed\npayment hash must be exactly 32 bytes, otherwise an error is returned.\nDeprecated now that the REST gateway supports base64 encoding of bytes\nfields.", "description": "The hex-encoded payment hash of the invoice to be looked up. The passed\npayment hash must be exactly 32 bytes, otherwise an error is returned.\nDeprecated now that the REST gateway supports base64 encoding of bytes\nfields.",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
}, },
{ {
"name": "r_hash", "name": "r_hash",
"description": "*\nThe payment hash of the invoice to be looked up. When using REST, this field\nmust be encoded as base64.", "description": "The payment hash of the invoice to be looked up. When using REST, this field\nmust be encoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -880,7 +880,7 @@
}, },
"/v1/invoices": { "/v1/invoices": {
"get": { "get": {
"summary": "* lncli: `listinvoices`\nListInvoices returns a list of all the invoices currently stored within the\ndatabase. Any active debug invoices are ignored. It has full support for\npaginated responses, allowing users to query for specific invoices through\ntheir add_index. This can be done by using either the first_index_offset or\nlast_index_offset fields included in the response as the index_offset of the\nnext request. By default, the first 100 invoices created will be returned.\nBackwards pagination is also supported through the Reversed flag.", "summary": "lncli: `listinvoices`\nListInvoices returns a list of all the invoices currently stored within the\ndatabase. Any active debug invoices are ignored. It has full support for\npaginated responses, allowing users to query for specific invoices through\ntheir add_index. This can be done by using either the first_index_offset or\nlast_index_offset fields included in the response as the index_offset of the\nnext request. By default, the first 100 invoices created will be returned.\nBackwards pagination is also supported through the Reversed flag.",
"operationId": "ListInvoices", "operationId": "ListInvoices",
"responses": { "responses": {
"200": { "200": {
@ -893,7 +893,7 @@
"parameters": [ "parameters": [
{ {
"name": "pending_only", "name": "pending_only",
"description": "*\nIf set, only invoices that are not settled and not canceled will be returned\nin the response.", "description": "If set, only invoices that are not settled and not canceled will be returned\nin the response.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -901,7 +901,7 @@
}, },
{ {
"name": "index_offset", "name": "index_offset",
"description": "*\nThe index of an invoice that will be used as either the start or end of a\nquery to determine which invoices should be returned in the response.", "description": "The index of an invoice that will be used as either the start or end of a\nquery to determine which invoices should be returned in the response.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -909,7 +909,7 @@
}, },
{ {
"name": "num_max_invoices", "name": "num_max_invoices",
"description": "/ The max number of invoices to return in the response to this query.", "description": "The max number of invoices to return in the response to this query.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -917,7 +917,7 @@
}, },
{ {
"name": "reversed", "name": "reversed",
"description": "*\nIf set, the invoices returned will result from seeking backwards from the\nspecified index offset. This can be used to paginate backwards.", "description": "If set, the invoices returned will result from seeking backwards from the\nspecified index offset. This can be used to paginate backwards.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -929,7 +929,7 @@
] ]
}, },
"post": { "post": {
"summary": "* lncli: `addinvoice`\nAddInvoice attempts to add a new invoice to the invoice database. Any\nduplicated invoices are rejected, therefore all invoices *must* have a\nunique payment preimage.", "summary": "lncli: `addinvoice`\nAddInvoice attempts to add a new invoice to the invoice database. Any\nduplicated invoices are rejected, therefore all invoices *must* have a\nunique payment preimage.",
"operationId": "AddInvoice", "operationId": "AddInvoice",
"responses": { "responses": {
"200": { "200": {
@ -956,7 +956,7 @@
}, },
"/v1/invoices/subscribe": { "/v1/invoices/subscribe": {
"get": { "get": {
"summary": "*\nSubscribeInvoices returns a uni-directional stream (server -\u003e client) for\nnotifying the client of newly added/settled invoices. The caller can\noptionally specify the add_index and/or the settle_index. If the add_index\nis specified, then we'll first start by sending add invoice events for all\ninvoices with an add_index greater than the specified value. If the\nsettle_index is specified, the next, we'll send out all settle events for\ninvoices with a settle_index greater than the specified value. One or both\nof these fields can be set. If no fields are set, then we'll only send out\nthe latest add/settle events.", "summary": "SubscribeInvoices returns a uni-directional stream (server -\u003e client) for\nnotifying the client of newly added/settled invoices. The caller can\noptionally specify the add_index and/or the settle_index. If the add_index\nis specified, then we'll first start by sending add invoice events for all\ninvoices with an add_index greater than the specified value. If the\nsettle_index is specified, the next, we'll send out all settle events for\ninvoices with a settle_index greater than the specified value. One or both\nof these fields can be set. If no fields are set, then we'll only send out\nthe latest add/settle events.",
"operationId": "SubscribeInvoices", "operationId": "SubscribeInvoices",
"responses": { "responses": {
"200": { "200": {
@ -969,7 +969,7 @@
"parameters": [ "parameters": [
{ {
"name": "add_index", "name": "add_index",
"description": "*\nIf specified (non-zero), then we'll first start by sending out\nnotifications for all added indexes with an add_index greater than this\nvalue. This allows callers to catch up on any events they missed while they\nweren't connected to the streaming RPC.", "description": "If specified (non-zero), then we'll first start by sending out\nnotifications for all added indexes with an add_index greater than this\nvalue. This allows callers to catch up on any events they missed while they\nweren't connected to the streaming RPC.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -977,7 +977,7 @@
}, },
{ {
"name": "settle_index", "name": "settle_index",
"description": "*\nIf specified (non-zero), then we'll first start by sending out\nnotifications for all settled indexes with an settle_index greater than\nthis value. This allows callers to catch up on any events they missed while\nthey weren't connected to the streaming RPC.", "description": "If specified (non-zero), then we'll first start by sending out\nnotifications for all settled indexes with an settle_index greater than\nthis value. This allows callers to catch up on any events they missed while\nthey weren't connected to the streaming RPC.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -991,7 +991,7 @@
}, },
"/v1/macaroon": { "/v1/macaroon": {
"post": { "post": {
"summary": "* lncli: `bakemacaroon`\nBakeMacaroon allows the creation of a new macaroon with custom read and\nwrite permissions. No first-party caveats are added since this can be done\noffline.", "summary": "lncli: `bakemacaroon`\nBakeMacaroon allows the creation of a new macaroon with custom read and\nwrite permissions. No first-party caveats are added since this can be done\noffline.",
"operationId": "BakeMacaroon", "operationId": "BakeMacaroon",
"responses": { "responses": {
"200": { "200": {
@ -1018,7 +1018,7 @@
}, },
"/v1/newaddress": { "/v1/newaddress": {
"get": { "get": {
"summary": "* lncli: `newaddress`\nNewAddress creates a new address under control of the local wallet.", "summary": "lncli: `newaddress`\nNewAddress creates a new address under control of the local wallet.",
"operationId": "NewAddress", "operationId": "NewAddress",
"responses": { "responses": {
"200": { "200": {
@ -1031,7 +1031,7 @@
"parameters": [ "parameters": [
{ {
"name": "type", "name": "type",
"description": "/ The address type.", "description": "The address type.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -1051,7 +1051,7 @@
}, },
"/v1/payments": { "/v1/payments": {
"get": { "get": {
"summary": "* lncli: `listpayments`\nListPayments returns a list of all outgoing payments.", "summary": "lncli: `listpayments`\nListPayments returns a list of all outgoing payments.",
"operationId": "ListPayments", "operationId": "ListPayments",
"responses": { "responses": {
"200": { "200": {
@ -1064,7 +1064,7 @@
"parameters": [ "parameters": [
{ {
"name": "include_incomplete", "name": "include_incomplete",
"description": "*\nIf true, then return payments that have not yet fully completed. This means\nthat pending payments, as well as failed payments will show up if this\nfield is set to true. This flag doesn't change the meaning of the indices,\nwhich are tied to individual payments.", "description": "If true, then return payments that have not yet fully completed. This means\nthat pending payments, as well as failed payments will show up if this\nfield is set to true. This flag doesn't change the meaning of the indices,\nwhich are tied to individual payments.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -1072,7 +1072,7 @@
}, },
{ {
"name": "index_offset", "name": "index_offset",
"description": "*\nThe index of a payment that will be used as either the start or end of a\nquery to determine which payments should be returned in the response. The\nindex_offset is exclusive. In the case of a zero index_offset, the query\nwill start with the oldest payment when paginating forwards, or will end\nwith the most recent payment when paginating backwards.", "description": "The index of a payment that will be used as either the start or end of a\nquery to determine which payments should be returned in the response. The\nindex_offset is exclusive. In the case of a zero index_offset, the query\nwill start with the oldest payment when paginating forwards, or will end\nwith the most recent payment when paginating backwards.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -1080,7 +1080,7 @@
}, },
{ {
"name": "max_payments", "name": "max_payments",
"description": "/ The maximal number of payments returned in the response to this query.", "description": "The maximal number of payments returned in the response to this query.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -1088,7 +1088,7 @@
}, },
{ {
"name": "reversed", "name": "reversed",
"description": "*\nIf set, the payments returned will result from seeking backwards from the\nspecified index offset. This can be used to paginate backwards. The order\nof the returned payments is always oldest first (ascending index order).", "description": "If set, the payments returned will result from seeking backwards from the\nspecified index offset. This can be used to paginate backwards. The order\nof the returned payments is always oldest first (ascending index order).",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "boolean", "type": "boolean",
@ -1100,7 +1100,7 @@
] ]
}, },
"delete": { "delete": {
"summary": "*\nDeleteAllPayments deletes all outgoing payments from DB.", "summary": "DeleteAllPayments deletes all outgoing payments from DB.",
"operationId": "DeleteAllPayments", "operationId": "DeleteAllPayments",
"responses": { "responses": {
"200": { "200": {
@ -1117,7 +1117,7 @@
}, },
"/v1/payreq/{pay_req}": { "/v1/payreq/{pay_req}": {
"get": { "get": {
"summary": "* lncli: `decodepayreq`\nDecodePayReq takes an encoded payment request string and attempts to decode\nit, returning a full description of the conditions encoded within the\npayment request.", "summary": "lncli: `decodepayreq`\nDecodePayReq takes an encoded payment request string and attempts to decode\nit, returning a full description of the conditions encoded within the\npayment request.",
"operationId": "DecodePayReq", "operationId": "DecodePayReq",
"responses": { "responses": {
"200": { "200": {
@ -1130,7 +1130,7 @@
"parameters": [ "parameters": [
{ {
"name": "pay_req", "name": "pay_req",
"description": "/ The payment request string to be decoded", "description": "The payment request string to be decoded",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
@ -1143,7 +1143,7 @@
}, },
"/v1/peers": { "/v1/peers": {
"get": { "get": {
"summary": "* lncli: `listpeers`\nListPeers returns a verbose listing of all currently active peers.", "summary": "lncli: `listpeers`\nListPeers returns a verbose listing of all currently active peers.",
"operationId": "ListPeers", "operationId": "ListPeers",
"responses": { "responses": {
"200": { "200": {
@ -1168,7 +1168,7 @@
] ]
}, },
"post": { "post": {
"summary": "* lncli: `connect`\nConnectPeer attempts to establish a connection to a remote peer. This is at\nthe networking level, and is used for communication between nodes. This is\ndistinct from establishing a channel with a peer.", "summary": "lncli: `connect`\nConnectPeer attempts to establish a connection to a remote peer. This is at\nthe networking level, and is used for communication between nodes. This is\ndistinct from establishing a channel with a peer.",
"operationId": "ConnectPeer", "operationId": "ConnectPeer",
"responses": { "responses": {
"200": { "200": {
@ -1195,7 +1195,7 @@
}, },
"/v1/peers/{pub_key}": { "/v1/peers/{pub_key}": {
"delete": { "delete": {
"summary": "* lncli: `disconnect`\nDisconnectPeer attempts to disconnect one peer from another identified by a\ngiven pubKey. In the case that we currently have a pending or active channel\nwith the target peer, then this action will be not be allowed.", "summary": "lncli: `disconnect`\nDisconnectPeer attempts to disconnect one peer from another identified by a\ngiven pubKey. In the case that we currently have a pending or active channel\nwith the target peer, then this action will be not be allowed.",
"operationId": "DisconnectPeer", "operationId": "DisconnectPeer",
"responses": { "responses": {
"200": { "200": {
@ -1208,7 +1208,7 @@
"parameters": [ "parameters": [
{ {
"name": "pub_key", "name": "pub_key",
"description": "/ The pubkey of the node to disconnect from", "description": "The pubkey of the node to disconnect from",
"in": "path", "in": "path",
"required": true, "required": true,
"type": "string" "type": "string"
@ -1221,7 +1221,7 @@
}, },
"/v1/signmessage": { "/v1/signmessage": {
"post": { "post": {
"summary": "* lncli: `signmessage`\nSignMessage signs a message with this node's private key. The returned\nsignature string is `zbase32` encoded and pubkey recoverable, meaning that\nonly the message digest and signature are needed for verification.", "summary": "lncli: `signmessage`\nSignMessage signs a message with this node's private key. The returned\nsignature string is `zbase32` encoded and pubkey recoverable, meaning that\nonly the message digest and signature are needed for verification.",
"operationId": "SignMessage", "operationId": "SignMessage",
"responses": { "responses": {
"200": { "200": {
@ -1248,7 +1248,7 @@
}, },
"/v1/switch": { "/v1/switch": {
"post": { "post": {
"summary": "* lncli: `fwdinghistory`\nForwardingHistory allows the caller to query the htlcswitch for a record of\nall HTLCs forwarded within the target time range, and integer offset\nwithin that time range. If no time-range is specified, then the first chunk\nof the past 24 hrs of forwarding history are returned.", "summary": "lncli: `fwdinghistory`\nForwardingHistory allows the caller to query the htlcswitch for a record of\nall HTLCs forwarded within the target time range, and integer offset\nwithin that time range. If no time-range is specified, then the first chunk\nof the past 24 hrs of forwarding history are returned.",
"description": "A list of forwarding events are returned. The size of each forwarding event\nis 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.\nAs a result each message can only contain 50k entries. Each response has\nthe index offset of the last entry. The index offset can be provided to the\nrequest to allow the caller to skip a series of records.", "description": "A list of forwarding events are returned. The size of each forwarding event\nis 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.\nAs a result each message can only contain 50k entries. Each response has\nthe index offset of the last entry. The index offset can be provided to the\nrequest to allow the caller to skip a series of records.",
"operationId": "ForwardingHistory", "operationId": "ForwardingHistory",
"responses": { "responses": {
@ -1276,7 +1276,7 @@
}, },
"/v1/transactions": { "/v1/transactions": {
"get": { "get": {
"summary": "* lncli: `listchaintxns`\nGetTransactions returns a list describing all the known transactions\nrelevant to the wallet.", "summary": "lncli: `listchaintxns`\nGetTransactions returns a list describing all the known transactions\nrelevant to the wallet.",
"operationId": "GetTransactions", "operationId": "GetTransactions",
"responses": { "responses": {
"200": { "200": {
@ -1309,7 +1309,7 @@
] ]
}, },
"post": { "post": {
"summary": "* lncli: `sendcoins`\nSendCoins executes a request to send coins to a particular address. Unlike\nSendMany, this RPC call only allows creating a single output at a time. If\nneither target_conf, or sat_per_byte are set, then the internal wallet will\nconsult its fee model to determine a fee for the default confirmation\ntarget.", "summary": "lncli: `sendcoins`\nSendCoins executes a request to send coins to a particular address. Unlike\nSendMany, this RPC call only allows creating a single output at a time. If\nneither target_conf, or sat_per_byte are set, then the internal wallet will\nconsult its fee model to determine a fee for the default confirmation\ntarget.",
"operationId": "SendCoins", "operationId": "SendCoins",
"responses": { "responses": {
"200": { "200": {
@ -1336,7 +1336,7 @@
}, },
"/v1/transactions/fee": { "/v1/transactions/fee": {
"get": { "get": {
"summary": "* lncli: `estimatefee`\nEstimateFee asks the chain backend to estimate the fee rate and total fees\nfor a transaction that pays to multiple specified outputs.", "summary": "lncli: `estimatefee`\nEstimateFee asks the chain backend to estimate the fee rate and total fees\nfor a transaction that pays to multiple specified outputs.",
"operationId": "EstimateFee", "operationId": "EstimateFee",
"responses": { "responses": {
"200": { "200": {
@ -1349,7 +1349,7 @@
"parameters": [ "parameters": [
{ {
"name": "target_conf", "name": "target_conf",
"description": "/ The target number of blocks that this transaction should be confirmed\n/ by.", "description": "The target number of blocks that this transaction should be confirmed\nby.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -1363,7 +1363,7 @@
}, },
"/v1/utxos": { "/v1/utxos": {
"get": { "get": {
"summary": "* lncli: `listunspent`\nListUnspent returns a list of all utxos spendable by the wallet with a\nnumber of confirmations between the specified minimum and maximum.", "summary": "lncli: `listunspent`\nListUnspent returns a list of all utxos spendable by the wallet with a\nnumber of confirmations between the specified minimum and maximum.",
"operationId": "ListUnspent", "operationId": "ListUnspent",
"responses": { "responses": {
"200": { "200": {
@ -1376,7 +1376,7 @@
"parameters": [ "parameters": [
{ {
"name": "min_confs", "name": "min_confs",
"description": "/ The minimum number of confirmations to be included.", "description": "The minimum number of confirmations to be included.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -1384,7 +1384,7 @@
}, },
{ {
"name": "max_confs", "name": "max_confs",
"description": "/ The maximum number of confirmations to be included.", "description": "The maximum number of confirmations to be included.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "integer", "type": "integer",
@ -1398,7 +1398,7 @@
}, },
"/v1/verifymessage": { "/v1/verifymessage": {
"post": { "post": {
"summary": "* lncli: `verifymessage`\nVerifyMessage verifies a signature over a msg. The signature must be\nzbase32 encoded and signed by an active node in the resident node's\nchannel database. In addition to returning the validity of the signature,\nVerifyMessage also returns the recovered pubkey from the signature.", "summary": "lncli: `verifymessage`\nVerifyMessage verifies a signature over a msg. The signature must be\nzbase32 encoded and signed by an active node in the resident node's\nchannel database. In addition to returning the validity of the signature,\nVerifyMessage also returns the recovered pubkey from the signature.",
"operationId": "VerifyMessage", "operationId": "VerifyMessage",
"responses": { "responses": {
"200": { "200": {
@ -1480,7 +1480,7 @@
"UNREADABLE_FAILURE" "UNREADABLE_FAILURE"
], ],
"default": "RESERVED", "default": "RESERVED",
"description": " - RESERVED: *\nThe numbers assigned in this enumeration match the failure codes as\ndefined in BOLT #4. Because protobuf 3 requires enums to start with 0,\na RESERVED value is added.\n - INTERNAL_FAILURE: *\nAn internal error occurred.\n - UNKNOWN_FAILURE: *\nThe error source is known, but the failure itself couldn't be decoded.\n - UNREADABLE_FAILURE: *\nAn unreadable failure result is returned if the received failure message\ncannot be decrypted. In that case the error source is unknown." "description": " - RESERVED: The numbers assigned in this enumeration match the failure codes as\ndefined in BOLT #4. Because protobuf 3 requires enums to start with 0,\na RESERVED value is added.\n - INTERNAL_FAILURE: An internal error occurred.\n - UNKNOWN_FAILURE: The error source is known, but the failure itself couldn't be decoded.\n - UNREADABLE_FAILURE: An unreadable failure result is returned if the received failure message\ncannot be decrypted. In that case the error source is unknown."
}, },
"ForceClosedChannelAnchorState": { "ForceClosedChannelAnchorState": {
"type": "string", "type": "string",
@ -1536,18 +1536,18 @@
"PASSIVE_SYNC" "PASSIVE_SYNC"
], ],
"default": "UNKNOWN_SYNC", "default": "UNKNOWN_SYNC",
"description": " - UNKNOWN_SYNC: *\nDenotes that we cannot determine the peer's current sync type.\n - ACTIVE_SYNC: *\nDenotes that we are actively receiving new graph updates from the peer.\n - PASSIVE_SYNC: *\nDenotes that we are not receiving new graph updates from the peer." "description": " - UNKNOWN_SYNC: Denotes that we cannot determine the peer's current sync type.\n - ACTIVE_SYNC: Denotes that we are actively receiving new graph updates from the peer.\n - PASSIVE_SYNC: Denotes that we are not receiving new graph updates from the peer."
}, },
"PendingChannelsResponseClosedChannel": { "PendingChannelsResponseClosedChannel": {
"type": "object", "type": "object",
"properties": { "properties": {
"channel": { "channel": {
"$ref": "#/definitions/PendingChannelsResponsePendingChannel", "$ref": "#/definitions/PendingChannelsResponsePendingChannel",
"title": "/ The pending channel to be closed" "title": "The pending channel to be closed"
}, },
"closing_txid": { "closing_txid": {
"type": "string", "type": "string",
"title": "/ The transaction id of the closing transaction" "title": "The transaction id of the closing transaction"
} }
} }
}, },
@ -1556,15 +1556,15 @@
"properties": { "properties": {
"local_txid": { "local_txid": {
"type": "string", "type": "string",
"description": "/ Hash of the local version of the commitment tx." "description": "Hash of the local version of the commitment tx."
}, },
"remote_txid": { "remote_txid": {
"type": "string", "type": "string",
"description": "/ Hash of the remote version of the commitment tx." "description": "Hash of the remote version of the commitment tx."
}, },
"remote_pending_txid": { "remote_pending_txid": {
"type": "string", "type": "string",
"description": "/ Hash of the remote pending version of the commitment tx." "description": "Hash of the remote pending version of the commitment tx."
}, },
"local_commit_fee_sat": { "local_commit_fee_sat": {
"type": "string", "type": "string",
@ -1588,21 +1588,21 @@
"properties": { "properties": {
"channel": { "channel": {
"$ref": "#/definitions/PendingChannelsResponsePendingChannel", "$ref": "#/definitions/PendingChannelsResponsePendingChannel",
"title": "/ The pending channel to be force closed" "title": "The pending channel to be force closed"
}, },
"closing_txid": { "closing_txid": {
"type": "string", "type": "string",
"title": "/ The transaction id of the closing transaction" "title": "The transaction id of the closing transaction"
}, },
"limbo_balance": { "limbo_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The balance in satoshis encumbered in this pending channel" "title": "The balance in satoshis encumbered in this pending channel"
}, },
"maturity_height": { "maturity_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The height at which funds can be swept into the wallet" "title": "The height at which funds can be swept into the wallet"
}, },
"blocks_til_maturity": { "blocks_til_maturity": {
"type": "integer", "type": "integer",
@ -1612,7 +1612,7 @@
"recovered_balance": { "recovered_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The total value of funds successfully recovered from this channel" "title": "The total value of funds successfully recovered from this channel"
}, },
"pending_htlcs": { "pending_htlcs": {
"type": "array", "type": "array",
@ -1649,12 +1649,12 @@
"local_chan_reserve_sat": { "local_chan_reserve_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The minimum satoshis this node is required to reserve in its\n/ balance." "description": "The minimum satoshis this node is required to reserve in its\nbalance."
}, },
"remote_chan_reserve_sat": { "remote_chan_reserve_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe minimum satoshis the other node is required to reserve in its\nbalance." "description": "The minimum satoshis the other node is required to reserve in its\nbalance."
}, },
"initiator": { "initiator": {
"$ref": "#/definitions/lnrpcInitiator", "$ref": "#/definitions/lnrpcInitiator",
@ -1662,7 +1662,7 @@
}, },
"commitment_type": { "commitment_type": {
"$ref": "#/definitions/lnrpcCommitmentType", "$ref": "#/definitions/lnrpcCommitmentType",
"description": "/ The commitment type used by this channel." "description": "The commitment type used by this channel."
} }
} }
}, },
@ -1671,27 +1671,27 @@
"properties": { "properties": {
"channel": { "channel": {
"$ref": "#/definitions/PendingChannelsResponsePendingChannel", "$ref": "#/definitions/PendingChannelsResponsePendingChannel",
"title": "/ The pending channel" "title": "The pending channel"
}, },
"confirmation_height": { "confirmation_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The height at which this channel will be confirmed" "title": "The height at which this channel will be confirmed"
}, },
"commit_fee": { "commit_fee": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount calculated to be paid in fees for the current set of\ncommitment transactions. The fee amount is persisted with the channel\nin order to allow the fee amount to be removed and recalculated with\neach channel state update, including updates that happen after a system\nrestart." "description": "The amount calculated to be paid in fees for the current set of\ncommitment transactions. The fee amount is persisted with the channel\nin order to allow the fee amount to be removed and recalculated with\neach channel state update, including updates that happen after a system\nrestart."
}, },
"commit_weight": { "commit_weight": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The weight of the commitment transaction" "title": "The weight of the commitment transaction"
}, },
"fee_per_kw": { "fee_per_kw": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe required number of satoshis per kilo-weight that the requester will\npay at all times, for both the funding transaction and commitment\ntransaction. This value can later be updated once the channel is open." "description": "The required number of satoshis per kilo-weight that the requester will\npay at all times, for both the funding transaction and commitment\ntransaction. This value can later be updated once the channel is open."
} }
} }
}, },
@ -1700,16 +1700,16 @@
"properties": { "properties": {
"channel": { "channel": {
"$ref": "#/definitions/PendingChannelsResponsePendingChannel", "$ref": "#/definitions/PendingChannelsResponsePendingChannel",
"title": "/ The pending channel waiting for closing tx to confirm" "title": "The pending channel waiting for closing tx to confirm"
}, },
"limbo_balance": { "limbo_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The balance in satoshis encumbered in this channel" "title": "The balance in satoshis encumbered in this channel"
}, },
"commitments": { "commitments": {
"$ref": "#/definitions/PendingChannelsResponseCommitments", "$ref": "#/definitions/PendingChannelsResponseCommitments",
"description": "*\nA list of valid commitment transactions. Any of these can confirm at\nthis point." "description": "A list of valid commitment transactions. Any of these can confirm at\nthis point."
} }
} }
}, },
@ -1725,12 +1725,12 @@
}, },
"payment_request": { "payment_request": {
"type": "string", "type": "string",
"description": "*\nA bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient." "description": "A bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient."
}, },
"add_index": { "add_index": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe \"add\" index of this invoice. Each newly created invoice will increment\nthis index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all added\ninvoices with an add_index greater than this one." "description": "The \"add\" index of this invoice. Each newly created invoice will increment\nthis index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all added\ninvoices with an add_index greater than this one."
} }
} }
}, },
@ -1744,7 +1744,7 @@
], ],
"default": "WITNESS_PUBKEY_HASH", "default": "WITNESS_PUBKEY_HASH",
"description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)", "description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)",
"title": "*\n`AddressType` has to be one of:" "title": "`AddressType` has to be one of:"
}, },
"lnrpcBakeMacaroonRequest": { "lnrpcBakeMacaroonRequest": {
"type": "object", "type": "object",
@ -1754,7 +1754,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcMacaroonPermission" "$ref": "#/definitions/lnrpcMacaroonPermission"
}, },
"description": "/ The list of permissions the new macaroon should grant." "description": "The list of permissions the new macaroon should grant."
} }
} }
}, },
@ -1763,7 +1763,7 @@
"properties": { "properties": {
"macaroon": { "macaroon": {
"type": "string", "type": "string",
"description": "/ The hex encoded macaroon, serialized in binary format." "description": "The hex encoded macaroon, serialized in binary format."
} }
} }
}, },
@ -1772,11 +1772,11 @@
"properties": { "properties": {
"chain": { "chain": {
"type": "string", "type": "string",
"title": "/ The blockchain the node is on (eg bitcoin, litecoin)" "title": "The blockchain the node is on (eg bitcoin, litecoin)"
}, },
"network": { "network": {
"type": "string", "type": "string",
"title": "/ The network the node is on (eg regtest, testnet, mainnet)" "title": "The network the node is on (eg regtest, testnet, mainnet)"
} }
} }
}, },
@ -1785,11 +1785,11 @@
"properties": { "properties": {
"single_chan_backups": { "single_chan_backups": {
"$ref": "#/definitions/lnrpcChannelBackups", "$ref": "#/definitions/lnrpcChannelBackups",
"description": "*\nThe set of new channels that have been added since the last channel backup\nsnapshot was requested." "description": "The set of new channels that have been added since the last channel backup\nsnapshot was requested."
}, },
"multi_chan_backup": { "multi_chan_backup": {
"$ref": "#/definitions/lnrpcMultiChanBackup", "$ref": "#/definitions/lnrpcMultiChanBackup",
"description": "*\nA multi-channel backup that covers all open channels currently known to\nlnd." "description": "A multi-channel backup that covers all open channels currently known to\nlnd."
} }
} }
}, },
@ -1799,30 +1799,30 @@
"amt": { "amt": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe size of the pre-crafted output to be used as the channel point for this\nchannel funding." "description": "The size of the pre-crafted output to be used as the channel point for this\nchannel funding."
}, },
"chan_point": { "chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint", "$ref": "#/definitions/lnrpcChannelPoint",
"description": "/ The target channel point to refrence in created commitment transactions." "description": "The target channel point to refrence in created commitment transactions."
}, },
"local_key": { "local_key": {
"$ref": "#/definitions/lnrpcKeyDescriptor", "$ref": "#/definitions/lnrpcKeyDescriptor",
"description": "/ Our local key to use when creating the multi-sig output." "description": "Our local key to use when creating the multi-sig output."
}, },
"remote_key": { "remote_key": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The key of the remote party to use when creating the multi-sig output." "description": "The key of the remote party to use when creating the multi-sig output."
}, },
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nIf non-zero, then this will be used as the pending channel ID on the wire\nprotocol to initate the funding request. This is an optional field, and\nshould only be set if the responder is already expecting a specific pending\nchannel ID." "description": "If non-zero, then this will be used as the pending channel ID on the wire\nprotocol to initate the funding request. This is an optional field, and\nshould only be set if the responder is already expecting a specific pending\nchannel ID."
}, },
"thaw_height": { "thaw_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThis uint32 indicates if this channel is to be considered 'frozen'. A\nfrozen channel does not allow a cooperative channel close by the\ninitiator. The thaw_height is the height that this restriction stops\napplying to the channel." "description": "This uint32 indicates if this channel is to be considered 'frozen'. A\nfrozen channel does not allow a cooperative channel close by the\ninitiator. The thaw_height is the height that this restriction stops\napplying to the channel."
} }
} }
}, },
@ -1832,129 +1832,129 @@
"active": { "active": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ Whether this channel is active or not" "title": "Whether this channel is active or not"
}, },
"remote_pubkey": { "remote_pubkey": {
"type": "string", "type": "string",
"title": "/ The identity pubkey of the remote node" "title": "The identity pubkey of the remote node"
}, },
"channel_point": { "channel_point": {
"type": "string", "type": "string",
"description": "*\nThe outpoint (txid:index) of the funding transaction. With this value, Bob\nwill be able to generate a signature for Alice's version of the commitment\ntransaction." "description": "The outpoint (txid:index) of the funding transaction. With this value, Bob\nwill be able to generate a signature for Alice's version of the commitment\ntransaction."
}, },
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel." "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel."
}, },
"capacity": { "capacity": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The total amount of funds held in this channel" "title": "The total amount of funds held in this channel"
}, },
"local_balance": { "local_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ This node's current balance in this channel" "title": "This node's current balance in this channel"
}, },
"remote_balance": { "remote_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The counterparty's current balance in this channel" "title": "The counterparty's current balance in this channel"
}, },
"commit_fee": { "commit_fee": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount calculated to be paid in fees for the current set of commitment\ntransactions. The fee amount is persisted with the channel in order to\nallow the fee amount to be removed and recalculated with each channel state\nupdate, including updates that happen after a system restart." "description": "The amount calculated to be paid in fees for the current set of commitment\ntransactions. The fee amount is persisted with the channel in order to\nallow the fee amount to be removed and recalculated with each channel state\nupdate, including updates that happen after a system restart."
}, },
"commit_weight": { "commit_weight": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The weight of the commitment transaction" "title": "The weight of the commitment transaction"
}, },
"fee_per_kw": { "fee_per_kw": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe required number of satoshis per kilo-weight that the requester will pay\nat all times, for both the funding transaction and commitment transaction.\nThis value can later be updated once the channel is open." "description": "The required number of satoshis per kilo-weight that the requester will pay\nat all times, for both the funding transaction and commitment transaction.\nThis value can later be updated once the channel is open."
}, },
"unsettled_balance": { "unsettled_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The unsettled balance in this channel" "title": "The unsettled balance in this channel"
}, },
"total_satoshis_sent": { "total_satoshis_sent": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total number of satoshis we've sent within this channel." "description": "The total number of satoshis we've sent within this channel."
}, },
"total_satoshis_received": { "total_satoshis_received": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total number of satoshis we've received within this channel." "description": "The total number of satoshis we've received within this channel."
}, },
"num_updates": { "num_updates": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe total number of updates conducted within this channel." "description": "The total number of updates conducted within this channel."
}, },
"pending_htlcs": { "pending_htlcs": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcHTLC" "$ref": "#/definitions/lnrpcHTLC"
}, },
"description": "*\nThe list of active, uncleared HTLCs currently pending within the channel." "description": "The list of active, uncleared HTLCs currently pending within the channel."
}, },
"csv_delay": { "csv_delay": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe CSV delay expressed in relative blocks. If the channel is force closed,\nwe will need to wait for this many blocks before we can regain our funds." "description": "The CSV delay expressed in relative blocks. If the channel is force closed,\nwe will need to wait for this many blocks before we can regain our funds."
}, },
"private": { "private": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ Whether this channel is advertised to the network or not." "description": "Whether this channel is advertised to the network or not."
}, },
"initiator": { "initiator": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ True if we were the ones that created the channel." "description": "True if we were the ones that created the channel."
}, },
"chan_status_flags": { "chan_status_flags": {
"type": "string", "type": "string",
"description": "/ A set of flags showing the current state of the channel." "description": "A set of flags showing the current state of the channel."
}, },
"local_chan_reserve_sat": { "local_chan_reserve_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The minimum satoshis this node is required to reserve in its balance." "description": "The minimum satoshis this node is required to reserve in its balance."
}, },
"remote_chan_reserve_sat": { "remote_chan_reserve_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe minimum satoshis the other node is required to reserve in its balance." "description": "The minimum satoshis the other node is required to reserve in its balance."
}, },
"static_remote_key": { "static_remote_key": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ Deprecated. Use commitment_type." "description": "Deprecated. Use commitment_type."
}, },
"commitment_type": { "commitment_type": {
"$ref": "#/definitions/lnrpcCommitmentType", "$ref": "#/definitions/lnrpcCommitmentType",
"description": "/ The commitment type used by this channel." "description": "The commitment type used by this channel."
}, },
"lifetime": { "lifetime": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe number of seconds that the channel has been monitored by the channel\nscoring system. Scores are currently not persisted, so this value may be\nless than the lifetime of the channel [EXPERIMENTAL]." "description": "The number of seconds that the channel has been monitored by the channel\nscoring system. Scores are currently not persisted, so this value may be\nless than the lifetime of the channel [EXPERIMENTAL]."
}, },
"uptime": { "uptime": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe number of seconds that the remote peer has been observed as being online\nby the channel scoring system over the lifetime of the channel\n[EXPERIMENTAL]." "description": "The number of seconds that the remote peer has been observed as being online\nby the channel scoring system over the lifetime of the channel\n[EXPERIMENTAL]."
}, },
"close_address": { "close_address": {
"type": "string", "type": "string",
"description": "*\nClose address is the address that we will enforce payout to on cooperative\nclose if the channel was opened utilizing option upfront shutdown. This\nvalue can be set on channel open by setting close_address in an open channel\nrequest. If this value is not set, you can still choose a payout address by\ncooperatively closing with the delivery_address field set." "description": "Close address is the address that we will enforce payout to on cooperative\nclose if the channel was opened utilizing option upfront shutdown. This\nvalue can be set on channel open by setting close_address in an open channel\nrequest. If this value is not set, you can still choose a payout address by\ncooperatively closing with the delivery_address field set."
}, },
"push_amount_sat": { "push_amount_sat": {
"type": "string", "type": "string",
@ -1964,7 +1964,7 @@
"thaw_height": { "thaw_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThis uint32 indicates if this channel is to be considered 'frozen'. A\nfrozen channel doest not allow a cooperative channel close by the\ninitiator. The thaw_height is the height that this restriction stops\napplying to the channel. This field is optional, not setting it or using a\nvalue of zero will mean the channel has no additional restrictions." "description": "This uint32 indicates if this channel is to be considered 'frozen'. A\nfrozen channel doest not allow a cooperative channel close by the\ninitiator. The thaw_height is the height that this restriction stops\napplying to the channel. This field is optional, not setting it or using a\nvalue of zero will mean the channel has no additional restrictions."
} }
} }
}, },
@ -1974,67 +1974,67 @@
"node_pubkey": { "node_pubkey": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The pubkey of the node that wishes to open an inbound channel." "description": "The pubkey of the node that wishes to open an inbound channel."
}, },
"chain_hash": { "chain_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The hash of the genesis block that the proposed channel resides in." "description": "The hash of the genesis block that the proposed channel resides in."
}, },
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The pending channel id." "description": "The pending channel id."
}, },
"funding_amt": { "funding_amt": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The funding amount in satoshis that initiator wishes to use in the\n/ channel." "description": "The funding amount in satoshis that initiator wishes to use in the\nchannel."
}, },
"push_amt": { "push_amt": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The push amount of the proposed channel in millisatoshis." "description": "The push amount of the proposed channel in millisatoshis."
}, },
"dust_limit": { "dust_limit": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The dust limit of the initiator's commitment tx." "description": "The dust limit of the initiator's commitment tx."
}, },
"max_value_in_flight": { "max_value_in_flight": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The maximum amount of coins in millisatoshis that can be pending in this\n/ channel." "description": "The maximum amount of coins in millisatoshis that can be pending in this\nchannel."
}, },
"channel_reserve": { "channel_reserve": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The minimum amount of satoshis the initiator requires us to have at all\n/ times." "description": "The minimum amount of satoshis the initiator requires us to have at all\ntimes."
}, },
"min_htlc": { "min_htlc": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The smallest HTLC in millisatoshis that the initiator will accept." "description": "The smallest HTLC in millisatoshis that the initiator will accept."
}, },
"fee_per_kw": { "fee_per_kw": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The initial fee rate that the initiator suggests for both commitment\n/ transactions." "description": "The initial fee rate that the initiator suggests for both commitment\ntransactions."
}, },
"csv_delay": { "csv_delay": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe number of blocks to use for the relative time lock in the pay-to-self\noutput of both commitment transactions." "description": "The number of blocks to use for the relative time lock in the pay-to-self\noutput of both commitment transactions."
}, },
"max_accepted_htlcs": { "max_accepted_htlcs": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The total number of incoming HTLC's that the initiator will accept." "description": "The total number of incoming HTLC's that the initiator will accept."
}, },
"channel_flags": { "channel_flags": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ A bit-field which the initiator uses to specify proposed channel\n/ behavior." "description": "A bit-field which the initiator uses to specify proposed channel\nbehavior."
} }
} }
}, },
@ -2043,12 +2043,12 @@
"properties": { "properties": {
"chan_point": { "chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint", "$ref": "#/definitions/lnrpcChannelPoint",
"description": "*\nIdentifies the channel that this backup belongs to." "description": "Identifies the channel that this backup belongs to."
}, },
"chan_backup": { "chan_backup": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nIs an encrypted single-chan backup. this can be passed to\nRestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in\norder to trigger the recovery protocol. When using REST, this field must be\nencoded as base64." "description": "Is an encrypted single-chan backup. this can be passed to\nRestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in\norder to trigger the recovery protocol. When using REST, this field must be\nencoded as base64."
} }
} }
}, },
@ -2060,7 +2060,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelBackup" "$ref": "#/definitions/lnrpcChannelBackup"
}, },
"description": "*\nA set of single-chan static channel backups." "description": "A set of single-chan static channel backups."
} }
} }
}, },
@ -2070,12 +2070,12 @@
"balance": { "balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Sum of channels balances denominated in satoshis" "title": "Sum of channels balances denominated in satoshis"
}, },
"pending_open_balance": { "pending_open_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Sum of channels pending balances denominated in satoshis" "title": "Sum of channels pending balances denominated in satoshis"
} }
} }
}, },
@ -2084,56 +2084,56 @@
"properties": { "properties": {
"channel_point": { "channel_point": {
"type": "string", "type": "string",
"description": "/ The outpoint (txid:index) of the funding transaction." "description": "The outpoint (txid:index) of the funding transaction."
}, },
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The unique channel ID for the channel." "description": "The unique channel ID for the channel."
}, },
"chain_hash": { "chain_hash": {
"type": "string", "type": "string",
"description": "/ The hash of the genesis block that this channel resides within." "description": "The hash of the genesis block that this channel resides within."
}, },
"closing_tx_hash": { "closing_tx_hash": {
"type": "string", "type": "string",
"description": "/ The txid of the transaction which ultimately closed this channel." "description": "The txid of the transaction which ultimately closed this channel."
}, },
"remote_pubkey": { "remote_pubkey": {
"type": "string", "type": "string",
"description": "/ Public key of the remote peer that we formerly had a channel with." "description": "Public key of the remote peer that we formerly had a channel with."
}, },
"capacity": { "capacity": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Total capacity of the channel." "description": "Total capacity of the channel."
}, },
"close_height": { "close_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ Height at which the funding transaction was spent." "description": "Height at which the funding transaction was spent."
}, },
"settled_balance": { "settled_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Settled balance at the time of channel closure" "title": "Settled balance at the time of channel closure"
}, },
"time_locked_balance": { "time_locked_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The sum of all the time-locked outputs at the time of channel closure" "title": "The sum of all the time-locked outputs at the time of channel closure"
}, },
"close_type": { "close_type": {
"$ref": "#/definitions/ChannelCloseSummaryClosureType", "$ref": "#/definitions/ChannelCloseSummaryClosureType",
"description": "/ Details on how the channel was closed." "description": "Details on how the channel was closed."
}, },
"open_initiator": { "open_initiator": {
"$ref": "#/definitions/lnrpcInitiator", "$ref": "#/definitions/lnrpcInitiator",
"description": "*\nOpen initiator is the party that initiated opening the channel. Note that\nthis value may be unknown if the channel was closed before we migrated to\nstore open channel information after close." "description": "Open initiator is the party that initiated opening the channel. Note that\nthis value may be unknown if the channel was closed before we migrated to\nstore open channel information after close."
}, },
"close_initiator": { "close_initiator": {
"$ref": "#/definitions/lnrpcInitiator", "$ref": "#/definitions/lnrpcInitiator",
"description": "*\nClose initiator indicates which party initiated the close. This value will\nbe unknown for channels that were cooperatively closed before we started\ntracking cooperative close initiators. Note that this indicates which party\ninitiated a close, and it is possible for both to initiate cooperative or\nforce closes, although only one party's close will be confirmed on chain." "description": "Close initiator indicates which party initiated the close. This value will\nbe unknown for channels that were cooperatively closed before we started\ntracking cooperative close initiators. Note that this indicates which party\ninitiated a close, and it is possible for both to initiate cooperative or\nforce closes, although only one party's close will be confirmed on chain."
} }
} }
}, },
@ -2156,7 +2156,7 @@
"channel_id": { "channel_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel." "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel."
}, },
"chan_point": { "chan_point": {
"type": "string" "type": "string"
@ -2182,7 +2182,7 @@
"$ref": "#/definitions/lnrpcRoutingPolicy" "$ref": "#/definitions/lnrpcRoutingPolicy"
} }
}, },
"description": "*\nA fully authenticated channel along with all its unique attributes.\nOnce an authenticated channel announcement has been processed on the network,\nthen an instance of ChannelEdgeInfo encapsulating the channels attributes is\nstored. The other portions relevant to routing policy of a channel are stored\nwithin a ChannelEdgePolicy for each direction of the channel." "description": "A fully authenticated channel along with all its unique attributes.\nOnce an authenticated channel announcement has been processed on the network,\nthen an instance of ChannelEdgeInfo encapsulating the channels attributes is\nstored. The other portions relevant to routing policy of a channel are stored\nwithin a ChannelEdgePolicy for each direction of the channel."
}, },
"lnrpcChannelEdgeUpdate": { "lnrpcChannelEdgeUpdate": {
"type": "object", "type": "object",
@ -2190,7 +2190,7 @@
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel." "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel."
}, },
"chan_point": { "chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint" "$ref": "#/definitions/lnrpcChannelPoint"
@ -2239,26 +2239,26 @@
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The short channel id that this fee report belongs to." "description": "The short channel id that this fee report belongs to."
}, },
"channel_point": { "channel_point": {
"type": "string", "type": "string",
"description": "/ The channel that this fee report belongs to." "description": "The channel that this fee report belongs to."
}, },
"base_fee_msat": { "base_fee_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The base fee charged regardless of the number of milli-satoshis sent." "description": "The base fee charged regardless of the number of milli-satoshis sent."
}, },
"fee_per_mil": { "fee_per_mil": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The amount charged per milli-satoshis transferred expressed in\n/ millionths of a satoshi." "description": "The amount charged per milli-satoshis transferred expressed in\nmillionths of a satoshi."
}, },
"fee_rate": { "fee_rate": {
"type": "number", "type": "number",
"format": "double", "format": "double",
"description": "/ The effective fee rate in milli-satoshis. Computed by dividing the\n/ fee_per_mil value by 1 million." "description": "The effective fee rate in milli-satoshis. Computed by dividing the\nfee_per_mil value by 1 million."
} }
} }
}, },
@ -2270,17 +2270,17 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcLightningNode" "$ref": "#/definitions/lnrpcLightningNode"
}, },
"title": "/ The list of `LightningNode`s in this channel graph" "title": "The list of `LightningNode`s in this channel graph"
}, },
"edges": { "edges": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelEdge" "$ref": "#/definitions/lnrpcChannelEdge"
}, },
"title": "/ The list of `ChannelEdge`s in this channel graph" "title": "The list of `ChannelEdge`s in this channel graph"
} }
}, },
"description": "/ Returns a new instance of the directed channel graph." "description": "Returns a new instance of the directed channel graph."
}, },
"lnrpcChannelOpenUpdate": { "lnrpcChannelOpenUpdate": {
"type": "object", "type": "object",
@ -2296,16 +2296,16 @@
"funding_txid_bytes": { "funding_txid_bytes": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nTxid of the funding transaction. When using REST, this field must be\nencoded as base64." "description": "Txid of the funding transaction. When using REST, this field must be\nencoded as base64."
}, },
"funding_txid_str": { "funding_txid_str": {
"type": "string", "type": "string",
"description": "*\nHex-encoded string representing the byte-reversed hash of the funding\ntransaction." "description": "Hex-encoded string representing the byte-reversed hash of the funding\ntransaction."
}, },
"output_index": { "output_index": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The index of the output of the funding transaction" "title": "The index of the output of the funding transaction"
} }
} }
}, },
@ -2315,62 +2315,62 @@
"signature": { "signature": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe signature that validates the announced data and proves the ownership\nof node id." "description": "The signature that validates the announced data and proves the ownership\nof node id."
}, },
"chain_hash": { "chain_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe target chain that this channel was opened within. This value\nshould be the genesis hash of the target chain. Along with the short\nchannel ID, this uniquely identifies the channel globally in a\nblockchain." "description": "The target chain that this channel was opened within. This value\nshould be the genesis hash of the target chain. Along with the short\nchannel ID, this uniquely identifies the channel globally in a\nblockchain."
}, },
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique description of the funding transaction." "description": "The unique description of the funding transaction."
}, },
"timestamp": { "timestamp": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nA timestamp that allows ordering in the case of multiple announcements.\nWe should ignore the message if timestamp is not greater than the\nlast-received." "description": "A timestamp that allows ordering in the case of multiple announcements.\nWe should ignore the message if timestamp is not greater than the\nlast-received."
}, },
"message_flags": { "message_flags": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe bitfield that describes whether optional fields are present in this\nupdate. Currently, the least-significant bit must be set to 1 if the\noptional field MaxHtlc is present." "description": "The bitfield that describes whether optional fields are present in this\nupdate. Currently, the least-significant bit must be set to 1 if the\noptional field MaxHtlc is present."
}, },
"channel_flags": { "channel_flags": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe bitfield that describes additional meta-data concerning how the\nupdate is to be interpreted. Currently, the least-significant bit must be\nset to 0 if the creating node corresponds to the first node in the\npreviously sent channel announcement and 1 otherwise. If the second bit\nis set, then the channel is set to be disabled." "description": "The bitfield that describes additional meta-data concerning how the\nupdate is to be interpreted. Currently, the least-significant bit must be\nset to 0 if the creating node corresponds to the first node in the\npreviously sent channel announcement and 1 otherwise. If the second bit\nis set, then the channel is set to be disabled."
}, },
"time_lock_delta": { "time_lock_delta": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe minimum number of blocks this node requires to be added to the expiry\nof HTLCs. This is a security parameter determined by the node operator.\nThis value represents the required gap between the time locks of the\nincoming and outgoing HTLC's set to this node." "description": "The minimum number of blocks this node requires to be added to the expiry\nof HTLCs. This is a security parameter determined by the node operator.\nThis value represents the required gap between the time locks of the\nincoming and outgoing HTLC's set to this node."
}, },
"htlc_minimum_msat": { "htlc_minimum_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe minimum HTLC value which will be accepted." "description": "The minimum HTLC value which will be accepted."
}, },
"base_fee": { "base_fee": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe base fee that must be used for incoming HTLC's to this particular\nchannel. This value will be tacked onto the required for a payment\nindependent of the size of the payment." "description": "The base fee that must be used for incoming HTLC's to this particular\nchannel. This value will be tacked onto the required for a payment\nindependent of the size of the payment."
}, },
"fee_rate": { "fee_rate": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe fee rate that will be charged per millionth of a satoshi." "description": "The fee rate that will be charged per millionth of a satoshi."
}, },
"htlc_maximum_msat": { "htlc_maximum_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe maximum HTLC value which will be accepted." "description": "The maximum HTLC value which will be accepted."
}, },
"extra_opaque_data": { "extra_opaque_data": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe set of data that was appended to this message, some of which we may\nnot actually know how to iterate or parse. By holding onto this data, we\nensure that we're able to properly validate the set of signatures that\ncover these new fields, and ensure we're able to make upgrades to the\nnetwork in a forwards compatible manner." "description": "The set of data that was appended to this message, some of which we may\nnot actually know how to iterate or parse. By holding onto this data, we\nensure that we're able to properly validate the set of signatures that\ncover these new fields, and ensure we're able to make upgrades to the\nnetwork in a forwards compatible manner."
} }
} }
}, },
@ -2391,7 +2391,7 @@
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel." "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel."
}, },
"capacity": { "capacity": {
"type": "string", "type": "string",
@ -2426,19 +2426,19 @@
"UNKNOWN_COMMITMENT_TYPE" "UNKNOWN_COMMITMENT_TYPE"
], ],
"default": "LEGACY", "default": "LEGACY",
"description": " - LEGACY: *\nA channel using the legacy commitment format having tweaked to_remote\nkeys.\n - STATIC_REMOTE_KEY: *\nA channel that uses the modern commitment format where the key in the\noutput of the remote party does not change each state. This makes back\nup and recovery easier as when the channel is closed, the funds go\ndirectly to that key.\n - ANCHORS: *\nA channel that uses a commitment format that has anchor outputs on the\ncommitments, allowing fee bumping after a force close transaction has\nbeen broadcast.\n - UNKNOWN_COMMITMENT_TYPE: *\nReturned when the commitment type isn't known or unavailable." "description": " - LEGACY: A channel using the legacy commitment format having tweaked to_remote\nkeys.\n - STATIC_REMOTE_KEY: A channel that uses the modern commitment format where the key in the\noutput of the remote party does not change each state. This makes back\nup and recovery easier as when the channel is closed, the funds go\ndirectly to that key.\n - ANCHORS: A channel that uses a commitment format that has anchor outputs on the\ncommitments, allowing fee bumping after a force close transaction has\nbeen broadcast.\n - UNKNOWN_COMMITMENT_TYPE: Returned when the commitment type isn't known or unavailable."
}, },
"lnrpcConnectPeerRequest": { "lnrpcConnectPeerRequest": {
"type": "object", "type": "object",
"properties": { "properties": {
"addr": { "addr": {
"$ref": "#/definitions/lnrpcLightningAddress", "$ref": "#/definitions/lnrpcLightningAddress",
"title": "/ Lightning address of the peer, in the format `\u003cpubkey\u003e@host`" "title": "Lightning address of the peer, in the format `\u003cpubkey\u003e@host`"
}, },
"perm": { "perm": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "* If set, the daemon will attempt to persistently connect to the target\npeer. Otherwise, the call will be synchronous." "description": "If set, the daemon will attempt to persistently connect to the target\npeer. Otherwise, the call will be synchronous."
} }
} }
}, },
@ -2465,12 +2465,12 @@
"channel_id": { "channel_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The short channel id of this edge." "description": "The short channel id of this edge."
}, },
"direction_reverse": { "direction_reverse": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "*\nThe direction of this edge. If direction_reverse is false, the direction\nof this edge is from the channel endpoint with the lexicographically smaller\npub key to the endpoint with the larger pub key. If direction_reverse is\nis true, the edge goes the other way." "description": "The direction of this edge. If direction_reverse is false, the direction\nof this edge is from the channel endpoint with the lexicographically smaller\npub key to the endpoint with the larger pub key. If direction_reverse is\nis true, the edge goes the other way."
} }
} }
}, },
@ -2480,12 +2480,12 @@
"fee_sat": { "fee_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The total fee in satoshis." "description": "The total fee in satoshis."
}, },
"feerate_sat_per_byte": { "feerate_sat_per_byte": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The fee rate in satoshi/byte." "description": "The fee rate in satoshi/byte."
} }
} }
}, },
@ -2494,41 +2494,41 @@
"properties": { "properties": {
"code": { "code": {
"$ref": "#/definitions/FailureFailureCode", "$ref": "#/definitions/FailureFailureCode",
"title": "/ Failure code as defined in the Lightning spec" "title": "Failure code as defined in the Lightning spec"
}, },
"channel_update": { "channel_update": {
"$ref": "#/definitions/lnrpcChannelUpdate", "$ref": "#/definitions/lnrpcChannelUpdate",
"description": "/ An optional channel update message." "description": "An optional channel update message."
}, },
"htlc_msat": { "htlc_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ A failure type-dependent htlc value." "description": "A failure type-dependent htlc value."
}, },
"onion_sha_256": { "onion_sha_256": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The sha256 sum of the onion payload." "description": "The sha256 sum of the onion payload."
}, },
"cltv_expiry": { "cltv_expiry": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ A failure type-dependent cltv expiry value." "description": "A failure type-dependent cltv expiry value."
}, },
"flags": { "flags": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ A failure type-dependent flags value." "description": "A failure type-dependent flags value."
}, },
"failure_source_index": { "failure_source_index": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe position in the path of the intermediate or final node that generated\nthe failure message. Position zero is the sender node." "description": "The position in the path of the intermediate or final node that generated\nthe failure message. Position zero is the sender node."
}, },
"height": { "height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ A failure type-dependent block height." "description": "A failure type-dependent block height."
} }
} }
}, },
@ -2577,17 +2577,17 @@
"fixed": { "fixed": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe fee limit expressed as a fixed amount of satoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive." "description": "The fee limit expressed as a fixed amount of satoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive."
}, },
"fixed_msat": { "fixed_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe fee limit expressed as a fixed amount of millisatoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive." "description": "The fee limit expressed as a fixed amount of millisatoshis.\n\nThe fields fixed and fixed_msat are mutually exclusive."
}, },
"percent": { "percent": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The fee limit expressed as a percentage of the payment amount." "description": "The fee limit expressed as a percentage of the payment amount."
} }
} }
}, },
@ -2599,22 +2599,22 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelFeeReport" "$ref": "#/definitions/lnrpcChannelFeeReport"
}, },
"description": "/ An array of channel fee reports which describes the current fee schedule\n/ for each channel." "description": "An array of channel fee reports which describes the current fee schedule\nfor each channel."
}, },
"day_fee_sum": { "day_fee_sum": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount of fee revenue (in satoshis) the switch has collected\n/ over the past 24 hrs." "description": "The total amount of fee revenue (in satoshis) the switch has collected\nover the past 24 hrs."
}, },
"week_fee_sum": { "week_fee_sum": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount of fee revenue (in satoshis) the switch has collected\n/ over the past 1 week." "description": "The total amount of fee revenue (in satoshis) the switch has collected\nover the past 1 week."
}, },
"month_fee_sum": { "month_fee_sum": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount of fee revenue (in satoshis) the switch has collected\n/ over the past 1 month." "description": "The total amount of fee revenue (in satoshis) the switch has collected\nover the past 1 month."
} }
} }
}, },
@ -2624,12 +2624,12 @@
"value": { "value": {
"type": "number", "type": "number",
"format": "double", "format": "double",
"description": "/ Arbitrary float value." "description": "Arbitrary float value."
}, },
"normalized_value": { "normalized_value": {
"type": "number", "type": "number",
"format": "double", "format": "double",
"description": "/ The value normalized to [0,1] or [-1,1]." "description": "The value normalized to [0,1] or [-1,1]."
} }
} }
}, },
@ -2639,47 +2639,47 @@
"timestamp": { "timestamp": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ Timestamp is the time (unix epoch offset) that this circuit was\n/ completed." "description": "Timestamp is the time (unix epoch offset) that this circuit was\ncompleted."
}, },
"chan_id_in": { "chan_id_in": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The incoming channel ID that carried the HTLC that created the circuit." "description": "The incoming channel ID that carried the HTLC that created the circuit."
}, },
"chan_id_out": { "chan_id_out": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The outgoing channel ID that carried the preimage that completed the\n/ circuit." "description": "The outgoing channel ID that carried the preimage that completed the\ncircuit."
}, },
"amt_in": { "amt_in": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount (in satoshis) of the incoming HTLC that created half\n/ the circuit." "description": "The total amount (in satoshis) of the incoming HTLC that created half\nthe circuit."
}, },
"amt_out": { "amt_out": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount (in satoshis) of the outgoing HTLC that created the\n/ second half of the circuit." "description": "The total amount (in satoshis) of the outgoing HTLC that created the\nsecond half of the circuit."
}, },
"fee": { "fee": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total fee (in satoshis) that this payment circuit carried." "description": "The total fee (in satoshis) that this payment circuit carried."
}, },
"fee_msat": { "fee_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total fee (in milli-satoshis) that this payment circuit carried." "description": "The total fee (in milli-satoshis) that this payment circuit carried."
}, },
"amt_in_msat": { "amt_in_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount (in milli-satoshis) of the incoming HTLC that created\n/ half the circuit." "description": "The total amount (in milli-satoshis) of the incoming HTLC that created\nhalf the circuit."
}, },
"amt_out_msat": { "amt_out_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount (in milli-satoshis) of the outgoing HTLC that created\n/ the second half of the circuit." "description": "The total amount (in milli-satoshis) of the outgoing HTLC that created\nthe second half of the circuit."
} }
} }
}, },
@ -2689,22 +2689,22 @@
"start_time": { "start_time": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ Start time is the starting point of the forwarding history request. All\n/ records beyond this point will be included, respecting the end time, and\n/ the index offset." "description": "Start time is the starting point of the forwarding history request. All\nrecords beyond this point will be included, respecting the end time, and\nthe index offset."
}, },
"end_time": { "end_time": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ End time is the end point of the forwarding history request. The\n/ response will carry at most 50k records between the start time and the\n/ end time. The index offset can be used to implement pagination." "description": "End time is the end point of the forwarding history request. The\nresponse will carry at most 50k records between the start time and the\nend time. The index offset can be used to implement pagination."
}, },
"index_offset": { "index_offset": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ Index offset is the offset in the time series to start at. As each\n/ response can only contain 50k records, callers can use this to skip\n/ around within a packed time series." "description": "Index offset is the offset in the time series to start at. As each\nresponse can only contain 50k records, callers can use this to skip\naround within a packed time series."
}, },
"num_max_events": { "num_max_events": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The max number of events to return in the response to this query." "description": "The max number of events to return in the response to this query."
} }
} }
}, },
@ -2716,12 +2716,12 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcForwardingEvent" "$ref": "#/definitions/lnrpcForwardingEvent"
}, },
"description": "/ A list of forwarding events from the time slice of the time series\n/ specified in the request." "description": "A list of forwarding events from the time slice of the time series\nspecified in the request."
}, },
"last_offset_index": { "last_offset_index": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The index of the last time in the set of returned forwarding events. Can\n/ be used to seek further, pagination style." "description": "The index of the last time in the set of returned forwarding events. Can\nbe used to seek further, pagination style."
} }
} }
}, },
@ -2731,12 +2731,12 @@
"signed_psbt": { "signed_psbt": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe funded PSBT that contains all witness data to send the exact channel\ncapacity amount to the PK script returned in the open channel message in a\nprevious step." "description": "The funded PSBT that contains all witness data to send the exact channel\ncapacity amount to the PK script returned in the open channel message in a\nprevious step."
}, },
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The pending channel ID of the channel to get the PSBT for." "description": "The pending channel ID of the channel to get the PSBT for."
} }
} }
}, },
@ -2746,12 +2746,12 @@
"funded_psbt": { "funded_psbt": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe funded but not yet signed PSBT that sends the exact channel capacity\namount to the PK script returned in the open channel message in a previous\nstep." "description": "The funded but not yet signed PSBT that sends the exact channel capacity\namount to the PK script returned in the open channel message in a previous\nstep."
}, },
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The pending channel ID of the channel to get the PSBT for." "description": "The pending channel ID of the channel to get the PSBT for."
} }
} }
}, },
@ -2760,11 +2760,11 @@
"properties": { "properties": {
"chan_point_shim": { "chan_point_shim": {
"$ref": "#/definitions/lnrpcChanPointShim", "$ref": "#/definitions/lnrpcChanPointShim",
"description": "*\nA channel shim where the channel point was fully constructed outside\nof lnd's wallet and the transaction might already be published." "description": "A channel shim where the channel point was fully constructed outside\nof lnd's wallet and the transaction might already be published."
}, },
"psbt_shim": { "psbt_shim": {
"$ref": "#/definitions/lnrpcPsbtShim", "$ref": "#/definitions/lnrpcPsbtShim",
"description": "*\nA channel shim that uses a PSBT to fund and sign the channel funding\ntransaction." "description": "A channel shim that uses a PSBT to fund and sign the channel funding\ntransaction."
} }
} }
}, },
@ -2774,7 +2774,7 @@
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ The pending channel ID of the channel to cancel the funding shim for." "description": "The pending channel ID of the channel to cancel the funding shim for."
} }
} }
}, },
@ -2786,62 +2786,62 @@
"properties": { "properties": {
"version": { "version": {
"type": "string", "type": "string",
"description": "/ The version of the LND software that the node is running." "description": "The version of the LND software that the node is running."
}, },
"commit_hash": { "commit_hash": {
"type": "string", "type": "string",
"description": "/ The SHA1 commit hash that the daemon is compiled with." "description": "The SHA1 commit hash that the daemon is compiled with."
}, },
"identity_pubkey": { "identity_pubkey": {
"type": "string", "type": "string",
"description": "/ The identity pubkey of the current node." "description": "The identity pubkey of the current node."
}, },
"alias": { "alias": {
"type": "string", "type": "string",
"title": "/ If applicable, the alias of the current node, e.g. \"bob\"" "title": "If applicable, the alias of the current node, e.g. \"bob\""
}, },
"color": { "color": {
"type": "string", "type": "string",
"title": "/ The color of the current node in hex code format" "title": "The color of the current node in hex code format"
}, },
"num_pending_channels": { "num_pending_channels": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ Number of pending channels" "title": "Number of pending channels"
}, },
"num_active_channels": { "num_active_channels": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ Number of active channels" "title": "Number of active channels"
}, },
"num_inactive_channels": { "num_inactive_channels": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ Number of inactive channels" "title": "Number of inactive channels"
}, },
"num_peers": { "num_peers": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ Number of peers" "title": "Number of peers"
}, },
"block_height": { "block_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The node's current view of the height of the best block" "title": "The node's current view of the height of the best block"
}, },
"block_hash": { "block_hash": {
"type": "string", "type": "string",
"title": "/ The node's current view of the hash of the best block" "title": "The node's current view of the hash of the best block"
}, },
"best_header_timestamp": { "best_header_timestamp": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Timestamp of the block best known to the wallet" "title": "Timestamp of the block best known to the wallet"
}, },
"synced_to_chain": { "synced_to_chain": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ Whether the wallet's view is synced to the main chain" "title": "Whether the wallet's view is synced to the main chain"
}, },
"synced_to_graph": { "synced_to_graph": {
"type": "boolean", "type": "boolean",
@ -2851,21 +2851,21 @@
"testnet": { "testnet": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "*\nWhether the current node is connected to testnet. This field is\ndeprecated and the network field should be used instead" "title": "Whether the current node is connected to testnet. This field is\ndeprecated and the network field should be used instead"
}, },
"chains": { "chains": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcChain" "$ref": "#/definitions/lnrpcChain"
}, },
"title": "/ A list of active chains the node is connected to" "title": "A list of active chains the node is connected to"
}, },
"uris": { "uris": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"description": "/ The URIs of the current node." "description": "The URIs of the current node."
}, },
"features": { "features": {
"type": "object", "type": "object",
@ -2925,21 +2925,21 @@
"properties": { "properties": {
"status": { "status": {
"$ref": "#/definitions/HTLCAttemptHTLCStatus", "$ref": "#/definitions/HTLCAttemptHTLCStatus",
"description": "/ The status of the HTLC." "description": "The status of the HTLC."
}, },
"route": { "route": {
"$ref": "#/definitions/lnrpcRoute", "$ref": "#/definitions/lnrpcRoute",
"description": "/ The route taken by this HTLC." "description": "The route taken by this HTLC."
}, },
"attempt_time_ns": { "attempt_time_ns": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The time in UNIX nanoseconds at which this HTLC was sent." "description": "The time in UNIX nanoseconds at which this HTLC was sent."
}, },
"resolve_time_ns": { "resolve_time_ns": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe time in UNIX nanoseconds at which this HTLC was settled or failed.\nThis value will not be set if the HTLC is still IN_FLIGHT." "description": "The time in UNIX nanoseconds at which this HTLC was settled or failed.\nThis value will not be set if the HTLC is still IN_FLIGHT."
}, },
"failure": { "failure": {
"$ref": "#/definitions/lnrpcFailure", "$ref": "#/definitions/lnrpcFailure",
@ -2953,7 +2953,7 @@
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel." "description": "The unique channel ID for the channel. The first 3 bytes are the block\nheight, the next 3 the index within the block, and the last 2 bytes are the\noutput index for the channel."
}, },
"chan_capacity": { "chan_capacity": {
"type": "string", "type": "string",
@ -2981,16 +2981,16 @@
}, },
"pub_key": { "pub_key": {
"type": "string", "type": "string",
"description": "*\nAn optional public key of the hop. If the public key is given, the payment\ncan be executed without relying on a copy of the channel graph." "description": "An optional public key of the hop. If the public key is given, the payment\ncan be executed without relying on a copy of the channel graph."
}, },
"tlv_payload": { "tlv_payload": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "*\nIf set to true, then this hop will be encoded using the new variable length\nTLV format. Note that if any custom tlv_records below are specified, then\nthis field MUST be set to true for them to be encoded properly." "description": "If set to true, then this hop will be encoded using the new variable length\nTLV format. Note that if any custom tlv_records below are specified, then\nthis field MUST be set to true for them to be encoded properly."
}, },
"mpp_record": { "mpp_record": {
"$ref": "#/definitions/lnrpcMPPRecord", "$ref": "#/definitions/lnrpcMPPRecord",
"description": "*\nAn optional TLV record that signals the use of an MPP payment. If present,\nthe receiver will enforce that that the same mpp_record is included in the\nfinal hop payload of all non-zero payments in the HTLC set. If empty, a\nregular single-shot payment is or was attempted." "description": "An optional TLV record that signals the use of an MPP payment. If present,\nthe receiver will enforce that that the same mpp_record is included in the\nfinal hop payload of all non-zero payments in the HTLC set. If empty, a\nregular single-shot payment is or was attempted."
}, },
"custom_records": { "custom_records": {
"type": "object", "type": "object",
@ -2998,7 +2998,7 @@
"type": "string", "type": "string",
"format": "byte" "format": "byte"
}, },
"description": "*\nAn optional set of key-value TLV records. This is useful within the context\nof the SendToRoute call as it allows callers to specify arbitrary K-V pairs\nto drop off at each hop within the onion." "description": "An optional set of key-value TLV records. This is useful within the context\nof the SendToRoute call as it allows callers to specify arbitrary K-V pairs\nto drop off at each hop within the onion."
} }
} }
}, },
@ -3007,27 +3007,27 @@
"properties": { "properties": {
"node_id": { "node_id": {
"type": "string", "type": "string",
"description": "/ The public key of the node at the start of the channel." "description": "The public key of the node at the start of the channel."
}, },
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The unique identifier of the channel." "description": "The unique identifier of the channel."
}, },
"fee_base_msat": { "fee_base_msat": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The base fee of the channel denominated in millisatoshis." "description": "The base fee of the channel denominated in millisatoshis."
}, },
"fee_proportional_millionths": { "fee_proportional_millionths": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe fee rate of the channel for sending one satoshi across it denominated in\nmillionths of a satoshi." "description": "The fee rate of the channel for sending one satoshi across it denominated in\nmillionths of a satoshi."
}, },
"cltv_expiry_delta": { "cltv_expiry_delta": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The time-lock delta of the channel." "description": "The time-lock delta of the channel."
} }
} }
}, },
@ -3046,127 +3046,127 @@
"properties": { "properties": {
"memo": { "memo": {
"type": "string", "type": "string",
"description": "*\nAn optional memo to attach along with the invoice. Used for record keeping\npurposes for the invoice's creator, and will also be set in the description\nfield of the encoded payment request if the description_hash field is not\nbeing used." "description": "An optional memo to attach along with the invoice. Used for record keeping\npurposes for the invoice's creator, and will also be set in the description\nfield of the encoded payment request if the description_hash field is not\nbeing used."
}, },
"r_preimage": { "r_preimage": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe hex-encoded preimage (32 byte) which will allow settling an incoming\nHTLC payable to this preimage. When using REST, this field must be encoded\nas base64." "description": "The hex-encoded preimage (32 byte) which will allow settling an incoming\nHTLC payable to this preimage. When using REST, this field must be encoded\nas base64."
}, },
"r_hash": { "r_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe hash of the preimage. When using REST, this field must be encoded as\nbase64." "description": "The hash of the preimage. When using REST, this field must be encoded as\nbase64."
}, },
"value": { "value": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "The fields value and value_msat are mutually exclusive.", "description": "The fields value and value_msat are mutually exclusive.",
"title": "*\nThe value of this invoice in satoshis" "title": "The value of this invoice in satoshis"
}, },
"value_msat": { "value_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "The fields value and value_msat are mutually exclusive.", "description": "The fields value and value_msat are mutually exclusive.",
"title": "*\nThe value of this invoice in millisatoshis" "title": "The value of this invoice in millisatoshis"
}, },
"settled": { "settled": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ Whether this invoice has been fulfilled" "title": "Whether this invoice has been fulfilled"
}, },
"creation_date": { "creation_date": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ When this invoice was created" "title": "When this invoice was created"
}, },
"settle_date": { "settle_date": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ When this invoice was settled" "title": "When this invoice was settled"
}, },
"payment_request": { "payment_request": {
"type": "string", "type": "string",
"description": "*\nA bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient." "description": "A bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient."
}, },
"description_hash": { "description_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nHash (SHA-256) of a description of the payment. Used if the description of\npayment (memo) is too long to naturally fit within the description field\nof an encoded payment request. When using REST, this field must be encoded\nas base64." "description": "Hash (SHA-256) of a description of the payment. Used if the description of\npayment (memo) is too long to naturally fit within the description field\nof an encoded payment request. When using REST, this field must be encoded\nas base64."
}, },
"expiry": { "expiry": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Payment request expiry time in seconds. Default is 3600 (1 hour)." "description": "Payment request expiry time in seconds. Default is 3600 (1 hour)."
}, },
"fallback_addr": { "fallback_addr": {
"type": "string", "type": "string",
"description": "/ Fallback on-chain address." "description": "Fallback on-chain address."
}, },
"cltv_expiry": { "cltv_expiry": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ Delta to use for the time-lock of the CLTV extended to the final hop." "description": "Delta to use for the time-lock of the CLTV extended to the final hop."
}, },
"route_hints": { "route_hints": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcRouteHint" "$ref": "#/definitions/lnrpcRouteHint"
}, },
"description": "*\nRoute hints that can each be individually used to assist in reaching the\ninvoice's destination." "description": "Route hints that can each be individually used to assist in reaching the\ninvoice's destination."
}, },
"private": { "private": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ Whether this invoice should include routing hints for private channels." "description": "Whether this invoice should include routing hints for private channels."
}, },
"add_index": { "add_index": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe \"add\" index of this invoice. Each newly created invoice will increment\nthis index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all added\ninvoices with an add_index greater than this one." "description": "The \"add\" index of this invoice. Each newly created invoice will increment\nthis index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all added\ninvoices with an add_index greater than this one."
}, },
"settle_index": { "settle_index": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe \"settle\" index of this invoice. Each newly settled invoice will\nincrement this index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all\nsettled invoices with an settle_index greater than this one." "description": "The \"settle\" index of this invoice. Each newly settled invoice will\nincrement this index making it monotonically increasing. Callers to the\nSubscribeInvoices call can use this to instantly get notified of all\nsettled invoices with an settle_index greater than this one."
}, },
"amt_paid": { "amt_paid": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Deprecated, use amt_paid_sat or amt_paid_msat." "description": "Deprecated, use amt_paid_sat or amt_paid_msat."
}, },
"amt_paid_sat": { "amt_paid_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount that was accepted for this invoice, in satoshis. This will ONLY\nbe set if this invoice has been settled. We provide this field as if the\ninvoice was created with a zero value, then we need to record what amount\nwas ultimately accepted. Additionally, it's possible that the sender paid\nMORE that was specified in the original invoice. So we'll record that here\nas well." "description": "The amount that was accepted for this invoice, in satoshis. This will ONLY\nbe set if this invoice has been settled. We provide this field as if the\ninvoice was created with a zero value, then we need to record what amount\nwas ultimately accepted. Additionally, it's possible that the sender paid\nMORE that was specified in the original invoice. So we'll record that here\nas well."
}, },
"amt_paid_msat": { "amt_paid_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount that was accepted for this invoice, in millisatoshis. This will\nONLY be set if this invoice has been settled. We provide this field as if\nthe invoice was created with a zero value, then we need to record what\namount was ultimately accepted. Additionally, it's possible that the sender\npaid MORE that was specified in the original invoice. So we'll record that\nhere as well." "description": "The amount that was accepted for this invoice, in millisatoshis. This will\nONLY be set if this invoice has been settled. We provide this field as if\nthe invoice was created with a zero value, then we need to record what\namount was ultimately accepted. Additionally, it's possible that the sender\npaid MORE that was specified in the original invoice. So we'll record that\nhere as well."
}, },
"state": { "state": {
"$ref": "#/definitions/InvoiceInvoiceState", "$ref": "#/definitions/InvoiceInvoiceState",
"description": "*\nThe state the invoice is in." "description": "The state the invoice is in."
}, },
"htlcs": { "htlcs": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcInvoiceHTLC" "$ref": "#/definitions/lnrpcInvoiceHTLC"
}, },
"description": "/ List of HTLCs paying to this invoice [EXPERIMENTAL]." "description": "List of HTLCs paying to this invoice [EXPERIMENTAL]."
}, },
"features": { "features": {
"type": "object", "type": "object",
"additionalProperties": { "additionalProperties": {
"$ref": "#/definitions/lnrpcFeature" "$ref": "#/definitions/lnrpcFeature"
}, },
"description": "/ List of features advertised on the invoice." "description": "List of features advertised on the invoice."
}, },
"is_keysend": { "is_keysend": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "*\nIndicates if this invoice was a spontaneous payment that arrived via keysend\n[EXPERIMENTAL]." "description": "Indicates if this invoice was a spontaneous payment that arrived via keysend\n[EXPERIMENTAL]."
} }
} }
}, },
@ -3176,41 +3176,41 @@
"chan_id": { "chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ Short channel id over which the htlc was received." "description": "Short channel id over which the htlc was received."
}, },
"htlc_index": { "htlc_index": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ Index identifying the htlc on the channel." "description": "Index identifying the htlc on the channel."
}, },
"amt_msat": { "amt_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The amount of the htlc in msat." "description": "The amount of the htlc in msat."
}, },
"accept_height": { "accept_height": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ Block height at which this htlc was accepted." "description": "Block height at which this htlc was accepted."
}, },
"accept_time": { "accept_time": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Time at which this htlc was accepted." "description": "Time at which this htlc was accepted."
}, },
"resolve_time": { "resolve_time": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Time at which this htlc was settled or canceled." "description": "Time at which this htlc was settled or canceled."
}, },
"expiry_height": { "expiry_height": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ Block height at which this htlc expires." "description": "Block height at which this htlc expires."
}, },
"state": { "state": {
"$ref": "#/definitions/lnrpcInvoiceHTLCState", "$ref": "#/definitions/lnrpcInvoiceHTLCState",
"description": "/ Current state the htlc is in." "description": "Current state the htlc is in."
}, },
"custom_records": { "custom_records": {
"type": "object", "type": "object",
@ -3218,15 +3218,15 @@
"type": "string", "type": "string",
"format": "byte" "format": "byte"
}, },
"description": "/ Custom tlv records." "description": "Custom tlv records."
}, },
"mpp_total_amt_msat": { "mpp_total_amt_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The total amount of the mpp payment in msat." "description": "The total amount of the mpp payment in msat."
} }
}, },
"title": "/ Details of an HTLC that paid to an invoice" "title": "Details of an HTLC that paid to an invoice"
}, },
"lnrpcInvoiceHTLCState": { "lnrpcInvoiceHTLCState": {
"type": "string", "type": "string",
@ -3243,11 +3243,11 @@
"raw_key_bytes": { "raw_key_bytes": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe raw bytes of the key being identified." "description": "The raw bytes of the key being identified."
}, },
"key_loc": { "key_loc": {
"$ref": "#/definitions/lnrpcKeyLocator", "$ref": "#/definitions/lnrpcKeyLocator",
"description": "*\nThe key locator that identifies which key to use for signing." "description": "The key locator that identifies which key to use for signing."
} }
} }
}, },
@ -3257,12 +3257,12 @@
"key_family": { "key_family": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ The family of key being identified." "description": "The family of key being identified."
}, },
"key_index": { "key_index": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ The precise index of the key being identified." "description": "The precise index of the key being identified."
} }
} }
}, },
@ -3271,11 +3271,11 @@
"properties": { "properties": {
"pubkey": { "pubkey": {
"type": "string", "type": "string",
"title": "/ The identity pubkey of the Lightning node" "title": "The identity pubkey of the Lightning node"
}, },
"host": { "host": {
"type": "string", "type": "string",
"title": "/ The network location of the lightning node, e.g. `69.69.69.69:1337` or\n/ `localhost:10011`" "title": "The network location of the lightning node, e.g. `69.69.69.69:1337` or\n`localhost:10011`"
} }
} }
}, },
@ -3308,7 +3308,7 @@
} }
} }
}, },
"description": "*\nAn individual vertex/node within the channel graph. A node is\nconnected to other nodes by one or more channel edges emanating from it. As the\ngraph is directed, a node will also have an incoming edge attached to it for\neach outgoing edge." "description": "An individual vertex/node within the channel graph. A node is\nconnected to other nodes by one or more channel edges emanating from it. As the\ngraph is directed, a node will also have an incoming edge attached to it for\neach outgoing edge."
}, },
"lnrpcListChannelsResponse": { "lnrpcListChannelsResponse": {
"type": "object", "type": "object",
@ -3318,7 +3318,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannel" "$ref": "#/definitions/lnrpcChannel"
}, },
"title": "/ The list of active channels" "title": "The list of active channels"
} }
} }
}, },
@ -3330,17 +3330,17 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcInvoice" "$ref": "#/definitions/lnrpcInvoice"
}, },
"description": "*\nA list of invoices from the time slice of the time series specified in the\nrequest." "description": "A list of invoices from the time slice of the time series specified in the\nrequest."
}, },
"last_index_offset": { "last_index_offset": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe index of the last item in the set of returned invoices. This can be used\nto seek further, pagination style." "description": "The index of the last item in the set of returned invoices. This can be used\nto seek further, pagination style."
}, },
"first_index_offset": { "first_index_offset": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe index of the last item in the set of returned invoices. This can be used\nto seek backwards, pagination style." "description": "The index of the last item in the set of returned invoices. This can be used\nto seek backwards, pagination style."
} }
} }
}, },
@ -3352,17 +3352,17 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcPayment" "$ref": "#/definitions/lnrpcPayment"
}, },
"title": "/ The list of payments" "title": "The list of payments"
}, },
"first_index_offset": { "first_index_offset": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe index of the first item in the set of returned payments. This can be\nused as the index_offset to continue seeking backwards in the next request." "description": "The index of the first item in the set of returned payments. This can be\nused as the index_offset to continue seeking backwards in the next request."
}, },
"last_index_offset": { "last_index_offset": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe index of the last item in the set of returned payments. This can be used\nas the index_offset to continue seeking forwards in the next request." "description": "The index of the last item in the set of returned payments. This can be used\nas the index_offset to continue seeking forwards in the next request."
} }
} }
}, },
@ -3374,7 +3374,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcPeer" "$ref": "#/definitions/lnrpcPeer"
}, },
"title": "/ The list of currently connected peers" "title": "The list of currently connected peers"
} }
} }
}, },
@ -3386,7 +3386,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcUtxo" "$ref": "#/definitions/lnrpcUtxo"
}, },
"title": "/ A list of utxos" "title": "A list of utxos"
} }
} }
}, },
@ -3396,12 +3396,12 @@
"payment_addr": { "payment_addr": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nA unique, random identifier used to authenticate the sender as the intended\npayer of a multi-path payment. The payment_addr must be the same for all\nsubpayments, and match the payment_addr provided in the receiver's invoice.\nThe same payment_addr must be used on all subpayments." "description": "A unique, random identifier used to authenticate the sender as the intended\npayer of a multi-path payment. The payment_addr must be the same for all\nsubpayments, and match the payment_addr provided in the receiver's invoice.\nThe same payment_addr must be used on all subpayments."
}, },
"total_amt_msat": { "total_amt_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total amount in milli-satoshis being sent as part of a larger multi-path\npayment. The caller is responsible for ensuring subpayments to the same node\nand payment_hash sum exactly to total_amt_msat. The same\ntotal_amt_msat must be used on all subpayments." "description": "The total amount in milli-satoshis being sent as part of a larger multi-path\npayment. The caller is responsible for ensuring subpayments to the same node\nand payment_hash sum exactly to total_amt_msat. The same\ntotal_amt_msat must be used on all subpayments."
} }
} }
}, },
@ -3410,11 +3410,11 @@
"properties": { "properties": {
"entity": { "entity": {
"type": "string", "type": "string",
"description": "/ The entity a permission grants access to." "description": "The entity a permission grants access to."
}, },
"action": { "action": {
"type": "string", "type": "string",
"description": "/ The action that is granted." "description": "The action that is granted."
} }
} }
}, },
@ -3426,12 +3426,12 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelPoint" "$ref": "#/definitions/lnrpcChannelPoint"
}, },
"description": "*\nIs the set of all channels that are included in this multi-channel backup." "description": "Is the set of all channels that are included in this multi-channel backup."
}, },
"multi_chan_backup": { "multi_chan_backup": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nA single encrypted blob containing all the static channel backups of the\nchannel listed above. This can be stored as a single file or blob, and\nsafely be replaced with any prior/future versions. When using REST, this\nfield must be encoded as base64." "description": "A single encrypted blob containing all the static channel backups of the\nchannel listed above. This can be stored as a single file or blob, and\nsafely be replaced with any prior/future versions. When using REST, this\nfield must be encoded as base64."
} }
} }
}, },
@ -3490,7 +3490,7 @@
"properties": { "properties": {
"address": { "address": {
"type": "string", "type": "string",
"title": "/ The newly generated wallet address" "title": "The newly generated wallet address"
} }
} }
}, },
@ -3510,24 +3510,24 @@
"properties": { "properties": {
"node": { "node": {
"$ref": "#/definitions/lnrpcLightningNode", "$ref": "#/definitions/lnrpcLightningNode",
"description": "*\nAn individual vertex/node within the channel graph. A node is\nconnected to other nodes by one or more channel edges emanating from it. As\nthe graph is directed, a node will also have an incoming edge attached to\nit for each outgoing edge." "description": "An individual vertex/node within the channel graph. A node is\nconnected to other nodes by one or more channel edges emanating from it. As\nthe graph is directed, a node will also have an incoming edge attached to\nit for each outgoing edge."
}, },
"num_channels": { "num_channels": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The total number of channels for the node." "description": "The total number of channels for the node."
}, },
"total_capacity": { "total_capacity": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The sum of all channels capacity for the node, denominated in satoshis." "description": "The sum of all channels capacity for the node, denominated in satoshis."
}, },
"channels": { "channels": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelEdge" "$ref": "#/definitions/lnrpcChannelEdge"
}, },
"description": "/ A list of all public channels for the node." "description": "A list of all public channels for the node."
} }
} }
}, },
@ -3547,7 +3547,7 @@
"additionalProperties": { "additionalProperties": {
"$ref": "#/definitions/lnrpcFloatMetric" "$ref": "#/definitions/lnrpcFloatMetric"
}, },
"description": "*\nBetweenness centrality is the sum of the ratio of shortest paths that pass\nthrough the node for each pair of nodes in the graph (not counting paths\nstarting or ending at this node).\nMap of node pubkey to betweenness centrality of the node. Normalized\nvalues are in the [0,1] closed interval." "description": "Betweenness centrality is the sum of the ratio of shortest paths that pass\nthrough the node for each pair of nodes in the graph (not counting paths\nstarting or ending at this node).\nMap of node pubkey to betweenness centrality of the node. Normalized\nvalues are in the [0,1] closed interval."
} }
} }
}, },
@ -3557,12 +3557,12 @@
"from": { "from": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe sending node of the pair. When using REST, this field must be encoded as\nbase64." "description": "The sending node of the pair. When using REST, this field must be encoded as\nbase64."
}, },
"to": { "to": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe receiving node of the pair. When using REST, this field must be encoded\nas base64." "description": "The receiving node of the pair. When using REST, this field must be encoded\nas base64."
} }
} }
}, },
@ -3596,56 +3596,56 @@
"node_pubkey": { "node_pubkey": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe pubkey of the node to open a channel with. When using REST, this field\nmust be encoded as base64." "description": "The pubkey of the node to open a channel with. When using REST, this field\nmust be encoded as base64."
}, },
"node_pubkey_string": { "node_pubkey_string": {
"type": "string", "type": "string",
"description": "*\nThe hex encoded pubkey of the node to open a channel with. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields." "description": "The hex encoded pubkey of the node to open a channel with. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields."
}, },
"local_funding_amount": { "local_funding_amount": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The number of satoshis the wallet should commit to the channel" "title": "The number of satoshis the wallet should commit to the channel"
}, },
"push_sat": { "push_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The number of satoshis to push to the remote side as part of the initial\n/ commitment state" "title": "The number of satoshis to push to the remote side as part of the initial\ncommitment state"
}, },
"target_conf": { "target_conf": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ The target number of blocks that the funding transaction should be\n/ confirmed by." "description": "The target number of blocks that the funding transaction should be\nconfirmed by."
}, },
"sat_per_byte": { "sat_per_byte": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ A manual fee rate set in sat/byte that should be used when crafting the\n/ funding transaction." "description": "A manual fee rate set in sat/byte that should be used when crafting the\nfunding transaction."
}, },
"private": { "private": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ Whether this channel should be private, not announced to the greater\n/ network." "description": "Whether this channel should be private, not announced to the greater\nnetwork."
}, },
"min_htlc_msat": { "min_htlc_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The minimum value in millisatoshi we will require for incoming HTLCs on\n/ the channel." "description": "The minimum value in millisatoshi we will require for incoming HTLCs on\nthe channel."
}, },
"remote_csv_delay": { "remote_csv_delay": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The delay we require on the remote's commitment transaction. If this is\n/ not set, it will be scaled automatically with the channel size." "description": "The delay we require on the remote's commitment transaction. If this is\nnot set, it will be scaled automatically with the channel size."
}, },
"min_confs": { "min_confs": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ The minimum number of confirmations each one of your outputs used for\n/ the funding transaction must satisfy." "description": "The minimum number of confirmations each one of your outputs used for\nthe funding transaction must satisfy."
}, },
"spend_unconfirmed": { "spend_unconfirmed": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ Whether unconfirmed outputs should be used as inputs for the funding\n/ transaction." "description": "Whether unconfirmed outputs should be used as inputs for the funding\ntransaction."
}, },
"close_address": { "close_address": {
"type": "string", "type": "string",
@ -3653,7 +3653,7 @@
}, },
"funding_shim": { "funding_shim": {
"$ref": "#/definitions/lnrpcFundingShim", "$ref": "#/definitions/lnrpcFundingShim",
"description": "*\nFunding shims are an optional argument that allow the caller to intercept\ncertain funding functionality. For example, a shim can be provided to use a\nparticular key for the commitment key (ideally cold) rather than use one\nthat is generated by the wallet as normal, or signal that signing will be\ncarried out in an interactive manner (PSBT based)." "description": "Funding shims are an optional argument that allow the caller to intercept\ncertain funding functionality. For example, a shim can be provided to use a\nparticular key for the commitment key (ideally cold) rather than use one\nthat is generated by the wallet as normal, or signal that signing will be\ncarried out in an interactive manner (PSBT based)."
} }
} }
}, },
@ -3662,20 +3662,20 @@
"properties": { "properties": {
"chan_pending": { "chan_pending": {
"$ref": "#/definitions/lnrpcPendingUpdate", "$ref": "#/definitions/lnrpcPendingUpdate",
"description": "*\nSignals that the channel is now fully negotiated and the funding\ntransaction published." "description": "Signals that the channel is now fully negotiated and the funding\ntransaction published."
}, },
"chan_open": { "chan_open": {
"$ref": "#/definitions/lnrpcChannelOpenUpdate", "$ref": "#/definitions/lnrpcChannelOpenUpdate",
"description": "*\nSignals that the channel's funding transaction has now reached the\nrequired number of confirmations on chain and can be used." "description": "Signals that the channel's funding transaction has now reached the\nrequired number of confirmations on chain and can be used."
}, },
"psbt_fund": { "psbt_fund": {
"$ref": "#/definitions/lnrpcReadyForPsbtFunding", "$ref": "#/definitions/lnrpcReadyForPsbtFunding",
"description": "*\nSignals that the funding process has been suspended and the construction\nof a PSBT that funds the channel PK script is now required." "description": "Signals that the funding process has been suspended and the construction\nof a PSBT that funds the channel PK script is now required."
}, },
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe pending channel ID of the created channel. This value may be used to\nfurther the funding flow manually via the FundingStateStep method." "description": "The pending channel ID of the created channel. This value may be used to\nfurther the funding flow manually via the FundingStateStep method."
} }
} }
}, },
@ -3685,16 +3685,16 @@
"txid_bytes": { "txid_bytes": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "/ Raw bytes representing the transaction id." "description": "Raw bytes representing the transaction id."
}, },
"txid_str": { "txid_str": {
"type": "string", "type": "string",
"description": "/ Reversed, hex-encoded string representing the transaction id." "description": "Reversed, hex-encoded string representing the transaction id."
}, },
"output_index": { "output_index": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The index of the output on the transaction." "description": "The index of the output on the transaction."
} }
} }
}, },
@ -3759,40 +3759,40 @@
"properties": { "properties": {
"payment_hash": { "payment_hash": {
"type": "string", "type": "string",
"title": "/ The payment hash" "title": "The payment hash"
}, },
"value": { "value": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Deprecated, use value_sat or value_msat." "description": "Deprecated, use value_sat or value_msat."
}, },
"creation_date": { "creation_date": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Deprecated, use creation_time_ns" "title": "Deprecated, use creation_time_ns"
}, },
"fee": { "fee": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ Deprecated, use fee_sat or fee_msat." "description": "Deprecated, use fee_sat or fee_msat."
}, },
"payment_preimage": { "payment_preimage": {
"type": "string", "type": "string",
"title": "/ The payment preimage" "title": "The payment preimage"
}, },
"value_sat": { "value_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The value of the payment in satoshis" "title": "The value of the payment in satoshis"
}, },
"value_msat": { "value_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The value of the payment in milli-satoshis" "title": "The value of the payment in milli-satoshis"
}, },
"payment_request": { "payment_request": {
"type": "string", "type": "string",
"description": "/ The optional payment request being fulfilled." "description": "The optional payment request being fulfilled."
}, },
"status": { "status": {
"$ref": "#/definitions/PaymentPaymentStatus", "$ref": "#/definitions/PaymentPaymentStatus",
@ -3801,29 +3801,29 @@
"fee_sat": { "fee_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The fee paid for this payment in satoshis" "title": "The fee paid for this payment in satoshis"
}, },
"fee_msat": { "fee_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The fee paid for this payment in milli-satoshis" "title": "The fee paid for this payment in milli-satoshis"
}, },
"creation_time_ns": { "creation_time_ns": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The time in UNIX nanoseconds at which the payment was created." "description": "The time in UNIX nanoseconds at which the payment was created."
}, },
"htlcs": { "htlcs": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcHTLCAttempt" "$ref": "#/definitions/lnrpcHTLCAttempt"
}, },
"description": "/ The HTLCs made in attempt to settle the payment." "description": "The HTLCs made in attempt to settle the payment."
}, },
"payment_index": { "payment_index": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe creation index of this payment. Each payment can be uniquely identified\nby this index, which may not strictly increment by 1 for payments made in\nolder versions of lnd." "description": "The creation index of this payment. Each payment can be uniquely identified\nby this index, which may not strictly increment by 1 for payments made in\nolder versions of lnd."
}, },
"failure_reason": { "failure_reason": {
"$ref": "#/definitions/lnrpcPaymentFailureReason" "$ref": "#/definitions/lnrpcPaymentFailureReason"
@ -3841,48 +3841,48 @@
"FAILURE_REASON_INSUFFICIENT_BALANCE" "FAILURE_REASON_INSUFFICIENT_BALANCE"
], ],
"default": "FAILURE_REASON_NONE", "default": "FAILURE_REASON_NONE",
"description": " - FAILURE_REASON_NONE: *\nPayment isn't failed (yet).\n - FAILURE_REASON_TIMEOUT: *\nThere are more routes to try, but the payment timeout was exceeded.\n - FAILURE_REASON_NO_ROUTE: *\nAll possible routes were tried and failed permanently. Or were no\nroutes to the destination at all.\n - FAILURE_REASON_ERROR: *\nA non-recoverable error has occured.\n - FAILURE_REASON_INCORRECT_PAYMENT_DETAILS: *\nPayment details incorrect (unknown hash, invalid amt or\ninvalid final cltv delta)\n - FAILURE_REASON_INSUFFICIENT_BALANCE: *\nInsufficient local balance." "description": " - FAILURE_REASON_NONE: Payment isn't failed (yet).\n - FAILURE_REASON_TIMEOUT: There are more routes to try, but the payment timeout was exceeded.\n - FAILURE_REASON_NO_ROUTE: All possible routes were tried and failed permanently. Or were no\nroutes to the destination at all.\n - FAILURE_REASON_ERROR: A non-recoverable error has occured.\n - FAILURE_REASON_INCORRECT_PAYMENT_DETAILS: Payment details incorrect (unknown hash, invalid amt or\ninvalid final cltv delta)\n - FAILURE_REASON_INSUFFICIENT_BALANCE: Insufficient local balance."
}, },
"lnrpcPeer": { "lnrpcPeer": {
"type": "object", "type": "object",
"properties": { "properties": {
"pub_key": { "pub_key": {
"type": "string", "type": "string",
"title": "/ The identity pubkey of the peer" "title": "The identity pubkey of the peer"
}, },
"address": { "address": {
"type": "string", "type": "string",
"title": "/ Network address of the peer; eg `127.0.0.1:10011`" "title": "Network address of the peer; eg `127.0.0.1:10011`"
}, },
"bytes_sent": { "bytes_sent": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"title": "/ Bytes of data transmitted to this peer" "title": "Bytes of data transmitted to this peer"
}, },
"bytes_recv": { "bytes_recv": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"title": "/ Bytes of data transmitted from this peer" "title": "Bytes of data transmitted from this peer"
}, },
"sat_sent": { "sat_sent": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Satoshis sent to this peer" "title": "Satoshis sent to this peer"
}, },
"sat_recv": { "sat_recv": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Satoshis received from this peer" "title": "Satoshis received from this peer"
}, },
"inbound": { "inbound": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ A channel is inbound if the counterparty initiated the channel" "title": "A channel is inbound if the counterparty initiated the channel"
}, },
"ping_time": { "ping_time": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Ping time to this peer" "title": "Ping time to this peer"
}, },
"sync_type": { "sync_type": {
"$ref": "#/definitions/PeerSyncType", "$ref": "#/definitions/PeerSyncType",
@ -3893,7 +3893,7 @@
"additionalProperties": { "additionalProperties": {
"$ref": "#/definitions/lnrpcFeature" "$ref": "#/definitions/lnrpcFeature"
}, },
"description": "/ Features advertised by the remote peer in their init message." "description": "Features advertised by the remote peer in their init message."
}, },
"errors": { "errors": {
"type": "array", "type": "array",
@ -3909,7 +3909,7 @@
"properties": { "properties": {
"pub_key": { "pub_key": {
"type": "string", "type": "string",
"description": "/ The identity pubkey of the peer." "description": "The identity pubkey of the peer."
}, },
"type": { "type": {
"$ref": "#/definitions/PeerEventEventType" "$ref": "#/definitions/PeerEventEventType"
@ -3922,14 +3922,14 @@
"total_limbo_balance": { "total_limbo_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The balance in satoshis encumbered in pending channels" "title": "The balance in satoshis encumbered in pending channels"
}, },
"pending_open_channels": { "pending_open_channels": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/PendingChannelsResponsePendingOpenChannel" "$ref": "#/definitions/PendingChannelsResponsePendingOpenChannel"
}, },
"title": "/ Channels pending opening" "title": "Channels pending opening"
}, },
"pending_closing_channels": { "pending_closing_channels": {
"type": "array", "type": "array",
@ -3943,14 +3943,14 @@
"items": { "items": {
"$ref": "#/definitions/PendingChannelsResponseForceClosedChannel" "$ref": "#/definitions/PendingChannelsResponseForceClosedChannel"
}, },
"title": "/ Channels pending force closing" "title": "Channels pending force closing"
}, },
"waiting_close_channels": { "waiting_close_channels": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/PendingChannelsResponseWaitingCloseChannel" "$ref": "#/definitions/PendingChannelsResponseWaitingCloseChannel"
}, },
"title": "/ Channels waiting for closing tx to confirm" "title": "Channels waiting for closing tx to confirm"
} }
} }
}, },
@ -3960,31 +3960,31 @@
"incoming": { "incoming": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ The direction within the channel that the htlc was sent" "title": "The direction within the channel that the htlc was sent"
}, },
"amount": { "amount": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The total value of the htlc" "title": "The total value of the htlc"
}, },
"outpoint": { "outpoint": {
"type": "string", "type": "string",
"title": "/ The final output to be swept back to the user's wallet" "title": "The final output to be swept back to the user's wallet"
}, },
"maturity_height": { "maturity_height": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The next block height at which we can spend the current stage" "title": "The next block height at which we can spend the current stage"
}, },
"blocks_til_maturity": { "blocks_til_maturity": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "*\nThe number of blocks remaining until the current stage can be swept.\nNegative values indicate how many blocks have passed since becoming\nmature." "description": "The number of blocks remaining until the current stage can be swept.\nNegative values indicate how many blocks have passed since becoming\nmature."
}, },
"stage": { "stage": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ Indicates whether the htlc is in its first or second stage of recovery" "title": "Indicates whether the htlc is in its first or second stage of recovery"
} }
} }
}, },
@ -4007,41 +4007,41 @@
"global": { "global": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ If set, then this update applies to all currently active channels." "description": "If set, then this update applies to all currently active channels."
}, },
"chan_point": { "chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint", "$ref": "#/definitions/lnrpcChannelPoint",
"description": "/ If set, this update will target a specific channel." "description": "If set, this update will target a specific channel."
}, },
"base_fee_msat": { "base_fee_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ The base fee charged regardless of the number of milli-satoshis sent." "description": "The base fee charged regardless of the number of milli-satoshis sent."
}, },
"fee_rate": { "fee_rate": {
"type": "number", "type": "number",
"format": "double", "format": "double",
"description": "/ The effective fee rate in milli-satoshis. The precision of this value\n/ goes up to 6 decimal places, so 1e-6." "description": "The effective fee rate in milli-satoshis. The precision of this value\ngoes up to 6 decimal places, so 1e-6."
}, },
"time_lock_delta": { "time_lock_delta": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "/ The required timelock delta for HTLCs forwarded over the channel." "description": "The required timelock delta for HTLCs forwarded over the channel."
}, },
"max_htlc_msat": { "max_htlc_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ If set, the maximum HTLC size in milli-satoshis. If unset, the maximum\n/ HTLC will be unchanged." "description": "If set, the maximum HTLC size in milli-satoshis. If unset, the maximum\nHTLC will be unchanged."
}, },
"min_htlc_msat": { "min_htlc_msat": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "/ The minimum HTLC size in milli-satoshis. Only applied if\n/ min_htlc_msat_specified is true." "description": "The minimum HTLC size in milli-satoshis. Only applied if\nmin_htlc_msat_specified is true."
}, },
"min_htlc_msat_specified": { "min_htlc_msat_specified": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ If true, min_htlc_msat is applied." "description": "If true, min_htlc_msat is applied."
} }
} }
}, },
@ -4054,12 +4054,12 @@
"pending_chan_id": { "pending_chan_id": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nA unique identifier of 32 random bytes that will be used as the pending\nchannel ID to identify the PSBT state machine when interacting with it and\non the wire protocol to initiate the funding request." "description": "A unique identifier of 32 random bytes that will be used as the pending\nchannel ID to identify the PSBT state machine when interacting with it and\non the wire protocol to initiate the funding request."
}, },
"base_psbt": { "base_psbt": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nAn optional base PSBT the new channel output will be added to. If this is\nnon-empty, it must be a binary serialized PSBT." "description": "An optional base PSBT the new channel output will be added to. If this is\nnon-empty, it must be a binary serialized PSBT."
} }
} }
}, },
@ -4071,12 +4071,12 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcRoute" "$ref": "#/definitions/lnrpcRoute"
}, },
"description": "*\nThe route that results from the path finding operation. This is still a\nrepeated field to retain backwards compatibility." "description": "The route that results from the path finding operation. This is still a\nrepeated field to retain backwards compatibility."
}, },
"success_prob": { "success_prob": {
"type": "number", "type": "number",
"format": "double", "format": "double",
"title": "*\nThe success probability of the returned route based on the current mission\ncontrol state. [EXPERIMENTAL]" "title": "The success probability of the returned route based on the current mission\ncontrol state. [EXPERIMENTAL]"
} }
} }
}, },
@ -4085,17 +4085,17 @@
"properties": { "properties": {
"funding_address": { "funding_address": {
"type": "string", "type": "string",
"description": "*\nThe P2WSH address of the channel funding multisig address that the below\nspecified amount in satoshis needs to be sent to." "description": "The P2WSH address of the channel funding multisig address that the below\nspecified amount in satoshis needs to be sent to."
}, },
"funding_amount": { "funding_amount": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe exact amount in satoshis that needs to be sent to the above address to\nfund the pending channel." "description": "The exact amount in satoshis that needs to be sent to the above address to\nfund the pending channel."
}, },
"psbt": { "psbt": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nA raw PSBT that contains the pending channel output. If a base PSBT was\nprovided in the PsbtShim, this is the base PSBT with one additional output.\nIf no base PSBT was specified, this is an otherwise empty PSBT with exactly\none output." "description": "A raw PSBT that contains the pending channel output. If a base PSBT was\nprovided in the PsbtShim, this is the base PSBT with one additional output.\nIf no base PSBT was specified, this is an otherwise empty PSBT with exactly\none output."
} }
} }
}, },
@ -4107,12 +4107,12 @@
"properties": { "properties": {
"chan_backups": { "chan_backups": {
"$ref": "#/definitions/lnrpcChannelBackups", "$ref": "#/definitions/lnrpcChannelBackups",
"description": "*\nThe channels to restore as a list of channel/backup pairs." "description": "The channels to restore as a list of channel/backup pairs."
}, },
"multi_chan_backup": { "multi_chan_backup": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe channels to restore in the packed multi backup format. When using\nREST, this field must be encoded as base64." "description": "The channels to restore in the packed multi backup format. When using\nREST, this field must be encoded as base64."
} }
} }
}, },
@ -4122,37 +4122,37 @@
"total_time_lock": { "total_time_lock": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nThe cumulative (final) time lock across the entire route. This is the CLTV\nvalue that should be extended to the first hop in the route. All other hops\nwill decrement the time-lock as advertised, leaving enough time for all\nhops to wait for or present the payment preimage to complete the payment." "description": "The cumulative (final) time lock across the entire route. This is the CLTV\nvalue that should be extended to the first hop in the route. All other hops\nwill decrement the time-lock as advertised, leaving enough time for all\nhops to wait for or present the payment preimage to complete the payment."
}, },
"total_fees": { "total_fees": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe sum of the fees paid at each hop within the final route. In the case\nof a one-hop payment, this value will be zero as we don't need to pay a fee\nto ourselves." "description": "The sum of the fees paid at each hop within the final route. In the case\nof a one-hop payment, this value will be zero as we don't need to pay a fee\nto ourselves."
}, },
"total_amt": { "total_amt": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total amount of funds required to complete a payment over this route.\nThis value includes the cumulative fees at each hop. As a result, the HTLC\nextended to the first-hop in the route will need to have at least this many\nsatoshis, otherwise the route will fail at an intermediate node due to an\ninsufficient amount of fees." "description": "The total amount of funds required to complete a payment over this route.\nThis value includes the cumulative fees at each hop. As a result, the HTLC\nextended to the first-hop in the route will need to have at least this many\nsatoshis, otherwise the route will fail at an intermediate node due to an\ninsufficient amount of fees."
}, },
"hops": { "hops": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcHop" "$ref": "#/definitions/lnrpcHop"
}, },
"description": "*\nContains details concerning the specific forwarding details at each hop." "description": "Contains details concerning the specific forwarding details at each hop."
}, },
"total_fees_msat": { "total_fees_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total fees in millisatoshis." "description": "The total fees in millisatoshis."
}, },
"total_amt_msat": { "total_amt_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe total amount in millisatoshis." "description": "The total amount in millisatoshis."
} }
}, },
"description": "*\nA path through the channel graph which runs over one or more channels in\nsuccession. This struct carries all the information required to craft the\nSphinx onion packet, and send the payment along the first hop in the path. A\nroute is only selected as valid if all the channels have sufficient capacity to\ncarry the initial payment amount after fees are accounted for." "description": "A path through the channel graph which runs over one or more channels in\nsuccession. This struct carries all the information required to craft the\nSphinx onion packet, and send the payment along the first hop in the path. A\nroute is only selected as valid if all the channels have sufficient capacity to\ncarry the initial payment amount after fees are accounted for."
}, },
"lnrpcRouteHint": { "lnrpcRouteHint": {
"type": "object", "type": "object",
@ -4162,7 +4162,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcHopHint" "$ref": "#/definitions/lnrpcHopHint"
}, },
"description": "*\nA list of hop hints that when chained together can assist in reaching a\nspecific destination." "description": "A list of hop hints that when chained together can assist in reaching a\nspecific destination."
} }
} }
}, },
@ -4204,27 +4204,27 @@
"properties": { "properties": {
"addr": { "addr": {
"type": "string", "type": "string",
"title": "/ The address to send coins to" "title": "The address to send coins to"
}, },
"amount": { "amount": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The amount in satoshis to send" "title": "The amount in satoshis to send"
}, },
"target_conf": { "target_conf": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "/ The target number of blocks that this transaction should be confirmed\n/ by." "description": "The target number of blocks that this transaction should be confirmed\nby."
}, },
"sat_per_byte": { "sat_per_byte": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "/ A manual fee rate set in sat/byte that should be used when crafting the\n/ transaction." "description": "A manual fee rate set in sat/byte that should be used when crafting the\ntransaction."
}, },
"send_all": { "send_all": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "*\nIf set, then the amount field will be ignored, and lnd will attempt to\nsend all the coins under control of the internal wallet to the specified\naddress." "description": "If set, then the amount field will be ignored, and lnd will attempt to\nsend all the coins under control of the internal wallet to the specified\naddress."
} }
} }
}, },
@ -4233,7 +4233,7 @@
"properties": { "properties": {
"txid": { "txid": {
"type": "string", "type": "string",
"title": "/ The transaction ID of the transaction" "title": "The transaction ID of the transaction"
} }
} }
}, },
@ -4242,7 +4242,7 @@
"properties": { "properties": {
"txid": { "txid": {
"type": "string", "type": "string",
"title": "/ The id of the transaction" "title": "The id of the transaction"
} }
} }
}, },
@ -4252,58 +4252,58 @@
"dest": { "dest": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe identity pubkey of the payment recipient. When using REST, this field\nmust be encoded as base64." "description": "The identity pubkey of the payment recipient. When using REST, this field\nmust be encoded as base64."
}, },
"dest_string": { "dest_string": {
"type": "string", "type": "string",
"description": "*\nThe hex-encoded identity pubkey of the payment recipient. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields." "description": "The hex-encoded identity pubkey of the payment recipient. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields."
}, },
"amt": { "amt": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount to send expressed in satoshis.\n\nThe fields amt and amt_msat are mutually exclusive." "description": "The amount to send expressed in satoshis.\n\nThe fields amt and amt_msat are mutually exclusive."
}, },
"amt_msat": { "amt_msat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"description": "*\nThe amount to send expressed in millisatoshis.\n\nThe fields amt and amt_msat are mutually exclusive." "description": "The amount to send expressed in millisatoshis.\n\nThe fields amt and amt_msat are mutually exclusive."
}, },
"payment_hash": { "payment_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe hash to use within the payment's HTLC. When using REST, this field\nmust be encoded as base64." "description": "The hash to use within the payment's HTLC. When using REST, this field\nmust be encoded as base64."
}, },
"payment_hash_string": { "payment_hash_string": {
"type": "string", "type": "string",
"description": "*\nThe hex-encoded hash to use within the payment's HTLC. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields." "description": "The hex-encoded hash to use within the payment's HTLC. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields."
}, },
"payment_request": { "payment_request": {
"type": "string", "type": "string",
"description": "*\nA bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient." "description": "A bare-bones invoice for a payment within the Lightning Network. With the\ndetails of the invoice, the sender has all the data necessary to send a\npayment to the recipient."
}, },
"final_cltv_delta": { "final_cltv_delta": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "*\nThe CLTV delta from the current height that should be used to set the\ntimelock for the final hop." "description": "The CLTV delta from the current height that should be used to set the\ntimelock for the final hop."
}, },
"fee_limit": { "fee_limit": {
"$ref": "#/definitions/lnrpcFeeLimit", "$ref": "#/definitions/lnrpcFeeLimit",
"description": "*\nThe maximum number of satoshis that will be paid as a fee of the payment.\nThis value can be represented either as a percentage of the amount being\nsent, or as a fixed amount of the maximum fee the user is willing the pay to\nsend the payment." "description": "The maximum number of satoshis that will be paid as a fee of the payment.\nThis value can be represented either as a percentage of the amount being\nsent, or as a fixed amount of the maximum fee the user is willing the pay to\nsend the payment."
}, },
"outgoing_chan_id": { "outgoing_chan_id": {
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used." "description": "The channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used."
}, },
"last_hop_pubkey": { "last_hop_pubkey": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe pubkey of the last hop of the route. If empty, any hop may be used." "description": "The pubkey of the last hop of the route. If empty, any hop may be used."
}, },
"cltv_limit": { "cltv_limit": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": "*\nAn optional maximum total time lock for the route. This should not exceed\nlnd's `--max-cltv-expiry` setting. If zero, then the value of\n`--max-cltv-expiry` is enforced." "description": "An optional maximum total time lock for the route. This should not exceed\nlnd's `--max-cltv-expiry` setting. If zero, then the value of\n`--max-cltv-expiry` is enforced."
}, },
"dest_custom_records": { "dest_custom_records": {
"type": "object", "type": "object",
@ -4311,19 +4311,19 @@
"type": "string", "type": "string",
"format": "byte" "format": "byte"
}, },
"description": "*\nAn optional field that can be used to pass an arbitrary set of TLV records\nto a peer which understands the new records. This can be used to pass\napplication specific data during the payment attempt. Record types are\nrequired to be in the custom range \u003e= 65536. When using REST, the values\nmust be encoded as base64." "description": "An optional field that can be used to pass an arbitrary set of TLV records\nto a peer which understands the new records. This can be used to pass\napplication specific data during the payment attempt. Record types are\nrequired to be in the custom range \u003e= 65536. When using REST, the values\nmust be encoded as base64."
}, },
"allow_self_payment": { "allow_self_payment": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"description": "/ If set, circular payments to self are permitted." "description": "If set, circular payments to self are permitted."
}, },
"dest_features": { "dest_features": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/lnrpcFeatureBit" "$ref": "#/definitions/lnrpcFeatureBit"
}, },
"description": "*\nFeatures assumed to be supported by the final node. All transitive feature\ndependencies must also be set properly. For a given feature bit pair, either\noptional or remote may be set, but not both. If this field is nil or empty,\nthe router will try to load destination features from the graph as a\nfallback." "description": "Features assumed to be supported by the final node. All transitive feature\ndependencies must also be set properly. For a given feature bit pair, either\noptional or remote may be set, but not both. If this field is nil or empty,\nthe router will try to load destination features from the graph as a\nfallback."
} }
} }
}, },
@ -4352,15 +4352,15 @@
"payment_hash": { "payment_hash": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe payment hash to use for the HTLC. When using REST, this field must be\nencoded as base64." "description": "The payment hash to use for the HTLC. When using REST, this field must be\nencoded as base64."
}, },
"payment_hash_string": { "payment_hash_string": {
"type": "string", "type": "string",
"description": "*\nAn optional hex-encoded payment hash to be used for the HTLC. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields." "description": "An optional hex-encoded payment hash to be used for the HTLC. Deprecated now\nthat the REST gateway supports base64 encoding of bytes fields."
}, },
"route": { "route": {
"$ref": "#/definitions/lnrpcRoute", "$ref": "#/definitions/lnrpcRoute",
"description": "/ Route that should be used to attempt to complete the payment." "description": "Route that should be used to attempt to complete the payment."
} }
} }
}, },
@ -4370,7 +4370,7 @@
"msg": { "msg": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe message to be signed. When using REST, this field must be encoded as\nbase64." "description": "The message to be signed. When using REST, this field must be encoded as\nbase64."
} }
} }
}, },
@ -4379,7 +4379,7 @@
"properties": { "properties": {
"signature": { "signature": {
"type": "string", "type": "string",
"title": "/ The signature for the given message" "title": "The signature for the given message"
} }
} }
}, },
@ -4405,47 +4405,47 @@
"properties": { "properties": {
"tx_hash": { "tx_hash": {
"type": "string", "type": "string",
"title": "/ The transaction hash" "title": "The transaction hash"
}, },
"amount": { "amount": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The transaction amount, denominated in satoshis" "title": "The transaction amount, denominated in satoshis"
}, },
"num_confirmations": { "num_confirmations": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"title": "/ The number of confirmations" "title": "The number of confirmations"
}, },
"block_hash": { "block_hash": {
"type": "string", "type": "string",
"title": "/ The hash of the block this transaction was included in" "title": "The hash of the block this transaction was included in"
}, },
"block_height": { "block_height": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"title": "/ The height of the block this transaction was included in" "title": "The height of the block this transaction was included in"
}, },
"time_stamp": { "time_stamp": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Timestamp of this transaction" "title": "Timestamp of this transaction"
}, },
"total_fees": { "total_fees": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ Fees paid for this transaction" "title": "Fees paid for this transaction"
}, },
"dest_addresses": { "dest_addresses": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"title": "/ Addresses that received funds for this transaction" "title": "Addresses that received funds for this transaction"
}, },
"raw_tx_hex": { "raw_tx_hex": {
"type": "string", "type": "string",
"description": "/ The raw transaction hex." "description": "The raw transaction hex."
} }
} }
}, },
@ -4457,7 +4457,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcTransaction" "$ref": "#/definitions/lnrpcTransaction"
}, },
"description": "/ The list of transactions relevant to the wallet." "description": "The list of transactions relevant to the wallet."
} }
} }
}, },
@ -4466,29 +4466,29 @@
"properties": { "properties": {
"address_type": { "address_type": {
"$ref": "#/definitions/lnrpcAddressType", "$ref": "#/definitions/lnrpcAddressType",
"title": "/ The type of address" "title": "The type of address"
}, },
"address": { "address": {
"type": "string", "type": "string",
"title": "/ The address" "title": "The address"
}, },
"amount_sat": { "amount_sat": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The value of the unspent coin in satoshis" "title": "The value of the unspent coin in satoshis"
}, },
"pk_script": { "pk_script": {
"type": "string", "type": "string",
"title": "/ The pkscript in hex" "title": "The pkscript in hex"
}, },
"outpoint": { "outpoint": {
"$ref": "#/definitions/lnrpcOutPoint", "$ref": "#/definitions/lnrpcOutPoint",
"title": "/ The outpoint in format txid:n" "title": "The outpoint in format txid:n"
}, },
"confirmations": { "confirmations": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The number of confirmations for the Utxo" "title": "The number of confirmations for the Utxo"
} }
} }
}, },
@ -4501,11 +4501,11 @@
"msg": { "msg": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nThe message over which the signature is to be verified. When using REST,\nthis field must be encoded as base64." "description": "The message over which the signature is to be verified. When using REST,\nthis field must be encoded as base64."
}, },
"signature": { "signature": {
"type": "string", "type": "string",
"title": "/ The signature to be verified over the given message" "title": "The signature to be verified over the given message"
} }
} }
}, },
@ -4515,11 +4515,11 @@
"valid": { "valid": {
"type": "boolean", "type": "boolean",
"format": "boolean", "format": "boolean",
"title": "/ Whether the signature was valid over the given message" "title": "Whether the signature was valid over the given message"
}, },
"pubkey": { "pubkey": {
"type": "string", "type": "string",
"title": "/ The pubkey recovered from the signature" "title": "The pubkey recovered from the signature"
} }
} }
}, },
@ -4529,17 +4529,17 @@
"total_balance": { "total_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The balance of the wallet" "title": "The balance of the wallet"
}, },
"confirmed_balance": { "confirmed_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The confirmed balance of a wallet(with \u003e= 1 confirmations)" "title": "The confirmed balance of a wallet(with \u003e= 1 confirmations)"
}, },
"unconfirmed_balance": { "unconfirmed_balance": {
"type": "string", "type": "string",
"format": "int64", "format": "int64",
"title": "/ The unconfirmed balance of a wallet(with 0 confirmations)" "title": "The unconfirmed balance of a wallet(with 0 confirmations)"
} }
} }
}, },

@ -23,9 +23,9 @@ var _ = math.Inf
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type KeyLocator struct { type KeyLocator struct {
/// The family of key being identified. // The family of key being identified.
KeyFamily int32 `protobuf:"varint,1,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"` KeyFamily int32 `protobuf:"varint,1,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"`
/// The precise index of the key being identified. // The precise index of the key being identified.
KeyIndex int32 `protobuf:"varint,2,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` KeyIndex int32 `protobuf:"varint,2,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -72,11 +72,11 @@ func (m *KeyLocator) GetKeyIndex() int32 {
} }
type KeyDescriptor struct { type KeyDescriptor struct {
//* //
//The raw bytes of the key being identified. Either this or the KeyLocator //The raw bytes of the key being identified. Either this or the KeyLocator
//must be specified. //must be specified.
RawKeyBytes []byte `protobuf:"bytes,1,opt,name=raw_key_bytes,json=rawKeyBytes,proto3" json:"raw_key_bytes,omitempty"` RawKeyBytes []byte `protobuf:"bytes,1,opt,name=raw_key_bytes,json=rawKeyBytes,proto3" json:"raw_key_bytes,omitempty"`
//* //
//The key locator that identifies which key to use for signing. Either this //The key locator that identifies which key to use for signing. Either this
//or the raw bytes of the target key must be specified. //or the raw bytes of the target key must be specified.
KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"` KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"`
@ -125,9 +125,9 @@ func (m *KeyDescriptor) GetKeyLoc() *KeyLocator {
} }
type TxOut struct { type TxOut struct {
/// The value of the output being spent. // The value of the output being spent.
Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
/// The script of the output being spent. // The script of the output being spent.
PkScript []byte `protobuf:"bytes,2,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"` PkScript []byte `protobuf:"bytes,2,opt,name=pk_script,json=pkScript,proto3" json:"pk_script,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -174,19 +174,19 @@ func (m *TxOut) GetPkScript() []byte {
} }
type SignDescriptor struct { type SignDescriptor struct {
//* //
//A descriptor that precisely describes *which* key to use for signing. This //A descriptor that precisely describes *which* key to use for signing. This
//may provide the raw public key directly, or require the Signer to re-derive //may provide the raw public key directly, or require the Signer to re-derive
//the key according to the populated derivation path. //the key according to the populated derivation path.
KeyDesc *KeyDescriptor `protobuf:"bytes,1,opt,name=key_desc,json=keyDesc,proto3" json:"key_desc,omitempty"` KeyDesc *KeyDescriptor `protobuf:"bytes,1,opt,name=key_desc,json=keyDesc,proto3" json:"key_desc,omitempty"`
//* //
//A scalar value that will be added to the private key corresponding to the //A scalar value that will be added to the private key corresponding to the
//above public key to obtain the private key to be used to sign this input. //above public key to obtain the private key to be used to sign this input.
//This value is typically derived via the following computation: //This value is typically derived via the following computation:
// //
// derivedKey = privkey + sha256(perCommitmentPoint || pubKey) mod N // derivedKey = privkey + sha256(perCommitmentPoint || pubKey) mod N
SingleTweak []byte `protobuf:"bytes,2,opt,name=single_tweak,json=singleTweak,proto3" json:"single_tweak,omitempty"` SingleTweak []byte `protobuf:"bytes,2,opt,name=single_tweak,json=singleTweak,proto3" json:"single_tweak,omitempty"`
//* //
//A private key that will be used in combination with its corresponding //A private key that will be used in combination with its corresponding
//private key to derive the private key that is to be used to sign the target //private key to derive the private key that is to be used to sign the target
//input. Within the Lightning protocol, this value is typically the //input. Within the Lightning protocol, this value is typically the
@ -197,19 +197,19 @@ type SignDescriptor struct {
// k = (privKey*sha256(pubKey || tweakPub) + // k = (privKey*sha256(pubKey || tweakPub) +
//tweakPriv*sha256(tweakPub || pubKey)) mod N //tweakPriv*sha256(tweakPub || pubKey)) mod N
DoubleTweak []byte `protobuf:"bytes,3,opt,name=double_tweak,json=doubleTweak,proto3" json:"double_tweak,omitempty"` DoubleTweak []byte `protobuf:"bytes,3,opt,name=double_tweak,json=doubleTweak,proto3" json:"double_tweak,omitempty"`
//* //
//The full script required to properly redeem the output. This field will //The full script required to properly redeem the output. This field will
//only be populated if a p2wsh or a p2sh output is being signed. //only be populated if a p2wsh or a p2sh output is being signed.
WitnessScript []byte `protobuf:"bytes,4,opt,name=witness_script,json=witnessScript,proto3" json:"witness_script,omitempty"` WitnessScript []byte `protobuf:"bytes,4,opt,name=witness_script,json=witnessScript,proto3" json:"witness_script,omitempty"`
//* //
//A description of the output being spent. The value and script MUST be //A description of the output being spent. The value and script MUST be
//provided. //provided.
Output *TxOut `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"` Output *TxOut `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"`
//* //
//The target sighash type that should be used when generating the final //The target sighash type that should be used when generating the final
//sighash, and signature. //sighash, and signature.
Sighash uint32 `protobuf:"varint,7,opt,name=sighash,proto3" json:"sighash,omitempty"` Sighash uint32 `protobuf:"varint,7,opt,name=sighash,proto3" json:"sighash,omitempty"`
//* //
//The target input within the transaction that should be signed. //The target input within the transaction that should be signed.
InputIndex int32 `protobuf:"varint,8,opt,name=input_index,json=inputIndex,proto3" json:"input_index,omitempty"` InputIndex int32 `protobuf:"varint,8,opt,name=input_index,json=inputIndex,proto3" json:"input_index,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -292,9 +292,9 @@ func (m *SignDescriptor) GetInputIndex() int32 {
} }
type SignReq struct { type SignReq struct {
/// The raw bytes of the transaction to be signed. // The raw bytes of the transaction to be signed.
RawTxBytes []byte `protobuf:"bytes,1,opt,name=raw_tx_bytes,json=rawTxBytes,proto3" json:"raw_tx_bytes,omitempty"` RawTxBytes []byte `protobuf:"bytes,1,opt,name=raw_tx_bytes,json=rawTxBytes,proto3" json:"raw_tx_bytes,omitempty"`
/// A set of sign descriptors, for each input to be signed. // A set of sign descriptors, for each input to be signed.
SignDescs []*SignDescriptor `protobuf:"bytes,2,rep,name=sign_descs,json=signDescs,proto3" json:"sign_descs,omitempty"` SignDescs []*SignDescriptor `protobuf:"bytes,2,rep,name=sign_descs,json=signDescs,proto3" json:"sign_descs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -341,7 +341,7 @@ func (m *SignReq) GetSignDescs() []*SignDescriptor {
} }
type SignResp struct { type SignResp struct {
//* //
//A set of signatures realized in a fixed 64-byte format ordered in ascending //A set of signatures realized in a fixed 64-byte format ordered in ascending
//input order. //input order.
RawSigs [][]byte `protobuf:"bytes,1,rep,name=raw_sigs,json=rawSigs,proto3" json:"raw_sigs,omitempty"` RawSigs [][]byte `protobuf:"bytes,1,rep,name=raw_sigs,json=rawSigs,proto3" json:"raw_sigs,omitempty"`
@ -383,9 +383,9 @@ func (m *SignResp) GetRawSigs() [][]byte {
} }
type InputScript struct { type InputScript struct {
/// The serializes witness stack for the specified input. // The serializes witness stack for the specified input.
Witness [][]byte `protobuf:"bytes,1,rep,name=witness,proto3" json:"witness,omitempty"` Witness [][]byte `protobuf:"bytes,1,rep,name=witness,proto3" json:"witness,omitempty"`
//** //*
//The optional sig script for the specified witness that will only be set if //The optional sig script for the specified witness that will only be set if
//the input specified is a nested p2sh witness program. //the input specified is a nested p2sh witness program.
SigScript []byte `protobuf:"bytes,2,opt,name=sig_script,json=sigScript,proto3" json:"sig_script,omitempty"` SigScript []byte `protobuf:"bytes,2,opt,name=sig_script,json=sigScript,proto3" json:"sig_script,omitempty"`
@ -434,7 +434,7 @@ func (m *InputScript) GetSigScript() []byte {
} }
type InputScriptResp struct { type InputScriptResp struct {
/// The set of fully valid input scripts requested. // The set of fully valid input scripts requested.
InputScripts []*InputScript `protobuf:"bytes,1,rep,name=input_scripts,json=inputScripts,proto3" json:"input_scripts,omitempty"` InputScripts []*InputScript `protobuf:"bytes,1,rep,name=input_scripts,json=inputScripts,proto3" json:"input_scripts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -474,9 +474,9 @@ func (m *InputScriptResp) GetInputScripts() []*InputScript {
} }
type SignMessageReq struct { type SignMessageReq struct {
/// The message to be signed. // The message to be signed.
Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
/// The key locator that identifies which key to use for signing. // The key locator that identifies which key to use for signing.
KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"` KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -523,7 +523,7 @@ func (m *SignMessageReq) GetKeyLoc() *KeyLocator {
} }
type SignMessageResp struct { type SignMessageResp struct {
//* //
//The signature for the given message in the fixed-size LN wire format. //The signature for the given message in the fixed-size LN wire format.
Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -564,13 +564,13 @@ func (m *SignMessageResp) GetSignature() []byte {
} }
type VerifyMessageReq struct { type VerifyMessageReq struct {
/// The message over which the signature is to be verified. // The message over which the signature is to be verified.
Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
//* //
//The fixed-size LN wire encoded signature to be verified over the given //The fixed-size LN wire encoded signature to be verified over the given
//message. //message.
Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
/// The public key the signature has to be valid for. // The public key the signature has to be valid for.
Pubkey []byte `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"` Pubkey []byte `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -624,7 +624,7 @@ func (m *VerifyMessageReq) GetPubkey() []byte {
} }
type VerifyMessageResp struct { type VerifyMessageResp struct {
/// Whether the signature was valid over the given message. // Whether the signature was valid over the given message.
Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -666,7 +666,7 @@ func (m *VerifyMessageResp) GetValid() bool {
type SharedKeyRequest struct { type SharedKeyRequest struct {
// The ephemeral public key to use for the DH key derivation. // The ephemeral public key to use for the DH key derivation.
EphemeralPubkey []byte `protobuf:"bytes,1,opt,name=ephemeral_pubkey,json=ephemeralPubkey,proto3" json:"ephemeral_pubkey,omitempty"` EphemeralPubkey []byte `protobuf:"bytes,1,opt,name=ephemeral_pubkey,json=ephemeralPubkey,proto3" json:"ephemeral_pubkey,omitempty"`
//* //
//The optional key locator of the local key that should be used. If this //The optional key locator of the local key that should be used. If this
//parameter is not set then the node's identity private key will be used. //parameter is not set then the node's identity private key will be used.
KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"` KeyLoc *KeyLocator `protobuf:"bytes,2,opt,name=key_loc,json=keyLoc,proto3" json:"key_loc,omitempty"`
@ -837,7 +837,7 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type SignerClient interface { type SignerClient interface {
//* //
//SignOutputRaw is a method that can be used to generated a signature for a //SignOutputRaw is a method that can be used to generated a signature for a
//set of inputs/outputs to a transaction. Each request specifies details //set of inputs/outputs to a transaction. Each request specifies details
//concerning how the outputs should be signed, which keys they should be //concerning how the outputs should be signed, which keys they should be
@ -847,7 +847,7 @@ type SignerClient interface {
//If we are unable to sign using the specified keys, then an error will be //If we are unable to sign using the specified keys, then an error will be
//returned. //returned.
SignOutputRaw(ctx context.Context, in *SignReq, opts ...grpc.CallOption) (*SignResp, error) SignOutputRaw(ctx context.Context, in *SignReq, opts ...grpc.CallOption) (*SignResp, error)
//* //
//ComputeInputScript generates a complete InputIndex for the passed //ComputeInputScript generates a complete InputIndex for the passed
//transaction with the signature as defined within the passed SignDescriptor. //transaction with the signature as defined within the passed SignDescriptor.
//This method should be capable of generating the proper input script for //This method should be capable of generating the proper input script for
@ -859,14 +859,14 @@ type SignerClient interface {
//in the TxOut field, the value in that same field, and finally the input //in the TxOut field, the value in that same field, and finally the input
//index. //index.
ComputeInputScript(ctx context.Context, in *SignReq, opts ...grpc.CallOption) (*InputScriptResp, error) ComputeInputScript(ctx context.Context, in *SignReq, opts ...grpc.CallOption) (*InputScriptResp, error)
//* //
//SignMessage signs a message with the key specified in the key locator. The //SignMessage signs a message with the key specified in the key locator. The
//returned signature is fixed-size LN wire format encoded. //returned signature is fixed-size LN wire format encoded.
// //
//The main difference to SignMessage in the main RPC is that a specific key is //The main difference to SignMessage in the main RPC is that a specific key is
//used to sign the message instead of the node identity private key. //used to sign the message instead of the node identity private key.
SignMessage(ctx context.Context, in *SignMessageReq, opts ...grpc.CallOption) (*SignMessageResp, error) SignMessage(ctx context.Context, in *SignMessageReq, opts ...grpc.CallOption) (*SignMessageResp, error)
//* //
//VerifyMessage verifies a signature over a message using the public key //VerifyMessage verifies a signature over a message using the public key
//provided. The signature must be fixed-size LN wire format encoded. //provided. The signature must be fixed-size LN wire format encoded.
// //
@ -939,7 +939,7 @@ func (c *signerClient) DeriveSharedKey(ctx context.Context, in *SharedKeyRequest
// SignerServer is the server API for Signer service. // SignerServer is the server API for Signer service.
type SignerServer interface { type SignerServer interface {
//* //
//SignOutputRaw is a method that can be used to generated a signature for a //SignOutputRaw is a method that can be used to generated a signature for a
//set of inputs/outputs to a transaction. Each request specifies details //set of inputs/outputs to a transaction. Each request specifies details
//concerning how the outputs should be signed, which keys they should be //concerning how the outputs should be signed, which keys they should be
@ -949,7 +949,7 @@ type SignerServer interface {
//If we are unable to sign using the specified keys, then an error will be //If we are unable to sign using the specified keys, then an error will be
//returned. //returned.
SignOutputRaw(context.Context, *SignReq) (*SignResp, error) SignOutputRaw(context.Context, *SignReq) (*SignResp, error)
//* //
//ComputeInputScript generates a complete InputIndex for the passed //ComputeInputScript generates a complete InputIndex for the passed
//transaction with the signature as defined within the passed SignDescriptor. //transaction with the signature as defined within the passed SignDescriptor.
//This method should be capable of generating the proper input script for //This method should be capable of generating the proper input script for
@ -961,14 +961,14 @@ type SignerServer interface {
//in the TxOut field, the value in that same field, and finally the input //in the TxOut field, the value in that same field, and finally the input
//index. //index.
ComputeInputScript(context.Context, *SignReq) (*InputScriptResp, error) ComputeInputScript(context.Context, *SignReq) (*InputScriptResp, error)
//* //
//SignMessage signs a message with the key specified in the key locator. The //SignMessage signs a message with the key specified in the key locator. The
//returned signature is fixed-size LN wire format encoded. //returned signature is fixed-size LN wire format encoded.
// //
//The main difference to SignMessage in the main RPC is that a specific key is //The main difference to SignMessage in the main RPC is that a specific key is
//used to sign the message instead of the node identity private key. //used to sign the message instead of the node identity private key.
SignMessage(context.Context, *SignMessageReq) (*SignMessageResp, error) SignMessage(context.Context, *SignMessageReq) (*SignMessageResp, error)
//* //
//VerifyMessage verifies a signature over a message using the public key //VerifyMessage verifies a signature over a message using the public key
//provided. The signature must be fixed-size LN wire format encoded. //provided. The signature must be fixed-size LN wire format encoded.
// //

@ -7,7 +7,7 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/signrpc";
// Signer is a service that gives access to the signing functionality of the // Signer is a service that gives access to the signing functionality of the
// daemon's wallet. // daemon's wallet.
service Signer { service Signer {
/** /*
SignOutputRaw is a method that can be used to generated a signature for a SignOutputRaw is a method that can be used to generated a signature for a
set of inputs/outputs to a transaction. Each request specifies details set of inputs/outputs to a transaction. Each request specifies details
concerning how the outputs should be signed, which keys they should be concerning how the outputs should be signed, which keys they should be
@ -19,7 +19,7 @@ service Signer {
*/ */
rpc SignOutputRaw (SignReq) returns (SignResp); rpc SignOutputRaw (SignReq) returns (SignResp);
/** /*
ComputeInputScript generates a complete InputIndex for the passed ComputeInputScript generates a complete InputIndex for the passed
transaction with the signature as defined within the passed SignDescriptor. transaction with the signature as defined within the passed SignDescriptor.
This method should be capable of generating the proper input script for This method should be capable of generating the proper input script for
@ -33,7 +33,7 @@ service Signer {
*/ */
rpc ComputeInputScript (SignReq) returns (InputScriptResp); rpc ComputeInputScript (SignReq) returns (InputScriptResp);
/** /*
SignMessage signs a message with the key specified in the key locator. The SignMessage signs a message with the key specified in the key locator. The
returned signature is fixed-size LN wire format encoded. returned signature is fixed-size LN wire format encoded.
@ -42,7 +42,7 @@ service Signer {
*/ */
rpc SignMessage (SignMessageReq) returns (SignMessageResp); rpc SignMessage (SignMessageReq) returns (SignMessageResp);
/** /*
VerifyMessage verifies a signature over a message using the public key VerifyMessage verifies a signature over a message using the public key
provided. The signature must be fixed-size LN wire format encoded. provided. The signature must be fixed-size LN wire format encoded.
@ -64,21 +64,21 @@ service Signer {
} }
message KeyLocator { message KeyLocator {
/// The family of key being identified. // The family of key being identified.
int32 key_family = 1; int32 key_family = 1;
/// The precise index of the key being identified. // The precise index of the key being identified.
int32 key_index = 2; int32 key_index = 2;
} }
message KeyDescriptor { message KeyDescriptor {
/** /*
The raw bytes of the key being identified. Either this or the KeyLocator The raw bytes of the key being identified. Either this or the KeyLocator
must be specified. must be specified.
*/ */
bytes raw_key_bytes = 1; bytes raw_key_bytes = 1;
/** /*
The key locator that identifies which key to use for signing. Either this The key locator that identifies which key to use for signing. Either this
or the raw bytes of the target key must be specified. or the raw bytes of the target key must be specified.
*/ */
@ -86,22 +86,22 @@ message KeyDescriptor {
} }
message TxOut { message TxOut {
/// The value of the output being spent. // The value of the output being spent.
int64 value = 1; int64 value = 1;
/// The script of the output being spent. // The script of the output being spent.
bytes pk_script = 2; bytes pk_script = 2;
} }
message SignDescriptor { message SignDescriptor {
/** /*
A descriptor that precisely describes *which* key to use for signing. This A descriptor that precisely describes *which* key to use for signing. This
may provide the raw public key directly, or require the Signer to re-derive may provide the raw public key directly, or require the Signer to re-derive
the key according to the populated derivation path. the key according to the populated derivation path.
*/ */
KeyDescriptor key_desc = 1; KeyDescriptor key_desc = 1;
/** /*
A scalar value that will be added to the private key corresponding to the A scalar value that will be added to the private key corresponding to the
above public key to obtain the private key to be used to sign this input. above public key to obtain the private key to be used to sign this input.
This value is typically derived via the following computation: This value is typically derived via the following computation:
@ -110,7 +110,7 @@ message SignDescriptor {
*/ */
bytes single_tweak = 2; bytes single_tweak = 2;
/** /*
A private key that will be used in combination with its corresponding A private key that will be used in combination with its corresponding
private key to derive the private key that is to be used to sign the target private key to derive the private key that is to be used to sign the target
input. Within the Lightning protocol, this value is typically the input. Within the Lightning protocol, this value is typically the
@ -123,40 +123,40 @@ message SignDescriptor {
*/ */
bytes double_tweak = 3; bytes double_tweak = 3;
/** /*
The full script required to properly redeem the output. This field will The full script required to properly redeem the output. This field will
only be populated if a p2wsh or a p2sh output is being signed. only be populated if a p2wsh or a p2sh output is being signed.
*/ */
bytes witness_script = 4; bytes witness_script = 4;
/** /*
A description of the output being spent. The value and script MUST be A description of the output being spent. The value and script MUST be
provided. provided.
*/ */
TxOut output = 5; TxOut output = 5;
/** /*
The target sighash type that should be used when generating the final The target sighash type that should be used when generating the final
sighash, and signature. sighash, and signature.
*/ */
uint32 sighash = 7; uint32 sighash = 7;
/** /*
The target input within the transaction that should be signed. The target input within the transaction that should be signed.
*/ */
int32 input_index = 8; int32 input_index = 8;
} }
message SignReq { message SignReq {
/// The raw bytes of the transaction to be signed. // The raw bytes of the transaction to be signed.
bytes raw_tx_bytes = 1; bytes raw_tx_bytes = 1;
/// A set of sign descriptors, for each input to be signed. // A set of sign descriptors, for each input to be signed.
repeated SignDescriptor sign_descs = 2; repeated SignDescriptor sign_descs = 2;
} }
message SignResp { message SignResp {
/** /*
A set of signatures realized in a fixed 64-byte format ordered in ascending A set of signatures realized in a fixed 64-byte format ordered in ascending
input order. input order.
*/ */
@ -164,10 +164,10 @@ message SignResp {
} }
message InputScript { message InputScript {
/// The serializes witness stack for the specified input. // The serializes witness stack for the specified input.
repeated bytes witness = 1; repeated bytes witness = 1;
/*** /**
The optional sig script for the specified witness that will only be set if The optional sig script for the specified witness that will only be set if
the input specified is a nested p2sh witness program. the input specified is a nested p2sh witness program.
*/ */
@ -175,39 +175,39 @@ message InputScript {
} }
message InputScriptResp { message InputScriptResp {
/// The set of fully valid input scripts requested. // The set of fully valid input scripts requested.
repeated InputScript input_scripts = 1; repeated InputScript input_scripts = 1;
} }
message SignMessageReq { message SignMessageReq {
/// The message to be signed. // The message to be signed.
bytes msg = 1; bytes msg = 1;
/// The key locator that identifies which key to use for signing. // The key locator that identifies which key to use for signing.
KeyLocator key_loc = 2; KeyLocator key_loc = 2;
} }
message SignMessageResp { message SignMessageResp {
/** /*
The signature for the given message in the fixed-size LN wire format. The signature for the given message in the fixed-size LN wire format.
*/ */
bytes signature = 1; bytes signature = 1;
} }
message VerifyMessageReq { message VerifyMessageReq {
/// The message over which the signature is to be verified. // The message over which the signature is to be verified.
bytes msg = 1; bytes msg = 1;
/** /*
The fixed-size LN wire encoded signature to be verified over the given The fixed-size LN wire encoded signature to be verified over the given
message. message.
*/ */
bytes signature = 2; bytes signature = 2;
/// The public key the signature has to be valid for. // The public key the signature has to be valid for.
bytes pubkey = 3; bytes pubkey = 3;
} }
message VerifyMessageResp { message VerifyMessageResp {
/// Whether the signature was valid over the given message. // Whether the signature was valid over the given message.
bool valid = 1; bool valid = 1;
} }
@ -215,7 +215,7 @@ message SharedKeyRequest {
// The ephemeral public key to use for the DH key derivation. // The ephemeral public key to use for the DH key derivation.
bytes ephemeral_pubkey = 1; bytes ephemeral_pubkey = 1;
/** /*
The optional key locator of the local key that should be used. If this The optional key locator of the local key that should be used. If this
parameter is not set then the node's identity private key will be used. parameter is not set then the node's identity private key will be used.
*/ */

@ -54,23 +54,23 @@ func (m *VersionRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_VersionRequest proto.InternalMessageInfo var xxx_messageInfo_VersionRequest proto.InternalMessageInfo
type Version struct { type Version struct {
/// A verbose description of the daemon's commit. // A verbose description of the daemon's commit.
Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"`
/// The SHA1 commit hash that the daemon is compiled with. // The SHA1 commit hash that the daemon is compiled with.
CommitHash string `protobuf:"bytes,2,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"` CommitHash string `protobuf:"bytes,2,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"`
/// The semantic version. // The semantic version.
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
/// The major application version. // The major application version.
AppMajor uint32 `protobuf:"varint,4,opt,name=app_major,json=appMajor,proto3" json:"app_major,omitempty"` AppMajor uint32 `protobuf:"varint,4,opt,name=app_major,json=appMajor,proto3" json:"app_major,omitempty"`
/// The minor application version. // The minor application version.
AppMinor uint32 `protobuf:"varint,5,opt,name=app_minor,json=appMinor,proto3" json:"app_minor,omitempty"` AppMinor uint32 `protobuf:"varint,5,opt,name=app_minor,json=appMinor,proto3" json:"app_minor,omitempty"`
/// The application patch number. // The application patch number.
AppPatch uint32 `protobuf:"varint,6,opt,name=app_patch,json=appPatch,proto3" json:"app_patch,omitempty"` AppPatch uint32 `protobuf:"varint,6,opt,name=app_patch,json=appPatch,proto3" json:"app_patch,omitempty"`
/// The application pre-release modifier, possibly empty. // The application pre-release modifier, possibly empty.
AppPreRelease string `protobuf:"bytes,7,opt,name=app_pre_release,json=appPreRelease,proto3" json:"app_pre_release,omitempty"` AppPreRelease string `protobuf:"bytes,7,opt,name=app_pre_release,json=appPreRelease,proto3" json:"app_pre_release,omitempty"`
/// The list of build tags that were supplied during compilation. // The list of build tags that were supplied during compilation.
BuildTags []string `protobuf:"bytes,8,rep,name=build_tags,json=buildTags,proto3" json:"build_tags,omitempty"` BuildTags []string `protobuf:"bytes,8,rep,name=build_tags,json=buildTags,proto3" json:"build_tags,omitempty"`
/// The version of go that compiled the executable. // The version of go that compiled the executable.
GoVersion string `protobuf:"bytes,9,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"` GoVersion string `protobuf:"bytes,9,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -207,6 +207,9 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type VersionerClient interface { type VersionerClient interface {
// lncli: `version`
//GetVersion returns the current version and build information of the running
//daemon.
GetVersion(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*Version, error) GetVersion(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*Version, error)
} }
@ -229,6 +232,9 @@ func (c *versionerClient) GetVersion(ctx context.Context, in *VersionRequest, op
// VersionerServer is the server API for Versioner service. // VersionerServer is the server API for Versioner service.
type VersionerServer interface { type VersionerServer interface {
// lncli: `version`
//GetVersion returns the current version and build information of the running
//daemon.
GetVersion(context.Context, *VersionRequest) (*Version, error) GetVersion(context.Context, *VersionRequest) (*Version, error)
} }

@ -18,30 +18,30 @@ message VersionRequest {
} }
message Version { message Version {
/// A verbose description of the daemon's commit. // A verbose description of the daemon's commit.
string commit = 1; string commit = 1;
/// The SHA1 commit hash that the daemon is compiled with. // The SHA1 commit hash that the daemon is compiled with.
string commit_hash = 2; string commit_hash = 2;
/// The semantic version. // The semantic version.
string version = 3; string version = 3;
/// The major application version. // The major application version.
uint32 app_major = 4; uint32 app_major = 4;
/// The minor application version. // The minor application version.
uint32 app_minor = 5; uint32 app_minor = 5;
/// The application patch number. // The application patch number.
uint32 app_patch = 6; uint32 app_patch = 6;
/// The application pre-release modifier, possibly empty. // The application pre-release modifier, possibly empty.
string app_pre_release = 7; string app_pre_release = 7;
/// The list of build tags that were supplied during compilation. // The list of build tags that were supplied during compilation.
repeated string build_tags = 8; repeated string build_tags = 8;
/// The version of go that compiled the executable. // The version of go that compiled the executable.
string go_version = 9; string go_version = 9;
} }

@ -133,12 +133,12 @@ func (WitnessType) EnumDescriptor() ([]byte, []int) {
} }
type KeyReq struct { type KeyReq struct {
//* //
//Is the key finger print of the root pubkey that this request is targeting. //Is the key finger print of the root pubkey that this request is targeting.
//This allows the WalletKit to possibly serve out keys for multiple HD chains //This allows the WalletKit to possibly serve out keys for multiple HD chains
//via public derivation. //via public derivation.
KeyFingerPrint int32 `protobuf:"varint,1,opt,name=key_finger_print,json=keyFingerPrint,proto3" json:"key_finger_print,omitempty"` KeyFingerPrint int32 `protobuf:"varint,1,opt,name=key_finger_print,json=keyFingerPrint,proto3" json:"key_finger_print,omitempty"`
//* //
//The target key family to derive a key from. In other contexts, this is //The target key family to derive a key from. In other contexts, this is
//known as the "account". //known as the "account".
KeyFamily int32 `protobuf:"varint,2,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"` KeyFamily int32 `protobuf:"varint,2,opt,name=key_family,json=keyFamily,proto3" json:"key_family,omitempty"`
@ -218,7 +218,7 @@ func (m *AddrRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_AddrRequest proto.InternalMessageInfo var xxx_messageInfo_AddrRequest proto.InternalMessageInfo
type AddrResponse struct { type AddrResponse struct {
//* //
//The address encoded using a bech32 format. //The address encoded using a bech32 format.
Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -259,7 +259,7 @@ func (m *AddrResponse) GetAddr() string {
} }
type Transaction struct { type Transaction struct {
//* //
//The raw serialized transaction. //The raw serialized transaction.
TxHex []byte `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` TxHex []byte `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -300,7 +300,7 @@ func (m *Transaction) GetTxHex() []byte {
} }
type PublishResponse struct { type PublishResponse struct {
//* //
//If blank, then no error occurred and the transaction was successfully //If blank, then no error occurred and the transaction was successfully
//published. If not the empty string, then a string representation of the //published. If not the empty string, then a string representation of the
//broadcast error. //broadcast error.
@ -345,11 +345,11 @@ func (m *PublishResponse) GetPublishError() string {
} }
type SendOutputsRequest struct { type SendOutputsRequest struct {
//* //
//The number of satoshis per kilo weight that should be used when crafting //The number of satoshis per kilo weight that should be used when crafting
//this transaction. //this transaction.
SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"` SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"`
//* //
//A slice of the outputs that should be created in the transaction produced. //A slice of the outputs that should be created in the transaction produced.
Outputs []*signrpc.TxOut `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"` Outputs []*signrpc.TxOut `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -397,7 +397,7 @@ func (m *SendOutputsRequest) GetOutputs() []*signrpc.TxOut {
} }
type SendOutputsResponse struct { type SendOutputsResponse struct {
//* //
//The serialized transaction sent out on the network. //The serialized transaction sent out on the network.
RawTx []byte `protobuf:"bytes,1,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"` RawTx []byte `protobuf:"bytes,1,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -438,7 +438,7 @@ func (m *SendOutputsResponse) GetRawTx() []byte {
} }
type EstimateFeeRequest struct { type EstimateFeeRequest struct {
//* //
//The number of confirmations to shoot for when estimating the fee. //The number of confirmations to shoot for when estimating the fee.
ConfTarget int32 `protobuf:"varint,1,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"` ConfTarget int32 `protobuf:"varint,1,opt,name=conf_target,json=confTarget,proto3" json:"conf_target,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -479,7 +479,7 @@ func (m *EstimateFeeRequest) GetConfTarget() int32 {
} }
type EstimateFeeResponse struct { type EstimateFeeResponse struct {
//* //
//The amount of satoshis per kw that should be used in order to reach the //The amount of satoshis per kw that should be used in order to reach the
//confirmation target in the request. //confirmation target in the request.
SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"` SatPerKw int64 `protobuf:"varint,1,opt,name=sat_per_kw,json=satPerKw,proto3" json:"sat_per_kw,omitempty"`
@ -542,7 +542,7 @@ type PendingSweep struct {
RequestedConfTarget uint32 `protobuf:"varint,8,opt,name=requested_conf_target,json=requestedConfTarget,proto3" json:"requested_conf_target,omitempty"` RequestedConfTarget uint32 `protobuf:"varint,8,opt,name=requested_conf_target,json=requestedConfTarget,proto3" json:"requested_conf_target,omitempty"`
// The requested fee rate, expressed in sat/byte, for this output. // The requested fee rate, expressed in sat/byte, for this output.
RequestedSatPerByte uint32 `protobuf:"varint,9,opt,name=requested_sat_per_byte,json=requestedSatPerByte,proto3" json:"requested_sat_per_byte,omitempty"` RequestedSatPerByte uint32 `protobuf:"varint,9,opt,name=requested_sat_per_byte,json=requestedSatPerByte,proto3" json:"requested_sat_per_byte,omitempty"`
//* //
//Whether this input must be force-swept. This means that it is swept even //Whether this input must be force-swept. This means that it is swept even
//if it has a negative yield. //if it has a negative yield.
Force bool `protobuf:"varint,7,opt,name=force,proto3" json:"force,omitempty"` Force bool `protobuf:"varint,7,opt,name=force,proto3" json:"force,omitempty"`
@ -720,7 +720,7 @@ type BumpFeeRequest struct {
//The fee rate, expressed in sat/byte, that should be used to spend the input //The fee rate, expressed in sat/byte, that should be used to spend the input
//with. //with.
SatPerByte uint32 `protobuf:"varint,3,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"` SatPerByte uint32 `protobuf:"varint,3,opt,name=sat_per_byte,json=satPerByte,proto3" json:"sat_per_byte,omitempty"`
//* //
//Whether this input must be force-swept. This means that it is swept even //Whether this input must be force-swept. This means that it is swept even
//if it has a negative yield. //if it has a negative yield.
Force bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"` Force bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"`
@ -1002,12 +1002,12 @@ func init() {
func init() { proto.RegisterFile("walletrpc/walletkit.proto", fileDescriptor_6cc6942ac78249e5) } func init() { proto.RegisterFile("walletrpc/walletkit.proto", fileDescriptor_6cc6942ac78249e5) }
var fileDescriptor_6cc6942ac78249e5 = []byte{ var fileDescriptor_6cc6942ac78249e5 = []byte{
// 1180 bytes of a gzipped FileDescriptorProto // 1178 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x6d, 0x6f, 0xe2, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x6d, 0x6f, 0xe2, 0x46,
0x10, 0x3e, 0x42, 0x42, 0x60, 0x78, 0x09, 0x59, 0xf2, 0xe2, 0xe3, 0x72, 0x0d, 0x75, 0xdf, 0xa2, 0x10, 0x3e, 0x42, 0x42, 0x60, 0x78, 0x09, 0x59, 0xf2, 0xe2, 0xe3, 0x72, 0x0d, 0x75, 0xdf, 0xa2,
0xf6, 0x8e, 0xa8, 0x39, 0xb5, 0xea, 0xb5, 0x52, 0xd5, 0x04, 0x1c, 0x11, 0x41, 0x70, 0x6a, 0xfb, 0xf6, 0x8e, 0xa8, 0x39, 0xb5, 0xea, 0xb5, 0x52, 0xd5, 0x04, 0x1c, 0x11, 0x41, 0x70, 0x6a, 0xfb,
0x2e, 0xba, 0xaa, 0xd2, 0xca, 0xe0, 0x0d, 0xb1, 0x02, 0xb6, 0x6f, 0xbd, 0x1c, 0xf0, 0xad, 0xdf, 0x2e, 0xba, 0xaa, 0xd2, 0xca, 0xe0, 0x0d, 0xb1, 0x02, 0xb6, 0x6f, 0xbd, 0x1c, 0xf0, 0xad, 0x5f,
0xfa, 0x0f, 0x2a, 0xdd, 0xbf, 0xad, 0xbc, 0x7e, 0x61, 0x0d, 0xcd, 0x49, 0xfd, 0x14, 0x76, 0x9e, 0xfa, 0x17, 0x2a, 0xdd, 0xbf, 0xad, 0xbc, 0x7e, 0x61, 0x0d, 0xcd, 0x49, 0xfd, 0x14, 0x76, 0x9e,
0x67, 0x9e, 0x9d, 0x9d, 0x19, 0xcf, 0x04, 0x9e, 0xce, 0xcc, 0xf1, 0x98, 0x30, 0xea, 0x0d, 0x4f, 0x67, 0x9e, 0x9d, 0x9d, 0x19, 0xcf, 0x04, 0x9e, 0xce, 0xcc, 0xf1, 0x98, 0x30, 0xea, 0x0d, 0x4f,
0xc3, 0x5f, 0x0f, 0x36, 0x6b, 0x7a, 0xd4, 0x65, 0x2e, 0x2a, 0x24, 0x50, 0xbd, 0x40, 0xbd, 0x61, 0xc3, 0x5f, 0x0f, 0x36, 0x6b, 0x7a, 0xd4, 0x65, 0x2e, 0x2a, 0x24, 0x50, 0xbd, 0x40, 0xbd, 0x61,
0x68, 0xad, 0xef, 0xf9, 0xf6, 0xc8, 0x09, 0xe8, 0xc1, 0x5f, 0x42, 0x43, 0xab, 0xfc, 0x3b, 0xe4, 0x68, 0xad, 0xef, 0xf9, 0xf6, 0xc8, 0x09, 0xe8, 0xc1, 0x5f, 0x42, 0x43, 0xab, 0xfc, 0x3b, 0xe4,
@ -1072,11 +1072,11 @@ var fileDescriptor_6cc6942ac78249e5 = []byte{
0xf5, 0x0d, 0x5d, 0xff, 0xec, 0x31, 0x78, 0xa9, 0x26, 0x2c, 0xc5, 0x94, 0xda, 0xfa, 0x8e, 0x4d, 0xf5, 0x0d, 0x5d, 0xff, 0xec, 0x31, 0x78, 0xa9, 0x26, 0x2c, 0xc5, 0x94, 0xda, 0xfa, 0x8e, 0x4d,
0xa9, 0xfd, 0xd7, 0x2e, 0xd5, 0xa0, 0x9c, 0x9a, 0xbc, 0xe8, 0xf8, 0x91, 0xc9, 0x9a, 0xc4, 0xd7, 0xa9, 0xfd, 0xd7, 0x2e, 0xd5, 0xa0, 0x9c, 0x9a, 0xbc, 0xe8, 0xf8, 0x91, 0xc9, 0x9a, 0xc4, 0xd7,
0x78, 0x9c, 0x10, 0x69, 0xfe, 0x06, 0xdb, 0xd1, 0x6c, 0x43, 0x4f, 0x05, 0x72, 0x7a, 0x0e, 0xa7, 0x78, 0x9c, 0x10, 0x69, 0xfe, 0x06, 0xdb, 0xd1, 0x6c, 0x43, 0x4f, 0x05, 0x72, 0x7a, 0x0e, 0xa7,
0x32, 0xb6, 0x32, 0x0a, 0x51, 0x17, 0x60, 0x39, 0x54, 0xd0, 0xd1, 0x23, 0xb3, 0x26, 0xd4, 0x79, 0x32, 0xb6, 0x32, 0x0a, 0xd1, 0x15, 0xc0, 0x72, 0xa8, 0xa0, 0xa3, 0x47, 0x66, 0x4d, 0xa8, 0xf3,
0xfe, 0xc9, 0x49, 0x24, 0x3f, 0xb9, 0xf8, 0xfe, 0x8f, 0xd3, 0x91, 0xcd, 0xee, 0xa7, 0x83, 0xe6, 0xfc, 0x93, 0x93, 0xe8, 0xe2, 0xfb, 0x3f, 0x4e, 0x47, 0x36, 0xbb, 0x9f, 0x0e, 0x9a, 0x43, 0x77,
0xd0, 0x9d, 0x9c, 0x8e, 0x83, 0x3d, 0xe8, 0xd8, 0xce, 0xc8, 0x21, 0x6c, 0xe6, 0xd2, 0x87, 0xd3, 0x72, 0x3a, 0x0e, 0xb6, 0xa0, 0x63, 0x3b, 0x23, 0x87, 0xb0, 0x99, 0x4b, 0x1f, 0x4e, 0xc7, 0x8e,
0xb1, 0x63, 0x9d, 0xf2, 0xa9, 0x78, 0x9a, 0xe8, 0x0c, 0x72, 0xfc, 0xdf, 0xc4, 0x57, 0xff, 0x06, 0x75, 0xca, 0x67, 0xe2, 0x69, 0xa2, 0x32, 0xc8, 0xf1, 0x7f, 0x12, 0x5f, 0xfd, 0x1b, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0xe6, 0xc9, 0x1c, 0x56, 0x6f, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x88, 0x6c, 0x32, 0x8c, 0x6d, 0x0a, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -1091,30 +1091,30 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type WalletKitClient interface { type WalletKitClient interface {
//* //
//DeriveNextKey attempts to derive the *next* key within the key family //DeriveNextKey attempts to derive the *next* key within the key family
//(account in BIP43) specified. This method should return the next external //(account in BIP43) specified. This method should return the next external
//child within this branch. //child within this branch.
DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) DeriveNextKey(ctx context.Context, in *KeyReq, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error)
//* //
//DeriveKey attempts to derive an arbitrary key specified by the passed //DeriveKey attempts to derive an arbitrary key specified by the passed
//KeyLocator. //KeyLocator.
DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error) DeriveKey(ctx context.Context, in *signrpc.KeyLocator, opts ...grpc.CallOption) (*signrpc.KeyDescriptor, error)
//* //
//NextAddr returns the next unused address within the wallet. //NextAddr returns the next unused address within the wallet.
NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error) NextAddr(ctx context.Context, in *AddrRequest, opts ...grpc.CallOption) (*AddrResponse, error)
//* //
//PublishTransaction attempts to publish the passed transaction to the //PublishTransaction attempts to publish the passed transaction to the
//network. Once this returns without an error, the wallet will continually //network. Once this returns without an error, the wallet will continually
//attempt to re-broadcast the transaction on start up, until it enters the //attempt to re-broadcast the transaction on start up, until it enters the
//chain. //chain.
PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error) PublishTransaction(ctx context.Context, in *Transaction, opts ...grpc.CallOption) (*PublishResponse, error)
//* //
//SendOutputs is similar to the existing sendmany call in Bitcoind, and //SendOutputs is similar to the existing sendmany call in Bitcoind, and
//allows the caller to create a transaction that sends to several outputs at //allows the caller to create a transaction that sends to several outputs at
//once. This is ideal when wanting to batch create a set of transactions. //once. This is ideal when wanting to batch create a set of transactions.
SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error) SendOutputs(ctx context.Context, in *SendOutputsRequest, opts ...grpc.CallOption) (*SendOutputsResponse, error)
//* //
//EstimateFee attempts to query the internal fee estimator of the wallet to //EstimateFee attempts to query the internal fee estimator of the wallet to
//determine the fee (in sat/kw) to attach to a transaction in order to //determine the fee (in sat/kw) to attach to a transaction in order to
//achieve the confirmation target. //achieve the confirmation target.
@ -1254,30 +1254,30 @@ func (c *walletKitClient) ListSweeps(ctx context.Context, in *ListSweepsRequest,
// WalletKitServer is the server API for WalletKit service. // WalletKitServer is the server API for WalletKit service.
type WalletKitServer interface { type WalletKitServer interface {
//* //
//DeriveNextKey attempts to derive the *next* key within the key family //DeriveNextKey attempts to derive the *next* key within the key family
//(account in BIP43) specified. This method should return the next external //(account in BIP43) specified. This method should return the next external
//child within this branch. //child within this branch.
DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error) DeriveNextKey(context.Context, *KeyReq) (*signrpc.KeyDescriptor, error)
//* //
//DeriveKey attempts to derive an arbitrary key specified by the passed //DeriveKey attempts to derive an arbitrary key specified by the passed
//KeyLocator. //KeyLocator.
DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error) DeriveKey(context.Context, *signrpc.KeyLocator) (*signrpc.KeyDescriptor, error)
//* //
//NextAddr returns the next unused address within the wallet. //NextAddr returns the next unused address within the wallet.
NextAddr(context.Context, *AddrRequest) (*AddrResponse, error) NextAddr(context.Context, *AddrRequest) (*AddrResponse, error)
//* //
//PublishTransaction attempts to publish the passed transaction to the //PublishTransaction attempts to publish the passed transaction to the
//network. Once this returns without an error, the wallet will continually //network. Once this returns without an error, the wallet will continually
//attempt to re-broadcast the transaction on start up, until it enters the //attempt to re-broadcast the transaction on start up, until it enters the
//chain. //chain.
PublishTransaction(context.Context, *Transaction) (*PublishResponse, error) PublishTransaction(context.Context, *Transaction) (*PublishResponse, error)
//* //
//SendOutputs is similar to the existing sendmany call in Bitcoind, and //SendOutputs is similar to the existing sendmany call in Bitcoind, and
//allows the caller to create a transaction that sends to several outputs at //allows the caller to create a transaction that sends to several outputs at
//once. This is ideal when wanting to batch create a set of transactions. //once. This is ideal when wanting to batch create a set of transactions.
SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error) SendOutputs(context.Context, *SendOutputsRequest) (*SendOutputsResponse, error)
//* //
//EstimateFee attempts to query the internal fee estimator of the wallet to //EstimateFee attempts to query the internal fee estimator of the wallet to
//determine the fee (in sat/kw) to attach to a transaction in order to //determine the fee (in sat/kw) to attach to a transaction in order to
//achieve the confirmation target. //achieve the confirmation target.

@ -10,25 +10,25 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/walletrpc";
// WalletKit is a service that gives access to the core functionalities of the // WalletKit is a service that gives access to the core functionalities of the
// daemon's wallet. // daemon's wallet.
service WalletKit { service WalletKit {
/** /*
DeriveNextKey attempts to derive the *next* key within the key family DeriveNextKey attempts to derive the *next* key within the key family
(account in BIP43) specified. This method should return the next external (account in BIP43) specified. This method should return the next external
child within this branch. child within this branch.
*/ */
rpc DeriveNextKey (KeyReq) returns (signrpc.KeyDescriptor); rpc DeriveNextKey (KeyReq) returns (signrpc.KeyDescriptor);
/** /*
DeriveKey attempts to derive an arbitrary key specified by the passed DeriveKey attempts to derive an arbitrary key specified by the passed
KeyLocator. KeyLocator.
*/ */
rpc DeriveKey (signrpc.KeyLocator) returns (signrpc.KeyDescriptor); rpc DeriveKey (signrpc.KeyLocator) returns (signrpc.KeyDescriptor);
/** /*
NextAddr returns the next unused address within the wallet. NextAddr returns the next unused address within the wallet.
*/ */
rpc NextAddr (AddrRequest) returns (AddrResponse); rpc NextAddr (AddrRequest) returns (AddrResponse);
/** /*
PublishTransaction attempts to publish the passed transaction to the PublishTransaction attempts to publish the passed transaction to the
network. Once this returns without an error, the wallet will continually network. Once this returns without an error, the wallet will continually
attempt to re-broadcast the transaction on start up, until it enters the attempt to re-broadcast the transaction on start up, until it enters the
@ -36,14 +36,14 @@ service WalletKit {
*/ */
rpc PublishTransaction (Transaction) returns (PublishResponse); rpc PublishTransaction (Transaction) returns (PublishResponse);
/** /*
SendOutputs is similar to the existing sendmany call in Bitcoind, and SendOutputs is similar to the existing sendmany call in Bitcoind, and
allows the caller to create a transaction that sends to several outputs at allows the caller to create a transaction that sends to several outputs at
once. This is ideal when wanting to batch create a set of transactions. once. This is ideal when wanting to batch create a set of transactions.
*/ */
rpc SendOutputs (SendOutputsRequest) returns (SendOutputsResponse); rpc SendOutputs (SendOutputsRequest) returns (SendOutputsResponse);
/** /*
EstimateFee attempts to query the internal fee estimator of the wallet to EstimateFee attempts to query the internal fee estimator of the wallet to
determine the fee (in sat/kw) to attach to a transaction in order to determine the fee (in sat/kw) to attach to a transaction in order to
achieve the confirmation target. achieve the confirmation target.
@ -100,14 +100,14 @@ service WalletKit {
} }
message KeyReq { message KeyReq {
/** /*
Is the key finger print of the root pubkey that this request is targeting. Is the key finger print of the root pubkey that this request is targeting.
This allows the WalletKit to possibly serve out keys for multiple HD chains This allows the WalletKit to possibly serve out keys for multiple HD chains
via public derivation. via public derivation.
*/ */
int32 key_finger_print = 1; int32 key_finger_print = 1;
/** /*
The target key family to derive a key from. In other contexts, this is The target key family to derive a key from. In other contexts, this is
known as the "account". known as the "account".
*/ */
@ -118,20 +118,20 @@ message AddrRequest {
// No fields, as we always give out a p2wkh address. // No fields, as we always give out a p2wkh address.
} }
message AddrResponse { message AddrResponse {
/** /*
The address encoded using a bech32 format. The address encoded using a bech32 format.
*/ */
string addr = 1; string addr = 1;
} }
message Transaction { message Transaction {
/** /*
The raw serialized transaction. The raw serialized transaction.
*/ */
bytes tx_hex = 1; bytes tx_hex = 1;
} }
message PublishResponse { message PublishResponse {
/** /*
If blank, then no error occurred and the transaction was successfully If blank, then no error occurred and the transaction was successfully
published. If not the empty string, then a string representation of the published. If not the empty string, then a string representation of the
broadcast error. broadcast error.
@ -142,32 +142,32 @@ message PublishResponse {
} }
message SendOutputsRequest { message SendOutputsRequest {
/** /*
The number of satoshis per kilo weight that should be used when crafting The number of satoshis per kilo weight that should be used when crafting
this transaction. this transaction.
*/ */
int64 sat_per_kw = 1; int64 sat_per_kw = 1;
/** /*
A slice of the outputs that should be created in the transaction produced. A slice of the outputs that should be created in the transaction produced.
*/ */
repeated signrpc.TxOut outputs = 2; repeated signrpc.TxOut outputs = 2;
} }
message SendOutputsResponse { message SendOutputsResponse {
/** /*
The serialized transaction sent out on the network. The serialized transaction sent out on the network.
*/ */
bytes raw_tx = 1; bytes raw_tx = 1;
} }
message EstimateFeeRequest { message EstimateFeeRequest {
/** /*
The number of confirmations to shoot for when estimating the fee. The number of confirmations to shoot for when estimating the fee.
*/ */
int32 conf_target = 1; int32 conf_target = 1;
} }
message EstimateFeeResponse { message EstimateFeeResponse {
/** /*
The amount of satoshis per kw that should be used in order to reach the The amount of satoshis per kw that should be used in order to reach the
confirmation target in the request. confirmation target in the request.
*/ */
@ -296,7 +296,7 @@ message PendingSweep {
// The requested fee rate, expressed in sat/byte, for this output. // The requested fee rate, expressed in sat/byte, for this output.
uint32 requested_sat_per_byte = 9; uint32 requested_sat_per_byte = 9;
/** /*
Whether this input must be force-swept. This means that it is swept even Whether this input must be force-swept. This means that it is swept even
if it has a negative yield. if it has a negative yield.
*/ */
@ -326,7 +326,7 @@ message BumpFeeRequest {
*/ */
uint32 sat_per_byte = 3; uint32 sat_per_byte = 3;
/** /*
Whether this input must be force-swept. This means that it is swept even Whether this input must be force-swept. This means that it is swept even
if it has a negative yield. if it has a negative yield.
*/ */

@ -24,12 +24,12 @@ var _ = math.Inf
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type GenSeedRequest struct { type GenSeedRequest struct {
//* //
//aezeed_passphrase is an optional user provided passphrase that will be used //aezeed_passphrase is an optional user provided passphrase that will be used
//to encrypt the generated aezeed cipher seed. When using REST, this field //to encrypt the generated aezeed cipher seed. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
AezeedPassphrase []byte `protobuf:"bytes,1,opt,name=aezeed_passphrase,json=aezeedPassphrase,proto3" json:"aezeed_passphrase,omitempty"` AezeedPassphrase []byte `protobuf:"bytes,1,opt,name=aezeed_passphrase,json=aezeedPassphrase,proto3" json:"aezeed_passphrase,omitempty"`
//* //
//seed_entropy is an optional 16-bytes generated via CSPRNG. If not //seed_entropy is an optional 16-bytes generated via CSPRNG. If not
//specified, then a fresh set of randomness will be used to create the seed. //specified, then a fresh set of randomness will be used to create the seed.
//When using REST, this field must be encoded as base64. //When using REST, this field must be encoded as base64.
@ -79,14 +79,14 @@ func (m *GenSeedRequest) GetSeedEntropy() []byte {
} }
type GenSeedResponse struct { type GenSeedResponse struct {
//* //
//cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed //cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed
//cipher seed obtained by the user. This field is optional, as if not //cipher seed obtained by the user. This field is optional, as if not
//provided, then the daemon will generate a new cipher seed for the user. //provided, then the daemon will generate a new cipher seed for the user.
//Otherwise, then the daemon will attempt to recover the wallet state linked //Otherwise, then the daemon will attempt to recover the wallet state linked
//to this cipher seed. //to this cipher seed.
CipherSeedMnemonic []string `protobuf:"bytes,1,rep,name=cipher_seed_mnemonic,json=cipherSeedMnemonic,proto3" json:"cipher_seed_mnemonic,omitempty"` CipherSeedMnemonic []string `protobuf:"bytes,1,rep,name=cipher_seed_mnemonic,json=cipherSeedMnemonic,proto3" json:"cipher_seed_mnemonic,omitempty"`
//* //
//enciphered_seed are the raw aezeed cipher seed bytes. This is the raw //enciphered_seed are the raw aezeed cipher seed bytes. This is the raw
//cipher text before run through our mnemonic encoding scheme. //cipher text before run through our mnemonic encoding scheme.
EncipheredSeed []byte `protobuf:"bytes,2,opt,name=enciphered_seed,json=encipheredSeed,proto3" json:"enciphered_seed,omitempty"` EncipheredSeed []byte `protobuf:"bytes,2,opt,name=enciphered_seed,json=encipheredSeed,proto3" json:"enciphered_seed,omitempty"`
@ -135,30 +135,30 @@ func (m *GenSeedResponse) GetEncipheredSeed() []byte {
} }
type InitWalletRequest struct { type InitWalletRequest struct {
//* //
//wallet_password is the passphrase that should be used to encrypt the //wallet_password is the passphrase that should be used to encrypt the
//wallet. This MUST be at least 8 chars in length. After creation, this //wallet. This MUST be at least 8 chars in length. After creation, this
//password is required to unlock the daemon. When using REST, this field //password is required to unlock the daemon. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
WalletPassword []byte `protobuf:"bytes,1,opt,name=wallet_password,json=walletPassword,proto3" json:"wallet_password,omitempty"` WalletPassword []byte `protobuf:"bytes,1,opt,name=wallet_password,json=walletPassword,proto3" json:"wallet_password,omitempty"`
//* //
//cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed //cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed
//cipher seed obtained by the user. This may have been generated by the //cipher seed obtained by the user. This may have been generated by the
//GenSeed method, or be an existing seed. //GenSeed method, or be an existing seed.
CipherSeedMnemonic []string `protobuf:"bytes,2,rep,name=cipher_seed_mnemonic,json=cipherSeedMnemonic,proto3" json:"cipher_seed_mnemonic,omitempty"` CipherSeedMnemonic []string `protobuf:"bytes,2,rep,name=cipher_seed_mnemonic,json=cipherSeedMnemonic,proto3" json:"cipher_seed_mnemonic,omitempty"`
//* //
//aezeed_passphrase is an optional user provided passphrase that will be used //aezeed_passphrase is an optional user provided passphrase that will be used
//to encrypt the generated aezeed cipher seed. When using REST, this field //to encrypt the generated aezeed cipher seed. When using REST, this field
//must be encoded as base64. //must be encoded as base64.
AezeedPassphrase []byte `protobuf:"bytes,3,opt,name=aezeed_passphrase,json=aezeedPassphrase,proto3" json:"aezeed_passphrase,omitempty"` AezeedPassphrase []byte `protobuf:"bytes,3,opt,name=aezeed_passphrase,json=aezeedPassphrase,proto3" json:"aezeed_passphrase,omitempty"`
//* //
//recovery_window is an optional argument specifying the address lookahead //recovery_window is an optional argument specifying the address lookahead
//when restoring a wallet seed. The recovery window applies to each //when restoring a wallet seed. The recovery window applies to each
//individual branch of the BIP44 derivation paths. Supplying a recovery //individual branch of the BIP44 derivation paths. Supplying a recovery
//window of zero indicates that no addresses should be recovered, such after //window of zero indicates that no addresses should be recovered, such after
//the first initialization of the wallet. //the first initialization of the wallet.
RecoveryWindow int32 `protobuf:"varint,4,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"` RecoveryWindow int32 `protobuf:"varint,4,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
//* //
//channel_backups is an optional argument that allows clients to recover the //channel_backups is an optional argument that allows clients to recover the
//settled funds within a set of channels. This should be populated if the //settled funds within a set of channels. This should be populated if the
//user was unable to close out all channels and sweep funds before partial or //user was unable to close out all channels and sweep funds before partial or
@ -263,19 +263,19 @@ func (m *InitWalletResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_InitWalletResponse proto.InternalMessageInfo var xxx_messageInfo_InitWalletResponse proto.InternalMessageInfo
type UnlockWalletRequest struct { type UnlockWalletRequest struct {
//* //
//wallet_password should be the current valid passphrase for the daemon. This //wallet_password should be the current valid passphrase for the daemon. This
//will be required to decrypt on-disk material that the daemon requires to //will be required to decrypt on-disk material that the daemon requires to
//function properly. When using REST, this field must be encoded as base64. //function properly. When using REST, this field must be encoded as base64.
WalletPassword []byte `protobuf:"bytes,1,opt,name=wallet_password,json=walletPassword,proto3" json:"wallet_password,omitempty"` WalletPassword []byte `protobuf:"bytes,1,opt,name=wallet_password,json=walletPassword,proto3" json:"wallet_password,omitempty"`
//* //
//recovery_window is an optional argument specifying the address lookahead //recovery_window is an optional argument specifying the address lookahead
//when restoring a wallet seed. The recovery window applies to each //when restoring a wallet seed. The recovery window applies to each
//individual branch of the BIP44 derivation paths. Supplying a recovery //individual branch of the BIP44 derivation paths. Supplying a recovery
//window of zero indicates that no addresses should be recovered, such after //window of zero indicates that no addresses should be recovered, such after
//the first initialization of the wallet. //the first initialization of the wallet.
RecoveryWindow int32 `protobuf:"varint,2,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"` RecoveryWindow int32 `protobuf:"varint,2,opt,name=recovery_window,json=recoveryWindow,proto3" json:"recovery_window,omitempty"`
//* //
//channel_backups is an optional argument that allows clients to recover the //channel_backups is an optional argument that allows clients to recover the
//settled funds within a set of channels. This should be populated if the //settled funds within a set of channels. This should be populated if the
//user was unable to close out all channels and sweep funds before partial or //user was unable to close out all channels and sweep funds before partial or
@ -366,11 +366,11 @@ func (m *UnlockWalletResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_UnlockWalletResponse proto.InternalMessageInfo var xxx_messageInfo_UnlockWalletResponse proto.InternalMessageInfo
type ChangePasswordRequest struct { type ChangePasswordRequest struct {
//* //
//current_password should be the current valid passphrase used to unlock the //current_password should be the current valid passphrase used to unlock the
//daemon. When using REST, this field must be encoded as base64. //daemon. When using REST, this field must be encoded as base64.
CurrentPassword []byte `protobuf:"bytes,1,opt,name=current_password,json=currentPassword,proto3" json:"current_password,omitempty"` CurrentPassword []byte `protobuf:"bytes,1,opt,name=current_password,json=currentPassword,proto3" json:"current_password,omitempty"`
//* //
//new_password should be the new passphrase that will be needed to unlock the //new_password should be the new passphrase that will be needed to unlock the
//daemon. When using REST, this field must be encoded as base64. //daemon. When using REST, this field must be encoded as base64.
NewPassword []byte `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` NewPassword []byte `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"`
@ -516,7 +516,7 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type WalletUnlockerClient interface { type WalletUnlockerClient interface {
//* //
//GenSeed is the first method that should be used to instantiate a new lnd //GenSeed is the first method that should be used to instantiate a new lnd
//instance. This method allows a caller to generate a new aezeed cipher seed //instance. This method allows a caller to generate a new aezeed cipher seed
//given an optional passphrase. If provided, the passphrase will be necessary //given an optional passphrase. If provided, the passphrase will be necessary
@ -526,7 +526,7 @@ type WalletUnlockerClient interface {
//method should be used to commit the newly generated seed, and create the //method should be used to commit the newly generated seed, and create the
//wallet. //wallet.
GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error) GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error)
//* //
//InitWallet is used when lnd is starting up for the first time to fully //InitWallet is used when lnd is starting up for the first time to fully
//initialize the daemon and its internal wallet. At the very least a wallet //initialize the daemon and its internal wallet. At the very least a wallet
//password must be provided. This will be used to encrypt sensitive material //password must be provided. This will be used to encrypt sensitive material
@ -540,11 +540,11 @@ type WalletUnlockerClient interface {
//seed, then present it to the user. Once it has been verified by the user, //seed, then present it to the user. Once it has been verified by the user,
//the seed can be fed into this RPC in order to commit the new wallet. //the seed can be fed into this RPC in order to commit the new wallet.
InitWallet(ctx context.Context, in *InitWalletRequest, opts ...grpc.CallOption) (*InitWalletResponse, error) InitWallet(ctx context.Context, in *InitWalletRequest, opts ...grpc.CallOption) (*InitWalletResponse, error)
//* lncli: `unlock` // lncli: `unlock`
//UnlockWallet is used at startup of lnd to provide a password to unlock //UnlockWallet is used at startup of lnd to provide a password to unlock
//the wallet database. //the wallet database.
UnlockWallet(ctx context.Context, in *UnlockWalletRequest, opts ...grpc.CallOption) (*UnlockWalletResponse, error) UnlockWallet(ctx context.Context, in *UnlockWalletRequest, opts ...grpc.CallOption) (*UnlockWalletResponse, error)
//* lncli: `changepassword` // lncli: `changepassword`
//ChangePassword changes the password of the encrypted wallet. This will //ChangePassword changes the password of the encrypted wallet. This will
//automatically unlock the wallet database if successful. //automatically unlock the wallet database if successful.
ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error) ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error)
@ -596,7 +596,7 @@ func (c *walletUnlockerClient) ChangePassword(ctx context.Context, in *ChangePas
// WalletUnlockerServer is the server API for WalletUnlocker service. // WalletUnlockerServer is the server API for WalletUnlocker service.
type WalletUnlockerServer interface { type WalletUnlockerServer interface {
//* //
//GenSeed is the first method that should be used to instantiate a new lnd //GenSeed is the first method that should be used to instantiate a new lnd
//instance. This method allows a caller to generate a new aezeed cipher seed //instance. This method allows a caller to generate a new aezeed cipher seed
//given an optional passphrase. If provided, the passphrase will be necessary //given an optional passphrase. If provided, the passphrase will be necessary
@ -606,7 +606,7 @@ type WalletUnlockerServer interface {
//method should be used to commit the newly generated seed, and create the //method should be used to commit the newly generated seed, and create the
//wallet. //wallet.
GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error) GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error)
//* //
//InitWallet is used when lnd is starting up for the first time to fully //InitWallet is used when lnd is starting up for the first time to fully
//initialize the daemon and its internal wallet. At the very least a wallet //initialize the daemon and its internal wallet. At the very least a wallet
//password must be provided. This will be used to encrypt sensitive material //password must be provided. This will be used to encrypt sensitive material
@ -620,11 +620,11 @@ type WalletUnlockerServer interface {
//seed, then present it to the user. Once it has been verified by the user, //seed, then present it to the user. Once it has been verified by the user,
//the seed can be fed into this RPC in order to commit the new wallet. //the seed can be fed into this RPC in order to commit the new wallet.
InitWallet(context.Context, *InitWalletRequest) (*InitWalletResponse, error) InitWallet(context.Context, *InitWalletRequest) (*InitWalletResponse, error)
//* lncli: `unlock` // lncli: `unlock`
//UnlockWallet is used at startup of lnd to provide a password to unlock //UnlockWallet is used at startup of lnd to provide a password to unlock
//the wallet database. //the wallet database.
UnlockWallet(context.Context, *UnlockWalletRequest) (*UnlockWalletResponse, error) UnlockWallet(context.Context, *UnlockWalletRequest) (*UnlockWalletResponse, error)
//* lncli: `changepassword` // lncli: `changepassword`
//ChangePassword changes the password of the encrypted wallet. This will //ChangePassword changes the password of the encrypted wallet. This will
//automatically unlock the wallet database if successful. //automatically unlock the wallet database if successful.
ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error) ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error)

@ -7,15 +7,11 @@ package lnrpc;
option go_package = "github.com/lightningnetwork/lnd/lnrpc"; option go_package = "github.com/lightningnetwork/lnd/lnrpc";
/** /*
* Comments in this file will be directly parsed into the API * Comments in this file will be directly parsed into the API
* Documentation as descriptions of the associated method, message, or field. * Documentation as descriptions of the associated method, message, or field.
* These descriptions should go right above the definition of the object, and * These descriptions should go right above the definition of the object, and
* can be in either block or /// comment format. * can be in either block or // comment format.
*
* One edge case exists where a // comment followed by a /// comment in the
* next line will cause the description not to show up in the documentation. In
* that instance, simply separate the two comments with a blank line.
* *
* An RPC method can be matched to an lncli command by placing a line in the * An RPC method can be matched to an lncli command by placing a line in the
* beginning of the description in exactly the following format: * beginning of the description in exactly the following format:
@ -32,7 +28,7 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc";
// WalletUnlocker is a service that is used to set up a wallet password for // WalletUnlocker is a service that is used to set up a wallet password for
// lnd at first startup, and unlock a previously set up wallet. // lnd at first startup, and unlock a previously set up wallet.
service WalletUnlocker { service WalletUnlocker {
/** /*
GenSeed is the first method that should be used to instantiate a new lnd GenSeed is the first method that should be used to instantiate a new lnd
instance. This method allows a caller to generate a new aezeed cipher seed instance. This method allows a caller to generate a new aezeed cipher seed
given an optional passphrase. If provided, the passphrase will be necessary given an optional passphrase. If provided, the passphrase will be necessary
@ -48,7 +44,7 @@ service WalletUnlocker {
}; };
} }
/** /*
InitWallet is used when lnd is starting up for the first time to fully InitWallet is used when lnd is starting up for the first time to fully
initialize the daemon and its internal wallet. At the very least a wallet initialize the daemon and its internal wallet. At the very least a wallet
password must be provided. This will be used to encrypt sensitive material password must be provided. This will be used to encrypt sensitive material
@ -69,7 +65,7 @@ service WalletUnlocker {
}; };
} }
/** lncli: `unlock` /* lncli: `unlock`
UnlockWallet is used at startup of lnd to provide a password to unlock UnlockWallet is used at startup of lnd to provide a password to unlock
the wallet database. the wallet database.
*/ */
@ -80,7 +76,7 @@ service WalletUnlocker {
}; };
} }
/** lncli: `changepassword` /* lncli: `changepassword`
ChangePassword changes the password of the encrypted wallet. This will ChangePassword changes the password of the encrypted wallet. This will
automatically unlock the wallet database if successful. automatically unlock the wallet database if successful.
*/ */
@ -94,14 +90,14 @@ service WalletUnlocker {
} }
message GenSeedRequest { message GenSeedRequest {
/** /*
aezeed_passphrase is an optional user provided passphrase that will be used aezeed_passphrase is an optional user provided passphrase that will be used
to encrypt the generated aezeed cipher seed. When using REST, this field to encrypt the generated aezeed cipher seed. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
bytes aezeed_passphrase = 1; bytes aezeed_passphrase = 1;
/** /*
seed_entropy is an optional 16-bytes generated via CSPRNG. If not seed_entropy is an optional 16-bytes generated via CSPRNG. If not
specified, then a fresh set of randomness will be used to create the seed. specified, then a fresh set of randomness will be used to create the seed.
When using REST, this field must be encoded as base64. When using REST, this field must be encoded as base64.
@ -109,7 +105,7 @@ message GenSeedRequest {
bytes seed_entropy = 2; bytes seed_entropy = 2;
} }
message GenSeedResponse { message GenSeedResponse {
/** /*
cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed
cipher seed obtained by the user. This field is optional, as if not cipher seed obtained by the user. This field is optional, as if not
provided, then the daemon will generate a new cipher seed for the user. provided, then the daemon will generate a new cipher seed for the user.
@ -118,7 +114,7 @@ message GenSeedResponse {
*/ */
repeated string cipher_seed_mnemonic = 1; repeated string cipher_seed_mnemonic = 1;
/** /*
enciphered_seed are the raw aezeed cipher seed bytes. This is the raw enciphered_seed are the raw aezeed cipher seed bytes. This is the raw
cipher text before run through our mnemonic encoding scheme. cipher text before run through our mnemonic encoding scheme.
*/ */
@ -126,7 +122,7 @@ message GenSeedResponse {
} }
message InitWalletRequest { message InitWalletRequest {
/** /*
wallet_password is the passphrase that should be used to encrypt the wallet_password is the passphrase that should be used to encrypt the
wallet. This MUST be at least 8 chars in length. After creation, this wallet. This MUST be at least 8 chars in length. After creation, this
password is required to unlock the daemon. When using REST, this field password is required to unlock the daemon. When using REST, this field
@ -134,21 +130,21 @@ message InitWalletRequest {
*/ */
bytes wallet_password = 1; bytes wallet_password = 1;
/** /*
cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed
cipher seed obtained by the user. This may have been generated by the cipher seed obtained by the user. This may have been generated by the
GenSeed method, or be an existing seed. GenSeed method, or be an existing seed.
*/ */
repeated string cipher_seed_mnemonic = 2; repeated string cipher_seed_mnemonic = 2;
/** /*
aezeed_passphrase is an optional user provided passphrase that will be used aezeed_passphrase is an optional user provided passphrase that will be used
to encrypt the generated aezeed cipher seed. When using REST, this field to encrypt the generated aezeed cipher seed. When using REST, this field
must be encoded as base64. must be encoded as base64.
*/ */
bytes aezeed_passphrase = 3; bytes aezeed_passphrase = 3;
/** /*
recovery_window is an optional argument specifying the address lookahead recovery_window is an optional argument specifying the address lookahead
when restoring a wallet seed. The recovery window applies to each when restoring a wallet seed. The recovery window applies to each
individual branch of the BIP44 derivation paths. Supplying a recovery individual branch of the BIP44 derivation paths. Supplying a recovery
@ -157,7 +153,7 @@ message InitWalletRequest {
*/ */
int32 recovery_window = 4; int32 recovery_window = 4;
/** /*
channel_backups is an optional argument that allows clients to recover the channel_backups is an optional argument that allows clients to recover the
settled funds within a set of channels. This should be populated if the settled funds within a set of channels. This should be populated if the
user was unable to close out all channels and sweep funds before partial or user was unable to close out all channels and sweep funds before partial or
@ -171,14 +167,14 @@ message InitWalletResponse {
} }
message UnlockWalletRequest { message UnlockWalletRequest {
/** /*
wallet_password should be the current valid passphrase for the daemon. This wallet_password should be the current valid passphrase for the daemon. This
will be required to decrypt on-disk material that the daemon requires to will be required to decrypt on-disk material that the daemon requires to
function properly. When using REST, this field must be encoded as base64. function properly. When using REST, this field must be encoded as base64.
*/ */
bytes wallet_password = 1; bytes wallet_password = 1;
/** /*
recovery_window is an optional argument specifying the address lookahead recovery_window is an optional argument specifying the address lookahead
when restoring a wallet seed. The recovery window applies to each when restoring a wallet seed. The recovery window applies to each
individual branch of the BIP44 derivation paths. Supplying a recovery individual branch of the BIP44 derivation paths. Supplying a recovery
@ -187,7 +183,7 @@ message UnlockWalletRequest {
*/ */
int32 recovery_window = 2; int32 recovery_window = 2;
/** /*
channel_backups is an optional argument that allows clients to recover the channel_backups is an optional argument that allows clients to recover the
settled funds within a set of channels. This should be populated if the settled funds within a set of channels. This should be populated if the
user was unable to close out all channels and sweep funds before partial or user was unable to close out all channels and sweep funds before partial or
@ -201,13 +197,13 @@ message UnlockWalletResponse {
} }
message ChangePasswordRequest { message ChangePasswordRequest {
/** /*
current_password should be the current valid passphrase used to unlock the current_password should be the current valid passphrase used to unlock the
daemon. When using REST, this field must be encoded as base64. daemon. When using REST, this field must be encoded as base64.
*/ */
bytes current_password = 1; bytes current_password = 1;
/** /*
new_password should be the new passphrase that will be needed to unlock the new_password should be the new passphrase that will be needed to unlock the
daemon. When using REST, this field must be encoded as base64. daemon. When using REST, this field must be encoded as base64.
*/ */

@ -17,7 +17,7 @@
"paths": { "paths": {
"/v1/changepassword": { "/v1/changepassword": {
"post": { "post": {
"summary": "* lncli: `changepassword`\nChangePassword changes the password of the encrypted wallet. This will\nautomatically unlock the wallet database if successful.", "summary": "lncli: `changepassword`\nChangePassword changes the password of the encrypted wallet. This will\nautomatically unlock the wallet database if successful.",
"operationId": "ChangePassword", "operationId": "ChangePassword",
"responses": { "responses": {
"200": { "200": {
@ -44,7 +44,7 @@
}, },
"/v1/genseed": { "/v1/genseed": {
"get": { "get": {
"summary": "*\nGenSeed is the first method that should be used to instantiate a new lnd\ninstance. This method allows a caller to generate a new aezeed cipher seed\ngiven an optional passphrase. If provided, the passphrase will be necessary\nto decrypt the cipherseed to expose the internal wallet seed.", "summary": "GenSeed is the first method that should be used to instantiate a new lnd\ninstance. This method allows a caller to generate a new aezeed cipher seed\ngiven an optional passphrase. If provided, the passphrase will be necessary\nto decrypt the cipherseed to expose the internal wallet seed.",
"description": "Once the cipherseed is obtained and verified by the user, the InitWallet\nmethod should be used to commit the newly generated seed, and create the\nwallet.", "description": "Once the cipherseed is obtained and verified by the user, the InitWallet\nmethod should be used to commit the newly generated seed, and create the\nwallet.",
"operationId": "GenSeed", "operationId": "GenSeed",
"responses": { "responses": {
@ -58,7 +58,7 @@
"parameters": [ "parameters": [
{ {
"name": "aezeed_passphrase", "name": "aezeed_passphrase",
"description": "*\naezeed_passphrase is an optional user provided passphrase that will be used\nto encrypt the generated aezeed cipher seed. When using REST, this field\nmust be encoded as base64.", "description": "aezeed_passphrase is an optional user provided passphrase that will be used\nto encrypt the generated aezeed cipher seed. When using REST, this field\nmust be encoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -66,7 +66,7 @@
}, },
{ {
"name": "seed_entropy", "name": "seed_entropy",
"description": "*\nseed_entropy is an optional 16-bytes generated via CSPRNG. If not\nspecified, then a fresh set of randomness will be used to create the seed.\nWhen using REST, this field must be encoded as base64.", "description": "seed_entropy is an optional 16-bytes generated via CSPRNG. If not\nspecified, then a fresh set of randomness will be used to create the seed.\nWhen using REST, this field must be encoded as base64.",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string", "type": "string",
@ -80,7 +80,7 @@
}, },
"/v1/initwallet": { "/v1/initwallet": {
"post": { "post": {
"summary": "*\nInitWallet is used when lnd is starting up for the first time to fully\ninitialize the daemon and its internal wallet. At the very least a wallet\npassword must be provided. This will be used to encrypt sensitive material\non disk.", "summary": "InitWallet is used when lnd is starting up for the first time to fully\ninitialize the daemon and its internal wallet. At the very least a wallet\npassword must be provided. This will be used to encrypt sensitive material\non disk.",
"description": "In the case of a recovery scenario, the user can also specify their aezeed\nmnemonic and passphrase. If set, then the daemon will use this prior state\nto initialize its internal wallet.\n\nAlternatively, this can be used along with the GenSeed RPC to obtain a\nseed, then present it to the user. Once it has been verified by the user,\nthe seed can be fed into this RPC in order to commit the new wallet.", "description": "In the case of a recovery scenario, the user can also specify their aezeed\nmnemonic and passphrase. If set, then the daemon will use this prior state\nto initialize its internal wallet.\n\nAlternatively, this can be used along with the GenSeed RPC to obtain a\nseed, then present it to the user. Once it has been verified by the user,\nthe seed can be fed into this RPC in order to commit the new wallet.",
"operationId": "InitWallet", "operationId": "InitWallet",
"responses": { "responses": {
@ -108,7 +108,7 @@
}, },
"/v1/unlockwallet": { "/v1/unlockwallet": {
"post": { "post": {
"summary": "* lncli: `unlock`\nUnlockWallet is used at startup of lnd to provide a password to unlock\nthe wallet database.", "summary": "lncli: `unlock`\nUnlockWallet is used at startup of lnd to provide a password to unlock\nthe wallet database.",
"operationId": "UnlockWallet", "operationId": "UnlockWallet",
"responses": { "responses": {
"200": { "200": {
@ -140,11 +140,11 @@
"properties": { "properties": {
"single_chan_backups": { "single_chan_backups": {
"$ref": "#/definitions/lnrpcChannelBackups", "$ref": "#/definitions/lnrpcChannelBackups",
"description": "*\nThe set of new channels that have been added since the last channel backup\nsnapshot was requested." "description": "The set of new channels that have been added since the last channel backup\nsnapshot was requested."
}, },
"multi_chan_backup": { "multi_chan_backup": {
"$ref": "#/definitions/lnrpcMultiChanBackup", "$ref": "#/definitions/lnrpcMultiChanBackup",
"description": "*\nA multi-channel backup that covers all open channels currently known to\nlnd." "description": "A multi-channel backup that covers all open channels currently known to\nlnd."
} }
} }
}, },
@ -154,12 +154,12 @@
"current_password": { "current_password": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\ncurrent_password should be the current valid passphrase used to unlock the\ndaemon. When using REST, this field must be encoded as base64." "description": "current_password should be the current valid passphrase used to unlock the\ndaemon. When using REST, this field must be encoded as base64."
}, },
"new_password": { "new_password": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nnew_password should be the new passphrase that will be needed to unlock the\ndaemon. When using REST, this field must be encoded as base64." "description": "new_password should be the new passphrase that will be needed to unlock the\ndaemon. When using REST, this field must be encoded as base64."
} }
} }
}, },
@ -171,12 +171,12 @@
"properties": { "properties": {
"chan_point": { "chan_point": {
"$ref": "#/definitions/lnrpcChannelPoint", "$ref": "#/definitions/lnrpcChannelPoint",
"description": "*\nIdentifies the channel that this backup belongs to." "description": "Identifies the channel that this backup belongs to."
}, },
"chan_backup": { "chan_backup": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nIs an encrypted single-chan backup. this can be passed to\nRestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in\norder to trigger the recovery protocol. When using REST, this field must be\nencoded as base64." "description": "Is an encrypted single-chan backup. this can be passed to\nRestoreChannelBackups, or the WalletUnlocker Init and Unlock methods in\norder to trigger the recovery protocol. When using REST, this field must be\nencoded as base64."
} }
} }
}, },
@ -188,7 +188,7 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelBackup" "$ref": "#/definitions/lnrpcChannelBackup"
}, },
"description": "*\nA set of single-chan static channel backups." "description": "A set of single-chan static channel backups."
} }
} }
}, },
@ -198,16 +198,16 @@
"funding_txid_bytes": { "funding_txid_bytes": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nTxid of the funding transaction. When using REST, this field must be\nencoded as base64." "description": "Txid of the funding transaction. When using REST, this field must be\nencoded as base64."
}, },
"funding_txid_str": { "funding_txid_str": {
"type": "string", "type": "string",
"description": "*\nHex-encoded string representing the byte-reversed hash of the funding\ntransaction." "description": "Hex-encoded string representing the byte-reversed hash of the funding\ntransaction."
}, },
"output_index": { "output_index": {
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"title": "/ The index of the output of the funding transaction" "title": "The index of the output of the funding transaction"
} }
} }
}, },
@ -219,12 +219,12 @@
"items": { "items": {
"type": "string" "type": "string"
}, },
"description": "*\ncipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed\ncipher seed obtained by the user. This field is optional, as if not\nprovided, then the daemon will generate a new cipher seed for the user.\nOtherwise, then the daemon will attempt to recover the wallet state linked\nto this cipher seed." "description": "cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed\ncipher seed obtained by the user. This field is optional, as if not\nprovided, then the daemon will generate a new cipher seed for the user.\nOtherwise, then the daemon will attempt to recover the wallet state linked\nto this cipher seed."
}, },
"enciphered_seed": { "enciphered_seed": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nenciphered_seed are the raw aezeed cipher seed bytes. This is the raw\ncipher text before run through our mnemonic encoding scheme." "description": "enciphered_seed are the raw aezeed cipher seed bytes. This is the raw\ncipher text before run through our mnemonic encoding scheme."
} }
} }
}, },
@ -234,28 +234,28 @@
"wallet_password": { "wallet_password": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nwallet_password is the passphrase that should be used to encrypt the\nwallet. This MUST be at least 8 chars in length. After creation, this\npassword is required to unlock the daemon. When using REST, this field\nmust be encoded as base64." "description": "wallet_password is the passphrase that should be used to encrypt the\nwallet. This MUST be at least 8 chars in length. After creation, this\npassword is required to unlock the daemon. When using REST, this field\nmust be encoded as base64."
}, },
"cipher_seed_mnemonic": { "cipher_seed_mnemonic": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"description": "*\ncipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed\ncipher seed obtained by the user. This may have been generated by the\nGenSeed method, or be an existing seed." "description": "cipher_seed_mnemonic is a 24-word mnemonic that encodes a prior aezeed\ncipher seed obtained by the user. This may have been generated by the\nGenSeed method, or be an existing seed."
}, },
"aezeed_passphrase": { "aezeed_passphrase": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\naezeed_passphrase is an optional user provided passphrase that will be used\nto encrypt the generated aezeed cipher seed. When using REST, this field\nmust be encoded as base64." "description": "aezeed_passphrase is an optional user provided passphrase that will be used\nto encrypt the generated aezeed cipher seed. When using REST, this field\nmust be encoded as base64."
}, },
"recovery_window": { "recovery_window": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "*\nrecovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\nindividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet." "description": "recovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\nindividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet."
}, },
"channel_backups": { "channel_backups": {
"$ref": "#/definitions/lnrpcChanBackupSnapshot", "$ref": "#/definitions/lnrpcChanBackupSnapshot",
"description": "*\nchannel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction." "description": "channel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction."
} }
} }
}, },
@ -270,12 +270,12 @@
"items": { "items": {
"$ref": "#/definitions/lnrpcChannelPoint" "$ref": "#/definitions/lnrpcChannelPoint"
}, },
"description": "*\nIs the set of all channels that are included in this multi-channel backup." "description": "Is the set of all channels that are included in this multi-channel backup."
}, },
"multi_chan_backup": { "multi_chan_backup": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nA single encrypted blob containing all the static channel backups of the\nchannel listed above. This can be stored as a single file or blob, and\nsafely be replaced with any prior/future versions. When using REST, this\nfield must be encoded as base64." "description": "A single encrypted blob containing all the static channel backups of the\nchannel listed above. This can be stored as a single file or blob, and\nsafely be replaced with any prior/future versions. When using REST, this\nfield must be encoded as base64."
} }
} }
}, },
@ -285,16 +285,16 @@
"wallet_password": { "wallet_password": {
"type": "string", "type": "string",
"format": "byte", "format": "byte",
"description": "*\nwallet_password should be the current valid passphrase for the daemon. This\nwill be required to decrypt on-disk material that the daemon requires to\nfunction properly. When using REST, this field must be encoded as base64." "description": "wallet_password should be the current valid passphrase for the daemon. This\nwill be required to decrypt on-disk material that the daemon requires to\nfunction properly. When using REST, this field must be encoded as base64."
}, },
"recovery_window": { "recovery_window": {
"type": "integer", "type": "integer",
"format": "int32", "format": "int32",
"description": "*\nrecovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\nindividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet." "description": "recovery_window is an optional argument specifying the address lookahead\nwhen restoring a wallet seed. The recovery window applies to each\nindividual branch of the BIP44 derivation paths. Supplying a recovery\nwindow of zero indicates that no addresses should be recovered, such after\nthe first initialization of the wallet."
}, },
"channel_backups": { "channel_backups": {
"$ref": "#/definitions/lnrpcChanBackupSnapshot", "$ref": "#/definitions/lnrpcChanBackupSnapshot",
"description": "*\nchannel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction." "description": "channel_backups is an optional argument that allows clients to recover the\nsettled funds within a set of channels. This should be populated if the\nuser was unable to close out all channels and sweep funds before partial or\ntotal data loss occurred. If specified, then after on-chain recovery of\nfunds, lnd begin to carry out the data loss recovery protocol in order to\nrecover the funds in each channel from a remote force closed transaction."
} }
} }
}, },

@ -54,11 +54,11 @@ func (m *GetInfoRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_GetInfoRequest proto.InternalMessageInfo var xxx_messageInfo_GetInfoRequest proto.InternalMessageInfo
type GetInfoResponse struct { type GetInfoResponse struct {
/// The public key of the watchtower. // The public key of the watchtower.
Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
/// The listening addresses of the watchtower. // The listening addresses of the watchtower.
Listeners []string `protobuf:"bytes,2,rep,name=listeners,proto3" json:"listeners,omitempty"` Listeners []string `protobuf:"bytes,2,rep,name=listeners,proto3" json:"listeners,omitempty"`
/// The URIs of the watchtower. // The URIs of the watchtower.
Uris []string `protobuf:"bytes,3,rep,name=uris,proto3" json:"uris,omitempty"` Uris []string `protobuf:"bytes,3,rep,name=uris,proto3" json:"uris,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -148,7 +148,7 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type WatchtowerClient interface { type WatchtowerClient interface {
//* lncli: tower info // lncli: tower info
//GetInfo returns general information concerning the companion watchtower //GetInfo returns general information concerning the companion watchtower
//including its public key and URIs where the server is currently //including its public key and URIs where the server is currently
//listening for clients. //listening for clients.
@ -174,7 +174,7 @@ func (c *watchtowerClient) GetInfo(ctx context.Context, in *GetInfoRequest, opts
// WatchtowerServer is the server API for Watchtower service. // WatchtowerServer is the server API for Watchtower service.
type WatchtowerServer interface { type WatchtowerServer interface {
//* lncli: tower info // lncli: tower info
//GetInfo returns general information concerning the companion watchtower //GetInfo returns general information concerning the companion watchtower
//including its public key and URIs where the server is currently //including its public key and URIs where the server is currently
//listening for clients. //listening for clients.

@ -7,7 +7,7 @@ option go_package = "github.com/lightningnetwork/lnd/lnrpc/watchtowerrpc";
// Watchtower is a service that grants access to the watchtower server // Watchtower is a service that grants access to the watchtower server
// functionality of the daemon. // functionality of the daemon.
service Watchtower { service Watchtower {
/** lncli: tower info /* lncli: tower info
GetInfo returns general information concerning the companion watchtower GetInfo returns general information concerning the companion watchtower
including its public key and URIs where the server is currently including its public key and URIs where the server is currently
listening for clients. listening for clients.
@ -19,12 +19,12 @@ message GetInfoRequest {
} }
message GetInfoResponse { message GetInfoResponse {
/// The public key of the watchtower. // The public key of the watchtower.
bytes pubkey = 1; bytes pubkey = 1;
/// The listening addresses of the watchtower. // The listening addresses of the watchtower.
repeated string listeners = 2; repeated string listeners = 2;
/// The URIs of the watchtower. // The URIs of the watchtower.
repeated string uris = 3; repeated string uris = 3;
} }