aboutsummaryrefslogtreecommitdiff
path: root/contrib/bitrpc/bitrpc.py
diff options
context:
space:
mode:
authorDavid Perry <enmaku@gmail.com>2011-10-03 16:10:03 -0700
committerDavid Perry <enmaku@gmail.com>2011-10-03 16:10:03 -0700
commit5a105cdb7d79ce0a6ec8f68b6d88a9c3205de47d (patch)
tree58df61f4d1574d3e15eb0f3a186e24a871ca4991 /contrib/bitrpc/bitrpc.py
parent8ad100a55be07efd481641319efe70ba430e8d23 (diff)
Added bitrpc.py which allows for sending of all standard Bitcoin commands via RPC rather than as command line args.
Signed-off-by: David Perry <enmaku@gmail.com>
Diffstat (limited to 'contrib/bitrpc/bitrpc.py')
-rw-r--r--contrib/bitrpc/bitrpc.py324
1 files changed, 324 insertions, 0 deletions
diff --git a/contrib/bitrpc/bitrpc.py b/contrib/bitrpc/bitrpc.py
new file mode 100644
index 0000000000..b02b299177
--- /dev/null
+++ b/contrib/bitrpc/bitrpc.py
@@ -0,0 +1,324 @@
+from jsonrpc import ServiceProxy
+import sys
+import string
+
+# ===== BEGIN USER SETTINGS =====
+# if you do not set these you will be prompted for a password for every command
+rpcuser = ""
+rpcpass = ""
+# ====== END USER SETTINGS ======
+
+
+if rpcpass == "":
+ access = ServiceProxy("http://127.0.0.1:8332")
+else:
+ access = ServiceProxy("http://"+rpcuser+":"+rpcpass+"@127.0.0.1:8332")
+cmd = sys.argv[1].lower()
+
+if cmd == "backupwallet":
+ try:
+ path = raw_input("Enter destination path/filename: ")
+ print access.backupwallet(path)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getaccount":
+ try:
+ addr = raw_input("Enter a Bitcoin address: ")
+ print access.getaccount(addr)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getaccountaddress":
+ try:
+ acct = raw_input("Enter an account name: ")
+ print access.getaccountaddress(acct)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getaddressesbyaccount":
+ try:
+ acct = raw_input("Enter an account name: ")
+ print access.getaddressesbyaccount(acct)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getbalance":
+ try:
+ acct = raw_input("Enter an account (optional): ")
+ mc = raw_input("Minimum confirmations (optional): ")
+ try:
+ print access.getbalance(acct, mc)
+ except:
+ print access.getbalance()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getblockbycount":
+ try:
+ height = raw_input("Height: ")
+ print access.getblockbycount(height)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getblockcount":
+ try:
+ print access.getblockcount()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getblocknumber":
+ try:
+ print access.getblocknumber()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getconnectioncount":
+ try:
+ print access.getconnectioncount()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getdifficulty":
+ try:
+ print access.getdifficulty()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getgenerate":
+ try:
+ print access.getgenerate()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "gethashespersec":
+ try:
+ print access.gethashespersec()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getinfo":
+ try:
+ print access.getinfo()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getnewaddress":
+ try:
+ acct = raw_input("Enter an account name: ")
+ try:
+ print access.getnewaddress(acct)
+ except:
+ print access.getnewaddress()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getreceivedbyaccount":
+ try:
+ acct = raw_input("Enter an account (optional): ")
+ mc = raw_input("Minimum confirmations (optional): ")
+ try:
+ print access.getreceivedbyaccount(acct, mc)
+ except:
+ print access.getreceivedbyaccount()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getreceivedbyaddress":
+ try:
+ addr = raw_input("Enter a Bitcoin address (optional): ")
+ mc = raw_input("Minimum confirmations (optional): ")
+ try:
+ print access.getreceivedbyaddress(addr, mc)
+ except:
+ print access.getreceivedbyaddress()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "gettransaction":
+ try:
+ txid = raw_input("Enter a transaction ID: ")
+ print access.gettransaction(txid)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "getwork":
+ try:
+ data = raw_input("Data (optional): ")
+ try:
+ print access.gettransaction(data)
+ except:
+ print access.gettransaction()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "help":
+ try:
+ cmd = raw_input("Command (optional): ")
+ try:
+ print access.help(cmd)
+ except:
+ print access.help()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "listaccounts":
+ try:
+ mc = raw_input("Minimum confirmations (optional): ")
+ try:
+ print access.listaccounts(mc)
+ except:
+ print access.listaccounts()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "listreceivedbyaccount":
+ try:
+ mc = raw_input("Minimum confirmations (optional): ")
+ incemp = raw_input("Include empty? (true/false, optional): ")
+ try:
+ print access.listreceivedbyaccount(mc, incemp)
+ except:
+ print access.listreceivedbyaccount()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "listreceivedbyaddress":
+ try:
+ mc = raw_input("Minimum confirmations (optional): ")
+ incemp = raw_input("Include empty? (true/false, optional): ")
+ try:
+ print access.listreceivedbyaddress(mc, incemp)
+ except:
+ print access.listreceivedbyaddress()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "listtransactions":
+ try:
+ acct = raw_input("Account (optional): ")
+ count = raw_input("Number of transactions (optional): ")
+ frm = raw_input("Skip (optional):")
+ try:
+ print access.listtransactions(acct, count, frm)
+ except:
+ print access.listtransactions()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "move":
+ try:
+ frm = raw_input("From: ")
+ to = raw_input("To: ")
+ amt = raw_input("Amount:")
+ mc = raw_input("Minimum confirmations (optional): ")
+ comment = raw_input("Comment (optional): ")
+ try:
+ print access.move(frm, to, amt, mc, comment)
+ except:
+ print access.move(frm, to, amt)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "sendfrom":
+ try:
+ frm = raw_input("From: ")
+ to = raw_input("To: ")
+ amt = raw_input("Amount:")
+ mc = raw_input("Minimum confirmations (optional): ")
+ comment = raw_input("Comment (optional): ")
+ commentto = raw_input("Comment-to (optional): ")
+ try:
+ print access.sendfrom(frm, to, amt, mc, comment, commentto)
+ except:
+ print access.sendfrom(frm, to, amt)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "sendmany":
+ try:
+ frm = raw_input("From: ")
+ to = raw_input("To (in format address1:amount1,address2:amount2,...): ")
+ mc = raw_input("Minimum confirmations (optional): ")
+ comment = raw_input("Comment (optional): ")
+ try:
+ print access.sendmany(frm,to,mc,comment)
+ except:
+ print access.sendmany(frm,to)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "sendtoaddress":
+ try:
+ to = raw_input("To (in format address1:amount1,address2:amount2,...): ")
+ amt = raw_input("Amount:")
+ comment = raw_input("Comment (optional): ")
+ commentto = raw_input("Comment-to (optional): ")
+ try:
+ print access.sendtoaddress(to,amt,comment,commentto)
+ except:
+ print access.sendtoaddress(to,amt)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "setaccount":
+ try:
+ addr = raw_input("Address: ")
+ acct = raw_input("Account:")
+ print access.setaccount(addr,acct)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "setgenerate":
+ try:
+ gen= raw_input("Generate? (true/false): ")
+ cpus = raw_input("Max processors/cores (-1 for unlimited, optional):")
+ try:
+ print access.setgenerate(gen, cpus)
+ except:
+ print access.setgenerate(gen)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "settxfee":
+ try:
+ amt = raw_input("Amount:")
+ print access.settxfee(amt)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "stop":
+ try:
+ print access.stop()
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "validateaddress":
+ try:
+ addr = raw_input("Address: ")
+ print access.validateaddress(addr)
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "walletpassphrase":
+ try:
+ pwd = raw_input("Enter wallet passphrase: ")
+ access.walletpassphrase(pwd, 60)
+ print "\n---Wallet unlocked---\n"
+ except:
+ print "\n---An error occurred---\n"
+
+elif cmd == "walletpassphrasechange":
+ try:
+ pwd = raw_input("Enter old wallet passphrase: ")
+ pwd2 = raw_input("Enter new wallet passphrase: ")
+ access.walletpassphrasechange(pwd, pwd2)
+ print
+ print "\n---Passphrase changed---\n"
+ except:
+ print
+ print "\n---An error occurred---\n"
+ print
+
+else:
+ print "Command not found or not supported" \ No newline at end of file