zold 0.2 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/bin/zold +21 -81
- data/fixtures/keys/1.pub +1 -0
- data/fixtures/keys/2 +51 -0
- data/fixtures/keys/2.pub +1 -0
- data/fixtures/scripts/print-helps.sh +15 -0
- data/fixtures/scripts/push-and-pull.sh +7 -3
- data/lib/zold/commands/clean.rb +24 -7
- data/lib/zold/commands/create.rb +16 -4
- data/lib/zold/commands/diff.rb +32 -9
- data/lib/zold/commands/fetch.rb +36 -9
- data/lib/zold/commands/invoice.rb +64 -0
- data/lib/zold/commands/list.rb +1 -1
- data/lib/zold/commands/merge.rb +31 -10
- data/lib/zold/commands/node.rb +6 -2
- data/lib/zold/commands/pay.rb +40 -17
- data/lib/zold/commands/propagate.rb +34 -14
- data/lib/zold/commands/push.rb +27 -9
- data/lib/zold/commands/remote.rb +63 -34
- data/lib/zold/commands/show.rb +34 -9
- data/lib/zold/copies.rb +4 -0
- data/lib/zold/http.rb +1 -1
- data/lib/zold/key.rb +17 -11
- data/lib/zold/node/farm.rb +8 -0
- data/lib/zold/node/front.rb +13 -3
- data/lib/zold/patch.rb +8 -8
- data/lib/zold/prefixes.rb +53 -0
- data/lib/zold/remotes.rb +6 -0
- data/lib/zold/score.rb +4 -4
- data/lib/zold/signature.rb +9 -9
- data/lib/zold/txn.rb +111 -0
- data/lib/zold/version.rb +1 -1
- data/lib/zold/wallet.rb +32 -59
- data/lib/zold/wallets.rb +2 -2
- data/test/commands/test_clean.rb +5 -4
- data/test/commands/test_create.rb +3 -3
- data/test/commands/test_diff.rb +16 -15
- data/test/commands/test_fetch.rb +13 -11
- data/test/commands/test_invoice.rb +46 -0
- data/test/commands/test_list.rb +4 -4
- data/test/commands/test_merge.rb +21 -22
- data/test/commands/test_node.rb +9 -9
- data/test/commands/test_pay.rb +12 -12
- data/test/commands/test_remote.rb +11 -11
- data/test/commands/test_show.rb +9 -7
- data/test/node/fake_node.rb +3 -3
- data/test/node/test_farm.rb +1 -1
- data/test/node/test_front.rb +6 -6
- data/test/test_amount.rb +1 -1
- data/test/test_copies.rb +1 -1
- data/test/test_http.rb +1 -1
- data/test/test_id.rb +1 -1
- data/test/test_key.rb +19 -1
- data/test/test_patch.rb +11 -11
- data/test/test_prefixes.rb +46 -0
- data/test/test_remotes.rb +1 -1
- data/test/test_score.rb +1 -1
- data/test/test_signature.rb +9 -11
- data/test/test_wallet.rb +22 -21
- data/test/test_wallets.rb +4 -4
- metadata +12 -1
data/test/commands/test_pay.rb
CHANGED
@@ -20,11 +20,11 @@
|
|
20
20
|
|
21
21
|
require 'minitest/autorun'
|
22
22
|
require 'tmpdir'
|
23
|
-
require_relative '../../lib/zold/
|
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
|
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
|
-
|
37
|
-
|
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
|
-
|
42
|
-
receiver: target,
|
43
|
-
amount: amount,
|
43
|
+
wallets: wallets,
|
44
44
|
pvtkey: Zold::Key.new(file: 'fixtures/id_rsa')
|
45
|
-
).run(['--force'])
|
46
|
-
|
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
|
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
|
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
|
-
|
56
|
-
cmd.run(['
|
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
|
data/test/commands/test_show.rb
CHANGED
@@ -20,10 +20,11 @@
|
|
20
20
|
|
21
21
|
require 'minitest/autorun'
|
22
22
|
require 'tmpdir'
|
23
|
-
require_relative '../../lib/zold/
|
24
|
-
require_relative '../../lib/zold/
|
25
|
-
require_relative '../../lib/zold/
|
26
|
-
require_relative '../../lib/zold/
|
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
|
-
|
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(
|
39
|
-
|
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
|
data/test/node/fake_node.rb
CHANGED
@@ -20,9 +20,9 @@
|
|
20
20
|
|
21
21
|
require 'tmpdir'
|
22
22
|
require 'webmock/minitest'
|
23
|
-
require_relative '../../lib/zold/log
|
24
|
-
require_relative '../../lib/zold/http
|
25
|
-
require_relative '../../lib/zold/commands/node
|
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)
|
data/test/node/test_farm.rb
CHANGED
data/test/node/test_front.rb
CHANGED
@@ -20,12 +20,12 @@
|
|
20
20
|
|
21
21
|
require 'minitest/autorun'
|
22
22
|
require 'tmpdir'
|
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
|
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
data/test/test_copies.rb
CHANGED
data/test/test_http.rb
CHANGED
data/test/test_id.rb
CHANGED
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
|
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
|
24
|
-
require_relative '../lib/zold/id
|
25
|
-
require_relative '../lib/zold/wallet
|
26
|
-
require_relative '../lib/zold/amount
|
27
|
-
require_relative '../lib/zold/patch
|
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
data/test/test_score.rb
CHANGED
data/test/test_signature.rb
CHANGED
@@ -20,10 +20,10 @@
|
|
20
20
|
|
21
21
|
require 'minitest/autorun'
|
22
22
|
require 'tmpdir'
|
23
|
-
require_relative '../lib/zold/key
|
24
|
-
require_relative '../lib/zold/id
|
25
|
-
require_relative '../lib/zold/amount
|
26
|
-
require_relative '../lib/zold/signature
|
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
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
24
|
-
require_relative '../lib/zold/id
|
25
|
-
require_relative '../lib/zold/wallet
|
26
|
-
require_relative '../lib/zold/
|
27
|
-
require_relative '../lib/zold/
|
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]
|
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
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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
|
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
|
24
|
-
require_relative '../lib/zold/id
|
25
|
-
require_relative '../lib/zold/wallets
|
26
|
-
require_relative '../lib/zold/amount
|
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.
|
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
|