zold 0.14.8 → 0.14.9

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.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/.travis.yml +0 -0
  4. data/Gemfile +2 -0
  5. data/Rakefile +2 -0
  6. data/appveyor.yml +8 -3
  7. data/features/step_definitions/steps.rb +2 -0
  8. data/features/support/env.rb +2 -0
  9. data/fixtures/merge/asserts.rb +2 -0
  10. data/fixtures/merge/into-no-wallet/assert.rb +2 -0
  11. data/fixtures/merge/random-expenses/assert.rb +2 -0
  12. data/fixtures/merge/simple-case/assert.rb +2 -0
  13. data/fixtures/scripts/_head.sh +13 -0
  14. data/fixtures/scripts/distribute-wallet.sh +86 -0
  15. data/fixtures/scripts/spread-wallets.sh +56 -0
  16. data/lib/zold.rb +2 -0
  17. data/lib/zold/amount.rb +3 -1
  18. data/lib/zold/atomic_file.rb +2 -0
  19. data/lib/zold/backtrace.rb +2 -0
  20. data/lib/zold/commands/alias.rb +2 -0
  21. data/lib/zold/commands/args.rb +2 -0
  22. data/lib/zold/commands/calculate.rb +5 -3
  23. data/lib/zold/commands/clean.rb +2 -0
  24. data/lib/zold/commands/create.rb +2 -0
  25. data/lib/zold/commands/diff.rb +2 -0
  26. data/lib/zold/commands/fetch.rb +7 -2
  27. data/lib/zold/commands/invoice.rb +2 -0
  28. data/lib/zold/commands/list.rb +2 -0
  29. data/lib/zold/commands/merge.rb +2 -0
  30. data/lib/zold/commands/node.rb +2 -0
  31. data/lib/zold/commands/pay.rb +2 -0
  32. data/lib/zold/commands/propagate.rb +2 -0
  33. data/lib/zold/commands/pull.rb +2 -0
  34. data/lib/zold/commands/push.rb +2 -0
  35. data/lib/zold/commands/remote.rb +11 -6
  36. data/lib/zold/commands/routines/bonuses.rb +78 -0
  37. data/lib/zold/commands/routines/reconnect.rb +2 -0
  38. data/lib/zold/commands/routines/spread.rb +2 -0
  39. data/lib/zold/commands/show.rb +2 -0
  40. data/lib/zold/commands/taxes.rb +2 -0
  41. data/lib/zold/copies.rb +4 -2
  42. data/lib/zold/hexnum.rb +2 -0
  43. data/lib/zold/http.rb +28 -20
  44. data/lib/zold/hungry_wallets.rb +2 -0
  45. data/lib/zold/id.rb +2 -0
  46. data/lib/zold/json_page.rb +2 -0
  47. data/lib/zold/key.rb +2 -0
  48. data/lib/zold/log.rb +2 -0
  49. data/lib/zold/metronome.rb +2 -0
  50. data/lib/zold/node/async_entrance.rb +3 -3
  51. data/lib/zold/node/emission.rb +2 -0
  52. data/lib/zold/node/entrance.rb +5 -2
  53. data/lib/zold/node/farm.rb +3 -1
  54. data/lib/zold/node/front.rb +4 -1
  55. data/lib/zold/node/safe_entrance.rb +2 -0
  56. data/lib/zold/node/spread_entrance.rb +2 -0
  57. data/lib/zold/patch.rb +2 -0
  58. data/lib/zold/prefixes.rb +2 -0
  59. data/lib/zold/remotes.rb +15 -13
  60. data/lib/zold/score.rb +62 -59
  61. data/lib/zold/signature.rb +2 -0
  62. data/lib/zold/tax.rb +3 -1
  63. data/lib/zold/txn.rb +4 -2
  64. data/lib/zold/type.rb +36 -0
  65. data/lib/zold/upgrades.rb +2 -4
  66. data/lib/zold/verbose_thread.rb +2 -0
  67. data/lib/zold/version.rb +4 -2
  68. data/lib/zold/version_file.rb +2 -0
  69. data/lib/zold/wallet.rb +4 -2
  70. data/lib/zold/wallets.rb +2 -0
  71. data/test/commands/routines/test_bonuses.rb +76 -0
  72. data/test/commands/routines/test_reconnect.rb +2 -0
  73. data/test/commands/routines/test_spread.rb +2 -0
  74. data/test/commands/test_alias.rb +2 -0
  75. data/test/commands/test_calculate.rb +2 -0
  76. data/test/commands/test_clean.rb +2 -0
  77. data/test/commands/test_create.rb +2 -0
  78. data/test/commands/test_diff.rb +2 -0
  79. data/test/commands/test_fetch.rb +2 -0
  80. data/test/commands/test_invoice.rb +2 -0
  81. data/test/commands/test_list.rb +2 -0
  82. data/test/commands/test_merge.rb +2 -0
  83. data/test/commands/test_node.rb +6 -0
  84. data/test/commands/test_pay.rb +2 -0
  85. data/test/commands/test_propagate.rb +2 -0
  86. data/test/commands/test_push.rb +2 -0
  87. data/test/commands/test_remote.rb +40 -0
  88. data/test/commands/test_show.rb +2 -0
  89. data/test/commands/test_taxes.rb +2 -0
  90. data/test/fake_home.rb +2 -0
  91. data/test/node/fake_entrance.rb +2 -0
  92. data/test/node/fake_node.rb +3 -1
  93. data/test/node/test_async_entrance.rb +2 -0
  94. data/test/node/test_emission.rb +2 -0
  95. data/test/node/test_entrance.rb +2 -0
  96. data/test/node/test_farm.rb +9 -7
  97. data/test/node/test_front.rb +15 -10
  98. data/test/node/test_safe_entrance.rb +2 -0
  99. data/test/node/test_spread_entrance.rb +2 -0
  100. data/test/test__helper.rb +2 -0
  101. data/test/test_amount.rb +2 -0
  102. data/test/test_atomic_file.rb +2 -0
  103. data/test/test_backtrace.rb +2 -0
  104. data/test/test_copies.rb +4 -1
  105. data/test/test_hexnum.rb +2 -0
  106. data/test/test_http.rb +5 -3
  107. data/test/test_id.rb +2 -0
  108. data/test/test_key.rb +2 -0
  109. data/test/test_metronome.rb +2 -0
  110. data/test/test_patch.rb +2 -0
  111. data/test/test_prefixes.rb +2 -0
  112. data/test/test_remotes.rb +11 -0
  113. data/test/test_score.rb +26 -24
  114. data/test/test_signature.rb +2 -0
  115. data/test/test_tax.rb +4 -2
  116. data/test/test_txn.rb +2 -0
  117. data/test/test_upgrades.rb +2 -0
  118. data/test/test_verbose_thread.rb +2 -0
  119. data/test/test_version.rb +2 -0
  120. data/test/test_wallet.rb +2 -0
  121. data/test/test_wallets.rb +2 -0
  122. data/test/test_zold.rb +2 -0
  123. data/test/upgrades/test_protocol_up.rb +2 -0
  124. data/upgrades/2.rb +2 -0
  125. data/upgrades/protocol_up.rb +2 -0
  126. data/upgrades/rename_foreign_wallets.rb +2 -0
  127. data/zold.gemspec +5 -1
  128. metadata +38 -4
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -139,6 +141,15 @@ class TestRemotes < Minitest::Test
139
141
  end
140
142
  end
141
143
 
144
+ def test_tolerates_invalid_requests
145
+ Dir.mktmpdir 'test' do |dir|
146
+ file = File.join(dir, 'remotes')
147
+ remotes = Zold::Remotes.new(file)
148
+ remotes.error('127.0.0.1', 1024)
149
+ remotes.rescore('127.0.0.1', 1024, 15)
150
+ end
151
+ end
152
+
142
153
  def test_modifies_from_many_threads
143
154
  Dir.mktmpdir 'test' do |dir|
144
155
  remotes = Zold::Remotes.new(File.join(dir, 'a.csv'))
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -31,9 +33,9 @@ require_relative '../lib/zold/score'
31
33
  class TestScore < Minitest::Test
32
34
  def test_reduces_itself
33
35
  score = Zold::Score.new(
34
- Time.parse('2017-07-19T21:24:51Z'),
35
- 'localhost', 443, 'NOPREFIX@ffffffffffffffff',
36
- %w[A B C D E F G]
36
+ time: Time.parse('2017-07-19T21:24:51Z'),
37
+ host: 'localhost', port: 443, invoice: 'NOPREFIX@ffffffffffffffff',
38
+ suffixes: %w[A B C D E F G]
37
39
  ).reduced(2)
38
40
  assert_equal(2, score.value)
39
41
  assert_equal(64, score.hash.length)
@@ -41,8 +43,8 @@ class TestScore < Minitest::Test
41
43
 
42
44
  def test_drops_to_zero_when_expired
43
45
  score = Zold::Score.new(
44
- Time.now - 24 * 60 * 60,
45
- 'some-host', 9999, 'NOPREFIX@ffffffffffffffff',
46
+ time: Time.now - 24 * 60 * 60,
47
+ host: 'some-host', port: 9999, invoice: 'NOPREFIX@ffffffffffffffff',
46
48
  strength: 50
47
49
  ).next
48
50
  assert(score.valid?)
@@ -52,9 +54,9 @@ class TestScore < Minitest::Test
52
54
 
53
55
  def test_validates_wrong_score
54
56
  score = Zold::Score.new(
55
- Time.parse('2017-07-19T21:24:51Z'),
56
- 'localhost', 443, 'NOPREFIX@ffffffffffffffff',
57
- %w[xxx yyy zzz]
57
+ time: Time.parse('2017-07-19T21:24:51Z'),
58
+ host: 'localhost', port: 443, invoice: 'NOPREFIX@ffffffffffffffff',
59
+ suffixes: %w[xxx yyy zzz]
58
60
  )
59
61
  assert_equal(3, score.value)
60
62
  assert(!score.valid?)
@@ -62,8 +64,8 @@ class TestScore < Minitest::Test
62
64
 
63
65
  def test_prints_mnemo
64
66
  score = Zold::Score.new(
65
- Time.parse('2017-07-19T22:32:51Z'),
66
- 'localhost', 443, 'NOPREFIX@ffffffffffffffff'
67
+ time: Time.parse('2017-07-19T22:32:51Z'),
68
+ host: 'localhost', port: 443, invoice: 'NOPREFIX@ffffffffffffffff'
67
69
  )
68
70
  assert_equal('0:2232', score.to_mnemo)
69
71
  end
@@ -72,7 +74,7 @@ class TestScore < Minitest::Test
72
74
  time = Time.now
73
75
  score = Zold::Score.parse(
74
76
  Zold::Score.new(
75
- time, 'localhost', 999, 'NOPREFIX@ffffffffffffffff',
77
+ time: time, host: 'localhost', port: 999, invoice: 'NOPREFIX@ffffffffffffffff',
76
78
  strength: 1
77
79
  ).next.next.to_s
78
80
  )
@@ -86,7 +88,7 @@ class TestScore < Minitest::Test
86
88
  time = Time.now
87
89
  score = Zold::Score.parse_text(
88
90
  Zold::Score.new(
89
- time, 'a.example.com', 999, 'NOPREFIX@ffffffffffffffff',
91
+ time: time, host: 'a.example.com', port: 999, invoice: 'NOPREFIX@ffffffffffffffff',
90
92
  strength: 1
91
93
  ).next.next.next.to_text
92
94
  )
@@ -100,7 +102,7 @@ class TestScore < Minitest::Test
100
102
  time = Time.now
101
103
  score = Zold::Score.parse_text(
102
104
  Zold::Score.new(
103
- time, '192.168.0.1', 1, 'NOPREFIX@ffffffffffffffff', []
105
+ time: time, host: '192.168.0.1', port: 1, invoice: 'NOPREFIX@ffffffffffffffff', suffixes: []
104
106
  ).to_text
105
107
  )
106
108
  assert_equal(0, score.value)
@@ -111,7 +113,7 @@ class TestScore < Minitest::Test
111
113
  time = Time.now
112
114
  score = Zold::Score.parse(
113
115
  Zold::Score.new(
114
- time, '192.168.0.1', 1, 'NOPREFIX@ffffffffffffffff', []
116
+ time: time, host: '192.168.0.1', port: 1, invoice: 'NOPREFIX@ffffffffffffffff', suffixes: []
115
117
  ).to_s
116
118
  )
117
119
  assert_equal(0, score.value)
@@ -120,8 +122,8 @@ class TestScore < Minitest::Test
120
122
 
121
123
  def test_finds_next_score
122
124
  score = Zold::Score.new(
123
- Time.now, 'localhost', 443,
124
- 'NOPREFIX@ffffffffffffffff', strength: 2
125
+ time: Time.now, host: 'localhost', port: 443,
126
+ invoice: 'NOPREFIX@ffffffffffffffff', strength: 2
125
127
  ).next.next.next
126
128
  assert_equal(3, score.value)
127
129
  assert(score.valid?)
@@ -130,29 +132,29 @@ class TestScore < Minitest::Test
130
132
 
131
133
  def test_dont_expire_correctly
132
134
  score = Zold::Score.new(
133
- Time.now - 10 * 60 * 60, 'localhost', 443,
134
- 'NOPREFIX@ffffffffffffffff', strength: 2
135
+ time: Time.now - 10 * 60 * 60, host: 'localhost', port: 443,
136
+ invoice: 'NOPREFIX@ffffffffffffffff', strength: 2
135
137
  ).next.next.next
136
138
  assert(!score.expired?)
137
139
  end
138
140
 
139
141
  def test_correct_number_of_zeroes
140
142
  score = Zold::Score.new(
141
- Time.now, 'localhost', 443,
142
- 'NOPREFIX@ffffffffffffffff', strength: 3
143
+ time: Time.now, host: 'localhost', port: 443,
144
+ invoice: 'NOPREFIX@ffffffffffffffff', strength: 3
143
145
  ).next
144
146
  assert(score.hash.end_with?('000'))
145
147
  end
146
148
 
147
149
  def test_generates_hash_correctly
148
150
  score = Zold::Score.new(
149
- Time.parse('2018-06-27T06:22:41Z'), 'b2.zold.io', 4096,
150
- 'THdonv1E@abcdabcdabcdabcd', ['3a934b']
151
+ time: Time.parse('2018-06-27T06:22:41Z'), host: 'b2.zold.io', port: 4096,
152
+ invoice: 'THdonv1E@abcdabcdabcdabcd', suffixes: ['3a934b']
151
153
  )
152
154
  assert_equal('c9c72efbf6beeea13408c5e720ec42aec017c11c3db335e05595c03755000000', score.hash)
153
155
  score = Zold::Score.new(
154
- Time.parse('2018-06-27T06:22:41Z'), 'b2.zold.io', 4096,
155
- 'THdonv1E@abcdabcdabcdabcd', %w[3a934b 1421217]
156
+ time: Time.parse('2018-06-27T06:22:41Z'), host: 'b2.zold.io', port: 4096,
157
+ invoice: 'THdonv1E@abcdabcdabcdabcd', suffixes: %w[3a934b 1421217]
156
158
  )
157
159
  assert_equal('e04ab4e69f86aa17be1316a52148e7bc3187c6d3df581d885a862d8850000000', score.hash)
158
160
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -72,8 +74,8 @@ class TestTax < Minitest::Test
72
74
  invoice = "#{Zold::Prefixes.new(target).create}@#{target.id}"
73
75
  tax = Zold::Tax.new(wallet)
74
76
  score = Zold::Score.new(
75
- Time.now, 'localhost', 80, invoice,
76
- %w[A B C D E F G H I J K L M N O P Q R S T U V]
77
+ time: Time.now, host: 'localhost', port: 80, invoice: invoice,
78
+ suffixes: %w[A B C D E F G H I J K L M N O P Q R S T U V]
77
79
  )
78
80
  tax.pay(Zold::Key.new(file: 'fixtures/id_rsa'), score)
79
81
  assert(
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'semantic'
2
4
  require 'zold/version'
3
5
  require 'minitest/autorun'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Copyright (c) 2018 Yegor Bugayenko
2
4
  #
3
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -28,7 +30,7 @@ Gem::Specification.new do |s|
28
30
  s.specification_version = 2 if s.respond_to? :specification_version=
29
31
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
30
32
  s.rubygems_version = '2.2'
31
- s.required_ruby_version = '~>2.2'
33
+ s.required_ruby_version = '>=2.3.3'
32
34
  s.name = 'zold'
33
35
  s.version = Zold::VERSION
34
36
  s.license = 'MIT'
@@ -55,6 +57,8 @@ and suggests a different architecture for digital wallet maintenance.'
55
57
  s.add_runtime_dependency 'concurrent-ruby', '~>1.0'
56
58
  s.add_runtime_dependency 'cucumber', '~>3.1' # has to stay here for Heroku
57
59
  s.add_runtime_dependency 'diffy', '~>3.2'
60
+ s.add_runtime_dependency 'dry-struct', '~>0.5.0'
61
+ s.add_runtime_dependency 'dry-types', '~>0.13.2'
58
62
  s.add_runtime_dependency 'json', '~>1.8'
59
63
  s.add_runtime_dependency 'openssl', '~>2.1'
60
64
  s.add_runtime_dependency 'rainbow', '~>3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.8
4
+ version: 0.14.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-11 00:00:00.000000000 Z
11
+ date: 2018-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dry-struct
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.5.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.5.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: dry-types
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.13.2
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.13.2
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: json
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -350,10 +378,12 @@ files:
350
378
  - fixtures/merge/simple-case/copies/0123456789abcdef/scores.z
351
379
  - fixtures/scripts/_head.sh
352
380
  - fixtures/scripts/calculate-scores.sh
381
+ - fixtures/scripts/distribute-wallet.sh
353
382
  - fixtures/scripts/print-helps.sh
354
383
  - fixtures/scripts/push-and-pull.sh
355
384
  - fixtures/scripts/redeploy-on-upgrade.sh
356
385
  - fixtures/scripts/sigdump.sh
386
+ - fixtures/scripts/spread-wallets.sh
357
387
  - heroku-run.sh
358
388
  - lib/zold.rb
359
389
  - lib/zold/amount.rb
@@ -375,6 +405,7 @@ files:
375
405
  - lib/zold/commands/pull.rb
376
406
  - lib/zold/commands/push.rb
377
407
  - lib/zold/commands/remote.rb
408
+ - lib/zold/commands/routines/bonuses.rb
378
409
  - lib/zold/commands/routines/reconnect.rb
379
410
  - lib/zold/commands/routines/spread.rb
380
411
  - lib/zold/commands/show.rb
@@ -402,6 +433,7 @@ files:
402
433
  - lib/zold/signature.rb
403
434
  - lib/zold/tax.rb
404
435
  - lib/zold/txn.rb
436
+ - lib/zold/type.rb
405
437
  - lib/zold/upgrades.rb
406
438
  - lib/zold/verbose_thread.rb
407
439
  - lib/zold/version.rb
@@ -409,6 +441,7 @@ files:
409
441
  - lib/zold/wallet.rb
410
442
  - lib/zold/wallets.rb
411
443
  - resources/remotes
444
+ - test/commands/routines/test_bonuses.rb
412
445
  - test/commands/routines/test_reconnect.rb
413
446
  - test/commands/routines/test_spread.rb
414
447
  - test/commands/test_alias.rb
@@ -476,9 +509,9 @@ require_paths:
476
509
  - lib
477
510
  required_ruby_version: !ruby/object:Gem::Requirement
478
511
  requirements:
479
- - - "~>"
512
+ - - ">="
480
513
  - !ruby/object:Gem::Version
481
- version: '2.2'
514
+ version: 2.3.3
482
515
  required_rubygems_version: !ruby/object:Gem::Requirement
483
516
  requirements:
484
517
  - - ">="
@@ -495,6 +528,7 @@ test_files:
495
528
  - features/gem_package.feature
496
529
  - features/step_definitions/steps.rb
497
530
  - features/support/env.rb
531
+ - test/commands/routines/test_bonuses.rb
498
532
  - test/commands/routines/test_reconnect.rb
499
533
  - test/commands/routines/test_spread.rb
500
534
  - test/commands/test_alias.rb