bitcoin-client 0.0.1 → 0.0.2
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.
- checksums.yaml +7 -0
 - data/.gitignore +1 -0
 - data/.travis.yml +18 -0
 - data/Gemfile +9 -0
 - data/README.rdoc +10 -1
 - data/Rakefile +5 -6
 - data/{bitcoind-client.gemspec → bitcoin-client.gemspec} +6 -4
 - data/lib/bitcoin/client.rb +101 -59
 - data/lib/bitcoin/dsl.rb +12 -1
 - data/lib/bitcoin/rpc.rb +5 -4
 - data/lib/bitcoin/version.rb +1 -1
 - data/spec/fixtures/build_fixture.rb +1 -1
 - data/spec/fixtures/getblock.json +8 -0
 - data/spec/fixtures/getmininginfo.json +8 -0
 - data/spec/fixtures/setaccount.json +8 -0
 - data/spec/fixtures/signmessage_invalid_address.json +8 -0
 - data/spec/fixtures/signmessage_success.json +8 -0
 - data/spec/fixtures/verifymessage_failure.json +8 -0
 - data/spec/fixtures/verifymessage_success.json +8 -0
 - data/spec/lib/bitcoin/client_spec.rb +93 -17
 - data/spec/spec_helper.rb +5 -2
 - metadata +119 -60
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 2a2785fa846dc9f20ccf3182be415da192ab0d7c
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e20b1f1b80be6e339d8d3f736c642f09ad38a58a
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 3f2b6b13d4ef46bb59341526715ce88bebe0ba1058f3914b0e4c8ed24b458277e637e0c7b5d345d32bdf17653095336ad07409565fc2bcec7fb8c21a9900b7c5
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: cc5a52df9d85050c486ebb7a4f4ab71c183ecdf52bb05cc3882fb141144bc5a7316784d1b700ba813dafbbdfd3918d047d3f33847c961de8d9bc01c23d07d3be
         
     | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.travis.yml
    ADDED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -1,9 +1,18 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            = bitcoin-client
         
     | 
| 
      
 1 
     | 
    
         
            +
            = bitcoin-client {<img src="https://travis-ci.org/sinisterchipmunk/bitcoin-client.png?branch=master" alt="Build Status" />}[https://travis-ci.org/sinisterchipmunk/bitcoin-client] {<img src="https://codeclimate.com/github/sinisterchipmunk/bitcoin-client.png" />}[https://codeclimate.com/github/sinisterchipmunk/bitcoin-client] {<img src="https://coveralls.io/repos/sinisterchipmunk/bitcoin-client/badge.png" alt="Coverage Status" />}[https://coveralls.io/r/sinisterchipmunk/bitcoin-client]
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Provides a Ruby library to the complete Bitcoin JSON-RPC API. Implements all methods listed
         
     | 
| 
       4 
4 
     | 
    
         
             
            at {https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list}[https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list].
         
     | 
| 
       5 
5 
     | 
    
         
             
            Also supports customizing the host and port number to connect to.
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
            == Installation
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            On Ruby 1.9, you can just install the gem and start using it. On 1.8, the 'json' gem is also required, so you'll need to install that first:
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              gem install json
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Or, if you're using Bundler (and you should be), just add it to the Gemfile:
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              gem 'json', '~> 1.5.3'
         
     | 
| 
       7 
16 
     | 
    
         | 
| 
       8 
17 
     | 
    
         
             
            == Usage
         
     | 
| 
       9 
18 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,9 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "bundler/gem_tasks"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rspec/core/rake_task'
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
      
 4 
     | 
    
         
            +
            desc 'Default: run specs.'
         
     | 
| 
      
 5 
     | 
    
         
            +
            task :default => :spec
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
              t.rdoc_files.include "README.rdoc", "lib/**/*.rb"
         
     | 
| 
       9 
     | 
    
         
            -
            end
         
     | 
| 
      
 7 
     | 
    
         
            +
            desc "Run specs"
         
     | 
| 
      
 8 
     | 
    
         
            +
            RSpec::Core::RakeTask.new
         
     | 
| 
         @@ -21,8 +21,10 @@ Gem::Specification.new do |s| 
     | 
|
| 
       21 
21 
     | 
    
         
             
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         
     | 
| 
       22 
22 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
               
     | 
| 
       25 
     | 
    
         
            -
              s.add_development_dependency " 
     | 
| 
       26 
     | 
    
         
            -
              s.add_development_dependency " 
     | 
| 
       27 
     | 
    
         
            -
              s. 
     | 
| 
      
 24 
     | 
    
         
            +
              s.add_development_dependency "rake",    '~> 0.9'
         
     | 
| 
      
 25 
     | 
    
         
            +
              s.add_development_dependency "bundler"
         
     | 
| 
      
 26 
     | 
    
         
            +
              s.add_development_dependency "rspec",   '~> 2.6'
         
     | 
| 
      
 27 
     | 
    
         
            +
              s.add_development_dependency "fakeweb", '~> 1.3'
         
     | 
| 
      
 28 
     | 
    
         
            +
              s.add_development_dependency "coveralls"
         
     | 
| 
      
 29 
     | 
    
         
            +
              s.add_runtime_dependency "rest-client"
         
     | 
| 
       28 
30 
     | 
    
         
             
            end
         
     | 
    
        data/lib/bitcoin/client.rb
    CHANGED
    
    | 
         @@ -11,128 +11,140 @@ class Bitcoin::Client 
     | 
|
| 
       11 
11 
     | 
    
         
             
              def host=(a); api.host = a; end
         
     | 
| 
       12 
12 
     | 
    
         
             
              def port=(a); api.port = a; end
         
     | 
| 
       13 
13 
     | 
    
         
             
              def ssl=(a);  api.ssl  = a; end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       15 
15 
     | 
    
         
             
              def options
         
     | 
| 
       16 
16 
     | 
    
         
             
                api.options
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       19 
19 
     | 
    
         
             
              def initialize(user, pass, options = {})
         
     | 
| 
       20 
20 
     | 
    
         
             
                @api = Bitcoin::API.new({ :user => user, :pass => pass }.merge(options))
         
     | 
| 
       21 
21 
     | 
    
         
             
              end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              # Safely copies wallet.dat to destination, which can be a directory or a path with filename. 
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              # Safely copies wallet.dat to destination, which can be a directory or a path with filename.
         
     | 
| 
       24 
24 
     | 
    
         
             
              def backupwallet(destination)
         
     | 
| 
       25 
25 
     | 
    
         
             
                @api.request 'backupwallet', destination
         
     | 
| 
       26 
26 
     | 
    
         
             
              end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
              # Returns the account associated with the given address. 
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              # Returns the account associated with the given address.
         
     | 
| 
       29 
29 
     | 
    
         
             
              def getaccount(bitcoinaddress)
         
     | 
| 
       30 
30 
     | 
    
         
             
                @api.request 'getaccount', bitcoinaddress
         
     | 
| 
       31 
31 
     | 
    
         
             
              end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
              # Returns the current bitcoin address for receiving payments to this account. 
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              # Returns the current bitcoin address for receiving payments to this account.
         
     | 
| 
       34 
34 
     | 
    
         
             
              def getaccountaddress(account)
         
     | 
| 
       35 
35 
     | 
    
         
             
                @api.request 'getaccountaddress', account
         
     | 
| 
       36 
36 
     | 
    
         
             
              end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
              #	Returns the list of addresses for the given account. 
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              #	Returns the list of addresses for the given account.
         
     | 
| 
       39 
39 
     | 
    
         
             
              def getaddressesbyaccount(account)
         
     | 
| 
       40 
40 
     | 
    
         
             
                @api.request 'getaddressesbyaccount', account
         
     | 
| 
       41 
41 
     | 
    
         
             
              end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       43 
43 
     | 
    
         
             
              # If +account+ is not specified, returns the server's total available balance.
         
     | 
| 
       44 
44 
     | 
    
         
             
              # If +account+ is specified, returns the balance in the account.
         
     | 
| 
       45 
45 
     | 
    
         
             
              def getbalance(account = nil, minconf = 1)
         
     | 
| 
       46 
46 
     | 
    
         
             
                @api.request 'getbalance', account, minconf
         
     | 
| 
       47 
47 
     | 
    
         
             
              end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       49 
49 
     | 
    
         
             
              # Dumps the block existing at specified height.
         
     | 
| 
       50 
50 
     | 
    
         
             
              # Note: this is not available in the official release
         
     | 
| 
       51 
51 
     | 
    
         
             
              def getblockbycount(height)
         
     | 
| 
       52 
52 
     | 
    
         
             
                @api.request 'getblockbycount', height
         
     | 
| 
       53 
53 
     | 
    
         
             
              end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              # Dumps the block existing with specified hash.
         
     | 
| 
      
 56 
     | 
    
         
            +
              def getblock(hash)
         
     | 
| 
      
 57 
     | 
    
         
            +
                block = @api.request 'getblock', hash
         
     | 
| 
      
 58 
     | 
    
         
            +
                block["time"] = Time.at(block["time"]).utc
         
     | 
| 
      
 59 
     | 
    
         
            +
                block
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
       55 
62 
     | 
    
         
             
              # Returns the number of blocks in the longest block chain.
         
     | 
| 
       56 
63 
     | 
    
         
             
              def getblockcount
         
     | 
| 
       57 
64 
     | 
    
         
             
                @api.request 'getblockcount'
         
     | 
| 
       58 
65 
     | 
    
         
             
              end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
              # Returns the block number of the latest block in the longest block chain. 
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
              # Returns the block number of the latest block in the longest block chain.
         
     | 
| 
       61 
68 
     | 
    
         
             
              def getblocknumber
         
     | 
| 
       62 
69 
     | 
    
         
             
                @api.request 'getblocknumber'
         
     | 
| 
       63 
70 
     | 
    
         
             
              end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
       65 
72 
     | 
    
         
             
              # Returns the number of connections to other nodes.
         
     | 
| 
       66 
73 
     | 
    
         
             
              def getconnectioncount
         
     | 
| 
       67 
74 
     | 
    
         
             
                @api.request 'getconnectioncount'
         
     | 
| 
       68 
75 
     | 
    
         
             
              end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
              # Returns the proof-of-work difficulty as a multiple of the minimum difficulty. 
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
              # Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
         
     | 
| 
       71 
78 
     | 
    
         
             
              def getdifficulty
         
     | 
| 
       72 
79 
     | 
    
         
             
                @api.request 'getdifficulty'
         
     | 
| 
       73 
80 
     | 
    
         
             
              end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
              # Returns true or false whether bitcoind is currently generating hashes 
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
              # Returns true or false whether bitcoind is currently generating hashes
         
     | 
| 
       76 
83 
     | 
    
         
             
              def getgenerate
         
     | 
| 
       77 
84 
     | 
    
         
             
                @api.request 'getgenerate'
         
     | 
| 
       78 
85 
     | 
    
         
             
              end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
              # Returns a recent hashes per second performance measurement while generating. 
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
              # Returns a recent hashes per second performance measurement while generating.
         
     | 
| 
       81 
88 
     | 
    
         
             
              def gethashespersec
         
     | 
| 
       82 
89 
     | 
    
         
             
                @api.request 'gethashespersec'
         
     | 
| 
       83 
90 
     | 
    
         
             
              end
         
     | 
| 
       84 
91 
     | 
    
         | 
| 
       85 
     | 
    
         
            -
              # Returns an object containing various state info. 
     | 
| 
      
 92 
     | 
    
         
            +
              # Returns an object containing various state info.
         
     | 
| 
       86 
93 
     | 
    
         
             
              def getinfo
         
     | 
| 
       87 
94 
     | 
    
         
             
                @api.request 'getinfo'
         
     | 
| 
       88 
95 
     | 
    
         
             
              end
         
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
              # Returns an object containing mining info.
         
     | 
| 
      
 98 
     | 
    
         
            +
              def getmininginfo
         
     | 
| 
      
 99 
     | 
    
         
            +
                @api.request 'getmininginfo'
         
     | 
| 
      
 100 
     | 
    
         
            +
              end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
       90 
102 
     | 
    
         
             
              # Returns a new bitcoin address for receiving payments. If +account+ is specified (recommended),
         
     | 
| 
       91 
103 
     | 
    
         
             
              # it is added to the address book so payments received with the address will be credited to +account+.
         
     | 
| 
       92 
104 
     | 
    
         
             
              def getnewaddress(account = nil)
         
     | 
| 
       93 
105 
     | 
    
         
             
                @api.request 'getnewaddress', account
         
     | 
| 
       94 
106 
     | 
    
         
             
              end
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
       96 
108 
     | 
    
         
             
              # Returns the total amount received by addresses with +account+ in transactions
         
     | 
| 
       97 
     | 
    
         
            -
              # with at least +minconf+ confirmations. 
     | 
| 
      
 109 
     | 
    
         
            +
              # with at least +minconf+ confirmations.
         
     | 
| 
       98 
110 
     | 
    
         
             
              def getreceivedbyaccount(account, minconf = 1)
         
     | 
| 
       99 
111 
     | 
    
         
             
                @api.request 'getreceivedbyaccount', account, minconf
         
     | 
| 
       100 
112 
     | 
    
         
             
              end
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
              # Returns the total amount received by +bitcoinaddress+ in transactions with at least +minconf+ confirmations. 
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
              # Returns the total amount received by +bitcoinaddress+ in transactions with at least +minconf+ confirmations.
         
     | 
| 
       103 
115 
     | 
    
         
             
              def getreceivedbyaddress(bitcoinaddress, minconf = 1)
         
     | 
| 
       104 
116 
     | 
    
         
             
                @api.request 'getreceivedbyaddress', bitcoinaddress, minconf
         
     | 
| 
       105 
117 
     | 
    
         
             
              end
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
              # Get detailed information about +txid+ 
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              # Get detailed information about +txid+
         
     | 
| 
       108 
120 
     | 
    
         
             
              def gettransaction(txid)
         
     | 
| 
       109 
121 
     | 
    
         
             
                @api.request 'gettransaction', txid
         
     | 
| 
       110 
122 
     | 
    
         
             
              end
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
       112 
124 
     | 
    
         
             
              # If +data+ is not specified, returns formatted hash data to work on:
         
     | 
| 
       113 
125 
     | 
    
         
             
              #
         
     | 
| 
       114 
126 
     | 
    
         
             
              #  :midstate => precomputed hash state after hashing the first half of the data
         
     | 
| 
       115 
127 
     | 
    
         
             
              #  :data     => block data
         
     | 
| 
       116 
128 
     | 
    
         
             
              #  :hash1    => formatted hash buffer for second hash
         
     | 
| 
       117 
     | 
    
         
            -
              #  :target   => little endian hash target 
     | 
| 
      
 129 
     | 
    
         
            +
              #  :target   => little endian hash target
         
     | 
| 
       118 
130 
     | 
    
         
             
              #
         
     | 
| 
       119 
131 
     | 
    
         
             
              # If +data+ is specified, tries to solve the block and returns true if it was successful.
         
     | 
| 
       120 
132 
     | 
    
         
             
              def getwork(data = nil)
         
     | 
| 
       121 
133 
     | 
    
         
             
                @api.request 'getwork', data
         
     | 
| 
       122 
134 
     | 
    
         
             
              end
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
              # List commands, or get help for a command. 
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
              # List commands, or get help for a command.
         
     | 
| 
       125 
137 
     | 
    
         
             
              def help(command = nil)
         
     | 
| 
       126 
138 
     | 
    
         
             
                @api.request 'help', command
         
     | 
| 
       127 
139 
     | 
    
         
             
              end
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
              # Returns Object that has account names as keys, account balances as values. 
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
              # Returns Object that has account names as keys, account balances as values.
         
     | 
| 
       130 
142 
     | 
    
         
             
              def listaccounts(minconf = 1)
         
     | 
| 
       131 
143 
     | 
    
         
             
                @api.request 'listaccounts', minconf
         
     | 
| 
       132 
144 
     | 
    
         
             
              end
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
       134 
146 
     | 
    
         
             
              # Returns an array of objects containing:
         
     | 
| 
       135 
     | 
    
         
            -
              # 
     | 
| 
      
 147 
     | 
    
         
            +
              #
         
     | 
| 
       136 
148 
     | 
    
         
             
              #   :account       => the account of the receiving addresses
         
     | 
| 
       137 
149 
     | 
    
         
             
              #   :amount        => total amount received by addresses with this account
         
     | 
| 
       138 
150 
     | 
    
         
             
              #   :confirmations => number of confirmations of the most recent transaction included
         
     | 
| 
         @@ -140,60 +152,87 @@ class Bitcoin::Client 
     | 
|
| 
       140 
152 
     | 
    
         
             
              def listreceivedbyaccount(minconf = 1, includeempty = false)
         
     | 
| 
       141 
153 
     | 
    
         
             
                @api.request 'listreceivedbyaccount', minconf, includeempty
         
     | 
| 
       142 
154 
     | 
    
         
             
              end
         
     | 
| 
       143 
     | 
    
         
            -
             
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
       144 
156 
     | 
    
         
             
              # Returns an array of objects containing:
         
     | 
| 
       145 
     | 
    
         
            -
              # 
     | 
| 
      
 157 
     | 
    
         
            +
              #
         
     | 
| 
       146 
158 
     | 
    
         
             
              #   :address       => receiving address
         
     | 
| 
       147 
159 
     | 
    
         
             
              #   :account       => the account of the receiving address
         
     | 
| 
       148 
160 
     | 
    
         
             
              #   :amount        => total amount received by the address
         
     | 
| 
       149 
     | 
    
         
            -
              #   :confirmations => number of confirmations of the most recent transaction included 
     | 
| 
       150 
     | 
    
         
            -
              # 
     | 
| 
      
 161 
     | 
    
         
            +
              #   :confirmations => number of confirmations of the most recent transaction included
         
     | 
| 
      
 162 
     | 
    
         
            +
              #
         
     | 
| 
       151 
163 
     | 
    
         
             
              # To get a list of accounts on the system, execute bitcoind listreceivedbyaddress 0 true
         
     | 
| 
       152 
164 
     | 
    
         
             
              def listreceivedbyaddress(minconf = 1, includeempty = false)
         
     | 
| 
       153 
165 
     | 
    
         
             
                @api.request 'listreceivedbyaddress', minconf, includeempty
         
     | 
| 
       154 
166 
     | 
    
         
             
              end
         
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
              # Returns up to +count+ most recent transactions for account +account+. 
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
              # Returns up to +count+ most recent transactions for account +account+.
         
     | 
| 
       157 
169 
     | 
    
         
             
              def listtransactions(account, count = 10)
         
     | 
| 
       158 
170 
     | 
    
         
             
                @api.request 'listtransactions', account, count
         
     | 
| 
       159 
171 
     | 
    
         
             
              end
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
              # Move from one account in your wallet to another. 
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
              # Move from one account in your wallet to another.
         
     | 
| 
       162 
174 
     | 
    
         
             
              def move(fromaccount, toaccount, amount, minconf = 1, comment = nil)
         
     | 
| 
       163 
175 
     | 
    
         
             
                @api.request 'move', fromaccount, toaccount, amount, minconf, comment
         
     | 
| 
       164 
176 
     | 
    
         
             
              end
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
              # +amount+ is a real and is rounded to 8 decimal places. Returns the transaction ID if successful. 
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
              # +amount+ is a real and is rounded to 8 decimal places. Returns the transaction ID if successful.
         
     | 
| 
       167 
179 
     | 
    
         
             
              def sendfrom(fromaccount, tobitcoinaddress, amount, minconf = 1, comment = nil, comment_to = nil)
         
     | 
| 
       168 
180 
     | 
    
         
             
                @api.request 'sendfrom', fromaccount, tobitcoinaddress, amount, minconf, comment, comment_to
         
     | 
| 
       169 
181 
     | 
    
         
             
              end
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
              # +amount+ is a real and is rounded to 8 decimal places 
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
              # +amount+ is a real and is rounded to 8 decimal places
         
     | 
| 
       172 
184 
     | 
    
         
             
              def sendtoaddress(bitcoinaddress, amount, comment = nil, comment_to = nil)
         
     | 
| 
       173 
185 
     | 
    
         
             
                @api.request 'sendtoaddress', bitcoinaddress, amount, comment, comment_to
         
     | 
| 
       174 
186 
     | 
    
         
             
              end
         
     | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
               
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
              def sendmany(fromaccount, addresses_amounts, minconf = 1, comment = nil)
         
     | 
| 
      
 189 
     | 
    
         
            +
                @api.request 'sendmany', fromaccount, addresses_amounts, minconf, comment
         
     | 
| 
      
 190 
     | 
    
         
            +
              end
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
              # Sets the account associated with the given address.
         
     | 
| 
       177 
193 
     | 
    
         
             
              def setaccount(bitcoinaddress, account)
         
     | 
| 
       178 
     | 
    
         
            -
                @api.request ' 
     | 
| 
      
 194 
     | 
    
         
            +
                @api.request 'setaccount', bitcoinaddress, account
         
     | 
| 
       179 
195 
     | 
    
         
             
              end
         
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
       181 
197 
     | 
    
         
             
              # +generate+ is true or false to turn generation on or off.
         
     | 
| 
       182 
198 
     | 
    
         
             
              # Generation is limited to +genproclimit+ processors, -1 is unlimited.
         
     | 
| 
       183 
199 
     | 
    
         
             
              def setgenerate(generate, genproclimit = -1)
         
     | 
| 
       184 
200 
     | 
    
         
             
                @api.request 'setgenerate', generate, genproclimit
         
     | 
| 
       185 
201 
     | 
    
         
             
              end
         
     | 
| 
       186 
     | 
    
         
            -
             
     | 
| 
       187 
     | 
    
         
            -
              # Stop bitcoin server. 
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
              # Stop bitcoin server.
         
     | 
| 
       188 
204 
     | 
    
         
             
              def stop
         
     | 
| 
       189 
205 
     | 
    
         
             
                @api.request 'stop'
         
     | 
| 
       190 
206 
     | 
    
         
             
              end
         
     | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
     | 
    
         
            -
              # Return information about +bitcoinaddress+. 
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
              # Return information about +bitcoinaddress+.
         
     | 
| 
       193 
209 
     | 
    
         
             
              def validateaddress(bitcoinaddress)
         
     | 
| 
       194 
210 
     | 
    
         
             
                @api.request 'validateaddress', bitcoinaddress
         
     | 
| 
       195 
211 
     | 
    
         
             
              end
         
     | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
              # Sign a message using +bitcoinaddress+.
         
     | 
| 
      
 214 
     | 
    
         
            +
              def signmessage(bitcoinaddress, message)
         
     | 
| 
      
 215 
     | 
    
         
            +
                @api.request 'signmessage', bitcoinaddress, message
         
     | 
| 
      
 216 
     | 
    
         
            +
              end
         
     | 
| 
      
 217 
     | 
    
         
            +
             
     | 
| 
      
 218 
     | 
    
         
            +
              # Verify signature made by +bitcoinaddress+.
         
     | 
| 
      
 219 
     | 
    
         
            +
              def verifymessage(bitcoinaddress, signature, message)
         
     | 
| 
      
 220 
     | 
    
         
            +
                @api.request 'verifymessage', bitcoinaddress, signature, message
         
     | 
| 
      
 221 
     | 
    
         
            +
              end
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
              # Stores the wallet decryption key in memory for +timeout+ seconds.
         
     | 
| 
      
 224 
     | 
    
         
            +
              def walletpassphrase(passphrase, timeout)
         
     | 
| 
      
 225 
     | 
    
         
            +
                @api.request 'walletpassphrase', passphrase, timeout
         
     | 
| 
      
 226 
     | 
    
         
            +
              end
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
              # Removes the wallet encryption key from memory, locking the wallet.
         
     | 
| 
      
 229 
     | 
    
         
            +
              # After calling this method, you will need to call walletpassphrase again
         
     | 
| 
      
 230 
     | 
    
         
            +
              # before being able to call any methods which require the wallet to be
         
     | 
| 
      
 231 
     | 
    
         
            +
              # unlocked.
         
     | 
| 
      
 232 
     | 
    
         
            +
              def walletlock
         
     | 
| 
      
 233 
     | 
    
         
            +
                @api.request 'walletlock'
         
     | 
| 
      
 234 
     | 
    
         
            +
              end
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
       197 
236 
     | 
    
         
             
              alias account getaccount
         
     | 
| 
       198 
237 
     | 
    
         
             
              alias account_address getaccountaddress
         
     | 
| 
       199 
238 
     | 
    
         
             
              alias addresses_by_account getaddressesbyaccount
         
     | 
| 
         @@ -219,9 +258,12 @@ class Bitcoin::Client 
     | 
|
| 
       219 
258 
     | 
    
         
             
              alias list_transactions listtransactions
         
     | 
| 
       220 
259 
     | 
    
         
             
              alias send_from sendfrom
         
     | 
| 
       221 
260 
     | 
    
         
             
              alias send_to_address sendtoaddress
         
     | 
| 
      
 261 
     | 
    
         
            +
              alias send_many sendmany
         
     | 
| 
       222 
262 
     | 
    
         
             
              alias account= setaccount
         
     | 
| 
       223 
263 
     | 
    
         
             
              alias set_account setaccount
         
     | 
| 
       224 
264 
     | 
    
         
             
              alias generate= setgenerate
         
     | 
| 
       225 
265 
     | 
    
         
             
              alias set_generate setgenerate
         
     | 
| 
       226 
266 
     | 
    
         
             
              alias validate_address validateaddress
         
     | 
| 
      
 267 
     | 
    
         
            +
              alias sign_message signmessage
         
     | 
| 
      
 268 
     | 
    
         
            +
              alias verify_message verifymessage
         
     | 
| 
       227 
269 
     | 
    
         
             
            end
         
     | 
    
        data/lib/bitcoin/dsl.rb
    CHANGED
    
    | 
         @@ -84,6 +84,11 @@ module Bitcoin::DSL 
     | 
|
| 
       84 
84 
     | 
    
         
             
                bitcoin.getblockbycount height
         
     | 
| 
       85 
85 
     | 
    
         
             
              end
         
     | 
| 
       86 
86 
     | 
    
         | 
| 
      
 87 
     | 
    
         
            +
              # Dumps the block existing with specified hash.
         
     | 
| 
      
 88 
     | 
    
         
            +
              def getblock(hash)
         
     | 
| 
      
 89 
     | 
    
         
            +
                bitcoin.getblock hash
         
     | 
| 
      
 90 
     | 
    
         
            +
              end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
       87 
92 
     | 
    
         
             
              # Returns the number of blocks in the longest block chain.
         
     | 
| 
       88 
93 
     | 
    
         
             
              def getblockcount
         
     | 
| 
       89 
94 
     | 
    
         
             
                bitcoin.getblockcount
         
     | 
| 
         @@ -118,7 +123,12 @@ module Bitcoin::DSL 
     | 
|
| 
       118 
123 
     | 
    
         
             
              def getinfo
         
     | 
| 
       119 
124 
     | 
    
         
             
                bitcoin.getinfo
         
     | 
| 
       120 
125 
     | 
    
         
             
              end
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
              # Returns an object containing various mining info.
         
     | 
| 
      
 128 
     | 
    
         
            +
              def getmininginfo
         
     | 
| 
      
 129 
     | 
    
         
            +
                bitcoin.getmininginfo
         
     | 
| 
      
 130 
     | 
    
         
            +
              end
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
       122 
132 
     | 
    
         
             
              # Returns a new bitcoin address for receiving payments. If +account+ is specified (recommended),
         
     | 
| 
       123 
133 
     | 
    
         
             
              # it is added to the address book so payments received with the address will be credited to +account+.
         
     | 
| 
       124 
134 
     | 
    
         
             
              def getnewaddress(account = nil)
         
     | 
| 
         @@ -238,6 +248,7 @@ module Bitcoin::DSL 
     | 
|
| 
       238 
248 
     | 
    
         
             
              alias generate? getgenerate
         
     | 
| 
       239 
249 
     | 
    
         
             
              alias hashes_per_sec gethashespersec
         
     | 
| 
       240 
250 
     | 
    
         
             
              alias info getinfo
         
     | 
| 
      
 251 
     | 
    
         
            +
              alias mininginfo getmininginfo
         
     | 
| 
       241 
252 
     | 
    
         
             
              alias new_address getnewaddress
         
     | 
| 
       242 
253 
     | 
    
         
             
              alias received_by_account getreceivedbyaccount
         
     | 
| 
       243 
254 
     | 
    
         
             
              alias received_by_address getreceivedbyaddress
         
     | 
    
        data/lib/bitcoin/rpc.rb
    CHANGED
    
    | 
         @@ -23,10 +23,11 @@ class Bitcoin::RPC 
     | 
|
| 
       23 
23 
     | 
    
         
             
              end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
              def dispatch(request)
         
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 26 
     | 
    
         
            +
                RestClient.post(service_url, request.to_post_data) do |respdata, request, result|
         
     | 
| 
      
 27 
     | 
    
         
            +
                  response = JSON.parse(respdata)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  raise Bitcoin::Errors::RPCError, response['error'] if response['error']
         
     | 
| 
      
 29 
     | 
    
         
            +
                  response['result']
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
       30 
31 
     | 
    
         
             
              end
         
     | 
| 
       31 
32 
     | 
    
         | 
| 
       32 
33 
     | 
    
         
             
              private
         
     | 
    
        data/lib/bitcoin/version.rb
    CHANGED
    
    
| 
         @@ -10,7 +10,7 @@ params = ARGV[2..-1].collect { |y| y == '_nil' ? nil : YAML::load(y) } 
     | 
|
| 
       10 
10 
     | 
    
         
             
            file_name << ".json" unless file_name =~ /\.json$/
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            data = { 'jsonrpc' => '1.0', 'id' => 'curltest', 'method' => service_name, 'params' => params }
         
     | 
| 
       13 
     | 
    
         
            -
            command = "curl --user  
     | 
| 
      
 13 
     | 
    
         
            +
            command = "curl --user LovleOdnu:NajOij6DriWokEjEinaw --data-binary '#{data.to_json}' -H 'content-type: text/plain;' http://127.0.0.1:8332/ -i"
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            puts command, nil
         
     | 
| 
       16 
16 
     | 
    
         
             
            result = %x[#{command}]
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            HTTP/1.1 200 OK
         
     | 
| 
      
 2 
     | 
    
         
            +
            Date: Mon, 10 Jun 2013 08:36:04 +0000
         
     | 
| 
      
 3 
     | 
    
         
            +
            Connection: keep-alive
         
     | 
| 
      
 4 
     | 
    
         
            +
            Content-Length: 1657
         
     | 
| 
      
 5 
     | 
    
         
            +
            Content-Type: application/json
         
     | 
| 
      
 6 
     | 
    
         
            +
            Server: bitcoin-json-rpc/v0.8.1-beta
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            {"result":{"hash":"0000000000000002e004985f39f929d001448623b312185bf5e4ab50e5a8e60a","confirmations":19,"size":5227,"height":240707,"version":2,"merkleroot":"18b914e2d6bd4c3118a936af75afbd230611edb6929a607302c0d591ef49b24e","tx":["cutforsimplicity","27f99033bdcea87b07f8eea4279d7ce24e479fcb49e9f54e9ffb3721e29838ed"],"time":1370842803,"nonce":3937756309,"bits":"1a011337","difficulty":15605632.68128593,"previousblockhash":"000000000000003fa76b2abdd3036d183d7e24cfb6b543781d59cdca289f6053","nextblockhash":"0000000000000087a1e962f618f757393930e58a745165033fc9d281b7bb568a"},"error":null,"id":"curltest"}
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            HTTP/1.1 200 OK
         
     | 
| 
      
 2 
     | 
    
         
            +
            Date: Mon, 10 Jun 2013 07:49:23 +0000
         
     | 
| 
      
 3 
     | 
    
         
            +
            Connection: keep-alive
         
     | 
| 
      
 4 
     | 
    
         
            +
            Content-Length: 222
         
     | 
| 
      
 5 
     | 
    
         
            +
            Content-Type: application/json
         
     | 
| 
      
 6 
     | 
    
         
            +
            Server: bitcoin-json-rpc/v0.8.1-beta
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            {"result":{"blocks":237338,"currentblocksize":0,"currentblocktx":0,"difficulty":11187257.46136079,"errors":"","generate":false,"genproclimit":-1,"hashespersec":0,"pooledtx":0,"testnet":false},"error":null,"id":"curltest"}
         
     | 
| 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            HTTP/1.1 500 Internal Server Error
         
     | 
| 
      
 2 
     | 
    
         
            +
            Date: Sun, 26 Aug 2012 23:58:59 +0000
         
     | 
| 
      
 3 
     | 
    
         
            +
            Connection: close
         
     | 
| 
      
 4 
     | 
    
         
            +
            Content-Length: 80
         
     | 
| 
      
 5 
     | 
    
         
            +
            Content-Type: application/json
         
     | 
| 
      
 6 
     | 
    
         
            +
            Server: bitcoin-json-rpc/v0.6.3-beta
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            {"result":null,"error":{"code":-3,"message":"Invalid address"},"id":"curltest"}
         
     | 
| 
         @@ -2,18 +2,18 @@ require 'spec_helper' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Bitcoin::Client do
         
     | 
| 
       4 
4 
     | 
    
         
             
              subject { Bitcoin::Client.new($user, $pass) }
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       6 
6 
     | 
    
         
             
              it "defaults" do
         
     | 
| 
       7 
7 
     | 
    
         
             
                subject.user.should == $user
         
     | 
| 
       8 
8 
     | 
    
         
             
                subject.pass.should == $pass
         
     | 
| 
       9 
9 
     | 
    
         
             
                subject.host.should == 'localhost'
         
     | 
| 
       10 
10 
     | 
    
         
             
                subject.port.should == 8332
         
     | 
| 
       11 
     | 
    
         
            -
                subject. 
     | 
| 
      
 11 
     | 
    
         
            +
                subject.should_not be_ssl
         
     | 
| 
       12 
12 
     | 
    
         
             
              end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       14 
14 
     | 
    
         
             
              context "RPC" do
         
     | 
| 
       15 
15 
     | 
    
         
             
                extend RPCServiceHelper
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       17 
17 
     | 
    
         
             
                service 'getinfo' do
         
     | 
| 
       18 
18 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       19 
19 
     | 
    
         
             
                    result.should == {
         
     | 
| 
         @@ -33,7 +33,47 @@ describe Bitcoin::Client do 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    }
         
     | 
| 
       34 
34 
     | 
    
         
             
                  end
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                service 'getmininginfo' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  it "should produce the expected result" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                    result.should == {
         
     | 
| 
      
 40 
     | 
    
         
            +
                      'blocks' => 237338,
         
     | 
| 
      
 41 
     | 
    
         
            +
                      'currentblocksize' => 0,
         
     | 
| 
      
 42 
     | 
    
         
            +
                      'currentblocktx' => 0,
         
     | 
| 
      
 43 
     | 
    
         
            +
                      'difficulty' => 11187257.46136079,
         
     | 
| 
      
 44 
     | 
    
         
            +
                      'errors' => "",
         
     | 
| 
      
 45 
     | 
    
         
            +
                      'generate' => false,
         
     | 
| 
      
 46 
     | 
    
         
            +
                      'genproclimit' => -1,
         
     | 
| 
      
 47 
     | 
    
         
            +
                      'hashespersec' => 0,
         
     | 
| 
      
 48 
     | 
    
         
            +
                      'pooledtx' => 0,
         
     | 
| 
      
 49 
     | 
    
         
            +
                      'testnet' => false
         
     | 
| 
      
 50 
     | 
    
         
            +
                    }
         
     | 
| 
      
 51 
     | 
    
         
            +
                  end
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                service 'getblock' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  it "should produce the expected result" do
         
     | 
| 
      
 56 
     | 
    
         
            +
                    result("0000000000000002e004985f39f929d001448623b312185bf5e4ab50e5a8e60a").should == {
         
     | 
| 
      
 57 
     | 
    
         
            +
                      'hash' => "0000000000000002e004985f39f929d001448623b312185bf5e4ab50e5a8e60a",
         
     | 
| 
      
 58 
     | 
    
         
            +
                      'confirmations' => 19,
         
     | 
| 
      
 59 
     | 
    
         
            +
                      'size' => 5227,
         
     | 
| 
      
 60 
     | 
    
         
            +
                      'height' => 240707,
         
     | 
| 
      
 61 
     | 
    
         
            +
                      'version' => 2,
         
     | 
| 
      
 62 
     | 
    
         
            +
                      'merkleroot' => "18b914e2d6bd4c3118a936af75afbd230611edb6929a607302c0d591ef49b24e",
         
     | 
| 
      
 63 
     | 
    
         
            +
                      'tx' => [
         
     | 
| 
      
 64 
     | 
    
         
            +
                        "cutforsimplicity",
         
     | 
| 
      
 65 
     | 
    
         
            +
                        "27f99033bdcea87b07f8eea4279d7ce24e479fcb49e9f54e9ffb3721e29838ed"
         
     | 
| 
      
 66 
     | 
    
         
            +
                      ],
         
     | 
| 
      
 67 
     | 
    
         
            +
                      'time' => Time.utc(2013, 6, 10, 5, 40, 3),
         
     | 
| 
      
 68 
     | 
    
         
            +
                      'nonce' => 3937756309,
         
     | 
| 
      
 69 
     | 
    
         
            +
                      "bits" => "1a011337",
         
     | 
| 
      
 70 
     | 
    
         
            +
                      "difficulty" => 15605632.68128593,
         
     | 
| 
      
 71 
     | 
    
         
            +
                      "previousblockhash" => "000000000000003fa76b2abdd3036d183d7e24cfb6b543781d59cdca289f6053",
         
     | 
| 
      
 72 
     | 
    
         
            +
                      "nextblockhash" => "0000000000000087a1e962f618f757393930e58a745165033fc9d281b7bb568a"
         
     | 
| 
      
 73 
     | 
    
         
            +
                    }
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
       37 
77 
     | 
    
         
             
                service 'getblockcount' do
         
     | 
| 
       38 
78 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       39 
79 
     | 
    
         
             
                    result.should == 141972
         
     | 
| 
         @@ -45,50 +85,50 @@ describe Bitcoin::Client do 
     | 
|
| 
       45 
85 
     | 
    
         
             
                    result.should == 141972
         
     | 
| 
       46 
86 
     | 
    
         
             
                  end
         
     | 
| 
       47 
87 
     | 
    
         
             
                end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
       49 
89 
     | 
    
         
             
                service 'getconnectioncount' do
         
     | 
| 
       50 
90 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       51 
91 
     | 
    
         
             
                    result.should == 8
         
     | 
| 
       52 
92 
     | 
    
         
             
                  end
         
     | 
| 
       53 
93 
     | 
    
         
             
                end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
       55 
95 
     | 
    
         
             
                service 'getdifficulty' do
         
     | 
| 
       56 
96 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       57 
97 
     | 
    
         
             
                    result.should == 1805700.83619367
         
     | 
| 
       58 
98 
     | 
    
         
             
                  end
         
     | 
| 
       59 
99 
     | 
    
         
             
                end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
       61 
101 
     | 
    
         
             
                service 'getgenerate' do
         
     | 
| 
       62 
102 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       63 
103 
     | 
    
         
             
                    result.should be_false
         
     | 
| 
       64 
104 
     | 
    
         
             
                  end
         
     | 
| 
       65 
105 
     | 
    
         
             
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
       67 
107 
     | 
    
         
             
                service 'gethashespersec' do
         
     | 
| 
       68 
108 
     | 
    
         
             
                  it "should produce the expected result" do
         
     | 
| 
       69 
109 
     | 
    
         
             
                    result.should == 0
         
     | 
| 
       70 
110 
     | 
    
         
             
                  end
         
     | 
| 
       71 
111 
     | 
    
         
             
                end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
       73 
113 
     | 
    
         
             
                service 'listreceivedbyaddress' do
         
     | 
| 
       74 
114 
     | 
    
         
             
                  context 'without params' do
         
     | 
| 
       75 
115 
     | 
    
         
             
                    it "should produce the expected result" do
         
     | 
| 
       76 
116 
     | 
    
         
             
                      result.should == [{
         
     | 
| 
       77 
117 
     | 
    
         
             
                        'address' => "1234",
         
     | 
| 
       78 
     | 
    
         
            -
                        'account' => "", 
     | 
| 
      
 118 
     | 
    
         
            +
                        'account' => "",
         
     | 
| 
       79 
119 
     | 
    
         
             
                        'label' => "",
         
     | 
| 
       80 
     | 
    
         
            -
                        'amount' => 0.001, 
     | 
| 
      
 120 
     | 
    
         
            +
                        'amount' => 0.001,
         
     | 
| 
       81 
121 
     | 
    
         
             
                        'confirmations' => 180}]
         
     | 
| 
       82 
122 
     | 
    
         
             
                    end
         
     | 
| 
       83 
123 
     | 
    
         
             
                  end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
       85 
125 
     | 
    
         
             
                  context 'with minconf 0' do
         
     | 
| 
       86 
126 
     | 
    
         
             
                    it "should produce the expected result" do
         
     | 
| 
       87 
127 
     | 
    
         
             
                      result(0).should == [{
         
     | 
| 
       88 
128 
     | 
    
         
             
                        'address' => "1234",
         
     | 
| 
       89 
     | 
    
         
            -
                        'account' => "", 
     | 
| 
      
 129 
     | 
    
         
            +
                        'account' => "",
         
     | 
| 
       90 
130 
     | 
    
         
             
                        'label' => "",
         
     | 
| 
       91 
     | 
    
         
            -
                        'amount' => 0.001, 
     | 
| 
      
 131 
     | 
    
         
            +
                        'amount' => 0.001,
         
     | 
| 
       92 
132 
     | 
    
         
             
                        'confirmations' => 180}]
         
     | 
| 
       93 
133 
     | 
    
         
             
                    end
         
     | 
| 
       94 
134 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -97,12 +137,48 @@ describe Bitcoin::Client do 
     | 
|
| 
       97 
137 
     | 
    
         
             
                    it "should produce the expected result" do
         
     | 
| 
       98 
138 
     | 
    
         
             
                      result(0, true).should == [{
         
     | 
| 
       99 
139 
     | 
    
         
             
                        'address' => "1234",
         
     | 
| 
       100 
     | 
    
         
            -
                        'account' => "", 
     | 
| 
      
 140 
     | 
    
         
            +
                        'account' => "",
         
     | 
| 
       101 
141 
     | 
    
         
             
                        'label' => "",
         
     | 
| 
       102 
     | 
    
         
            -
                        'amount' => 0.001, 
     | 
| 
      
 142 
     | 
    
         
            +
                        'amount' => 0.001,
         
     | 
| 
       103 
143 
     | 
    
         
             
                        'confirmations' => 180}]
         
     | 
| 
       104 
144 
     | 
    
         
             
                    end
         
     | 
| 
       105 
145 
     | 
    
         
             
                  end
         
     | 
| 
       106 
146 
     | 
    
         
             
                end
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
                service 'setaccount' do
         
     | 
| 
      
 149 
     | 
    
         
            +
                  it 'maps the call correctly' do
         
     | 
| 
      
 150 
     | 
    
         
            +
                    subject.api.should_receive(:request).with(*%w(setaccount bitcoinaddress account))
         
     | 
| 
      
 151 
     | 
    
         
            +
                    result('bitcoinaddress', 'account').should be_nil
         
     | 
| 
      
 152 
     | 
    
         
            +
                  end
         
     | 
| 
      
 153 
     | 
    
         
            +
                end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                service 'signmessage' do
         
     | 
| 
      
 156 
     | 
    
         
            +
                  context 'success' do
         
     | 
| 
      
 157 
     | 
    
         
            +
                    it "should produce the expected result" do
         
     | 
| 
      
 158 
     | 
    
         
            +
                      result('valid_address', 'message').should == 'Gwz2BAaqdsLTqJsh5a4'
         
     | 
| 
      
 159 
     | 
    
         
            +
                    end
         
     | 
| 
      
 160 
     | 
    
         
            +
                  end
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
                  context 'invalid address' do
         
     | 
| 
      
 163 
     | 
    
         
            +
                    it "should produce the expected result" do
         
     | 
| 
      
 164 
     | 
    
         
            +
                      lambda { result('invalid_address', 'message').should }.should \
         
     | 
| 
      
 165 
     | 
    
         
            +
                        raise_error Bitcoin::Errors::RPCError
         
     | 
| 
      
 166 
     | 
    
         
            +
                    end
         
     | 
| 
      
 167 
     | 
    
         
            +
                  end
         
     | 
| 
      
 168 
     | 
    
         
            +
                end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                service 'verifymessage' do
         
     | 
| 
      
 171 
     | 
    
         
            +
                  context 'success' do
         
     | 
| 
      
 172 
     | 
    
         
            +
                    it "should produce the expected result" do
         
     | 
| 
      
 173 
     | 
    
         
            +
                      result('address', 'message', 'signature').should be_true
         
     | 
| 
      
 174 
     | 
    
         
            +
                    end
         
     | 
| 
      
 175 
     | 
    
         
            +
                  end
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
                  context 'failure' do
         
     | 
| 
      
 178 
     | 
    
         
            +
                    it "should produce the expected result" do
         
     | 
| 
      
 179 
     | 
    
         
            +
                      result('address', 'message', 'signature').should be_false
         
     | 
| 
      
 180 
     | 
    
         
            +
                    end
         
     | 
| 
      
 181 
     | 
    
         
            +
                  end
         
     | 
| 
      
 182 
     | 
    
         
            +
                end
         
     | 
| 
       107 
183 
     | 
    
         
             
              end
         
     | 
| 
       108 
184 
     | 
    
         
             
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,3 +1,6 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'coveralls'
         
     | 
| 
      
 2 
     | 
    
         
            +
            Coveralls.wear!
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       1 
4 
     | 
    
         
             
            require 'fakeweb'
         
     | 
| 
       2 
5 
     | 
    
         | 
| 
       3 
6 
     | 
    
         
             
            # bitcoin user settings
         
     | 
| 
         @@ -8,8 +11,8 @@ require File.expand_path('../lib/bitcoin-client', File.dirname(__FILE__)) 
     | 
|
| 
       8 
11 
     | 
    
         | 
| 
       9 
12 
     | 
    
         
             
            Dir[File.expand_path("support/**/*.rb", File.dirname(__FILE__))].each { |f| require f }
         
     | 
| 
       10 
13 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            FakeWeb.allow_net_connect = false
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
14 
     | 
    
         
             
            RSpec.configure do |c|
         
     | 
| 
       14 
15 
     | 
    
         
             
              c.include FixturesHelper
         
     | 
| 
      
 16 
     | 
    
         
            +
              c.before { FakeWeb.allow_net_connect = false }
         
     | 
| 
      
 17 
     | 
    
         
            +
              c.after  { FakeWeb.allow_net_connect = true  }
         
     | 
| 
       15 
18 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,65 +1,114 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bitcoin-client
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
              version: 0.0.1
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2
         
     | 
| 
       6 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
     | 
    
         
            -
            authors: 
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
       8 
7 
     | 
    
         
             
            - Colin MacKenzie IV
         
     | 
| 
       9 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
               
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2013-11-05 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.9'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :development
         
     | 
| 
       17 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       18 
     | 
    
         
            -
               
     | 
| 
       19 
     | 
    
         
            -
                 
     | 
| 
       20 
     | 
    
         
            -
                 
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0.9'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '2.6'
         
     | 
| 
       24 
48 
     | 
    
         
             
              type: :development
         
     | 
| 
       25 
     | 
    
         
            -
               
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '2.6'
         
     | 
| 
      
 55 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
       27 
56 
     | 
    
         
             
              name: fakeweb
         
     | 
| 
      
 57 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 58 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 60 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 61 
     | 
    
         
            +
                    version: '1.3'
         
     | 
| 
      
 62 
     | 
    
         
            +
              type: :development
         
     | 
| 
       28 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       29 
     | 
    
         
            -
               
     | 
| 
       30 
     | 
    
         
            -
                 
     | 
| 
       31 
     | 
    
         
            -
                 
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 65 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 67 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 68 
     | 
    
         
            +
                    version: '1.3'
         
     | 
| 
      
 69 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 70 
     | 
    
         
            +
              name: coveralls
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 72 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 73 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 74 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 75 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       35 
76 
     | 
    
         
             
              type: :development
         
     | 
| 
       36 
     | 
    
         
            -
              version_requirements: *id002
         
     | 
| 
       37 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       38 
     | 
    
         
            -
              name: rest-client
         
     | 
| 
       39 
77 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       40 
     | 
    
         
            -
               
     | 
| 
       41 
     | 
    
         
            -
                 
     | 
| 
       42 
     | 
    
         
            -
                 
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
      
 78 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 79 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 80 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 81 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 82 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 83 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 84 
     | 
    
         
            +
              name: rest-client
         
     | 
| 
      
 85 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 86 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 87 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 88 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 89 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       46 
90 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       47 
     | 
    
         
            -
               
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
      
 91 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 92 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 93 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 94 
     | 
    
         
            +
                - - '>='
         
     | 
| 
      
 95 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 96 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 97 
     | 
    
         
            +
            description: Provides a Ruby library to the complete Bitcoin JSON-RPC API. Implements
         
     | 
| 
      
 98 
     | 
    
         
            +
              all methods listed at https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list
         
     | 
| 
      
 99 
     | 
    
         
            +
              and lets you set options such as the host and port number, and whether to use SSL.
         
     | 
| 
      
 100 
     | 
    
         
            +
            email:
         
     | 
| 
       50 
101 
     | 
    
         
             
            - sinisterchipmunk@gmail.com
         
     | 
| 
       51 
102 
     | 
    
         
             
            executables: []
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
103 
     | 
    
         
             
            extensions: []
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
104 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
            files: 
         
     | 
| 
      
 105 
     | 
    
         
            +
            files:
         
     | 
| 
       58 
106 
     | 
    
         
             
            - .gitignore
         
     | 
| 
      
 107 
     | 
    
         
            +
            - .travis.yml
         
     | 
| 
       59 
108 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       60 
109 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       61 
110 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       62 
     | 
    
         
            -
            -  
     | 
| 
      
 111 
     | 
    
         
            +
            - bitcoin-client.gemspec
         
     | 
| 
       63 
112 
     | 
    
         
             
            - lib/bitcoin-client.rb
         
     | 
| 
       64 
113 
     | 
    
         
             
            - lib/bitcoin.rb
         
     | 
| 
       65 
114 
     | 
    
         
             
            - lib/bitcoin/api.rb
         
     | 
| 
         @@ -72,6 +121,7 @@ files: 
     | 
|
| 
       72 
121 
     | 
    
         
             
            - spec/fixtures/backupwallet_without_params.json
         
     | 
| 
       73 
122 
     | 
    
         
             
            - spec/fixtures/build_fixture.rb
         
     | 
| 
       74 
123 
     | 
    
         
             
            - spec/fixtures/getbalance.json
         
     | 
| 
      
 124 
     | 
    
         
            +
            - spec/fixtures/getblock.json
         
     | 
| 
       75 
125 
     | 
    
         
             
            - spec/fixtures/getblockcount.json
         
     | 
| 
       76 
126 
     | 
    
         
             
            - spec/fixtures/getblocknumber.json
         
     | 
| 
       77 
127 
     | 
    
         
             
            - spec/fixtures/getconnectioncount.json
         
     | 
| 
         @@ -79,10 +129,16 @@ files: 
     | 
|
| 
       79 
129 
     | 
    
         
             
            - spec/fixtures/getgenerate.json
         
     | 
| 
       80 
130 
     | 
    
         
             
            - spec/fixtures/gethashespersec.json
         
     | 
| 
       81 
131 
     | 
    
         
             
            - spec/fixtures/getinfo.json
         
     | 
| 
      
 132 
     | 
    
         
            +
            - spec/fixtures/getmininginfo.json
         
     | 
| 
       82 
133 
     | 
    
         
             
            - spec/fixtures/help.json
         
     | 
| 
       83 
134 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_with_minconf_0.json
         
     | 
| 
       84 
135 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_with_minconf_0_and_includeempty_true.json
         
     | 
| 
       85 
136 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_without_params.json
         
     | 
| 
      
 137 
     | 
    
         
            +
            - spec/fixtures/setaccount.json
         
     | 
| 
      
 138 
     | 
    
         
            +
            - spec/fixtures/signmessage_invalid_address.json
         
     | 
| 
      
 139 
     | 
    
         
            +
            - spec/fixtures/signmessage_success.json
         
     | 
| 
      
 140 
     | 
    
         
            +
            - spec/fixtures/verifymessage_failure.json
         
     | 
| 
      
 141 
     | 
    
         
            +
            - spec/fixtures/verifymessage_success.json
         
     | 
| 
       86 
142 
     | 
    
         
             
            - spec/lib/bitcoin/api_spec.rb
         
     | 
| 
       87 
143 
     | 
    
         
             
            - spec/lib/bitcoin/client_spec.rb
         
     | 
| 
       88 
144 
     | 
    
         
             
            - spec/lib/bitcoin/request_spec.rb
         
     | 
| 
         @@ -92,35 +148,32 @@ files: 
     | 
|
| 
       92 
148 
     | 
    
         
             
            - spec/support/rpc_service_helper.rb
         
     | 
| 
       93 
149 
     | 
    
         
             
            homepage: http://github.com/sinisterchipmunk/bitcoin-client
         
     | 
| 
       94 
150 
     | 
    
         
             
            licenses: []
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
      
 151 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
       96 
152 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       97 
153 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            require_paths: 
         
     | 
| 
      
 154 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       100 
155 
     | 
    
         
             
            - lib
         
     | 
| 
       101 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
       102 
     | 
    
         
            -
               
     | 
| 
       103 
     | 
    
         
            -
               
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
               
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
       111 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
         
     | 
| 
       112 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
      
 156 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 157 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 158 
     | 
    
         
            +
              - - '>='
         
     | 
| 
      
 159 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 160 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 161 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 162 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 163 
     | 
    
         
            +
              - - '>='
         
     | 
| 
      
 164 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 165 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       113 
166 
     | 
    
         
             
            requirements: []
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
167 
     | 
    
         
             
            rubyforge_project: bitcoin-client
         
     | 
| 
       116 
     | 
    
         
            -
            rubygems_version:  
     | 
| 
      
 168 
     | 
    
         
            +
            rubygems_version: 2.0.3
         
     | 
| 
       117 
169 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       118 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 170 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
       119 
171 
     | 
    
         
             
            summary: Provides a Ruby library to the complete Bitcoin JSON-RPC API.
         
     | 
| 
       120 
     | 
    
         
            -
            test_files: 
     | 
| 
      
 172 
     | 
    
         
            +
            test_files:
         
     | 
| 
       121 
173 
     | 
    
         
             
            - spec/fixtures/backupwallet_without_params.json
         
     | 
| 
       122 
174 
     | 
    
         
             
            - spec/fixtures/build_fixture.rb
         
     | 
| 
       123 
175 
     | 
    
         
             
            - spec/fixtures/getbalance.json
         
     | 
| 
      
 176 
     | 
    
         
            +
            - spec/fixtures/getblock.json
         
     | 
| 
       124 
177 
     | 
    
         
             
            - spec/fixtures/getblockcount.json
         
     | 
| 
       125 
178 
     | 
    
         
             
            - spec/fixtures/getblocknumber.json
         
     | 
| 
       126 
179 
     | 
    
         
             
            - spec/fixtures/getconnectioncount.json
         
     | 
| 
         @@ -128,10 +181,16 @@ test_files: 
     | 
|
| 
       128 
181 
     | 
    
         
             
            - spec/fixtures/getgenerate.json
         
     | 
| 
       129 
182 
     | 
    
         
             
            - spec/fixtures/gethashespersec.json
         
     | 
| 
       130 
183 
     | 
    
         
             
            - spec/fixtures/getinfo.json
         
     | 
| 
      
 184 
     | 
    
         
            +
            - spec/fixtures/getmininginfo.json
         
     | 
| 
       131 
185 
     | 
    
         
             
            - spec/fixtures/help.json
         
     | 
| 
       132 
186 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_with_minconf_0.json
         
     | 
| 
       133 
187 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_with_minconf_0_and_includeempty_true.json
         
     | 
| 
       134 
188 
     | 
    
         
             
            - spec/fixtures/listreceivedbyaddress_without_params.json
         
     | 
| 
      
 189 
     | 
    
         
            +
            - spec/fixtures/setaccount.json
         
     | 
| 
      
 190 
     | 
    
         
            +
            - spec/fixtures/signmessage_invalid_address.json
         
     | 
| 
      
 191 
     | 
    
         
            +
            - spec/fixtures/signmessage_success.json
         
     | 
| 
      
 192 
     | 
    
         
            +
            - spec/fixtures/verifymessage_failure.json
         
     | 
| 
      
 193 
     | 
    
         
            +
            - spec/fixtures/verifymessage_success.json
         
     | 
| 
       135 
194 
     | 
    
         
             
            - spec/lib/bitcoin/api_spec.rb
         
     | 
| 
       136 
195 
     | 
    
         
             
            - spec/lib/bitcoin/client_spec.rb
         
     | 
| 
       137 
196 
     | 
    
         
             
            - spec/lib/bitcoin/request_spec.rb
         
     |