lnd-client 0.0.1 → 0.0.3
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 +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile +2 -7
- data/Gemfile.lock +10 -12
- data/README.md +48 -5
- data/components/grpc/routerrpc/router_pb.rb +1 -1
- data/components/grpc/routerrpc/router_services_pb.rb +1 -1
- data/components/grpc.rb +3 -1
- data/controllers/client.rb +2 -2
- data/controllers/service.rb +11 -6
- data/lnd-client.gemspec +2 -2
- data/static/spec.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4f21139f58c13fceea576b5df5c9d799e24591281e4bd6a9132fd7a719fc549
|
4
|
+
data.tar.gz: fb569472611c466c28cf03519e1c756dee704bdf22b21381c3c355cfa983c573
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83f2cce7e6334695e3118ac9dd3ed6bb4c76a1aefdbacafba6a4af785d239e0c475faadf6104392cde059928409e0603e42a84e9fa91bc180a7ccd56a55a7eaa
|
7
|
+
data.tar.gz: cd147a319c1f02c50e19fb220b6dedbe7357d0680530b8a305f083d50c731c2afb8da5ac90d67b7984b1022c61e398cd2326f1fd27e050af4d471375fc3e720a
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,16 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
ruby '3.2.0'
|
4
|
-
|
5
3
|
source 'https://rubygems.org'
|
6
4
|
|
7
|
-
|
5
|
+
gemspec
|
8
6
|
|
9
7
|
group :test, :development do
|
10
|
-
gem 'grpc-tools', '~> 1.50'
|
11
8
|
gem 'pry-byebug', '~> 3.10', '>= 3.10.1'
|
12
|
-
gem '
|
13
|
-
gem 'rake', '~> 13.0', '>= 13.0.6'
|
14
|
-
gem 'rubocop', '~> 1.43'
|
9
|
+
gem 'rubocop', '~> 1.44', '>= 1.44.1'
|
15
10
|
gem 'rubocop-rake', '~> 0.6.0'
|
16
11
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
lnd-client (0.0.3)
|
5
|
+
grpc (~> 1.51)
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: https://rubygems.org/
|
3
9
|
specs:
|
@@ -7,10 +13,9 @@ GEM
|
|
7
13
|
google-protobuf (3.21.12)
|
8
14
|
googleapis-common-protos-types (1.5.0)
|
9
15
|
google-protobuf (~> 3.14)
|
10
|
-
grpc (1.
|
16
|
+
grpc (1.51.0)
|
11
17
|
google-protobuf (~> 3.21)
|
12
18
|
googleapis-common-protos-types (~> 1.0)
|
13
|
-
grpc-tools (1.50.0)
|
14
19
|
json (2.6.3)
|
15
20
|
method_source (1.0.0)
|
16
21
|
parallel (1.22.1)
|
@@ -23,10 +28,9 @@ GEM
|
|
23
28
|
byebug (~> 11.0)
|
24
29
|
pry (>= 0.13, < 0.15)
|
25
30
|
rainbow (3.1.1)
|
26
|
-
rake (13.0.6)
|
27
31
|
regexp_parser (2.6.2)
|
28
32
|
rexml (3.2.5)
|
29
|
-
rubocop (1.
|
33
|
+
rubocop (1.44.1)
|
30
34
|
json (~> 2.3)
|
31
35
|
parallel (~> 1.10)
|
32
36
|
parser (>= 3.2.0.0)
|
@@ -47,16 +51,10 @@ PLATFORMS
|
|
47
51
|
x86_64-linux
|
48
52
|
|
49
53
|
DEPENDENCIES
|
50
|
-
|
51
|
-
grpc-tools (~> 1.50)
|
54
|
+
lnd-client!
|
52
55
|
pry-byebug (~> 3.10, >= 3.10.1)
|
53
|
-
|
54
|
-
rake (~> 13.0, >= 13.0.6)
|
55
|
-
rubocop (~> 1.43)
|
56
|
+
rubocop (~> 1.44, >= 1.44.1)
|
56
57
|
rubocop-rake (~> 0.6.0)
|
57
58
|
|
58
|
-
RUBY VERSION
|
59
|
-
ruby 3.2.0p0
|
60
|
-
|
61
59
|
BUNDLED WITH
|
62
60
|
2.4.4
|
data/README.md
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
# Ruby _Lightning Network Daemon_ Client
|
2
2
|
|
3
|
+
> ⚠️ Warning: Early-stage, breaking changes are expected.
|
4
|
+
|
3
5
|
- [Usage](#usage)
|
6
|
+
- [Channel Arguments](#channel-arguments)
|
4
7
|
- [Documentation](#documentation)
|
5
8
|
- [Development](#development)
|
6
9
|
- [Upgrading gRPC Proto Files](#upgrading-grpc-proto-files)
|
@@ -11,13 +14,13 @@
|
|
11
14
|
Add to your `Gemfile`:
|
12
15
|
|
13
16
|
```ruby
|
14
|
-
gem 'lnd-client', '~> 0.0.
|
17
|
+
gem 'lnd-client', '~> 0.0.3'
|
15
18
|
```
|
16
19
|
|
17
20
|
```ruby
|
18
21
|
require 'lnd-client'
|
19
22
|
|
20
|
-
puts LNDClient.version # => 0.0.
|
23
|
+
puts LNDClient.version # => 0.0.3
|
21
24
|
|
22
25
|
client = LNDClient.new(
|
23
26
|
certificate_path: '/lnd/tls.cert',
|
@@ -38,6 +41,37 @@ client.lightning.wallet_balance.to_h # =>
|
|
38
41
|
client.lightning.get_node_info(
|
39
42
|
pub_key: '02d3c80335a8ccb2ed364c06875f32240f36f7edb37d80f8dbe321b4c364b6e997'
|
40
43
|
).node.alias # => 'icebaker/old-stone'
|
44
|
+
|
45
|
+
client.lightning.subscribe_channel_graph do |data|
|
46
|
+
puts data.inspect # => { ... }
|
47
|
+
end
|
48
|
+
|
49
|
+
client.router.subscribe_htlc_events do |data|
|
50
|
+
puts data.inspect # => { ... }
|
51
|
+
end
|
52
|
+
```
|
53
|
+
|
54
|
+
### Channel Arguments
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
require 'lnd-client'
|
58
|
+
|
59
|
+
puts LNDClient.version # => 0.0.3
|
60
|
+
|
61
|
+
client = LNDClient.new(
|
62
|
+
certificate_path: '/lnd/tls.cert',
|
63
|
+
macaroon_path: '/lnd/data/chain/bitcoin/mainnet/admin.macaroon',
|
64
|
+
socket_address: '127.0.0.1:10009'
|
65
|
+
)
|
66
|
+
|
67
|
+
client.lightning(
|
68
|
+
channel_args: { 'grpc.max_receive_message_length' => 1024 * 1024 * 50 }
|
69
|
+
)
|
70
|
+
|
71
|
+
graph = client.lightning.describe_graph
|
72
|
+
|
73
|
+
graph.nodes # => [...]
|
74
|
+
graph.edges # => [...]
|
41
75
|
```
|
42
76
|
|
43
77
|
### Documentation
|
@@ -45,7 +79,7 @@ client.lightning.get_node_info(
|
|
45
79
|
```ruby
|
46
80
|
require 'lnd-client'
|
47
81
|
|
48
|
-
puts LNDClient.version # => 0.0.
|
82
|
+
puts LNDClient.version # => 0.0.3
|
49
83
|
|
50
84
|
client = LNDClient.new(
|
51
85
|
certificate_path: '/lnd/tls.cert',
|
@@ -53,7 +87,7 @@ client = LNDClient.new(
|
|
53
87
|
socket_address: '127.0.0.1:10009'
|
54
88
|
)
|
55
89
|
|
56
|
-
client.doc.services # => ['lightning']
|
90
|
+
client.doc.services # => ['lightning', 'router']
|
57
91
|
|
58
92
|
client.lightning.doc.available_methods # =>
|
59
93
|
# ['abandon_channel',
|
@@ -95,6 +129,11 @@ require 'lnd-client'
|
|
95
129
|
puts LNDClient.version
|
96
130
|
```
|
97
131
|
|
132
|
+
```sh
|
133
|
+
bundle
|
134
|
+
rubocop -A
|
135
|
+
```
|
136
|
+
|
98
137
|
### Upgrading gRPC Proto Files
|
99
138
|
|
100
139
|
```sh
|
@@ -103,5 +142,9 @@ bundle exec rake grpc:upgrade
|
|
103
142
|
### Publish to RubyGems
|
104
143
|
|
105
144
|
```sh
|
106
|
-
gem build lnd-client.gemspec
|
145
|
+
gem build lnd-client.gemspec
|
146
|
+
|
147
|
+
gem signin
|
148
|
+
|
149
|
+
gem push lnd-client-0.0.3.gem
|
107
150
|
```
|
data/components/grpc.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './grpc/lightning_services_pb'
|
4
|
+
require_relative './grpc/routerrpc/router_services_pb'
|
4
5
|
|
5
6
|
module GRPC
|
6
7
|
SERVICES = {
|
7
|
-
lightning: Lnrpc::Lightning
|
8
|
+
lightning: Lnrpc::Lightning,
|
9
|
+
router: Routerrpc::Router
|
8
10
|
}.freeze
|
9
11
|
end
|
data/controllers/client.rb
CHANGED
@@ -21,11 +21,11 @@ class ClientController
|
|
21
21
|
GRPC::SERVICES.include?(service_key) || super
|
22
22
|
end
|
23
23
|
|
24
|
-
def method_missing(method_name, *
|
24
|
+
def method_missing(method_name, *args)
|
25
25
|
service_key = method_name.to_sym
|
26
26
|
|
27
27
|
raise ArgumentError, "Method `#{method_name}` doesn't exist." unless GRPC::SERVICES.include?(service_key)
|
28
28
|
|
29
|
-
@services[service_key] ||= ServiceController.new(self, GRPC::SERVICES[service_key])
|
29
|
+
@services[service_key] ||= ServiceController.new(self, GRPC::SERVICES[service_key], *args)
|
30
30
|
end
|
31
31
|
end
|
data/controllers/service.rb
CHANGED
@@ -5,18 +5,23 @@ require_relative './documentation'
|
|
5
5
|
class ServiceController
|
6
6
|
attr_reader :doc, :service
|
7
7
|
|
8
|
-
def initialize(client, rpc)
|
8
|
+
def initialize(client, rpc, params = {})
|
9
9
|
@client = client
|
10
10
|
@rpc = rpc
|
11
11
|
@service = rpc.const_get(:Service)
|
12
|
-
@stub = rpc.const_get(:Stub).new(
|
12
|
+
@stub = rpc.const_get(:Stub).new(
|
13
|
+
client.config.socket_address,
|
14
|
+
client.config.credentials,
|
15
|
+
**params
|
16
|
+
)
|
13
17
|
@doc = DocumentationController.new(self)
|
14
18
|
end
|
15
19
|
|
16
|
-
def call!(method_key, desc, *args)
|
20
|
+
def call!(method_key, desc, *args, &block)
|
17
21
|
@stub.method(method_key).call(
|
18
22
|
desc.input.new(*args),
|
19
|
-
{ metadata: { macaroon: @client.config.macaroon } }
|
23
|
+
{ metadata: { macaroon: @client.config.macaroon } },
|
24
|
+
&block
|
20
25
|
)
|
21
26
|
end
|
22
27
|
|
@@ -25,11 +30,11 @@ class ServiceController
|
|
25
30
|
(desc && @stub.respond_to?(method_name)) || super
|
26
31
|
end
|
27
32
|
|
28
|
-
def method_missing(method_name, *args, &)
|
33
|
+
def method_missing(method_name, *args, &block)
|
29
34
|
desc = @doc.grpc(method_name)
|
30
35
|
|
31
36
|
raise ArgumentError, "Method `#{method_name}` doesn't exist." unless desc && @stub.respond_to?(method_name)
|
32
37
|
|
33
|
-
call!(method_name, desc, *args, &)
|
38
|
+
call!(method_name, desc, *args, &block)
|
34
39
|
end
|
35
40
|
end
|
data/lnd-client.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
|
15
15
|
spec.license = Static::SPEC[:license]
|
16
16
|
|
17
|
-
spec.required_ruby_version = Gem::Requirement.new('>= 3.
|
17
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 3.0.0')
|
18
18
|
|
19
19
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
20
20
|
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
|
30
30
|
spec.require_paths = ['ports/dsl']
|
31
31
|
|
32
|
-
spec.add_dependency 'grpc', '~> 1.
|
32
|
+
spec.add_dependency 'grpc', '~> 1.51'
|
33
33
|
|
34
34
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
35
35
|
end
|
data/static/spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lnd-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icebaker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.51'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.51'
|
27
27
|
description: Ruby Lightning Network Daemon (lnd) Client
|
28
28
|
email:
|
29
29
|
executables: []
|
@@ -96,7 +96,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
96
|
requirements:
|
97
97
|
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version: 3.
|
99
|
+
version: 3.0.0
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|