1
0
Fork 0
mirror of https://github.com/romanz/electrs.git synced 2025-02-24 15:02:21 +01:00
electrs/contrib/client.py

28 lines
721 B
Python
Raw Normal View History

2018-04-30 14:37:23 +03:00
import json
import socket
2018-04-25 22:44:36 +03:00
2019-08-03 14:46:39 +03:00
class Client:
2018-05-02 13:42:13 +03:00
def __init__(self, addr):
self.s = socket.create_connection(addr)
self.f = self.s.makefile('r')
self.id = 0
def call(self, requests):
requests = list(requests)
for request in requests:
request['id'] = self.id
request['jsonrpc'] = '2.0'
self.id += 1
msg = json.dumps(requests) + '\n'
2018-05-02 13:42:13 +03:00
self.s.sendall(msg.encode('ascii'))
response = json.loads(self.f.readline())
2021-08-28 20:05:39 +03:00
try:
return [r['result'] for r in response]
except KeyError:
raise ValueError(response)
def request(method, *args):
return {'method': method, 'params': list(args)}