lighstorm 0.0.6 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +5 -5
- 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 +35 -0
- 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 -12
- data/controllers/invoice/actions/pay_through_route.rb +1 -1
- data/controllers/invoice/decode.rb +44 -0
- data/controllers/invoice.rb +8 -3
- data/docs/README.md +392 -145
- 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 +4 -2
@@ -3,33 +3,60 @@
|
|
3
3
|
require_relative '../../../ports/grpc'
|
4
4
|
require_relative '../../../models/errors'
|
5
5
|
require_relative '../../invoice'
|
6
|
+
require_relative '../../action'
|
6
7
|
|
7
8
|
module Lighstorm
|
8
9
|
module Controllers
|
9
10
|
module Invoice
|
10
11
|
module Create
|
11
|
-
def self.
|
12
|
-
grpc_request
|
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
|
17
|
+
|
18
|
+
def self.prepare(description: nil, millisatoshis: nil)
|
19
|
+
{
|
13
20
|
service: :lightning,
|
14
21
|
method: :add_invoice,
|
15
22
|
params: {
|
16
23
|
memo: description,
|
17
|
-
value_msat:
|
24
|
+
value_msat: millisatoshis
|
18
25
|
}
|
19
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
|
+
)
|
20
49
|
|
21
50
|
return grpc_request if preview
|
22
51
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
fake
|
30
|
-
end
|
52
|
+
response = dispatch(grpc_request, &vcr)
|
53
|
+
|
54
|
+
adapted = adapt(response)
|
55
|
+
|
56
|
+
data = fetch(adapted, &vcr)
|
57
|
+
model = self.model(data)
|
31
58
|
|
32
|
-
|
59
|
+
Action::Output.new({ response: response, result: model })
|
33
60
|
end
|
34
61
|
end
|
35
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*')
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../ports/grpc'
|
4
|
+
require_relative '../../adapters/invoice'
|
5
|
+
require_relative '../../models/invoice'
|
6
|
+
|
7
|
+
module Lighstorm
|
8
|
+
module Controllers
|
9
|
+
module Invoice
|
10
|
+
module Decode
|
11
|
+
def self.fetch(request_code)
|
12
|
+
{
|
13
|
+
_request_code: request_code,
|
14
|
+
decode_pay_req: Ports::GRPC.lightning.decode_pay_req(pay_req: request_code).to_h
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.adapt(raw)
|
19
|
+
{
|
20
|
+
decode_pay_req: Lighstorm::Adapter::Invoice.decode_pay_req(
|
21
|
+
raw[:decode_pay_req], raw[:_request_code]
|
22
|
+
)
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.transform(adapted)
|
27
|
+
adapted[:decode_pay_req]
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.data(request_code, &vcr)
|
31
|
+
raw = vcr.nil? ? fetch(request_code) : vcr.call(-> { fetch(request_code) })
|
32
|
+
|
33
|
+
adapted = adapt(raw)
|
34
|
+
|
35
|
+
transform(adapted)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.model(data)
|
39
|
+
Lighstorm::Models::Invoice.new(data)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/controllers/invoice.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './invoice/all'
|
4
|
+
require_relative './invoice/decode'
|
4
5
|
require_relative './invoice/find_by_secret_hash'
|
5
6
|
require_relative './invoice/actions/create'
|
6
7
|
|
@@ -23,12 +24,16 @@ module Lighstorm
|
|
23
24
|
FindBySecretHash.model(FindBySecretHash.data(secret_hash))
|
24
25
|
end
|
25
26
|
|
26
|
-
def self.
|
27
|
+
def self.decode(request_code, &vcr)
|
28
|
+
Decode.model(Decode.data(request_code, &vcr))
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.create(description: nil, millisatoshis: nil, preview: false, &vcr)
|
27
32
|
Create.perform(
|
28
33
|
description: description,
|
29
|
-
|
34
|
+
millisatoshis: millisatoshis,
|
30
35
|
preview: preview,
|
31
|
-
|
36
|
+
&vcr
|
32
37
|
)
|
33
38
|
end
|
34
39
|
end
|