mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-10 08:48:07 +00:00
refactor: restructure Lighter SDK by removing deprecated Go files and enhancing Python documentation with new examples and models
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import json
|
||||
import logging
|
||||
import asyncio
|
||||
import websockets
|
||||
|
||||
from lighter.models import WSAccountAssets
|
||||
from utils import default_example_setup, ws_subscribe, ws_ping
|
||||
|
||||
|
||||
async def consume_messages(ws):
|
||||
while True:
|
||||
msg_str = await ws.recv()
|
||||
if isinstance(msg_str, str):
|
||||
msg = json.loads(msg_str)
|
||||
else:
|
||||
raise msg_str
|
||||
|
||||
# handle ping here; if we receive, send pong
|
||||
if msg["type"] == "ping":
|
||||
await ws_ping(ws)
|
||||
continue
|
||||
|
||||
# handle account_all_assets updates -- just print stuff
|
||||
if msg["type"] == "subscribed/account_all_assets" or msg["type"] == "update/account_all_assets" :
|
||||
o = WSAccountAssets.from_dict(msg)
|
||||
for asset in o.assets.values():
|
||||
print(f"{asset.symbol} total: {asset.balance} available: {float(asset.balance) - float(asset.locked_balance)} accountId: {o.account_id}")
|
||||
|
||||
|
||||
async def main():
|
||||
client, api_client, ws_client_promise = default_example_setup()
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
# set up WS client and print a connected message
|
||||
ws_client: websockets.ClientConnection = await ws_client_promise
|
||||
await ws_client.recv()
|
||||
|
||||
consume_task = asyncio.create_task(consume_messages(ws_client))
|
||||
|
||||
auth, _ = client.create_auth_token_with_expiry()
|
||||
await ws_subscribe(ws_client, f"account_all_assets/{client.account_index}", auth)
|
||||
|
||||
# wait a bit to print messages
|
||||
await asyncio.sleep(1000)
|
||||
|
||||
consume_task.cancel()
|
||||
await client.close()
|
||||
await api_client.close()
|
||||
await ws_client.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user