1
0
mirror of https://github.com/romanz/electrs.git synced 2024-11-19 09:54:09 +01:00
electrs/contrib/client.py

28 lines
721 B
Python
Raw Normal View History

2018-04-30 13:37:23 +02:00
import json
import socket
2018-04-25 21:44:36 +02:00
2019-08-03 13:46:39 +02:00
class Client:
2018-05-02 12:42:13 +02: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 12:42:13 +02:00
self.s.sendall(msg.encode('ascii'))
response = json.loads(self.f.readline())
2021-08-28 19:05:39 +02:00
try:
return [r['result'] for r in response]
except KeyError:
raise ValueError(response)
def request(method, *args):
return {'method': method, 'params': list(args)}