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.
48 lines
1.3 KiB
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)
|