Skip to content

Ruby interface to the 'bitcoind' JSON-RPC API

License

Notifications You must be signed in to change notification settings

NARKOZ/bitcoiner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcoiner Build Status

Automate your Bitcoin transactions with this Ruby interface to the bitcoind JSON-RPC API. This is a fork of bitcoind Ruby gem.

Super Mario Coin

Installation

Install it from rubygems:

gem install bitcoiner

Or add to a Gemfile:

gem 'bitcoiner'
# gem 'bitcoiner', github: 'NARKOZ/bitcoiner'

Usage

Connecting

Before connecting, you will need to configure a username and password for bitcoind, and start bitcoind. Once that's done:

client = Bitcoiner.new 'username', 'password' # REPLACE WITH YOUR bitcoin.conf rpcuser/rpcpassword
# => #<Bitcoiner::Client "http://username:password@127.0.0.1:8332" >

Account Balances

You can get the balance of all addresses controlled by the client:

client.balance
# => 12.34

You can also get a hash of all accounts the client controls:

client.accounts
# => {"Your Address"=>#<Bitcoiner::Account "Your Address" >, "eve-online ransoms"=>#<Bitcoiner::Account "eve-online ransoms" >}

And of course each account has its own balance too:

ransom = client.accounts['eve-online ransoms']
# => #<Bitcoiner::Account "eve-online ransoms" >

ransom.balance
# => 2.19

Transactions

You can get all the transactions in an account:

ransom.transactions
# => [#<Bitcoiner::Transaction abadbabe123deadbeef 2.19 to eve-online ransoms at 2011-02-19 16:21:09 -0500>]

You can send money from an account too:

ransom.send_to 'destinationaddress', 2
# => #<Bitcoiner::Account deadbeef888abadbeef UNCONFIRMED>

Making Accounts

Creating an account with an associated address is done through the accounts interface:

tiny_wings = client.accounts.new 'tiny wings ransoms'
# => #<Bitcoiner::Account "tiny wings ransoms" >

tiny_wings.address
# => "1KV5khnHbbHF2nNQkk7Pe5nPndEj43U27r"

Logging

You may log requests (responses aren't logged) by setting a logger:

logger = Logger.new(STDOUT)
client = Bitcoiner::Client.new('username', 'password', 'http://a.c', {
  logger: logger,
})

License

Released under the MIT license. See LICENSE.txt for details.