Last active
November 20, 2015 16:24
-
-
Save nocarryr/5eba5b4740172a99d082 to your computer and use it in GitHub Desktop.
Python bitcoin rpc client removed from bitcoin core in 9f5edb9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
from jsonrpc import ServiceProxy | |
import sys | |
import string | |
import getpass | |
# ===== 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 Exception as inst: | |
print inst | |
elif cmd == "encryptwallet": | |
try: | |
pwd = getpass.getpass(prompt="Enter passphrase: ") | |
pwd2 = getpass.getpass(prompt="Repeat passphrase: ") | |
if pwd == pwd2: | |
access.encryptwallet(pwd) | |
print "\n---Wallet encrypted. Server stopping, restart to run with encrypted wallet---\n" | |
else: | |
print "\n---Passphrases do not match---\n" | |
except Exception as inst: | |
print inst | |
elif cmd == "getaccount": | |
try: | |
addr = raw_input("Enter a Bitcoin address: ") | |
print access.getaccount(addr) | |
except Exception as inst: | |
print inst | |
elif cmd == "getaccountaddress": | |
try: | |
acct = raw_input("Enter an account name: ") | |
print access.getaccountaddress(acct) | |
except Exception as inst: | |
print inst | |
elif cmd == "getaddressesbyaccount": | |
try: | |
acct = raw_input("Enter an account name: ") | |
print access.getaddressesbyaccount(acct) | |
except Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
elif cmd == "getblockbycount": | |
try: | |
height = raw_input("Height: ") | |
print access.getblockbycount(height) | |
except Exception as inst: | |
print inst | |
elif cmd == "getblockcount": | |
try: | |
print access.getblockcount() | |
except Exception as inst: | |
print inst | |
elif cmd == "getblocknumber": | |
try: | |
print access.getblocknumber() | |
except Exception as inst: | |
print inst | |
elif cmd == "getconnectioncount": | |
try: | |
print access.getconnectioncount() | |
except Exception as inst: | |
print inst | |
elif cmd == "getdifficulty": | |
try: | |
print access.getdifficulty() | |
except Exception as inst: | |
print inst | |
elif cmd == "getgenerate": | |
try: | |
print access.getgenerate() | |
except Exception as inst: | |
print inst | |
elif cmd == "gethashespersec": | |
try: | |
print access.gethashespersec() | |
except Exception as inst: | |
print inst | |
elif cmd == "getinfo": | |
try: | |
print access.getinfo() | |
except Exception as inst: | |
print inst | |
elif cmd == "getnewaddress": | |
try: | |
acct = raw_input("Enter an account name: ") | |
try: | |
print access.getnewaddress(acct) | |
except: | |
print access.getnewaddress() | |
except Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
elif cmd == "gettransaction": | |
try: | |
txid = raw_input("Enter a transaction ID: ") | |
print access.gettransaction(txid) | |
except Exception as inst: | |
print inst | |
elif cmd == "getwork": | |
try: | |
data = raw_input("Data (optional): ") | |
try: | |
print access.gettransaction(data) | |
except: | |
print access.gettransaction() | |
except Exception as inst: | |
print inst | |
elif cmd == "help": | |
try: | |
cmd = raw_input("Command (optional): ") | |
try: | |
print access.help(cmd) | |
except: | |
print access.help() | |
except Exception as inst: | |
print inst | |
elif cmd == "listaccounts": | |
try: | |
mc = raw_input("Minimum confirmations (optional): ") | |
try: | |
print access.listaccounts(mc) | |
except: | |
print access.listaccounts() | |
except Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
elif cmd == "setaccount": | |
try: | |
addr = raw_input("Address: ") | |
acct = raw_input("Account:") | |
print access.setaccount(addr,acct) | |
except Exception as inst: | |
print inst | |
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 Exception as inst: | |
print inst | |
elif cmd == "settxfee": | |
try: | |
amt = raw_input("Amount:") | |
print access.settxfee(amt) | |
except Exception as inst: | |
print inst | |
elif cmd == "stop": | |
try: | |
print access.stop() | |
except Exception as inst: | |
print inst | |
elif cmd == "validateaddress": | |
try: | |
addr = raw_input("Address: ") | |
print access.validateaddress(addr) | |
except Exception as inst: | |
print inst | |
elif cmd == "walletpassphrase": | |
try: | |
pwd = getpass.getpass(prompt="Enter wallet passphrase: ") | |
access.walletpassphrase(pwd, 60) | |
print "\n---Wallet unlocked---\n" | |
except Exception as inst: | |
print inst | |
elif cmd == "walletpassphrasechange": | |
try: | |
pwd = getpass.getpass(prompt="Enter old wallet passphrase: ") | |
pwd2 = getpass.getpass(prompt="Enter new wallet passphrase: ") | |
access.walletpassphrasechange(pwd, pwd2) | |
print "\n---Passphrase changed---\n" | |
except Exception as inst: | |
print inst | |
else: | |
print "Command not found or not supported" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Removed in 9f5edb9, but this is the script as of the parent commit for reference.
Original authors: https://github.com/bitcoin/bitcoin