app / src /libs /rpc_client.py
lemdaddy's picture
rpc and edits
da5e53f
raw
history blame
814 Bytes
import httpx, uuid, os
from typing import Optional, Union
from dotenv import load_dotenv
from src.libs.logger import logger
load_dotenv()
rpc_server_url = os.getenv('CHATXBT_RPC_SERVER_URL')
async def rpc_call(method_name, params: Optional[Union[dict, list]] = {}, url: str = rpc_server_url):
headers = {
'Content-Type': 'application/json',
}
payload = {
'method': method_name,
'params': params,
'jsonrpc': '2.0',
'id': str(uuid.uuid4()),
}
try:
async with httpx.AsyncClient() as client:
response = await client.post(url, json=payload, headers=headers)
response.raise_for_status()
return response.json()
except httpx.RequestError as e:
print(f"Error making RPC call: {e}")
return None