You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
wowstash/wowstash/library/jsonrpc.py

48 lines
1.3 KiB

import json
import requests
from wowstash import config
class JSONRPC(object):
def __init__(self, proto, host, port, username='', password=''):
self.endpoint = '{}://{}:{}/'.format(
proto, host, port
)
self.auth = requests.auth.HTTPDigestAuth(
username, password
)
def make_rpc(self, method, params={}, json_rpc=True):
if json_rpc:
endpoint = self.endpoint + "json_rpc"
else:
endpoint = self.endpoint + method
try:
r = requests.get(
endpoint,
data=json.dumps({'method': method, 'params': params}),
auth=self.auth
)
if 'result' in r.json():
return r.json()['result']
elif 'error' in r.json():
return r.json()['error']
else:
return r.json()
except:
return {}
class Wallet(JSONRPC):
def height(self):
return self.make_rpc('get_height', {})
class Daemon(JSONRPC):
def info(self):
return self.make_rpc('get_info', {}, json_rpc=False)
def height(self):
return self.make_rpc('get_height', {}, json_rpc=False)
daemon = Daemon(proto=config.DAEMON_PROTO, host=config.DAEMON_HOST, port=config.DAEMON_PORT)