1
0
mirror of https://github.com/bumi/lnrpc synced 2026-02-20 09:27:50 +00:00

5 Commits

Author SHA1 Message Date
f3366b2d7e gitignore build .gem files 2020-05-09 14:25:30 +02:00
7f7d125be6 v0.10.0 with support for routerrpc 2020-05-08 00:40:49 +02:00
2d5e0d0de4 v0.10.0 2020-05-02 20:51:40 +02:00
ef17006051 v0.9.0 2020-04-19 22:50:22 +02:00
54dd714064 Update rpc files for v0.9.0-beta 2020-04-19 22:46:25 +02:00
37 changed files with 6051 additions and 3489 deletions

View File

@@ -1,43 +1,43 @@
PATH PATH
remote: . remote: .
specs: specs:
lnrpc (0.14.1) lnrpc (0.10.0)
google-protobuf (>= 3.15.7) google-protobuf (>= 3.7)
grpc (>= 1.28.0) grpc (>= 1.19.0)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
diff-lcs (1.5.0) diff-lcs (1.3)
google-protobuf (3.21.1) google-protobuf (3.9.2)
googleapis-common-protos-types (1.3.1) googleapis-common-protos-types (1.0.4)
google-protobuf (~> 3.14) google-protobuf (~> 3.0)
grpc (1.46.3) grpc (1.24.0)
google-protobuf (~> 3.19) google-protobuf (~> 3.8)
googleapis-common-protos-types (~> 1.0) googleapis-common-protos-types (~> 1.0)
rake (13.0.6) rake (10.5.0)
rspec (3.11.0) rspec (3.9.0)
rspec-core (~> 3.11.0) rspec-core (~> 3.9.0)
rspec-expectations (~> 3.11.0) rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.11.0) rspec-mocks (~> 3.9.0)
rspec-core (3.11.0) rspec-core (3.9.0)
rspec-support (~> 3.11.0) rspec-support (~> 3.9.0)
rspec-expectations (3.11.0) rspec-expectations (3.9.0)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0) rspec-support (~> 3.9.0)
rspec-mocks (3.11.1) rspec-mocks (3.9.0)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0) rspec-support (~> 3.9.0)
rspec-support (3.11.0) rspec-support (3.9.0)
PLATFORMS PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
bundler (> 2.0) bundler (~> 1.17)
lnrpc! lnrpc!
rake (~> 13.0) rake (~> 10.0)
rspec (~> 3.0) rspec (~> 3.0)
BUNDLED WITH BUNDLED WITH
2.2.33 1.17.3

View File

@@ -3,12 +3,16 @@
a [gRPC](https://grpc.io/) client for [LND, the Lightning Network Daemon](https://github.com/lightningnetwork/lnd/) packed as ruby gem. a [gRPC](https://grpc.io/) client for [LND, the Lightning Network Daemon](https://github.com/lightningnetwork/lnd/) packed as ruby gem.
## Installation ## Installation
Note: there is still an GRPC/protobuf [issue with Ruby 2.7](https://github.com/protocolbuffers/protobuf/issues/7070).
So lnrpc requires Ruby < 2.7.
Add this line to your application's Gemfile: Add this line to your application's Gemfile:
```ruby ```ruby
gem 'lnrpc', '~> 0.13.0' gem 'lnrpc', '~> 0.7.0'
``` ```
lnrpc follows the lnd versioning, thus it is recommended to specify the exact version you need for your lnd node as dependency (see [#Versioning](#Versioning)). lnrpc follows the lnd versioning, thus it is recommended to specify the exact version you need for your lnd node as dependency (see [#Versioning](#Versioning)).
@@ -24,17 +28,15 @@ Or install it yourself as:
## Usage ## Usage
This gem makes the gRPC client classes created from the [LND service definitions](https://github.com/lightningnetwork/lnd/tree/master/lnrpc) available. This gem makes the gRPC client classes created from the [LND service defintions](https://github.com/lightningnetwork/lnd/tree/master/lnrpc) available.
```ruby ```ruby
require "lnrpc" require "lnrpc"
# With the changes in LND v.10.0 this load the `Lnrpc` and `Routerrpc` namespace # the gRPC client is available under the Lnrpc namespace, e.g.
Lnrpc::Lightning::Stub Lnrpc::Lightning::Stub
Routerrpc::Routerrpc::Stub
Lnrpc::GetInfoRequest Lnrpc::GetInfoRequest
...
``` ```
Learn more about [gRPC](https://grpc.io/) on [gRPC.io](https://grpc.io/). Learn more about [gRPC](https://grpc.io/) on [gRPC.io](https://grpc.io/).
@@ -56,26 +58,17 @@ client = Lnrpc::Lightning::Stub.new("localhost:10009", GRPC::Core::ChannelCreden
request = Lnrpc::GetInfoRequest.new request = Lnrpc::GetInfoRequest.new
response = client.get_info(request, { metadata: { macaroon: macaroon } }) #=> Lnrpc::GetInfoResponse response = client.get_info(request, { metadata: { macaroon: macaroon } }) #=> Lnrpc::GetInfoResponse
puts response.alias puts response.alias
router = Routerprc::Router::Stub.new("localhost:10009", GRPC::Core::ChannelCredentials.new(self.credentials))
...
``` ```
### Client wrapper ### Client wrapper
NOTE: v10.0 has breaking changes!
An optional client wrapper ([Lnrpc::Client](https://github.com/bumi/lnrpc/blob/master/lib/lnrpc/client.rb)) makes An optional client wrapper ([Lnrpc::Client](https://github.com/bumi/lnrpc/blob/master/lib/lnrpc/client.rb)) makes
initializing the gRPC client easier and removes the need for some boilerplate code for calling RPC methods. initializing the gRPC client easier and removes the need for some boilerplate code for calling RPC methods.
#### Example #### Example
```ruby ```ruby
lnd = Lnrpc::Client.new({credentials_path: '/path/to.cert.cls', macaroon_path: '/path/to/admin.macaroon'}) lnd = Lnrpc::Client.new({credentials_path: '/path/to.cert.cls', macaroon_path: '/path/to/admin.macaroon'})
lnd.lightning # => Lnrpc::Lightning::Stub lnd.get_info
lnd.router # => Lnrpc::Router::Stub
lnd.lightning.get_info
``` ```
Also have a look at [examples.rb](https://github.com/bumi/lnrpc/blob/master/examples.rb) Also have a look at [examples.rb](https://github.com/bumi/lnrpc/blob/master/examples.rb)
@@ -106,8 +99,7 @@ lnd = Lnrpc::Client.new({
}) })
# the actual gRPC client is available through: # the actual gRPC client is available through:
lnd.lightning.grpc lnd.grpc_client
lnd.router.grpc
``` ```
#### Calling RPC methods #### Calling RPC methods
@@ -119,19 +111,19 @@ If the first parameter is a hash or blank the corresponding gRPC request object
Example: Example:
```ruby ```ruby
client.lightning.get_info client.get_info
# is the same as: # is the same as:
client.lightning.grpc.get_info(Lnrpc::GetInfoRequest.new) client.grpc_client.get_info(Lnrpc::GetInfoRequest.new)
client.lightning.list_channels(inactive_only: true) client.list_channels(inactive_only: true)
# is the same as: # is the same as:
request = Lnrpc::ListChannelsRequest.new(inactive_only: true) request = Lnrpc::ListChannelsRequest.new(inactive_only: true)
client.lightning.grpc.list_channels(request) client.grpc_client.list_channels(request)
client.lightning.wallet_balance.total_balance client.wallet_balance.total_balance
# is the same as: # is the same as:
request = Lnrpc::WalletBalanceRequest.new request = Lnrpc::WalletBalanceRequest.new()
client.lightning.grpc.wallet_balance(request).total_balance client.grpc_client.wallet_balance(request).total_balance
``` ```
## Using with BTC Pay Server ## Using with BTC Pay Server
@@ -141,7 +133,7 @@ If you have a running BTC Pay Server with LND support, integrating with lnrpc is
- Navigate to Services on the Server Settings page - Navigate to Services on the Server Settings page
- Click "see information" for your gRPC Server - Click "see information" for your gRPC Server
- The link by "More details..." will expose the address and various macaroon hex strings - The link by "More details..." will expose the address and various macaroon hex strings
- Initialize your client with the options detailed above. BTC Pay Server utilizes LetsEncrypt for trusted TLC Certificates so set that option to nil. - Initialize your client with the options detailed above. BTC Pay Server utilizes LetsEncrypt for trusted TLC Certificates so set that option to nil.
Don't have a BTC Pay Server? [Setting one up is easy.](https://medium.com/@BtcpayServer/launch-btcpay-server-via-web-interface-and-deploy-full-bitcoin-node-lnd-in-less-than-a-minute-dc8bc6f06a3) Don't have a BTC Pay Server? [Setting one up is easy.](https://medium.com/@BtcpayServer/launch-btcpay-server-via-web-interface-and-deploy-full-bitcoin-node-lnd-in-less-than-a-minute-dc8bc6f06a3)
@@ -156,13 +148,13 @@ see [rubygems](https://rubygems.org/gems/lnrpc) for all available releases.
### Update service definitions ### Update service definitions
The script `generate-grpc-service-files.sh` can be used to generate the GRPC ruby files. 1. Generate `prc_pb.rb` and `rpc_services_pb.rb`
The files will be stored in `lib/grpc_services`
$ ./generate-grpc-service-files.sh $ grpc_tools_ruby_protoc -I/usr/local/include -I. -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --ruby_out=plugins=grpc,paths=source_relative:. --grpc_out=. rpc.proto
+ Make sure you have the [grpc-tools](https://rubygems.org/gems/grpc-tools) installed 2. Copy `rpc.proto`, `rpc_pb.rb` and `rpc_services_pb.rb` to `lib`
+ Make sure you have the lnd source in your $GOPATH/src folder
3. Update `rpc_services_pb.rb` to use `require_relative` to load `rpc_pb`
## Other resources ## Other resources

View File

@@ -2,68 +2,18 @@ require "lnrpc"
lnd = Lnrpc::Client.new() # use defaults for credentials, macaraoon and address lnd = Lnrpc::Client.new() # use defaults for credentials, macaraoon and address
get_info_res = lnd.lightning.get_info get_info_res = lnd.get_info
puts get_info_res.alias puts get_info_res.alias
puts lnd.lightning.wallet_balance.total_balance puts lnd.wallet_balance.total_balance
pay_request = "lntb50u1pw9mmndpp5nvnff958pxc9eqknwntyxapjw7l5grt5e2y70cmmnu0lljfa0sdqdpsgfkx7cmtwd68yetpd5s9xct5v4kxc6t5v5s8yatz0ysxwetdcqzysxqyz5vqjkhlyn40z76gyn7dx32p9j58dftve9xrlvnqqazht7w2fdauukhyhr9y4k3ngjn8s6srglj8swk7tm70ng54wdkq47ahytpwffvaeusp500csz" pay_request = "lntb50u1pw9mmndpp5nvnff958pxc9eqknwntyxapjw7l5grt5e2y70cmmnu0lljfa0sdqdpsgfkx7cmtwd68yetpd5s9xct5v4kxc6t5v5s8yatz0ysxwetdcqzysxqyz5vqjkhlyn40z76gyn7dx32p9j58dftve9xrlvnqqazht7w2fdauukhyhr9y4k3ngjn8s6srglj8swk7tm70ng54wdkq47ahytpwffvaeusp500csz"
lnd.pay(payment_request: pay_request) # or: lnd.pay(pay_request) # or:
lnd.router.send_payment_v2(payment_request: pay_request) lnd.send_payment_sync(payment_request: pay_request)
dest = Lnrpc.to_byte_array('038474ec195f497cf4036e5994bd820dd365bb0aaa7fb42bd9b536913a1a2dcc9e') invoice_res = lnd.add_invoice(value: 1000, memo: 'I :heart: ruby')
lnd.keysend(dest: dest, amt: 1000)
invoice_res = lnd.lightning.add_invoice(value: 1000, memo: 'I :heart: ruby')
puts invoice_res.payment_request puts invoice_res.payment_request
puts lnd.versioner.get_version lnd.subscribe_invoices(settle_index: 1).each do |invoice|
puts lnd.wallet_kit.estimate_fee(conf_target: 10)
puts lnd.wallet_kit.next_addr
lnd.lightning.subscribe_invoices(settle_index: 1).each do |invoice|
puts invoice.payment_request puts invoice.payment_request
end end
# sign a message with your node
signed_message = lnd.lightning.sign_message({ msg: "Money printer goes brrr" })
puts "Signature: " + signed_message.signature
# verify a signed message by another node
verification_response = lnd.lightning.verify_message({
msg: "Money printer goes brrr",
signature: signed_message.signature
})
puts "Pubkey: " + verification_response.pubkey # pubkey of the node that signed
puts "Valid: " + verification_response.valid.to_s
# get information on a node
node_info_response = lnd.lightning.get_node_info(pub_key: verification_response.pubkey, include_channels: true)
puts "Updated: " + Time.at(node_info_response.node.last_update).to_s
puts "Pubkey: " + node_info_response.node.pub_key.to_s
puts "Alias: " + node_info_response.node.alias.to_s
puts "Color: " + node_info_response.node.color.to_s
puts "Channels: " + node_info_response.num_channels.to_s
puts "Capacity SAT: " + node_info_response.total_capacity.to_s
puts "Address: " + node_info_response.node.addresses.first["addr"].to_s
# extract channel information
node_info_response.channels.each do |channel|
puts "Channel ID: " + channel["channel_id"].to_s
puts "Channel 1:" + channel["node1_pub"].to_s # pubkey of the first node
puts "Channel 2:" + channel["node2_pub"].to_s # pubkey of the second node
puts "Channel Capacity:" + channel["capacity"].to_s
end
# update channel policy
channel = lnd.lightning.list_channels.channels[0]
puts lnd.lightning.get_chan_info(chan_id: channel.chan_id)
channel_point = {
funding_txid_str: channel.channel_point.split(":")[0],
output_index: channel.channel_point.split(":")[1].to_i
}
lnd.lightning.update_channel_policy({
time_lock_delta: 40,
base_fee_msat: 1100,
chan_point: channel_point
})

View File

@@ -1,29 +0,0 @@
#!/bin/sh
set -o xtrace
FULL_PATH=$(realpath $0)
GEM_DIR=$(dirname $FULL_PATH)
LNRPC_TARGET_DIR="$GEM_DIR/lib/grpc_services"
CURRENT_DIR=$(pwd)
echo $CURRENT_DIR
cd $GOPATH/src/github.com/lightningnetwork/lnd/lnrpc
echo "Generating Ruby GRPC Service Files"
PROTOS="rpc.proto walletunlocker.proto **/*.proto"
# generate files for each proto
for file in $PROTOS; do
DIRECTORY=$(dirname "${file}")
echo "Generating protos from ${file}, into ${LNRPC_TARGET_DIR}/${DIRECTORY}"
# writes all ruby files in the ruby directory
grpc_tools_ruby_protoc -I. \
-I$GOPATH/src/github.com/googleapis/googleapis \
-I$GOPATH/src/github.com/lightningnetwork/lnd/lnrpc \
--ruby_out=plugins=grpc,paths=source_relative:${LNRPC_TARGET_DIR} \
--grpc_out=${LNRPC_TARGET_DIR} "${file}"
done
cd $CURRENT_DIR

View File

@@ -1,48 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: autopilotrpc/autopilot.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("autopilotrpc/autopilot.proto", :syntax => :proto3) do
add_message "autopilotrpc.StatusRequest" do
end
add_message "autopilotrpc.StatusResponse" do
optional :active, :bool, 1
end
add_message "autopilotrpc.ModifyStatusRequest" do
optional :enable, :bool, 1
end
add_message "autopilotrpc.ModifyStatusResponse" do
end
add_message "autopilotrpc.QueryScoresRequest" do
repeated :pubkeys, :string, 1
optional :ignore_local_state, :bool, 2
end
add_message "autopilotrpc.QueryScoresResponse" do
repeated :results, :message, 1, "autopilotrpc.QueryScoresResponse.HeuristicResult"
end
add_message "autopilotrpc.QueryScoresResponse.HeuristicResult" do
optional :heuristic, :string, 1
map :scores, :string, :double, 2
end
add_message "autopilotrpc.SetScoresRequest" do
optional :heuristic, :string, 1
map :scores, :string, :double, 2
end
add_message "autopilotrpc.SetScoresResponse" do
end
end
end
module Autopilotrpc
StatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.StatusRequest").msgclass
StatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.StatusResponse").msgclass
ModifyStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.ModifyStatusRequest").msgclass
ModifyStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.ModifyStatusResponse").msgclass
QueryScoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresRequest").msgclass
QueryScoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresResponse").msgclass
QueryScoresResponse::HeuristicResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresResponse.HeuristicResult").msgclass
SetScoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.SetScoresRequest").msgclass
SetScoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.SetScoresResponse").msgclass
end

View File

@@ -1,40 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: autopilotrpc/autopilot.proto for package 'autopilotrpc'
require 'grpc'
require 'autopilotrpc/autopilot_pb'
module Autopilotrpc
module Autopilot
# Autopilot is a service that can be used to get information about the current
# state of the daemon's autopilot agent, and also supply it with information
# that can be used when deciding where to open channels.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'autopilotrpc.Autopilot'
#
# Status returns whether the daemon's autopilot agent is active.
rpc :Status, ::Autopilotrpc::StatusRequest, ::Autopilotrpc::StatusResponse
#
# ModifyStatus is used to modify the status of the autopilot agent, like
# enabling or disabling it.
rpc :ModifyStatus, ::Autopilotrpc::ModifyStatusRequest, ::Autopilotrpc::ModifyStatusResponse
#
# QueryScores queries all available autopilot heuristics, in addition to any
# active combination of these heruristics, for the scores they would give to
# the given nodes.
rpc :QueryScores, ::Autopilotrpc::QueryScoresRequest, ::Autopilotrpc::QueryScoresResponse
#
# SetScores attempts to set the scores used by the running autopilot agent,
# if the external scoring heuristic is enabled.
rpc :SetScores, ::Autopilotrpc::SetScoresRequest, ::Autopilotrpc::SetScoresResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,67 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: chainrpc/chainnotifier.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("chainrpc/chainnotifier.proto", :syntax => :proto3) do
add_message "chainrpc.ConfRequest" do
optional :txid, :bytes, 1
optional :script, :bytes, 2
optional :num_confs, :uint32, 3
optional :height_hint, :uint32, 4
end
add_message "chainrpc.ConfDetails" do
optional :raw_tx, :bytes, 1
optional :block_hash, :bytes, 2
optional :block_height, :uint32, 3
optional :tx_index, :uint32, 4
end
add_message "chainrpc.Reorg" do
end
add_message "chainrpc.ConfEvent" do
oneof :event do
optional :conf, :message, 1, "chainrpc.ConfDetails"
optional :reorg, :message, 2, "chainrpc.Reorg"
end
end
add_message "chainrpc.Outpoint" do
optional :hash, :bytes, 1
optional :index, :uint32, 2
end
add_message "chainrpc.SpendRequest" do
optional :outpoint, :message, 1, "chainrpc.Outpoint"
optional :script, :bytes, 2
optional :height_hint, :uint32, 3
end
add_message "chainrpc.SpendDetails" do
optional :spending_outpoint, :message, 1, "chainrpc.Outpoint"
optional :raw_spending_tx, :bytes, 2
optional :spending_tx_hash, :bytes, 3
optional :spending_input_index, :uint32, 4
optional :spending_height, :uint32, 5
end
add_message "chainrpc.SpendEvent" do
oneof :event do
optional :spend, :message, 1, "chainrpc.SpendDetails"
optional :reorg, :message, 2, "chainrpc.Reorg"
end
end
add_message "chainrpc.BlockEpoch" do
optional :hash, :bytes, 1
optional :height, :uint32, 2
end
end
end
module Chainrpc
ConfRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfRequest").msgclass
ConfDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfDetails").msgclass
Reorg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.Reorg").msgclass
ConfEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfEvent").msgclass
Outpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.Outpoint").msgclass
SpendRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendRequest").msgclass
SpendDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendDetails").msgclass
SpendEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendEvent").msgclass
BlockEpoch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.BlockEpoch").msgclass
end

View File

@@ -1,51 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: chainrpc/chainnotifier.proto for package 'chainrpc'
require 'grpc'
require 'chainrpc/chainnotifier_pb'
module Chainrpc
module ChainNotifier
# ChainNotifier is a service that can be used to get information about the
# chain backend by registering notifiers for chain events.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'chainrpc.ChainNotifier'
#
# RegisterConfirmationsNtfn is a synchronous response-streaming RPC that
# registers an intent for a client to be notified once a confirmation request
# has reached its required number of confirmations on-chain.
#
# A client can specify whether the confirmation request should be for a
# particular transaction by its hash or for an output script by specifying a
# zero hash.
rpc :RegisterConfirmationsNtfn, ::Chainrpc::ConfRequest, stream(::Chainrpc::ConfEvent)
#
# RegisterSpendNtfn is a synchronous response-streaming RPC that registers an
# intent for a client to be notification once a spend request has been spent
# by a transaction that has confirmed on-chain.
#
# A client can specify whether the spend request should be for a particular
# outpoint or for an output script by specifying a zero outpoint.
rpc :RegisterSpendNtfn, ::Chainrpc::SpendRequest, stream(::Chainrpc::SpendEvent)
#
# RegisterBlockEpochNtfn is a synchronous response-streaming RPC that
# registers an intent for a client to be notified of blocks in the chain. The
# stream will return a hash and height tuple of a block for each new/stale
# block in the chain. It is the client's responsibility to determine whether
# the tuple returned is for a new or stale block in the chain.
#
# A client can also request a historical backlog of blocks from a particular
# point. This allows clients to be idempotent by ensuring that they do not
# missing processing a single block within the chain.
rpc :RegisterBlockEpochNtfn, ::Chainrpc::BlockEpoch, stream(::Chainrpc::BlockEpoch)
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,66 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: invoicesrpc/invoices.proto
require 'google/protobuf'
require 'rpc_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("invoicesrpc/invoices.proto", :syntax => :proto3) do
add_message "invoicesrpc.CancelInvoiceMsg" do
optional :payment_hash, :bytes, 1
end
add_message "invoicesrpc.CancelInvoiceResp" do
end
add_message "invoicesrpc.AddHoldInvoiceRequest" do
optional :memo, :string, 1
optional :hash, :bytes, 2
optional :value, :int64, 3
optional :value_msat, :int64, 10
optional :description_hash, :bytes, 4
optional :expiry, :int64, 5
optional :fallback_addr, :string, 6
optional :cltv_expiry, :uint64, 7
repeated :route_hints, :message, 8, "lnrpc.RouteHint"
optional :private, :bool, 9
end
add_message "invoicesrpc.AddHoldInvoiceResp" do
optional :payment_request, :string, 1
optional :add_index, :uint64, 2
optional :payment_addr, :bytes, 3
end
add_message "invoicesrpc.SettleInvoiceMsg" do
optional :preimage, :bytes, 1
end
add_message "invoicesrpc.SettleInvoiceResp" do
end
add_message "invoicesrpc.SubscribeSingleInvoiceRequest" do
optional :r_hash, :bytes, 2
end
add_message "invoicesrpc.LookupInvoiceMsg" do
optional :lookup_modifier, :enum, 4, "invoicesrpc.LookupModifier"
oneof :invoice_ref do
optional :payment_hash, :bytes, 1
optional :payment_addr, :bytes, 2
optional :set_id, :bytes, 3
end
end
add_enum "invoicesrpc.LookupModifier" do
value :DEFAULT, 0
value :HTLC_SET_ONLY, 1
value :HTLC_SET_BLANK, 2
end
end
end
module Invoicesrpc
CancelInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.CancelInvoiceMsg").msgclass
CancelInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.CancelInvoiceResp").msgclass
AddHoldInvoiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.AddHoldInvoiceRequest").msgclass
AddHoldInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.AddHoldInvoiceResp").msgclass
SettleInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceMsg").msgclass
SettleInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceResp").msgclass
SubscribeSingleInvoiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SubscribeSingleInvoiceRequest").msgclass
LookupInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.LookupInvoiceMsg").msgclass
LookupModifier = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.LookupModifier").enummodule
end

View File

@@ -1,45 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: invoicesrpc/invoices.proto for package 'invoicesrpc'
require 'grpc'
require 'invoicesrpc/invoices_pb'
module Invoicesrpc
module Invoices
# Invoices is a service that can be used to create, accept, settle and cancel
# invoices.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'invoicesrpc.Invoices'
#
# SubscribeSingleInvoice returns a uni-directional stream (server -> client)
# to notify the client of state transitions of the specified invoice.
# Initially the current invoice state is always sent out.
rpc :SubscribeSingleInvoice, ::Invoicesrpc::SubscribeSingleInvoiceRequest, stream(::Lnrpc::Invoice)
#
# CancelInvoice cancels a currently open invoice. If the invoice is already
# canceled, this call will succeed. If the invoice is already settled, it will
# fail.
rpc :CancelInvoice, ::Invoicesrpc::CancelInvoiceMsg, ::Invoicesrpc::CancelInvoiceResp
#
# AddHoldInvoice creates a hold invoice. It ties the invoice to the hash
# supplied in the request.
rpc :AddHoldInvoice, ::Invoicesrpc::AddHoldInvoiceRequest, ::Invoicesrpc::AddHoldInvoiceResp
#
# SettleInvoice settles an accepted invoice. If the invoice is already
# settled, this call will succeed.
rpc :SettleInvoice, ::Invoicesrpc::SettleInvoiceMsg, ::Invoicesrpc::SettleInvoiceResp
#
# LookupInvoiceV2 attempts to look up at invoice. An invoice can be refrenced
# using either its payment hash, payment address, or set ID.
rpc :LookupInvoiceV2, ::Invoicesrpc::LookupInvoiceMsg, ::Lnrpc::Invoice
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,19 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: lnclipb/lncli.proto
require 'google/protobuf'
require 'verrpc/verrpc_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("lnclipb/lncli.proto", :syntax => :proto3) do
add_message "lnclipb.VersionResponse" do
optional :lncli, :message, 1, "verrpc.Version"
optional :lnd, :message, 2, "verrpc.Version"
end
end
end
module Lnclipb
VersionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnclipb.VersionResponse").msgclass
end

View File

@@ -1,280 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: routerrpc/router.proto
require 'google/protobuf'
require 'rpc_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("routerrpc/router.proto", :syntax => :proto3) do
add_message "routerrpc.SendPaymentRequest" do
optional :dest, :bytes, 1
optional :amt, :int64, 2
optional :amt_msat, :int64, 12
optional :payment_hash, :bytes, 3
optional :final_cltv_delta, :int32, 4
optional :payment_addr, :bytes, 20
optional :payment_request, :string, 5
optional :timeout_seconds, :int32, 6
optional :fee_limit_sat, :int64, 7
optional :fee_limit_msat, :int64, 13
optional :outgoing_chan_id, :uint64, 8
repeated :outgoing_chan_ids, :uint64, 19
optional :last_hop_pubkey, :bytes, 14
optional :cltv_limit, :int32, 9
repeated :route_hints, :message, 10, "lnrpc.RouteHint"
map :dest_custom_records, :uint64, :bytes, 11
optional :allow_self_payment, :bool, 15
repeated :dest_features, :enum, 16, "lnrpc.FeatureBit"
optional :max_parts, :uint32, 17
optional :no_inflight_updates, :bool, 18
optional :max_shard_size_msat, :uint64, 21
optional :amp, :bool, 22
end
add_message "routerrpc.TrackPaymentRequest" do
optional :payment_hash, :bytes, 1
optional :no_inflight_updates, :bool, 2
end
add_message "routerrpc.RouteFeeRequest" do
optional :dest, :bytes, 1
optional :amt_sat, :int64, 2
end
add_message "routerrpc.RouteFeeResponse" do
optional :routing_fee_msat, :int64, 1
optional :time_lock_delay, :int64, 2
end
add_message "routerrpc.SendToRouteRequest" do
optional :payment_hash, :bytes, 1
optional :route, :message, 2, "lnrpc.Route"
end
add_message "routerrpc.SendToRouteResponse" do
optional :preimage, :bytes, 1
optional :failure, :message, 2, "lnrpc.Failure"
end
add_message "routerrpc.ResetMissionControlRequest" do
end
add_message "routerrpc.ResetMissionControlResponse" do
end
add_message "routerrpc.QueryMissionControlRequest" do
end
add_message "routerrpc.QueryMissionControlResponse" do
repeated :pairs, :message, 2, "routerrpc.PairHistory"
end
add_message "routerrpc.XImportMissionControlRequest" do
repeated :pairs, :message, 1, "routerrpc.PairHistory"
optional :force, :bool, 2
end
add_message "routerrpc.XImportMissionControlResponse" do
end
add_message "routerrpc.PairHistory" do
optional :node_from, :bytes, 1
optional :node_to, :bytes, 2
optional :history, :message, 7, "routerrpc.PairData"
end
add_message "routerrpc.PairData" do
optional :fail_time, :int64, 1
optional :fail_amt_sat, :int64, 2
optional :fail_amt_msat, :int64, 4
optional :success_time, :int64, 5
optional :success_amt_sat, :int64, 6
optional :success_amt_msat, :int64, 7
end
add_message "routerrpc.GetMissionControlConfigRequest" do
end
add_message "routerrpc.GetMissionControlConfigResponse" do
optional :config, :message, 1, "routerrpc.MissionControlConfig"
end
add_message "routerrpc.SetMissionControlConfigRequest" do
optional :config, :message, 1, "routerrpc.MissionControlConfig"
end
add_message "routerrpc.SetMissionControlConfigResponse" do
end
add_message "routerrpc.MissionControlConfig" do
optional :half_life_seconds, :uint64, 1
optional :hop_probability, :float, 2
optional :weight, :float, 3
optional :maximum_payment_results, :uint32, 4
optional :minimum_failure_relax_interval, :uint64, 5
end
add_message "routerrpc.QueryProbabilityRequest" do
optional :from_node, :bytes, 1
optional :to_node, :bytes, 2
optional :amt_msat, :int64, 3
end
add_message "routerrpc.QueryProbabilityResponse" do
optional :probability, :double, 1
optional :history, :message, 2, "routerrpc.PairData"
end
add_message "routerrpc.BuildRouteRequest" do
optional :amt_msat, :int64, 1
optional :final_cltv_delta, :int32, 2
optional :outgoing_chan_id, :uint64, 3
repeated :hop_pubkeys, :bytes, 4
optional :payment_addr, :bytes, 5
end
add_message "routerrpc.BuildRouteResponse" do
optional :route, :message, 1, "lnrpc.Route"
end
add_message "routerrpc.SubscribeHtlcEventsRequest" do
end
add_message "routerrpc.HtlcEvent" do
optional :incoming_channel_id, :uint64, 1
optional :outgoing_channel_id, :uint64, 2
optional :incoming_htlc_id, :uint64, 3
optional :outgoing_htlc_id, :uint64, 4
optional :timestamp_ns, :uint64, 5
optional :event_type, :enum, 6, "routerrpc.HtlcEvent.EventType"
oneof :event do
optional :forward_event, :message, 7, "routerrpc.ForwardEvent"
optional :forward_fail_event, :message, 8, "routerrpc.ForwardFailEvent"
optional :settle_event, :message, 9, "routerrpc.SettleEvent"
optional :link_fail_event, :message, 10, "routerrpc.LinkFailEvent"
end
end
add_enum "routerrpc.HtlcEvent.EventType" do
value :UNKNOWN, 0
value :SEND, 1
value :RECEIVE, 2
value :FORWARD, 3
end
add_message "routerrpc.HtlcInfo" do
optional :incoming_timelock, :uint32, 1
optional :outgoing_timelock, :uint32, 2
optional :incoming_amt_msat, :uint64, 3
optional :outgoing_amt_msat, :uint64, 4
end
add_message "routerrpc.ForwardEvent" do
optional :info, :message, 1, "routerrpc.HtlcInfo"
end
add_message "routerrpc.ForwardFailEvent" do
end
add_message "routerrpc.SettleEvent" do
optional :preimage, :bytes, 1
end
add_message "routerrpc.LinkFailEvent" do
optional :info, :message, 1, "routerrpc.HtlcInfo"
optional :wire_failure, :enum, 2, "lnrpc.Failure.FailureCode"
optional :failure_detail, :enum, 3, "routerrpc.FailureDetail"
optional :failure_string, :string, 4
end
add_message "routerrpc.PaymentStatus" do
optional :state, :enum, 1, "routerrpc.PaymentState"
optional :preimage, :bytes, 2
repeated :htlcs, :message, 4, "lnrpc.HTLCAttempt"
end
add_message "routerrpc.CircuitKey" do
optional :chan_id, :uint64, 1
optional :htlc_id, :uint64, 2
end
add_message "routerrpc.ForwardHtlcInterceptRequest" do
optional :incoming_circuit_key, :message, 1, "routerrpc.CircuitKey"
optional :incoming_amount_msat, :uint64, 5
optional :incoming_expiry, :uint32, 6
optional :payment_hash, :bytes, 2
optional :outgoing_requested_chan_id, :uint64, 7
optional :outgoing_amount_msat, :uint64, 3
optional :outgoing_expiry, :uint32, 4
map :custom_records, :uint64, :bytes, 8
optional :onion_blob, :bytes, 9
end
add_message "routerrpc.ForwardHtlcInterceptResponse" do
optional :incoming_circuit_key, :message, 1, "routerrpc.CircuitKey"
optional :action, :enum, 2, "routerrpc.ResolveHoldForwardAction"
optional :preimage, :bytes, 3
end
add_message "routerrpc.UpdateChanStatusRequest" do
optional :chan_point, :message, 1, "lnrpc.ChannelPoint"
optional :action, :enum, 2, "routerrpc.ChanStatusAction"
end
add_message "routerrpc.UpdateChanStatusResponse" do
end
add_enum "routerrpc.FailureDetail" do
value :UNKNOWN, 0
value :NO_DETAIL, 1
value :ONION_DECODE, 2
value :LINK_NOT_ELIGIBLE, 3
value :ON_CHAIN_TIMEOUT, 4
value :HTLC_EXCEEDS_MAX, 5
value :INSUFFICIENT_BALANCE, 6
value :INCOMPLETE_FORWARD, 7
value :HTLC_ADD_FAILED, 8
value :FORWARDS_DISABLED, 9
value :INVOICE_CANCELED, 10
value :INVOICE_UNDERPAID, 11
value :INVOICE_EXPIRY_TOO_SOON, 12
value :INVOICE_NOT_OPEN, 13
value :MPP_INVOICE_TIMEOUT, 14
value :ADDRESS_MISMATCH, 15
value :SET_TOTAL_MISMATCH, 16
value :SET_TOTAL_TOO_LOW, 17
value :SET_OVERPAID, 18
value :UNKNOWN_INVOICE, 19
value :INVALID_KEYSEND, 20
value :MPP_IN_PROGRESS, 21
value :CIRCULAR_ROUTE, 22
end
add_enum "routerrpc.PaymentState" do
value :IN_FLIGHT, 0
value :SUCCEEDED, 1
value :FAILED_TIMEOUT, 2
value :FAILED_NO_ROUTE, 3
value :FAILED_ERROR, 4
value :FAILED_INCORRECT_PAYMENT_DETAILS, 5
value :FAILED_INSUFFICIENT_BALANCE, 6
end
add_enum "routerrpc.ResolveHoldForwardAction" do
value :SETTLE, 0
value :FAIL, 1
value :RESUME, 2
end
add_enum "routerrpc.ChanStatusAction" do
value :ENABLE, 0
value :DISABLE, 1
value :AUTO, 2
end
end
end
module Routerrpc
SendPaymentRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendPaymentRequest").msgclass
TrackPaymentRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.TrackPaymentRequest").msgclass
RouteFeeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.RouteFeeRequest").msgclass
RouteFeeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.RouteFeeResponse").msgclass
SendToRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendToRouteRequest").msgclass
SendToRouteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendToRouteResponse").msgclass
ResetMissionControlRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResetMissionControlRequest").msgclass
ResetMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResetMissionControlResponse").msgclass
QueryMissionControlRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlRequest").msgclass
QueryMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlResponse").msgclass
XImportMissionControlRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.XImportMissionControlRequest").msgclass
XImportMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.XImportMissionControlResponse").msgclass
PairHistory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairHistory").msgclass
PairData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairData").msgclass
GetMissionControlConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.GetMissionControlConfigRequest").msgclass
GetMissionControlConfigResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.GetMissionControlConfigResponse").msgclass
SetMissionControlConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SetMissionControlConfigRequest").msgclass
SetMissionControlConfigResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SetMissionControlConfigResponse").msgclass
MissionControlConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.MissionControlConfig").msgclass
QueryProbabilityRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityRequest").msgclass
QueryProbabilityResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityResponse").msgclass
BuildRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.BuildRouteRequest").msgclass
BuildRouteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.BuildRouteResponse").msgclass
SubscribeHtlcEventsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SubscribeHtlcEventsRequest").msgclass
HtlcEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcEvent").msgclass
HtlcEvent::EventType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcEvent.EventType").enummodule
HtlcInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcInfo").msgclass
ForwardEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardEvent").msgclass
ForwardFailEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardFailEvent").msgclass
SettleEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SettleEvent").msgclass
LinkFailEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.LinkFailEvent").msgclass
PaymentStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PaymentStatus").msgclass
CircuitKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.CircuitKey").msgclass
ForwardHtlcInterceptRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardHtlcInterceptRequest").msgclass
ForwardHtlcInterceptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardHtlcInterceptResponse").msgclass
UpdateChanStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.UpdateChanStatusRequest").msgclass
UpdateChanStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.UpdateChanStatusResponse").msgclass
FailureDetail = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.FailureDetail").enummodule
PaymentState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PaymentState").enummodule
ResolveHoldForwardAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResolveHoldForwardAction").enummodule
ChanStatusAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ChanStatusAction").enummodule
end

View File

@@ -1,105 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: routerrpc/router.proto for package 'routerrpc'
require 'grpc'
require 'routerrpc/router_pb'
module Routerrpc
module Router
# Router is a service that offers advanced interaction with the router
# subsystem of the daemon.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'routerrpc.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, ::Routerrpc::SendPaymentRequest, stream(::Lnrpc::Payment)
#
# TrackPaymentV2 returns an update stream for the payment identified by the
# payment hash.
rpc :TrackPaymentV2, ::Routerrpc::TrackPaymentRequest, 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, ::Routerrpc::RouteFeeRequest, ::Routerrpc::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, ::Routerrpc::SendToRouteRequest, ::Routerrpc::SendToRouteResponse
#
# 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, ::Routerrpc::SendToRouteRequest, ::Lnrpc::HTLCAttempt
#
# ResetMissionControl clears all mission control state and starts with a clean
# slate.
rpc :ResetMissionControl, ::Routerrpc::ResetMissionControlRequest, ::Routerrpc::ResetMissionControlResponse
#
# QueryMissionControl exposes the internal mission control state to callers.
# It is a development feature.
rpc :QueryMissionControl, ::Routerrpc::QueryMissionControlRequest, ::Routerrpc::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, ::Routerrpc::XImportMissionControlRequest, ::Routerrpc::XImportMissionControlResponse
#
# GetMissionControlConfig returns mission control's current config.
rpc :GetMissionControlConfig, ::Routerrpc::GetMissionControlConfigRequest, ::Routerrpc::GetMissionControlConfigResponse
#
# SetMissionControlConfig will set mission control's config, if the config
# provided is valid.
rpc :SetMissionControlConfig, ::Routerrpc::SetMissionControlConfigRequest, ::Routerrpc::SetMissionControlConfigResponse
#
# QueryProbability returns the current success probability estimate for a
# given node pair and amount.
rpc :QueryProbability, ::Routerrpc::QueryProbabilityRequest, ::Routerrpc::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, ::Routerrpc::BuildRouteRequest, ::Routerrpc::BuildRouteResponse
#
# SubscribeHtlcEvents creates a uni-directional stream from the server to
# the client which delivers a stream of htlc events.
rpc :SubscribeHtlcEvents, ::Routerrpc::SubscribeHtlcEventsRequest, stream(::Routerrpc::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, ::Routerrpc::SendPaymentRequest, stream(::Routerrpc::PaymentStatus)
#
# Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
# the payment identified by the payment hash.
rpc :TrackPayment, ::Routerrpc::TrackPaymentRequest, stream(::Routerrpc::PaymentStatus)
# *
# 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(::Routerrpc::ForwardHtlcInterceptResponse), stream(::Routerrpc::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, ::Routerrpc::UpdateChanStatusRequest, ::Routerrpc::UpdateChanStatusResponse
end
Stub = Service.rpc_stub_class
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,86 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: signrpc/signer.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("signrpc/signer.proto", :syntax => :proto3) do
add_message "signrpc.KeyLocator" do
optional :key_family, :int32, 1
optional :key_index, :int32, 2
end
add_message "signrpc.KeyDescriptor" do
optional :raw_key_bytes, :bytes, 1
optional :key_loc, :message, 2, "signrpc.KeyLocator"
end
add_message "signrpc.TxOut" do
optional :value, :int64, 1
optional :pk_script, :bytes, 2
end
add_message "signrpc.SignDescriptor" do
optional :key_desc, :message, 1, "signrpc.KeyDescriptor"
optional :single_tweak, :bytes, 2
optional :double_tweak, :bytes, 3
optional :witness_script, :bytes, 4
optional :output, :message, 5, "signrpc.TxOut"
optional :sighash, :uint32, 7
optional :input_index, :int32, 8
end
add_message "signrpc.SignReq" do
optional :raw_tx_bytes, :bytes, 1
repeated :sign_descs, :message, 2, "signrpc.SignDescriptor"
end
add_message "signrpc.SignResp" do
repeated :raw_sigs, :bytes, 1
end
add_message "signrpc.InputScript" do
repeated :witness, :bytes, 1
optional :sig_script, :bytes, 2
end
add_message "signrpc.InputScriptResp" do
repeated :input_scripts, :message, 1, "signrpc.InputScript"
end
add_message "signrpc.SignMessageReq" do
optional :msg, :bytes, 1
optional :key_loc, :message, 2, "signrpc.KeyLocator"
optional :double_hash, :bool, 3
optional :compact_sig, :bool, 4
end
add_message "signrpc.SignMessageResp" do
optional :signature, :bytes, 1
end
add_message "signrpc.VerifyMessageReq" do
optional :msg, :bytes, 1
optional :signature, :bytes, 2
optional :pubkey, :bytes, 3
end
add_message "signrpc.VerifyMessageResp" do
optional :valid, :bool, 1
end
add_message "signrpc.SharedKeyRequest" do
optional :ephemeral_pubkey, :bytes, 1
optional :key_loc, :message, 2, "signrpc.KeyLocator"
optional :key_desc, :message, 3, "signrpc.KeyDescriptor"
end
add_message "signrpc.SharedKeyResponse" do
optional :shared_key, :bytes, 1
end
end
end
module Signrpc
KeyLocator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.KeyLocator").msgclass
KeyDescriptor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.KeyDescriptor").msgclass
TxOut = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.TxOut").msgclass
SignDescriptor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SignDescriptor").msgclass
SignReq = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SignReq").msgclass
SignResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SignResp").msgclass
InputScript = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.InputScript").msgclass
InputScriptResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.InputScriptResp").msgclass
SignMessageReq = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SignMessageReq").msgclass
SignMessageResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SignMessageResp").msgclass
VerifyMessageReq = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.VerifyMessageReq").msgclass
VerifyMessageResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.VerifyMessageResp").msgclass
SharedKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SharedKeyRequest").msgclass
SharedKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("signrpc.SharedKeyResponse").msgclass
end

View File

@@ -1,69 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: signrpc/signer.proto for package 'signrpc'
require 'grpc'
require 'signrpc/signer_pb'
module Signrpc
module Signer
# Signer is a service that gives access to the signing functionality of the
# daemon's wallet.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'signrpc.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, ::Signrpc::SignReq, ::Signrpc::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, ::Signrpc::SignReq, ::Signrpc::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, ::Signrpc::SignMessageReq, ::Signrpc::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, ::Signrpc::VerifyMessageReq, ::Signrpc::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_desc parameter. Either a key locator or a raw
# public key is expected in the key_desc, if neither is supplied, defaults to
# the node's identity private key:
# 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, ::Signrpc::SharedKeyRequest, ::Signrpc::SharedKeyResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,27 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: verrpc/verrpc.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("verrpc/verrpc.proto", :syntax => :proto3) do
add_message "verrpc.VersionRequest" do
end
add_message "verrpc.Version" do
optional :commit, :string, 1
optional :commit_hash, :string, 2
optional :version, :string, 3
optional :app_major, :uint32, 4
optional :app_minor, :uint32, 5
optional :app_patch, :uint32, 6
optional :app_pre_release, :string, 7
repeated :build_tags, :string, 8
optional :go_version, :string, 9
end
end
end
module Verrpc
VersionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("verrpc.VersionRequest").msgclass
Version = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("verrpc.Version").msgclass
end

View File

@@ -1,27 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: verrpc/verrpc.proto for package 'verrpc'
require 'grpc'
require 'verrpc/verrpc_pb'
module Verrpc
module Versioner
# Versioner is a service that can be used to get information about the version
# and build information of the running daemon.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'verrpc.Versioner'
# lncli: `version`
# GetVersion returns the current version and build information of the running
# daemon.
rpc :GetVersion, ::Verrpc::VersionRequest, ::Verrpc::Version
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,265 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: walletrpc/walletkit.proto
require 'google/protobuf'
require 'rpc_pb'
require 'signrpc/signer_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("walletrpc/walletkit.proto", :syntax => :proto3) do
add_message "walletrpc.ListUnspentRequest" do
optional :min_confs, :int32, 1
optional :max_confs, :int32, 2
optional :account, :string, 3
end
add_message "walletrpc.ListUnspentResponse" do
repeated :utxos, :message, 1, "lnrpc.Utxo"
end
add_message "walletrpc.LeaseOutputRequest" do
optional :id, :bytes, 1
optional :outpoint, :message, 2, "lnrpc.OutPoint"
optional :expiration_seconds, :uint64, 3
end
add_message "walletrpc.LeaseOutputResponse" do
optional :expiration, :uint64, 1
end
add_message "walletrpc.ReleaseOutputRequest" do
optional :id, :bytes, 1
optional :outpoint, :message, 2, "lnrpc.OutPoint"
end
add_message "walletrpc.ReleaseOutputResponse" do
end
add_message "walletrpc.KeyReq" do
optional :key_finger_print, :int32, 1
optional :key_family, :int32, 2
end
add_message "walletrpc.AddrRequest" do
optional :account, :string, 1
optional :type, :enum, 2, "walletrpc.AddressType"
optional :change, :bool, 3
end
add_message "walletrpc.AddrResponse" do
optional :addr, :string, 1
end
add_message "walletrpc.Account" do
optional :name, :string, 1
optional :address_type, :enum, 2, "walletrpc.AddressType"
optional :extended_public_key, :string, 3
optional :master_key_fingerprint, :bytes, 4
optional :derivation_path, :string, 5
optional :external_key_count, :uint32, 6
optional :internal_key_count, :uint32, 7
optional :watch_only, :bool, 8
end
add_message "walletrpc.ListAccountsRequest" do
optional :name, :string, 1
optional :address_type, :enum, 2, "walletrpc.AddressType"
end
add_message "walletrpc.ListAccountsResponse" do
repeated :accounts, :message, 1, "walletrpc.Account"
end
add_message "walletrpc.ImportAccountRequest" do
optional :name, :string, 1
optional :extended_public_key, :string, 2
optional :master_key_fingerprint, :bytes, 3
optional :address_type, :enum, 4, "walletrpc.AddressType"
optional :dry_run, :bool, 5
end
add_message "walletrpc.ImportAccountResponse" do
optional :account, :message, 1, "walletrpc.Account"
repeated :dry_run_external_addrs, :string, 2
repeated :dry_run_internal_addrs, :string, 3
end
add_message "walletrpc.ImportPublicKeyRequest" do
optional :public_key, :bytes, 1
optional :address_type, :enum, 2, "walletrpc.AddressType"
end
add_message "walletrpc.ImportPublicKeyResponse" do
end
add_message "walletrpc.Transaction" do
optional :tx_hex, :bytes, 1
optional :label, :string, 2
end
add_message "walletrpc.PublishResponse" do
optional :publish_error, :string, 1
end
add_message "walletrpc.SendOutputsRequest" do
optional :sat_per_kw, :int64, 1
repeated :outputs, :message, 2, "signrpc.TxOut"
optional :label, :string, 3
optional :min_confs, :int32, 4
optional :spend_unconfirmed, :bool, 5
end
add_message "walletrpc.SendOutputsResponse" do
optional :raw_tx, :bytes, 1
end
add_message "walletrpc.EstimateFeeRequest" do
optional :conf_target, :int32, 1
end
add_message "walletrpc.EstimateFeeResponse" do
optional :sat_per_kw, :int64, 1
end
add_message "walletrpc.PendingSweep" do
optional :outpoint, :message, 1, "lnrpc.OutPoint"
optional :witness_type, :enum, 2, "walletrpc.WitnessType"
optional :amount_sat, :uint32, 3
optional :sat_per_byte, :uint32, 4
optional :broadcast_attempts, :uint32, 5
optional :next_broadcast_height, :uint32, 6
optional :requested_conf_target, :uint32, 8
optional :requested_sat_per_byte, :uint32, 9
optional :sat_per_vbyte, :uint64, 10
optional :requested_sat_per_vbyte, :uint64, 11
optional :force, :bool, 7
end
add_message "walletrpc.PendingSweepsRequest" do
end
add_message "walletrpc.PendingSweepsResponse" do
repeated :pending_sweeps, :message, 1, "walletrpc.PendingSweep"
end
add_message "walletrpc.BumpFeeRequest" do
optional :outpoint, :message, 1, "lnrpc.OutPoint"
optional :target_conf, :uint32, 2
optional :sat_per_byte, :uint32, 3
optional :force, :bool, 4
optional :sat_per_vbyte, :uint64, 5
end
add_message "walletrpc.BumpFeeResponse" do
end
add_message "walletrpc.ListSweepsRequest" do
optional :verbose, :bool, 1
end
add_message "walletrpc.ListSweepsResponse" do
oneof :sweeps do
optional :transaction_details, :message, 1, "lnrpc.TransactionDetails"
optional :transaction_ids, :message, 2, "walletrpc.ListSweepsResponse.TransactionIDs"
end
end
add_message "walletrpc.ListSweepsResponse.TransactionIDs" do
repeated :transaction_ids, :string, 1
end
add_message "walletrpc.LabelTransactionRequest" do
optional :txid, :bytes, 1
optional :label, :string, 2
optional :overwrite, :bool, 3
end
add_message "walletrpc.LabelTransactionResponse" do
end
add_message "walletrpc.FundPsbtRequest" do
optional :account, :string, 5
optional :min_confs, :int32, 6
optional :spend_unconfirmed, :bool, 7
oneof :template do
optional :psbt, :bytes, 1
optional :raw, :message, 2, "walletrpc.TxTemplate"
end
oneof :fees do
optional :target_conf, :uint32, 3
optional :sat_per_vbyte, :uint64, 4
end
end
add_message "walletrpc.FundPsbtResponse" do
optional :funded_psbt, :bytes, 1
optional :change_output_index, :int32, 2
repeated :locked_utxos, :message, 3, "walletrpc.UtxoLease"
end
add_message "walletrpc.TxTemplate" do
repeated :inputs, :message, 1, "lnrpc.OutPoint"
map :outputs, :string, :uint64, 2
end
add_message "walletrpc.UtxoLease" do
optional :id, :bytes, 1
optional :outpoint, :message, 2, "lnrpc.OutPoint"
optional :expiration, :uint64, 3
end
add_message "walletrpc.SignPsbtRequest" do
optional :funded_psbt, :bytes, 1
end
add_message "walletrpc.SignPsbtResponse" do
optional :signed_psbt, :bytes, 1
end
add_message "walletrpc.FinalizePsbtRequest" do
optional :funded_psbt, :bytes, 1
optional :account, :string, 5
end
add_message "walletrpc.FinalizePsbtResponse" do
optional :signed_psbt, :bytes, 1
optional :raw_final_tx, :bytes, 2
end
add_message "walletrpc.ListLeasesRequest" do
end
add_message "walletrpc.ListLeasesResponse" do
repeated :locked_utxos, :message, 1, "walletrpc.UtxoLease"
end
add_enum "walletrpc.AddressType" do
value :UNKNOWN, 0
value :WITNESS_PUBKEY_HASH, 1
value :NESTED_WITNESS_PUBKEY_HASH, 2
value :HYBRID_NESTED_WITNESS_PUBKEY_HASH, 3
end
add_enum "walletrpc.WitnessType" do
value :UNKNOWN_WITNESS, 0
value :COMMITMENT_TIME_LOCK, 1
value :COMMITMENT_NO_DELAY, 2
value :COMMITMENT_REVOKE, 3
value :HTLC_OFFERED_REVOKE, 4
value :HTLC_ACCEPTED_REVOKE, 5
value :HTLC_OFFERED_TIMEOUT_SECOND_LEVEL, 6
value :HTLC_ACCEPTED_SUCCESS_SECOND_LEVEL, 7
value :HTLC_OFFERED_REMOTE_TIMEOUT, 8
value :HTLC_ACCEPTED_REMOTE_SUCCESS, 9
value :HTLC_SECOND_LEVEL_REVOKE, 10
value :WITNESS_KEY_HASH, 11
value :NESTED_WITNESS_KEY_HASH, 12
value :COMMITMENT_ANCHOR, 13
end
end
end
module Walletrpc
ListUnspentRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListUnspentRequest").msgclass
ListUnspentResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListUnspentResponse").msgclass
LeaseOutputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.LeaseOutputRequest").msgclass
LeaseOutputResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.LeaseOutputResponse").msgclass
ReleaseOutputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ReleaseOutputRequest").msgclass
ReleaseOutputResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ReleaseOutputResponse").msgclass
KeyReq = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.KeyReq").msgclass
AddrRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.AddrRequest").msgclass
AddrResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.AddrResponse").msgclass
Account = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.Account").msgclass
ListAccountsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListAccountsRequest").msgclass
ListAccountsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListAccountsResponse").msgclass
ImportAccountRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ImportAccountRequest").msgclass
ImportAccountResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ImportAccountResponse").msgclass
ImportPublicKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ImportPublicKeyRequest").msgclass
ImportPublicKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ImportPublicKeyResponse").msgclass
Transaction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.Transaction").msgclass
PublishResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.PublishResponse").msgclass
SendOutputsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.SendOutputsRequest").msgclass
SendOutputsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.SendOutputsResponse").msgclass
EstimateFeeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.EstimateFeeRequest").msgclass
EstimateFeeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.EstimateFeeResponse").msgclass
PendingSweep = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.PendingSweep").msgclass
PendingSweepsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.PendingSweepsRequest").msgclass
PendingSweepsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.PendingSweepsResponse").msgclass
BumpFeeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.BumpFeeRequest").msgclass
BumpFeeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.BumpFeeResponse").msgclass
ListSweepsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListSweepsRequest").msgclass
ListSweepsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListSweepsResponse").msgclass
ListSweepsResponse::TransactionIDs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListSweepsResponse.TransactionIDs").msgclass
LabelTransactionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.LabelTransactionRequest").msgclass
LabelTransactionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.LabelTransactionResponse").msgclass
FundPsbtRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.FundPsbtRequest").msgclass
FundPsbtResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.FundPsbtResponse").msgclass
TxTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.TxTemplate").msgclass
UtxoLease = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.UtxoLease").msgclass
SignPsbtRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.SignPsbtRequest").msgclass
SignPsbtResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.SignPsbtResponse").msgclass
FinalizePsbtRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.FinalizePsbtRequest").msgclass
FinalizePsbtResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.FinalizePsbtResponse").msgclass
ListLeasesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListLeasesRequest").msgclass
ListLeasesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.ListLeasesResponse").msgclass
AddressType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.AddressType").enummodule
WitnessType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("walletrpc.WitnessType").enummodule
end

View File

@@ -1,201 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: walletrpc/walletkit.proto for package 'walletrpc'
require 'grpc'
require 'walletrpc/walletkit_pb'
module Walletrpc
module WalletKit
# WalletKit is a service that gives access to the core functionalities of the
# daemon's wallet.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'walletrpc.WalletKit'
#
# ListUnspent returns a list of all utxos spendable by the wallet with a
# number of confirmations between the specified minimum and maximum.
rpc :ListUnspent, ::Walletrpc::ListUnspentRequest, ::Walletrpc::ListUnspentResponse
#
# LeaseOutput locks an output to the given ID, preventing it from being
# available for any future coin selection attempts. The absolute time of the
# lock's expiration is returned. The expiration of the lock can be extended by
# successive invocations of this RPC. Outputs can be unlocked before their
# expiration through `ReleaseOutput`.
rpc :LeaseOutput, ::Walletrpc::LeaseOutputRequest, ::Walletrpc::LeaseOutputResponse
#
# ReleaseOutput unlocks an output, allowing it to be available for coin
# selection if it remains unspent. The ID should match the one used to
# originally lock the output.
rpc :ReleaseOutput, ::Walletrpc::ReleaseOutputRequest, ::Walletrpc::ReleaseOutputResponse
#
# ListLeases lists all currently locked utxos.
rpc :ListLeases, ::Walletrpc::ListLeasesRequest, ::Walletrpc::ListLeasesResponse
#
# DeriveNextKey attempts to derive the *next* key within the key family
# (account in BIP43) specified. This method should return the next external
# child within this branch.
rpc :DeriveNextKey, ::Walletrpc::KeyReq, ::Signrpc::KeyDescriptor
#
# DeriveKey attempts to derive an arbitrary key specified by the passed
# KeyLocator.
rpc :DeriveKey, ::Signrpc::KeyLocator, ::Signrpc::KeyDescriptor
#
# NextAddr returns the next unused address within the wallet.
rpc :NextAddr, ::Walletrpc::AddrRequest, ::Walletrpc::AddrResponse
#
# ListAccounts retrieves all accounts belonging to the wallet by default. A
# name and key scope filter can be provided to filter through all of the
# wallet accounts and return only those matching.
rpc :ListAccounts, ::Walletrpc::ListAccountsRequest, ::Walletrpc::ListAccountsResponse
#
# ImportAccount imports an account backed by an account extended public key.
# The master key fingerprint denotes the fingerprint of the root key
# corresponding to the account public key (also known as the key with
# derivation path m/). This may be required by some hardware wallets for
# proper identification and signing.
#
# The address type can usually be inferred from the key's version, but may be
# required for certain keys to map them into the proper scope.
#
# For BIP-0044 keys, an address type must be specified as we intend to not
# support importing BIP-0044 keys into the wallet using the legacy
# pay-to-pubkey-hash (P2PKH) scheme. A nested witness address type will force
# the standard BIP-0049 derivation scheme, while a witness address type will
# force the standard BIP-0084 derivation scheme.
#
# For BIP-0049 keys, an address type must also be specified to make a
# distinction between the standard BIP-0049 address schema (nested witness
# pubkeys everywhere) and our own BIP-0049Plus address schema (nested pubkeys
# externally, witness pubkeys internally).
#
# NOTE: Events (deposits/spends) for keys derived from an account will only be
# detected by lnd if they happen after the import. Rescans to detect past
# events will be supported later on.
rpc :ImportAccount, ::Walletrpc::ImportAccountRequest, ::Walletrpc::ImportAccountResponse
#
# ImportPublicKey imports a public key as watch-only into the wallet.
#
# NOTE: Events (deposits/spends) for a key will only be detected by lnd if
# they happen after the import. Rescans to detect past events will be
# supported later on.
rpc :ImportPublicKey, ::Walletrpc::ImportPublicKeyRequest, ::Walletrpc::ImportPublicKeyResponse
#
# PublishTransaction attempts to publish the passed transaction to the
# network. Once this returns without an error, the wallet will continually
# attempt to re-broadcast the transaction on start up, until it enters the
# chain.
rpc :PublishTransaction, ::Walletrpc::Transaction, ::Walletrpc::PublishResponse
#
# SendOutputs is similar to the existing sendmany call in Bitcoind, and
# allows the caller to create a transaction that sends to several outputs at
# once. This is ideal when wanting to batch create a set of transactions.
rpc :SendOutputs, ::Walletrpc::SendOutputsRequest, ::Walletrpc::SendOutputsResponse
#
# EstimateFee attempts to query the internal fee estimator of the wallet to
# determine the fee (in sat/kw) to attach to a transaction in order to
# achieve the confirmation target.
rpc :EstimateFee, ::Walletrpc::EstimateFeeRequest, ::Walletrpc::EstimateFeeResponse
#
# PendingSweeps returns lists of on-chain outputs that lnd is currently
# attempting to sweep within its central batching engine. Outputs with similar
# fee rates are batched together in order to sweep them within a single
# transaction.
#
# NOTE: Some of the fields within PendingSweepsRequest are not guaranteed to
# remain supported. This is an advanced API that depends on the internals of
# the UtxoSweeper, so things may change.
rpc :PendingSweeps, ::Walletrpc::PendingSweepsRequest, ::Walletrpc::PendingSweepsResponse
#
# BumpFee bumps the fee of an arbitrary input within a transaction. This RPC
# takes a different approach than bitcoind's bumpfee command. lnd has a
# central batching engine in which inputs with similar fee rates are batched
# together to save on transaction fees. Due to this, we cannot rely on
# bumping the fee on a specific transaction, since transactions can change at
# any point with the addition of new inputs. The list of inputs that
# currently exist within lnd's central batching engine can be retrieved
# through the PendingSweeps RPC.
#
# When bumping the fee of an input that currently exists within lnd's central
# batching engine, a higher fee transaction will be created that replaces the
# lower fee transaction through the Replace-By-Fee (RBF) policy. If it
#
# This RPC also serves useful when wanting to perform a Child-Pays-For-Parent
# (CPFP), where the child transaction pays for its parent's fee. This can be
# done by specifying an outpoint within the low fee transaction that is under
# the control of the wallet.
#
# The fee preference can be expressed either as a specific fee rate or a delta
# of blocks in which the output should be swept on-chain within. If a fee
# preference is not explicitly specified, then an error is returned.
#
# Note that this RPC currently doesn't perform any validation checks on the
# fee preference being provided. For now, the responsibility of ensuring that
# the new fee preference is sufficient is delegated to the user.
rpc :BumpFee, ::Walletrpc::BumpFeeRequest, ::Walletrpc::BumpFeeResponse
#
# ListSweeps returns a list of the sweep transactions our node has produced.
# Note that these sweeps may not be confirmed yet, as we record sweeps on
# broadcast, not confirmation.
rpc :ListSweeps, ::Walletrpc::ListSweepsRequest, ::Walletrpc::ListSweepsResponse
#
# LabelTransaction adds a label to a transaction. If the transaction already
# has a label the call will fail unless the overwrite bool is set. This will
# overwrite the exiting transaction label. Labels must not be empty, and
# cannot exceed 500 characters.
rpc :LabelTransaction, ::Walletrpc::LabelTransactionRequest, ::Walletrpc::LabelTransactionResponse
#
# FundPsbt creates a fully populated PSBT that contains enough inputs to fund
# the outputs specified in the template. There are two ways of specifying a
# template: Either by passing in a PSBT with at least one output declared or
# by passing in a raw TxTemplate message.
#
# If there are no inputs specified in the template, coin selection is
# performed automatically. If the template does contain any inputs, it is
# assumed that full coin selection happened externally and no additional
# inputs are added. If the specified inputs aren't enough to fund the outputs
# with the given fee rate, an error is returned.
#
# After either selecting or verifying the inputs, all input UTXOs are locked
# with an internal app ID.
#
# NOTE: If this method returns without an error, it is the caller's
# responsibility to either spend the locked UTXOs (by finalizing and then
# publishing the transaction) or to unlock/release the locked UTXOs in case of
# an error on the caller's side.
rpc :FundPsbt, ::Walletrpc::FundPsbtRequest, ::Walletrpc::FundPsbtResponse
#
# SignPsbt expects a partial transaction with all inputs and outputs fully
# declared and tries to sign all unsigned inputs that have all required fields
# (UTXO information, BIP32 derivation information, witness or sig scripts)
# set.
# If no error is returned, the PSBT is ready to be given to the next signer or
# to be finalized if lnd was the last signer.
#
# NOTE: This RPC only signs inputs (and only those it can sign), it does not
# perform any other tasks (such as coin selection, UTXO locking or
# input/output/fee value validation, PSBT finalization). Any input that is
# incomplete will be skipped.
rpc :SignPsbt, ::Walletrpc::SignPsbtRequest, ::Walletrpc::SignPsbtResponse
#
# FinalizePsbt expects a partial transaction with all inputs and outputs fully
# declared and tries to sign all inputs that belong to the wallet. Lnd must be
# the last signer of the transaction. That means, if there are any unsigned
# non-witness inputs or inputs without UTXO information attached or inputs
# without witness data that do not belong to lnd's wallet, this method will
# fail. If no error is returned, the PSBT is ready to be extracted and the
# final TX within to be broadcast.
#
# NOTE: This method does NOT publish the transaction once finalized. It is the
# caller's responsibility to either publish the transaction on success or
# unlock/release any locked UTXOs in case of an error in this method.
rpc :FinalizePsbt, ::Walletrpc::FinalizePsbtRequest, ::Walletrpc::FinalizePsbtResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,74 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: walletunlocker.proto
require 'google/protobuf'
require 'rpc_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("walletunlocker.proto", :syntax => :proto3) do
add_message "lnrpc.GenSeedRequest" do
optional :aezeed_passphrase, :bytes, 1
optional :seed_entropy, :bytes, 2
end
add_message "lnrpc.GenSeedResponse" do
repeated :cipher_seed_mnemonic, :string, 1
optional :enciphered_seed, :bytes, 2
end
add_message "lnrpc.InitWalletRequest" do
optional :wallet_password, :bytes, 1
repeated :cipher_seed_mnemonic, :string, 2
optional :aezeed_passphrase, :bytes, 3
optional :recovery_window, :int32, 4
optional :channel_backups, :message, 5, "lnrpc.ChanBackupSnapshot"
optional :stateless_init, :bool, 6
optional :extended_master_key, :string, 7
optional :extended_master_key_birthday_timestamp, :uint64, 8
optional :watch_only, :message, 9, "lnrpc.WatchOnly"
end
add_message "lnrpc.InitWalletResponse" do
optional :admin_macaroon, :bytes, 1
end
add_message "lnrpc.WatchOnly" do
optional :master_key_birthday_timestamp, :uint64, 1
optional :master_key_fingerprint, :bytes, 2
repeated :accounts, :message, 3, "lnrpc.WatchOnlyAccount"
end
add_message "lnrpc.WatchOnlyAccount" do
optional :purpose, :uint32, 1
optional :coin_type, :uint32, 2
optional :account, :uint32, 3
optional :xpub, :string, 4
end
add_message "lnrpc.UnlockWalletRequest" do
optional :wallet_password, :bytes, 1
optional :recovery_window, :int32, 2
optional :channel_backups, :message, 3, "lnrpc.ChanBackupSnapshot"
optional :stateless_init, :bool, 4
end
add_message "lnrpc.UnlockWalletResponse" do
end
add_message "lnrpc.ChangePasswordRequest" do
optional :current_password, :bytes, 1
optional :new_password, :bytes, 2
optional :stateless_init, :bool, 3
optional :new_macaroon_root_key, :bool, 4
end
add_message "lnrpc.ChangePasswordResponse" do
optional :admin_macaroon, :bytes, 1
end
end
end
module Lnrpc
GenSeedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.GenSeedRequest").msgclass
GenSeedResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.GenSeedResponse").msgclass
InitWalletRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.InitWalletRequest").msgclass
InitWalletResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.InitWalletResponse").msgclass
WatchOnly = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.WatchOnly").msgclass
WatchOnlyAccount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.WatchOnlyAccount").msgclass
UnlockWalletRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.UnlockWalletRequest").msgclass
UnlockWalletResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.UnlockWalletResponse").msgclass
ChangePasswordRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.ChangePasswordRequest").msgclass
ChangePasswordResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.ChangePasswordResponse").msgclass
end

View File

@@ -1,72 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: walletunlocker.proto for package 'lnrpc'
require 'grpc'
require 'walletunlocker_pb'
module Lnrpc
module WalletUnlocker
#
# 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.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'lnrpc.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, ::Lnrpc::GenSeedRequest, ::Lnrpc::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, ::Lnrpc::InitWalletRequest, ::Lnrpc::InitWalletResponse
# lncli: `unlock`
# UnlockWallet is used at startup of lnd to provide a password to unlock
# the wallet database.
rpc :UnlockWallet, ::Lnrpc::UnlockWalletRequest, ::Lnrpc::UnlockWalletResponse
# lncli: `changepassword`
# ChangePassword changes the password of the encrypted wallet. This will
# automatically unlock the wallet database if successful.
rpc :ChangePassword, ::Lnrpc::ChangePasswordRequest, ::Lnrpc::ChangePasswordResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,21 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: watchtowerrpc/watchtower.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("watchtowerrpc/watchtower.proto", :syntax => :proto3) do
add_message "watchtowerrpc.GetInfoRequest" do
end
add_message "watchtowerrpc.GetInfoResponse" do
optional :pubkey, :bytes, 1
repeated :listeners, :string, 2
repeated :uris, :string, 3
end
end
end
module Watchtowerrpc
GetInfoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("watchtowerrpc.GetInfoRequest").msgclass
GetInfoResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("watchtowerrpc.GetInfoResponse").msgclass
end

View File

@@ -1,28 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: watchtowerrpc/watchtower.proto for package 'watchtowerrpc'
require 'grpc'
require 'watchtowerrpc/watchtower_pb'
module Watchtowerrpc
module Watchtower
# Watchtower is a service that grants access to the watchtower server
# functionality of the daemon.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'watchtowerrpc.Watchtower'
# lncli: tower info
# GetInfo returns general information concerning the companion watchtower
# including its public key and URIs where the server is currently
# listening for clients.
rpc :GetInfo, ::Watchtowerrpc::GetInfoRequest, ::Watchtowerrpc::GetInfoResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,83 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: wtclientrpc/wtclient.proto
require 'google/protobuf'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("wtclientrpc/wtclient.proto", :syntax => :proto3) do
add_message "wtclientrpc.AddTowerRequest" do
optional :pubkey, :bytes, 1
optional :address, :string, 2
end
add_message "wtclientrpc.AddTowerResponse" do
end
add_message "wtclientrpc.RemoveTowerRequest" do
optional :pubkey, :bytes, 1
optional :address, :string, 2
end
add_message "wtclientrpc.RemoveTowerResponse" do
end
add_message "wtclientrpc.GetTowerInfoRequest" do
optional :pubkey, :bytes, 1
optional :include_sessions, :bool, 2
end
add_message "wtclientrpc.TowerSession" do
optional :num_backups, :uint32, 1
optional :num_pending_backups, :uint32, 2
optional :max_backups, :uint32, 3
optional :sweep_sat_per_byte, :uint32, 4
optional :sweep_sat_per_vbyte, :uint32, 5
end
add_message "wtclientrpc.Tower" do
optional :pubkey, :bytes, 1
repeated :addresses, :string, 2
optional :active_session_candidate, :bool, 3
optional :num_sessions, :uint32, 4
repeated :sessions, :message, 5, "wtclientrpc.TowerSession"
end
add_message "wtclientrpc.ListTowersRequest" do
optional :include_sessions, :bool, 1
end
add_message "wtclientrpc.ListTowersResponse" do
repeated :towers, :message, 1, "wtclientrpc.Tower"
end
add_message "wtclientrpc.StatsRequest" do
end
add_message "wtclientrpc.StatsResponse" do
optional :num_backups, :uint32, 1
optional :num_pending_backups, :uint32, 2
optional :num_failed_backups, :uint32, 3
optional :num_sessions_acquired, :uint32, 4
optional :num_sessions_exhausted, :uint32, 5
end
add_message "wtclientrpc.PolicyRequest" do
optional :policy_type, :enum, 1, "wtclientrpc.PolicyType"
end
add_message "wtclientrpc.PolicyResponse" do
optional :max_updates, :uint32, 1
optional :sweep_sat_per_byte, :uint32, 2
optional :sweep_sat_per_vbyte, :uint32, 3
end
add_enum "wtclientrpc.PolicyType" do
value :LEGACY, 0
value :ANCHOR, 1
end
end
end
module Wtclientrpc
AddTowerRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.AddTowerRequest").msgclass
AddTowerResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.AddTowerResponse").msgclass
RemoveTowerRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.RemoveTowerRequest").msgclass
RemoveTowerResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.RemoveTowerResponse").msgclass
GetTowerInfoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.GetTowerInfoRequest").msgclass
TowerSession = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.TowerSession").msgclass
Tower = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.Tower").msgclass
ListTowersRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.ListTowersRequest").msgclass
ListTowersResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.ListTowersResponse").msgclass
StatsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.StatsRequest").msgclass
StatsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.StatsResponse").msgclass
PolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.PolicyRequest").msgclass
PolicyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.PolicyResponse").msgclass
PolicyType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("wtclientrpc.PolicyType").enummodule
end

View File

@@ -1,43 +0,0 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: wtclientrpc/wtclient.proto for package 'wtclientrpc'
require 'grpc'
require 'wtclientrpc/wtclient_pb'
module Wtclientrpc
module WatchtowerClient
# WatchtowerClient is a service that grants access to the watchtower client
# functionality of the daemon.
class Service
include ::GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'wtclientrpc.WatchtowerClient'
#
# AddTower adds a new watchtower reachable at the given address and
# considers it for new sessions. If the watchtower already exists, then
# any new addresses included will be considered when dialing it for
# session negotiations and backups.
rpc :AddTower, ::Wtclientrpc::AddTowerRequest, ::Wtclientrpc::AddTowerResponse
#
# RemoveTower removes a watchtower from being considered for future session
# negotiations and from being used for any subsequent backups until it's added
# again. If an address is provided, then this RPC only serves as a way of
# removing the address from the watchtower instead.
rpc :RemoveTower, ::Wtclientrpc::RemoveTowerRequest, ::Wtclientrpc::RemoveTowerResponse
# ListTowers returns the list of watchtowers registered with the client.
rpc :ListTowers, ::Wtclientrpc::ListTowersRequest, ::Wtclientrpc::ListTowersResponse
# GetTowerInfo retrieves information for a registered watchtower.
rpc :GetTowerInfo, ::Wtclientrpc::GetTowerInfoRequest, ::Wtclientrpc::Tower
# Stats returns the in-memory statistics of the client since startup.
rpc :Stats, ::Wtclientrpc::StatsRequest, ::Wtclientrpc::StatsResponse
# Policy returns the active watchtower client policy configuration.
rpc :Policy, ::Wtclientrpc::PolicyRequest, ::Wtclientrpc::PolicyResponse
end
Stub = Service.rpc_stub_class
end
end

View File

@@ -1,10 +1,6 @@
require 'lnrpc/version' require 'lnrpc/version'
require 'lnrpc/rpc_services_pb'
# require GRPC services require 'lnrpc/router_services_pb'
Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'grpc_services/**/*_services_pb.rb')].each do |file|
require file
end
require 'securerandom' require 'securerandom'
module Lnrpc module Lnrpc

View File

@@ -1,5 +1,4 @@
require "grpc" require "grpc"
require "digest"
require "lnrpc/macaroon_interceptor" require "lnrpc/macaroon_interceptor"
module Lnrpc module Lnrpc
class Client class Client
@@ -14,8 +13,7 @@ module Lnrpc
self.address = options[:address] || DEFAULT_ADDRESS self.address = options[:address] || DEFAULT_ADDRESS
if options.has_key?(:credentials) if options.has_key?(:credentials)
# if there are non hex values prvided we assume it's the certificate file as string otherwise we assume it's the hex value self.credentials = options[:credentials]
self.credentials = options[:credentials].match?(/\H/) ? options[:credentials] : [options[:credentials]].pack('H*')
elsif File.exists?(::File.expand_path(options[:credentials_path] || DEFAULT_CREDENTIALS_PATH)) elsif File.exists?(::File.expand_path(options[:credentials_path] || DEFAULT_CREDENTIALS_PATH))
self.credentials = ::File.read(::File.expand_path(options[:credentials_path] || DEFAULT_CREDENTIALS_PATH)) self.credentials = ::File.read(::File.expand_path(options[:credentials_path] || DEFAULT_CREDENTIALS_PATH))
else else
@@ -29,47 +27,17 @@ module Lnrpc
end end
def lightning def lightning
@lightning ||= grpc_wrapper_for(Lnrpc::Lightning) @lightning ||= GrpcWrapper.new(Lnrpc::Lightning::Stub.new(address,
end GRPC::Core::ChannelCredentials.new(credentials),
interceptors: [Lnrpc::MacaroonInterceptor.new(macaroon)]
def autopilot ))
@autopilot ||= grpc_wrapper_for(Autopilotrpc::Autopilot)
end
def chain_notifier
@chain_notifier ||= grpc_wrapper_for(Chainrpc::ChainNotifier)
end
def invoices
@invoices ||= grpc_wrapper_for(Invoicesrpc::Invoices)
end end
def router def router
@router ||= grpc_wrapper_for(Routerrpc::Router) @router ||= GrpcWrapper.new(Routerrpc::Router::Stub.new(address,
end GRPC::Core::ChannelCredentials.new(credentials),
interceptors: [Lnrpc::MacaroonInterceptor.new(macaroon)]
def signer ))
@signer ||= grpc_wrapper_for(Signrpc::Signer)
end
def versioner
@versioner ||= grpc_wrapper_for(Verrpc::Versioner)
end
def wallet_kit
@wallet_kit ||= grpc_wrapper_for(Walletrpc::WalletKit)
end
def wallet_unlocker
@wallet_unlocker ||= grpc_wrapper_for(Lnrpc::WalletUnlocker)
end
def watchtower
@watchtower ||= grpc_wrapper_for(Watchtowerrpc::Watchtower)
end
def watchtower_client
@watchtower_client ||= grpc_wrapper_for(Wtclientrpc::WatchtowerClient)
end end
def keysend(args) def keysend(args)
@@ -86,19 +54,8 @@ module Lnrpc
end end
def inspect def inspect
"#{self} @address=\"#{address}\"" "#{self.to_s} @address=\"#{self.address}\""
end end
private
def grpc_wrapper_for(grpc_module)
stub = grpc_module.const_get(:Stub)
service = grpc_module.const_get(:Service)
GrpcWrapper.new(service: service,
grpc: stub.new(address,
GRPC::Core::ChannelCredentials.new(credentials),
interceptors: [Lnrpc::MacaroonInterceptor.new(macaroon)]
))
end
end end
end end

View File

@@ -1,43 +1,66 @@
module Lnrpc module Lnrpc
class GrpcWrapper class GrpcWrapper
attr_reader :grpc, :service NON_CONVENTION_REQUEST_CLASSES = {
add_invoice: Lnrpc::Invoice,
decode_pay_req: Lnrpc::PayReqString,
describe_graph: Lnrpc::ChannelGraphRequest,
export_all_channel_backups: Lnrpc::ChanBackupExportRequest,
funding_state_step: Lnrpc::FundingTransitionMsg,
get_chan_info: Lnrpc::ChanInfoRequest,
get_network_info: Lnrpc::NetworkInfoRequest,
get_node_info: Lnrpc::NodeInfoRequest,
get_node_metrics: Lnrpc::NodeMetricsRequest,
lookup_invoice: Lnrpc::PaymentHash,
open_channel_sync: Lnrpc::OpenChannelRequest,
send_payment_sync: Lnrpc::SendRequest,
send_to_route_sync: Lnrpc::SendToRouteRequest,
stop_daemon: Lnrpc::StopRequest,
subscribe_channel_backups: Lnrpc::ChannelBackupSubscription,
subscribe_channel_event: Lnrpc::ChannelEventSubscription,
subscribe_channel_graph: Lnrpc::GraphTopologySubscription,
subscribe_invoices: Lnrpc::InvoiceSubscription,
subscribe_peer_event: Lnrpc::PeerEventSubscription,
subscribe_transactions: Lnrpc::GetTransactionsRequest,
update_channel_policy: Lnrpc::PolicyUpdateResponse,
varify_channel_backup: Lnrpc::ChanBackupSnapshot,
def initialize(service:, grpc:) estimate_route_fee: Routerrpc::RouteFeeRequest,
send_payment: Routerrpc::SendPaymentRequest,
send_payment_v2: Routerrpc::SendPaymentRequest,
track_payment_v2: Routerrpc::TrackPaymentRequest
}
attr_reader :grpc
def initialize(grpc)
@grpc = grpc @grpc = grpc
@service = service
end end
def method_missing(m, *args, &block) def method_missing(m, *args, &block)
if grpc.respond_to?(m) if self.grpc.respond_to?(m)
params = args[0] params = args[0]
args[0] = params.nil? ? request_class_for(m).new : request_class_for(m).new(params) args[0] = params.nil? ? request_class_for(m).new : request_class_for(m).new(params)
grpc.send(m, *args, &block) self.grpc.send(m, *args, &block)
else else
super super
end end
end end
def inspect def inspect
"#{self} @grpc=\"#{grpc}\"" "#{self.to_s} @grpc=\"#{self.grpc.to_s}\""
end end
private private
def request_class_for(method_name) def request_class_for(method_name)
rpc_desc = service.rpc_descs[camelize(method_name).to_sym] if NON_CONVENTION_REQUEST_CLASSES.key?(method_name.to_sym)
raise "Request class not found for: #{method_name}" unless rpc_desc NON_CONVENTION_REQUEST_CLASSES[method_name.to_sym]
else
rpc_desc.input klass = method_name.to_s.sub(/^[a-z\d]*/) { |match| match.capitalize }
end klass.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" }
Module.const_get(grpc.class.name.to_s[/.+?(?=::)/]).const_get("#{klass}Request")
def camelize(name)
str = name.to_s
separators = ['_', '\s']
separators.each do |s|
str = str.gsub(/(?:#{s}+)([a-z])/) { $1.upcase }
end end
str.gsub(/(\A|\s)([a-z])/) { $1 + $2.upcase }
end end
end end
end end

560
lib/lnrpc/router.proto Normal file
View File

@@ -0,0 +1,560 @@
syntax = "proto3";
import "rpc.proto";
package routerrpc;
option go_package = "github.com/lightningnetwork/lnd/lnrpc/routerrpc";
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;
/**
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 = 8 [jstype = JS_STRING];
/**
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;
}
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);
/**
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.
*/
rpc SendToRoute (SendToRouteRequest) returns (SendToRouteResponse);
/**
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;
}
}

198
lib/lnrpc/router_pb.rb Normal file
View File

@@ -0,0 +1,198 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: router.proto
require 'google/protobuf'
require_relative 'rpc_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_message "routerrpc.SendPaymentRequest" do
optional :dest, :bytes, 1
optional :amt, :int64, 2
optional :amt_msat, :int64, 12
optional :payment_hash, :bytes, 3
optional :final_cltv_delta, :int32, 4
optional :payment_request, :string, 5
optional :timeout_seconds, :int32, 6
optional :fee_limit_sat, :int64, 7
optional :fee_limit_msat, :int64, 13
optional :outgoing_chan_id, :uint64, 8
optional :last_hop_pubkey, :bytes, 14
optional :cltv_limit, :int32, 9
repeated :route_hints, :message, 10, "lnrpc.RouteHint"
map :dest_custom_records, :uint64, :bytes, 11
optional :allow_self_payment, :bool, 15
repeated :dest_features, :enum, 16, "lnrpc.FeatureBit"
optional :max_parts, :uint32, 17
optional :no_inflight_updates, :bool, 18
end
add_message "routerrpc.TrackPaymentRequest" do
optional :payment_hash, :bytes, 1
optional :no_inflight_updates, :bool, 2
end
add_message "routerrpc.RouteFeeRequest" do
optional :dest, :bytes, 1
optional :amt_sat, :int64, 2
end
add_message "routerrpc.RouteFeeResponse" do
optional :routing_fee_msat, :int64, 1
optional :time_lock_delay, :int64, 2
end
add_message "routerrpc.SendToRouteRequest" do
optional :payment_hash, :bytes, 1
optional :route, :message, 2, "lnrpc.Route"
end
add_message "routerrpc.SendToRouteResponse" do
optional :preimage, :bytes, 1
optional :failure, :message, 2, "lnrpc.Failure"
end
add_message "routerrpc.ResetMissionControlRequest" do
end
add_message "routerrpc.ResetMissionControlResponse" do
end
add_message "routerrpc.QueryMissionControlRequest" do
end
add_message "routerrpc.QueryMissionControlResponse" do
repeated :pairs, :message, 2, "routerrpc.PairHistory"
end
add_message "routerrpc.PairHistory" do
optional :node_from, :bytes, 1
optional :node_to, :bytes, 2
optional :history, :message, 7, "routerrpc.PairData"
end
add_message "routerrpc.PairData" do
optional :fail_time, :int64, 1
optional :fail_amt_sat, :int64, 2
optional :fail_amt_msat, :int64, 4
optional :success_time, :int64, 5
optional :success_amt_sat, :int64, 6
optional :success_amt_msat, :int64, 7
end
add_message "routerrpc.QueryProbabilityRequest" do
optional :from_node, :bytes, 1
optional :to_node, :bytes, 2
optional :amt_msat, :int64, 3
end
add_message "routerrpc.QueryProbabilityResponse" do
optional :probability, :double, 1
optional :history, :message, 2, "routerrpc.PairData"
end
add_message "routerrpc.BuildRouteRequest" do
optional :amt_msat, :int64, 1
optional :final_cltv_delta, :int32, 2
optional :outgoing_chan_id, :uint64, 3
repeated :hop_pubkeys, :bytes, 4
end
add_message "routerrpc.BuildRouteResponse" do
optional :route, :message, 1, "lnrpc.Route"
end
add_message "routerrpc.SubscribeHtlcEventsRequest" do
end
add_message "routerrpc.HtlcEvent" do
optional :incoming_channel_id, :uint64, 1
optional :outgoing_channel_id, :uint64, 2
optional :incoming_htlc_id, :uint64, 3
optional :outgoing_htlc_id, :uint64, 4
optional :timestamp_ns, :uint64, 5
optional :event_type, :enum, 6, "routerrpc.HtlcEvent.EventType"
oneof :event do
optional :forward_event, :message, 7, "routerrpc.ForwardEvent"
optional :forward_fail_event, :message, 8, "routerrpc.ForwardFailEvent"
optional :settle_event, :message, 9, "routerrpc.SettleEvent"
optional :link_fail_event, :message, 10, "routerrpc.LinkFailEvent"
end
end
add_enum "routerrpc.HtlcEvent.EventType" do
value :UNKNOWN, 0
value :SEND, 1
value :RECEIVE, 2
value :FORWARD, 3
end
add_message "routerrpc.HtlcInfo" do
optional :incoming_timelock, :uint32, 1
optional :outgoing_timelock, :uint32, 2
optional :incoming_amt_msat, :uint64, 3
optional :outgoing_amt_msat, :uint64, 4
end
add_message "routerrpc.ForwardEvent" do
optional :info, :message, 1, "routerrpc.HtlcInfo"
end
add_message "routerrpc.ForwardFailEvent" do
end
add_message "routerrpc.SettleEvent" do
end
add_message "routerrpc.LinkFailEvent" do
optional :info, :message, 1, "routerrpc.HtlcInfo"
optional :wire_failure, :enum, 2, "lnrpc.Failure.FailureCode"
optional :failure_detail, :enum, 3, "routerrpc.FailureDetail"
optional :failure_string, :string, 4
end
add_message "routerrpc.PaymentStatus" do
optional :state, :enum, 1, "routerrpc.PaymentState"
optional :preimage, :bytes, 2
repeated :htlcs, :message, 4, "lnrpc.HTLCAttempt"
end
add_enum "routerrpc.FailureDetail" do
value :UNKNOWN, 0
value :NO_DETAIL, 1
value :ONION_DECODE, 2
value :LINK_NOT_ELIGIBLE, 3
value :ON_CHAIN_TIMEOUT, 4
value :HTLC_EXCEEDS_MAX, 5
value :INSUFFICIENT_BALANCE, 6
value :INCOMPLETE_FORWARD, 7
value :HTLC_ADD_FAILED, 8
value :FORWARDS_DISABLED, 9
value :INVOICE_CANCELED, 10
value :INVOICE_UNDERPAID, 11
value :INVOICE_EXPIRY_TOO_SOON, 12
value :INVOICE_NOT_OPEN, 13
value :MPP_INVOICE_TIMEOUT, 14
value :ADDRESS_MISMATCH, 15
value :SET_TOTAL_MISMATCH, 16
value :SET_TOTAL_TOO_LOW, 17
value :SET_OVERPAID, 18
value :UNKNOWN_INVOICE, 19
value :INVALID_KEYSEND, 20
value :MPP_IN_PROGRESS, 21
value :CIRCULAR_ROUTE, 22
end
add_enum "routerrpc.PaymentState" do
value :IN_FLIGHT, 0
value :SUCCEEDED, 1
value :FAILED_TIMEOUT, 2
value :FAILED_NO_ROUTE, 3
value :FAILED_ERROR, 4
value :FAILED_INCORRECT_PAYMENT_DETAILS, 5
value :FAILED_INSUFFICIENT_BALANCE, 6
end
end
module Routerrpc
SendPaymentRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendPaymentRequest").msgclass
TrackPaymentRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.TrackPaymentRequest").msgclass
RouteFeeRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.RouteFeeRequest").msgclass
RouteFeeResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.RouteFeeResponse").msgclass
SendToRouteRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendToRouteRequest").msgclass
SendToRouteResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SendToRouteResponse").msgclass
ResetMissionControlRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResetMissionControlRequest").msgclass
ResetMissionControlResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResetMissionControlResponse").msgclass
QueryMissionControlRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlRequest").msgclass
QueryMissionControlResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlResponse").msgclass
PairHistory = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairHistory").msgclass
PairData = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairData").msgclass
QueryProbabilityRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityRequest").msgclass
QueryProbabilityResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityResponse").msgclass
BuildRouteRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.BuildRouteRequest").msgclass
BuildRouteResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.BuildRouteResponse").msgclass
SubscribeHtlcEventsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SubscribeHtlcEventsRequest").msgclass
HtlcEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcEvent").msgclass
HtlcEvent::EventType = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcEvent.EventType").enummodule
HtlcInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.HtlcInfo").msgclass
ForwardEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardEvent").msgclass
ForwardFailEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardFailEvent").msgclass
SettleEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SettleEvent").msgclass
LinkFailEvent = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.LinkFailEvent").msgclass
PaymentStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PaymentStatus").msgclass
FailureDetail = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.FailureDetail").enummodule
PaymentState = Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PaymentState").enummodule
end

View File

@@ -0,0 +1,69 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# Source: router.proto for package 'routerrpc'
require 'grpc'
require_relative 'router_pb'
module Routerrpc
module Router
class Service
include GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'routerrpc.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, stream(Lnrpc::Payment)
# *
# TrackPaymentV2 returns an update stream for the payment identified by the
# payment hash.
rpc :TrackPaymentV2, TrackPaymentRequest, 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, RouteFeeResponse
# *
# 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.
rpc :SendToRoute, SendToRouteRequest, SendToRouteResponse
# *
# ResetMissionControl clears all mission control state and starts with a clean
# slate.
rpc :ResetMissionControl, ResetMissionControlRequest, ResetMissionControlResponse
# *
# QueryMissionControl exposes the internal mission control state to callers.
# It is a development feature.
rpc :QueryMissionControl, QueryMissionControlRequest, QueryMissionControlResponse
# *
# QueryProbability returns the current success probability estimate for a
# given node pair and amount.
rpc :QueryProbability, QueryProbabilityRequest, 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, BuildRouteResponse
# *
# SubscribeHtlcEvents creates a uni-directional stream from the server to
# the client which delivers a stream of htlc events.
rpc :SubscribeHtlcEvents, SubscribeHtlcEventsRequest, 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, stream(PaymentStatus)
# *
# Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
# the payment identified by the payment hash.
rpc :TrackPayment, TrackPaymentRequest, stream(PaymentStatus)
end
Stub = Service.rpc_stub_class
end
end

3687
lib/lnrpc/rpc.proto Normal file

File diff suppressed because it is too large Load Diff

1248
lib/lnrpc/rpc_pb.rb Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2,15 +2,19 @@
# Source: rpc.proto for package 'lnrpc' # Source: rpc.proto for package 'lnrpc'
require 'grpc' require 'grpc'
require 'rpc_pb' require_relative 'rpc_pb'
module Lnrpc module Lnrpc
module Lightning module WalletUnlocker
# # *
# Comments in this file will be directly parsed into the API # Comments in this file will be directly parsed into the API
# Documentation as descriptions of the associated method, message, or field. # Documentation as descriptions of the associated method, message, or field.
# These descriptions should go right above the definition of the object, and # These descriptions should go right above the definition of the object, and
# can be in either block or // comment format. # can be in either block or /// comment format.
#
# One edge case exists where a // comment followed by a /// comment in the
# next line will cause the description not to show up in the documentation. In
# that instance, simply separate the two comments with a blank line.
# #
# An RPC method can be matched to an lncli command by placing a line in the # An RPC method can be matched to an lncli command by placing a line in the
# beginning of the description in exactly the following format: # beginning of the description in exactly the following format:
@@ -23,133 +27,166 @@ module Lnrpc
# this proto file can be found here: # this proto file can be found here:
# https://github.com/lightninglabs/lightning-api # https://github.com/lightninglabs/lightning-api
# #
# Lightning is the main RPC server of the daemon. # The WalletUnlocker service is used to set up a wallet password for
# lnd at first startup, and unlock a previously set up wallet.
class Service class Service
include ::GRPC::GenericService include GRPC::GenericService
self.marshal_class_method = :encode
self.unmarshal_class_method = :decode
self.service_name = 'lnrpc.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, 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, InitWalletResponse
# * lncli: `unlock`
# UnlockWallet is used at startup of lnd to provide a password to unlock
# the wallet database.
rpc :UnlockWallet, UnlockWalletRequest, UnlockWalletResponse
# * lncli: `changepassword`
# ChangePassword changes the password of the encrypted wallet. This will
# automatically unlock the wallet database if successful.
rpc :ChangePassword, ChangePasswordRequest, ChangePasswordResponse
end
Stub = Service.rpc_stub_class
end
module Lightning
class Service
include GRPC::GenericService
self.marshal_class_method = :encode self.marshal_class_method = :encode
self.unmarshal_class_method = :decode self.unmarshal_class_method = :decode
self.service_name = 'lnrpc.Lightning' self.service_name = 'lnrpc.Lightning'
# lncli: `walletbalance` # * lncli: `walletbalance`
# WalletBalance returns total unspent outputs(confirmed and unconfirmed), all # WalletBalance returns total unspent outputs(confirmed and unconfirmed), all
# confirmed unspent outputs and all unconfirmed unspent outputs under control # confirmed unspent outputs and all unconfirmed unspent outputs under control
# of the wallet. # of the wallet.
rpc :WalletBalance, ::Lnrpc::WalletBalanceRequest, ::Lnrpc::WalletBalanceResponse rpc :WalletBalance, WalletBalanceRequest, WalletBalanceResponse
# lncli: `channelbalance` # * lncli: `channelbalance`
# ChannelBalance returns a report on the total funds across all open channels, # ChannelBalance returns the total funds available across all open channels
# categorized in local/remote, pending local/remote and unsettled local/remote # in satoshis.
# balances. rpc :ChannelBalance, ChannelBalanceRequest, ChannelBalanceResponse
rpc :ChannelBalance, ::Lnrpc::ChannelBalanceRequest, ::Lnrpc::ChannelBalanceResponse # * lncli: `listchaintxns`
# lncli: `listchaintxns`
# GetTransactions returns a list describing all the known transactions # GetTransactions returns a list describing all the known transactions
# relevant to the wallet. # relevant to the wallet.
rpc :GetTransactions, ::Lnrpc::GetTransactionsRequest, ::Lnrpc::TransactionDetails rpc :GetTransactions, GetTransactionsRequest, TransactionDetails
# 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.
# rpc :EstimateFee, EstimateFeeRequest, EstimateFeeResponse
# When using REST, the `AddrToAmount` map type can be set by appending # * lncli: `sendcoins`
# `&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, ::Lnrpc::EstimateFeeRequest, ::Lnrpc::EstimateFeeResponse
# 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_vbyte are set, then the internal wallet will # neither target_conf, or sat_per_byte are set, then the internal wallet will
# consult its fee model to determine a fee for the default confirmation # consult its fee model to determine a fee for the default confirmation
# target. # target.
rpc :SendCoins, ::Lnrpc::SendCoinsRequest, ::Lnrpc::SendCoinsResponse rpc :SendCoins, SendCoinsRequest, SendCoinsResponse
# lncli: `listunspent` # * lncli: `listunspent`
# Deprecated, use walletrpc.ListUnspent instead.
#
# ListUnspent returns a list of all utxos spendable by the wallet with a # ListUnspent returns a list of all utxos spendable by the wallet with a
# number of confirmations between the specified minimum and maximum. # number of confirmations between the specified minimum and maximum.
rpc :ListUnspent, ::Lnrpc::ListUnspentRequest, ::Lnrpc::ListUnspentResponse rpc :ListUnspent, ListUnspentRequest, ListUnspentResponse
# # *
# SubscribeTransactions creates a uni-directional stream from the server to # SubscribeTransactions creates a uni-directional stream from the server to
# the client in which any newly discovered transactions relevant to the # the client in which any newly discovered transactions relevant to the
# wallet are sent over. # wallet are sent over.
rpc :SubscribeTransactions, ::Lnrpc::GetTransactionsRequest, stream(::Lnrpc::Transaction) rpc :SubscribeTransactions, GetTransactionsRequest, stream(Transaction)
# lncli: `sendmany` # * lncli: `sendmany`
# SendMany handles a request for a transaction that creates multiple specified # SendMany handles a request for a transaction that creates multiple specified
# outputs in parallel. If neither target_conf, or sat_per_vbyte are set, then # outputs in parallel. If neither target_conf, or sat_per_byte are set, then
# the internal wallet will consult its fee model to determine a fee for the # the internal wallet will consult its fee model to determine a fee for the
# default confirmation target. # default confirmation target.
rpc :SendMany, ::Lnrpc::SendManyRequest, ::Lnrpc::SendManyResponse rpc :SendMany, SendManyRequest, SendManyResponse
# lncli: `newaddress` # * lncli: `newaddress`
# NewAddress creates a new address under control of the local wallet. # NewAddress creates a new address under control of the local wallet.
rpc :NewAddress, ::Lnrpc::NewAddressRequest, ::Lnrpc::NewAddressResponse rpc :NewAddress, NewAddressRequest, NewAddressResponse
# lncli: `signmessage` # * lncli: `signmessage`
# SignMessage signs a message with this node's private key. The returned # SignMessage signs a message with this node's private key. The returned
# signature string is `zbase32` encoded and pubkey recoverable, meaning that # signature string is `zbase32` encoded and pubkey recoverable, meaning that
# only the message digest and signature are needed for verification. # only the message digest and signature are needed for verification.
rpc :SignMessage, ::Lnrpc::SignMessageRequest, ::Lnrpc::SignMessageResponse rpc :SignMessage, SignMessageRequest, SignMessageResponse
# lncli: `verifymessage` # * lncli: `verifymessage`
# VerifyMessage verifies a signature over a msg. The signature must be # VerifyMessage verifies a signature over a msg. The signature must be
# zbase32 encoded and signed by an active node in the resident node's # zbase32 encoded and signed by an active node in the resident node's
# channel database. In addition to returning the validity of the signature, # channel database. In addition to returning the validity of the signature,
# VerifyMessage also returns the recovered pubkey from the signature. # VerifyMessage also returns the recovered pubkey from the signature.
rpc :VerifyMessage, ::Lnrpc::VerifyMessageRequest, ::Lnrpc::VerifyMessageResponse rpc :VerifyMessage, VerifyMessageRequest, VerifyMessageResponse
# lncli: `connect` # * lncli: `connect`
# ConnectPeer attempts to establish a connection to a remote peer. This is at # ConnectPeer attempts to establish a connection to a remote peer. This is at
# the networking level, and is used for communication between nodes. This is # the networking level, and is used for communication between nodes. This is
# distinct from establishing a channel with a peer. # distinct from establishing a channel with a peer.
rpc :ConnectPeer, ::Lnrpc::ConnectPeerRequest, ::Lnrpc::ConnectPeerResponse rpc :ConnectPeer, ConnectPeerRequest, ConnectPeerResponse
# lncli: `disconnect` # * lncli: `disconnect`
# DisconnectPeer attempts to disconnect one peer from another identified by a # DisconnectPeer attempts to disconnect one peer from another identified by a
# given pubKey. In the case that we currently have a pending or active channel # given pubKey. In the case that we currently have a pending or active channel
# with the target peer, then this action will be not be allowed. # with the target peer, then this action will be not be allowed.
rpc :DisconnectPeer, ::Lnrpc::DisconnectPeerRequest, ::Lnrpc::DisconnectPeerResponse rpc :DisconnectPeer, DisconnectPeerRequest, DisconnectPeerResponse
# lncli: `listpeers` # * lncli: `listpeers`
# ListPeers returns a verbose listing of all currently active peers. # ListPeers returns a verbose listing of all currently active peers.
rpc :ListPeers, ::Lnrpc::ListPeersRequest, ::Lnrpc::ListPeersResponse rpc :ListPeers, ListPeersRequest, ListPeersResponse
# # *
# SubscribePeerEvents creates a uni-directional stream from the server to # SubscribePeerEvents creates a uni-directional stream from the server to
# the client in which any events relevant to the state of peers are sent # the client in which any events relevant to the state of peers are sent
# over. Events include peers going online and offline. # over. Events include peers going online and offline.
rpc :SubscribePeerEvents, ::Lnrpc::PeerEventSubscription, stream(::Lnrpc::PeerEvent) rpc :SubscribePeerEvents, PeerEventSubscription, stream(PeerEvent)
# lncli: `getinfo` # * lncli: `getinfo`
# GetInfo returns general information concerning the lightning node including # GetInfo returns general information concerning the lightning node including
# it's identity pubkey, alias, the chains it is connected to, and information # it's identity pubkey, alias, the chains it is connected to, and information
# concerning the number of open+pending channels. # concerning the number of open+pending channels.
rpc :GetInfo, ::Lnrpc::GetInfoRequest, ::Lnrpc::GetInfoResponse rpc :GetInfo, GetInfoRequest, 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, ::Lnrpc::GetRecoveryInfoRequest, ::Lnrpc::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
# considered "pending". A channel is pending if it has finished the funding # considered "pending". A channel is pending if it has finished the funding
# workflow and is waiting for confirmations for the funding txn, or is in the # workflow and is waiting for confirmations for the funding txn, or is in the
# process of closure, either initiated cooperatively or non-cooperatively. # process of closure, either initiated cooperatively or non-cooperatively.
rpc :PendingChannels, ::Lnrpc::PendingChannelsRequest, ::Lnrpc::PendingChannelsResponse rpc :PendingChannels, PendingChannelsRequest, PendingChannelsResponse
# lncli: `listchannels` # * lncli: `listchannels`
# ListChannels returns a description of all the open channels that this node # ListChannels returns a description of all the open channels that this node
# is a participant in. # is a participant in.
rpc :ListChannels, ::Lnrpc::ListChannelsRequest, ::Lnrpc::ListChannelsResponse rpc :ListChannels, ListChannelsRequest, ListChannelsResponse
# # *
# SubscribeChannelEvents creates a uni-directional stream from the server to # SubscribeChannelEvents creates a uni-directional stream from the server to
# the client in which any updates relevant to the state of the channels are # the client in which any updates relevant to the state of the channels are
# sent over. Events include new active channels, inactive channels, and closed # sent over. Events include new active channels, inactive channels, and closed
# channels. # channels.
rpc :SubscribeChannelEvents, ::Lnrpc::ChannelEventSubscription, stream(::Lnrpc::ChannelEventUpdate) rpc :SubscribeChannelEvents, ChannelEventSubscription, stream(ChannelEventUpdate)
# lncli: `closedchannels` # * lncli: `closedchannels`
# ClosedChannels returns a description of all the closed channels that # ClosedChannels returns a description of all the closed channels that
# this node was a participant in. # this node was a participant in.
rpc :ClosedChannels, ::Lnrpc::ClosedChannelsRequest, ::Lnrpc::ClosedChannelsResponse rpc :ClosedChannels, ClosedChannelsRequest, ClosedChannelsResponse
# # *
# OpenChannelSync is a synchronous version of the OpenChannel RPC call. This # OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
# call is meant to be consumed by clients to the REST proxy. As with all # call is meant to be consumed by clients to the REST proxy. As with all
# other sync calls, all byte slices are intended to be populated as hex # other sync calls, all byte slices are intended to be populated as hex
# encoded strings. # encoded strings.
rpc :OpenChannelSync, ::Lnrpc::OpenChannelRequest, ::Lnrpc::ChannelPoint rpc :OpenChannelSync, OpenChannelRequest, ChannelPoint
# lncli: `openchannel` # * lncli: `openchannel`
# OpenChannel attempts to open a singly funded channel specified in the # OpenChannel attempts to open a singly funded channel specified in the
# request to a remote peer. Users are able to specify a target number of # request to a remote peer. Users are able to specify a target number of
# blocks that the funding transaction should be confirmed in, or a manual fee # blocks that the funding transaction should be confirmed in, or a manual fee
@@ -158,8 +195,8 @@ module Lnrpc
# the pending channel ID of the in-progress channel. Depending on the # the pending channel ID of the in-progress channel. Depending on the
# arguments specified in the OpenChannelRequest, this pending channel ID can # arguments specified in the OpenChannelRequest, this pending channel ID can
# then be used to manually progress the channel funding flow. # then be used to manually progress the channel funding flow.
rpc :OpenChannel, ::Lnrpc::OpenChannelRequest, stream(::Lnrpc::OpenStatusUpdate) rpc :OpenChannel, OpenChannelRequest, stream(OpenStatusUpdate)
# # *
# FundingStateStep is an advanced funding related call that allows the caller # FundingStateStep is an advanced funding related call that allows the caller
# to either execute some preparatory steps for a funding workflow, or # to either execute some preparatory steps for a funding workflow, or
# manually progress a funding workflow. The primary way a funding flow is # manually progress a funding workflow. The primary way a funding flow is
@@ -168,15 +205,15 @@ module Lnrpc
# pending channel ID, for which we need to use specific parameters. # pending channel ID, for which we need to use specific parameters.
# Alternatively, this can be used to interactively drive PSBT signing for # Alternatively, this can be used to interactively drive PSBT signing for
# funding for partially complete funding transactions. # funding for partially complete funding transactions.
rpc :FundingStateStep, ::Lnrpc::FundingTransitionMsg, ::Lnrpc::FundingStateStepResp rpc :FundingStateStep, FundingTransitionMsg, FundingStateStepResp
# # *
# ChannelAcceptor dispatches a bi-directional streaming RPC in which # ChannelAcceptor dispatches a bi-directional streaming RPC in which
# OpenChannel requests are sent to the client and the client responds with # OpenChannel requests are sent to the client and the client responds with
# a boolean that tells LND whether or not to accept the channel. This allows # a boolean that tells LND whether or not to accept the channel. This allows
# node operators to specify their own criteria for accepting inbound channels # node operators to specify their own criteria for accepting inbound channels
# through a single persistent connection. # through a single persistent connection.
rpc :ChannelAcceptor, stream(::Lnrpc::ChannelAcceptResponse), stream(::Lnrpc::ChannelAcceptRequest) rpc :ChannelAcceptor, stream(ChannelAcceptResponse), stream(ChannelAcceptRequest)
# lncli: `closechannel` # * lncli: `closechannel`
# CloseChannel attempts to close an active channel identified by its channel # CloseChannel attempts to close an active channel identified by its channel
# outpoint (ChannelPoint). The actions of this method can additionally be # outpoint (ChannelPoint). The actions of this method can additionally be
# augmented to attempt a force close after a timeout period in the case of an # augmented to attempt a force close after a timeout period in the case of an
@@ -184,45 +221,42 @@ module Lnrpc
# then the user can specify either a target number of blocks until the # then the user can specify either a target number of blocks until the
# closure transaction is confirmed, or a manual fee rate. If neither are # closure transaction is confirmed, or a manual fee rate. If neither are
# specified, then a default lax, block confirmation target is used. # specified, then a default lax, block confirmation target is used.
rpc :CloseChannel, ::Lnrpc::CloseChannelRequest, stream(::Lnrpc::CloseStatusUpdate) rpc :CloseChannel, CloseChannelRequest, stream(CloseStatusUpdate)
# 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. This method can also be # channels due to bugs fixed in newer versions of lnd. Only available
# used to remove externally funded channels where the funding transaction was # when in debug builds of lnd.
# never broadcast. Only available for non-externally funded channels in dev rpc :AbandonChannel, AbandonChannelRequest, AbandonChannelResponse
# build. # * lncli: `sendpayment`
rpc :AbandonChannel, ::Lnrpc::AbandonChannelRequest, ::Lnrpc::AbandonChannelResponse # Deprecated, use routerrpc.SendPayment. SendPayment dispatches a
# lncli: `sendpayment`
# Deprecated, use routerrpc.SendPaymentV2. SendPayment dispatches a
# bi-directional streaming RPC for sending payments through the Lightning # bi-directional streaming RPC for sending payments through the Lightning
# Network. A single RPC invocation creates a persistent bi-directional # Network. A single RPC invocation creates a persistent bi-directional
# stream allowing clients to rapidly send payments through the Lightning # stream allowing clients to rapidly send payments through the Lightning
# Network with a single persistent connection. # Network with a single persistent connection.
rpc :SendPayment, stream(::Lnrpc::SendRequest), stream(::Lnrpc::SendResponse) rpc :SendPayment, stream(SendRequest), stream(SendResponse)
# # *
# SendPaymentSync is the synchronous non-streaming version of SendPayment. # SendPaymentSync is the synchronous non-streaming version of SendPayment.
# This RPC is intended to be consumed by clients of the REST proxy. # This RPC is intended to be consumed by clients of the REST proxy.
# Additionally, this RPC expects the destination's public key and the payment # Additionally, this RPC expects the destination's public key and the payment
# hash (if any) to be encoded as hex strings. # hash (if any) to be encoded as hex strings.
rpc :SendPaymentSync, ::Lnrpc::SendRequest, ::Lnrpc::SendResponse rpc :SendPaymentSync, SendRequest, SendResponse
# lncli: `sendtoroute` # * lncli: `sendtoroute`
# Deprecated, use routerrpc.SendToRouteV2. SendToRoute is a bi-directional # SendToRoute is a bi-directional streaming RPC for sending payment through
# streaming RPC for sending payment through the Lightning Network. This # the Lightning Network. This method differs from SendPayment in that it
# method differs from SendPayment in that it allows users to specify a full # allows users to specify a full route manually. This can be used for things
# route manually. This can be used for things like rebalancing, and atomic # like rebalancing, and atomic swaps.
# swaps. rpc :SendToRoute, stream(SendToRouteRequest), stream(SendResponse)
rpc :SendToRoute, stream(::Lnrpc::SendToRouteRequest), stream(::Lnrpc::SendResponse) # *
#
# SendToRouteSync is a synchronous version of SendToRoute. It Will block # SendToRouteSync is a synchronous version of SendToRoute. It Will block
# until the payment either fails or succeeds. # until the payment either fails or succeeds.
rpc :SendToRouteSync, ::Lnrpc::SendToRouteRequest, ::Lnrpc::SendResponse rpc :SendToRouteSync, SendToRouteRequest, SendResponse
# lncli: `addinvoice` # * lncli: `addinvoice`
# AddInvoice attempts to add a new invoice to the invoice database. Any # AddInvoice attempts to add a new invoice to the invoice database. Any
# duplicated invoices are rejected, therefore all invoices *must* have a # duplicated invoices are rejected, therefore all invoices *must* have a
# unique payment preimage. # unique payment preimage.
rpc :AddInvoice, ::Lnrpc::Invoice, ::Lnrpc::AddInvoiceResponse rpc :AddInvoice, Invoice, AddInvoiceResponse
# lncli: `listinvoices` # * lncli: `listinvoices`
# ListInvoices returns a list of all the invoices currently stored within the # ListInvoices returns a list of all the invoices currently stored within the
# database. Any active debug invoices are ignored. It has full support for # database. Any active debug invoices are ignored. It has full support for
# paginated responses, allowing users to query for specific invoices through # paginated responses, allowing users to query for specific invoices through
@@ -230,13 +264,13 @@ module Lnrpc
# last_index_offset fields included in the response as the index_offset of the # last_index_offset fields included in the response as the index_offset of the
# next request. By default, the first 100 invoices created will be returned. # next request. By default, the first 100 invoices created will be returned.
# Backwards pagination is also supported through the Reversed flag. # Backwards pagination is also supported through the Reversed flag.
rpc :ListInvoices, ::Lnrpc::ListInvoiceRequest, ::Lnrpc::ListInvoiceResponse rpc :ListInvoices, ListInvoiceRequest, ListInvoiceResponse
# lncli: `lookupinvoice` # * lncli: `lookupinvoice`
# LookupInvoice attempts to look up an invoice according to its payment hash. # LookupInvoice attempts to look up an invoice according to its payment hash.
# The passed payment hash *must* be exactly 32 bytes, if not, an error is # The passed payment hash *must* be exactly 32 bytes, if not, an error is
# returned. # returned.
rpc :LookupInvoice, ::Lnrpc::PaymentHash, ::Lnrpc::Invoice rpc :LookupInvoice, PaymentHash, Invoice
# # *
# SubscribeInvoices returns a uni-directional stream (server -> client) for # SubscribeInvoices returns a uni-directional stream (server -> client) for
# notifying the client of newly added/settled invoices. The caller can # notifying the client of newly added/settled invoices. The caller can
# optionally specify the add_index and/or the settle_index. If the add_index # optionally specify the add_index and/or the settle_index. If the add_index
@@ -246,83 +280,78 @@ module Lnrpc
# invoices with a settle_index greater than the specified value. One or both # invoices with a settle_index greater than the specified value. One or both
# of these fields can be set. If no fields are set, then we'll only send out # of these fields can be set. If no fields are set, then we'll only send out
# the latest add/settle events. # the latest add/settle events.
rpc :SubscribeInvoices, ::Lnrpc::InvoiceSubscription, stream(::Lnrpc::Invoice) rpc :SubscribeInvoices, InvoiceSubscription, stream(Invoice)
# lncli: `decodepayreq` # * lncli: `decodepayreq`
# DecodePayReq takes an encoded payment request string and attempts to decode # DecodePayReq takes an encoded payment request string and attempts to decode
# it, returning a full description of the conditions encoded within the # it, returning a full description of the conditions encoded within the
# payment request. # payment request.
rpc :DecodePayReq, ::Lnrpc::PayReqString, ::Lnrpc::PayReq rpc :DecodePayReq, PayReqString, PayReq
# lncli: `listpayments` # * lncli: `listpayments`
# ListPayments returns a list of all outgoing payments. # ListPayments returns a list of all outgoing payments.
rpc :ListPayments, ::Lnrpc::ListPaymentsRequest, ::Lnrpc::ListPaymentsResponse rpc :ListPayments, ListPaymentsRequest, ListPaymentsResponse
# # *
# DeleteAllPayments deletes all outgoing payments from DB. # DeleteAllPayments deletes all outgoing payments from DB.
rpc :DeleteAllPayments, ::Lnrpc::DeleteAllPaymentsRequest, ::Lnrpc::DeleteAllPaymentsResponse rpc :DeleteAllPayments, DeleteAllPaymentsRequest, DeleteAllPaymentsResponse
# lncli: `describegraph` # * lncli: `describegraph`
# DescribeGraph returns a description of the latest graph state from the # DescribeGraph returns a description of the latest graph state from the
# point of view of the node. The graph information is partitioned into two # point of view of the node. The graph information is partitioned into two
# components: all the nodes/vertexes, and all the edges that connect the # components: all the nodes/vertexes, and all the edges that connect the
# vertexes themselves. As this is a directed graph, the edges also contain # vertexes themselves. As this is a directed graph, the edges also contain
# the node directional specific routing policy which includes: the time lock # the node directional specific routing policy which includes: the time lock
# delta, fee information, etc. # delta, fee information, etc.
rpc :DescribeGraph, ::Lnrpc::ChannelGraphRequest, ::Lnrpc::ChannelGraph rpc :DescribeGraph, ChannelGraphRequest, ChannelGraph
# lncli: `getnodemetrics` # * lncli: `getnodemetrics`
# GetNodeMetrics returns node metrics calculated from the graph. Currently # GetNodeMetrics returns node metrics calculated from the graph. Currently
# the only supported metric is betweenness centrality of individual nodes. # the only supported metric is betweenness centrality of individual nodes.
rpc :GetNodeMetrics, ::Lnrpc::NodeMetricsRequest, ::Lnrpc::NodeMetricsResponse rpc :GetNodeMetrics, NodeMetricsRequest, NodeMetricsResponse
# lncli: `getchaninfo` # * lncli: `getchaninfo`
# GetChanInfo returns the latest authenticated network announcement for the # GetChanInfo returns the latest authenticated network announcement for the
# given channel identified by its channel ID: an 8-byte integer which # given channel identified by its channel ID: an 8-byte integer which
# uniquely identifies the location of transaction's funding output within the # uniquely identifies the location of transaction's funding output within the
# blockchain. # blockchain.
rpc :GetChanInfo, ::Lnrpc::ChanInfoRequest, ::Lnrpc::ChannelEdge rpc :GetChanInfo, ChanInfoRequest, ChannelEdge
# lncli: `getnodeinfo` # * lncli: `getnodeinfo`
# GetNodeInfo returns the latest advertised, aggregated, and authenticated # GetNodeInfo returns the latest advertised, aggregated, and authenticated
# channel information for the specified node identified by its public key. # channel information for the specified node identified by its public key.
rpc :GetNodeInfo, ::Lnrpc::NodeInfoRequest, ::Lnrpc::NodeInfo rpc :GetNodeInfo, NodeInfoRequest, NodeInfo
# lncli: `queryroutes` # * lncli: `queryroutes`
# QueryRoutes attempts to query the daemon's Channel Router for a possible # QueryRoutes attempts to query the daemon's Channel Router for a possible
# route to a target destination capable of carrying a specific amount of # route to a target destination capable of carrying a specific amount of
# satoshis. The returned route contains the full details required to craft and # satoshis. The returned route contains the full details required to craft and
# send an HTLC, also including the necessary information that should be # send an HTLC, also including the necessary information that should be
# present within the Sphinx packet encapsulated within the HTLC. # present within the Sphinx packet encapsulated within the HTLC.
# rpc :QueryRoutes, QueryRoutesRequest, QueryRoutesResponse
# When using REST, the `dest_custom_records` map type can be set by appending # * lncli: `getnetworkinfo`
# `&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, ::Lnrpc::QueryRoutesRequest, ::Lnrpc::QueryRoutesResponse
# lncli: `getnetworkinfo`
# GetNetworkInfo returns some basic stats about the known channel graph from # GetNetworkInfo returns some basic stats about the known channel graph from
# the point of view of the node. # the point of view of the node.
rpc :GetNetworkInfo, ::Lnrpc::NetworkInfoRequest, ::Lnrpc::NetworkInfo rpc :GetNetworkInfo, NetworkInfoRequest, NetworkInfo
# lncli: `stop` # * lncli: `stop`
# StopDaemon will send a shutdown request to the interrupt handler, triggering # StopDaemon will send a shutdown request to the interrupt handler, triggering
# a graceful shutdown of the daemon. # a graceful shutdown of the daemon.
rpc :StopDaemon, ::Lnrpc::StopRequest, ::Lnrpc::StopResponse rpc :StopDaemon, StopRequest, StopResponse
# # *
# SubscribeChannelGraph launches a streaming RPC that allows the caller to # SubscribeChannelGraph launches a streaming RPC that allows the caller to
# receive notifications upon any changes to the channel graph topology from # receive notifications upon any changes to the channel graph topology from
# the point of view of the responding node. Events notified include: new # the point of view of the responding node. Events notified include: new
# nodes coming online, nodes updating their authenticated attributes, new # nodes coming online, nodes updating their authenticated attributes, new
# channels being advertised, updates in the routing policy for a directional # channels being advertised, updates in the routing policy for a directional
# channel edge, and when channels are closed on-chain. # channel edge, and when channels are closed on-chain.
rpc :SubscribeChannelGraph, ::Lnrpc::GraphTopologySubscription, stream(::Lnrpc::GraphTopologyUpdate) rpc :SubscribeChannelGraph, GraphTopologySubscription, stream(GraphTopologyUpdate)
# lncli: `debuglevel` # * lncli: `debuglevel`
# DebugLevel allows a caller to programmatically set the logging verbosity of # DebugLevel allows a caller to programmatically set the logging verbosity of
# lnd. The logging can be targeted according to a coarse daemon-wide logging # lnd. The logging can be targeted according to a coarse daemon-wide logging
# level, or in a granular fashion to specify the logging for a target # level, or in a granular fashion to specify the logging for a target
# sub-system. # sub-system.
rpc :DebugLevel, ::Lnrpc::DebugLevelRequest, ::Lnrpc::DebugLevelResponse rpc :DebugLevel, DebugLevelRequest, DebugLevelResponse
# lncli: `feereport` # * lncli: `feereport`
# FeeReport allows the caller to obtain a report detailing the current fee # FeeReport allows the caller to obtain a report detailing the current fee
# schedule enforced by the node globally for each channel. # schedule enforced by the node globally for each channel.
rpc :FeeReport, ::Lnrpc::FeeReportRequest, ::Lnrpc::FeeReportResponse rpc :FeeReport, FeeReportRequest, FeeReportResponse
# lncli: `updatechanpolicy` # * lncli: `updatechanpolicy`
# UpdateChannelPolicy allows the caller to update the fee schedule and # UpdateChannelPolicy allows the caller to update the fee schedule and
# channel policies for all channels globally, or a particular channel. # channel policies for all channels globally, or a particular channel.
rpc :UpdateChannelPolicy, ::Lnrpc::PolicyUpdateRequest, ::Lnrpc::PolicyUpdateResponse rpc :UpdateChannelPolicy, PolicyUpdateRequest, PolicyUpdateResponse
# lncli: `fwdinghistory` # * lncli: `fwdinghistory`
# ForwardingHistory allows the caller to query the htlcswitch for a record of # ForwardingHistory allows the caller to query the htlcswitch for a record of
# all HTLCs forwarded within the target time range, and integer offset # all HTLCs forwarded within the target time range, and integer offset
# within that time range. If no time-range is specified, then the first chunk # within that time range. If no time-range is specified, then the first chunk
@@ -333,34 +362,34 @@ module Lnrpc
# As a result each message can only contain 50k entries. Each response has # As a result each message can only contain 50k entries. Each response has
# the index offset of the last entry. The index offset can be provided to the # the index offset of the last entry. The index offset can be provided to the
# request to allow the caller to skip a series of records. # request to allow the caller to skip a series of records.
rpc :ForwardingHistory, ::Lnrpc::ForwardingHistoryRequest, ::Lnrpc::ForwardingHistoryResponse rpc :ForwardingHistory, ForwardingHistoryRequest, ForwardingHistoryResponse
# lncli: `exportchanbackup` # * lncli: `exportchanbackup`
# ExportChannelBackup attempts to return an encrypted static channel backup # ExportChannelBackup attempts to return an encrypted static channel backup
# for the target channel identified by it channel point. The backup is # for the target channel identified by it channel point. The backup is
# encrypted with a key generated from the aezeed seed of the user. The # encrypted with a key generated from the aezeed seed of the user. The
# returned backup can either be restored using the RestoreChannelBackup # returned backup can either be restored using the RestoreChannelBackup
# method once lnd is running, or via the InitWallet and UnlockWallet methods # method once lnd is running, or via the InitWallet and UnlockWallet methods
# from the WalletUnlocker service. # from the WalletUnlocker service.
rpc :ExportChannelBackup, ::Lnrpc::ExportChannelBackupRequest, ::Lnrpc::ChannelBackup rpc :ExportChannelBackup, ExportChannelBackupRequest, ChannelBackup
# # *
# ExportAllChannelBackups returns static channel backups for all existing # ExportAllChannelBackups returns static channel backups for all existing
# channels known to lnd. A set of regular singular static channel backups for # channels known to lnd. A set of regular singular static channel backups for
# each channel are returned. Additionally, a multi-channel backup is returned # each channel are returned. Additionally, a multi-channel backup is returned
# as well, which contains a single encrypted blob containing the backups of # as well, which contains a single encrypted blob containing the backups of
# each channel. # each channel.
rpc :ExportAllChannelBackups, ::Lnrpc::ChanBackupExportRequest, ::Lnrpc::ChanBackupSnapshot rpc :ExportAllChannelBackups, ChanBackupExportRequest, ChanBackupSnapshot
# # *
# VerifyChanBackup allows a caller to verify the integrity of a channel backup # VerifyChanBackup allows a caller to verify the integrity of a channel backup
# snapshot. This method will accept either a packed Single or a packed Multi. # snapshot. This method will accept either a packed Single or a packed Multi.
# Specifying both will result in an error. # Specifying both will result in an error.
rpc :VerifyChanBackup, ::Lnrpc::ChanBackupSnapshot, ::Lnrpc::VerifyChanBackupResponse rpc :VerifyChanBackup, ChanBackupSnapshot, VerifyChanBackupResponse
# lncli: `restorechanbackup` # * lncli: `restorechanbackup`
# RestoreChannelBackups accepts a set of singular channel backups, or a # RestoreChannelBackups accepts a set of singular channel backups, or a
# single encrypted multi-chan backup and attempts to recover any funds # single encrypted multi-chan backup and attempts to recover any funds
# remaining within the channel. If we are able to unpack the backup, then the # remaining within the channel. If we are able to unpack the backup, then the
# new channel will be shown under listchannels, as well as pending channels. # new channel will be shown under listchannels, as well as pending channels.
rpc :RestoreChannelBackups, ::Lnrpc::RestoreChanBackupRequest, ::Lnrpc::RestoreBackupResponse rpc :RestoreChannelBackups, RestoreChanBackupRequest, RestoreBackupResponse
# # *
# SubscribeChannelBackups allows a client to sub-subscribe to the most up to # SubscribeChannelBackups allows a client to sub-subscribe to the most up to
# date information concerning the state of all channel backups. Each time a # date information concerning the state of all channel backups. Each time a
# new channel is added, we return the new set of channels, along with a # new channel is added, we return the new set of channels, along with a
@@ -368,23 +397,12 @@ module Lnrpc
# channel is closed, we send a new update, which contains new new chan back # channel is closed, we send a new update, which contains new new chan back
# ups, but the updated set of encrypted multi-chan backups with the closed # ups, but the updated set of encrypted multi-chan backups with the closed
# channel(s) removed. # channel(s) removed.
rpc :SubscribeChannelBackups, ::Lnrpc::ChannelBackupSubscription, stream(::Lnrpc::ChanBackupSnapshot) rpc :SubscribeChannelBackups, ChannelBackupSubscription, stream(ChanBackupSnapshot)
# lncli: `bakemacaroon` # * lncli: `bakemacaroon`
# BakeMacaroon allows the creation of a new macaroon with custom read and # BakeMacaroon allows the creation of a new macaroon with custom read and
# write permissions. No first-party caveats are added since this can be done # write permissions. No first-party caveats are added since this can be done
# offline. # offline.
rpc :BakeMacaroon, ::Lnrpc::BakeMacaroonRequest, ::Lnrpc::BakeMacaroonResponse rpc :BakeMacaroon, BakeMacaroonRequest, BakeMacaroonResponse
# lncli: `listmacaroonids`
# ListMacaroonIDs returns all root key IDs that are in use.
rpc :ListMacaroonIDs, ::Lnrpc::ListMacaroonIDsRequest, ::Lnrpc::ListMacaroonIDsResponse
# lncli: `deletemacaroonid`
# DeleteMacaroonID deletes the specified macaroon ID and invalidates all
# macaroons derived from that ID.
rpc :DeleteMacaroonID, ::Lnrpc::DeleteMacaroonIDRequest, ::Lnrpc::DeleteMacaroonIDResponse
# lncli: `listpermissions`
# ListPermissions lists all RPC method URIs and their required macaroon
# permissions to access them.
rpc :ListPermissions, ::Lnrpc::ListPermissionsRequest, ::Lnrpc::ListPermissionsResponse
end end
Stub = Service.rpc_stub_class Stub = Service.rpc_stub_class

View File

@@ -1,3 +1,3 @@
module Lnrpc module Lnrpc
VERSION = "0.14.3.1" VERSION = "0.10.0"
end end

View File

@@ -14,8 +14,6 @@ Gem::Specification.new do |spec|
spec.homepage = "https://github.com/bumi/lnrpc" spec.homepage = "https://github.com/bumi/lnrpc"
spec.license = "MIT" spec.license = "MIT"
spec.metadata['funding'] = 'lightning:02ad33d99d0bb3bf3bb8ec8e089cbefa8fd7de23a13cfa59aec9af9730816be76f'
# Specify which files should be added to the gem when it is released. # Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git. # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
@@ -23,12 +21,12 @@ Gem::Specification.new do |spec|
end end
spec.bindir = "exe" spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib", "lib/grpc_services"] spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "> 2.0" spec.add_development_dependency "bundler", "~> 1.17"
spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "rspec", "~> 3.0"
spec.add_dependency "grpc", ">= 1.28.0" spec.add_dependency "grpc", ">= 1.19.0"
spec.add_dependency "google-protobuf", ">=3.15.7" spec.add_dependency "google-protobuf", ">=3.7"
end end