lnd-client 0.0.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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +15 -0
  4. data/Gemfile +16 -0
  5. data/Gemfile.lock +62 -0
  6. data/LICENSE +21 -0
  7. data/README.md +107 -0
  8. data/Rakefile +10 -0
  9. data/components/grpc/autopilotrpc/autopilot_pb.rb +48 -0
  10. data/components/grpc/autopilotrpc/autopilot_services_pb.rb +40 -0
  11. data/components/grpc/chainrpc/chainkit_pb.rb +36 -0
  12. data/components/grpc/chainrpc/chainkit_services_pb.rb +34 -0
  13. data/components/grpc/chainrpc/chainnotifier_pb.rb +69 -0
  14. data/components/grpc/chainrpc/chainnotifier_services_pb.rb +53 -0
  15. data/components/grpc/devrpc/dev_pb.rb +17 -0
  16. data/components/grpc/devrpc/dev_services_pb.rb +25 -0
  17. data/components/grpc/invoicesrpc/invoices_pb.rb +66 -0
  18. data/components/grpc/invoicesrpc/invoices_services_pb.rb +45 -0
  19. data/components/grpc/lightning_pb.rb +1621 -0
  20. data/components/grpc/lightning_services_pb.rb +441 -0
  21. data/components/grpc/lnclipb/lncli_pb.rb +19 -0
  22. data/components/grpc/neutrinorpc/neutrino_pb.rb +106 -0
  23. data/components/grpc/neutrinorpc/neutrino_services_pb.rb +51 -0
  24. data/components/grpc/peersrpc/peers_pb.rb +48 -0
  25. data/components/grpc/peersrpc/peers_services_pb.rb +27 -0
  26. data/components/grpc/routerrpc/router_pb.rb +299 -0
  27. data/components/grpc/routerrpc/router_services_pb.rb +115 -0
  28. data/components/grpc/signrpc/signer_pb.rb +172 -0
  29. data/components/grpc/signrpc/signer_services_pb.rb +134 -0
  30. data/components/grpc/stateservice_pb.rb +35 -0
  31. data/components/grpc/stateservice_services_pb.rb +46 -0
  32. data/components/grpc/verrpc/verrpc_pb.rb +27 -0
  33. data/components/grpc/verrpc/verrpc_services_pb.rb +27 -0
  34. data/components/grpc/walletrpc/walletkit_pb.rb +328 -0
  35. data/components/grpc/walletrpc/walletkit_services_pb.rb +230 -0
  36. data/components/grpc/walletunlocker_pb.rb +75 -0
  37. data/components/grpc/walletunlocker_services_pb.rb +72 -0
  38. data/components/grpc/watchtowerrpc/watchtower_pb.rb +21 -0
  39. data/components/grpc/watchtowerrpc/watchtower_services_pb.rb +28 -0
  40. data/components/grpc/wtclientrpc/wtclient_pb.rb +83 -0
  41. data/components/grpc/wtclientrpc/wtclient_services_pb.rb +43 -0
  42. data/components/grpc.rb +9 -0
  43. data/controllers/client.rb +31 -0
  44. data/controllers/config.rb +35 -0
  45. data/controllers/documentation.rb +45 -0
  46. data/controllers/grpc_generator.rb +80 -0
  47. data/controllers/service.rb +35 -0
  48. data/lnd-client.gemspec +35 -0
  49. data/logic/string.rb +11 -0
  50. data/ports/dsl/lnd-client.rb +14 -0
  51. data/static/spec.rb +13 -0
  52. metadata +110 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4bf57c02d8b4aae6f9412c31c10316ef4ed0baa92e6bca2ed23ea37c448ff010
4
+ data.tar.gz: 6d0c315784f3f56909528d4cab5fe5dab1874fc5221a710c56c87f64b7c9dffc
5
+ SHA512:
6
+ metadata.gz: 55b36ccae8ae9daf7d0533278e79cd69b2a6fed17a7e4799fc22bf5e2cade28d4c30c9ebe34cb9738b4403ff78ee9775774427f3b3d6e68b8635fa12f66a0961
7
+ data.tar.gz: e0d9068fc28938c8a27df8e897effb727a94ab271daa63fb48303861e3418bc5d6941858f4156d9ab4bac154edafc4c575a278d43f240ea1ef981b7fd28039e3
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *.gem
2
+ temp/
data/.rubocop.yml ADDED
@@ -0,0 +1,15 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.2.0
3
+ NewCops: enable
4
+ Exclude:
5
+ - 'components/grpc/*'
6
+ - 'components/grpc/**/*'
7
+
8
+ Style/Documentation:
9
+ Enabled: false
10
+
11
+ Naming/FileName:
12
+ Exclude:
13
+ - 'ports/dsl/lnd-client.rb'
14
+
15
+ require: rubocop-rake
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ ruby '3.2.0'
4
+
5
+ source 'https://rubygems.org'
6
+
7
+ gem 'grpc', '~> 1.50'
8
+
9
+ group :test, :development do
10
+ gem 'grpc-tools', '~> 1.50'
11
+ gem 'pry-byebug', '~> 3.10', '>= 3.10.1'
12
+ gem 'rainbow', '~> 3.1', '>= 3.1.1'
13
+ gem 'rake', '~> 13.0', '>= 13.0.6'
14
+ gem 'rubocop', '~> 1.43'
15
+ gem 'rubocop-rake', '~> 0.6.0'
16
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,62 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ ast (2.4.2)
5
+ byebug (11.1.3)
6
+ coderay (1.1.3)
7
+ google-protobuf (3.21.12)
8
+ googleapis-common-protos-types (1.5.0)
9
+ google-protobuf (~> 3.14)
10
+ grpc (1.50.0)
11
+ google-protobuf (~> 3.21)
12
+ googleapis-common-protos-types (~> 1.0)
13
+ grpc-tools (1.50.0)
14
+ json (2.6.3)
15
+ method_source (1.0.0)
16
+ parallel (1.22.1)
17
+ parser (3.2.0.0)
18
+ ast (~> 2.4.1)
19
+ pry (0.14.2)
20
+ coderay (~> 1.1)
21
+ method_source (~> 1.0)
22
+ pry-byebug (3.10.1)
23
+ byebug (~> 11.0)
24
+ pry (>= 0.13, < 0.15)
25
+ rainbow (3.1.1)
26
+ rake (13.0.6)
27
+ regexp_parser (2.6.2)
28
+ rexml (3.2.5)
29
+ rubocop (1.43.0)
30
+ json (~> 2.3)
31
+ parallel (~> 1.10)
32
+ parser (>= 3.2.0.0)
33
+ rainbow (>= 2.2.2, < 4.0)
34
+ regexp_parser (>= 1.8, < 3.0)
35
+ rexml (>= 3.2.5, < 4.0)
36
+ rubocop-ast (>= 1.24.1, < 2.0)
37
+ ruby-progressbar (~> 1.7)
38
+ unicode-display_width (>= 2.4.0, < 3.0)
39
+ rubocop-ast (1.24.1)
40
+ parser (>= 3.1.1.0)
41
+ rubocop-rake (0.6.0)
42
+ rubocop (~> 1.0)
43
+ ruby-progressbar (1.11.0)
44
+ unicode-display_width (2.4.2)
45
+
46
+ PLATFORMS
47
+ x86_64-linux
48
+
49
+ DEPENDENCIES
50
+ grpc (~> 1.50)
51
+ grpc-tools (~> 1.50)
52
+ pry-byebug (~> 3.10, >= 3.10.1)
53
+ rainbow (~> 3.1, >= 3.1.1)
54
+ rake (~> 13.0, >= 13.0.6)
55
+ rubocop (~> 1.43)
56
+ rubocop-rake (~> 0.6.0)
57
+
58
+ RUBY VERSION
59
+ ruby 3.2.0p0
60
+
61
+ BUNDLED WITH
62
+ 2.4.4
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 icebaker
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,107 @@
1
+ # Ruby _Lightning Network Daemon_ Client
2
+
3
+ - [Usage](#usage)
4
+ - [Documentation](#documentation)
5
+ - [Development](#development)
6
+ - [Upgrading gRPC Proto Files](#upgrading-grpc-proto-files)
7
+ - [Publish to RubyGems](#publish-to-rubygems)
8
+
9
+ ## Usage
10
+
11
+ Add to your `Gemfile`:
12
+
13
+ ```ruby
14
+ gem 'lnd-client', '~> 0.0.1'
15
+ ```
16
+
17
+ ```ruby
18
+ require 'lnd-client'
19
+
20
+ puts LNDClient.version # => 0.0.1
21
+
22
+ client = LNDClient.new(
23
+ certificate_path: '/lnd/tls.cert',
24
+ macaroon_path: '/lnd/data/chain/bitcoin/mainnet/admin.macaroon',
25
+ socket_address: '127.0.0.1:10009'
26
+ )
27
+
28
+ client.lightning.wallet_balance.total_balance # => 101527
29
+
30
+ client.lightning.wallet_balance.to_h # =>
31
+ # {:total_balance=>101527,
32
+ # :confirmed_balance=>101527,
33
+ # :unconfirmed_balance=>0,
34
+ # :locked_balance=>0,
35
+ # :reserved_balance_anchor_chan=>20000,
36
+ # :account_balance=>{"default"=>{:confirmed_balance=>101527, :unconfirmed_balance=>0}}}
37
+
38
+ client.lightning.get_node_info(
39
+ pub_key: '02d3c80335a8ccb2ed364c06875f32240f36f7edb37d80f8dbe321b4c364b6e997'
40
+ ).node.alias # => 'icebaker/old-stone'
41
+ ```
42
+
43
+ ### Documentation
44
+
45
+ ```ruby
46
+ require 'lnd-client'
47
+
48
+ puts LNDClient.version # => 0.0.1
49
+
50
+ client = LNDClient.new(
51
+ certificate_path: '/lnd/tls.cert',
52
+ macaroon_path: '/lnd/data/chain/bitcoin/mainnet/admin.macaroon',
53
+ socket_address: '127.0.0.1:10009'
54
+ )
55
+
56
+ client.doc.services # => ['lightning']
57
+
58
+ client.lightning.doc.available_methods # =>
59
+ # ['abandon_channel',
60
+ # 'add_invoice',
61
+ # 'bake_macaroon',
62
+ # 'batch_open_channel',
63
+ # 'channel_acceptor',
64
+ # 'channel_balance',
65
+ # 'check_macaroon_permissions',
66
+ # 'close_channel',
67
+ # 'closed_channels',
68
+ # # ...
69
+ # 'get_node_info'
70
+ # ]
71
+
72
+ client.lightning.doc.describe(:get_node_info) # =>
73
+ # { method: 'get_node_info',
74
+ # input: { pub_key: '', include_channels: false},
75
+ # output: { node: nil, num_channels: 0, total_capacity: 0, channels: []}}
76
+
77
+ client.lightning.doc.grpc(:get_node_info)
78
+ # #<struct GRPC::RpcDesc
79
+ # name=:GetNodeInfo,
80
+ # input=Lnrpc::NodeInfoRequest,
81
+ # output=Lnrpc::NodeInfo,
82
+ # marshal_method=:encode,
83
+ # unmarshal_method=:decode>
84
+ ```
85
+
86
+ ## Development
87
+
88
+ ```ruby
89
+ # Gemfile
90
+ gem 'lnd-client', path: '/home/user/lnd-client'
91
+
92
+ # demo.rb
93
+ require 'lnd-client'
94
+
95
+ puts LNDClient.version
96
+ ```
97
+
98
+ ### Upgrading gRPC Proto Files
99
+
100
+ ```sh
101
+ bundle exec rake grpc:upgrade
102
+ ```
103
+ ### Publish to RubyGems
104
+
105
+ ```sh
106
+ gem build lnd-client.gemspec
107
+ ```
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './controllers/grpc_generator'
4
+
5
+ namespace :grpc do
6
+ desc 'Upgrade lnd Protocol Buffers for gGRPC'
7
+ task :upgrade do
8
+ GrpcGeneratorController.upgrade!
9
+ end
10
+ end
@@ -0,0 +1,48 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: autopilotrpc/autopilot.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ Google::Protobuf::DescriptorPool.generated_pool.build do
7
+ add_file("autopilotrpc/autopilot.proto", :syntax => :proto3) do
8
+ add_message "autopilotrpc.StatusRequest" do
9
+ end
10
+ add_message "autopilotrpc.StatusResponse" do
11
+ optional :active, :bool, 1
12
+ end
13
+ add_message "autopilotrpc.ModifyStatusRequest" do
14
+ optional :enable, :bool, 1
15
+ end
16
+ add_message "autopilotrpc.ModifyStatusResponse" do
17
+ end
18
+ add_message "autopilotrpc.QueryScoresRequest" do
19
+ repeated :pubkeys, :string, 1
20
+ optional :ignore_local_state, :bool, 2
21
+ end
22
+ add_message "autopilotrpc.QueryScoresResponse" do
23
+ repeated :results, :message, 1, "autopilotrpc.QueryScoresResponse.HeuristicResult"
24
+ end
25
+ add_message "autopilotrpc.QueryScoresResponse.HeuristicResult" do
26
+ optional :heuristic, :string, 1
27
+ map :scores, :string, :double, 2
28
+ end
29
+ add_message "autopilotrpc.SetScoresRequest" do
30
+ optional :heuristic, :string, 1
31
+ map :scores, :string, :double, 2
32
+ end
33
+ add_message "autopilotrpc.SetScoresResponse" do
34
+ end
35
+ end
36
+ end
37
+
38
+ module Autopilotrpc
39
+ StatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.StatusRequest").msgclass
40
+ StatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.StatusResponse").msgclass
41
+ ModifyStatusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.ModifyStatusRequest").msgclass
42
+ ModifyStatusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.ModifyStatusResponse").msgclass
43
+ QueryScoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresRequest").msgclass
44
+ QueryScoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresResponse").msgclass
45
+ QueryScoresResponse::HeuristicResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.QueryScoresResponse.HeuristicResult").msgclass
46
+ SetScoresRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.SetScoresRequest").msgclass
47
+ SetScoresResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("autopilotrpc.SetScoresResponse").msgclass
48
+ end
@@ -0,0 +1,40 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: autopilotrpc/autopilot.proto for package 'autopilotrpc'
3
+
4
+ require 'grpc'
5
+ require_relative 'autopilotrpc/autopilot_pb'
6
+
7
+ module Autopilotrpc
8
+ module Autopilot
9
+ # Autopilot is a service that can be used to get information about the current
10
+ # state of the daemon's autopilot agent, and also supply it with information
11
+ # that can be used when deciding where to open channels.
12
+ class Service
13
+
14
+ include ::GRPC::GenericService
15
+
16
+ self.marshal_class_method = :encode
17
+ self.unmarshal_class_method = :decode
18
+ self.service_name = 'autopilotrpc.Autopilot'
19
+
20
+ #
21
+ # Status returns whether the daemon's autopilot agent is active.
22
+ rpc :Status, ::Autopilotrpc::StatusRequest, ::Autopilotrpc::StatusResponse
23
+ #
24
+ # ModifyStatus is used to modify the status of the autopilot agent, like
25
+ # enabling or disabling it.
26
+ rpc :ModifyStatus, ::Autopilotrpc::ModifyStatusRequest, ::Autopilotrpc::ModifyStatusResponse
27
+ #
28
+ # QueryScores queries all available autopilot heuristics, in addition to any
29
+ # active combination of these heruristics, for the scores they would give to
30
+ # the given nodes.
31
+ rpc :QueryScores, ::Autopilotrpc::QueryScoresRequest, ::Autopilotrpc::QueryScoresResponse
32
+ #
33
+ # SetScores attempts to set the scores used by the running autopilot agent,
34
+ # if the external scoring heuristic is enabled.
35
+ rpc :SetScores, ::Autopilotrpc::SetScoresRequest, ::Autopilotrpc::SetScoresResponse
36
+ end
37
+
38
+ Stub = Service.rpc_stub_class
39
+ end
40
+ end
@@ -0,0 +1,36 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: chainrpc/chainkit.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ Google::Protobuf::DescriptorPool.generated_pool.build do
7
+ add_file("chainrpc/chainkit.proto", :syntax => :proto3) do
8
+ add_message "chainrpc.GetBlockRequest" do
9
+ optional :block_hash, :bytes, 1
10
+ end
11
+ add_message "chainrpc.GetBlockResponse" do
12
+ optional :raw_block, :bytes, 1
13
+ end
14
+ add_message "chainrpc.GetBestBlockRequest" do
15
+ end
16
+ add_message "chainrpc.GetBestBlockResponse" do
17
+ optional :block_hash, :bytes, 1
18
+ optional :block_height, :int32, 2
19
+ end
20
+ add_message "chainrpc.GetBlockHashRequest" do
21
+ optional :block_height, :int64, 1
22
+ end
23
+ add_message "chainrpc.GetBlockHashResponse" do
24
+ optional :block_hash, :bytes, 1
25
+ end
26
+ end
27
+ end
28
+
29
+ module Chainrpc
30
+ GetBlockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBlockRequest").msgclass
31
+ GetBlockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBlockResponse").msgclass
32
+ GetBestBlockRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBestBlockRequest").msgclass
33
+ GetBestBlockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBestBlockResponse").msgclass
34
+ GetBlockHashRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBlockHashRequest").msgclass
35
+ GetBlockHashResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.GetBlockHashResponse").msgclass
36
+ end
@@ -0,0 +1,34 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: chainrpc/chainkit.proto for package 'chainrpc'
3
+
4
+ require 'grpc'
5
+ require_relative 'chainrpc/chainkit_pb'
6
+
7
+ module Chainrpc
8
+ module ChainKit
9
+ # ChainKit is a service that can be used to get information from the
10
+ # chain backend.
11
+ class Service
12
+
13
+ include ::GRPC::GenericService
14
+
15
+ self.marshal_class_method = :encode
16
+ self.unmarshal_class_method = :decode
17
+ self.service_name = 'chainrpc.ChainKit'
18
+
19
+ # lncli: `chain getblock`
20
+ # GetBlock returns a block given the corresponding block hash.
21
+ rpc :GetBlock, ::Chainrpc::GetBlockRequest, ::Chainrpc::GetBlockResponse
22
+ # lncli: `chain getbestblock`
23
+ # GetBestBlock returns the block hash and current height from the valid
24
+ # most-work chain.
25
+ rpc :GetBestBlock, ::Chainrpc::GetBestBlockRequest, ::Chainrpc::GetBestBlockResponse
26
+ # lncli: `chain getblockhash`
27
+ # GetBlockHash returns the hash of the block in the best blockchain
28
+ # at the given height.
29
+ rpc :GetBlockHash, ::Chainrpc::GetBlockHashRequest, ::Chainrpc::GetBlockHashResponse
30
+ end
31
+
32
+ Stub = Service.rpc_stub_class
33
+ end
34
+ end
@@ -0,0 +1,69 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: chainrpc/chainnotifier.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ Google::Protobuf::DescriptorPool.generated_pool.build do
7
+ add_file("chainrpc/chainnotifier.proto", :syntax => :proto3) do
8
+ add_message "chainrpc.ConfRequest" do
9
+ optional :txid, :bytes, 1
10
+ optional :script, :bytes, 2
11
+ optional :num_confs, :uint32, 3
12
+ optional :height_hint, :uint32, 4
13
+ optional :include_block, :bool, 5
14
+ end
15
+ add_message "chainrpc.ConfDetails" do
16
+ optional :raw_tx, :bytes, 1
17
+ optional :block_hash, :bytes, 2
18
+ optional :block_height, :uint32, 3
19
+ optional :tx_index, :uint32, 4
20
+ optional :raw_block, :bytes, 5
21
+ end
22
+ add_message "chainrpc.Reorg" do
23
+ end
24
+ add_message "chainrpc.ConfEvent" do
25
+ oneof :event do
26
+ optional :conf, :message, 1, "chainrpc.ConfDetails"
27
+ optional :reorg, :message, 2, "chainrpc.Reorg"
28
+ end
29
+ end
30
+ add_message "chainrpc.Outpoint" do
31
+ optional :hash, :bytes, 1
32
+ optional :index, :uint32, 2
33
+ end
34
+ add_message "chainrpc.SpendRequest" do
35
+ optional :outpoint, :message, 1, "chainrpc.Outpoint"
36
+ optional :script, :bytes, 2
37
+ optional :height_hint, :uint32, 3
38
+ end
39
+ add_message "chainrpc.SpendDetails" do
40
+ optional :spending_outpoint, :message, 1, "chainrpc.Outpoint"
41
+ optional :raw_spending_tx, :bytes, 2
42
+ optional :spending_tx_hash, :bytes, 3
43
+ optional :spending_input_index, :uint32, 4
44
+ optional :spending_height, :uint32, 5
45
+ end
46
+ add_message "chainrpc.SpendEvent" do
47
+ oneof :event do
48
+ optional :spend, :message, 1, "chainrpc.SpendDetails"
49
+ optional :reorg, :message, 2, "chainrpc.Reorg"
50
+ end
51
+ end
52
+ add_message "chainrpc.BlockEpoch" do
53
+ optional :hash, :bytes, 1
54
+ optional :height, :uint32, 2
55
+ end
56
+ end
57
+ end
58
+
59
+ module Chainrpc
60
+ ConfRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfRequest").msgclass
61
+ ConfDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfDetails").msgclass
62
+ Reorg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.Reorg").msgclass
63
+ ConfEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.ConfEvent").msgclass
64
+ Outpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.Outpoint").msgclass
65
+ SpendRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendRequest").msgclass
66
+ SpendDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendDetails").msgclass
67
+ SpendEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.SpendEvent").msgclass
68
+ BlockEpoch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("chainrpc.BlockEpoch").msgclass
69
+ end
@@ -0,0 +1,53 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: chainrpc/chainnotifier.proto for package 'chainrpc'
3
+
4
+ require 'grpc'
5
+ require_relative 'chainrpc/chainnotifier_pb'
6
+
7
+ module Chainrpc
8
+ module ChainNotifier
9
+ # ChainNotifier is a service that can be used to get information about the
10
+ # chain backend by registering notifiers for chain events.
11
+ class Service
12
+
13
+ include ::GRPC::GenericService
14
+
15
+ self.marshal_class_method = :encode
16
+ self.unmarshal_class_method = :decode
17
+ self.service_name = 'chainrpc.ChainNotifier'
18
+
19
+ #
20
+ # RegisterConfirmationsNtfn is a synchronous response-streaming RPC that
21
+ # registers an intent for a client to be notified once a confirmation request
22
+ # has reached its required number of confirmations on-chain.
23
+ #
24
+ # A confirmation request must have a valid output script. It is also possible
25
+ # to give a transaction ID. If the transaction ID is not set, a notification
26
+ # is sent once the output script confirms. If the transaction ID is also set,
27
+ # a notification is sent once the output script confirms in the given
28
+ # transaction.
29
+ rpc :RegisterConfirmationsNtfn, ::Chainrpc::ConfRequest, stream(::Chainrpc::ConfEvent)
30
+ #
31
+ # RegisterSpendNtfn is a synchronous response-streaming RPC that registers an
32
+ # intent for a client to be notification once a spend request has been spent
33
+ # by a transaction that has confirmed on-chain.
34
+ #
35
+ # A client can specify whether the spend request should be for a particular
36
+ # outpoint or for an output script by specifying a zero outpoint.
37
+ rpc :RegisterSpendNtfn, ::Chainrpc::SpendRequest, stream(::Chainrpc::SpendEvent)
38
+ #
39
+ # RegisterBlockEpochNtfn is a synchronous response-streaming RPC that
40
+ # registers an intent for a client to be notified of blocks in the chain. The
41
+ # stream will return a hash and height tuple of a block for each new/stale
42
+ # block in the chain. It is the client's responsibility to determine whether
43
+ # the tuple returned is for a new or stale block in the chain.
44
+ #
45
+ # A client can also request a historical backlog of blocks from a particular
46
+ # point. This allows clients to be idempotent by ensuring that they do not
47
+ # missing processing a single block within the chain.
48
+ rpc :RegisterBlockEpochNtfn, ::Chainrpc::BlockEpoch, stream(::Chainrpc::BlockEpoch)
49
+ end
50
+
51
+ Stub = Service.rpc_stub_class
52
+ end
53
+ end
@@ -0,0 +1,17 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: devrpc/dev.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require_relative 'lightning_pb'
7
+
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_file("devrpc/dev.proto", :syntax => :proto3) do
10
+ add_message "devrpc.ImportGraphResponse" do
11
+ end
12
+ end
13
+ end
14
+
15
+ module Devrpc
16
+ ImportGraphResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("devrpc.ImportGraphResponse").msgclass
17
+ end
@@ -0,0 +1,25 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: devrpc/dev.proto for package 'devrpc'
3
+
4
+ require 'grpc'
5
+ require_relative 'devrpc/dev_pb'
6
+
7
+ module Devrpc
8
+ module Dev
9
+ class Service
10
+
11
+ include ::GRPC::GenericService
12
+
13
+ self.marshal_class_method = :encode
14
+ self.unmarshal_class_method = :decode
15
+ self.service_name = 'devrpc.Dev'
16
+
17
+ #
18
+ # ImportGraph imports a ChannelGraph into the graph database. Should only be
19
+ # used for development.
20
+ rpc :ImportGraph, ::Lnrpc::ChannelGraph, ::Devrpc::ImportGraphResponse
21
+ end
22
+
23
+ Stub = Service.rpc_stub_class
24
+ end
25
+ end
@@ -0,0 +1,66 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: invoicesrpc/invoices.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require_relative 'lightning_pb'
7
+
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_file("invoicesrpc/invoices.proto", :syntax => :proto3) do
10
+ add_message "invoicesrpc.CancelInvoiceMsg" do
11
+ optional :payment_hash, :bytes, 1
12
+ end
13
+ add_message "invoicesrpc.CancelInvoiceResp" do
14
+ end
15
+ add_message "invoicesrpc.AddHoldInvoiceRequest" do
16
+ optional :memo, :string, 1
17
+ optional :hash, :bytes, 2
18
+ optional :value, :int64, 3
19
+ optional :value_msat, :int64, 10
20
+ optional :description_hash, :bytes, 4
21
+ optional :expiry, :int64, 5
22
+ optional :fallback_addr, :string, 6
23
+ optional :cltv_expiry, :uint64, 7
24
+ repeated :route_hints, :message, 8, "lnrpc.RouteHint"
25
+ optional :private, :bool, 9
26
+ end
27
+ add_message "invoicesrpc.AddHoldInvoiceResp" do
28
+ optional :payment_request, :string, 1
29
+ optional :add_index, :uint64, 2
30
+ optional :payment_addr, :bytes, 3
31
+ end
32
+ add_message "invoicesrpc.SettleInvoiceMsg" do
33
+ optional :preimage, :bytes, 1
34
+ end
35
+ add_message "invoicesrpc.SettleInvoiceResp" do
36
+ end
37
+ add_message "invoicesrpc.SubscribeSingleInvoiceRequest" do
38
+ optional :r_hash, :bytes, 2
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
53
+ end
54
+ end
55
+
56
+ module Invoicesrpc
57
+ CancelInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.CancelInvoiceMsg").msgclass
58
+ CancelInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.CancelInvoiceResp").msgclass
59
+ AddHoldInvoiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.AddHoldInvoiceRequest").msgclass
60
+ AddHoldInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.AddHoldInvoiceResp").msgclass
61
+ SettleInvoiceMsg = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceMsg").msgclass
62
+ SettleInvoiceResp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("invoicesrpc.SettleInvoiceResp").msgclass
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
66
+ end