You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.8 KiB
137 lines
3.8 KiB
syntax = "proto3"; |
|
|
|
import "rpc.proto"; |
|
|
|
package invoicesrpc; |
|
|
|
option go_package = "github.com/lightningnetwork/lnd/lnrpc/invoicesrpc"; |
|
|
|
// Invoices is a service that can be used to create, accept, settle and cancel |
|
// invoices. |
|
service Invoices { |
|
/* |
|
SubscribeSingleInvoice returns a uni-directional stream (server -> client) |
|
to notify the client of state transitions of the specified invoice. |
|
Initially the current invoice state is always sent out. |
|
*/ |
|
rpc SubscribeSingleInvoice (SubscribeSingleInvoiceRequest) |
|
returns (stream lnrpc.Invoice); |
|
|
|
/* |
|
CancelInvoice cancels a currently open invoice. If the invoice is already |
|
canceled, this call will succeed. If the invoice is already settled, it will |
|
fail. |
|
*/ |
|
rpc CancelInvoice (CancelInvoiceMsg) returns (CancelInvoiceResp); |
|
|
|
/* |
|
AddHoldInvoice creates a hold invoice. It ties the invoice to the hash |
|
supplied in the request. |
|
*/ |
|
rpc AddHoldInvoice (AddHoldInvoiceRequest) returns (AddHoldInvoiceResp); |
|
|
|
/* |
|
SettleInvoice settles an accepted invoice. If the invoice is already |
|
settled, this call will succeed. |
|
*/ |
|
rpc SettleInvoice (SettleInvoiceMsg) returns (SettleInvoiceResp); |
|
} |
|
|
|
message CancelInvoiceMsg { |
|
// Hash corresponding to the (hold) invoice to cancel. |
|
bytes payment_hash = 1; |
|
} |
|
message CancelInvoiceResp { |
|
} |
|
|
|
message AddHoldInvoiceRequest { |
|
/* |
|
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 |
|
field of the encoded payment request if the description_hash field is not |
|
being used. |
|
*/ |
|
string memo = 1; |
|
|
|
// The hash of the preimage |
|
bytes hash = 2; |
|
|
|
/* |
|
The value of this invoice in satoshis |
|
|
|
The fields value and value_msat are mutually exclusive. |
|
*/ |
|
int64 value = 3; |
|
|
|
/* |
|
The value of this invoice in millisatoshis |
|
|
|
The fields value and value_msat are mutually exclusive. |
|
*/ |
|
int64 value_msat = 10; |
|
|
|
/* |
|
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 |
|
of an encoded payment request. |
|
*/ |
|
bytes description_hash = 4; |
|
|
|
// Payment request expiry time in seconds. Default is 3600 (1 hour). |
|
int64 expiry = 5; |
|
|
|
// Fallback on-chain address. |
|
string fallback_addr = 6; |
|
|
|
// Delta to use for the time-lock of the CLTV extended to the final hop. |
|
uint64 cltv_expiry = 7; |
|
|
|
/* |
|
Route hints that can each be individually used to assist in reaching the |
|
invoice's destination. |
|
*/ |
|
repeated lnrpc.RouteHint route_hints = 8; |
|
|
|
// Whether this invoice should include routing hints for private channels. |
|
bool private = 9; |
|
} |
|
|
|
message AddHoldInvoiceResp { |
|
/* |
|
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 |
|
payment to the recipient. |
|
*/ |
|
string payment_request = 1; |
|
|
|
/* |
|
The "add" index of this invoice. Each newly created invoice will increment |
|
this index making it monotonically increasing. Callers to the |
|
SubscribeInvoices call can use this to instantly get notified of all added |
|
invoices with an add_index greater than this one. |
|
*/ |
|
uint64 add_index = 2; |
|
|
|
/* |
|
The payment address of the generated invoice. This value should be used |
|
in all payments for this invoice as we require it for end to end |
|
security. |
|
*/ |
|
bytes payment_addr = 3; |
|
} |
|
|
|
message SettleInvoiceMsg { |
|
// Externally discovered pre-image that should be used to settle the hold |
|
// invoice. |
|
bytes preimage = 1; |
|
} |
|
|
|
message SettleInvoiceResp { |
|
} |
|
|
|
message SubscribeSingleInvoiceRequest { |
|
reserved 1; |
|
|
|
// Hash corresponding to the (hold) invoice to subscribe to. |
|
bytes r_hash = 2; |
|
}
|
|
|