File size: 814 Bytes
da5e53f
 
9b6aa92
da5e53f
9b6aa92
 
 
da5e53f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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