lighstorm 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +17 -55
  4. data/adapters/connections/channel_node/fee.rb +1 -1
  5. data/adapters/connections/channel_node/policy.rb +6 -6
  6. data/adapters/connections/channel_node.rb +1 -1
  7. data/adapters/connections/payment_channel.rb +2 -2
  8. data/adapters/edges/channel.rb +7 -7
  9. data/adapters/edges/forward.rb +3 -3
  10. data/adapters/edges/payment.rb +1 -1
  11. data/adapters/invoice.rb +15 -0
  12. data/adapters/payment_request.rb +14 -3
  13. data/components/cache.rb +8 -5
  14. data/controllers/action.rb +24 -0
  15. data/controllers/channel/actions/apply_gossip.rb +18 -18
  16. data/controllers/channel/actions/update_fee.rb +33 -22
  17. data/controllers/forward/group_by_channel.rb +3 -3
  18. data/controllers/invoice/actions/create.rb +39 -12
  19. data/controllers/invoice/actions/pay_through_route.rb +1 -1
  20. data/controllers/invoice.rb +3 -3
  21. data/docs/README.md +390 -145
  22. data/docs/_coverpage.md +6 -1
  23. data/docs/index.html +1 -1
  24. data/models/connections/channel_node/accounting.rb +1 -1
  25. data/models/connections/channel_node/fee.rb +5 -4
  26. data/models/connections/channel_node/htlc.rb +4 -4
  27. data/models/connections/forward_channel.rb +1 -1
  28. data/models/connections/payment_channel.rb +4 -4
  29. data/models/edges/channel/accounting.rb +5 -5
  30. data/models/edges/forward.rb +3 -3
  31. data/models/edges/groups/channel_forwards/analysis.rb +8 -8
  32. data/models/edges/payment.rb +3 -3
  33. data/models/errors.rb +1 -1
  34. data/models/payment_request.rb +2 -2
  35. data/models/satoshis.rb +12 -12
  36. data/static/cache.rb +2 -0
  37. data/static/spec.rb +1 -1
  38. metadata +3 -2
data/docs/_coverpage.md CHANGED
@@ -4,8 +4,13 @@
4
4
 
5
5
  - Make your Satoshis flow.
6
6
  - Unleash the power of Graphs.
7
+ - Easy-to-use **intuitive** API.
8
+ - Built for maximum **reliability**.
9
+ - Optimized for programmer **happiness**.
7
10
 
8
- 0.0.6
11
+ 0.0.7
12
+
13
+ ⚠️ _Warning: Early-stage, breaking changes are expected._
9
14
 
10
15
  [Documentation](README)
11
16
  [GitHub](https://github.com/icebaker/lighstorm)
data/docs/index.html CHANGED
@@ -18,7 +18,7 @@
18
18
  <script>
19
19
  window.$docsify = {
20
20
  coverpage: true,
21
- name: 'Lighstorm 0.0.6',
21
+ name: 'Lighstorm 0.0.7',
22
22
  repo: 'https://github.com/icebaker/lighstorm'
23
23
  }
24
24
  </script>
@@ -10,7 +10,7 @@ module Lighstorm
10
10
  end
11
11
 
12
12
  def balance
13
- @balance ||= Satoshis.new(milisatoshis: @data[:balance][:milisatoshis])
13
+ @balance ||= Satoshis.new(millisatoshis: @data[:balance][:millisatoshis])
14
14
  end
15
15
 
16
16
  def to_h
@@ -22,7 +22,7 @@ module Lighstorm
22
22
  def base
23
23
  return nil unless @data[:base]
24
24
 
25
- @base ||= Satoshis.new(milisatoshis: @data[:base][:milisatoshis])
25
+ @base ||= Satoshis.new(millisatoshis: @data[:base][:millisatoshis])
26
26
  end
27
27
 
28
28
  def rate
@@ -46,9 +46,10 @@ module Lighstorm
46
46
  Marshal.load(Marshal.dump(@data))
47
47
  end
48
48
 
49
- def update(params, preview: false, fake: false)
49
+ def update(params, preview: false, &vcr)
50
50
  Controllers::Channel::UpdateFee.perform(
51
- @policy, params, preview: preview, fake: fake
51
+ @policy, @policy.transaction, params,
52
+ preview: preview, &vcr
52
53
  )
53
54
  end
54
55
 
@@ -57,7 +58,7 @@ module Lighstorm
57
58
 
58
59
  @base = value[:value]
59
60
 
60
- @data[:base] = { milisatoshis: @base.milisatoshis }
61
+ @data[:base] = { millisatoshis: @base.millisatoshis }
61
62
 
62
63
  base
63
64
  end
@@ -17,7 +17,7 @@ module Lighstorm
17
17
  def minimum
18
18
  @minimum ||= if @data[:minimum]
19
19
  Satoshis.new(
20
- milisatoshis: @data[:minimum][:milisatoshis]
20
+ millisatoshis: @data[:minimum][:millisatoshis]
21
21
  )
22
22
  end
23
23
  end
@@ -25,7 +25,7 @@ module Lighstorm
25
25
  def maximum
26
26
  @maximum ||= if @data[:maximum]
27
27
  Satoshis.new(
28
- milisatoshis: @data[:maximum][:milisatoshis]
28
+ millisatoshis: @data[:maximum][:millisatoshis]
29
29
  )
30
30
  end
31
31
  end
@@ -67,7 +67,7 @@ module Lighstorm
67
67
 
68
68
  @minimum = value[:value]
69
69
 
70
- @data[:minimum] = { milisatoshis: @minimum.milisatoshis }
70
+ @data[:minimum] = { millisatoshis: @minimum.millisatoshis }
71
71
 
72
72
  minimum
73
73
  end
@@ -77,7 +77,7 @@ module Lighstorm
77
77
 
78
78
  @maximum = value[:value]
79
79
 
80
- @data[:maximum] = { milisatoshis: @maximum.milisatoshis }
80
+ @data[:maximum] = { millisatoshis: @maximum.millisatoshis }
81
81
 
82
82
  maximum
83
83
  end
@@ -10,7 +10,7 @@ module Lighstorm
10
10
  end
11
11
 
12
12
  def amount
13
- @amount ||= Satoshis.new(milisatoshis: @data[:amount][:milisatoshis])
13
+ @amount ||= Satoshis.new(millisatoshis: @data[:amount][:millisatoshis])
14
14
  end
15
15
 
16
16
  def channel
@@ -24,11 +24,11 @@ module Lighstorm
24
24
  end
25
25
 
26
26
  def amount
27
- @amount ||= Satoshis.new(milisatoshis: @data[:amount][:milisatoshis])
27
+ @amount ||= Satoshis.new(millisatoshis: @data[:amount][:millisatoshis])
28
28
  end
29
29
 
30
30
  def fee
31
- @fee ||= Satoshis.new(milisatoshis: @data[:fee][:milisatoshis])
31
+ @fee ||= Satoshis.new(millisatoshis: @data[:fee][:millisatoshis])
32
32
  end
33
33
 
34
34
  def channel
@@ -40,8 +40,8 @@ module Lighstorm
40
40
  hop: hop,
41
41
  amount: amount.to_h,
42
42
  fee: {
43
- milisatoshis: fee.milisatoshis,
44
- parts_per_million: fee.parts_per_million(amount.milisatoshis)
43
+ millisatoshis: fee.millisatoshis,
44
+ parts_per_million: fee.parts_per_million(amount.millisatoshis)
45
45
  },
46
46
  channel: channel.to_h
47
47
  }
@@ -17,7 +17,7 @@ module Lighstorm
17
17
  def capacity
18
18
  @capacity ||= if @data[:capacity]
19
19
  Satoshis.new(
20
- milisatoshis: @data[:capacity][:milisatoshis]
20
+ millisatoshis: @data[:capacity][:millisatoshis]
21
21
  )
22
22
  end
23
23
  end
@@ -27,7 +27,7 @@ module Lighstorm
27
27
 
28
28
  @sent ||= if @data[:sent]
29
29
  Satoshis.new(
30
- milisatoshis: @data[:sent][:milisatoshis]
30
+ millisatoshis: @data[:sent][:millisatoshis]
31
31
  )
32
32
  end
33
33
  end
@@ -37,7 +37,7 @@ module Lighstorm
37
37
 
38
38
  @received ||= if @data[:received]
39
39
  Satoshis.new(
40
- milisatoshis: @data[:received][:milisatoshis]
40
+ millisatoshis: @data[:received][:millisatoshis]
41
41
  )
42
42
  end
43
43
  end
@@ -47,7 +47,7 @@ module Lighstorm
47
47
 
48
48
  @unsettled ||= if @data[:unsettled]
49
49
  Satoshis.new(
50
- milisatoshis: @data[:unsettled][:milisatoshis]
50
+ millisatoshis: @data[:unsettled][:millisatoshis]
51
51
  )
52
52
  end
53
53
  end
@@ -76,7 +76,7 @@ module Lighstorm
76
76
 
77
77
  @capacity = value[:value]
78
78
 
79
- @data[:capacity][:milisatoshis] = @capacity.milisatoshis
79
+ @data[:capacity][:millisatoshis] = @capacity.millisatoshis
80
80
 
81
81
  capacity
82
82
  end
@@ -20,7 +20,7 @@ module Lighstorm
20
20
  end
21
21
 
22
22
  def fee
23
- @fee ||= Satoshis.new(milisatoshis: @data[:fee][:milisatoshis])
23
+ @fee ||= Satoshis.new(millisatoshis: @data[:fee][:millisatoshis])
24
24
  end
25
25
 
26
26
  def in
@@ -36,8 +36,8 @@ module Lighstorm
36
36
  _key: _key,
37
37
  at: at,
38
38
  fee: {
39
- milisatoshis: fee.milisatoshis,
40
- parts_per_million: fee.parts_per_million(self.in.amount.milisatoshis)
39
+ millisatoshis: fee.millisatoshis,
40
+ parts_per_million: fee.parts_per_million(self.in.amount.millisatoshis)
41
41
  },
42
42
  in: self.in.to_h,
43
43
  out: out.to_h
@@ -11,19 +11,19 @@ module Lighstorm
11
11
  def sums
12
12
  Struct.new(:sums) do
13
13
  def amount
14
- Satoshis.new(milisatoshis: sums[:amount][:milisatoshis])
14
+ Satoshis.new(millisatoshis: sums[:amount][:millisatoshis])
15
15
  end
16
16
 
17
17
  def fee
18
- Satoshis.new(milisatoshis: sums[:fee][:milisatoshis])
18
+ Satoshis.new(millisatoshis: sums[:fee][:millisatoshis])
19
19
  end
20
20
 
21
21
  def to_h
22
22
  {
23
23
  amount: amount.to_h,
24
24
  fee: {
25
- milisatoshis: fee.milisatoshis,
26
- parts_per_million: fee.parts_per_million(amount.milisatoshis)
25
+ millisatoshis: fee.millisatoshis,
26
+ parts_per_million: fee.parts_per_million(amount.millisatoshis)
27
27
  }
28
28
  }
29
29
  end
@@ -34,13 +34,13 @@ module Lighstorm
34
34
  Struct.new(:data) do
35
35
  def amount
36
36
  Satoshis.new(
37
- milisatoshis: data[:sums][:amount][:milisatoshis].to_f / data[:count]
37
+ millisatoshis: data[:sums][:amount][:millisatoshis].to_f / data[:count]
38
38
  )
39
39
  end
40
40
 
41
41
  def fee
42
42
  Satoshis.new(
43
- milisatoshis: data[:sums][:fee][:milisatoshis].to_f / data[:count]
43
+ millisatoshis: data[:sums][:fee][:millisatoshis].to_f / data[:count]
44
44
  )
45
45
  end
46
46
 
@@ -48,8 +48,8 @@ module Lighstorm
48
48
  {
49
49
  amount: amount.to_h,
50
50
  fee: {
51
- milisatoshis: fee.milisatoshis,
52
- parts_per_million: fee.parts_per_million(amount.milisatoshis)
51
+ millisatoshis: fee.millisatoshis,
52
+ parts_per_million: fee.parts_per_million(amount.millisatoshis)
53
53
  }
54
54
  }
55
55
  end
@@ -28,7 +28,7 @@ module Lighstorm
28
28
  end
29
29
 
30
30
  def fee
31
- @fee ||= Satoshis.new(milisatoshis: @data[:fee][:milisatoshis])
31
+ @fee ||= Satoshis.new(millisatoshis: @data[:fee][:millisatoshis])
32
32
  end
33
33
 
34
34
  def hops
@@ -56,8 +56,8 @@ module Lighstorm
56
56
  settled_at: settled_at,
57
57
  purpose: purpose,
58
58
  fee: {
59
- milisatoshis: fee.milisatoshis,
60
- parts_per_million: fee.parts_per_million(request.amount.milisatoshis)
59
+ millisatoshis: fee.millisatoshis,
60
+ parts_per_million: fee.parts_per_million(request.amount.millisatoshis)
61
61
  },
62
62
  request: request.to_h,
63
63
  from: from.to_h,
data/models/errors.rb CHANGED
@@ -10,7 +10,7 @@ module Lighstorm
10
10
  class IncoherentGossipError < LighstormError; end
11
11
  class MissingGossipHandlerError < LighstormError; end
12
12
  class MissingCredentialsError < LighstormError; end
13
- class MissingMilisatoshisError < LighstormError; end
13
+ class MissingMillisatoshisError < LighstormError; end
14
14
  class MissingPartsPerMillionError < LighstormError; end
15
15
  class MissingTTLError < LighstormError; end
16
16
  class NegativeNotAllowedError < LighstormError; end
@@ -12,7 +12,7 @@ module Lighstorm
12
12
  @data = data
13
13
 
14
14
  @_key = data[:_key] || Digest::SHA256.hexdigest(
15
- data[:code] || "#{data[:code][:amount][:milisatoshis]}#{Time.now}"
15
+ data[:code] || "#{data[:code][:amount][:millisatoshis]}#{Time.now}"
16
16
  )
17
17
 
18
18
  @code = data[:code]
@@ -21,7 +21,7 @@ module Lighstorm
21
21
  end
22
22
 
23
23
  def amount
24
- @amount ||= Satoshis.new(milisatoshis: @data[:amount][:milisatoshis])
24
+ @amount ||= Satoshis.new(millisatoshis: @data[:amount][:millisatoshis])
25
25
  end
26
26
 
27
27
  def description
data/models/satoshis.rb CHANGED
@@ -5,34 +5,34 @@ require_relative '../ports/dsl/lighstorm/errors'
5
5
  module Lighstorm
6
6
  module Models
7
7
  class Satoshis
8
- def initialize(milisatoshis: nil)
9
- raise MissingMilisatoshisError, 'missing milisatoshis' if milisatoshis.nil?
8
+ def initialize(millisatoshis: nil)
9
+ raise MissingMillisatoshisError, 'missing millisatoshis' if millisatoshis.nil?
10
10
 
11
- @amount_in_milisatoshis = milisatoshis
11
+ @amount_in_millisatoshis = millisatoshis
12
12
  end
13
13
 
14
- def parts_per_million(reference_milisatoshis)
14
+ def parts_per_million(reference_millisatoshis)
15
15
  (
16
16
  (
17
- if reference_milisatoshis.zero?
17
+ if reference_millisatoshis.zero?
18
18
  0
19
19
  else
20
- @amount_in_milisatoshis.to_f / reference_milisatoshis
20
+ @amount_in_millisatoshis.to_f / reference_millisatoshis
21
21
  end
22
22
  ) * 1_000_000.0
23
23
  )
24
24
  end
25
25
 
26
- def milisatoshis
27
- @amount_in_milisatoshis
26
+ def millisatoshis
27
+ @amount_in_millisatoshis
28
28
  end
29
29
 
30
30
  def satoshis
31
- @amount_in_milisatoshis.to_f / 1000.0
31
+ @amount_in_millisatoshis.to_f / 1000.0
32
32
  end
33
33
 
34
34
  def bitcoins
35
- @amount_in_milisatoshis.to_f / 100_000_000_000
35
+ @amount_in_millisatoshis.to_f / 100_000_000_000
36
36
  end
37
37
 
38
38
  def sats
@@ -40,7 +40,7 @@ module Lighstorm
40
40
  end
41
41
 
42
42
  def msats
43
- milisatoshis
43
+ millisatoshis
44
44
  end
45
45
 
46
46
  def btc
@@ -49,7 +49,7 @@ module Lighstorm
49
49
 
50
50
  def to_h
51
51
  {
52
- milisatoshis: milisatoshis
52
+ millisatoshis: millisatoshis
53
53
  }
54
54
  end
55
55
  end
data/static/cache.rb CHANGED
@@ -3,6 +3,8 @@
3
3
  module Lighstorm
4
4
  module Static
5
5
  CACHE = {
6
+ update_channel_policy: false,
7
+ add_invoice: false,
6
8
  fee_report: {
7
9
  ttl: 0.01,
8
10
  properties: %i[
data/static/spec.rb CHANGED
@@ -4,7 +4,7 @@ module Lighstorm
4
4
  module Static
5
5
  SPEC = {
6
6
  name: 'lighstorm',
7
- version: '0.0.6',
7
+ version: '0.0.7',
8
8
  author: 'icebaker',
9
9
  summary: 'API for interacting with a Lightning Node.',
10
10
  description: 'Lighstorm is an opinionated abstraction layer on top of the lnd-client for interacting with a Lightning Node.',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lighstorm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - icebaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-25 00:00:00.000000000 Z
11
+ date: 2023-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -87,6 +87,7 @@ files:
87
87
  - adapters/payment_request.rb
88
88
  - components/cache.rb
89
89
  - components/lnd.rb
90
+ - controllers/action.rb
90
91
  - controllers/channel.rb
91
92
  - controllers/channel/actions/apply_gossip.rb
92
93
  - controllers/channel/actions/update_fee.rb