zold 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/bin/zold +21 -81
  4. data/fixtures/keys/1.pub +1 -0
  5. data/fixtures/keys/2 +51 -0
  6. data/fixtures/keys/2.pub +1 -0
  7. data/fixtures/scripts/print-helps.sh +15 -0
  8. data/fixtures/scripts/push-and-pull.sh +7 -3
  9. data/lib/zold/commands/clean.rb +24 -7
  10. data/lib/zold/commands/create.rb +16 -4
  11. data/lib/zold/commands/diff.rb +32 -9
  12. data/lib/zold/commands/fetch.rb +36 -9
  13. data/lib/zold/commands/invoice.rb +64 -0
  14. data/lib/zold/commands/list.rb +1 -1
  15. data/lib/zold/commands/merge.rb +31 -10
  16. data/lib/zold/commands/node.rb +6 -2
  17. data/lib/zold/commands/pay.rb +40 -17
  18. data/lib/zold/commands/propagate.rb +34 -14
  19. data/lib/zold/commands/push.rb +27 -9
  20. data/lib/zold/commands/remote.rb +63 -34
  21. data/lib/zold/commands/show.rb +34 -9
  22. data/lib/zold/copies.rb +4 -0
  23. data/lib/zold/http.rb +1 -1
  24. data/lib/zold/key.rb +17 -11
  25. data/lib/zold/node/farm.rb +8 -0
  26. data/lib/zold/node/front.rb +13 -3
  27. data/lib/zold/patch.rb +8 -8
  28. data/lib/zold/prefixes.rb +53 -0
  29. data/lib/zold/remotes.rb +6 -0
  30. data/lib/zold/score.rb +4 -4
  31. data/lib/zold/signature.rb +9 -9
  32. data/lib/zold/txn.rb +111 -0
  33. data/lib/zold/version.rb +1 -1
  34. data/lib/zold/wallet.rb +32 -59
  35. data/lib/zold/wallets.rb +2 -2
  36. data/test/commands/test_clean.rb +5 -4
  37. data/test/commands/test_create.rb +3 -3
  38. data/test/commands/test_diff.rb +16 -15
  39. data/test/commands/test_fetch.rb +13 -11
  40. data/test/commands/test_invoice.rb +46 -0
  41. data/test/commands/test_list.rb +4 -4
  42. data/test/commands/test_merge.rb +21 -22
  43. data/test/commands/test_node.rb +9 -9
  44. data/test/commands/test_pay.rb +12 -12
  45. data/test/commands/test_remote.rb +11 -11
  46. data/test/commands/test_show.rb +9 -7
  47. data/test/node/fake_node.rb +3 -3
  48. data/test/node/test_farm.rb +1 -1
  49. data/test/node/test_front.rb +6 -6
  50. data/test/test_amount.rb +1 -1
  51. data/test/test_copies.rb +1 -1
  52. data/test/test_http.rb +1 -1
  53. data/test/test_id.rb +1 -1
  54. data/test/test_key.rb +19 -1
  55. data/test/test_patch.rb +11 -11
  56. data/test/test_prefixes.rb +46 -0
  57. data/test/test_remotes.rb +1 -1
  58. data/test/test_score.rb +1 -1
  59. data/test/test_signature.rb +9 -11
  60. data/test/test_wallet.rb +22 -21
  61. data/test/test_wallets.rb +4 -4
  62. metadata +12 -1
@@ -20,11 +20,11 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../../lib/zold/wallet.rb'
24
- require_relative '../../lib/zold/amount.rb'
25
- require_relative '../../lib/zold/key.rb'
26
- require_relative '../../lib/zold/id.rb'
27
- require_relative '../../lib/zold/commands/pay.rb'
23
+ require_relative '../../lib/zold/wallets'
24
+ require_relative '../../lib/zold/amount'
25
+ require_relative '../../lib/zold/key'
26
+ require_relative '../../lib/zold/id'
27
+ require_relative '../../lib/zold/commands/pay'
28
28
 
29
29
  # PAY test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -33,17 +33,17 @@ require_relative '../../lib/zold/commands/pay.rb'
33
33
  class TestPay < Minitest::Test
34
34
  def test_sends_from_wallet_to_wallet
35
35
  Dir.mktmpdir 'test' do |dir|
36
- source = Zold::Wallet.new(File.join(dir, 'source'))
37
- source.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
36
+ id = Zold::Id.new
37
+ wallets = Zold::Wallets.new(dir)
38
+ source = wallets.find(id)
39
+ source.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
38
40
  target = Zold::Id.new
39
41
  amount = Zold::Amount.new(zld: 14.95)
40
42
  Zold::Pay.new(
41
- payer: source,
42
- receiver: target,
43
- amount: amount,
43
+ wallets: wallets,
44
44
  pvtkey: Zold::Key.new(file: 'fixtures/id_rsa')
45
- ).run(['--force'])
46
- assert source.balance == amount.mul(-1)
45
+ ).run(['--force', id.to_s, target.to_s, amount.to_zld, 'For the car'])
46
+ assert_equal(amount.mul(-1), source.balance)
47
47
  end
48
48
  end
49
49
  end
@@ -21,11 +21,11 @@
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
23
  require 'webmock/minitest'
24
- require_relative '../../lib/zold/wallets.rb'
25
- require_relative '../../lib/zold/remotes.rb'
26
- require_relative '../../lib/zold/key.rb'
27
- require_relative '../../lib/zold/score.rb'
28
- require_relative '../../lib/zold/commands/remote.rb'
24
+ require_relative '../../lib/zold/wallets'
25
+ require_relative '../../lib/zold/remotes'
26
+ require_relative '../../lib/zold/key'
27
+ require_relative '../../lib/zold/score'
28
+ require_relative '../../lib/zold/commands/remote'
29
29
 
30
30
  # REMOTE test.
31
31
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -35,9 +35,6 @@ class TestRemote < Minitest::Test
35
35
  def test_updates_remote
36
36
  Dir.mktmpdir 'test' do |dir|
37
37
  remotes = Zold::Remotes.new(File.join(dir, 'a/b/c/remotes'))
38
- cmd = Zold::Remote.new(remotes: remotes)
39
- cmd.run(['clean'])
40
- cmd.run(%w[add localhost 1])
41
38
  stub_request(:get, 'http://localhost:1/remotes').to_return(
42
39
  status: 200,
43
40
  body: {
@@ -48,12 +45,15 @@ class TestRemote < Minitest::Test
48
45
  ]
49
46
  }.to_json
50
47
  )
51
- cmd.run(%w[add localhost 2])
52
48
  stub_request(:get, 'http://localhost:2/remotes').to_return(
53
49
  status: 404
54
50
  )
55
- assert_equal(remotes.all.count, 2)
56
- cmd.run(['update'])
51
+ cmd = Zold::Remote.new(remotes: remotes)
52
+ cmd.run(['clean'])
53
+ cmd.run(%w[add localhost 1])
54
+ cmd.run(%w[add localhost 2])
55
+ assert_equal(2, remotes.all.count)
56
+ cmd.run(['update', '--ignore-score-weakness'])
57
57
  assert_equal(3, remotes.all.count)
58
58
  end
59
59
  end
@@ -20,10 +20,11 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../../lib/zold/wallet.rb'
24
- require_relative '../../lib/zold/key.rb'
25
- require_relative '../../lib/zold/id.rb'
26
- require_relative '../../lib/zold/commands/show.rb'
23
+ require_relative '../../lib/zold/wallets'
24
+ require_relative '../../lib/zold/wallet'
25
+ require_relative '../../lib/zold/key'
26
+ require_relative '../../lib/zold/id'
27
+ require_relative '../../lib/zold/commands/show'
27
28
 
28
29
  # SHOW test.
29
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -33,10 +34,11 @@ class TestShow < Minitest::Test
33
34
  def test_checks_wallet_balance
34
35
  Dir.mktmpdir 'test' do |dir|
35
36
  id = Zold::Id.new
36
- wallet = Zold::Wallets.new(dir).find(id)
37
+ wallets = Zold::Wallets.new(dir)
38
+ wallet = wallets.find(id)
37
39
  wallet.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
38
- balance = Zold::Show.new(wallet: wallet).run
39
- assert balance == Zold::Amount::ZERO
40
+ balance = Zold::Show.new(wallets: wallets).run([id.to_s])
41
+ assert_equal(Zold::Amount::ZERO, balance)
40
42
  end
41
43
  end
42
44
  end
@@ -20,9 +20,9 @@
20
20
 
21
21
  require 'tmpdir'
22
22
  require 'webmock/minitest'
23
- require_relative '../../lib/zold/log.rb'
24
- require_relative '../../lib/zold/http.rb'
25
- require_relative '../../lib/zold/commands/node.rb'
23
+ require_relative '../../lib/zold/log'
24
+ require_relative '../../lib/zold/http'
25
+ require_relative '../../lib/zold/commands/node'
26
26
 
27
27
  # Fake node.
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -21,7 +21,7 @@
21
21
  require 'minitest/autorun'
22
22
  require 'rack/test'
23
23
  require 'tmpdir'
24
- require_relative '../../lib/zold/node/farm.rb'
24
+ require_relative '../../lib/zold/node/farm'
25
25
 
26
26
  class FarmTest < Minitest::Test
27
27
  def test_makes_best_score_in_background
@@ -20,12 +20,12 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../../lib/zold/key.rb'
24
- require_relative '../../lib/zold/id.rb'
25
- require_relative '../../lib/zold/amount.rb'
26
- require_relative '../../lib/zold/wallet.rb'
27
- require_relative '../../lib/zold/http.rb'
28
- require_relative 'fake_node.rb'
23
+ require_relative '../../lib/zold/key'
24
+ require_relative '../../lib/zold/id'
25
+ require_relative '../../lib/zold/amount'
26
+ require_relative '../../lib/zold/wallet'
27
+ require_relative '../../lib/zold/http'
28
+ require_relative 'fake_node'
29
29
 
30
30
  class FrontTest < Minitest::Test
31
31
  def test_renders_public_pages
data/test/test_amount.rb CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/amount.rb'
23
+ require_relative '../lib/zold/amount'
24
24
 
25
25
  # Amount test.
26
26
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_copies.rb CHANGED
@@ -21,7 +21,7 @@
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
23
  require 'time'
24
- require_relative '../lib/zold/copies.rb'
24
+ require_relative '../lib/zold/copies'
25
25
 
26
26
  # Copies test.
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_http.rb CHANGED
@@ -22,7 +22,7 @@ require 'minitest/autorun'
22
22
  require 'tmpdir'
23
23
  require 'uri'
24
24
  require 'webmock/minitest'
25
- require_relative '../lib/zold/http.rb'
25
+ require_relative '../lib/zold/http'
26
26
 
27
27
  # Http test.
28
28
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_id.rb CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/id.rb'
23
+ require_relative '../lib/zold/id'
24
24
 
25
25
  # ID test.
26
26
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_key.rb CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/key.rb'
23
+ require_relative '../lib/zold/key'
24
24
 
25
25
  # Key test.
26
26
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -62,4 +62,22 @@ class TestKey < Minitest::Test
62
62
  assert(pub.verify(signature, text))
63
63
  end
64
64
  end
65
+
66
+ def test_read_public_keys
67
+ Dir.new('fixtures/keys').select { |f| f =~ /\.pub$/ }.each do |f|
68
+ path = "fixtures/keys/#{f}"
69
+ pub = Zold::Key.new(file: path)
70
+ assert(pub.to_pub.length > 100)
71
+ end
72
+ end
73
+
74
+ def test_signs_with_real_keys
75
+ Dir.new('fixtures/keys').select { |f| f =~ /[0-9]+$/ }.each do |f|
76
+ pvt = Zold::Key.new(file: "fixtures/keys/#{f}")
77
+ pub = Zold::Key.new(file: "fixtures/keys/#{f}.pub")
78
+ text = 'How are you doing, my friend?'
79
+ signature = pvt.sign(text)
80
+ assert(pub.verify(signature, text))
81
+ end
82
+ end
65
83
  end
data/test/test_patch.rb CHANGED
@@ -20,11 +20,11 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/key.rb'
24
- require_relative '../lib/zold/id.rb'
25
- require_relative '../lib/zold/wallet.rb'
26
- require_relative '../lib/zold/amount.rb'
27
- require_relative '../lib/zold/patch.rb'
23
+ require_relative '../lib/zold/key'
24
+ require_relative '../lib/zold/id'
25
+ require_relative '../lib/zold/wallet'
26
+ require_relative '../lib/zold/amount'
27
+ require_relative '../lib/zold/patch'
28
28
 
29
29
  # Patch test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -40,13 +40,13 @@ class TestPatch < Minitest::Test
40
40
  third = Zold::Wallet.new(File.join(dir, 'third'))
41
41
  first.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
42
42
  File.write(second.path, File.read(first.path))
43
- first.sub(Zold::Amount.new(zld: 39), Zold::Id.new, key)
44
- first.sub(Zold::Amount.new(zld: 11), Zold::Id.new, key)
45
- first.sub(Zold::Amount.new(zld: 3), Zold::Id.new, key)
46
- second.sub(Zold::Amount.new(zld: 44), Zold::Id.new, key)
43
+ first.sub(Zold::Amount.new(zld: 39), "NOPREFIX@#{Zold::Id.new}", key)
44
+ first.sub(Zold::Amount.new(zld: 11), "NOPREFIX@#{Zold::Id.new}", key)
45
+ first.sub(Zold::Amount.new(zld: 3), "NOPREFIX@#{Zold::Id.new}", key)
46
+ second.sub(Zold::Amount.new(zld: 44), "NOPREFIX@#{Zold::Id.new}", key)
47
47
  File.write(third.path, File.read(first.path))
48
- t = third.sub(Zold::Amount.new(zld: 10), Zold::Id.new, key)
49
- third.add(t)
48
+ t = third.sub(Zold::Amount.new(zld: 10), "NOPREFIX@#{Zold::Id.new}", key)
49
+ third.add(t.inverse(id))
50
50
  patch = Zold::Patch.new
51
51
  patch.start(first)
52
52
  patch.join(second)
@@ -0,0 +1,46 @@
1
+ # Copyright (c) 2018 Yegor Bugayenko
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all
11
+ # copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ require 'minitest/autorun'
22
+ require 'tmpdir'
23
+ require_relative '../lib/zold/key'
24
+ require_relative '../lib/zold/id'
25
+ require_relative '../lib/zold/wallet'
26
+ require_relative '../lib/zold/prefixes'
27
+
28
+ # Prefixes test.
29
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
+ # Copyright:: Copyright (c) 2018 Yegor Bugayenko
31
+ # License:: MIT
32
+ class TestPrefixes < Minitest::Test
33
+ def test_creates_and_validates
34
+ Dir.mktmpdir 'test' do |dir|
35
+ id = Zold::Id.new
36
+ wallet = Zold::Wallet.new(File.join(dir, id.to_s))
37
+ wallet.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
38
+ prefixes = Zold::Prefixes.new(wallet)
39
+ (8..32).each do |len|
40
+ prefix = prefixes.create(len)
41
+ assert_equal(len, prefix.length)
42
+ assert(prefixes.valid?(prefix))
43
+ end
44
+ end
45
+ end
46
+ end
data/test/test_remotes.rb CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/remotes.rb'
23
+ require_relative '../lib/zold/remotes'
24
24
 
25
25
  # Remotes test.
26
26
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_score.rb CHANGED
@@ -21,7 +21,7 @@
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
23
  require 'time'
24
- require_relative '../lib/zold/score.rb'
24
+ require_relative '../lib/zold/score'
25
25
 
26
26
  # Score test.
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -20,10 +20,10 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/key.rb'
24
- require_relative '../lib/zold/id.rb'
25
- require_relative '../lib/zold/amount.rb'
26
- require_relative '../lib/zold/signature.rb'
23
+ require_relative '../lib/zold/key'
24
+ require_relative '../lib/zold/id'
25
+ require_relative '../lib/zold/amount'
26
+ require_relative '../lib/zold/signature'
27
27
 
28
28
  # Signature test.
29
29
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -33,13 +33,11 @@ class TestSignature < Minitest::Test
33
33
  def test_signs_and_validates
34
34
  pvt = Zold::Key.new(file: 'fixtures/id_rsa')
35
35
  pub = Zold::Key.new(file: 'fixtures/id_rsa.pub')
36
- txn = {
37
- id: 123,
38
- details: 'How are you?',
39
- bnf: Zold::Id.new.to_s,
40
- amount: Zold::Amount.new(zld: 14.95)
41
- }
42
- txn[:sign] = Zold::Signature.new.sign(pvt, txn)
36
+ txn = Zold::Txn.new(
37
+ 123, Time.now, Zold::Amount.new(zld: 14.95),
38
+ 'NOPREFIX', Zold::Id.new, '-'
39
+ )
40
+ txn = txn.signed(pvt)
43
41
  assert(Zold::Signature.new.valid?(pub, txn))
44
42
  end
45
43
  end
data/test/test_wallet.rb CHANGED
@@ -20,11 +20,12 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/key.rb'
24
- require_relative '../lib/zold/id.rb'
25
- require_relative '../lib/zold/wallet.rb'
26
- require_relative '../lib/zold/amount.rb'
27
- require_relative '../lib/zold/commands/pay.rb'
23
+ require_relative '../lib/zold/key'
24
+ require_relative '../lib/zold/id'
25
+ require_relative '../lib/zold/wallet'
26
+ require_relative '../lib/zold/txn'
27
+ require_relative '../lib/zold/amount'
28
+ require_relative '../lib/zold/commands/pay'
28
29
 
29
30
  # Wallet test.
30
31
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -36,9 +37,9 @@ class TestWallet < Minitest::Test
36
37
  wallet = wallet(dir)
37
38
  amount = Zold::Amount.new(zld: 39.99)
38
39
  key = Zold::Key.new(file: 'fixtures/id_rsa')
39
- wallet.sub(amount, Zold::Id.new, key)
40
- wallet.sub(amount, Zold::Id.new, key)
41
- wallet.sub(amount, Zold::Id.new, key)
40
+ wallet.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
41
+ wallet.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
42
+ wallet.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
42
43
  assert(
43
44
  wallet.balance == amount.mul(-3),
44
45
  "#{wallet.balance} is not equal to #{amount.mul(-3)}"
@@ -51,15 +52,15 @@ class TestWallet < Minitest::Test
51
52
  wallet = wallet(dir)
52
53
  amount = Zold::Amount.new(zld: 39.99)
53
54
  key = Zold::Key.new(file: 'fixtures/id_rsa')
54
- txn = wallet.sub(amount, Zold::Id.new, key)
55
- wallet.add(txn)
56
- assert(!Zold::Wallet.new(wallet.path).txns[0][:sign].end_with?("\n"))
55
+ txn = wallet.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
56
+ wallet.add(txn.inverse(wallet.id))
57
+ assert(!Zold::Wallet.new(wallet.path).txns[0].sign.end_with?("\n"))
57
58
  end
58
59
  end
59
60
 
60
61
  def test_initializes_it
61
62
  Dir.mktmpdir 'test' do |dir|
62
- pkey = Zold::Key.new(file: 'fixtures/id_rsa.pub')
63
+ pkey = Zold::Key.new(file: File.join(Dir.pwd, 'fixtures/id_rsa.pub'))
63
64
  Dir.chdir(dir) do
64
65
  file = File.join(dir, 'source')
65
66
  wallet = Zold::Wallet.new(file)
@@ -77,20 +78,20 @@ class TestWallet < Minitest::Test
77
78
  Dir.mktmpdir 'test' do |dir|
78
79
  wallet = wallet(dir)
79
80
  wallet.add(
80
- id: 1,
81
- date: Time.now, amount: Zold::Amount.new(zld: 39.99),
82
- bnf: Zold::Id.new,
83
- details: '-'
81
+ Zold::Txn.new(
82
+ 1, Time.now, Zold::Amount.new(zld: 39.99),
83
+ 'NOPREFIX', Zold::Id.new, '-'
84
+ )
84
85
  )
85
86
  wallet.add(
86
- id: 2,
87
- date: Time.now, amount: Zold::Amount.new(zld: 14.95),
88
- bnf: Zold::Id.new,
89
- details: '-'
87
+ Zold::Txn.new(
88
+ 2, Time.now, Zold::Amount.new(zld: 14.95),
89
+ 'NOPREFIX', Zold::Id.new, '-'
90
+ )
90
91
  )
91
92
  sum = Zold::Amount::ZERO
92
93
  wallet.income do |t|
93
- sum += t[:amount]
94
+ sum += t.amount
94
95
  end
95
96
  assert(
96
97
  sum == Zold::Amount.new(coins: 921_740_246),
data/test/test_wallets.rb CHANGED
@@ -20,10 +20,10 @@
20
20
 
21
21
  require 'minitest/autorun'
22
22
  require 'tmpdir'
23
- require_relative '../lib/zold/key.rb'
24
- require_relative '../lib/zold/id.rb'
25
- require_relative '../lib/zold/wallets.rb'
26
- require_relative '../lib/zold/amount.rb'
23
+ require_relative '../lib/zold/key'
24
+ require_relative '../lib/zold/id'
25
+ require_relative '../lib/zold/wallets'
26
+ require_relative '../lib/zold/amount'
27
27
 
28
28
  # Wallets test.
29
29
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -254,6 +254,10 @@ files:
254
254
  - features/support/env.rb
255
255
  - fixtures/id_rsa
256
256
  - fixtures/id_rsa.pub
257
+ - fixtures/keys/1.pub
258
+ - fixtures/keys/2
259
+ - fixtures/keys/2.pub
260
+ - fixtures/scripts/print-helps.sh
257
261
  - fixtures/scripts/push-and-pull.sh
258
262
  - lib/zold.rb
259
263
  - lib/zold/amount.rb
@@ -261,6 +265,7 @@ files:
261
265
  - lib/zold/commands/create.rb
262
266
  - lib/zold/commands/diff.rb
263
267
  - lib/zold/commands/fetch.rb
268
+ - lib/zold/commands/invoice.rb
264
269
  - lib/zold/commands/list.rb
265
270
  - lib/zold/commands/merge.rb
266
271
  - lib/zold/commands/node.rb
@@ -277,9 +282,11 @@ files:
277
282
  - lib/zold/node/farm.rb
278
283
  - lib/zold/node/front.rb
279
284
  - lib/zold/patch.rb
285
+ - lib/zold/prefixes.rb
280
286
  - lib/zold/remotes.rb
281
287
  - lib/zold/score.rb
282
288
  - lib/zold/signature.rb
289
+ - lib/zold/txn.rb
283
290
  - lib/zold/version.rb
284
291
  - lib/zold/wallet.rb
285
292
  - lib/zold/wallets.rb
@@ -288,6 +295,7 @@ files:
288
295
  - test/commands/test_create.rb
289
296
  - test/commands/test_diff.rb
290
297
  - test/commands/test_fetch.rb
298
+ - test/commands/test_invoice.rb
291
299
  - test/commands/test_list.rb
292
300
  - test/commands/test_merge.rb
293
301
  - test/commands/test_node.rb
@@ -304,6 +312,7 @@ files:
304
312
  - test/test_id.rb
305
313
  - test/test_key.rb
306
314
  - test/test_patch.rb
315
+ - test/test_prefixes.rb
307
316
  - test/test_remotes.rb
308
317
  - test/test_score.rb
309
318
  - test/test_signature.rb
@@ -345,6 +354,7 @@ test_files:
345
354
  - test/commands/test_create.rb
346
355
  - test/commands/test_diff.rb
347
356
  - test/commands/test_fetch.rb
357
+ - test/commands/test_invoice.rb
348
358
  - test/commands/test_list.rb
349
359
  - test/commands/test_merge.rb
350
360
  - test/commands/test_node.rb
@@ -361,6 +371,7 @@ test_files:
361
371
  - test/test_id.rb
362
372
  - test/test_key.rb
363
373
  - test/test_patch.rb
374
+ - test/test_prefixes.rb
364
375
  - test/test_remotes.rb
365
376
  - test/test_score.rb
366
377
  - test/test_signature.rb