lnrpc 0.13.0 → 0.14.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|