Merge branch 'master' into update/ed-client-up
This commit is contained in:
commit
b23b055c39
9 changed files with 12552 additions and 2855 deletions
|
|
@ -40,9 +40,10 @@ service Router {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SendToRouteV2 attempts to make a payment via the specified route. This method
|
SendToRouteV2 attempts to make a payment via the specified route. This
|
||||||
differs from SendPayment in that it allows users to specify a full route
|
method differs from SendPayment in that it allows users to specify a full
|
||||||
manually. This can be used for things like rebalancing, and atomic swaps.
|
route manually. This can be used for things like rebalancing, and atomic
|
||||||
|
swaps.
|
||||||
*/
|
*/
|
||||||
rpc SendToRouteV2 (SendToRouteRequest) returns (lnrpc.HTLCAttempt);
|
rpc SendToRouteV2 (SendToRouteRequest) returns (lnrpc.HTLCAttempt);
|
||||||
|
|
||||||
|
|
@ -60,6 +61,28 @@ service Router {
|
||||||
rpc QueryMissionControl (QueryMissionControlRequest)
|
rpc QueryMissionControl (QueryMissionControlRequest)
|
||||||
returns (QueryMissionControlResponse);
|
returns (QueryMissionControlResponse);
|
||||||
|
|
||||||
|
/*
|
||||||
|
XImportMissionControl is an experimental API that imports the state provided
|
||||||
|
to the internal mission control's state, using all results which are more
|
||||||
|
recent than our existing values. These values will only be imported
|
||||||
|
in-memory, and will not be persisted across restarts.
|
||||||
|
*/
|
||||||
|
rpc XImportMissionControl (XImportMissionControlRequest)
|
||||||
|
returns (XImportMissionControlResponse);
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetMissionControlConfig returns mission control's current config.
|
||||||
|
*/
|
||||||
|
rpc GetMissionControlConfig (GetMissionControlConfigRequest)
|
||||||
|
returns (GetMissionControlConfigResponse);
|
||||||
|
|
||||||
|
/*
|
||||||
|
SetMissionControlConfig will set mission control's config, if the config
|
||||||
|
provided is valid.
|
||||||
|
*/
|
||||||
|
rpc SetMissionControlConfig (SetMissionControlConfigRequest)
|
||||||
|
returns (SetMissionControlConfigResponse);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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.
|
||||||
|
|
@ -82,7 +105,7 @@ service Router {
|
||||||
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.
|
||||||
*/
|
*/
|
||||||
|
|
@ -97,6 +120,25 @@ service Router {
|
||||||
rpc TrackPayment (TrackPaymentRequest) returns (stream PaymentStatus) {
|
rpc TrackPayment (TrackPaymentRequest) returns (stream PaymentStatus) {
|
||||||
option deprecated = true;
|
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);
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateChanStatus attempts to manually set the state of a channel
|
||||||
|
(enabled, disabled, or auto). A manual "disable" request will cause the
|
||||||
|
channel to stay disabled until a subsequent manual request of either
|
||||||
|
"enable" or "auto".
|
||||||
|
*/
|
||||||
|
rpc UpdateChanStatus (UpdateChanStatusRequest)
|
||||||
|
returns (UpdateChanStatusResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message SendPaymentRequest {
|
message SendPaymentRequest {
|
||||||
|
|
@ -126,6 +168,9 @@ message SendPaymentRequest {
|
||||||
*/
|
*/
|
||||||
int32 final_cltv_delta = 4;
|
int32 final_cltv_delta = 4;
|
||||||
|
|
||||||
|
// An optional payment addr to be included within the last hop of the route.
|
||||||
|
bytes payment_addr = 20;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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
|
||||||
|
|
@ -226,6 +271,19 @@ message SendPaymentRequest {
|
||||||
that show which htlcs are still in flight are suppressed.
|
that show which htlcs are still in flight are suppressed.
|
||||||
*/
|
*/
|
||||||
bool no_inflight_updates = 18;
|
bool no_inflight_updates = 18;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The largest payment split that should be attempted when making a payment if
|
||||||
|
splitting is necessary. Setting this value will effectively cause lnd to
|
||||||
|
split more aggressively, vs only when it thinks it needs to. Note that this
|
||||||
|
value is in milli-satoshis.
|
||||||
|
*/
|
||||||
|
uint64 max_shard_size_msat = 21;
|
||||||
|
|
||||||
|
/*
|
||||||
|
If set, an AMP-payment will be attempted.
|
||||||
|
*/
|
||||||
|
bool amp = 22;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TrackPaymentRequest {
|
message TrackPaymentRequest {
|
||||||
|
|
@ -299,6 +357,14 @@ message QueryMissionControlResponse {
|
||||||
repeated PairHistory pairs = 2;
|
repeated PairHistory pairs = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message XImportMissionControlRequest {
|
||||||
|
// Node pair-level mission control state to be imported.
|
||||||
|
repeated PairHistory pairs = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message XImportMissionControlResponse {
|
||||||
|
}
|
||||||
|
|
||||||
// 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.
|
||||||
|
|
@ -340,6 +406,67 @@ message PairData {
|
||||||
int64 success_amt_msat = 7;
|
int64 success_amt_msat = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message GetMissionControlConfigRequest {
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetMissionControlConfigResponse {
|
||||||
|
/*
|
||||||
|
Mission control's currently active config.
|
||||||
|
*/
|
||||||
|
MissionControlConfig config = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SetMissionControlConfigRequest {
|
||||||
|
/*
|
||||||
|
The config to set for mission control. Note that all values *must* be set,
|
||||||
|
because the full config will be applied.
|
||||||
|
*/
|
||||||
|
MissionControlConfig config = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SetMissionControlConfigResponse {
|
||||||
|
}
|
||||||
|
|
||||||
|
message MissionControlConfig {
|
||||||
|
/*
|
||||||
|
The amount of time mission control will take to restore a penalized node
|
||||||
|
or channel back to 50% success probability, expressed in seconds. Setting
|
||||||
|
this value to a higher value will penalize failures for longer, making
|
||||||
|
mission control less likely to route through nodes and channels that we
|
||||||
|
have previously recorded failures for.
|
||||||
|
*/
|
||||||
|
uint64 half_life_seconds = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The probability of success mission control should assign to hop in a route
|
||||||
|
where it has no other information available. Higher values will make mission
|
||||||
|
control more willing to try hops that we have no information about, lower
|
||||||
|
values will discourage trying these hops.
|
||||||
|
*/
|
||||||
|
float hop_probability = 2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The importance that mission control should place on historical results,
|
||||||
|
expressed as a value in [0;1]. Setting this value to 1 will ignore all
|
||||||
|
historical payments and just use the hop probability to assess the
|
||||||
|
probability of success for each hop. A zero value ignores hop probability
|
||||||
|
completely and relies entirely on historical results, unless none are
|
||||||
|
available.
|
||||||
|
*/
|
||||||
|
float weight = 3;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The maximum number of payment results that mission control will store.
|
||||||
|
*/
|
||||||
|
uint32 maximum_payment_results = 4;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The minimum time that must have passed since the previously recorded failure
|
||||||
|
before we raise the failure amount.
|
||||||
|
*/
|
||||||
|
uint64 minimum_failure_relax_interval = 5;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
|
@ -383,6 +510,9 @@ message BuildRouteRequest {
|
||||||
pubkey.
|
pubkey.
|
||||||
*/
|
*/
|
||||||
repeated bytes hop_pubkeys = 4;
|
repeated bytes hop_pubkeys = 4;
|
||||||
|
|
||||||
|
// An optional payment addr to be included within the last hop of the route.
|
||||||
|
bytes payment_addr = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message BuildRouteResponse {
|
message BuildRouteResponse {
|
||||||
|
|
@ -579,3 +709,90 @@ message PaymentStatus {
|
||||||
repeated lnrpc.HTLCAttempt htlcs = 4;
|
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;
|
||||||
|
|
||||||
|
// The onion blob for the next hop
|
||||||
|
bytes onion_blob = 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UpdateChanStatusRequest {
|
||||||
|
lnrpc.ChannelPoint chan_point = 1;
|
||||||
|
|
||||||
|
ChanStatusAction action = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ChanStatusAction {
|
||||||
|
ENABLE = 0;
|
||||||
|
DISABLE = 1;
|
||||||
|
AUTO = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UpdateChanStatusResponse {
|
||||||
|
}
|
||||||
|
|
|
||||||
627
config/rpc.proto
627
config/rpc.proto
|
|
@ -32,8 +32,9 @@ service Lightning {
|
||||||
rpc WalletBalance (WalletBalanceRequest) returns (WalletBalanceResponse);
|
rpc WalletBalance (WalletBalanceRequest) returns (WalletBalanceResponse);
|
||||||
|
|
||||||
/* lncli: `channelbalance`
|
/* lncli: `channelbalance`
|
||||||
ChannelBalance returns the total funds available across all open channels
|
ChannelBalance returns a report on the total funds across all open channels,
|
||||||
in satoshis.
|
categorized in local/remote, pending local/remote and unsettled local/remote
|
||||||
|
balances.
|
||||||
*/
|
*/
|
||||||
rpc ChannelBalance (ChannelBalanceRequest) returns (ChannelBalanceResponse);
|
rpc ChannelBalance (ChannelBalanceRequest) returns (ChannelBalanceResponse);
|
||||||
|
|
||||||
|
|
@ -46,13 +47,18 @@ 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.
|
||||||
|
|
||||||
|
When using REST, the `AddrToAmount` map type can be set by appending
|
||||||
|
`&AddrToAmount[<address>]=<amount_to_send>` to the URL. Unfortunately this
|
||||||
|
map type doesn't appear in the REST API documentation because of a bug in
|
||||||
|
the grpc-gateway library.
|
||||||
*/
|
*/
|
||||||
rpc EstimateFee (EstimateFeeRequest) returns (EstimateFeeResponse);
|
rpc EstimateFee (EstimateFeeRequest) returns (EstimateFeeResponse);
|
||||||
|
|
||||||
/* 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_vbyte 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.
|
||||||
*/
|
*/
|
||||||
|
|
@ -76,7 +82,7 @@ service Lightning {
|
||||||
|
|
||||||
/* 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_vbyte 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.
|
||||||
*/
|
*/
|
||||||
|
|
@ -135,6 +141,14 @@ service Lightning {
|
||||||
*/
|
*/
|
||||||
rpc GetInfo (GetInfoRequest) returns (GetInfoResponse);
|
rpc GetInfo (GetInfoRequest) returns (GetInfoResponse);
|
||||||
|
|
||||||
|
/** lncli: `getrecoveryinfo`
|
||||||
|
GetRecoveryInfo returns information concerning the recovery mode including
|
||||||
|
whether it's in a recovery mode, whether the recovery is finished, and the
|
||||||
|
progress made so far.
|
||||||
|
*/
|
||||||
|
rpc GetRecoveryInfo (GetRecoveryInfoRequest)
|
||||||
|
returns (GetRecoveryInfoResponse);
|
||||||
|
|
||||||
// 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
|
||||||
|
|
@ -222,8 +236,10 @@ 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. This method can also be
|
||||||
when in debug builds of lnd.
|
used to remove externally funded channels where the funding transaction was
|
||||||
|
never broadcast. Only available for non-externally funded channels in dev
|
||||||
|
build.
|
||||||
*/
|
*/
|
||||||
rpc AbandonChannel (AbandonChannelRequest) returns (AbandonChannelResponse);
|
rpc AbandonChannel (AbandonChannelRequest) returns (AbandonChannelResponse);
|
||||||
|
|
||||||
|
|
@ -355,6 +371,11 @@ service Lightning {
|
||||||
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.
|
||||||
|
|
||||||
|
When using REST, the `dest_custom_records` map type can be set by appending
|
||||||
|
`&dest_custom_records[<record_number>]=<record_data_base64_url_encoded>`
|
||||||
|
to the URL. Unfortunately this map type doesn't appear in the REST API
|
||||||
|
documentation because of a bug in the grpc-gateway library.
|
||||||
*/
|
*/
|
||||||
rpc QueryRoutes (QueryRoutesRequest) returns (QueryRoutesResponse);
|
rpc QueryRoutes (QueryRoutesRequest) returns (QueryRoutesResponse);
|
||||||
|
|
||||||
|
|
@ -405,8 +426,9 @@ 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, for a maximum number of events. If no maximum number
|
||||||
of the past 24 hrs of forwarding history are returned.
|
of events is specified, up to 100 events will be returned. If no time-range
|
||||||
|
is specified, then events will be returned in the order that they occured.
|
||||||
|
|
||||||
A list of forwarding events are returned. The size of each forwarding event
|
A list of forwarding events are returned. The size of each forwarding event
|
||||||
is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.
|
is 40 bytes, and the max message size able to be returned in gRPC is 4 MiB.
|
||||||
|
|
@ -473,6 +495,26 @@ service Lightning {
|
||||||
offline.
|
offline.
|
||||||
*/
|
*/
|
||||||
rpc BakeMacaroon (BakeMacaroonRequest) returns (BakeMacaroonResponse);
|
rpc BakeMacaroon (BakeMacaroonRequest) returns (BakeMacaroonResponse);
|
||||||
|
|
||||||
|
/* lncli: `listmacaroonids`
|
||||||
|
ListMacaroonIDs returns all root key IDs that are in use.
|
||||||
|
*/
|
||||||
|
rpc ListMacaroonIDs (ListMacaroonIDsRequest)
|
||||||
|
returns (ListMacaroonIDsResponse);
|
||||||
|
|
||||||
|
/* lncli: `deletemacaroonid`
|
||||||
|
DeleteMacaroonID deletes the specified macaroon ID and invalidates all
|
||||||
|
macaroons derived from that ID.
|
||||||
|
*/
|
||||||
|
rpc DeleteMacaroonID (DeleteMacaroonIDRequest)
|
||||||
|
returns (DeleteMacaroonIDResponse);
|
||||||
|
|
||||||
|
/* lncli: `listpermissions`
|
||||||
|
ListPermissions lists all RPC method URIs and their required macaroon
|
||||||
|
permissions to access them.
|
||||||
|
*/
|
||||||
|
rpc ListPermissions (ListPermissionsRequest)
|
||||||
|
returns (ListPermissionsResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message Utxo {
|
message Utxo {
|
||||||
|
|
@ -541,6 +583,9 @@ message GetTransactionsRequest {
|
||||||
default to this option.
|
default to this option.
|
||||||
*/
|
*/
|
||||||
int32 end_height = 2;
|
int32 end_height = 2;
|
||||||
|
|
||||||
|
// An optional filter to only include transactions relevant to an account.
|
||||||
|
string account = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TransactionDetails {
|
message TransactionDetails {
|
||||||
|
|
@ -667,6 +712,11 @@ message SendRequest {
|
||||||
fallback.
|
fallback.
|
||||||
*/
|
*/
|
||||||
repeated FeatureBit dest_features = 15;
|
repeated FeatureBit dest_features = 15;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The payment address of the generated invoice.
|
||||||
|
*/
|
||||||
|
bytes payment_addr = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SendResponse {
|
message SendResponse {
|
||||||
|
|
@ -750,6 +800,58 @@ message ChannelAcceptResponse {
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
||||||
|
/*
|
||||||
|
An optional error to send the initiating party to indicate why the channel
|
||||||
|
was rejected. This field *should not* contain sensitive information, it will
|
||||||
|
be sent to the initiating party. This field should only be set if accept is
|
||||||
|
false, the channel will be rejected if an error is set with accept=true
|
||||||
|
because the meaning of this response is ambiguous. Limited to 500
|
||||||
|
characters.
|
||||||
|
*/
|
||||||
|
string error = 3;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The upfront shutdown address to use if the initiating peer supports option
|
||||||
|
upfront shutdown script (see ListPeers for the features supported). Note
|
||||||
|
that the channel open will fail if this value is set for a peer that does
|
||||||
|
not support this feature bit.
|
||||||
|
*/
|
||||||
|
string upfront_shutdown = 4;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The csv delay (in blocks) that we require for the remote party.
|
||||||
|
*/
|
||||||
|
uint32 csv_delay = 5;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The reserve amount in satoshis that we require the remote peer to adhere to.
|
||||||
|
We require that the remote peer always have some reserve amount allocated to
|
||||||
|
them so that there is always a disincentive to broadcast old state (if they
|
||||||
|
hold 0 sats on their side of the channel, there is nothing to lose).
|
||||||
|
*/
|
||||||
|
uint64 reserve_sat = 6;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The maximum amount of funds in millisatoshis that we allow the remote peer
|
||||||
|
to have in outstanding htlcs.
|
||||||
|
*/
|
||||||
|
uint64 in_flight_max_msat = 7;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The maximum number of htlcs that the remote peer can offer us.
|
||||||
|
*/
|
||||||
|
uint32 max_htlc_count = 8;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The minimum value in millisatoshis for incoming htlcs on the channel.
|
||||||
|
*/
|
||||||
|
uint64 min_htlc_in = 9;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The number of confirmations we require before we consider the channel open.
|
||||||
|
*/
|
||||||
|
uint32 min_accept_depth = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ChannelPoint {
|
message ChannelPoint {
|
||||||
|
|
@ -798,14 +900,25 @@ message EstimateFeeRequest {
|
||||||
// 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;
|
||||||
|
|
||||||
|
// The minimum number of confirmations each one of your outputs used for
|
||||||
|
// the transaction must satisfy.
|
||||||
|
int32 min_confs = 3;
|
||||||
|
|
||||||
|
// Whether unconfirmed outputs should be used as inputs for the transaction.
|
||||||
|
bool spend_unconfirmed = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
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.
|
// Deprecated, use sat_per_vbyte.
|
||||||
int64 feerate_sat_per_byte = 2;
|
// The fee rate in satoshi/vbyte.
|
||||||
|
int64 feerate_sat_per_byte = 2 [deprecated = true];
|
||||||
|
|
||||||
|
// The fee rate in satoshi/vbyte.
|
||||||
|
uint64 sat_per_vbyte = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SendManyRequest {
|
message SendManyRequest {
|
||||||
|
|
@ -816,12 +929,24 @@ message SendManyRequest {
|
||||||
// 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/vbyte that should be used when crafting the
|
||||||
// transaction.
|
// transaction.
|
||||||
int64 sat_per_byte = 5;
|
uint64 sat_per_vbyte = 4;
|
||||||
|
|
||||||
|
// Deprecated, use sat_per_vbyte.
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
|
// transaction.
|
||||||
|
int64 sat_per_byte = 5 [deprecated = true];
|
||||||
|
|
||||||
// An optional label for the transaction, limited to 500 characters.
|
// An optional label for the transaction, limited to 500 characters.
|
||||||
string label = 6;
|
string label = 6;
|
||||||
|
|
||||||
|
// The minimum number of confirmations each one of your outputs used for
|
||||||
|
// the transaction must satisfy.
|
||||||
|
int32 min_confs = 7;
|
||||||
|
|
||||||
|
// Whether unconfirmed outputs should be used as inputs for the transaction.
|
||||||
|
bool spend_unconfirmed = 8;
|
||||||
}
|
}
|
||||||
message SendManyResponse {
|
message SendManyResponse {
|
||||||
// The id of the transaction
|
// The id of the transaction
|
||||||
|
|
@ -839,9 +964,14 @@ message SendCoinsRequest {
|
||||||
// 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/vbyte that should be used when crafting the
|
||||||
// transaction.
|
// transaction.
|
||||||
int64 sat_per_byte = 5;
|
uint64 sat_per_vbyte = 4;
|
||||||
|
|
||||||
|
// Deprecated, use sat_per_vbyte.
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
|
// transaction.
|
||||||
|
int64 sat_per_byte = 5 [deprecated = true];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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
|
||||||
|
|
@ -852,6 +982,13 @@ message SendCoinsRequest {
|
||||||
|
|
||||||
// An optional label for the transaction, limited to 500 characters.
|
// An optional label for the transaction, limited to 500 characters.
|
||||||
string label = 7;
|
string label = 7;
|
||||||
|
|
||||||
|
// The minimum number of confirmations each one of your outputs used for
|
||||||
|
// the transaction must satisfy.
|
||||||
|
int32 min_confs = 8;
|
||||||
|
|
||||||
|
// Whether unconfirmed outputs should be used as inputs for the transaction.
|
||||||
|
bool spend_unconfirmed = 9;
|
||||||
}
|
}
|
||||||
message SendCoinsResponse {
|
message SendCoinsResponse {
|
||||||
// The transaction ID of the transaction
|
// The transaction ID of the transaction
|
||||||
|
|
@ -864,6 +1001,9 @@ message ListUnspentRequest {
|
||||||
|
|
||||||
// The maximum number of confirmations to be included.
|
// The maximum number of confirmations to be included.
|
||||||
int32 max_confs = 2;
|
int32 max_confs = 2;
|
||||||
|
|
||||||
|
// An optional filter to only include outputs belonging to an account.
|
||||||
|
string account = 3;
|
||||||
}
|
}
|
||||||
message ListUnspentResponse {
|
message ListUnspentResponse {
|
||||||
// A list of utxos
|
// A list of utxos
|
||||||
|
|
@ -884,8 +1024,14 @@ enum AddressType {
|
||||||
}
|
}
|
||||||
|
|
||||||
message NewAddressRequest {
|
message NewAddressRequest {
|
||||||
// The address type
|
// The type of address to generate.
|
||||||
AddressType type = 1;
|
AddressType type = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The name of the account to generate a new address for. If empty, the
|
||||||
|
default wallet account is used.
|
||||||
|
*/
|
||||||
|
string account = 2;
|
||||||
}
|
}
|
||||||
message NewAddressResponse {
|
message NewAddressResponse {
|
||||||
// The newly generated wallet address
|
// The newly generated wallet address
|
||||||
|
|
@ -929,6 +1075,12 @@ message ConnectPeerRequest {
|
||||||
/* 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;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The connection timeout value (in seconds) for this request. It won't affect
|
||||||
|
other requests.
|
||||||
|
*/
|
||||||
|
uint64 timeout = 3;
|
||||||
}
|
}
|
||||||
message ConnectPeerResponse {
|
message ConnectPeerResponse {
|
||||||
}
|
}
|
||||||
|
|
@ -945,6 +1097,21 @@ message HTLC {
|
||||||
int64 amount = 2;
|
int64 amount = 2;
|
||||||
bytes hash_lock = 3;
|
bytes hash_lock = 3;
|
||||||
uint32 expiration_height = 4;
|
uint32 expiration_height = 4;
|
||||||
|
|
||||||
|
// Index identifying the htlc on the channel.
|
||||||
|
uint64 htlc_index = 5;
|
||||||
|
|
||||||
|
// If this HTLC is involved in a forwarding operation, this field indicates
|
||||||
|
// the forwarding channel. For an outgoing htlc, it is the incoming channel.
|
||||||
|
// For an incoming htlc, it is the outgoing channel. When the htlc
|
||||||
|
// originates from this node or this node is the final destination,
|
||||||
|
// forwarding_channel will be zero. The forwarding channel will also be zero
|
||||||
|
// for htlcs that need to be forwarded but don't have a forwarding decision
|
||||||
|
// persisted yet.
|
||||||
|
uint64 forwarding_channel = 6;
|
||||||
|
|
||||||
|
// Index identifying the htlc on the forwarding channel.
|
||||||
|
uint64 forwarding_htlc_index = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum CommitmentType {
|
enum CommitmentType {
|
||||||
|
|
@ -975,6 +1142,30 @@ enum CommitmentType {
|
||||||
UNKNOWN_COMMITMENT_TYPE = 999;
|
UNKNOWN_COMMITMENT_TYPE = 999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message ChannelConstraints {
|
||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
uint32 csv_delay = 1;
|
||||||
|
|
||||||
|
// The minimum satoshis this node is required to reserve in its balance.
|
||||||
|
uint64 chan_reserve_sat = 2;
|
||||||
|
|
||||||
|
// The dust limit (in satoshis) of the initiator's commitment tx.
|
||||||
|
uint64 dust_limit_sat = 3;
|
||||||
|
|
||||||
|
// The maximum amount of coins in millisatoshis that can be pending in this
|
||||||
|
// channel.
|
||||||
|
uint64 max_pending_amt_msat = 4;
|
||||||
|
|
||||||
|
// The smallest HTLC in millisatoshis that the initiator will accept.
|
||||||
|
uint64 min_htlc_msat = 5;
|
||||||
|
|
||||||
|
// The total number of incoming HTLC's that the initiator will accept.
|
||||||
|
uint32 max_accepted_htlcs = 6;
|
||||||
|
}
|
||||||
|
|
||||||
message Channel {
|
message Channel {
|
||||||
// Whether this channel is active or not
|
// Whether this channel is active or not
|
||||||
bool active = 1;
|
bool active = 1;
|
||||||
|
|
@ -1047,10 +1238,11 @@ message Channel {
|
||||||
repeated HTLC pending_htlcs = 15;
|
repeated HTLC pending_htlcs = 15;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The CSV delay expressed in relative blocks. If the channel is force closed,
|
Deprecated. The CSV delay expressed in relative blocks. If the channel is
|
||||||
we will need to wait for this many blocks before we can regain our funds.
|
force closed, we will need to wait for this many blocks before we can regain
|
||||||
|
our funds.
|
||||||
*/
|
*/
|
||||||
uint32 csv_delay = 16;
|
uint32 csv_delay = 16 [deprecated = true];
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
@ -1061,13 +1253,15 @@ message Channel {
|
||||||
// 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.
|
// Deprecated. The minimum satoshis this node is required to reserve in its
|
||||||
int64 local_chan_reserve_sat = 20;
|
// balance.
|
||||||
|
int64 local_chan_reserve_sat = 20 [deprecated = true];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The minimum satoshis the other node is required to reserve in its balance.
|
Deprecated. 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 = true];
|
||||||
|
|
||||||
// Deprecated. Use commitment_type.
|
// Deprecated. Use commitment_type.
|
||||||
bool static_remote_key = 22 [deprecated = true];
|
bool static_remote_key = 22 [deprecated = true];
|
||||||
|
|
@ -1112,9 +1306,17 @@ message Channel {
|
||||||
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
|
||||||
applying to the channel. This field is optional, not setting it or using a
|
applying to the channel. This field is optional, not setting it or using a
|
||||||
value of zero will mean the channel has no additional restrictions.
|
value of zero will mean the channel has no additional restrictions. The
|
||||||
|
height can be interpreted in two ways: as a relative height if the value is
|
||||||
|
less than 500,000, or as an absolute height otherwise.
|
||||||
*/
|
*/
|
||||||
uint32 thaw_height = 28;
|
uint32 thaw_height = 28;
|
||||||
|
|
||||||
|
// List constraints for the local node.
|
||||||
|
ChannelConstraints local_constraints = 29;
|
||||||
|
|
||||||
|
// List constraints for the remote node.
|
||||||
|
ChannelConstraints remote_constraints = 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListChannelsRequest {
|
message ListChannelsRequest {
|
||||||
|
|
@ -1196,6 +1398,79 @@ message ChannelCloseSummary {
|
||||||
force closes, although only one party's close will be confirmed on chain.
|
force closes, although only one party's close will be confirmed on chain.
|
||||||
*/
|
*/
|
||||||
Initiator close_initiator = 12;
|
Initiator close_initiator = 12;
|
||||||
|
|
||||||
|
repeated Resolution resolutions = 13;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ResolutionType {
|
||||||
|
TYPE_UNKNOWN = 0;
|
||||||
|
|
||||||
|
// We resolved an anchor output.
|
||||||
|
ANCHOR = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
We are resolving an incoming htlc on chain. This if this htlc is
|
||||||
|
claimed, we swept the incoming htlc with the preimage. If it is timed
|
||||||
|
out, our peer swept the timeout path.
|
||||||
|
*/
|
||||||
|
INCOMING_HTLC = 2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
We are resolving an outgoing htlc on chain. If this htlc is claimed,
|
||||||
|
the remote party swept the htlc with the preimage. If it is timed out,
|
||||||
|
we swept it with the timeout path.
|
||||||
|
*/
|
||||||
|
OUTGOING_HTLC = 3;
|
||||||
|
|
||||||
|
// We force closed and need to sweep our time locked commitment output.
|
||||||
|
COMMIT = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ResolutionOutcome {
|
||||||
|
// Outcome unknown.
|
||||||
|
OUTCOME_UNKNOWN = 0;
|
||||||
|
|
||||||
|
// An output was claimed on chain.
|
||||||
|
CLAIMED = 1;
|
||||||
|
|
||||||
|
// An output was left unclaimed on chain.
|
||||||
|
UNCLAIMED = 2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
ResolverOutcomeAbandoned indicates that an output that we did not
|
||||||
|
claim on chain, for example an anchor that we did not sweep and a
|
||||||
|
third party claimed on chain, or a htlc that we could not decode
|
||||||
|
so left unclaimed.
|
||||||
|
*/
|
||||||
|
ABANDONED = 3;
|
||||||
|
|
||||||
|
/*
|
||||||
|
If we force closed our channel, our htlcs need to be claimed in two
|
||||||
|
stages. This outcome represents the broadcast of a timeout or success
|
||||||
|
transaction for this two stage htlc claim.
|
||||||
|
*/
|
||||||
|
FIRST_STAGE = 4;
|
||||||
|
|
||||||
|
// A htlc was timed out on chain.
|
||||||
|
TIMEOUT = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Resolution {
|
||||||
|
// The type of output we are resolving.
|
||||||
|
ResolutionType resolution_type = 1;
|
||||||
|
|
||||||
|
// The outcome of our on chain action that resolved the outpoint.
|
||||||
|
ResolutionOutcome outcome = 2;
|
||||||
|
|
||||||
|
// The outpoint that was spent by the resolution.
|
||||||
|
OutPoint outpoint = 3;
|
||||||
|
|
||||||
|
// The amount that was claimed by the resolution.
|
||||||
|
uint64 amount_sat = 4;
|
||||||
|
|
||||||
|
// The hex-encoded transaction ID of the sweep transaction that spent the
|
||||||
|
// output.
|
||||||
|
string sweep_txid = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ClosedChannelsRequest {
|
message ClosedChannelsRequest {
|
||||||
|
|
@ -1251,6 +1526,11 @@ message Peer {
|
||||||
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;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Denotes that this peer is pinned into an active sync.
|
||||||
|
*/
|
||||||
|
PINNED_SYNC = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The type of sync we are currently performing with this peer.
|
// The type of sync we are currently performing with this peer.
|
||||||
|
|
@ -1267,6 +1547,20 @@ message Peer {
|
||||||
spamming us with errors at no cost.
|
spamming us with errors at no cost.
|
||||||
*/
|
*/
|
||||||
repeated TimestampedError errors = 12;
|
repeated TimestampedError errors = 12;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The number of times we have recorded this peer going offline or coming
|
||||||
|
online, recorded across restarts. Note that this value is decreased over
|
||||||
|
time if the peer has not recently flapped, so that we can forgive peers
|
||||||
|
with historically high flap counts.
|
||||||
|
*/
|
||||||
|
int32 flap_count = 13;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The timestamp of the last flap we observed for this peer. If this value is
|
||||||
|
zero, we have not observed any flaps for this peer.
|
||||||
|
*/
|
||||||
|
int64 last_flap_ns = 14;
|
||||||
}
|
}
|
||||||
|
|
||||||
message TimestampedError {
|
message TimestampedError {
|
||||||
|
|
@ -1371,6 +1665,19 @@ message GetInfoResponse {
|
||||||
map<uint32, Feature> features = 19;
|
map<uint32, Feature> features = 19;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message GetRecoveryInfoRequest {
|
||||||
|
}
|
||||||
|
message GetRecoveryInfoResponse {
|
||||||
|
// Whether the wallet is in recovery mode
|
||||||
|
bool recovery_mode = 1;
|
||||||
|
|
||||||
|
// Whether the wallet recovery progress is finished
|
||||||
|
bool recovery_finished = 2;
|
||||||
|
|
||||||
|
// The recovery progress, ranging from 0 to 1.
|
||||||
|
double progress = 3;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
|
@ -1412,9 +1719,10 @@ message CloseChannelRequest {
|
||||||
// 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
|
// Deprecated, use sat_per_vbyte.
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
// closure transaction.
|
// closure transaction.
|
||||||
int64 sat_per_byte = 4;
|
int64 sat_per_byte = 4 [deprecated = true];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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.
|
||||||
|
|
@ -1423,6 +1731,10 @@ message CloseChannelRequest {
|
||||||
to the upfront shutdown addresss.
|
to the upfront shutdown addresss.
|
||||||
*/
|
*/
|
||||||
string delivery_address = 5;
|
string delivery_address = 5;
|
||||||
|
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
|
// closure transaction.
|
||||||
|
uint64 sat_per_vbyte = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CloseStatusUpdate {
|
message CloseStatusUpdate {
|
||||||
|
|
@ -1460,6 +1772,10 @@ message ReadyForPsbtFunding {
|
||||||
}
|
}
|
||||||
|
|
||||||
message OpenChannelRequest {
|
message OpenChannelRequest {
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
|
// funding transaction.
|
||||||
|
uint64 sat_per_vbyte = 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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.
|
||||||
|
|
@ -1483,9 +1799,10 @@ message OpenChannelRequest {
|
||||||
// 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
|
// Deprecated, use sat_per_vbyte.
|
||||||
|
// A manual fee rate set in sat/vbyte that should be used when crafting the
|
||||||
// funding transaction.
|
// funding transaction.
|
||||||
int64 sat_per_byte = 7;
|
int64 sat_per_byte = 7 [deprecated = true];
|
||||||
|
|
||||||
// Whether this channel should be private, not announced to the greater
|
// Whether this channel should be private, not announced to the greater
|
||||||
// network.
|
// network.
|
||||||
|
|
@ -1527,6 +1844,24 @@ message OpenChannelRequest {
|
||||||
carried out in an interactive manner (PSBT based).
|
carried out in an interactive manner (PSBT based).
|
||||||
*/
|
*/
|
||||||
FundingShim funding_shim = 14;
|
FundingShim funding_shim = 14;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The maximum amount of coins in millisatoshi that can be pending within
|
||||||
|
the channel. It only applies to the remote party.
|
||||||
|
*/
|
||||||
|
uint64 remote_max_value_in_flight_msat = 15;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The maximum number of concurrent HTLCs we will allow the remote party to add
|
||||||
|
to the commitment transaction.
|
||||||
|
*/
|
||||||
|
uint32 remote_max_htlcs = 16;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Max local csv is the maximum csv delay we will allow for our own commitment
|
||||||
|
transaction.
|
||||||
|
*/
|
||||||
|
uint32 max_local_csv = 17;
|
||||||
}
|
}
|
||||||
message OpenStatusUpdate {
|
message OpenStatusUpdate {
|
||||||
oneof update {
|
oneof update {
|
||||||
|
|
@ -1601,10 +1936,11 @@ 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
|
||||||
frozen channel does not allow a cooperative channel close by the
|
channel does not allow a cooperative channel close by the initiator. The
|
||||||
initiator. The thaw_height is the height that this restriction stops
|
thaw_height is the height that this restriction stops applying to the
|
||||||
applying to the channel.
|
channel. The height can be interpreted in two ways: as a relative height if
|
||||||
|
the value is less than 500,000, or as an absolute height otherwise.
|
||||||
*/
|
*/
|
||||||
uint32 thaw_height = 6;
|
uint32 thaw_height = 6;
|
||||||
}
|
}
|
||||||
|
|
@ -1622,6 +1958,16 @@ message PsbtShim {
|
||||||
non-empty, it must be a binary serialized PSBT.
|
non-empty, it must be a binary serialized PSBT.
|
||||||
*/
|
*/
|
||||||
bytes base_psbt = 2;
|
bytes base_psbt = 2;
|
||||||
|
|
||||||
|
/*
|
||||||
|
If a channel should be part of a batch (multiple channel openings in one
|
||||||
|
transaction), it can be dangerous if the whole batch transaction is
|
||||||
|
published too early before all channel opening negotiations are completed.
|
||||||
|
This flag prevents this particular channel from broadcasting the transaction
|
||||||
|
after the negotiation with the remote peer. In a batch of channel openings
|
||||||
|
this flag should be set to true for every channel but the very last.
|
||||||
|
*/
|
||||||
|
bool no_publish = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message FundingShim {
|
message FundingShim {
|
||||||
|
|
@ -1661,12 +2007,19 @@ 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. Cannot be set at the same time as final_raw_tx.
|
||||||
*/
|
*/
|
||||||
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;
|
||||||
|
|
||||||
|
/*
|
||||||
|
As an alternative to the signed PSBT with all witness data, the final raw
|
||||||
|
wire format transaction can also be specified directly. Cannot be set at the
|
||||||
|
same time as signed_psbt.
|
||||||
|
*/
|
||||||
|
bytes final_raw_tx = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message FundingTransitionMsg {
|
message FundingTransitionMsg {
|
||||||
|
|
@ -1909,8 +2262,17 @@ message ChannelEventUpdate {
|
||||||
UpdateType type = 5;
|
UpdateType type = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message WalletAccountBalance {
|
||||||
|
// The confirmed balance of the account (with >= 1 confirmations).
|
||||||
|
int64 confirmed_balance = 1;
|
||||||
|
|
||||||
|
// The unconfirmed balance of the account (with 0 confirmations).
|
||||||
|
int64 unconfirmed_balance = 2;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
|
@ -1920,16 +2282,45 @@ message WalletBalanceResponse {
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
||||||
|
// A mapping of each wallet account's name to its balance.
|
||||||
|
map<string, WalletAccountBalance> account_balance = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Amount {
|
||||||
|
// Value denominated in satoshis.
|
||||||
|
uint64 sat = 1;
|
||||||
|
|
||||||
|
// Value denominated in milli-satoshis.
|
||||||
|
uint64 msat = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ChannelBalanceRequest {
|
message ChannelBalanceRequest {
|
||||||
}
|
}
|
||||||
message ChannelBalanceResponse {
|
message ChannelBalanceResponse {
|
||||||
// Sum of channels balances denominated in satoshis
|
// Deprecated. Sum of channels balances denominated in satoshis
|
||||||
int64 balance = 1;
|
int64 balance = 1 [deprecated = true];
|
||||||
|
|
||||||
// Sum of channels pending balances denominated in satoshis
|
// Deprecated. Sum of channels pending balances denominated in satoshis
|
||||||
int64 pending_open_balance = 2;
|
int64 pending_open_balance = 2 [deprecated = true];
|
||||||
|
|
||||||
|
// Sum of channels local balances.
|
||||||
|
Amount local_balance = 3;
|
||||||
|
|
||||||
|
// Sum of channels remote balances.
|
||||||
|
Amount remote_balance = 4;
|
||||||
|
|
||||||
|
// Sum of channels local unsettled balances.
|
||||||
|
Amount unsettled_local_balance = 5;
|
||||||
|
|
||||||
|
// Sum of channels remote unsettled balances.
|
||||||
|
Amount unsettled_remote_balance = 6;
|
||||||
|
|
||||||
|
// Sum of channels pending local balances.
|
||||||
|
Amount pending_open_local_balance = 7;
|
||||||
|
|
||||||
|
// Sum of channels pending remote balances.
|
||||||
|
Amount pending_open_remote_balance = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
message QueryRoutesRequest {
|
message QueryRoutesRequest {
|
||||||
|
|
@ -2088,7 +2479,7 @@ message Hop {
|
||||||
output index for the channel.
|
output index for the channel.
|
||||||
*/
|
*/
|
||||||
uint64 chan_id = 1 [jstype = JS_STRING];
|
uint64 chan_id = 1 [jstype = JS_STRING];
|
||||||
int64 chan_capacity = 2;
|
int64 chan_capacity = 2 [deprecated = true];
|
||||||
int64 amt_to_forward = 3 [deprecated = true];
|
int64 amt_to_forward = 3 [deprecated = true];
|
||||||
int64 fee = 4 [deprecated = true];
|
int64 fee = 4 [deprecated = true];
|
||||||
uint32 expiry = 5;
|
uint32 expiry = 5;
|
||||||
|
|
@ -2110,12 +2501,22 @@ message Hop {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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 the same mpp_record is included in the final
|
||||||
final hop payload of all non-zero payments in the HTLC set. If empty, a
|
hop payload of all non-zero payments in the HTLC set. If empty, a regular
|
||||||
regular single-shot payment is or was attempted.
|
single-shot payment is or was attempted.
|
||||||
*/
|
*/
|
||||||
MPPRecord mpp_record = 10;
|
MPPRecord mpp_record = 10;
|
||||||
|
|
||||||
|
/*
|
||||||
|
An optional TLV record that signals the use of an AMP payment. If present,
|
||||||
|
the receiver will treat all received payments including the same
|
||||||
|
(payment_addr, set_id) pair as being part of one logical payment. The
|
||||||
|
payment will be settled by XORing the root_share's together and deriving the
|
||||||
|
child hashes and preimages according to BOLT XX. Must be used in conjunction
|
||||||
|
with mpp_record.
|
||||||
|
*/
|
||||||
|
AMPRecord amp_record = 12;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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
|
||||||
|
|
@ -2142,6 +2543,14 @@ message MPPRecord {
|
||||||
int64 total_amt_msat = 10;
|
int64 total_amt_msat = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message AMPRecord {
|
||||||
|
bytes root_share = 1;
|
||||||
|
|
||||||
|
bytes set_id = 2;
|
||||||
|
|
||||||
|
uint32 child_index = 3;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
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
|
||||||
|
|
@ -2367,11 +2776,27 @@ message GraphTopologyUpdate {
|
||||||
repeated ClosedChannelUpdate closed_chans = 3;
|
repeated ClosedChannelUpdate closed_chans = 3;
|
||||||
}
|
}
|
||||||
message NodeUpdate {
|
message NodeUpdate {
|
||||||
repeated string addresses = 1;
|
/*
|
||||||
|
Deprecated, use node_addresses.
|
||||||
|
*/
|
||||||
|
repeated string addresses = 1 [deprecated = true];
|
||||||
|
|
||||||
string identity_key = 2;
|
string identity_key = 2;
|
||||||
bytes global_features = 3;
|
|
||||||
|
/*
|
||||||
|
Deprecated, use features.
|
||||||
|
*/
|
||||||
|
bytes global_features = 3 [deprecated = true];
|
||||||
|
|
||||||
string alias = 4;
|
string alias = 4;
|
||||||
string color = 5;
|
string color = 5;
|
||||||
|
repeated NodeAddress node_addresses = 7;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Features that the node has advertised in the init message, node
|
||||||
|
announcements and invoices.
|
||||||
|
*/
|
||||||
|
map<uint32, Feature> features = 6;
|
||||||
}
|
}
|
||||||
message ChannelEdgeUpdate {
|
message ChannelEdgeUpdate {
|
||||||
/*
|
/*
|
||||||
|
|
@ -2572,6 +2997,18 @@ message Invoice {
|
||||||
[EXPERIMENTAL].
|
[EXPERIMENTAL].
|
||||||
*/
|
*/
|
||||||
bool is_keysend = 25;
|
bool is_keysend = 25;
|
||||||
|
|
||||||
|
/*
|
||||||
|
The payment address of this invoice. This value will be used in MPP
|
||||||
|
payments, and also for newer invoies that always require the MPP paylaod
|
||||||
|
for added end-to-end security.
|
||||||
|
*/
|
||||||
|
bytes payment_addr = 26;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Signals whether or not this is an AMP invoice.
|
||||||
|
*/
|
||||||
|
bool is_amp = 27;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum InvoiceHTLCState {
|
enum InvoiceHTLCState {
|
||||||
|
|
@ -2611,6 +3048,31 @@ message InvoiceHTLC {
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
||||||
|
// Details relevant to AMP HTLCs, only populated if this is an AMP HTLC.
|
||||||
|
AMP amp = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Details specific to AMP HTLCs.
|
||||||
|
message AMP {
|
||||||
|
// An n-of-n secret share of the root seed from which child payment hashes
|
||||||
|
// and preimages are derived.
|
||||||
|
bytes root_share = 1;
|
||||||
|
|
||||||
|
// An identifier for the HTLC set that this HTLC belongs to.
|
||||||
|
bytes set_id = 2;
|
||||||
|
|
||||||
|
// A nonce used to randomize the child preimage and child hash from a given
|
||||||
|
// root_share.
|
||||||
|
uint32 child_index = 3;
|
||||||
|
|
||||||
|
// The payment hash of the AMP HTLC.
|
||||||
|
bytes hash = 4;
|
||||||
|
|
||||||
|
// The preimage used to settle this AMP htlc. This field will only be
|
||||||
|
// populated if the invoice is in InvoiceState_ACCEPTED or
|
||||||
|
// InvoiceState_SETTLED.
|
||||||
|
bytes preimage = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
message AddInvoiceResponse {
|
message AddInvoiceResponse {
|
||||||
|
|
@ -2630,6 +3092,13 @@ message AddInvoiceResponse {
|
||||||
invoices with an add_index greater than this one.
|
invoices with an add_index greater than this one.
|
||||||
*/
|
*/
|
||||||
uint64 add_index = 16;
|
uint64 add_index = 16;
|
||||||
|
|
||||||
|
/*
|
||||||
|
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 = 17;
|
||||||
}
|
}
|
||||||
message PaymentHash {
|
message PaymentHash {
|
||||||
/*
|
/*
|
||||||
|
|
@ -2801,6 +3270,9 @@ message Payment {
|
||||||
}
|
}
|
||||||
|
|
||||||
message HTLCAttempt {
|
message HTLCAttempt {
|
||||||
|
// The unique ID that is used for this attempt.
|
||||||
|
uint64 attempt_id = 7;
|
||||||
|
|
||||||
enum HTLCStatus {
|
enum HTLCStatus {
|
||||||
IN_FLIGHT = 0;
|
IN_FLIGHT = 0;
|
||||||
SUCCEEDED = 1;
|
SUCCEEDED = 1;
|
||||||
|
|
@ -2876,6 +3348,13 @@ message ListPaymentsResponse {
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeleteAllPaymentsRequest {
|
message DeleteAllPaymentsRequest {
|
||||||
|
// Only delete failed payments.
|
||||||
|
bool failed_payments_only = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Only delete failed HTLCs from payments, not the payment itself.
|
||||||
|
*/
|
||||||
|
bool failed_htlcs_only = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message DeleteAllPaymentsResponse {
|
message DeleteAllPaymentsResponse {
|
||||||
|
|
@ -2883,6 +3362,8 @@ message DeleteAllPaymentsResponse {
|
||||||
|
|
||||||
message AbandonChannelRequest {
|
message AbandonChannelRequest {
|
||||||
ChannelPoint channel_point = 1;
|
ChannelPoint channel_point = 1;
|
||||||
|
|
||||||
|
bool pending_funding_shim_only = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message AbandonChannelResponse {
|
message AbandonChannelResponse {
|
||||||
|
|
@ -2934,6 +3415,14 @@ enum FeatureBit {
|
||||||
PAYMENT_ADDR_OPT = 15;
|
PAYMENT_ADDR_OPT = 15;
|
||||||
MPP_REQ = 16;
|
MPP_REQ = 16;
|
||||||
MPP_OPT = 17;
|
MPP_OPT = 17;
|
||||||
|
WUMBO_CHANNELS_REQ = 18;
|
||||||
|
WUMBO_CHANNELS_OPT = 19;
|
||||||
|
ANCHORS_REQ = 20;
|
||||||
|
ANCHORS_OPT = 21;
|
||||||
|
ANCHORS_ZERO_FEE_HTLC_REQ = 22;
|
||||||
|
ANCHORS_ZERO_FEE_HTLC_OPT = 23;
|
||||||
|
AMP_REQ = 30;
|
||||||
|
AMP_OPT = 31;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Feature {
|
message Feature {
|
||||||
|
|
@ -3034,8 +3523,8 @@ message ForwardingHistoryRequest {
|
||||||
}
|
}
|
||||||
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. Deprecated by timestamp_ns.
|
||||||
uint64 timestamp = 1;
|
uint64 timestamp = 1 [deprecated = true];
|
||||||
|
|
||||||
// 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];
|
||||||
|
|
@ -3066,6 +3555,10 @@ message ForwardingEvent {
|
||||||
// the second half of the circuit.
|
// the second half of the circuit.
|
||||||
uint64 amt_out_msat = 10;
|
uint64 amt_out_msat = 10;
|
||||||
|
|
||||||
|
// The number of nanoseconds elapsed since January 1, 1970 UTC when this
|
||||||
|
// circuit was completed.
|
||||||
|
uint64 timestamp_ns = 11;
|
||||||
|
|
||||||
// TODO(roasbeef): add settlement latency?
|
// TODO(roasbeef): add settlement latency?
|
||||||
// * use FPE on the chan id?
|
// * use FPE on the chan id?
|
||||||
// * also list failures?
|
// * also list failures?
|
||||||
|
|
@ -3171,12 +3664,46 @@ message MacaroonPermission {
|
||||||
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;
|
||||||
|
|
||||||
|
// The root key ID used to create the macaroon, must be a positive integer.
|
||||||
|
uint64 root_key_id = 2;
|
||||||
}
|
}
|
||||||
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 ListMacaroonIDsRequest {
|
||||||
|
}
|
||||||
|
message ListMacaroonIDsResponse {
|
||||||
|
// The list of root key IDs that are in use.
|
||||||
|
repeated uint64 root_key_ids = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DeleteMacaroonIDRequest {
|
||||||
|
// The root key ID to be removed.
|
||||||
|
uint64 root_key_id = 1;
|
||||||
|
}
|
||||||
|
message DeleteMacaroonIDResponse {
|
||||||
|
// A boolean indicates that the deletion is successful.
|
||||||
|
bool deleted = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MacaroonPermissionList {
|
||||||
|
// A list of macaroon permissions.
|
||||||
|
repeated MacaroonPermission permissions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListPermissionsRequest {
|
||||||
|
}
|
||||||
|
message ListPermissionsResponse {
|
||||||
|
/*
|
||||||
|
A map between all RPC method URIs and their required macaroon permissions to
|
||||||
|
access them.
|
||||||
|
*/
|
||||||
|
map<string, MacaroonPermissionList> method_permissions = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message Failure {
|
message Failure {
|
||||||
enum FailureCode {
|
enum FailureCode {
|
||||||
/*
|
/*
|
||||||
|
|
@ -3209,6 +3736,7 @@ message Failure {
|
||||||
PERMANENT_CHANNEL_FAILURE = 21;
|
PERMANENT_CHANNEL_FAILURE = 21;
|
||||||
EXPIRY_TOO_FAR = 22;
|
EXPIRY_TOO_FAR = 22;
|
||||||
MPP_TIMEOUT = 23;
|
MPP_TIMEOUT = 23;
|
||||||
|
INVALID_ONION_PAYLOAD = 24;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
An internal error occurred.
|
An internal error occurred.
|
||||||
|
|
@ -3339,3 +3867,14 @@ message ChannelUpdate {
|
||||||
*/
|
*/
|
||||||
bytes extra_opaque_data = 12;
|
bytes extra_opaque_data = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message MacaroonId {
|
||||||
|
bytes nonce = 1;
|
||||||
|
bytes storageId = 2;
|
||||||
|
repeated Op ops = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Op {
|
||||||
|
string entity = 1;
|
||||||
|
repeated string actions = 2;
|
||||||
|
}
|
||||||
|
|
|
||||||
2798
config/rpc.proto.old
2798
config/rpc.proto.old
File diff suppressed because it is too large
Load diff
|
|
@ -141,8 +141,24 @@ message InitWalletRequest {
|
||||||
recover the funds in each channel from a remote force closed transaction.
|
recover the funds in each channel from a remote force closed transaction.
|
||||||
*/
|
*/
|
||||||
ChanBackupSnapshot channel_backups = 5;
|
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 {
|
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 {
|
message UnlockWalletRequest {
|
||||||
|
|
@ -171,6 +187,12 @@ message UnlockWalletRequest {
|
||||||
recover the funds in each channel from a remote force closed transaction.
|
recover the funds in each channel from a remote force closed transaction.
|
||||||
*/
|
*/
|
||||||
ChanBackupSnapshot channel_backups = 3;
|
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 UnlockWalletResponse {
|
||||||
}
|
}
|
||||||
|
|
@ -187,6 +209,30 @@ message ChangePasswordRequest {
|
||||||
daemon. When using REST, this field must be encoded as base64.
|
daemon. When using REST, this field must be encoded as base64.
|
||||||
*/
|
*/
|
||||||
bytes new_password = 2;
|
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 {
|
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;
|
||||||
|
}
|
||||||
|
|
|
||||||
11689
package-lock.json
generated
Normal file
11689
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "shockapi",
|
"name": "shockapi",
|
||||||
"version": "2021.6.15",
|
"version": "2021.6.21",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "src/server.js",
|
"main": "src/server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
"request-promise": "^4.2.6",
|
"request-promise": "^4.2.6",
|
||||||
"response-time": "^2.3.2",
|
"response-time": "^2.3.2",
|
||||||
"shelljs": "^0.8.2",
|
"shelljs": "^0.8.2",
|
||||||
"shock-common": "^34.0.0",
|
"shock-common": "^37.0.0",
|
||||||
"socket.io": "4.0.1",
|
"socket.io": "4.0.1",
|
||||||
"socket.io-msgpack-parser": "^3.0.1",
|
"socket.io-msgpack-parser": "^3.0.1",
|
||||||
"text-encoding": "^0.7.0",
|
"text-encoding": "^0.7.0",
|
||||||
|
|
|
||||||
|
|
@ -218,7 +218,11 @@ const server = program => {
|
||||||
|
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
LightningServices.services.lightning.getInfo({}, (err, res) => {
|
LightningServices.services.lightning.getInfo({}, (err, res) => {
|
||||||
if (err && err.code !== 12) {
|
if (
|
||||||
|
err &&
|
||||||
|
!err.details.includes('wallet not created') &&
|
||||||
|
!err.details.includes('wallet locked')
|
||||||
|
) {
|
||||||
reject(err)
|
reject(err)
|
||||||
} else {
|
} else {
|
||||||
resolve()
|
resolve()
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class LNDErrorManager {
|
||||||
*/
|
*/
|
||||||
const listener = (err, response) => {
|
const listener = (err, response) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
if (err.code === 12) {
|
if (err.details.includes("wallet not created") || err.details.includes("wallet locked")) {
|
||||||
res({
|
res({
|
||||||
service: 'walletUnlocker',
|
service: 'walletUnlocker',
|
||||||
message: 'Wallet locked',
|
message: 'Wallet locked',
|
||||||
|
|
|
||||||
|
|
@ -6520,10 +6520,10 @@ shellwords@^0.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
|
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
|
||||||
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
|
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
|
||||||
|
|
||||||
shock-common@^34.0.0:
|
shock-common@^37.0.0:
|
||||||
version "34.0.0"
|
version "37.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/shock-common/-/shock-common-34.0.0.tgz#30ffbcb136af9bc04b936999a7eebee4e18c67f0"
|
resolved "https://registry.yarnpkg.com/shock-common/-/shock-common-37.0.0.tgz#936ddb1e8ca94bb2b877d46f707fdcbdf9187071"
|
||||||
integrity sha512-i+io2YBh/GLXBz4YURdxg0t//gm2H3dmpkdU8gnEVe7i/ZdabYGhyBgEnUOMy1ZTMunvv/20U8wan9W4VrOaVQ==
|
integrity sha512-Yr/iY3TPcZy4kEPcxafMx8dRCKpHqmz4yNUUtV3/eM2mJ38JW0MwQ7gHNngsIRL7wSrudUMwkt8NTDft8NoExw==
|
||||||
dependencies:
|
dependencies:
|
||||||
immer "^6.0.6"
|
immer "^6.0.6"
|
||||||
lodash "^4.17.19"
|
lodash "^4.17.19"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue