Evan Feenstra
4 years ago
13 changed files with 4781 additions and 11 deletions
File diff suppressed because one or more lines are too long
@ -1 +1 @@ |
|||
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"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"} |
|||
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"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"} |
@ -1 +1 @@ |
|||
{"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../../src/utils/unlock.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA4B;AAC5B,2CAA0C;AAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAErC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE1E,sBAAsB;AAEtB,SAAsB,cAAc;;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAA;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAM;QAEd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAG,CAAC,GAAG;YAAE,OAAM;QAEf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,wBAAY,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;CAAA;AAZD,wCAYC;AAED,SAAe,YAAY,CAAC,UAAU;;QAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA"} |
|||
{"version":3,"file":"unlock.js","sourceRoot":"","sources":["../../../src/utils/unlock.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA4B;AAC5B,2CAA0C;AAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAErC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE1E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAA;AAE1C,sBAAsB;AAEtB,SAAsB,cAAc;;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAA;QAC7B,IAAI,CAAC,CAAC;YAAE,OAAM;QAEd,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,GAAG,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAClD,IAAG,CAAC,GAAG;YAAE,OAAM;QAEf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,wBAAY,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;CAAA;AAZD,wCAYC;AAED,SAAe,YAAY,CAAC,UAAU;;QAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA"} |
@ -0,0 +1,661 @@ |
|||
syntax = "proto3"; |
|||
|
|||
import "rpc.proto"; |
|||
|
|||
package routerrpc; |
|||
|
|||
option go_package = "github.com/lightningnetwork/lnd/lnrpc/routerrpc"; |
|||
|
|||
// Router is a service that offers advanced interaction with the router |
|||
// subsystem of the daemon. |
|||
service Router { |
|||
/* |
|||
SendPaymentV2 attempts to route a payment described by the passed |
|||
PaymentRequest to the final destination. The call returns a stream of |
|||
payment updates. |
|||
*/ |
|||
rpc SendPaymentV2 (SendPaymentRequest) returns (stream lnrpc.Payment); |
|||
|
|||
/* |
|||
TrackPaymentV2 returns an update stream for the payment identified by the |
|||
payment hash. |
|||
*/ |
|||
rpc TrackPaymentV2 (TrackPaymentRequest) returns (stream lnrpc.Payment); |
|||
|
|||
/* |
|||
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. |
|||
*/ |
|||
rpc EstimateRouteFee (RouteFeeRequest) returns (RouteFeeResponse); |
|||
|
|||
/* |
|||
Deprecated, use SendToRouteV2. 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 manually. This can be used for |
|||
things like rebalancing, and atomic swaps. It differs from the newer |
|||
SendToRouteV2 in that it doesn't return the full HTLC information. |
|||
*/ |
|||
rpc SendToRoute (SendToRouteRequest) returns (SendToRouteResponse) { |
|||
option deprecated = true; |
|||
} |
|||
|
|||
/* |
|||
SendToRouteV2 attempts to make a payment via the specified route. This |
|||
method 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. |
|||
*/ |
|||
rpc SendToRouteV2 (SendToRouteRequest) returns (lnrpc.HTLCAttempt); |
|||
|
|||
/* |
|||
ResetMissionControl clears all mission control state and starts with a clean |
|||
slate. |
|||
*/ |
|||
rpc ResetMissionControl (ResetMissionControlRequest) |
|||
returns (ResetMissionControlResponse); |
|||
|
|||
/* |
|||
QueryMissionControl exposes the internal mission control state to callers. |
|||
It is a development feature. |
|||
*/ |
|||
rpc QueryMissionControl (QueryMissionControlRequest) |
|||
returns (QueryMissionControlResponse); |
|||
|
|||
/* |
|||
QueryProbability returns the current success probability estimate for a |
|||
given node pair and amount. |
|||
*/ |
|||
rpc QueryProbability (QueryProbabilityRequest) |
|||
returns (QueryProbabilityResponse); |
|||
|
|||
/* |
|||
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 |
|||
calculate the correct fees and time locks. |
|||
*/ |
|||
rpc BuildRoute (BuildRouteRequest) returns (BuildRouteResponse); |
|||
|
|||
/* |
|||
SubscribeHtlcEvents creates a uni-directional stream from the server to |
|||
the client which delivers a stream of htlc events. |
|||
*/ |
|||
rpc SubscribeHtlcEvents (SubscribeHtlcEventsRequest) |
|||
returns (stream HtlcEvent); |
|||
|
|||
/* |
|||
Deprecated, use SendPaymentV2. SendPayment attempts to route a payment |
|||
described by the passed PaymentRequest to the final destination. The call |
|||
returns a stream of payment status updates. |
|||
*/ |
|||
rpc SendPayment (SendPaymentRequest) returns (stream PaymentStatus) { |
|||
option deprecated = true; |
|||
} |
|||
|
|||
/* |
|||
Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for |
|||
the payment identified by the payment hash. |
|||
*/ |
|||
rpc TrackPayment (TrackPaymentRequest) returns (stream PaymentStatus) { |
|||
option deprecated = true; |
|||
} |
|||
|
|||
/** |
|||
HtlcInterceptor dispatches a bi-directional streaming RPC in which |
|||
Forwarded HTLC requests are sent to the client and the client responds with |
|||
a boolean that tells LND if this htlc should be intercepted. |
|||
In case of interception, the htlc can be either settled, cancelled or |
|||
resumed later by using the ResolveHoldForward endpoint. |
|||
*/ |
|||
rpc HtlcInterceptor (stream ForwardHtlcInterceptResponse) |
|||
returns (stream ForwardHtlcInterceptRequest); |
|||
} |
|||
|
|||
message SendPaymentRequest { |
|||
// The identity pubkey of the payment recipient |
|||
bytes dest = 1; |
|||
|
|||
/* |
|||
Number of satoshis to send. |
|||
|
|||
The fields amt and amt_msat are mutually exclusive. |
|||
*/ |
|||
int64 amt = 2; |
|||
|
|||
/* |
|||
Number of millisatoshis to send. |
|||
|
|||
The fields amt and amt_msat are mutually exclusive. |
|||
*/ |
|||
int64 amt_msat = 12; |
|||
|
|||
// The hash to use within the payment's HTLC |
|||
bytes payment_hash = 3; |
|||
|
|||
/* |
|||
The CLTV delta from the current height that should be used to set the |
|||
timelock for the final hop. |
|||
*/ |
|||
int32 final_cltv_delta = 4; |
|||
|
|||
/* |
|||
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. 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 |
|||
is specified, the following fields are required: dest, amt and payment_hash. |
|||
*/ |
|||
string payment_request = 5; |
|||
|
|||
/* |
|||
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 |
|||
successful payment within this time frame, an error will be returned. |
|||
This field must be non-zero. |
|||
*/ |
|||
int32 timeout_seconds = 6; |
|||
|
|||
/* |
|||
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 |
|||
be considered. This usually means single hop routes connecting directly to |
|||
the destination. To send the payment without a fee limit, use max int here. |
|||
|
|||
The fields fee_limit_sat and fee_limit_msat are mutually exclusive. |
|||
*/ |
|||
int64 fee_limit_sat = 7; |
|||
|
|||
/* |
|||
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 |
|||
routes will be considered. This usually means single hop routes connecting |
|||
directly to the destination. To send the payment without a fee limit, use |
|||
max int here. |
|||
|
|||
The fields fee_limit_sat and fee_limit_msat are mutually exclusive. |
|||
*/ |
|||
int64 fee_limit_msat = 13; |
|||
|
|||
/* |
|||
Deprecated, use outgoing_chan_ids. The channel id of the channel that must |
|||
be taken to the first hop. If zero, any channel may be used (unless |
|||
outgoing_chan_ids are set). |
|||
*/ |
|||
uint64 outgoing_chan_id = 8 [jstype = JS_STRING, deprecated = true]; |
|||
|
|||
/* |
|||
The channel ids of the channels are allowed for the first hop. If empty, |
|||
any channel may be used. |
|||
*/ |
|||
repeated uint64 outgoing_chan_ids = 19; |
|||
|
|||
/* |
|||
The pubkey of the last hop of the route. If empty, any hop may be used. |
|||
*/ |
|||
bytes last_hop_pubkey = 14; |
|||
|
|||
/* |
|||
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 |
|||
`--max-cltv-expiry` is enforced. |
|||
*/ |
|||
int32 cltv_limit = 9; |
|||
|
|||
/* |
|||
Optional route hints to reach the destination through private channels. |
|||
*/ |
|||
repeated lnrpc.RouteHint route_hints = 10; |
|||
|
|||
/* |
|||
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 |
|||
application specific data during the payment attempt. Record types are |
|||
required to be in the custom range >= 65536. When using REST, the values |
|||
must be encoded as base64. |
|||
*/ |
|||
map<uint64, bytes> dest_custom_records = 11; |
|||
|
|||
// If set, circular payments to self are permitted. |
|||
bool allow_self_payment = 15; |
|||
|
|||
/* |
|||
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 |
|||
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 |
|||
fallback. |
|||
*/ |
|||
repeated lnrpc.FeatureBit dest_features = 16; |
|||
|
|||
/* |
|||
The maximum number of partial payments that may be use to complete the full |
|||
amount. |
|||
*/ |
|||
uint32 max_parts = 17; |
|||
|
|||
/* |
|||
If set, only the final payment update is streamed back. Intermediate updates |
|||
that show which htlcs are still in flight are suppressed. |
|||
*/ |
|||
bool no_inflight_updates = 18; |
|||
} |
|||
|
|||
message TrackPaymentRequest { |
|||
// The hash of the payment to look up. |
|||
bytes payment_hash = 1; |
|||
|
|||
/* |
|||
If set, only the final payment update is streamed back. Intermediate updates |
|||
that show which htlcs are still in flight are suppressed. |
|||
*/ |
|||
bool no_inflight_updates = 2; |
|||
} |
|||
|
|||
message RouteFeeRequest { |
|||
/* |
|||
The destination once wishes to obtain a routing fee quote to. |
|||
*/ |
|||
bytes dest = 1; |
|||
|
|||
/* |
|||
The amount one wishes to send to the target destination. |
|||
*/ |
|||
int64 amt_sat = 2; |
|||
} |
|||
|
|||
message RouteFeeResponse { |
|||
/* |
|||
A lower bound of the estimated fee to the target destination within the |
|||
network, expressed in milli-satoshis. |
|||
*/ |
|||
int64 routing_fee_msat = 1; |
|||
|
|||
/* |
|||
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 |
|||
value. |
|||
*/ |
|||
int64 time_lock_delay = 2; |
|||
} |
|||
|
|||
message SendToRouteRequest { |
|||
// The payment hash to use for the HTLC. |
|||
bytes payment_hash = 1; |
|||
|
|||
// Route that should be used to attempt to complete the payment. |
|||
lnrpc.Route route = 2; |
|||
} |
|||
|
|||
message SendToRouteResponse { |
|||
// The preimage obtained by making the payment. |
|||
bytes preimage = 1; |
|||
|
|||
// The failure message in case the payment failed. |
|||
lnrpc.Failure failure = 2; |
|||
} |
|||
|
|||
message ResetMissionControlRequest { |
|||
} |
|||
|
|||
message ResetMissionControlResponse { |
|||
} |
|||
|
|||
message QueryMissionControlRequest { |
|||
} |
|||
|
|||
// QueryMissionControlResponse contains mission control state. |
|||
message QueryMissionControlResponse { |
|||
reserved 1; |
|||
|
|||
// Node pair-level mission control state. |
|||
repeated PairHistory pairs = 2; |
|||
} |
|||
|
|||
// PairHistory contains the mission control state for a particular node pair. |
|||
message PairHistory { |
|||
// The source node pubkey of the pair. |
|||
bytes node_from = 1; |
|||
|
|||
// The destination node pubkey of the pair. |
|||
bytes node_to = 2; |
|||
|
|||
reserved 3, 4, 5, 6; |
|||
|
|||
PairData history = 7; |
|||
} |
|||
|
|||
message PairData { |
|||
// Time of last failure. |
|||
int64 fail_time = 1; |
|||
|
|||
/* |
|||
Lowest amount that failed to forward rounded to whole sats. This may be |
|||
set to zero if the failure is independent of amount. |
|||
*/ |
|||
int64 fail_amt_sat = 2; |
|||
|
|||
/* |
|||
Lowest amount that failed to forward in millisats. This may be |
|||
set to zero if the failure is independent of amount. |
|||
*/ |
|||
int64 fail_amt_msat = 4; |
|||
|
|||
reserved 3; |
|||
|
|||
// Time of last success. |
|||
int64 success_time = 5; |
|||
|
|||
// Highest amount that we could successfully forward rounded to whole sats. |
|||
int64 success_amt_sat = 6; |
|||
|
|||
// Highest amount that we could successfully forward in millisats. |
|||
int64 success_amt_msat = 7; |
|||
} |
|||
|
|||
message QueryProbabilityRequest { |
|||
// The source node pubkey of the pair. |
|||
bytes from_node = 1; |
|||
|
|||
// The destination node pubkey of the pair. |
|||
bytes to_node = 2; |
|||
|
|||
// The amount for which to calculate a probability. |
|||
int64 amt_msat = 3; |
|||
} |
|||
|
|||
message QueryProbabilityResponse { |
|||
// The success probability for the requested pair. |
|||
double probability = 1; |
|||
|
|||
// The historical data for the requested pair. |
|||
PairData history = 2; |
|||
} |
|||
|
|||
message BuildRouteRequest { |
|||
/* |
|||
The amount to send expressed in msat. If set to zero, the minimum routable |
|||
amount is used. |
|||
*/ |
|||
int64 amt_msat = 1; |
|||
|
|||
/* |
|||
CLTV delta from the current height that should be used for the timelock |
|||
of the final hop |
|||
*/ |
|||
int32 final_cltv_delta = 2; |
|||
|
|||
/* |
|||
The channel id of the channel that must be taken to the first hop. If zero, |
|||
any channel may be used. |
|||
*/ |
|||
uint64 outgoing_chan_id = 3 [jstype = JS_STRING]; |
|||
|
|||
/* |
|||
A list of hops that defines the route. This does not include the source hop |
|||
pubkey. |
|||
*/ |
|||
repeated bytes hop_pubkeys = 4; |
|||
} |
|||
|
|||
message BuildRouteResponse { |
|||
/* |
|||
Fully specified route that can be used to execute the payment. |
|||
*/ |
|||
lnrpc.Route route = 1; |
|||
} |
|||
|
|||
message SubscribeHtlcEventsRequest { |
|||
} |
|||
|
|||
/* |
|||
HtlcEvent contains the htlc event that was processed. These are served on a |
|||
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 |
|||
some events may be replayed upon restart. Events consumed from this package |
|||
should be de-duplicated by the htlc's unique combination of incoming and |
|||
outgoing channel id and htlc id. [EXPERIMENTAL] |
|||
*/ |
|||
message HtlcEvent { |
|||
/* |
|||
The short channel id that the incoming htlc arrived at our node on. This |
|||
value is zero for sends. |
|||
*/ |
|||
uint64 incoming_channel_id = 1; |
|||
|
|||
/* |
|||
The short channel id that the outgoing htlc left our node on. This value |
|||
is zero for receives. |
|||
*/ |
|||
uint64 outgoing_channel_id = 2; |
|||
|
|||
/* |
|||
Incoming id is the index of the incoming htlc in the incoming channel. |
|||
This value is zero for sends. |
|||
*/ |
|||
uint64 incoming_htlc_id = 3; |
|||
|
|||
/* |
|||
Outgoing id is the index of the outgoing htlc in the outgoing channel. |
|||
This value is zero for receives. |
|||
*/ |
|||
uint64 outgoing_htlc_id = 4; |
|||
|
|||
/* |
|||
The time in unix nanoseconds that the event occurred. |
|||
*/ |
|||
uint64 timestamp_ns = 5; |
|||
|
|||
enum EventType { |
|||
UNKNOWN = 0; |
|||
SEND = 1; |
|||
RECEIVE = 2; |
|||
FORWARD = 3; |
|||
} |
|||
|
|||
/* |
|||
The event type indicates whether the htlc was part of a send, receive or |
|||
forward. |
|||
*/ |
|||
EventType event_type = 6; |
|||
|
|||
oneof event { |
|||
ForwardEvent forward_event = 7; |
|||
ForwardFailEvent forward_fail_event = 8; |
|||
SettleEvent settle_event = 9; |
|||
LinkFailEvent link_fail_event = 10; |
|||
} |
|||
} |
|||
|
|||
message HtlcInfo { |
|||
// The timelock on the incoming htlc. |
|||
uint32 incoming_timelock = 1; |
|||
|
|||
// The timelock on the outgoing htlc. |
|||
uint32 outgoing_timelock = 2; |
|||
|
|||
// The amount of the incoming htlc. |
|||
uint64 incoming_amt_msat = 3; |
|||
|
|||
// The amount of the outgoing htlc. |
|||
uint64 outgoing_amt_msat = 4; |
|||
} |
|||
|
|||
message ForwardEvent { |
|||
// Info contains details about the htlc that was forwarded. |
|||
HtlcInfo info = 1; |
|||
} |
|||
|
|||
message ForwardFailEvent { |
|||
} |
|||
|
|||
message SettleEvent { |
|||
} |
|||
|
|||
message LinkFailEvent { |
|||
// Info contains details about the htlc that we failed. |
|||
HtlcInfo info = 1; |
|||
|
|||
// FailureCode is the BOLT error code for the failure. |
|||
lnrpc.Failure.FailureCode wire_failure = 2; |
|||
|
|||
/* |
|||
FailureDetail provides additional information about the reason for the |
|||
failure. This detail enriches the information provided by the wire message |
|||
and may be 'no detail' if the wire message requires no additional metadata. |
|||
*/ |
|||
FailureDetail failure_detail = 3; |
|||
|
|||
// A string representation of the link failure. |
|||
string failure_string = 4; |
|||
} |
|||
|
|||
enum FailureDetail { |
|||
UNKNOWN = 0; |
|||
NO_DETAIL = 1; |
|||
ONION_DECODE = 2; |
|||
LINK_NOT_ELIGIBLE = 3; |
|||
ON_CHAIN_TIMEOUT = 4; |
|||
HTLC_EXCEEDS_MAX = 5; |
|||
INSUFFICIENT_BALANCE = 6; |
|||
INCOMPLETE_FORWARD = 7; |
|||
HTLC_ADD_FAILED = 8; |
|||
FORWARDS_DISABLED = 9; |
|||
INVOICE_CANCELED = 10; |
|||
INVOICE_UNDERPAID = 11; |
|||
INVOICE_EXPIRY_TOO_SOON = 12; |
|||
INVOICE_NOT_OPEN = 13; |
|||
MPP_INVOICE_TIMEOUT = 14; |
|||
ADDRESS_MISMATCH = 15; |
|||
SET_TOTAL_MISMATCH = 16; |
|||
SET_TOTAL_TOO_LOW = 17; |
|||
SET_OVERPAID = 18; |
|||
UNKNOWN_INVOICE = 19; |
|||
INVALID_KEYSEND = 20; |
|||
MPP_IN_PROGRESS = 21; |
|||
CIRCULAR_ROUTE = 22; |
|||
} |
|||
|
|||
enum PaymentState { |
|||
/* |
|||
Payment is still in flight. |
|||
*/ |
|||
IN_FLIGHT = 0; |
|||
|
|||
/* |
|||
Payment completed successfully. |
|||
*/ |
|||
SUCCEEDED = 1; |
|||
|
|||
/* |
|||
There are more routes to try, but the payment timeout was exceeded. |
|||
*/ |
|||
FAILED_TIMEOUT = 2; |
|||
|
|||
/* |
|||
All possible routes were tried and failed permanently. Or were no |
|||
routes to the destination at all. |
|||
*/ |
|||
FAILED_NO_ROUTE = 3; |
|||
|
|||
/* |
|||
A non-recoverable error has occured. |
|||
*/ |
|||
FAILED_ERROR = 4; |
|||
|
|||
/* |
|||
Payment details incorrect (unknown hash, invalid amt or |
|||
invalid final cltv delta) |
|||
*/ |
|||
FAILED_INCORRECT_PAYMENT_DETAILS = 5; |
|||
|
|||
/* |
|||
Insufficient local balance. |
|||
*/ |
|||
FAILED_INSUFFICIENT_BALANCE = 6; |
|||
} |
|||
|
|||
message PaymentStatus { |
|||
// Current state the payment is in. |
|||
PaymentState state = 1; |
|||
|
|||
/* |
|||
The pre-image of the payment when state is SUCCEEDED. |
|||
*/ |
|||
bytes preimage = 2; |
|||
|
|||
reserved 3; |
|||
|
|||
/* |
|||
The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. |
|||
*/ |
|||
repeated lnrpc.HTLCAttempt htlcs = 4; |
|||
} |
|||
|
|||
message CircuitKey { |
|||
/// The id of the channel that the is part of this circuit. |
|||
uint64 chan_id = 1; |
|||
|
|||
/// The index of the incoming htlc in the incoming channel. |
|||
uint64 htlc_id = 2; |
|||
} |
|||
|
|||
message ForwardHtlcInterceptRequest { |
|||
/* |
|||
The key of this forwarded htlc. It defines the incoming channel id and |
|||
the index in this channel. |
|||
*/ |
|||
CircuitKey incoming_circuit_key = 1; |
|||
|
|||
// The incoming htlc amount. |
|||
uint64 incoming_amount_msat = 5; |
|||
|
|||
// The incoming htlc expiry. |
|||
uint32 incoming_expiry = 6; |
|||
|
|||
/* |
|||
The htlc payment hash. This value is not guaranteed to be unique per |
|||
request. |
|||
*/ |
|||
bytes payment_hash = 2; |
|||
|
|||
// The requested outgoing channel id for this forwarded htlc. Because of |
|||
// non-strict forwarding, this isn't necessarily the channel over which the |
|||
// packet will be forwarded eventually. A different channel to the same peer |
|||
// may be selected as well. |
|||
uint64 outgoing_requested_chan_id = 7; |
|||
|
|||
// The outgoing htlc amount. |
|||
uint64 outgoing_amount_msat = 3; |
|||
|
|||
// The outgoing htlc expiry. |
|||
uint32 outgoing_expiry = 4; |
|||
|
|||
// Any custom records that were present in the payload. |
|||
map<uint64, bytes> custom_records = 8; |
|||
} |
|||
|
|||
/** |
|||
ForwardHtlcInterceptResponse enables the caller to resolve a previously hold |
|||
forward. The caller can choose either to: |
|||
- `Resume`: Execute the default behavior (usually forward). |
|||
- `Reject`: Fail the htlc backwards. |
|||
- `Settle`: Settle this htlc with a given preimage. |
|||
*/ |
|||
message ForwardHtlcInterceptResponse { |
|||
/** |
|||
The key of this forwarded htlc. It defines the incoming channel id and |
|||
the index in this channel. |
|||
*/ |
|||
CircuitKey incoming_circuit_key = 1; |
|||
|
|||
// The resolve action for this intercepted htlc. |
|||
ResolveHoldForwardAction action = 2; |
|||
|
|||
// The preimage in case the resolve action is Settle. |
|||
bytes preimage = 3; |
|||
} |
|||
|
|||
enum ResolveHoldForwardAction { |
|||
SETTLE = 0; |
|||
FAIL = 1; |
|||
RESUME = 2; |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,228 @@ |
|||
syntax = "proto3"; |
|||
|
|||
package signrpc; |
|||
|
|||
option go_package = "github.com/lightningnetwork/lnd/lnrpc/signrpc"; |
|||
|
|||
// Signer is a service that gives access to the signing functionality of the |
|||
// daemon's wallet. |
|||
service Signer { |
|||
/* |
|||
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 |
|||
concerning how the outputs should be signed, which keys they should be |
|||
signed with, and also any optional tweaks. The return value is a fixed |
|||
64-byte signature (the same format as we use on the wire in Lightning). |
|||
|
|||
If we are unable to sign using the specified keys, then an error will be |
|||
returned. |
|||
*/ |
|||
rpc SignOutputRaw (SignReq) returns (SignResp); |
|||
|
|||
/* |
|||
ComputeInputScript generates a complete InputIndex for the passed |
|||
transaction with the signature as defined within the passed SignDescriptor. |
|||
This method should be capable of generating the proper input script for |
|||
both regular p2wkh output and p2wkh outputs nested within a regular p2sh |
|||
output. |
|||
|
|||
Note that when using this method to sign inputs belonging to the wallet, |
|||
the only items of the SignDescriptor that need to be populated are pkScript |
|||
in the TxOut field, the value in that same field, and finally the input |
|||
index. |
|||
*/ |
|||
rpc ComputeInputScript (SignReq) returns (InputScriptResp); |
|||
|
|||
/* |
|||
SignMessage signs a message with the key specified in the key locator. The |
|||
returned signature is fixed-size LN wire format encoded. |
|||
|
|||
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. |
|||
*/ |
|||
rpc SignMessage (SignMessageReq) returns (SignMessageResp); |
|||
|
|||
/* |
|||
VerifyMessage verifies a signature over a message using the public key |
|||
provided. The signature must be fixed-size LN wire format encoded. |
|||
|
|||
The main difference to VerifyMessage in the main RPC is that the public key |
|||
used to sign the message does not have to be a node known to the network. |
|||
*/ |
|||
rpc VerifyMessage (VerifyMessageReq) returns (VerifyMessageResp); |
|||
|
|||
/* |
|||
DeriveSharedKey returns a shared secret key by performing Diffie-Hellman key |
|||
derivation between the ephemeral public key in the request and the node's |
|||
key specified in the key_loc parameter (or the node's identity private key |
|||
if no key locator is specified): |
|||
P_shared = privKeyNode * ephemeralPubkey |
|||
The resulting shared public key is serialized in the compressed format and |
|||
hashed with sha256, resulting in the final key length of 256bit. |
|||
*/ |
|||
rpc DeriveSharedKey (SharedKeyRequest) returns (SharedKeyResponse); |
|||
} |
|||
|
|||
message KeyLocator { |
|||
// The family of key being identified. |
|||
int32 key_family = 1; |
|||
|
|||
// The precise index of the key being identified. |
|||
int32 key_index = 2; |
|||
} |
|||
|
|||
message KeyDescriptor { |
|||
/* |
|||
The raw bytes of the key being identified. Either this or the KeyLocator |
|||
must be specified. |
|||
*/ |
|||
bytes raw_key_bytes = 1; |
|||
|
|||
/* |
|||
The key locator that identifies which key to use for signing. Either this |
|||
or the raw bytes of the target key must be specified. |
|||
*/ |
|||
KeyLocator key_loc = 2; |
|||
} |
|||
|
|||
message TxOut { |
|||
// The value of the output being spent. |
|||
int64 value = 1; |
|||
|
|||
// The script of the output being spent. |
|||
bytes pk_script = 2; |
|||
} |
|||
|
|||
message SignDescriptor { |
|||
/* |
|||
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 |
|||
the key according to the populated derivation path. |
|||
*/ |
|||
KeyDescriptor key_desc = 1; |
|||
|
|||
/* |
|||
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. |
|||
This value is typically derived via the following computation: |
|||
|
|||
* derivedKey = privkey + sha256(perCommitmentPoint || pubKey) mod N |
|||
*/ |
|||
bytes single_tweak = 2; |
|||
|
|||
/* |
|||
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 |
|||
input. Within the Lightning protocol, this value is typically the |
|||
commitment secret from a previously revoked commitment transaction. This |
|||
value is in combination with two hash values, and the original private key |
|||
to derive the private key to be used when signing. |
|||
|
|||
* k = (privKey*sha256(pubKey || tweakPub) + |
|||
tweakPriv*sha256(tweakPub || pubKey)) mod N |
|||
*/ |
|||
bytes double_tweak = 3; |
|||
|
|||
/* |
|||
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. |
|||
*/ |
|||
bytes witness_script = 4; |
|||
|
|||
/* |
|||
A description of the output being spent. The value and script MUST be |
|||
provided. |
|||
*/ |
|||
TxOut output = 5; |
|||
|
|||
/* |
|||
The target sighash type that should be used when generating the final |
|||
sighash, and signature. |
|||
*/ |
|||
uint32 sighash = 7; |
|||
|
|||
/* |
|||
The target input within the transaction that should be signed. |
|||
*/ |
|||
int32 input_index = 8; |
|||
} |
|||
|
|||
message SignReq { |
|||
// The raw bytes of the transaction to be signed. |
|||
bytes raw_tx_bytes = 1; |
|||
|
|||
// A set of sign descriptors, for each input to be signed. |
|||
repeated SignDescriptor sign_descs = 2; |
|||
} |
|||
|
|||
message SignResp { |
|||
/* |
|||
A set of signatures realized in a fixed 64-byte format ordered in ascending |
|||
input order. |
|||
*/ |
|||
repeated bytes raw_sigs = 1; |
|||
} |
|||
|
|||
message InputScript { |
|||
// The serializes witness stack for the specified input. |
|||
repeated bytes witness = 1; |
|||
|
|||
/* |
|||
The optional sig script for the specified witness that will only be set if |
|||
the input specified is a nested p2sh witness program. |
|||
*/ |
|||
bytes sig_script = 2; |
|||
} |
|||
|
|||
message InputScriptResp { |
|||
// The set of fully valid input scripts requested. |
|||
repeated InputScript input_scripts = 1; |
|||
} |
|||
|
|||
message SignMessageReq { |
|||
// The message to be signed. |
|||
bytes msg = 1; |
|||
|
|||
// The key locator that identifies which key to use for signing. |
|||
KeyLocator key_loc = 2; |
|||
} |
|||
message SignMessageResp { |
|||
/* |
|||
The signature for the given message in the fixed-size LN wire format. |
|||
*/ |
|||
bytes signature = 1; |
|||
} |
|||
|
|||
message VerifyMessageReq { |
|||
// The message over which the signature is to be verified. |
|||
bytes msg = 1; |
|||
|
|||
/* |
|||
The fixed-size LN wire encoded signature to be verified over the given |
|||
message. |
|||
*/ |
|||
bytes signature = 2; |
|||
|
|||
// The public key the signature has to be valid for. |
|||
bytes pubkey = 3; |
|||
} |
|||
message VerifyMessageResp { |
|||
// Whether the signature was valid over the given message. |
|||
bool valid = 1; |
|||
} |
|||
|
|||
message SharedKeyRequest { |
|||
// The ephemeral public key to use for the DH key derivation. |
|||
bytes ephemeral_pubkey = 1; |
|||
|
|||
/* |
|||
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. |
|||
*/ |
|||
KeyLocator key_loc = 2; |
|||
} |
|||
|
|||
message SharedKeyResponse { |
|||
// The shared public key, hashed with sha256. |
|||
bytes shared_key = 1; |
|||
} |
@ -0,0 +1,238 @@ |
|||
syntax = "proto3"; |
|||
|
|||
import "rpc.proto"; |
|||
|
|||
package lnrpc; |
|||
|
|||
option go_package = "github.com/lightningnetwork/lnd/lnrpc"; |
|||
|
|||
/* |
|||
* Comments in this file will be directly parsed into the API |
|||
* Documentation as descriptions of the associated method, message, or field. |
|||
* These descriptions should go right above the definition of the object, and |
|||
* can be in either block or // comment format. |
|||
* |
|||
* 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: |
|||
* lncli: `methodname` |
|||
* |
|||
* Failure to specify the exact name of the command will cause documentation |
|||
* generation to fail. |
|||
* |
|||
* More information on how exactly the gRPC documentation is generated from |
|||
* this proto file can be found here: |
|||
* https://github.com/lightninglabs/lightning-api |
|||
*/ |
|||
|
|||
// 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. |
|||
service WalletUnlocker { |
|||
/* |
|||
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 |
|||
given an optional passphrase. If provided, the passphrase will be necessary |
|||
to decrypt the cipherseed to expose the internal wallet seed. |
|||
|
|||
Once the cipherseed is obtained and verified by the user, the InitWallet |
|||
method should be used to commit the newly generated seed, and create the |
|||
wallet. |
|||
*/ |
|||
rpc GenSeed (GenSeedRequest) returns (GenSeedResponse); |
|||
|
|||
/* |
|||
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 |
|||
password must be provided. This will be used to encrypt sensitive material |
|||
on disk. |
|||
|
|||
In the case of a recovery scenario, the user can also specify their aezeed |
|||
mnemonic and passphrase. If set, then the daemon will use this prior state |
|||
to initialize its internal wallet. |
|||
|
|||
Alternatively, this can be used along with the GenSeed RPC to obtain a |
|||
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. |
|||
*/ |
|||
rpc InitWallet (InitWalletRequest) returns (InitWalletResponse); |
|||
|
|||
/* lncli: `unlock` |
|||
UnlockWallet is used at startup of lnd to provide a password to unlock |
|||
the wallet database. |
|||
*/ |
|||
rpc UnlockWallet (UnlockWalletRequest) returns (UnlockWalletResponse); |
|||
|
|||
/* lncli: `changepassword` |
|||
ChangePassword changes the password of the encrypted wallet. This will |
|||
automatically unlock the wallet database if successful. |
|||
*/ |
|||
rpc ChangePassword (ChangePasswordRequest) returns (ChangePasswordResponse); |
|||
} |
|||
|
|||
message GenSeedRequest { |
|||
/* |
|||
aezeed_passphrase is an optional user provided passphrase that will be used |
|||
to encrypt the generated aezeed cipher seed. When using REST, this field |
|||
must be encoded as base64. |
|||
*/ |
|||
bytes aezeed_passphrase = 1; |
|||
|
|||
/* |
|||
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. |
|||
When using REST, this field must be encoded as base64. |
|||
*/ |
|||
bytes seed_entropy = 2; |
|||
} |
|||
message GenSeedResponse { |
|||
/* |
|||
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 |
|||
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 |
|||
to this cipher seed. |
|||
*/ |
|||
repeated string cipher_seed_mnemonic = 1; |
|||
|
|||
/* |
|||
enciphered_seed are the raw aezeed cipher seed bytes. This is the raw |
|||
cipher text before run through our mnemonic encoding scheme. |
|||
*/ |
|||
bytes enciphered_seed = 2; |
|||
} |
|||
|
|||
message InitWalletRequest { |
|||
/* |
|||
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 |
|||
password is required to unlock the daemon. When using REST, this field |
|||
must be encoded as base64. |
|||
*/ |
|||
bytes wallet_password = 1; |
|||
|
|||
/* |
|||
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 |
|||
GenSeed method, or be an existing seed. |
|||
*/ |
|||
repeated string cipher_seed_mnemonic = 2; |
|||
|
|||
/* |
|||
aezeed_passphrase is an optional user provided passphrase that will be used |
|||
to encrypt the generated aezeed cipher seed. When using REST, this field |
|||
must be encoded as base64. |
|||
*/ |
|||
bytes aezeed_passphrase = 3; |
|||
|
|||
/* |
|||
recovery_window is an optional argument specifying the address lookahead |
|||
when restoring a wallet seed. The recovery window applies to each |
|||
individual branch of the BIP44 derivation paths. Supplying a recovery |
|||
window of zero indicates that no addresses should be recovered, such after |
|||
the first initialization of the wallet. |
|||
*/ |
|||
int32 recovery_window = 4; |
|||
|
|||
/* |
|||
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 |
|||
user was unable to close out all channels and sweep funds before partial or |
|||
total data loss occurred. If specified, then after on-chain recovery of |
|||
funds, lnd begin to carry out the data loss recovery protocol in order to |
|||
recover the funds in each channel from a remote force closed transaction. |
|||
*/ |
|||
ChanBackupSnapshot channel_backups = 5; |
|||
|
|||
/* |
|||
stateless_init is an optional argument instructing the daemon NOT to create |
|||
any *.macaroon files in its filesystem. If this parameter is set, then the |
|||
admin macaroon returned in the response MUST be stored by the caller of the |
|||
RPC as otherwise all access to the daemon will be lost! |
|||
*/ |
|||
bool stateless_init = 6; |
|||
} |
|||
message InitWalletResponse { |
|||
/* |
|||
The binary serialized admin macaroon that can be used to access the daemon |
|||
after creating the wallet. If the stateless_init parameter was set to true, |
|||
this is the ONLY copy of the macaroon and MUST be stored safely by the |
|||
caller. Otherwise a copy of this macaroon is also persisted on disk by the |
|||
daemon, together with other macaroon files. |
|||
*/ |
|||
bytes admin_macaroon = 1; |
|||
} |
|||
|
|||
message UnlockWalletRequest { |
|||
/* |
|||
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 |
|||
function properly. When using REST, this field must be encoded as base64. |
|||
*/ |
|||
bytes wallet_password = 1; |
|||
|
|||
/* |
|||
recovery_window is an optional argument specifying the address lookahead |
|||
when restoring a wallet seed. The recovery window applies to each |
|||
individual branch of the BIP44 derivation paths. Supplying a recovery |
|||
window of zero indicates that no addresses should be recovered, such after |
|||
the first initialization of the wallet. |
|||
*/ |
|||
int32 recovery_window = 2; |
|||
|
|||
/* |
|||
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 |
|||
user was unable to close out all channels and sweep funds before partial or |
|||
total data loss occurred. If specified, then after on-chain recovery of |
|||
funds, lnd begin to carry out the data loss recovery protocol in order to |
|||
recover the funds in each channel from a remote force closed transaction. |
|||
*/ |
|||
ChanBackupSnapshot channel_backups = 3; |
|||
|
|||
/* |
|||
stateless_init is an optional argument instructing the daemon NOT to create |
|||
any *.macaroon files in its file system. |
|||
*/ |
|||
bool stateless_init = 4; |
|||
} |
|||
message UnlockWalletResponse { |
|||
} |
|||
|
|||
message ChangePasswordRequest { |
|||
/* |
|||
current_password should be the current valid passphrase used to unlock the |
|||
daemon. When using REST, this field must be encoded as base64. |
|||
*/ |
|||
bytes current_password = 1; |
|||
|
|||
/* |
|||
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. |
|||
*/ |
|||
bytes new_password = 2; |
|||
|
|||
/* |
|||
stateless_init is an optional argument instructing the daemon NOT to create |
|||
any *.macaroon files in its filesystem. If this parameter is set, then the |
|||
admin macaroon returned in the response MUST be stored by the caller of the |
|||
RPC as otherwise all access to the daemon will be lost! |
|||
*/ |
|||
bool stateless_init = 3; |
|||
|
|||
/* |
|||
new_macaroon_root_key is an optional argument instructing the daemon to |
|||
rotate the macaroon root key when set to true. This will invalidate all |
|||
previously generated macaroons. |
|||
*/ |
|||
bool new_macaroon_root_key = 4; |
|||
} |
|||
message ChangePasswordResponse { |
|||
/* |
|||
The binary serialized admin macaroon that can be used to access the daemon |
|||
after rotating the macaroon root key. If both the stateless_init and |
|||
new_macaroon_root_key parameter were set to true, this is the ONLY copy of |
|||
the macaroon that was created from the new root key and MUST be stored |
|||
safely by the caller. Otherwise a copy of this macaroon is also persisted on |
|||
disk by the daemon, together with other macaroon files. |
|||
*/ |
|||
bytes admin_macaroon = 1; |
|||
} |
Loading…
Reference in new issue