zold 0.24.1 → 0.24.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/fixtures/merge/{into-no-wallet → into_no_wallet}/assert.rb +0 -0
  3. data/fixtures/merge/{into-no-wallet → into_no_wallet}/copies/0123456789abcdef/1.zc +0 -0
  4. data/fixtures/merge/{into-no-wallet → into_no_wallet}/copies/0123456789abcdef/scores.zc +0 -0
  5. data/fixtures/merge/into_no_wallet/opts +1 -0
  6. data/fixtures/merge/{legacy-negatives-stay → legacy_negatives_stay}/0123456789abcdef.z +0 -0
  7. data/fixtures/merge/{legacy-negatives-stay → legacy_negatives_stay}/assert.rb +0 -0
  8. data/fixtures/merge/{legacy-negatives-stay → legacy_negatives_stay}/copies/0123456789abcdef/1.zc +0 -0
  9. data/fixtures/merge/{legacy-negatives-stay → legacy_negatives_stay}/copies/0123456789abcdef/scores.zc +0 -0
  10. data/fixtures/merge/legacy_negatives_stay/opts +1 -0
  11. data/fixtures/merge/{random-expenses → random_expenses}/0000000000000000.z +0 -0
  12. data/fixtures/merge/{random-expenses → random_expenses}/0123456789abcdef.z +0 -0
  13. data/fixtures/merge/{random-expenses → random_expenses}/assert.rb +0 -0
  14. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/1.zc +0 -0
  15. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/2.zc +0 -0
  16. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/3.zc +0 -0
  17. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/4.zc +0 -0
  18. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/5.zc +0 -0
  19. data/fixtures/merge/{random-expenses → random_expenses}/copies/0123456789abcdef/scores.zc +0 -0
  20. data/fixtures/merge/random_expenses/opts +1 -0
  21. data/fixtures/merge/{simple-case → simple_case}/0000000000000000.z +0 -0
  22. data/fixtures/merge/{simple-case → simple_case}/0123456789abcdef.z +0 -0
  23. data/fixtures/merge/{simple-case → simple_case}/assert.rb +0 -0
  24. data/fixtures/merge/{simple-case → simple_case}/copies/0123456789abcdef/1.zc +0 -0
  25. data/fixtures/merge/{simple-case → simple_case}/copies/0123456789abcdef/scores.zc +0 -0
  26. data/fixtures/merge/simple_case/opts +1 -0
  27. data/fixtures/merge/unconfirmed_income/0123456789abcdef.z +4 -0
  28. data/fixtures/merge/unconfirmed_income/assert.rb +25 -0
  29. data/fixtures/merge/unconfirmed_income/copies/0123456789abcdef/1.zc +6 -0
  30. data/fixtures/merge/unconfirmed_income/copies/0123456789abcdef/scores.zc +1 -0
  31. data/fixtures/merge/unconfirmed_income/opts +1 -0
  32. data/lib/zold/id.rb +9 -1
  33. data/lib/zold/node/front.rb +9 -1
  34. data/lib/zold/patch.rb +13 -6
  35. data/lib/zold/version.rb +1 -1
  36. data/resources/banned-wallets.csv +24 -0
  37. data/resources/banned-wallets.log +36 -0
  38. data/test/commands/test_merge.rb +1 -1
  39. metadata +35 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd8af10e547ce516fb7605565eecedd43d5c2a518d20e9322bee2f487f30fe7d
4
- data.tar.gz: 6538cd38132e668880d16b4a8175f1199a576cd61d8ca55eaeb93711c8e700a6
3
+ metadata.gz: b8d740810d7c8bd0686a665d824c67cb3bc8db247689fc5c686b8bece3f66a0a
4
+ data.tar.gz: 72109b1959e05e5d10c907efa6f6604091c98bef735904d56c242adaa11c0abf
5
5
  SHA512:
6
- metadata.gz: 29ed97e7b51046c5ad3ebcdbe7576d41ed7b5b1d1b1c73ff98c2ec266f48f14d7cd005e52719b876f9acfa8f2fac3f74e07cc1b1a06bd76c02cd75148a4dba8a
7
- data.tar.gz: 79e365ba3997f36592ed4bbe2f5a89a66689aede0f6d6a62019c8ef7e76ad932283c6ad03e38007062cf28a8b4db5f6583e2e57f3df2e7070ae0698f23d0671f
6
+ metadata.gz: 97cd7c7ac22d39688eaa33bd1b4eaf08734c8d3d5c644ba5293793eccb5808ac9f4a85301b7b6bb0ad78c5bb76a077ebe5987c1838d413fdf0142106de806684
7
+ data.tar.gz: d50fd2647a8d7cdfa7f58461a224f522e21050ff0656d9428e5674cecea77bbae83712f5eb5ce70d1f704b811224e4072f66365340af94cc66af248e64581c12
@@ -0,0 +1 @@
1
+ --shallow
@@ -0,0 +1 @@
1
+ --verbose
@@ -0,0 +1 @@
1
+ --verbose
@@ -0,0 +1 @@
1
+ --verbose
@@ -0,0 +1,4 @@
1
+ test
2
+ 1
3
+ 0123456789abcdef
4
+ MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnppnkzrCreiKaHF09XKS6bO+2274+wSGo+F8KHvVrNbqear/e09r9PB/P6bFdLoMh4Xc7p/7+NSEZLeu2Eg/dBkQLEb8M/zgkT4gBDGyETW/zusYHIznX/lgf0f8qleIQIIB/3Y7QpDztkamWYTKWlnmlrcQvCVB0uRRPm4ZMcMJouKR9n7E2DpL9eolKyOwr/JY08iJOuK3HuW6tRdvE+0x7I+wDprM65OH/PoArlfO5qnIGbeXwsEGRXt0w6a/ubPpeadFjPXotE7cT1SA4YSD1tWTIVm1ZWppOE967XoDIum6tzt5KfzDNRfs9GbCfO0BL235HxbO8I9rTlVLTKcNAiEe0CWolY9HR5pMaosOgZ6PB54InJEZJs4L2b10c+IlVUX1RSnwfFYg0vy5oqrYyqt7gnipl/06YW4PKIYc7TljogsEHf9Cz/kpEKzqDtsH2LrmjMNsbWiousvNHM+MPgcuMg8ZnwLKwDy9NWdI4XLTpg6hVRJNH9erZdfAO5tg/3ub3JLeJbyNo4Bd5f/Bnr5YN/9ahZ87kSpI7v0Qk94dR4hDPjstEcghyZ9RVUoN52+h1g83cd3cIqksJd0kifMCoBmObD013RSPQqNwr9GGU2JaJEm25Vq35dy2DHAkOQpUZVT8GNg9IM4qUDV0yagTN3bZyvuLWIgufb0CAwEAAQ==
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2018-2019 Zerocracy, Inc.
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.
22
+
23
+ require_relative 'asserts'
24
+ wallet = Zold::Wallet.new('0123456789abcdef.z')
25
+ assert_equal(Zold::Amount::ZERO, wallet.balance)
@@ -0,0 +1,6 @@
1
+ test
2
+ 1
3
+ 0123456789abcdef
4
+ MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnppnkzrCreiKaHF09XKS6bO+2274+wSGo+F8KHvVrNbqear/e09r9PB/P6bFdLoMh4Xc7p/7+NSEZLeu2Eg/dBkQLEb8M/zgkT4gBDGyETW/zusYHIznX/lgf0f8qleIQIIB/3Y7QpDztkamWYTKWlnmlrcQvCVB0uRRPm4ZMcMJouKR9n7E2DpL9eolKyOwr/JY08iJOuK3HuW6tRdvE+0x7I+wDprM65OH/PoArlfO5qnIGbeXwsEGRXt0w6a/ubPpeadFjPXotE7cT1SA4YSD1tWTIVm1ZWppOE967XoDIum6tzt5KfzDNRfs9GbCfO0BL235HxbO8I9rTlVLTKcNAiEe0CWolY9HR5pMaosOgZ6PB54InJEZJs4L2b10c+IlVUX1RSnwfFYg0vy5oqrYyqt7gnipl/06YW4PKIYc7TljogsEHf9Cz/kpEKzqDtsH2LrmjMNsbWiousvNHM+MPgcuMg8ZnwLKwDy9NWdI4XLTpg6hVRJNH9erZdfAO5tg/3ub3JLeJbyNo4Bd5f/Bnr5YN/9ahZ87kSpI7v0Qk94dR4hDPjstEcghyZ9RVUoN52+h1g83cd3cIqksJd0kifMCoBmObD013RSPQqNwr9GGU2JaJEm25Vq35dy2DHAkOQpUZVT8GNg9IM4qUDV0yagTN3bZyvuLWIgufb0CAwEAAQ==
5
+
6
+ 0001;2018-06-22T07:38:23Z;0000020000000000;g6hVRJNH;0000000000000000;To help you;
@@ -0,0 +1 @@
1
+ 1,0.0.0.0,4096,50,NOW,M
@@ -0,0 +1 @@
1
+ --verbose
data/lib/zold/id.rb CHANGED
@@ -31,7 +31,15 @@ module Zold
31
31
  PTN = Regexp.new('^[0-9a-fA-F]{16}$')
32
32
  private_constant :PTN
33
33
 
34
- def initialize(id = format('%016x', rand(2**32..2**64 - 1)))
34
+ def self.generate_id
35
+ loop do
36
+ id = format('%016x', rand(2**32..2**64 - 1))
37
+ next if IO.read(File.join(__dir__, '../../resources/banned-wallets.csv')).include?("\"#{id}\"")
38
+ return id
39
+ end
40
+ end
41
+
42
+ def initialize(id = Id.generate_id)
35
43
  raise "Invalid wallet ID type: #{id.class.name}" unless id.is_a?(String)
36
44
  raise "Invalid wallet ID: #{id}" unless PTN.match?(id)
37
45
  @id = Integer("0x#{id}", 16)
@@ -355,8 +355,10 @@ this is not a normal behavior, you may want to report a bug to our GitHub reposi
355
355
 
356
356
  put %r{/wallet/(?<id>[A-Fa-f0-9]{16})/?} do
357
357
  error(404, 'PUSH is disabled with --disable-push') if settings.opts['disable-fetch']
358
+ id = Id.new(params[:id])
359
+ ban(id)
358
360
  request.body.rewind
359
- modified = settings.entrance.push(Id.new(params[:id]), request.body.read.to_s)
361
+ modified = settings.entrance.push(id, request.body.read.to_s)
360
362
  if modified.empty?
361
363
  status(304)
362
364
  return
@@ -521,9 +523,15 @@ time to stop; use --skip-oom to never quit")
521
523
  end
522
524
  end
523
525
 
526
+ def ban(id)
527
+ return unless IO.read(File.join(__dir__, '../../../resources/banned-wallets.csv')).include?("\"#{id}\"")
528
+ error(404, "The wallet #{id} is banned")
529
+ end
530
+
524
531
  def fetch(type = 'text/plain')
525
532
  error(404, 'FETCH is disabled with --disable-fetch') if settings.opts['disable-fetch']
526
533
  id = Id.new(params[:id])
534
+ ban(id)
527
535
  settings.wallets.acq(id) do |wallet|
528
536
  error(404, "Wallet ##{id} doesn't exist on the node") unless wallet.exists?
529
537
  content_type(type)
data/lib/zold/patch.rb CHANGED
@@ -58,6 +58,13 @@ module Zold
58
58
  # Joins a new wallet on top of existing patch. An attempt is made to
59
59
  # copy as many transactions from the newcoming wallet to the existing
60
60
  # set of transactions, avoiding mistakes and duplicates.
61
+ #
62
+ # A block has to be given. It will be called, if a paying wallet is absent.
63
+ # The block will have to return either TRUE or FALSE. TRUE will mean that
64
+ # the paying wallet has to be present and we just tried to pull it. If it's
65
+ # not present, it's a failure, don't accept the transaction. FALSE will mean
66
+ # that the transaction should be accepted, even if the paying wallet is
67
+ # absent.
61
68
  def join(wallet, ledger: '/dev/null')
62
69
  if @id.nil?
63
70
  @id = wallet.id
@@ -109,16 +116,16 @@ with a new one \"#{txn.to_text}\" from #{wallet.mnemo}")
109
116
  @log.debug("Payment prefix '#{txn.prefix}' doesn't match with the key of #{wallet.id}: \"#{txn.to_text}\"")
110
117
  next
111
118
  end
112
- if !@wallets.acq(txn.bnf, &:exists?) && yield(txn)
113
- unless @wallets.acq(txn.bnf, &:exists?)
119
+ unless @wallets.acq(txn.bnf, &:exists?)
120
+ if yield(txn) && !@wallets.acq(txn.bnf, &:exists?)
114
121
  @log.error("Paying wallet #{txn.bnf} file is absent even after PULL: \"#{txn.to_text}\"")
115
122
  next
116
123
  end
117
- unless @wallets.acq(txn.bnf) { |p| p.includes_negative?(txn.id, wallet.id) }
118
- @log.debug("The beneficiary #{@wallets.acq(txn.bnf, &:mnemo)} of #{@id} \
124
+ end
125
+ if @wallets.acq(txn.bnf, &:exists?) && !@wallets.acq(txn.bnf) { |p| p.includes_negative?(txn.id, wallet.id) }
126
+ @log.debug("The beneficiary #{@wallets.acq(txn.bnf, &:mnemo)} of #{@id} \
119
127
  doesn't have this transaction: \"#{txn.to_text}\"")
120
- next
121
- end
128
+ next
122
129
  end
123
130
  end
124
131
  @txns << txn
data/lib/zold/version.rb CHANGED
@@ -25,7 +25,7 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.24.1'
28
+ VERSION = '0.24.2'
29
29
  PROTOCOL = 2
30
30
  REPO = 'zold-io/zold'
31
31
  end
@@ -0,0 +1,24 @@
1
+ "0894a904d32c0ba3"
2
+ "0d8ed9bcb0573b63"
3
+ "1702251695a4fc27"
4
+ "1a88cccf77ee75b0"
5
+ "2fe7c2ec2e60b046"
6
+ "39d95edbb9a35d0a"
7
+ "49713aba31100942"
8
+ "502eaadb94d4d80c"
9
+ "5721e29e9676112b"
10
+ "6dd1d36a22e1a7f5"
11
+ "85552d69c055b247"
12
+ "8fcfc4efe9d6e8c5"
13
+ "9611e7132261e099"
14
+ "a76275aaf35abbcb"
15
+ "b6d4dbfabc826e2d"
16
+ "dfd3d50d159d2af0"
17
+ "e3001d5f031f6467"
18
+ "e71c61076cec4946"
19
+ "ea361bfd3b45840c"
20
+ "eb7b753cfa467881"
21
+ "f02da7749c5a1031"
22
+ "f18608d227b74af7"
23
+ "f5b7c9d1afe6a45d"
24
+ "ffac61007dadbd2b"
@@ -0,0 +1,36 @@
1
+ This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex 2016.5.22) 1 MAR 2019 15:42
2
+ entering extended mode
3
+ \write18 enabled.
4
+ %&-line parsing enabled.
5
+ **/Volumes/ssd2/code/zold/zold/resources/banned-wallets.csv
6
+ (/Volumes/ssd2/code/zold/zold/resources/banned-wallets.csv
7
+ LaTeX2e <2016/03/31>
8
+ Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
9
+
10
+ ! LaTeX Error: Missing \begin{document}.
11
+
12
+ See the LaTeX manual or LaTeX Companion for explanation.
13
+ Type H <return> for immediate help.
14
+ ...
15
+
16
+ l.1 0
17
+ 894a904d32c0ba3 (http://www.zold.io/ledger.html?wallet=0894a904d32c0ba3)
18
+ ?
19
+ ! Emergency stop.
20
+ ...
21
+
22
+ l.1 0
23
+ 894a904d32c0ba3 (http://www.zold.io/ledger.html?wallet=0894a904d32c0ba3)
24
+ You're in trouble here. Try typing <return> to proceed.
25
+ If that doesn't work, type X <return> to quit.
26
+
27
+
28
+ Here is how much of TeX's memory you used:
29
+ 8 strings out of 493014
30
+ 407 string characters out of 6133351
31
+ 53601 words of memory out of 5000000
32
+ 3648 multiletter control sequences out of 15000+600000
33
+ 3640 words of font info for 14 fonts, out of 8000000 for 9000
34
+ 1141 hyphenation exceptions out of 8191
35
+ 5i,0n,4p,133b,14s stack positions out of 5000i,500n,10000p,200000b,80000s
36
+ ! ==> Fatal error occurred, no output PDF file produced!
@@ -151,7 +151,7 @@ class TestMerge < Zold::Test
151
151
  copies = File.join(dir, 'copies')
152
152
  remotes = Zold::Remotes.new(file: File.join(dir, 'remotes'))
153
153
  Zold::Merge.new(wallets: wallets, remotes: remotes, copies: copies, log: test_log).run(
154
- %w[merge 0123456789abcdef --shallow]
154
+ %w[merge 0123456789abcdef] + IO.read(File.join(dir, 'opts')).split("\n")
155
155
  )
156
156
  Dir.chdir(dir) do
157
157
  require File.join(dir, 'assert.rb')
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.24.1
4
+ version: 0.24.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-25 00:00:00.000000000 Z
11
+ date: 2019-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace
@@ -571,27 +571,36 @@ files:
571
571
  - fixtures/merge/asserts.rb
572
572
  - fixtures/merge/id_rsa
573
573
  - fixtures/merge/id_rsa.pub
574
- - fixtures/merge/into-no-wallet/assert.rb
575
- - fixtures/merge/into-no-wallet/copies/0123456789abcdef/1.zc
576
- - fixtures/merge/into-no-wallet/copies/0123456789abcdef/scores.zc
577
- - fixtures/merge/legacy-negatives-stay/0123456789abcdef.z
578
- - fixtures/merge/legacy-negatives-stay/assert.rb
579
- - fixtures/merge/legacy-negatives-stay/copies/0123456789abcdef/1.zc
580
- - fixtures/merge/legacy-negatives-stay/copies/0123456789abcdef/scores.zc
581
- - fixtures/merge/random-expenses/0000000000000000.z
582
- - fixtures/merge/random-expenses/0123456789abcdef.z
583
- - fixtures/merge/random-expenses/assert.rb
584
- - fixtures/merge/random-expenses/copies/0123456789abcdef/1.zc
585
- - fixtures/merge/random-expenses/copies/0123456789abcdef/2.zc
586
- - fixtures/merge/random-expenses/copies/0123456789abcdef/3.zc
587
- - fixtures/merge/random-expenses/copies/0123456789abcdef/4.zc
588
- - fixtures/merge/random-expenses/copies/0123456789abcdef/5.zc
589
- - fixtures/merge/random-expenses/copies/0123456789abcdef/scores.zc
590
- - fixtures/merge/simple-case/0000000000000000.z
591
- - fixtures/merge/simple-case/0123456789abcdef.z
592
- - fixtures/merge/simple-case/assert.rb
593
- - fixtures/merge/simple-case/copies/0123456789abcdef/1.zc
594
- - fixtures/merge/simple-case/copies/0123456789abcdef/scores.zc
574
+ - fixtures/merge/into_no_wallet/assert.rb
575
+ - fixtures/merge/into_no_wallet/copies/0123456789abcdef/1.zc
576
+ - fixtures/merge/into_no_wallet/copies/0123456789abcdef/scores.zc
577
+ - fixtures/merge/into_no_wallet/opts
578
+ - fixtures/merge/legacy_negatives_stay/0123456789abcdef.z
579
+ - fixtures/merge/legacy_negatives_stay/assert.rb
580
+ - fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/1.zc
581
+ - fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/scores.zc
582
+ - fixtures/merge/legacy_negatives_stay/opts
583
+ - fixtures/merge/random_expenses/0000000000000000.z
584
+ - fixtures/merge/random_expenses/0123456789abcdef.z
585
+ - fixtures/merge/random_expenses/assert.rb
586
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/1.zc
587
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/2.zc
588
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/3.zc
589
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/4.zc
590
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/5.zc
591
+ - fixtures/merge/random_expenses/copies/0123456789abcdef/scores.zc
592
+ - fixtures/merge/random_expenses/opts
593
+ - fixtures/merge/simple_case/0000000000000000.z
594
+ - fixtures/merge/simple_case/0123456789abcdef.z
595
+ - fixtures/merge/simple_case/assert.rb
596
+ - fixtures/merge/simple_case/copies/0123456789abcdef/1.zc
597
+ - fixtures/merge/simple_case/copies/0123456789abcdef/scores.zc
598
+ - fixtures/merge/simple_case/opts
599
+ - fixtures/merge/unconfirmed_income/0123456789abcdef.z
600
+ - fixtures/merge/unconfirmed_income/assert.rb
601
+ - fixtures/merge/unconfirmed_income/copies/0123456789abcdef/1.zc
602
+ - fixtures/merge/unconfirmed_income/copies/0123456789abcdef/scores.zc
603
+ - fixtures/merge/unconfirmed_income/opts
595
604
  - fixtures/scripts/_head.sh
596
605
  - fixtures/scripts/calculate-scores.sh
597
606
  - fixtures/scripts/distribute-wallet.sh
@@ -672,6 +681,8 @@ files:
672
681
  - lib/zold/version_file.rb
673
682
  - lib/zold/wallet.rb
674
683
  - lib/zold/wallets.rb
684
+ - resources/banned-wallets.csv
685
+ - resources/banned-wallets.log
675
686
  - resources/masters
676
687
  - resources/root.pub
677
688
  - test/commands/routines/test_audit.rb
@@ -753,7 +764,7 @@ licenses:
753
764
  - MIT
754
765
  metadata: {}
755
766
  post_install_message: |-
756
- Thanks for installing Zold 0.24.1!
767
+ Thanks for installing Zold 0.24.2!
757
768
  Study our White Paper: https://papers.zold.io/wp.pdf
758
769
  Read our blog posts: https://blog.zold.io
759
770
  Try ZLD online wallet at: https://wts.zold.io