zold 0.31.10 → 0.32.1

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 (262) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +11 -27
  3. data/Gemfile +21 -33
  4. data/Gemfile.lock +181 -126
  5. data/Guardfile +0 -0
  6. data/INSTALL.md +80 -59
  7. data/LICENSE.txt +1 -1
  8. data/LICENSES/MIT.txt +21 -0
  9. data/README.md +183 -154
  10. data/REUSE.toml +40 -0
  11. data/Rakefile +4 -38
  12. data/bin/zold +7 -37
  13. data/deploy.sh +4 -22
  14. data/lib/zold/age.rb +3 -20
  15. data/lib/zold/amount.rb +3 -20
  16. data/lib/zold/cached_wallets.rb +3 -20
  17. data/lib/zold/commands/alias.rb +4 -21
  18. data/lib/zold/commands/args.rb +4 -21
  19. data/lib/zold/commands/calculate.rb +5 -22
  20. data/lib/zold/commands/clean.rb +6 -23
  21. data/lib/zold/commands/create.rb +5 -22
  22. data/lib/zold/commands/diff.rb +5 -22
  23. data/lib/zold/commands/fetch.rb +6 -23
  24. data/lib/zold/commands/invoice.rb +5 -22
  25. data/lib/zold/commands/list.rb +5 -22
  26. data/lib/zold/commands/merge.rb +7 -24
  27. data/lib/zold/commands/next.rb +5 -22
  28. data/lib/zold/commands/node.rb +4 -21
  29. data/lib/zold/commands/pay.rb +6 -23
  30. data/lib/zold/commands/propagate.rb +5 -22
  31. data/lib/zold/commands/pull.rb +5 -22
  32. data/lib/zold/commands/push.rb +5 -22
  33. data/lib/zold/commands/remote.rb +7 -24
  34. data/lib/zold/commands/remove.rb +5 -22
  35. data/lib/zold/commands/routines/audit.rb +4 -21
  36. data/lib/zold/commands/routines/gc.rb +6 -23
  37. data/lib/zold/commands/routines/reconcile.rb +5 -22
  38. data/lib/zold/commands/routines/reconnect.rb +4 -21
  39. data/lib/zold/commands/routines/retire.rb +4 -21
  40. data/lib/zold/commands/routines/spread.rb +5 -22
  41. data/lib/zold/commands/routines.rb +3 -20
  42. data/lib/zold/commands/show.rb +5 -22
  43. data/lib/zold/commands/taxes.rb +5 -22
  44. data/lib/zold/commands/thread_badge.rb +3 -20
  45. data/lib/zold/copies.rb +6 -25
  46. data/lib/zold/dir_items.rb +3 -20
  47. data/lib/zold/endless.rb +5 -22
  48. data/lib/zold/gem.rb +3 -20
  49. data/lib/zold/hands.rb +6 -23
  50. data/lib/zold/head.rb +4 -21
  51. data/lib/zold/hexnum.rb +3 -20
  52. data/lib/zold/http.rb +3 -20
  53. data/lib/zold/hungry_wallets.rb +6 -23
  54. data/lib/zold/id.rb +3 -20
  55. data/lib/zold/json_page.rb +5 -22
  56. data/lib/zold/key.rb +3 -20
  57. data/lib/zold/metronome.rb +5 -22
  58. data/lib/zold/node/async_entrance.rb +6 -23
  59. data/lib/zold/node/entrance.rb +7 -24
  60. data/lib/zold/node/farm.rb +5 -22
  61. data/lib/zold/node/farmers.rb +15 -32
  62. data/lib/zold/node/front.rb +6 -23
  63. data/lib/zold/node/journaled_pipeline.rb +8 -25
  64. data/lib/zold/node/nodup_entrance.rb +6 -23
  65. data/lib/zold/node/nospam_entrance.rb +6 -23
  66. data/lib/zold/node/pipeline.rb +6 -23
  67. data/lib/zold/node/safe_entrance.rb +4 -22
  68. data/lib/zold/node/soft_error.rb +3 -20
  69. data/lib/zold/node/spread_entrance.rb +5 -22
  70. data/lib/zold/node/sync_entrance.rb +5 -22
  71. data/lib/zold/node/trace.rb +3 -20
  72. data/lib/zold/patch.rb +6 -23
  73. data/lib/zold/prefixes.rb +3 -20
  74. data/lib/zold/remotes.rb +5 -22
  75. data/lib/zold/signature.rb +3 -20
  76. data/lib/zold/size.rb +3 -20
  77. data/lib/zold/sync_wallets.rb +5 -22
  78. data/lib/zold/tax.rb +4 -21
  79. data/lib/zold/thread_pool.rb +4 -21
  80. data/lib/zold/tree_wallets.rb +3 -20
  81. data/lib/zold/txn.rb +4 -21
  82. data/lib/zold/txns.rb +4 -21
  83. data/lib/zold/upgrades.rb +4 -21
  84. data/lib/zold/verbose_thread.rb +5 -22
  85. data/lib/zold/version.rb +4 -21
  86. data/lib/zold/version_file.rb +4 -21
  87. data/lib/zold/wallet.rb +6 -23
  88. data/lib/zold/wallets.rb +5 -23
  89. data/lib/zold.rb +3 -21
  90. data/resources/banned-wallets.log +6 -6
  91. data/upgrades/2.rb +3 -20
  92. data/upgrades/delete_banned_wallets.rb +3 -20
  93. data/upgrades/move_wallets_into_tree.rb +3 -20
  94. data/upgrades/protocol_up.rb +3 -20
  95. data/upgrades/rename_foreign_wallets.rb +3 -20
  96. data/views/journal.haml +25 -0
  97. data/views/layout.haml +25 -0
  98. data/views/wallet.haml +25 -0
  99. data/zold.gemspec +6 -22
  100. metadata +26 -174
  101. data/.0pdd.yml +0 -29
  102. data/.gitattributes +0 -9
  103. data/.github/workflows/actionlint.yml +0 -41
  104. data/.github/workflows/codecov.yml +0 -40
  105. data/.github/workflows/copyrights.yml +0 -30
  106. data/.github/workflows/pdd.yml +0 -34
  107. data/.github/workflows/rake.yml +0 -45
  108. data/.github/workflows/xcop.yml +0 -30
  109. data/.github/workflows/yamllint.yml +0 -34
  110. data/.gitignore +0 -12
  111. data/.pdd +0 -7
  112. data/.rubocop.yml +0 -70
  113. data/.ruby-version +0 -1
  114. data/.rultor.yml +0 -57
  115. data/.simplecov +0 -36
  116. data/cucumber.yml +0 -23
  117. data/features/cli.feature +0 -16
  118. data/features/gem_package.feature +0 -26
  119. data/features/step_definitions/steps.rb +0 -84
  120. data/features/support/env.rb +0 -26
  121. data/fixtures/448b451bc62e8e16.z +0 -1005
  122. data/fixtures/id_rsa +0 -51
  123. data/fixtures/id_rsa-2 +0 -51
  124. data/fixtures/id_rsa-2.pub +0 -1
  125. data/fixtures/id_rsa.pub +0 -1
  126. data/fixtures/keys/1.pub +0 -1
  127. data/fixtures/keys/2 +0 -51
  128. data/fixtures/keys/2.pub +0 -1
  129. data/fixtures/merge/asserts.rb +0 -36
  130. data/fixtures/merge/id_rsa +0 -51
  131. data/fixtures/merge/id_rsa.pub +0 -1
  132. data/fixtures/merge/into_no_wallet/assert.rb +0 -25
  133. data/fixtures/merge/into_no_wallet/copies/0123456789abcdef/1.zc +0 -6
  134. data/fixtures/merge/into_no_wallet/copies/0123456789abcdef/scores.zc +0 -1
  135. data/fixtures/merge/into_no_wallet/opts +0 -1
  136. data/fixtures/merge/legacy_negatives_stay/0123456789abcdef.z +0 -6
  137. data/fixtures/merge/legacy_negatives_stay/assert.rb +0 -25
  138. data/fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/1.zc +0 -6
  139. data/fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/scores.zc +0 -1
  140. data/fixtures/merge/legacy_negatives_stay/opts +0 -2
  141. data/fixtures/merge/missed_wallets/0000000000000000.z +0 -6
  142. data/fixtures/merge/missed_wallets/0123456789abcdef.z +0 -6
  143. data/fixtures/merge/missed_wallets/assert.rb +0 -25
  144. data/fixtures/merge/missed_wallets/copies/0123456789abcdef/1.zc +0 -8
  145. data/fixtures/merge/missed_wallets/copies/0123456789abcdef/scores.zc +0 -1
  146. data/fixtures/merge/missed_wallets/opts +0 -3
  147. data/fixtures/merge/negative_overwriting/0123456789abcdef.z +0 -6
  148. data/fixtures/merge/negative_overwriting/146b852f2d9ad984.z +0 -6
  149. data/fixtures/merge/negative_overwriting/assert.rb +0 -25
  150. data/fixtures/merge/negative_overwriting/copies/0123456789abcdef/1.zc +0 -6
  151. data/fixtures/merge/negative_overwriting/copies/0123456789abcdef/scores.zc +0 -1
  152. data/fixtures/merge/negative_overwriting/opts +0 -2
  153. data/fixtures/merge/negatives_in_between/0000000000000000.z +0 -6
  154. data/fixtures/merge/negatives_in_between/0123456789abcdef.z +0 -5
  155. data/fixtures/merge/negatives_in_between/assert.rb +0 -25
  156. data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/1.zc +0 -6
  157. data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/2.zc +0 -7
  158. data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/3.zc +0 -6
  159. data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/scores.zc +0 -3
  160. data/fixtures/merge/negatives_in_between/opts +0 -1
  161. data/fixtures/merge/random_expenses/0000000000000000.z +0 -6
  162. data/fixtures/merge/random_expenses/0123456789abcdef.z +0 -6
  163. data/fixtures/merge/random_expenses/assert.rb +0 -25
  164. data/fixtures/merge/random_expenses/copies/0123456789abcdef/1.zc +0 -7
  165. data/fixtures/merge/random_expenses/copies/0123456789abcdef/2.zc +0 -7
  166. data/fixtures/merge/random_expenses/copies/0123456789abcdef/3.zc +0 -7
  167. data/fixtures/merge/random_expenses/copies/0123456789abcdef/4.zc +0 -7
  168. data/fixtures/merge/random_expenses/copies/0123456789abcdef/5.zc +0 -7
  169. data/fixtures/merge/random_expenses/copies/0123456789abcdef/scores.zc +0 -5
  170. data/fixtures/merge/random_expenses/opts +0 -1
  171. data/fixtures/merge/simple_case/0000000000000000.z +0 -6
  172. data/fixtures/merge/simple_case/0123456789abcdef.z +0 -4
  173. data/fixtures/merge/simple_case/assert.rb +0 -25
  174. data/fixtures/merge/simple_case/copies/0123456789abcdef/1.zc +0 -6
  175. data/fixtures/merge/simple_case/copies/0123456789abcdef/scores.zc +0 -1
  176. data/fixtures/merge/simple_case/opts +0 -1
  177. data/fixtures/merge/unconfirmed_income/0123456789abcdef.z +0 -4
  178. data/fixtures/merge/unconfirmed_income/assert.rb +0 -25
  179. data/fixtures/merge/unconfirmed_income/copies/0123456789abcdef/1.zc +0 -6
  180. data/fixtures/merge/unconfirmed_income/copies/0123456789abcdef/scores.zc +0 -1
  181. data/fixtures/merge/unconfirmed_income/opts +0 -3
  182. data/fixtures/scripts/_head.sh +0 -89
  183. data/fixtures/scripts/calculate-scores.sh +0 -22
  184. data/fixtures/scripts/distribute-wallet.sh +0 -105
  185. data/fixtures/scripts/print-helps.sh +0 -27
  186. data/fixtures/scripts/pull-on-start.sh +0 -52
  187. data/fixtures/scripts/push-and-pull.sh +0 -63
  188. data/fixtures/scripts/redeploy-on-upgrade.sh +0 -56
  189. data/fixtures/scripts/spread-wallets.sh +0 -72
  190. data/lib/zold/log.rb +0 -139
  191. data/renovate.json +0 -6
  192. data/test/commands/routines/test_audit.rb +0 -41
  193. data/test/commands/routines/test_gc.rb +0 -70
  194. data/test/commands/routines/test_reconcile.rb +0 -51
  195. data/test/commands/routines/test_reconnect.rb +0 -46
  196. data/test/commands/routines/test_retire.rb +0 -40
  197. data/test/commands/test_alias.rb +0 -76
  198. data/test/commands/test_calculate.rb +0 -40
  199. data/test/commands/test_clean.rb +0 -73
  200. data/test/commands/test_create.rb +0 -50
  201. data/test/commands/test_diff.rb +0 -61
  202. data/test/commands/test_fetch.rb +0 -162
  203. data/test/commands/test_invoice.rb +0 -50
  204. data/test/commands/test_list.rb +0 -47
  205. data/test/commands/test_merge.rb +0 -129
  206. data/test/commands/test_node.rb +0 -68
  207. data/test/commands/test_pay.rb +0 -221
  208. data/test/commands/test_propagate.rb +0 -51
  209. data/test/commands/test_pull.rb +0 -70
  210. data/test/commands/test_push.rb +0 -93
  211. data/test/commands/test_remote.rb +0 -265
  212. data/test/commands/test_remove.rb +0 -66
  213. data/test/commands/test_show.rb +0 -48
  214. data/test/commands/test_taxes.rb +0 -76
  215. data/test/fake_home.rb +0 -104
  216. data/test/node/fake_entrance.rb +0 -43
  217. data/test/node/fake_node.rb +0 -105
  218. data/test/node/test_async_entrance.rb +0 -103
  219. data/test/node/test_entrance.rb +0 -82
  220. data/test/node/test_farm.rb +0 -177
  221. data/test/node/test_farmers.rb +0 -76
  222. data/test/node/test_front.rb +0 -399
  223. data/test/node/test_nodup_entrance.rb +0 -49
  224. data/test/node/test_nospam_entrance.rb +0 -49
  225. data/test/node/test_safe_entrance.rb +0 -59
  226. data/test/node/test_spread_entrance.rb +0 -67
  227. data/test/node/test_sync_entrance.rb +0 -41
  228. data/test/node/test_trace.rb +0 -36
  229. data/test/test__helper.rb +0 -112
  230. data/test/test_age.rb +0 -55
  231. data/test/test_amount.rb +0 -81
  232. data/test/test_cached_wallets.rb +0 -73
  233. data/test/test_copies.rb +0 -145
  234. data/test/test_dir_items.rb +0 -90
  235. data/test/test_gem.rb +0 -41
  236. data/test/test_hands.rb +0 -69
  237. data/test/test_hexnum.rb +0 -36
  238. data/test/test_http.rb +0 -225
  239. data/test/test_hungry_wallets.rb +0 -90
  240. data/test/test_id.rb +0 -79
  241. data/test/test_json_page.rb +0 -47
  242. data/test/test_key.rb +0 -99
  243. data/test/test_log.rb +0 -49
  244. data/test/test_metronome.rb +0 -89
  245. data/test/test_patch.rb +0 -178
  246. data/test/test_prefixes.rb +0 -49
  247. data/test/test_remotes.rb +0 -319
  248. data/test/test_signature.rb +0 -49
  249. data/test/test_size.rb +0 -39
  250. data/test/test_sync_wallets.rb +0 -57
  251. data/test/test_tax.rb +0 -171
  252. data/test/test_thread_pool.rb +0 -89
  253. data/test/test_tree_wallets.rb +0 -83
  254. data/test/test_txn.rb +0 -89
  255. data/test/test_upgrades.rb +0 -99
  256. data/test/test_verbose_thread.rb +0 -55
  257. data/test/test_version.rb +0 -35
  258. data/test/test_wallet.rb +0 -318
  259. data/test/test_wallets.rb +0 -85
  260. data/test/test_zold.rb +0 -99
  261. data/test/upgrades/test_delete_banned_wallets.rb +0 -47
  262. data/test/upgrades/test_protocol_up.rb +0 -42
@@ -1,38 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'shellwords'
24
7
  require_relative '../routines'
25
- require_relative '../../log'
8
+ require 'loog'
26
9
  require_relative '../../id'
27
10
  require_relative '../../copies'
28
11
  require_relative '../pull'
29
12
 
30
13
  # R
31
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
33
16
  # License:: MIT
34
17
  class Zold::Routines::Reconcile
35
- def initialize(opts, wallets, remotes, copies, address, log: Log::NULL)
18
+ def initialize(opts, wallets, remotes, copies, address, log: Loog::NULL)
36
19
  @opts = opts
37
20
  @wallets = wallets
38
21
  @remotes = remotes
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'shellwords'
24
7
  require_relative '../routines'
@@ -27,10 +10,10 @@ require_relative '../../node/farm'
27
10
 
28
11
  # Reconnect routine.
29
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
13
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
31
14
  # License:: MIT
32
15
  class Zold::Routines::Reconnect
33
- def initialize(opts, remotes, farm = Zold::Farm::Empty.new, log: Log::NULL)
16
+ def initialize(opts, remotes, farm = Zold::Farm::Empty.new, log: Loog::NULL)
34
17
  @opts = opts
35
18
  @remotes = remotes
36
19
  @farm = farm
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'shellwords'
24
7
  require_relative '../routines'
@@ -27,10 +10,10 @@ require_relative '../../node/farm'
27
10
 
28
11
  # Kill the node if it's too old.
29
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
13
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
31
14
  # License:: MIT
32
15
  class Zold::Routines::Retire
33
- def initialize(opts, log: Log::NULL)
16
+ def initialize(opts, log: Loog::NULL)
34
17
  @opts = opts
35
18
  @log = log
36
19
  @start = Time.now
@@ -1,38 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'shellwords'
24
7
  require_relative '../routines'
25
- require_relative '../../log'
8
+ require 'loog'
26
9
  require_relative '../../id'
27
10
  require_relative '../../copies'
28
11
  require_relative '../push'
29
12
 
30
13
  # Spread random wallets to the network.
31
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
33
16
  # License:: MIT
34
17
  class Zold::Routines::Spread
35
- def initialize(opts, wallets, remotes, copies, log: Log::NULL)
18
+ def initialize(opts, wallets, remotes, copies, log: Loog::NULL)
36
19
  @opts = opts
37
20
  @wallets = wallets
38
21
  @remotes = remotes
@@ -1,28 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  # Routines.
24
7
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
25
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
8
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
26
9
  # License:: MIT
27
10
  module Zold::Routines
28
11
  end
@@ -1,30 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'slop'
24
7
  require 'rainbow'
25
8
  require_relative 'thread_badge'
26
9
  require_relative 'args'
27
- require_relative '../log'
10
+ require 'loog'
28
11
  require_relative '../id'
29
12
  require_relative '../amount'
30
13
  require_relative '../wallet'
@@ -34,14 +17,14 @@ require_relative '../age'
34
17
 
35
18
  # SHOW command.
36
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
37
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
20
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
38
21
  # License:: MIT
39
22
  module Zold
40
23
  # Show command
41
24
  class Show
42
25
  prepend ThreadBadge
43
26
 
44
- def initialize(wallets:, copies:, log: Log::NULL)
27
+ def initialize(wallets:, copies:, log: Loog::NULL)
45
28
  @wallets = wallets
46
29
  @copies = copies
47
30
  @log = log
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'slop'
24
7
  require 'json'
@@ -27,7 +10,7 @@ require 'zold/score'
27
10
  require_relative 'thread_badge'
28
11
  require_relative 'args'
29
12
  require_relative 'pay'
30
- require_relative '../log'
13
+ require 'loog'
31
14
  require_relative '../json_page'
32
15
  require_relative '../id'
33
16
  require_relative '../tax'
@@ -35,7 +18,7 @@ require_relative '../http'
35
18
 
36
19
  # Zold module.
37
20
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
38
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
21
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
39
22
  # License:: MIT
40
23
  module Zold
41
24
  # Taxes command.
@@ -54,7 +37,7 @@ module Zold
54
37
  class Taxes
55
38
  prepend ThreadBadge
56
39
 
57
- def initialize(wallets:, remotes:, log: Log::NULL)
40
+ def initialize(wallets:, remotes:, log: Loog::NULL)
58
41
  @wallets = wallets
59
42
  @remotes = remotes
60
43
  @log = log
@@ -1,28 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  # Thread badge.
24
7
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
25
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
8
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
26
9
  # License:: MIT
27
10
  module Zold
28
11
  # This module should be included in each command, in order to label
data/lib/zold/copies.rb CHANGED
@@ -1,38 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'time'
24
7
  require 'openssl'
25
8
  require 'csv'
26
9
  require 'futex'
27
10
  require 'backtrace'
28
- require_relative 'log'
11
+ require 'loog'
29
12
  require_relative 'size'
30
13
  require_relative 'wallet'
31
14
  require_relative 'dir_items'
32
15
 
33
16
  # The list of copies.
34
17
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
35
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
18
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
36
19
  # License:: MIT
37
20
  module Zold
38
21
  # All copies
@@ -40,7 +23,7 @@ module Zold
40
23
  # Extension for copy files
41
24
  EXT = '.zc'
42
25
 
43
- def initialize(dir, log: Log::NULL)
26
+ def initialize(dir, log: Loog::NULL)
44
27
  @dir = dir
45
28
  @log = log
46
29
  end
@@ -150,9 +133,7 @@ module Zold
150
133
  path: File.join(@dir, "#{name}#{Copies::EXT}"),
151
134
  total: scores.count,
152
135
  master: scores.any? { |s| s[:master] },
153
- score: scores.select { |s| s[:time] > Time.now - (24 * 60 * 60) }
154
- .map { |s| s[:score] }
155
- .inject(&:+) || 0
136
+ score: scores.select { |s| s[:time] > Time.now - (24 * 60 * 60) }.sum { |s| s[:score] } || 0
156
137
  }
157
138
  end.select { |c| File.exist?(c[:path]) }
158
139
  if masters_first
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'shellwords'
24
7
 
@@ -29,7 +12,7 @@ require 'shellwords'
29
12
  # More: https://stackoverflow.com/questions/52987672/
30
13
  #
31
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
15
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
33
16
  # License:: MIT
34
17
  module Zold
35
18
  # Items in a dir
data/lib/zold/endless.rb CHANGED
@@ -1,37 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
- require_relative 'log'
6
+ require 'loog'
24
7
  require_relative 'verbose_thread'
25
8
  require_relative 'age'
26
9
 
27
10
  # Endless loop.
28
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
12
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
30
13
  # License:: MIT
31
14
  module Zold
32
15
  # Endless loop
33
16
  class Endless
34
- def initialize(title, log: Log::NULL)
17
+ def initialize(title, log: Loog::NULL)
35
18
  @title = title
36
19
  @log = log
37
20
  end
data/lib/zold/gem.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'uri'
24
7
  require 'zold/score'
@@ -27,7 +10,7 @@ require_relative 'http'
27
10
 
28
11
  # Class representing the Zold gem on Rubygems
29
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
13
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
31
14
  # License:: MIT
32
15
  module Zold
33
16
  # Gem
data/lib/zold/hands.rb CHANGED
@@ -1,34 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require 'concurrent'
24
7
  require 'total'
25
8
  require_relative 'thread_pool'
26
- require_relative 'log'
9
+ require 'loog'
27
10
  require_relative 'endless'
28
11
 
29
12
  # Multiple threads that can do something useful together.
30
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
14
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
32
15
  # License:: MIT
33
16
  module Zold
34
17
  # Hands
@@ -49,7 +32,7 @@ module Zold
49
32
  end
50
33
 
51
34
  # Start
52
- def self.start(max = Hands.threshold, log: Log::NULL)
35
+ def self.start(max = Hands.threshold, log: Loog::NULL)
53
36
  while POOL.count < max
54
37
  POOL.add do
55
38
  Endless.new('hands').run do
@@ -66,7 +49,7 @@ module Zold
66
49
  end
67
50
 
68
51
  # Run this code in many threads
69
- def self.exec(threads, set = (0..threads - 1).to_a, &block)
52
+ def self.exec(threads, set = (0..(threads - 1)).to_a, &block)
70
53
  raise 'The thread pool is empty' if POOL.empty?
71
54
  raise "Number of threads #{threads} has to be positive" unless threads.positive?
72
55
  list = set.dup
data/lib/zold/head.rb CHANGED
@@ -1,30 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  require_relative 'txn'
24
7
 
25
8
  # Head of a wallet.
26
9
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
27
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
10
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
28
11
  # License:: MIT
29
12
  module Zold
30
13
  # Head of the wallet.
@@ -53,7 +36,7 @@ module Zold
53
36
 
54
37
  # Cached head.
55
38
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
56
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
39
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
57
40
  # License:: MIT
58
41
  class CachedHead
59
42
  def initialize(head)
data/lib/zold/hexnum.rb CHANGED
@@ -1,29 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2018-2024 Zerocracy
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the 'Software'), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in all
13
- # copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
3
+ # SPDX-FileCopyrightText: Copyright (c) 2018-2025 Zerocracy
4
+ # SPDX-License-Identifier: MIT
22
5
 
23
6
  # Hex num.
24
7
  #
25
8
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
26
- # Copyright:: Copyright (c) 2018-2024 Zerocracy
9
+ # Copyright:: Copyright (c) 2018-2025 Zerocracy
27
10
  # License:: MIT
28
11
  module Zold
29
12
  # A hex num