lighstorm 0.0.5 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/README.md +17 -55
- data/adapters/connections/channel_node/fee.rb +1 -1
- data/adapters/connections/channel_node/policy.rb +6 -6
- data/adapters/connections/channel_node.rb +1 -1
- data/adapters/connections/payment_channel.rb +2 -2
- data/adapters/edges/channel.rb +7 -7
- data/adapters/edges/forward.rb +3 -3
- data/adapters/edges/payment.rb +1 -1
- data/adapters/invoice.rb +16 -1
- data/adapters/payment_request.rb +14 -3
- data/components/cache.rb +8 -5
- data/controllers/action.rb +24 -0
- data/controllers/channel/actions/apply_gossip.rb +18 -18
- data/controllers/channel/actions/update_fee.rb +33 -22
- data/controllers/forward/group_by_channel.rb +3 -3
- data/controllers/invoice/actions/create.rb +39 -11
- data/controllers/invoice/actions/pay_through_route.rb +1 -1
- data/controllers/invoice.rb +3 -3
- data/docs/README.md +405 -140
- data/docs/_coverpage.md +6 -1
- data/docs/index.html +1 -1
- data/models/connections/channel_node/accounting.rb +1 -1
- data/models/connections/channel_node/fee.rb +5 -4
- data/models/connections/channel_node/htlc.rb +4 -4
- data/models/connections/forward_channel.rb +1 -1
- data/models/connections/payment_channel.rb +4 -4
- data/models/edges/channel/accounting.rb +5 -5
- data/models/edges/forward.rb +3 -3
- data/models/edges/groups/channel_forwards/analysis.rb +8 -8
- data/models/edges/payment.rb +3 -3
- data/models/errors.rb +1 -1
- data/models/payment_request.rb +2 -2
- data/models/satoshis.rb +12 -12
- data/static/cache.rb +2 -0
- data/static/spec.rb +1 -1
- metadata +3 -2
@@ -2,33 +2,61 @@
|
|
2
2
|
|
3
3
|
require_relative '../../../ports/grpc'
|
4
4
|
require_relative '../../../models/errors'
|
5
|
+
require_relative '../../invoice'
|
6
|
+
require_relative '../../action'
|
5
7
|
|
6
8
|
module Lighstorm
|
7
9
|
module Controllers
|
8
10
|
module Invoice
|
9
11
|
module Create
|
10
|
-
def self.
|
11
|
-
|
12
|
+
def self.call(grpc_request)
|
13
|
+
Lighstorm::Ports::GRPC.send(grpc_request[:service]).send(
|
14
|
+
grpc_request[:method], grpc_request[:params]
|
15
|
+
).to_h
|
16
|
+
end
|
12
17
|
|
13
|
-
|
18
|
+
def self.prepare(description: nil, millisatoshis: nil)
|
19
|
+
{
|
14
20
|
service: :lightning,
|
15
21
|
method: :add_invoice,
|
16
22
|
params: {
|
17
23
|
memo: description,
|
18
|
-
value_msat:
|
24
|
+
value_msat: millisatoshis
|
19
25
|
}
|
20
26
|
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.dispatch(grpc_request, &vcr)
|
30
|
+
vcr.nil? ? call(grpc_request) : vcr.call(-> { call(grpc_request) }, :dispatch)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.adapt(response)
|
34
|
+
Lighstorm::Adapter::Invoice.add_invoice(response)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.fetch(adapted, &vcr)
|
38
|
+
FindBySecretHash.data(adapted[:request][:secret][:hash], &vcr)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.model(data)
|
42
|
+
FindBySecretHash.model(data)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.perform(description: nil, millisatoshis: nil, preview: false, &vcr)
|
46
|
+
grpc_request = prepare(
|
47
|
+
description: description, millisatoshis: millisatoshis
|
48
|
+
)
|
21
49
|
|
22
50
|
return grpc_request if preview
|
23
51
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
52
|
+
response = dispatch(grpc_request, &vcr)
|
53
|
+
|
54
|
+
adapted = adapt(response)
|
55
|
+
|
56
|
+
data = fetch(adapted, &vcr)
|
57
|
+
model = self.model(data)
|
28
58
|
|
29
|
-
|
30
|
-
# find_by_secret_hash(invoice.r_hash.unpack1('H*'))
|
31
|
-
# response
|
59
|
+
Action::Output.new({ response: response, result: model })
|
32
60
|
end
|
33
61
|
end
|
34
62
|
end
|
@@ -36,7 +36,7 @@ module Lighstorm
|
|
36
36
|
begin
|
37
37
|
route = LND.instance.middleware('router.build_route') do
|
38
38
|
LND.instance.client.router.build_route(
|
39
|
-
amt_msat: amount.
|
39
|
+
amt_msat: amount.millisatoshis,
|
40
40
|
outgoing_chan_id: channels.first.id.to_i,
|
41
41
|
hop_pubkeys: hops_public_keys.map { |hpk| [hpk].pack('H*') },
|
42
42
|
payment_addr: [address].pack('H*')
|
data/controllers/invoice.rb
CHANGED
@@ -23,12 +23,12 @@ module Lighstorm
|
|
23
23
|
FindBySecretHash.model(FindBySecretHash.data(secret_hash))
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.create(description: nil,
|
26
|
+
def self.create(description: nil, millisatoshis: nil, preview: false, &vcr)
|
27
27
|
Create.perform(
|
28
28
|
description: description,
|
29
|
-
|
29
|
+
millisatoshis: millisatoshis,
|
30
30
|
preview: preview,
|
31
|
-
|
31
|
+
&vcr
|
32
32
|
)
|
33
33
|
end
|
34
34
|
end
|