lnd-client 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4bf57c02d8b4aae6f9412c31c10316ef4ed0baa92e6bca2ed23ea37c448ff010
4
- data.tar.gz: 6d0c315784f3f56909528d4cab5fe5dab1874fc5221a710c56c87f64b7c9dffc
3
+ metadata.gz: a4f21139f58c13fceea576b5df5c9d799e24591281e4bd6a9132fd7a719fc549
4
+ data.tar.gz: fb569472611c466c28cf03519e1c756dee704bdf22b21381c3c355cfa983c573
5
5
  SHA512:
6
- metadata.gz: 55b36ccae8ae9daf7d0533278e79cd69b2a6fed17a7e4799fc22bf5e2cade28d4c30c9ebe34cb9738b4403ff78ee9775774427f3b3d6e68b8635fa12f66a0961
7
- data.tar.gz: e0d9068fc28938c8a27df8e897effb727a94ab271daa63fb48303861e3418bc5d6941858f4156d9ab4bac154edafc4c575a278d43f240ea1ef981b7fd28039e3
6
+ metadata.gz: 83f2cce7e6334695e3118ac9dd3ed6bb4c76a1aefdbacafba6a4af785d239e0c475faadf6104392cde059928409e0603e42a84e9fa91bc180a7ccd56a55a7eaa
7
+ data.tar.gz: cd147a319c1f02c50e19fb220b6dedbe7357d0680530b8a305f083d50c731c2afb8da5ac90d67b7984b1022c61e398cd2326f1fd27e050af4d471375fc3e720a
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.2.0
2
+ TargetRubyVersion: 3.0.0
3
3
  NewCops: enable
4
4
  Exclude:
5
5
  - 'components/grpc/*'
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
- gem 'grpc', '~> 1.50'
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 'rainbow', '~> 3.1', '>= 3.1.1'
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.50.0)
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.43.0)
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
- grpc (~> 1.50)
51
- grpc-tools (~> 1.50)
54
+ lnd-client!
52
55
  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 (~> 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.1'
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.1
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.1
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
  ```
@@ -3,7 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
- require_relative 'lightning_pb'
6
+ require_relative '../lightning_pb'
7
7
 
8
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
9
9
  add_file("routerrpc/router.proto", :syntax => :proto3) do
@@ -2,7 +2,7 @@
2
2
  # Source: routerrpc/router.proto for package 'routerrpc'
3
3
 
4
4
  require 'grpc'
5
- require_relative 'routerrpc/router_pb'
5
+ require_relative './router_pb'
6
6
 
7
7
  module Routerrpc
8
8
  module Router
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
@@ -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, *_args)
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
@@ -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(client.config.socket_address, client.config.credentials)
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.2.0')
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.50'
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
@@ -3,7 +3,7 @@
3
3
  module Static
4
4
  SPEC = {
5
5
  name: 'lnd-client',
6
- version: '0.0.1',
6
+ version: '0.0.3',
7
7
  author: 'icebaker',
8
8
  summary: 'Ruby Lightning Network Daemon (lnd) Client',
9
9
  description: 'Ruby Lightning Network Daemon (lnd) Client',
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.1
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-01-22 00:00:00.000000000 Z
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.50'
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.50'
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.2.0
99
+ version: 3.0.0
100
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="