class StartcoinClient::Client
Attributes
Public Class Methods
# File lib/startcoin_client/client.rb, line 21 def initialize(user, pass, options = {}) @api = StartcoinClient::API.new({ :user => user, :pass => pass }.merge(options)) end
Public Instance Methods
Safely copies wallet.dat to destination, which can be a directory or a path with filename.
# File lib/startcoin_client/client.rb, line 26 def backupwallet(destination) @api.request 'backupwallet', destination end
Creates a multi-signature address and returns a json object
# File lib/startcoin_client/client.rb, line 31 def createmultisig(nrequired, keys) @api.request '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/startcoin_client/client.rb, line 37 def createrawtransaction(transactionid = nil, address_amount) @api.request 'createrawtransaction', transactionid, address_amount end
Return a JSON object representing the serialized, hex-encoded transaction.
# File lib/startcoin_client/client.rb, line 42 def decoderawtransaction(hexstring) @api.request 'decoderawtransaction', hexstring end
Returns the account associated with the given address.
# File lib/startcoin_client/client.rb, line 47 def getaccount(bitcoinaddress) @api.request 'getaccount', bitcoinaddress end
Returns the current bitcoin address for receiving payments to this account.
# File lib/startcoin_client/client.rb, line 52 def getaccountaddress(account) @api.request 'getaccountaddress', account end
Returns the list of addresses for the given account.
# File lib/startcoin_client/client.rb, line 57 def getaddressesbyaccount(account) @api.request '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/startcoin_client/client.rb, line 63 def getbalance(account = nil, minconf = 1) @api.request 'getbalance', account, minconf end
# File lib/startcoin_client/client.rb, line 67 def getbestblockhash @api.request 'getbestblockhash' end
Dumps the block existing with specified hash.
# File lib/startcoin_client/client.rb, line 78 def getblock(hash) block = @api.request '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/startcoin_client/client.rb, line 73 def getblockbycount(height) @api.request 'getblockbycount', height end
Returns the number of blocks in the longest block chain.
# File lib/startcoin_client/client.rb, line 85 def getblockcount @api.request 'getblockcount' end
Returns hash of block in best-block-chain at <index>; index 0 is the genesis block
# File lib/startcoin_client/client.rb, line 95 def getblockhash(index) @api.request 'getblockhash', index end
Returns the block number of the latest block in the longest block chain.
# File lib/startcoin_client/client.rb, line 90 def getblocknumber @api.request 'getblocknumber' end
Returns the number of connections to other nodes.
# File lib/startcoin_client/client.rb, line 100 def getconnectioncount @api.request 'getconnectioncount' end
Returns the proof-of-work difficulty as a multiple of the minimum difficulty.
# File lib/startcoin_client/client.rb, line 105 def getdifficulty @api.request 'getdifficulty' end
Returns true or false whether bitcoind is currently generating hashes
# File lib/startcoin_client/client.rb, line 110 def getgenerate @api.request 'getgenerate' end
Returns a recent hashes per second performance measurement while generating.
# File lib/startcoin_client/client.rb, line 115 def gethashespersec @api.request 'gethashespersec' end
Returns an object containing various state info.
# File lib/startcoin_client/client.rb, line 120 def getinfo @api.request 'getinfo' end
Returns an object containing mining info.
# File lib/startcoin_client/client.rb, line 130 def getmininginfo @api.request '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/startcoin_client/client.rb, line 136 def getnewaddress(account = nil) @api.request 'getnewaddress', account end
Returns data about each connected network node.
# File lib/startcoin_client/client.rb, line 125 def getpeerinfo @api.request 'getpeerinfo' end
Gets all mempool txs (pedning/waiting to be added in a block)
# File lib/startcoin_client/client.rb, line 163 def getrawmempool @api.request '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/startcoin_client/client.rb, line 158 def getrawtransaction(txid, verbose = 0) @api.request 'getrawtransaction', txid, verbose end
Returns the total amount received by addresses with account
in transactions with at least minconf
confirmations.
# File lib/startcoin_client/client.rb, line 142 def getreceivedbyaccount(account, minconf = 1) @api.request 'getreceivedbyaccount', account, minconf end
Returns the total amount received by bitcoinaddress
in transactions with at least minconf
confirmations.
# File lib/startcoin_client/client.rb, line 147 def getreceivedbyaddress(bitcoinaddress, minconf = 1) @api.request 'getreceivedbyaddress', bitcoinaddress, minconf end
Get detailed information about txid
# File lib/startcoin_client/client.rb, line 152 def gettransaction(txid) @api.request '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/startcoin_client/client.rb, line 174 def getwork(data = nil) @api.request 'getwork', data end
List commands, or get help for a command.
# File lib/startcoin_client/client.rb, line 179 def help(command = nil) @api.request 'help', command end
# File lib/startcoin_client/client.rb, line 5 def host; api.host; end
# File lib/startcoin_client/client.rb, line 12 def host=(a); api.host = a; end
Adds a private key (as returned by dumpprivkey) to your wallet.
# File lib/startcoin_client/client.rb, line 184 def importprivkey(bitcoinprivkey, label = nil, rescan = true) @api.request 'importprivkey', bitcoinprivkey, label, rescan end
Returns Object
that has account names as keys, account balances as values.
# File lib/startcoin_client/client.rb, line 189 def listaccounts(minconf = 1) @api.request '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/startcoin_client/client.rb, line 199 def listreceivedbyaccount(minconf = 1, includeempty = false) @api.request '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/startcoin_client/client.rb, line 211 def listreceivedbyaddress(minconf = 1, includeempty = false) @api.request 'listreceivedbyaddress', minconf, includeempty end
Returns transactions since <hash> block
# File lib/startcoin_client/client.rb, line 221 def listsinceblock(hash) @api.request 'listsinceblock', hash end
Returns up to count
most recent transactions for account account
.
# File lib/startcoin_client/client.rb, line 216 def listtransactions(account = '' , count = 10, from = 0) @api.request 'listtransactions', account, count, from end
Move from one account in your wallet to another.
# File lib/startcoin_client/client.rb, line 227 def move(fromaccount, toaccount, amount, minconf = 1, comment = nil) @api.request 'move', fromaccount, toaccount, amount, minconf, comment end
# File lib/startcoin_client/client.rb, line 17 def options api.options end
# File lib/startcoin_client/client.rb, line 4 def pass; api.pass; end
# File lib/startcoin_client/client.rb, line 11 def pass=(a); api.pass = a; end
# File lib/startcoin_client/client.rb, line 6 def port; api.port; end
# File lib/startcoin_client/client.rb, line 13 def port=(a); api.port = a; end
# File lib/startcoin_client/client.rb, line 8 def proxy; api.proxy; end
# File lib/startcoin_client/client.rb, line 15 def proxy=(a); api.proxy = a; 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/startcoin_client/client.rb, line 232 def searchrawtransactions(bitcoinaddress, verbose=1) @api.request 'searchrawtransactions', bitcoinaddress, verbose end
amount
is a real and is rounded to 8 decimal places. Returns the transaction ID if successful.
# File lib/startcoin_client/client.rb, line 237 def sendfrom(fromaccount, tobitcoinaddress, amount, minconf = 1, comment = nil, comment_to = nil) @api.request 'sendfrom', fromaccount, tobitcoinaddress, amount, minconf, comment, comment_to end
# File lib/startcoin_client/client.rb, line 250 def sendmany(fromaccount, addresses_amounts, minconf = 1, comment = nil) @api.request 'sendmany', fromaccount, addresses_amounts, minconf, comment end
Submits raw transaction (serialized, hex-encoded) to local node and network.
# File lib/startcoin_client/client.rb, line 242 def sendrawtransaction(hexstring) @api.request 'sendrawtransaction', hexstring end
amount
is a real and is rounded to 8 decimal places
# File lib/startcoin_client/client.rb, line 246 def sendtoaddress(bitcoinaddress, amount, comment = nil, comment_to = nil) @api.request 'sendtoaddress', bitcoinaddress, amount, comment, comment_to end
Sets the account associated with the given address.
# File lib/startcoin_client/client.rb, line 255 def setaccount(bitcoinaddress, account) @api.request '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/startcoin_client/client.rb, line 261 def setgenerate(generate, genproclimit = -1) @api.request 'setgenerate', generate, genproclimit end
Sign a message using bitcoinaddress
.
# File lib/startcoin_client/client.rb, line 281 def signmessage(bitcoinaddress, message) @api.request 'signmessage', bitcoinaddress, message end
Sign inputs for raw transaction (serialized, hex-encoded).
# File lib/startcoin_client/client.rb, line 266 def signrawtransaction(hexstring, transaction = nil, privatekey =nil, sighashtype = "ALL") @api.request 'signrawtransaction', hexstring, transaction, privatekey, sighashtype end
# File lib/startcoin_client/client.rb, line 7 def ssl; api.ssl; end
# File lib/startcoin_client/client.rb, line 14 def ssl=(a); api.ssl = a; end
# File lib/startcoin_client/client.rb, line 9 def ssl?; api.ssl?; end
Stop bitcoin server.
# File lib/startcoin_client/client.rb, line 271 def stop @api.request 'stop' end
# File lib/startcoin_client/client.rb, line 3 def user; api.user; end
# File lib/startcoin_client/client.rb, line 10 def user=(a); api.user = a; end
Return information about bitcoinaddress
.
# File lib/startcoin_client/client.rb, line 276 def validateaddress(bitcoinaddress) @api.request 'validateaddress', bitcoinaddress end
Verify signature made by bitcoinaddress
.
# File lib/startcoin_client/client.rb, line 286 def verifymessage(bitcoinaddress, signature, message) @api.request '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/startcoin_client/client.rb, line 299 def walletlock @api.request 'walletlock' end
Stores the wallet decryption key in memory for timeout
seconds.
# File lib/startcoin_client/client.rb, line 291 def walletpassphrase(passphrase, timeout) @api.request 'walletpassphrase', passphrase, timeout end