bitbank 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +10 -0
- data/Gemfile +7 -7
- data/Gemfile.lock +7 -7
- data/{README.rdoc → README.md} +17 -17
- data/VERSION +1 -1
- data/bitbank.gemspec +30 -25
- data/lib/bitbank/client.rb +24 -0
- data/spec/client_spec.rb +34 -3
- data/spec/fixtures/vcr_cassettes/client/block_number.yml +30 -0
- data/spec/fixtures/vcr_cassettes/client/connection_count.yml +30 -0
- data/spec/fixtures/vcr_cassettes/client/get_work_data_false.yml +30 -0
- data/spec/fixtures/vcr_cassettes/client/get_work_data_true.yml +30 -0
- metadata +44 -39
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
@@ -3,20 +3,20 @@ source 'http://rubygems.org'
|
|
3
3
|
# Example:
|
4
4
|
# gem 'activesupport', '>= 2.3.5'
|
5
5
|
|
6
|
-
gem 'rest-client', '
|
7
|
-
gem 'activesupport', '
|
8
|
-
gem 'i18n', '
|
6
|
+
gem 'rest-client', '>= 1.6.3'
|
7
|
+
gem 'activesupport', '>= 3.0.7'
|
8
|
+
gem 'i18n', '>= 0.5.0'
|
9
9
|
|
10
10
|
# Add dependencies to develop your gem here.
|
11
11
|
# Include everything needed to run rake, tests, features, etc.
|
12
12
|
group :development do
|
13
|
-
gem 'rspec', '
|
14
|
-
gem 'yard', '
|
13
|
+
gem 'rspec', '>= 2.6.0'
|
14
|
+
gem 'yard', '>= 0.6.0'
|
15
15
|
gem 'bundler', '~> 1.0.0'
|
16
16
|
gem 'jeweler', '~> 1.6.2'
|
17
17
|
gem 'webmock', '~> 1.6.4'
|
18
|
-
gem 'vcr', '
|
19
|
-
gem 'mocha', '
|
18
|
+
gem 'vcr', '>= 1.10.0'
|
19
|
+
gem 'mocha', '>= 0.9.12'
|
20
20
|
gem 'rcov', '>= 0'
|
21
21
|
gem 'fuubar', '>= 0.0.5'
|
22
22
|
gem 'autotest', '>= 4.4.6'
|
data/Gemfile.lock
CHANGED
@@ -44,16 +44,16 @@ PLATFORMS
|
|
44
44
|
ruby
|
45
45
|
|
46
46
|
DEPENDENCIES
|
47
|
-
activesupport (
|
47
|
+
activesupport (>= 3.0.7)
|
48
48
|
autotest (>= 4.4.6)
|
49
49
|
bundler (~> 1.0.0)
|
50
50
|
fuubar (>= 0.0.5)
|
51
|
-
i18n (
|
51
|
+
i18n (>= 0.5.0)
|
52
52
|
jeweler (~> 1.6.2)
|
53
|
-
mocha (
|
53
|
+
mocha (>= 0.9.12)
|
54
54
|
rcov
|
55
|
-
rest-client (
|
56
|
-
rspec (
|
57
|
-
vcr (
|
55
|
+
rest-client (>= 1.6.3)
|
56
|
+
rspec (>= 2.6.0)
|
57
|
+
vcr (>= 1.10.0)
|
58
58
|
webmock (~> 1.6.4)
|
59
|
-
yard (
|
59
|
+
yard (>= 0.6.0)
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
1
|
+
# Bitbank
|
2
2
|
|
3
3
|
An easy-to-use Ruby interface for the Bitcoind JSON-RPC API. Work in progress :).
|
4
4
|
|
5
|
-
|
5
|
+
## Getting Started
|
6
6
|
|
7
7
|
First, you need to be running bitcoind. Download and install the official client from http://bitcoin.org/
|
8
8
|
|
@@ -10,40 +10,40 @@ Next, in order for the client to respond to JSON-RPC commands, you need to enabl
|
|
10
10
|
|
11
11
|
Make sure to set the server, rpcuser, and rpcpassword options.
|
12
12
|
|
13
|
-
|
13
|
+
## Connecting
|
14
14
|
|
15
15
|
Configure the username and password to match the ones in your bitcoind config. I recommend storing these in a yaml file (see the example config.yml). Once you've done that, you can initialize the client and make requests:
|
16
16
|
|
17
|
-
|
17
|
+
client = Bitbank.new('/path/to/bitbank/config.yml')
|
18
18
|
|
19
|
-
|
19
|
+
## Accounts and Account Balances
|
20
20
|
|
21
21
|
You can have a number of different Bitcoin accounts and addresses.
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
client.accounts.each do |account|
|
24
|
+
puts "#{account.name}: #{account.balance}"
|
25
|
+
end
|
26
26
|
|
27
27
|
Or you can get the current balance for all your accounts:
|
28
28
|
|
29
|
-
|
30
|
-
|
29
|
+
client.balance
|
30
|
+
# => 10.05
|
31
31
|
|
32
|
-
|
32
|
+
## Transactions
|
33
33
|
|
34
34
|
Each account also has a list of transactions (both sent and received).
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
account.transactions.each do |transaction|
|
37
|
+
puts "[#{transaction.category}] #{transaction.address} #{transaction.amount}"
|
38
|
+
end
|
39
39
|
|
40
40
|
And of course you can send payments using the library too:
|
41
41
|
|
42
|
-
|
42
|
+
account.pay('1DSwyVqyhKKQwrdFw3jpAEqnrXEjTcTKMB', 1.0)
|
43
43
|
|
44
44
|
This would send 1 BTC to me. Which would be really awesome, if you'd like to support the continued development of the gem :).
|
45
45
|
|
46
|
-
|
46
|
+
## Contributing to Bitbank
|
47
47
|
|
48
48
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
49
49
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
@@ -53,7 +53,7 @@ This would send 1 BTC to me. Which would be really awesome, if you'd like to sup
|
|
53
53
|
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
54
54
|
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
55
55
|
|
56
|
-
|
56
|
+
## Copyright
|
57
57
|
|
58
58
|
Copyright (c) 2011 Nick Plante. See LICENSE.txt for
|
59
59
|
further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/bitbank.gemspec
CHANGED
@@ -5,25 +5,26 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bitbank}
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Nick Plante"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-04}
|
13
13
|
s.description = %q{Easy to use Ruby interface to the Bitcoind JSON-RPC API}
|
14
14
|
s.email = %q{nap@zerosum.org}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
|
-
"README.
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".autotest",
|
21
21
|
".document",
|
22
22
|
".rspec",
|
23
|
+
"CHANGELOG.md",
|
23
24
|
"Gemfile",
|
24
25
|
"Gemfile.lock",
|
25
26
|
"LICENSE.txt",
|
26
|
-
"README.
|
27
|
+
"README.md",
|
27
28
|
"Rakefile",
|
28
29
|
"VERSION",
|
29
30
|
"bitbank.gemspec",
|
@@ -44,8 +45,12 @@ Gem::Specification.new do |s|
|
|
44
45
|
"spec/fixtures/vcr_cassettes/client/balance.yml",
|
45
46
|
"spec/fixtures/vcr_cassettes/client/balance_account.yml",
|
46
47
|
"spec/fixtures/vcr_cassettes/client/block_count.yml",
|
48
|
+
"spec/fixtures/vcr_cassettes/client/block_number.yml",
|
49
|
+
"spec/fixtures/vcr_cassettes/client/connection_count.yml",
|
47
50
|
"spec/fixtures/vcr_cassettes/client/difficulty.yml",
|
48
51
|
"spec/fixtures/vcr_cassettes/client/get_work.yml",
|
52
|
+
"spec/fixtures/vcr_cassettes/client/get_work_data_false.yml",
|
53
|
+
"spec/fixtures/vcr_cassettes/client/get_work_data_true.yml",
|
49
54
|
"spec/fixtures/vcr_cassettes/client/info.yml",
|
50
55
|
"spec/fixtures/vcr_cassettes/client/new_address.yml",
|
51
56
|
"spec/fixtures/vcr_cassettes/client/transactions.yml",
|
@@ -65,45 +70,45 @@ Gem::Specification.new do |s|
|
|
65
70
|
s.specification_version = 3
|
66
71
|
|
67
72
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
68
|
-
s.add_runtime_dependency(%q<rest-client>, ["
|
69
|
-
s.add_runtime_dependency(%q<activesupport>, ["
|
70
|
-
s.add_runtime_dependency(%q<i18n>, ["
|
71
|
-
s.add_development_dependency(%q<rspec>, ["
|
72
|
-
s.add_development_dependency(%q<yard>, ["
|
73
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 1.6.3"])
|
74
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 3.0.7"])
|
75
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0.5.0"])
|
76
|
+
s.add_development_dependency(%q<rspec>, [">= 2.6.0"])
|
77
|
+
s.add_development_dependency(%q<yard>, [">= 0.6.0"])
|
73
78
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
74
79
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
75
80
|
s.add_development_dependency(%q<webmock>, ["~> 1.6.4"])
|
76
|
-
s.add_development_dependency(%q<vcr>, ["
|
77
|
-
s.add_development_dependency(%q<mocha>, ["
|
81
|
+
s.add_development_dependency(%q<vcr>, [">= 1.10.0"])
|
82
|
+
s.add_development_dependency(%q<mocha>, [">= 0.9.12"])
|
78
83
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
79
84
|
s.add_development_dependency(%q<fuubar>, [">= 0.0.5"])
|
80
85
|
s.add_development_dependency(%q<autotest>, [">= 4.4.6"])
|
81
86
|
else
|
82
|
-
s.add_dependency(%q<rest-client>, ["
|
83
|
-
s.add_dependency(%q<activesupport>, ["
|
84
|
-
s.add_dependency(%q<i18n>, ["
|
85
|
-
s.add_dependency(%q<rspec>, ["
|
86
|
-
s.add_dependency(%q<yard>, ["
|
87
|
+
s.add_dependency(%q<rest-client>, [">= 1.6.3"])
|
88
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.7"])
|
89
|
+
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
90
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
91
|
+
s.add_dependency(%q<yard>, [">= 0.6.0"])
|
87
92
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
88
93
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
89
94
|
s.add_dependency(%q<webmock>, ["~> 1.6.4"])
|
90
|
-
s.add_dependency(%q<vcr>, ["
|
91
|
-
s.add_dependency(%q<mocha>, ["
|
95
|
+
s.add_dependency(%q<vcr>, [">= 1.10.0"])
|
96
|
+
s.add_dependency(%q<mocha>, [">= 0.9.12"])
|
92
97
|
s.add_dependency(%q<rcov>, [">= 0"])
|
93
98
|
s.add_dependency(%q<fuubar>, [">= 0.0.5"])
|
94
99
|
s.add_dependency(%q<autotest>, [">= 4.4.6"])
|
95
100
|
end
|
96
101
|
else
|
97
|
-
s.add_dependency(%q<rest-client>, ["
|
98
|
-
s.add_dependency(%q<activesupport>, ["
|
99
|
-
s.add_dependency(%q<i18n>, ["
|
100
|
-
s.add_dependency(%q<rspec>, ["
|
101
|
-
s.add_dependency(%q<yard>, ["
|
102
|
+
s.add_dependency(%q<rest-client>, [">= 1.6.3"])
|
103
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.7"])
|
104
|
+
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
105
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
106
|
+
s.add_dependency(%q<yard>, [">= 0.6.0"])
|
102
107
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
103
108
|
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
104
109
|
s.add_dependency(%q<webmock>, ["~> 1.6.4"])
|
105
|
-
s.add_dependency(%q<vcr>, ["
|
106
|
-
s.add_dependency(%q<mocha>, ["
|
110
|
+
s.add_dependency(%q<vcr>, [">= 1.10.0"])
|
111
|
+
s.add_dependency(%q<mocha>, [">= 0.9.12"])
|
107
112
|
s.add_dependency(%q<rcov>, [">= 0"])
|
108
113
|
s.add_dependency(%q<fuubar>, [">= 0.0.5"])
|
109
114
|
s.add_dependency(%q<autotest>, [">= 4.4.6"])
|
data/lib/bitbank/client.rb
CHANGED
@@ -6,6 +6,7 @@ module Bitbank
|
|
6
6
|
"@#{config[:host]}:#{config[:port]}"
|
7
7
|
end
|
8
8
|
|
9
|
+
# Returns a list of local accounts.
|
9
10
|
def accounts
|
10
11
|
account_data = request('listaccounts')
|
11
12
|
account_data.map do |account_name, account_value|
|
@@ -13,6 +14,9 @@ module Bitbank
|
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
17
|
+
# If an account is not specified, returns the server's total available balance.
|
18
|
+
#
|
19
|
+
# If an account is specified, returns the balance in the account.
|
16
20
|
def balance(account_name=nil)
|
17
21
|
request('getbalance', account_name)
|
18
22
|
end
|
@@ -22,23 +26,43 @@ module Bitbank
|
|
22
26
|
request('getblockcount')
|
23
27
|
end
|
24
28
|
|
29
|
+
# Returns the block number of the latest block in the longest block chain.
|
30
|
+
def block_number
|
31
|
+
request('getblocknumber')
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns the number of connections to other nodes.
|
35
|
+
def connection_count
|
36
|
+
request('getconnectioncount')
|
37
|
+
end
|
38
|
+
|
25
39
|
# Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
|
26
40
|
def difficulty
|
27
41
|
request('getdifficulty')
|
28
42
|
end
|
29
43
|
|
44
|
+
# If data is not specified, returns formatted hash data to work on.
|
45
|
+
#
|
46
|
+
# If data is specified, bitcoind will try to solve the block and will return
|
47
|
+
# true or false indicating whether or not it was successful.
|
30
48
|
def get_work(data=nil)
|
31
49
|
request('getwork', data)
|
32
50
|
end
|
33
51
|
|
52
|
+
# Returns a hash containing bitcoind status information.
|
34
53
|
def info
|
35
54
|
request('getinfo')
|
36
55
|
end
|
37
56
|
|
57
|
+
# Returns a new bitcoin address for receiving payments.
|
58
|
+
#
|
59
|
+
# If an account is specified (recommended), the new address is added to the
|
60
|
+
# address book so payments received with the address are credited to the account.
|
38
61
|
def new_address(account_name=nil)
|
39
62
|
request('getnewaddress', account_name)
|
40
63
|
end
|
41
64
|
|
65
|
+
# Returns the most recent transactions for the specified account.
|
42
66
|
def transactions(account_name=nil, count=10)
|
43
67
|
transaction_data = request('listtransactions', account_name, count)
|
44
68
|
transaction_data.map do |txdata|
|
data/spec/client_spec.rb
CHANGED
@@ -58,6 +58,22 @@ describe "Bitbank::Client" do
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
describe 'block_number' do
|
62
|
+
use_vcr_cassette 'client/block_number'
|
63
|
+
|
64
|
+
it 'should return the block number of the latest block in the longest chain' do
|
65
|
+
@client.block_number.should == 132426
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'connection_count' do
|
70
|
+
use_vcr_cassette 'client/connection_count'
|
71
|
+
|
72
|
+
it 'should return the number of connections to other nodes' do
|
73
|
+
@client.connection_count.should == 8
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
61
77
|
describe 'difficulty' do
|
62
78
|
use_vcr_cassette 'client/difficulty'
|
63
79
|
|
@@ -78,9 +94,24 @@ describe "Bitbank::Client" do
|
|
78
94
|
end
|
79
95
|
end
|
80
96
|
|
81
|
-
context '
|
82
|
-
|
83
|
-
|
97
|
+
context 'with data' do
|
98
|
+
context 'and the block solution is successful' do
|
99
|
+
use_vcr_cassette 'client/get_work_data_true'
|
100
|
+
|
101
|
+
it 'should return true' do
|
102
|
+
data = "00000001aa1d7a0acb6102db122de979b3eef4e2387f61ce0ca68abb00000eba000000006f35688764fa1d99a8f66b02a25399568a3445af4dfa169448282b02b91f70024dfa59f51a13218573b87d00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000"
|
103
|
+
@client.get_work(data).should be_true
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'and the block solution is not successful' do
|
108
|
+
use_vcr_cassette 'client/get_work_data_false'
|
109
|
+
|
110
|
+
it 'should return false' do
|
111
|
+
data = "00000001aa1d7a0acb6102db122de979b3eef4e2387f61ce0ca68abb00000eba000000006f35688764fa1d99a8f66b02a25399568a3445af4dfa169448282b02b91f70024dfa59f51a13218573b87d00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000"
|
112
|
+
@client.get_work(data).should be_false
|
113
|
+
end
|
114
|
+
end
|
84
115
|
end
|
85
116
|
end
|
86
117
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://testuser:testpass@localhost:8332/
|
6
|
+
body: ! '{"id":"jsonrpc","method":"getblocknumber"}'
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- ! '*/*; q=0.5, application/xml'
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
content-length:
|
13
|
+
- '42'
|
14
|
+
response: !ruby/struct:VCR::Response
|
15
|
+
status: !ruby/struct:VCR::ResponseStatus
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
date:
|
20
|
+
- Wed, 22 Jun 2011 00:30:06 +0000
|
21
|
+
content-length:
|
22
|
+
- '46'
|
23
|
+
content-type:
|
24
|
+
- application/json
|
25
|
+
server:
|
26
|
+
- bitcoin-json-rpc/0.3.21-beta
|
27
|
+
body: ! '{"result":132426,"error":null,"id":"jsonrpc"}
|
28
|
+
|
29
|
+
'
|
30
|
+
http_version: '1.1'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://testuser:testpass@localhost:8332/
|
6
|
+
body: ! '{"id":"jsonrpc","method":"getconnectioncount"}'
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- ! '*/*; q=0.5, application/xml'
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
content-length:
|
13
|
+
- '46'
|
14
|
+
response: !ruby/struct:VCR::Response
|
15
|
+
status: !ruby/struct:VCR::ResponseStatus
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
date:
|
20
|
+
- Wed, 22 Jun 2011 00:32:47 +0000
|
21
|
+
content-length:
|
22
|
+
- '41'
|
23
|
+
content-type:
|
24
|
+
- application/json
|
25
|
+
server:
|
26
|
+
- bitcoin-json-rpc/0.3.21-beta
|
27
|
+
body: ! '{"result":8,"error":null,"id":"jsonrpc"}
|
28
|
+
|
29
|
+
'
|
30
|
+
http_version: '1.1'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://testuser:testpass@localhost:8332/
|
6
|
+
body: ! '{"id":"jsonrpc","method":"getwork","params":["00000001aa1d7a0acb6102db122de979b3eef4e2387f61ce0ca68abb00000eba000000006f35688764fa1d99a8f66b02a25399568a3445af4dfa169448282b02b91f70024dfa59f51a13218573b87d00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000"]}'
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- ! '*/*; q=0.5, application/xml'
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
content-length:
|
13
|
+
- '305'
|
14
|
+
response: !ruby/struct:VCR::Response
|
15
|
+
status: !ruby/struct:VCR::ResponseStatus
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
date:
|
20
|
+
- Sun, 19 Jun 2011 23:41:05 +0000
|
21
|
+
content-length:
|
22
|
+
- '45'
|
23
|
+
content-type:
|
24
|
+
- application/json
|
25
|
+
server:
|
26
|
+
- bitcoin-json-rpc/0.3.21-beta
|
27
|
+
body: ! '{"result":false,"error":null,"id":"jsonrpc"}
|
28
|
+
|
29
|
+
'
|
30
|
+
http_version: '1.1'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :post
|
5
|
+
uri: http://testuser:testpass@localhost:8332/
|
6
|
+
body: ! '{"id":"jsonrpc","method":"getwork","params":["00000001aa1d7a0acb6102db122de979b3eef4e2387f61ce0ca68abb00000eba000000006f35688764fa1d99a8f66b02a25399568a3445af4dfa169448282b02b91f70024dfa59f51a13218573b87d00000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000"]}'
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- ! '*/*; q=0.5, application/xml'
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
content-length:
|
13
|
+
- '305'
|
14
|
+
response: !ruby/struct:VCR::Response
|
15
|
+
status: !ruby/struct:VCR::ResponseStatus
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
date:
|
20
|
+
- Sun, 19 Jun 2011 23:41:05 +0000
|
21
|
+
content-length:
|
22
|
+
- '44'
|
23
|
+
content-type:
|
24
|
+
- application/json
|
25
|
+
server:
|
26
|
+
- bitcoin-json-rpc/0.3.21-beta
|
27
|
+
body: ! '{"result":true,"error":null,"id":"jsonrpc"}
|
28
|
+
|
29
|
+
'
|
30
|
+
http_version: '1.1'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitbank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,67 +9,67 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-07-04 00:00:00.000000000 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
17
|
-
requirement: &
|
17
|
+
requirement: &2156491140 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.6.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2156491140
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activesupport
|
28
|
-
requirement: &
|
28
|
+
requirement: &2156490540 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 3.0.7
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2156490540
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: i18n
|
39
|
-
requirement: &
|
39
|
+
requirement: &2156489940 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
|
-
- -
|
42
|
+
- - ! '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 0.
|
44
|
+
version: 0.5.0
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2156489940
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
requirement: &
|
50
|
+
requirement: &2156489380 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 2.6.0
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2156489380
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: yard
|
61
|
-
requirement: &
|
61
|
+
requirement: &2156488760 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
|
-
- -
|
64
|
+
- - ! '>='
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: 0.6.0
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2156488760
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: bundler
|
72
|
-
requirement: &
|
72
|
+
requirement: &2156488240 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 1.0.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2156488240
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: jeweler
|
83
|
-
requirement: &
|
83
|
+
requirement: &2156487640 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 1.6.2
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2156487640
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: webmock
|
94
|
-
requirement: &
|
94
|
+
requirement: &2156487020 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
@@ -99,32 +99,32 @@ dependencies:
|
|
99
99
|
version: 1.6.4
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2156487020
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: vcr
|
105
|
-
requirement: &
|
105
|
+
requirement: &2156486420 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ! '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.10.0
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2156486420
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: mocha
|
116
|
-
requirement: &
|
116
|
+
requirement: &2156485820 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
|
-
- -
|
119
|
+
- - ! '>='
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: 0.9.12
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *2156485820
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rcov
|
127
|
-
requirement: &
|
127
|
+
requirement: &2156485220 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *2156485220
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: fuubar
|
138
|
-
requirement: &
|
138
|
+
requirement: &2156484580 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
version: 0.0.5
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *2156484580
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: autotest
|
149
|
-
requirement: &
|
149
|
+
requirement: &2156483980 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|
152
152
|
- - ! '>='
|
@@ -154,22 +154,23 @@ dependencies:
|
|
154
154
|
version: 4.4.6
|
155
155
|
type: :development
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
157
|
+
version_requirements: *2156483980
|
158
158
|
description: Easy to use Ruby interface to the Bitcoind JSON-RPC API
|
159
159
|
email: nap@zerosum.org
|
160
160
|
executables: []
|
161
161
|
extensions: []
|
162
162
|
extra_rdoc_files:
|
163
163
|
- LICENSE.txt
|
164
|
-
- README.
|
164
|
+
- README.md
|
165
165
|
files:
|
166
166
|
- .autotest
|
167
167
|
- .document
|
168
168
|
- .rspec
|
169
|
+
- CHANGELOG.md
|
169
170
|
- Gemfile
|
170
171
|
- Gemfile.lock
|
171
172
|
- LICENSE.txt
|
172
|
-
- README.
|
173
|
+
- README.md
|
173
174
|
- Rakefile
|
174
175
|
- VERSION
|
175
176
|
- bitbank.gemspec
|
@@ -190,8 +191,12 @@ files:
|
|
190
191
|
- spec/fixtures/vcr_cassettes/client/balance.yml
|
191
192
|
- spec/fixtures/vcr_cassettes/client/balance_account.yml
|
192
193
|
- spec/fixtures/vcr_cassettes/client/block_count.yml
|
194
|
+
- spec/fixtures/vcr_cassettes/client/block_number.yml
|
195
|
+
- spec/fixtures/vcr_cassettes/client/connection_count.yml
|
193
196
|
- spec/fixtures/vcr_cassettes/client/difficulty.yml
|
194
197
|
- spec/fixtures/vcr_cassettes/client/get_work.yml
|
198
|
+
- spec/fixtures/vcr_cassettes/client/get_work_data_false.yml
|
199
|
+
- spec/fixtures/vcr_cassettes/client/get_work_data_true.yml
|
195
200
|
- spec/fixtures/vcr_cassettes/client/info.yml
|
196
201
|
- spec/fixtures/vcr_cassettes/client/new_address.yml
|
197
202
|
- spec/fixtures/vcr_cassettes/client/transactions.yml
|
@@ -216,7 +221,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
216
221
|
version: '0'
|
217
222
|
segments:
|
218
223
|
- 0
|
219
|
-
hash:
|
224
|
+
hash: 2105660465701470600
|
220
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
226
|
none: false
|
222
227
|
requirements:
|