Remote Procedure calls (RPC)¶
Usage example¶
async def main():
client_keys = Keys.load('keys/test.pub', 'keys/test.priv')
server_keys = Keys.load('keys/cryptology.pub', None)
sequence_id = 1
...
async def read_callback(ws: ClientWriterStub, order: int, ts: datetime, payload: dict) -> None:
rpc_response = await ws.send_signed_request(payload={'@type': 'UserOrdersRequest'})
if rpc_response['@type'] == 'UserOrdersResponse':
pprint.pprint(rpc_response)
await run_client(
client_id='test',
client_keys=client_keys,
ws_addr='ws://127.0.0.1:8080',
server_keys=server_keys,
writer=writer,
read_callback=read_callback,
last_seen_order=-1
)
Full active orders list¶
UserOrdersRequest
request of the full active order list for the account
{ "@type": "UserOrdersRequest" }
UserOrdersResponse
result of
UserOrdersRequest
execution{ "@type": "UserOrdersResponse", "order_books": { "BTC_USD": { "buy": [{ "order_id": 1, "amount": 42, "price": 555, "client_order_id": 123 }], "sell": [] }, "ETH_USD": { "buy": [ { "order_id": 2, "amount": 1, "price": 10, "client_order_id": 124 }, { "order_id": 3, "amount": 2, "price": 11, "client_order_id": 125 } ], "sell": [] } } }
Account balance¶
UserBalanceRequest
request of the up to date balance
{ "@type": "UserBalanceRequest" }
UserBalanceResponse
result of
UserBalanceRequest
execution{ "@type": "UserBalanceResponse", "account_id": "user", "balances": { "BTC": { "available": "3.1415", "on_hold": "42" }, "USD": { "available": "1000000", "on_hold": "0" } } }