lnrpc 0.11.1 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f179c17848afbfca35a585bd4175f32198d30f7eeba54430d771a17dd447b8a
4
- data.tar.gz: aa07b410912563889eeb1dc753b52ff195364daf72d73fdecd830228cf91e380
3
+ metadata.gz: d8892aec70e15ec43c6f400d7042cc385dad68fc911b68effa920d878dfdd7ca
4
+ data.tar.gz: d490c7df3eb0ad9a2f6fffe41abd5d28e8b9c322cc5b38c94d9948e5cfbc36ae
5
5
  SHA512:
6
- metadata.gz: 7de6549fb6d2e38616f507a9688edab16b23813936e62ad7d77b1f9bea92c6bad4ca956baa322b1d80ca8f76326c787aa06a6dd1bf91cc9a2379500963e1a5e3
7
- data.tar.gz: cff434503e194459df748705e635ad5685202fa347176fc8cce682e291486d079b43069ed4e62c8c446b40b63fcd8a0c81760c93493693e40a51091adc07cb10
6
+ metadata.gz: b6964abbe9f69647d61d8af3d4ea07622dc84d6b015558b8ee0a6b77d825ea8ff4192b42cb0e087d4aff1ea78f700ef66cabae359a6778f646d749ea165b106b
7
+ data.tar.gz: 613b5b9d4492b568483611214dd4ddf263bdf34061613c05a3d3c2b4df1643bcf110443889cd0eafc72ff180bd7572f89c17948ab2afc3c46ece30b5e96b2107
data/Gemfile.lock CHANGED
@@ -1,43 +1,43 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lnrpc (0.10.0)
5
- google-protobuf (>= 3.7)
6
- grpc (>= 1.19.0)
4
+ lnrpc (0.14.1)
5
+ google-protobuf (>= 3.15.7)
6
+ grpc (>= 1.28.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- diff-lcs (1.3)
12
- google-protobuf (3.9.2)
13
- googleapis-common-protos-types (1.0.4)
14
- google-protobuf (~> 3.0)
15
- grpc (1.24.0)
16
- google-protobuf (~> 3.8)
11
+ diff-lcs (1.5.0)
12
+ google-protobuf (3.21.1)
13
+ googleapis-common-protos-types (1.3.1)
14
+ google-protobuf (~> 3.14)
15
+ grpc (1.46.3)
16
+ google-protobuf (~> 3.19)
17
17
  googleapis-common-protos-types (~> 1.0)
18
- rake (13.0.1)
19
- rspec (3.9.0)
20
- rspec-core (~> 3.9.0)
21
- rspec-expectations (~> 3.9.0)
22
- rspec-mocks (~> 3.9.0)
23
- rspec-core (3.9.0)
24
- rspec-support (~> 3.9.0)
25
- rspec-expectations (3.9.0)
18
+ rake (13.0.6)
19
+ rspec (3.11.0)
20
+ rspec-core (~> 3.11.0)
21
+ rspec-expectations (~> 3.11.0)
22
+ rspec-mocks (~> 3.11.0)
23
+ rspec-core (3.11.0)
24
+ rspec-support (~> 3.11.0)
25
+ rspec-expectations (3.11.0)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.9.0)
28
- rspec-mocks (3.9.0)
27
+ rspec-support (~> 3.11.0)
28
+ rspec-mocks (3.11.1)
29
29
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.9.0)
31
- rspec-support (3.9.0)
30
+ rspec-support (~> 3.11.0)
31
+ rspec-support (3.11.0)
32
32
 
33
33
  PLATFORMS
34
34
  ruby
35
35
 
36
36
  DEPENDENCIES
37
- bundler (~> 1.17)
37
+ bundler (> 2.0)
38
38
  lnrpc!
39
39
  rake (~> 13.0)
40
40
  rspec (~> 3.0)
41
41
 
42
42
  BUNDLED WITH
43
- 1.17.3
43
+ 2.2.33
data/README.md CHANGED
@@ -5,13 +5,10 @@ a [gRPC](https://grpc.io/) client for [LND, the Lightning Network Daemon](https:
5
5
 
6
6
  ## Installation
7
7
 
8
- Note: there is still an GRPC/protobuf [issue with Ruby 2.7](https://github.com/protocolbuffers/protobuf/issues/7070).
9
- So lnrpc requires Ruby < 2.7.
10
-
11
8
  Add this line to your application's Gemfile:
12
9
 
13
10
  ```ruby
14
- gem 'lnrpc', '~> 0.11.0'
11
+ gem 'lnrpc', '~> 0.13.0'
15
12
  ```
16
13
  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)).
17
14
 
@@ -27,7 +24,7 @@ Or install it yourself as:
27
24
 
28
25
  ## Usage
29
26
 
30
- This gem makes the gRPC client classes created from the [LND service defintions](https://github.com/lightningnetwork/lnd/tree/master/lnrpc) available.
27
+ This gem makes the gRPC client classes created from the [LND service definitions](https://github.com/lightningnetwork/lnd/tree/master/lnrpc) available.
31
28
 
32
29
  ```ruby
33
30
  require "lnrpc"
@@ -35,7 +32,7 @@ require "lnrpc"
35
32
  # With the changes in LND v.10.0 this load the `Lnrpc` and `Routerrpc` namespace
36
33
 
37
34
  Lnrpc::Lightning::Stub
38
- Routerrpc:::Routerrpc::Stub
35
+ Routerrpc::Routerrpc::Stub
39
36
  Lnrpc::GetInfoRequest
40
37
  ...
41
38
  ```
@@ -78,7 +75,7 @@ lnd = Lnrpc::Client.new({credentials_path: '/path/to.cert.cls', macaroon_path: '
78
75
  lnd.lightning # => Lnrpc::Lightning::Stub
79
76
  lnd.router # => Lnrpc::Router::Stub
80
77
 
81
- lnd.ligthning.get_info
78
+ lnd.lightning.get_info
82
79
  ```
83
80
 
84
81
  Also have a look at [examples.rb](https://github.com/bumi/lnrpc/blob/master/examples.rb)
@@ -133,7 +130,7 @@ client.lightning.grpc.list_channels(request)
133
130
 
134
131
  client.lightning.wallet_balance.total_balance
135
132
  # is the same as:
136
- request = Lnrpc::WalletBalanceRequest.new()
133
+ request = Lnrpc::WalletBalanceRequest.new
137
134
  client.lightning.grpc.wallet_balance(request).total_balance
138
135
  ```
139
136
 
@@ -144,7 +141,7 @@ If you have a running BTC Pay Server with LND support, integrating with lnrpc is
144
141
  - Navigate to Services on the Server Settings page
145
142
  - Click "see information" for your gRPC Server
146
143
  - The link by "More details..." will expose the address and various macaroon hex strings
147
- - Initialize your client with the options detailed above. BTC Pay Server utilizes LetsEncrypt for trusted TLC Certificates so set that option to nil.
144
+ - Initialize your client with the options detailed above. BTC Pay Server utilizes LetsEncrypt for trusted TLC Certificates so set that option to nil.
148
145
 
149
146
  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)
150
147
 
@@ -164,6 +161,8 @@ The files will be stored in `lib/grpc_services`
164
161
 
165
162
  $ ./generate-grpc-service-files.sh
166
163
 
164
+ + Make sure you have the [grpc-tools](https://rubygems.org/gems/grpc-tools) installed
165
+ + Make sure you have the lnd source in your $GOPATH/src folder
167
166
 
168
167
  ## Other resources
169
168
 
data/examples.rb CHANGED
@@ -24,3 +24,46 @@ puts lnd.wallet_kit.next_addr
24
24
  lnd.lightning.subscribe_invoices(settle_index: 1).each do |invoice|
25
25
  puts invoice.payment_request
26
26
  end
27
+
28
+ # sign a message with your node
29
+ signed_message = lnd.lightning.sign_message({ msg: "Money printer goes brrr" })
30
+ puts "Signature: " + signed_message.signature
31
+
32
+ # verify a signed message by another node
33
+ verification_response = lnd.lightning.verify_message({
34
+ msg: "Money printer goes brrr",
35
+ signature: signed_message.signature
36
+ })
37
+ puts "Pubkey: " + verification_response.pubkey # pubkey of the node that signed
38
+ puts "Valid: " + verification_response.valid.to_s
39
+
40
+ # get information on a node
41
+ node_info_response = lnd.lightning.get_node_info(pub_key: verification_response.pubkey, include_channels: true)
42
+ puts "Updated: " + Time.at(node_info_response.node.last_update).to_s
43
+ puts "Pubkey: " + node_info_response.node.pub_key.to_s
44
+ puts "Alias: " + node_info_response.node.alias.to_s
45
+ puts "Color: " + node_info_response.node.color.to_s
46
+ puts "Channels: " + node_info_response.num_channels.to_s
47
+ puts "Capacity SAT: " + node_info_response.total_capacity.to_s
48
+ puts "Address: " + node_info_response.node.addresses.first["addr"].to_s
49
+
50
+ # extract channel information
51
+ node_info_response.channels.each do |channel|
52
+ puts "Channel ID: " + channel["channel_id"].to_s
53
+ puts "Channel 1:" + channel["node1_pub"].to_s # pubkey of the first node
54
+ puts "Channel 2:" + channel["node2_pub"].to_s # pubkey of the second node
55
+ puts "Channel Capacity:" + channel["capacity"].to_s
56
+ end
57
+
58
+ # update channel policy
59
+ channel = lnd.lightning.list_channels.channels[0]
60
+ puts lnd.lightning.get_chan_info(chan_id: channel.chan_id)
61
+ channel_point = {
62
+ funding_txid_str: channel.channel_point.split(":")[0],
63
+ output_index: channel.channel_point.split(":")[1].to_i
64
+ }
65
+ lnd.lightning.update_channel_policy({
66
+ time_lock_delta: 40,
67
+ base_fee_msat: 1100,
68
+ chan_point: channel_point
69
+ })
@@ -18,9 +18,8 @@ for file in $PROTOS; do
18
18
  echo "Generating protos from ${file}, into ${LNRPC_TARGET_DIR}/${DIRECTORY}"
19
19
 
20
20
  # writes all ruby files in the ruby directory
21
- grpc_tools_ruby_protoc -I/usr/local/include \
22
- -I. \
23
- -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
21
+ grpc_tools_ruby_protoc -I. \
22
+ -I$GOPATH/src/github.com/googleapis/googleapis \
24
23
  -I$GOPATH/src/github.com/lightningnetwork/lnd/lnrpc \
25
24
  --ruby_out=plugins=grpc,paths=source_relative:${LNRPC_TARGET_DIR} \
26
25
  --grpc_out=${LNRPC_TARGET_DIR} "${file}"
@@ -11,7 +11,7 @@ module Autopilotrpc
11
11
  # that can be used when deciding where to open channels.
12
12
  class Service
13
13
 
14
- include GRPC::GenericService
14
+ include ::GRPC::GenericService
15
15
 
16
16
  self.marshal_class_method = :encode
17
17
  self.unmarshal_class_method = :decode
@@ -19,20 +19,20 @@ module Autopilotrpc
19
19
 
20
20
  #
21
21
  # Status returns whether the daemon's autopilot agent is active.
22
- rpc :Status, StatusRequest, StatusResponse
22
+ rpc :Status, ::Autopilotrpc::StatusRequest, ::Autopilotrpc::StatusResponse
23
23
  #
24
24
  # ModifyStatus is used to modify the status of the autopilot agent, like
25
25
  # enabling or disabling it.
26
- rpc :ModifyStatus, ModifyStatusRequest, ModifyStatusResponse
26
+ rpc :ModifyStatus, ::Autopilotrpc::ModifyStatusRequest, ::Autopilotrpc::ModifyStatusResponse
27
27
  #
28
28
  # QueryScores queries all available autopilot heuristics, in addition to any
29
29
  # active combination of these heruristics, for the scores they would give to
30
30
  # the given nodes.
31
- rpc :QueryScores, QueryScoresRequest, QueryScoresResponse
31
+ rpc :QueryScores, ::Autopilotrpc::QueryScoresRequest, ::Autopilotrpc::QueryScoresResponse
32
32
  #
33
33
  # SetScores attempts to set the scores used by the running autopilot agent,
34
34
  # if the external scoring heuristic is enabled.
35
- rpc :SetScores, SetScoresRequest, SetScoresResponse
35
+ rpc :SetScores, ::Autopilotrpc::SetScoresRequest, ::Autopilotrpc::SetScoresResponse
36
36
  end
37
37
 
38
38
  Stub = Service.rpc_stub_class
@@ -10,7 +10,7 @@ module Chainrpc
10
10
  # chain backend by registering notifiers for chain events.
11
11
  class Service
12
12
 
13
- include GRPC::GenericService
13
+ include ::GRPC::GenericService
14
14
 
15
15
  self.marshal_class_method = :encode
16
16
  self.unmarshal_class_method = :decode
@@ -24,7 +24,7 @@ module Chainrpc
24
24
  # A client can specify whether the confirmation request should be for a
25
25
  # particular transaction by its hash or for an output script by specifying a
26
26
  # zero hash.
27
- rpc :RegisterConfirmationsNtfn, ConfRequest, stream(ConfEvent)
27
+ rpc :RegisterConfirmationsNtfn, ::Chainrpc::ConfRequest, stream(::Chainrpc::ConfEvent)
28
28
  #
29
29
  # RegisterSpendNtfn is a synchronous response-streaming RPC that registers an
30
30
  # intent for a client to be notification once a spend request has been spent
@@ -32,7 +32,7 @@ module Chainrpc
32
32
  #
33
33
  # A client can specify whether the spend request should be for a particular
34
34
  # outpoint or for an output script by specifying a zero outpoint.
35
- rpc :RegisterSpendNtfn, SpendRequest, stream(SpendEvent)
35
+ rpc :RegisterSpendNtfn, ::Chainrpc::SpendRequest, stream(::Chainrpc::SpendEvent)
36
36
  #
37
37
  # RegisterBlockEpochNtfn is a synchronous response-streaming RPC that
38
38
  # registers an intent for a client to be notified of blocks in the chain. The
@@ -43,7 +43,7 @@ module Chainrpc
43
43
  # A client can also request a historical backlog of blocks from a particular
44
44
  # point. This allows clients to be idempotent by ensuring that they do not
45
45
  # missing processing a single block within the chain.
46
- rpc :RegisterBlockEpochNtfn, BlockEpoch, stream(BlockEpoch)
46
+ rpc :RegisterBlockEpochNtfn, ::Chainrpc::BlockEpoch, stream(::Chainrpc::BlockEpoch)
47
47
  end
48
48
 
49
49
  Stub = Service.rpc_stub_class
@@ -4,6 +4,7 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  require 'rpc_pb'
7
+
7
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
9
  add_file("invoicesrpc/invoices.proto", :syntax => :proto3) do
9
10
  add_message "invoicesrpc.CancelInvoiceMsg" do
@@ -25,6 +26,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
25
26
  end
26
27
  add_message "invoicesrpc.AddHoldInvoiceResp" do
27
28
  optional :payment_request, :string, 1
29
+ optional :add_index, :uint64, 2
30
+ optional :payment_addr, :bytes, 3
28
31
  end
29
32
  add_message "invoicesrpc.SettleInvoiceMsg" do
30
33
  optional :preimage, :bytes, 1
@@ -34,6 +37,19 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
34
37
  add_message "invoicesrpc.SubscribeSingleInvoiceRequest" do
35
38
  optional :r_hash, :bytes, 2
36
39
  end
40
+ add_message "invoicesrpc.LookupInvoiceMsg" do
41
+ optional :lookup_modifier, :enum, 4, "invoicesrpc.LookupModifier"
42
+ oneof :invoice_ref do
43
+ optional :payment_hash, :bytes, 1
44
+ optional :payment_addr, :bytes, 2
45
+ optional :set_id, :bytes, 3
46
+ end
47
+ end
48
+ add_enum "invoicesrpc.LookupModifier" do
49
+ value :DEFAULT, 0
50
+ value :HTLC_SET_ONLY, 1
51
+ value :HTLC_SET_BLANK, 2
52
+ end
37
53
  end
38
54
  end
39
55
 
@@ -45,4 +61,6 @@ module Invoicesrpc
45
61
  SettleInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceMsg").msgclass
46
62
  SettleInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceResp").msgclass
47
63
  SubscribeSingleInvoiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SubscribeSingleInvoiceRequest").msgclass
64
+ LookupInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.LookupInvoiceMsg").msgclass
65
+ LookupModifier = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.LookupModifier").enummodule
48
66
  end
@@ -10,7 +10,7 @@ module Invoicesrpc
10
10
  # invoices.
11
11
  class Service
12
12
 
13
- include GRPC::GenericService
13
+ include ::GRPC::GenericService
14
14
 
15
15
  self.marshal_class_method = :encode
16
16
  self.unmarshal_class_method = :decode
@@ -20,20 +20,24 @@ module Invoicesrpc
20
20
  # SubscribeSingleInvoice returns a uni-directional stream (server -> client)
21
21
  # to notify the client of state transitions of the specified invoice.
22
22
  # Initially the current invoice state is always sent out.
23
- rpc :SubscribeSingleInvoice, SubscribeSingleInvoiceRequest, stream(Lnrpc::Invoice)
23
+ rpc :SubscribeSingleInvoice, ::Invoicesrpc::SubscribeSingleInvoiceRequest, stream(::Lnrpc::Invoice)
24
24
  #
25
25
  # CancelInvoice cancels a currently open invoice. If the invoice is already
26
26
  # canceled, this call will succeed. If the invoice is already settled, it will
27
27
  # fail.
28
- rpc :CancelInvoice, CancelInvoiceMsg, CancelInvoiceResp
28
+ rpc :CancelInvoice, ::Invoicesrpc::CancelInvoiceMsg, ::Invoicesrpc::CancelInvoiceResp
29
29
  #
30
30
  # AddHoldInvoice creates a hold invoice. It ties the invoice to the hash
31
31
  # supplied in the request.
32
- rpc :AddHoldInvoice, AddHoldInvoiceRequest, AddHoldInvoiceResp
32
+ rpc :AddHoldInvoice, ::Invoicesrpc::AddHoldInvoiceRequest, ::Invoicesrpc::AddHoldInvoiceResp
33
33
  #
34
34
  # SettleInvoice settles an accepted invoice. If the invoice is already
35
35
  # settled, this call will succeed.
36
- rpc :SettleInvoice, SettleInvoiceMsg, SettleInvoiceResp
36
+ rpc :SettleInvoice, ::Invoicesrpc::SettleInvoiceMsg, ::Invoicesrpc::SettleInvoiceResp
37
+ #
38
+ # LookupInvoiceV2 attempts to look up at invoice. An invoice can be refrenced
39
+ # using either its payment hash, payment address, or set ID.
40
+ rpc :LookupInvoiceV2, ::Invoicesrpc::LookupInvoiceMsg, ::Lnrpc::Invoice
37
41
  end
38
42
 
39
43
  Stub = Service.rpc_stub_class
@@ -4,6 +4,7 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  require 'verrpc/verrpc_pb'
7
+
7
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
9
  add_file("lnclipb/lncli.proto", :syntax => :proto3) do
9
10
  add_message "lnclipb.VersionResponse" do
@@ -4,6 +4,7 @@
4
4
  require 'google/protobuf'
5
5
 
6
6
  require 'rpc_pb'
7
+
7
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
8
9
  add_file("routerrpc/router.proto", :syntax => :proto3) do
9
10
  add_message "routerrpc.SendPaymentRequest" do
@@ -12,6 +13,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
12
13
  optional :amt_msat, :int64, 12
13
14
  optional :payment_hash, :bytes, 3
14
15
  optional :final_cltv_delta, :int32, 4
16
+ optional :payment_addr, :bytes, 20
15
17
  optional :payment_request, :string, 5
16
18
  optional :timeout_seconds, :int32, 6
17
19
  optional :fee_limit_sat, :int64, 7
@@ -26,6 +28,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
26
28
  repeated :dest_features, :enum, 16, "lnrpc.FeatureBit"
27
29
  optional :max_parts, :uint32, 17
28
30
  optional :no_inflight_updates, :bool, 18
31
+ optional :max_shard_size_msat, :uint64, 21
32
+ optional :amp, :bool, 22
29
33
  end
30
34
  add_message "routerrpc.TrackPaymentRequest" do
31
35
  optional :payment_hash, :bytes, 1
@@ -56,6 +60,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
56
60
  add_message "routerrpc.QueryMissionControlResponse" do
57
61
  repeated :pairs, :message, 2, "routerrpc.PairHistory"
58
62
  end
63
+ add_message "routerrpc.XImportMissionControlRequest" do
64
+ repeated :pairs, :message, 1, "routerrpc.PairHistory"
65
+ end
66
+ add_message "routerrpc.XImportMissionControlResponse" do
67
+ end
59
68
  add_message "routerrpc.PairHistory" do
60
69
  optional :node_from, :bytes, 1
61
70
  optional :node_to, :bytes, 2
@@ -69,6 +78,23 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
69
78
  optional :success_amt_sat, :int64, 6
70
79
  optional :success_amt_msat, :int64, 7
71
80
  end
81
+ add_message "routerrpc.GetMissionControlConfigRequest" do
82
+ end
83
+ add_message "routerrpc.GetMissionControlConfigResponse" do
84
+ optional :config, :message, 1, "routerrpc.MissionControlConfig"
85
+ end
86
+ add_message "routerrpc.SetMissionControlConfigRequest" do
87
+ optional :config, :message, 1, "routerrpc.MissionControlConfig"
88
+ end
89
+ add_message "routerrpc.SetMissionControlConfigResponse" do
90
+ end
91
+ add_message "routerrpc.MissionControlConfig" do
92
+ optional :half_life_seconds, :uint64, 1
93
+ optional :hop_probability, :float, 2
94
+ optional :weight, :float, 3
95
+ optional :maximum_payment_results, :uint32, 4
96
+ optional :minimum_failure_relax_interval, :uint64, 5
97
+ end
72
98
  add_message "routerrpc.QueryProbabilityRequest" do
73
99
  optional :from_node, :bytes, 1
74
100
  optional :to_node, :bytes, 2
@@ -83,6 +109,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
83
109
  optional :final_cltv_delta, :int32, 2
84
110
  optional :outgoing_chan_id, :uint64, 3
85
111
  repeated :hop_pubkeys, :bytes, 4
112
+ optional :payment_addr, :bytes, 5
86
113
  end
87
114
  add_message "routerrpc.BuildRouteResponse" do
88
115
  optional :route, :message, 1, "lnrpc.Route"
@@ -121,6 +148,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
121
148
  add_message "routerrpc.ForwardFailEvent" do
122
149
  end
123
150
  add_message "routerrpc.SettleEvent" do
151
+ optional :preimage, :bytes, 1
124
152
  end
125
153
  add_message "routerrpc.LinkFailEvent" do
126
154
  optional :info, :message, 1, "routerrpc.HtlcInfo"
@@ -146,12 +174,19 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
146
174
  optional :outgoing_amount_msat, :uint64, 3
147
175
  optional :outgoing_expiry, :uint32, 4
148
176
  map :custom_records, :uint64, :bytes, 8
177
+ optional :onion_blob, :bytes, 9
149
178
  end
150
179
  add_message "routerrpc.ForwardHtlcInterceptResponse" do
151
180
  optional :incoming_circuit_key, :message, 1, "routerrpc.CircuitKey"
152
181
  optional :action, :enum, 2, "routerrpc.ResolveHoldForwardAction"
153
182
  optional :preimage, :bytes, 3
154
183
  end
184
+ add_message "routerrpc.UpdateChanStatusRequest" do
185
+ optional :chan_point, :message, 1, "lnrpc.ChannelPoint"
186
+ optional :action, :enum, 2, "routerrpc.ChanStatusAction"
187
+ end
188
+ add_message "routerrpc.UpdateChanStatusResponse" do
189
+ end
155
190
  add_enum "routerrpc.FailureDetail" do
156
191
  value :UNKNOWN, 0
157
192
  value :NO_DETAIL, 1
@@ -191,6 +226,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
191
226
  value :FAIL, 1
192
227
  value :RESUME, 2
193
228
  end
229
+ add_enum "routerrpc.ChanStatusAction" do
230
+ value :ENABLE, 0
231
+ value :DISABLE, 1
232
+ value :AUTO, 2
233
+ end
194
234
  end
195
235
  end
196
236
 
@@ -205,8 +245,15 @@ module Routerrpc
205
245
  ResetMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResetMissionControlResponse").msgclass
206
246
  QueryMissionControlRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlRequest").msgclass
207
247
  QueryMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryMissionControlResponse").msgclass
248
+ XImportMissionControlRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.XImportMissionControlRequest").msgclass
249
+ XImportMissionControlResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.XImportMissionControlResponse").msgclass
208
250
  PairHistory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairHistory").msgclass
209
251
  PairData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PairData").msgclass
252
+ GetMissionControlConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.GetMissionControlConfigRequest").msgclass
253
+ GetMissionControlConfigResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.GetMissionControlConfigResponse").msgclass
254
+ SetMissionControlConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SetMissionControlConfigRequest").msgclass
255
+ SetMissionControlConfigResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.SetMissionControlConfigResponse").msgclass
256
+ MissionControlConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.MissionControlConfig").msgclass
210
257
  QueryProbabilityRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityRequest").msgclass
211
258
  QueryProbabilityResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.QueryProbabilityResponse").msgclass
212
259
  BuildRouteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.BuildRouteRequest").msgclass
@@ -223,7 +270,10 @@ module Routerrpc
223
270
  CircuitKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.CircuitKey").msgclass
224
271
  ForwardHtlcInterceptRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardHtlcInterceptRequest").msgclass
225
272
  ForwardHtlcInterceptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ForwardHtlcInterceptResponse").msgclass
273
+ UpdateChanStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.UpdateChanStatusRequest").msgclass
274
+ UpdateChanStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.UpdateChanStatusResponse").msgclass
226
275
  FailureDetail = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.FailureDetail").enummodule
227
276
  PaymentState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.PaymentState").enummodule
228
277
  ResolveHoldForwardAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ResolveHoldForwardAction").enummodule
278
+ ChanStatusAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("routerrpc.ChanStatusAction").enummodule
229
279
  end
@@ -10,7 +10,7 @@ module Routerrpc
10
10
  # subsystem of the daemon.
11
11
  class Service
12
12
 
13
- include GRPC::GenericService
13
+ include ::GRPC::GenericService
14
14
 
15
15
  self.marshal_class_method = :encode
16
16
  self.unmarshal_class_method = :decode
@@ -20,65 +20,84 @@ module Routerrpc
20
20
  # SendPaymentV2 attempts to route a payment described by the passed
21
21
  # PaymentRequest to the final destination. The call returns a stream of
22
22
  # payment updates.
23
- rpc :SendPaymentV2, SendPaymentRequest, stream(Lnrpc::Payment)
23
+ rpc :SendPaymentV2, ::Routerrpc::SendPaymentRequest, stream(::Lnrpc::Payment)
24
24
  #
25
25
  # TrackPaymentV2 returns an update stream for the payment identified by the
26
26
  # payment hash.
27
- rpc :TrackPaymentV2, TrackPaymentRequest, stream(Lnrpc::Payment)
27
+ rpc :TrackPaymentV2, ::Routerrpc::TrackPaymentRequest, stream(::Lnrpc::Payment)
28
28
  #
29
29
  # EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
30
30
  # may cost to send an HTLC to the target end destination.
31
- rpc :EstimateRouteFee, RouteFeeRequest, RouteFeeResponse
31
+ rpc :EstimateRouteFee, ::Routerrpc::RouteFeeRequest, ::Routerrpc::RouteFeeResponse
32
32
  #
33
33
  # Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
34
34
  # the specified route. This method differs from SendPayment in that it
35
35
  # allows users to specify a full route manually. This can be used for
36
36
  # things like rebalancing, and atomic swaps. It differs from the newer
37
37
  # SendToRouteV2 in that it doesn't return the full HTLC information.
38
- rpc :SendToRoute, SendToRouteRequest, SendToRouteResponse
38
+ rpc :SendToRoute, ::Routerrpc::SendToRouteRequest, ::Routerrpc::SendToRouteResponse
39
39
  #
40
40
  # SendToRouteV2 attempts to make a payment via the specified route. This
41
41
  # method differs from SendPayment in that it allows users to specify a full
42
42
  # route manually. This can be used for things like rebalancing, and atomic
43
43
  # swaps.
44
- rpc :SendToRouteV2, SendToRouteRequest, Lnrpc::HTLCAttempt
44
+ rpc :SendToRouteV2, ::Routerrpc::SendToRouteRequest, ::Lnrpc::HTLCAttempt
45
45
  #
46
46
  # ResetMissionControl clears all mission control state and starts with a clean
47
47
  # slate.
48
- rpc :ResetMissionControl, ResetMissionControlRequest, ResetMissionControlResponse
48
+ rpc :ResetMissionControl, ::Routerrpc::ResetMissionControlRequest, ::Routerrpc::ResetMissionControlResponse
49
49
  #
50
50
  # QueryMissionControl exposes the internal mission control state to callers.
51
51
  # It is a development feature.
52
- rpc :QueryMissionControl, QueryMissionControlRequest, QueryMissionControlResponse
52
+ rpc :QueryMissionControl, ::Routerrpc::QueryMissionControlRequest, ::Routerrpc::QueryMissionControlResponse
53
+ #
54
+ # XImportMissionControl is an experimental API that imports the state provided
55
+ # to the internal mission control's state, using all results which are more
56
+ # recent than our existing values. These values will only be imported
57
+ # in-memory, and will not be persisted across restarts.
58
+ rpc :XImportMissionControl, ::Routerrpc::XImportMissionControlRequest, ::Routerrpc::XImportMissionControlResponse
59
+ #
60
+ # GetMissionControlConfig returns mission control's current config.
61
+ rpc :GetMissionControlConfig, ::Routerrpc::GetMissionControlConfigRequest, ::Routerrpc::GetMissionControlConfigResponse
62
+ #
63
+ # SetMissionControlConfig will set mission control's config, if the config
64
+ # provided is valid.
65
+ rpc :SetMissionControlConfig, ::Routerrpc::SetMissionControlConfigRequest, ::Routerrpc::SetMissionControlConfigResponse
53
66
  #
54
67
  # QueryProbability returns the current success probability estimate for a
55
68
  # given node pair and amount.
56
- rpc :QueryProbability, QueryProbabilityRequest, QueryProbabilityResponse
69
+ rpc :QueryProbability, ::Routerrpc::QueryProbabilityRequest, ::Routerrpc::QueryProbabilityResponse
57
70
  #
58
71
  # BuildRoute builds a fully specified route based on a list of hop public
59
72
  # keys. It retrieves the relevant channel policies from the graph in order to
60
73
  # calculate the correct fees and time locks.
61
- rpc :BuildRoute, BuildRouteRequest, BuildRouteResponse
74
+ rpc :BuildRoute, ::Routerrpc::BuildRouteRequest, ::Routerrpc::BuildRouteResponse
62
75
  #
63
76
  # SubscribeHtlcEvents creates a uni-directional stream from the server to
64
77
  # the client which delivers a stream of htlc events.
65
- rpc :SubscribeHtlcEvents, SubscribeHtlcEventsRequest, stream(HtlcEvent)
78
+ rpc :SubscribeHtlcEvents, ::Routerrpc::SubscribeHtlcEventsRequest, stream(::Routerrpc::HtlcEvent)
66
79
  #
67
80
  # Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
68
81
  # described by the passed PaymentRequest to the final destination. The call
69
82
  # returns a stream of payment status updates.
70
- rpc :SendPayment, SendPaymentRequest, stream(PaymentStatus)
83
+ rpc :SendPayment, ::Routerrpc::SendPaymentRequest, stream(::Routerrpc::PaymentStatus)
71
84
  #
72
85
  # Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
73
86
  # the payment identified by the payment hash.
74
- rpc :TrackPayment, TrackPaymentRequest, stream(PaymentStatus)
87
+ rpc :TrackPayment, ::Routerrpc::TrackPaymentRequest, stream(::Routerrpc::PaymentStatus)
75
88
  # *
76
89
  # HtlcInterceptor dispatches a bi-directional streaming RPC in which
77
90
  # Forwarded HTLC requests are sent to the client and the client responds with
78
91
  # a boolean that tells LND if this htlc should be intercepted.
79
92
  # In case of interception, the htlc can be either settled, cancelled or
80
93
  # resumed later by using the ResolveHoldForward endpoint.
81
- rpc :HtlcInterceptor, stream(ForwardHtlcInterceptResponse), stream(ForwardHtlcInterceptRequest)
94
+ rpc :HtlcInterceptor, stream(::Routerrpc::ForwardHtlcInterceptResponse), stream(::Routerrpc::ForwardHtlcInterceptRequest)
95
+ #
96
+ # UpdateChanStatus attempts to manually set the state of a channel
97
+ # (enabled, disabled, or auto). A manual "disable" request will cause the
98
+ # channel to stay disabled until a subsequent manual request of either
99
+ # "enable" or "auto".
100
+ rpc :UpdateChanStatus, ::Routerrpc::UpdateChanStatusRequest, ::Routerrpc::UpdateChanStatusResponse
82
101
  end
83
102
 
84
103
  Stub = Service.rpc_stub_class