Browse Source

Add support for core's multiwallet feature

master
chris-belcher 8 years ago
parent
commit
91ffa6cb6c
No known key found for this signature in database
GPG Key ID: EF734EA677F31129
  1. 19
      jmclient/jmclient/configure.py
  2. 9
      jmclient/jmclient/jsonrpc.py

19
jmclient/jmclient/configure.py

@ -117,6 +117,7 @@ rpc_host = localhost
rpc_port = 8332
rpc_user = bitcoin
rpc_password = password
rpc_wallet_file =
[MESSAGING]
host = irc.cyberguerrilla.org, agora.anarplex.net
@ -395,19 +396,17 @@ def get_blockchain_interface_instance(_config):
source = _config.get("BLOCKCHAIN", "blockchain_source")
network = get_network()
testnet = network == 'testnet'
if source == 'bitcoin-rpc': #pragma: no cover
#This cannot be tested without mainnet or testnet blockchain (not regtest)
if source in ('bitcoin-rpc', 'regtest'):
rpc_host = _config.get("BLOCKCHAIN", "rpc_host")
rpc_port = _config.get("BLOCKCHAIN", "rpc_port")
rpc_user, rpc_password = get_bitcoin_rpc_credentials(_config)
rpc = JsonRpc(rpc_host, rpc_port, rpc_user, rpc_password)
bc_interface = BitcoinCoreInterface(rpc, network)
elif source == 'regtest':
rpc_host = _config.get("BLOCKCHAIN", "rpc_host")
rpc_port = _config.get("BLOCKCHAIN", "rpc_port")
rpc_user, rpc_password = get_bitcoin_rpc_credentials(_config)
rpc = JsonRpc(rpc_host, rpc_port, rpc_user, rpc_password)
bc_interface = RegtestBitcoinCoreInterface(rpc)
rpc_wallet_file = _config.get("BLOCKCHAIN", "rpc_wallet_file")
rpc = JsonRpc(rpc_host, rpc_port, rpc_user, rpc_password,
rpc_wallet_file)
if source == 'bitcoin-rpc': #pragma: no cover
bc_interface = BitcoinCoreInterface(rpc, network)
else:
bc_interface = RegtestBitcoinCoreInterface(rpc)
elif source == 'electrum':
bc_interface = ElectrumWalletInterface(testnet)
elif source == 'electrum-server':

9
jmclient/jmclient/jsonrpc.py

@ -51,12 +51,15 @@ class JsonRpc(object):
to connect to Bitcoin.
"""
def __init__(self, host, port, user, password):
def __init__(self, host, port, user, password, wallet_file=""):
self.host = host
self.port = port
self.conn = httplib.HTTPConnection(self.host, self.port)
self.authstr = "%s:%s" % (user, password)
if len(wallet_file) > 0:
self.url = "/wallet/" + wallet_file
else:
self.url = ""
self.queryId = 1
def queryHTTP(self, obj):
@ -76,7 +79,7 @@ class JsonRpc(object):
while True:
try:
self.conn.request("POST", "", body, headers)
self.conn.request("POST", self.url, body, headers)
response = self.conn.getresponse()
if response.status == 401:

Loading…
Cancel
Save