lnrpc 0.13.0 → 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 +4 -4
- data/Gemfile.lock +19 -19
- data/README.md +6 -9
- data/examples.rb +43 -0
- data/lib/grpc_services/invoicesrpc/invoices_pb.rb +18 -0
- data/lib/grpc_services/invoicesrpc/invoices_services_pb.rb +4 -0
- data/lib/grpc_services/lnclipb/lncli_pb.rb +1 -0
- data/lib/grpc_services/routerrpc/router_pb.rb +2 -0
- data/lib/grpc_services/signrpc/signer_pb.rb +2 -0
- data/lib/grpc_services/walletrpc/walletkit_pb.rb +3 -0
- data/lib/grpc_services/walletunlocker_pb.rb +17 -0
- data/lib/lnrpc/client.rb +1 -0
- data/lib/lnrpc/version.rb +1 -1
- data/lnrpc.gemspec +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: d8892aec70e15ec43c6f400d7042cc385dad68fc911b68effa920d878dfdd7ca
|
4
|
+
data.tar.gz: d490c7df3eb0ad9a2f6fffe41abd5d28e8b9c322cc5b38c94d9948e5cfbc36ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6964abbe9f69647d61d8af3d4ea07622dc84d6b015558b8ee0a6b77d825ea8ff4192b42cb0e087d4aff1ea78f700ef66cabae359a6778f646d749ea165b106b
|
7
|
+
data.tar.gz: 613b5b9d4492b568483611214dd4ddf263bdf34061613c05a3d3c2b4df1643bcf110443889cd0eafc72ff180bd7572f89c17948ab2afc3c46ece30b5e96b2107
|
data/Gemfile.lock
CHANGED
@@ -1,34 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
lnrpc (0.
|
5
|
-
google-protobuf (>= 3.
|
4
|
+
lnrpc (0.14.1)
|
5
|
+
google-protobuf (>= 3.15.7)
|
6
6
|
grpc (>= 1.28.0)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
diff-lcs (1.
|
12
|
-
google-protobuf (3.
|
13
|
-
googleapis-common-protos-types (1.1
|
11
|
+
diff-lcs (1.5.0)
|
12
|
+
google-protobuf (3.21.1)
|
13
|
+
googleapis-common-protos-types (1.3.1)
|
14
14
|
google-protobuf (~> 3.14)
|
15
|
-
grpc (1.
|
16
|
-
google-protobuf (~> 3.
|
15
|
+
grpc (1.46.3)
|
16
|
+
google-protobuf (~> 3.19)
|
17
17
|
googleapis-common-protos-types (~> 1.0)
|
18
18
|
rake (13.0.6)
|
19
|
-
rspec (3.
|
20
|
-
rspec-core (~> 3.
|
21
|
-
rspec-expectations (~> 3.
|
22
|
-
rspec-mocks (~> 3.
|
23
|
-
rspec-core (3.
|
24
|
-
rspec-support (~> 3.
|
25
|
-
rspec-expectations (3.
|
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.
|
28
|
-
rspec-mocks (3.
|
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.
|
31
|
-
rspec-support (3.
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-support (3.11.0)
|
32
32
|
|
33
33
|
PLATFORMS
|
34
34
|
ruby
|
@@ -40,4 +40,4 @@ DEPENDENCIES
|
|
40
40
|
rspec (~> 3.0)
|
41
41
|
|
42
42
|
BUNDLED WITH
|
43
|
-
2.
|
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
|
+
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
|
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
|
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.
|
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
|
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
|
|
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
|
+
})
|
@@ -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
|
@@ -34,6 +34,10 @@ module Invoicesrpc
|
|
34
34
|
# SettleInvoice settles an accepted invoice. If the invoice is already
|
35
35
|
# settled, this call will succeed.
|
36
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 '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
|
@@ -147,6 +148,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
147
148
|
add_message "routerrpc.ForwardFailEvent" do
|
148
149
|
end
|
149
150
|
add_message "routerrpc.SettleEvent" do
|
151
|
+
optional :preimage, :bytes, 1
|
150
152
|
end
|
151
153
|
add_message "routerrpc.LinkFailEvent" do
|
152
154
|
optional :info, :message, 1, "routerrpc.HtlcInfo"
|
@@ -43,6 +43,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
43
43
|
add_message "signrpc.SignMessageReq" do
|
44
44
|
optional :msg, :bytes, 1
|
45
45
|
optional :key_loc, :message, 2, "signrpc.KeyLocator"
|
46
|
+
optional :double_hash, :bool, 3
|
47
|
+
optional :compact_sig, :bool, 4
|
46
48
|
end
|
47
49
|
add_message "signrpc.SignMessageResp" do
|
48
50
|
optional :signature, :bytes, 1
|
@@ -5,6 +5,7 @@ require 'google/protobuf'
|
|
5
5
|
|
6
6
|
require 'rpc_pb'
|
7
7
|
require 'signrpc/signer_pb'
|
8
|
+
|
8
9
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
9
10
|
add_file("walletrpc/walletkit.proto", :syntax => :proto3) do
|
10
11
|
add_message "walletrpc.ListUnspentRequest" do
|
@@ -35,6 +36,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
35
36
|
end
|
36
37
|
add_message "walletrpc.AddrRequest" do
|
37
38
|
optional :account, :string, 1
|
39
|
+
optional :type, :enum, 2, "walletrpc.AddressType"
|
40
|
+
optional :change, :bool, 3
|
38
41
|
end
|
39
42
|
add_message "walletrpc.AddrResponse" do
|
40
43
|
optional :addr, :string, 1
|
@@ -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("walletunlocker.proto", :syntax => :proto3) do
|
9
10
|
add_message "lnrpc.GenSeedRequest" do
|
@@ -21,10 +22,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
21
22
|
optional :recovery_window, :int32, 4
|
22
23
|
optional :channel_backups, :message, 5, "lnrpc.ChanBackupSnapshot"
|
23
24
|
optional :stateless_init, :bool, 6
|
25
|
+
optional :extended_master_key, :string, 7
|
26
|
+
optional :extended_master_key_birthday_timestamp, :uint64, 8
|
27
|
+
optional :watch_only, :message, 9, "lnrpc.WatchOnly"
|
24
28
|
end
|
25
29
|
add_message "lnrpc.InitWalletResponse" do
|
26
30
|
optional :admin_macaroon, :bytes, 1
|
27
31
|
end
|
32
|
+
add_message "lnrpc.WatchOnly" do
|
33
|
+
optional :master_key_birthday_timestamp, :uint64, 1
|
34
|
+
optional :master_key_fingerprint, :bytes, 2
|
35
|
+
repeated :accounts, :message, 3, "lnrpc.WatchOnlyAccount"
|
36
|
+
end
|
37
|
+
add_message "lnrpc.WatchOnlyAccount" do
|
38
|
+
optional :purpose, :uint32, 1
|
39
|
+
optional :coin_type, :uint32, 2
|
40
|
+
optional :account, :uint32, 3
|
41
|
+
optional :xpub, :string, 4
|
42
|
+
end
|
28
43
|
add_message "lnrpc.UnlockWalletRequest" do
|
29
44
|
optional :wallet_password, :bytes, 1
|
30
45
|
optional :recovery_window, :int32, 2
|
@@ -50,6 +65,8 @@ module Lnrpc
|
|
50
65
|
GenSeedResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.GenSeedResponse").msgclass
|
51
66
|
InitWalletRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.InitWalletRequest").msgclass
|
52
67
|
InitWalletResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.InitWalletResponse").msgclass
|
68
|
+
WatchOnly = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.WatchOnly").msgclass
|
69
|
+
WatchOnlyAccount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.WatchOnlyAccount").msgclass
|
53
70
|
UnlockWalletRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.UnlockWalletRequest").msgclass
|
54
71
|
UnlockWalletResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.UnlockWalletResponse").msgclass
|
55
72
|
ChangePasswordRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("lnrpc.ChangePasswordRequest").msgclass
|
data/lib/lnrpc/client.rb
CHANGED
data/lib/lnrpc/version.rb
CHANGED
data/lnrpc.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lnrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Bumann
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 3.15.7
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 3.15.7
|
83
83
|
description: gRPC service definitions for the Lightning Network Daemon (lnd) gRPC
|
84
84
|
interface packed as ruby gem
|
85
85
|
email:
|
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
|
-
rubygems_version: 3.1.
|
152
|
+
rubygems_version: 3.1.6
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: gRPC interface for lnd packed as ruby gem
|