class Rallet::Wallets::Common
Extracted from github.com/sinisterchipmunk/bitcoin-client/blob/master/lib/bitcoin-client/client.rb Date 4 Jan 2015
Attributes
Public Class Methods
Sample user:pass@localhost:2082
# File lib/rallet/wallets/common.rb, line 11 def initialize(service_url, rpc_version = 1.1) @client = RPC::JSON::Client.new(service_url, rpc_version) end
Public Instance Methods
Safely copies wallet.dat to destination, which can be a directory or a path with filename.
# File lib/rallet/wallets/common.rb, line 16 def backupwallet(destination) @client.send 'backupwallet', destination end
Creates a multi-signature address and returns a json object
# File lib/rallet/wallets/common.rb, line 21 def createmultisig(nrequired, keys) @client.send 'createmultisig', nrequired, keys end
nCreate a transaction spending given inputs (array of objects containing transaction id and output number), sending to given address(es)
# File lib/rallet/wallets/common.rb, line 27 def createrawtransaction(transactionid = nil, address_amount) @client.send 'createrawtransaction', transactionid, address_amount end
Return a JSON object representing the serialized, hex-encoded transaction.
# File lib/rallet/wallets/common.rb, line 32 def decoderawtransaction(hexstring) @client.send 'decoderawtransaction', hexstring end
Returns the account associated with the given address.
# File lib/rallet/wallets/common.rb, line 37 def getaccount(bitcoinaddress) @client.send 'getaccount', bitcoinaddress end
Returns the current bitcoin address for receiving payments to this account.
# File lib/rallet/wallets/common.rb, line 42 def getaccountaddress(account) @client.send 'getaccountaddress', account end
Returns the list of addresses for the given account.
# File lib/rallet/wallets/common.rb, line 47 def getaddressesbyaccount(account) @client.send 'getaddressesbyaccount', account end
If account
is not specified, returns the server’s total available balance. If account
is specified, returns the balance in the account.
# File lib/rallet/wallets/common.rb, line 53 def getbalance(account = nil, minconf = 1) @client.send 'getbalance', account, minconf end
# File lib/rallet/wallets/common.rb, line 57 def getbestblockhash @client.send 'getbestblockhash' end
Dumps the block existing with specified hash.
# File lib/rallet/wallets/common.rb, line 68 def getblock(hash) block = @client.send 'getblock', hash block["time"] = Time.at(block["time"]).utc block end
Dumps the block existing at specified height. Note: this is not available in the official release
# File lib/rallet/wallets/common.rb, line 63 def getblockbycount(height) @client.send 'getblockbycount', height end
Returns the number of blocks in the longest block chain.
# File lib/rallet/wallets/common.rb, line 75 def getblockcount @client.send 'getblockcount' end
Returns hash of block in best-block-chain at <index>; index 0 is the genesis block
# File lib/rallet/wallets/common.rb, line 85 def getblockhash(index) @client.send 'getblockhash', index end
Returns the block number of the latest block in the longest block chain.
# File lib/rallet/wallets/common.rb, line 80 def getblocknumber @client.send 'getblocknumber' end
Returns the number of connections to other nodes.
# File lib/rallet/wallets/common.rb, line 90 def getconnectioncount @client.send 'getconnectioncount' end
Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
# File lib/rallet/wallets/common.rb, line 95 def getdifficulty @client.send 'getdifficulty' end
Returns true or false whether bitcoind is currently generating hashes
# File lib/rallet/wallets/common.rb, line 100 def getgenerate @client.send 'getgenerate' end
Returns a recent hashes per second performance measurement while generating.
# File lib/rallet/wallets/common.rb, line 105 def gethashespersec @client.send 'gethashespersec' end
Returns an object containing various state info.
# File lib/rallet/wallets/common.rb, line 110 def getinfo @client.send 'getinfo' end
Returns an object containing mining info.
# File lib/rallet/wallets/common.rb, line 120 def getmininginfo @client.send 'getmininginfo' end
Returns a new bitcoin address for receiving payments. If account
is specified (recommended), it is added to the address book so payments received with the address will be credited to account
.
# File lib/rallet/wallets/common.rb, line 126 def getnewaddress(account = nil) @client.send 'getnewaddress', account end
Returns data about each connected network node.
# File lib/rallet/wallets/common.rb, line 115 def getpeerinfo @client.send 'getpeerinfo' end
Gets all mempool txs (pedning/waiting to be added in a block)
# File lib/rallet/wallets/common.rb, line 153 def getrawmempool @client.send 'getrawmempool' end
Get raw transaction bout txid
. It outputs the whole transaction chain by default in HEX. If you want JSON, set verbose to 1. When in the bitcoind config is set txindex=1, after reindexing, you can ask about any transaction (not included in your wallet), with this command.
# File lib/rallet/wallets/common.rb, line 148 def getrawtransaction(txid, verbose = 0) @client.send 'getrawtransaction', txid, verbose end
Returns the total amount received by addresses with account
in transactions with at least minconf
confirmations.
# File lib/rallet/wallets/common.rb, line 132 def getreceivedbyaccount(account, minconf = 1) @client.send 'getreceivedbyaccount', account, minconf end
Returns the total amount received by bitcoinaddress
in transactions with at least minconf
confirmations.
# File lib/rallet/wallets/common.rb, line 137 def getreceivedbyaddress(bitcoinaddress, minconf = 1) @client.send 'getreceivedbyaddress', bitcoinaddress, minconf end
Get detailed information about txid
# File lib/rallet/wallets/common.rb, line 142 def gettransaction(txid) @client.send 'gettransaction', txid end
If data
is not specified, returns formatted hash data to work on:
:midstate => precomputed hash state after hashing the first half of the data :data => block data :hash1 => formatted hash buffer for second hash :target => little endian hash target
If data
is specified, tries to solve the block and returns true if it was successful.
# File lib/rallet/wallets/common.rb, line 164 def getwork(data = nil) @client.send 'getwork', data end
List commands, or get help for a command.
# File lib/rallet/wallets/common.rb, line 169 def help(command = nil) @client.send 'help', command end
Adds a private key (as returned by dumpprivkey) to your wallet.
# File lib/rallet/wallets/common.rb, line 174 def importprivkey(bitcoinprivkey, label = nil, rescan = true) @client.send 'importprivkey', bitcoinprivkey, label, rescan end
Returns Object that has account names as keys, account balances as values.
# File lib/rallet/wallets/common.rb, line 179 def listaccounts(minconf = 1) @client.send 'listaccounts', minconf end
Returns an array of objects containing:
:account => the account of the receiving addresses :amount => total amount received by addresses with this account :confirmations => number of confirmations of the most recent transaction included
# File lib/rallet/wallets/common.rb, line 189 def listreceivedbyaccount(minconf = 1, includeempty = false) @client.send 'listreceivedbyaccount', minconf, includeempty end
Returns an array of objects containing:
:address => receiving address :account => the account of the receiving address :amount => total amount received by the address :confirmations => number of confirmations of the most recent transaction included
To get a list of accounts on the system, execute bitcoind listreceivedbyaddress 0 true
# File lib/rallet/wallets/common.rb, line 201 def listreceivedbyaddress(minconf = 1, includeempty = false) @client.send 'listreceivedbyaddress', minconf, includeempty end
Returns transactions since <hash> block
# File lib/rallet/wallets/common.rb, line 211 def listsinceblock(hash) @client.send 'listsinceblock', hash end
Returns up to count
most recent transactions for account account
.
# File lib/rallet/wallets/common.rb, line 206 def listtransactions(account = '' , count = 10, from = 0) @client.send 'listtransactions', account, count, from end
Move from one account in your wallet to another.
# File lib/rallet/wallets/common.rb, line 217 def move(fromaccount, toaccount, amount, minconf = 1, comment = nil) @client.send 'move', fromaccount, toaccount, amount, minconf, comment end
Return count transactions with <address> present in their scriptSig, skipping skip at the beginning. The ordering is oldest transaction first; if skip is negative the order returned is newest transaction first and skip+1 transactions are skipped. If verbose=0 only txids are returned rather than the full transactions.
# File lib/rallet/wallets/common.rb, line 222 def searchrawtransactions(bitcoinaddress, verbose=1) @client.send 'searchrawtransactions', bitcoinaddress, verbose end
amount
is a real and is rounded to 8 decimal places. Returns the transaction ID if successful.
# File lib/rallet/wallets/common.rb, line 227 def sendfrom(fromaccount, tobitcoinaddress, amount, minconf = 1, comment = nil, comment_to = nil) @client.send 'sendfrom', fromaccount, tobitcoinaddress, amount, minconf, comment, comment_to end
# File lib/rallet/wallets/common.rb, line 240 def sendmany(fromaccount, addresses_amounts, minconf = 1, comment = nil) @client.send 'sendmany', fromaccount, addresses_amounts, minconf, comment end
Submits raw transaction (serialized, hex-encoded) to local node and network.
# File lib/rallet/wallets/common.rb, line 232 def sendrawtransaction(hexstring) @client.send 'sendrawtransaction', hexstring end
amount
is a real and is rounded to 8 decimal places
# File lib/rallet/wallets/common.rb, line 236 def sendtoaddress(bitcoinaddress, amount, comment = nil, comment_to = nil) @client.send 'sendtoaddress', bitcoinaddress, amount, comment, comment_to end
Sets the account associated with the given address.
# File lib/rallet/wallets/common.rb, line 245 def setaccount(bitcoinaddress, account) @client.send 'setaccount', bitcoinaddress, account end
generate
is true or false to turn generation on or off. Generation is limited to genproclimit
processors, -1 is unlimited.
# File lib/rallet/wallets/common.rb, line 251 def setgenerate(generate, genproclimit = -1) @client.send 'setgenerate', generate, genproclimit end
Sign a message using bitcoinaddress
.
# File lib/rallet/wallets/common.rb, line 271 def signmessage(bitcoinaddress, message) @client.send 'signmessage', bitcoinaddress, message end
Sign inputs for raw transaction (serialized, hex-encoded).
# File lib/rallet/wallets/common.rb, line 256 def signrawtransaction(hexstring, transaction = nil, privatekey =nil, sighashtype = "ALL") @client.send 'signrawtransaction', hexstring, transaction, privatekey, sighashtype end
Stop bitcoin server.
# File lib/rallet/wallets/common.rb, line 261 def stop @client.send 'stop' end
Return information about bitcoinaddress
.
# File lib/rallet/wallets/common.rb, line 266 def validateaddress(bitcoinaddress) @client.send 'validateaddress', bitcoinaddress end
Verify signature made by bitcoinaddress
.
# File lib/rallet/wallets/common.rb, line 276 def verifymessage(bitcoinaddress, signature, message) @client.send 'verifymessage', bitcoinaddress, signature, message end
Removes the wallet encryption key from memory, locking the wallet. After calling this method, you will need to call walletpassphrase again before being able to call any methods which require the wallet to be unlocked.
# File lib/rallet/wallets/common.rb, line 289 def walletlock @client.send 'walletlock' end
Stores the wallet decryption key in memory for timeout
seconds.
# File lib/rallet/wallets/common.rb, line 281 def walletpassphrase(passphrase, timeout) @client.send 'walletpassphrase', passphrase, timeout end