Add CoinEx market data client
Этот коммит содержится в:
@@ -0,0 +1,25 @@
|
||||
from typing import Any
|
||||
import httpx
|
||||
|
||||
|
||||
class CoinExClient:
|
||||
def __init__(self, api_base: str) -> None:
|
||||
self.api_base = api_base.rstrip('/')
|
||||
|
||||
async def get_kline(self, market: str, period: str = '1min', limit: int = 100) -> dict[str, Any]:
|
||||
params = {
|
||||
'market': market.upper(),
|
||||
'period': period,
|
||||
'limit': max(1, min(limit, 1000)),
|
||||
}
|
||||
async with httpx.AsyncClient(timeout=10.0) as client:
|
||||
response = await client.get(f'{self.api_base}/spot/kline', params=params)
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
|
||||
async def get_ticker(self, market: str) -> dict[str, Any]:
|
||||
params = {'market': market.upper()}
|
||||
async with httpx.AsyncClient(timeout=10.0) as client:
|
||||
response = await client.get(f'{self.api_base}/spot/ticker', params=params)
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
Ссылка в новой задаче
Block a user