Added documentation
This commit is contained in:
40
app/services/Bybit/functions/get_valid_symbol.py
Normal file
40
app/services/Bybit/functions/get_valid_symbol.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import logging.config
|
||||
from pybit.unified_trading import HTTP
|
||||
import app.telegram.database.requests as rq
|
||||
from logger_helper.logger_helper import LOGGING_CONFIG
|
||||
|
||||
logging.config.dictConfig(LOGGING_CONFIG)
|
||||
logger = logging.getLogger("get_valid_symbol")
|
||||
|
||||
|
||||
async def get_valid_symbols(user_id: int, symbol: str) -> bool:
|
||||
"""
|
||||
Проверяет существование торговой пары на Bybit в категории 'linear'.
|
||||
|
||||
Эта функция получает API-ключи пользователя из базы данных и
|
||||
с помощью Bybit API проверяет наличие данного символа в списке
|
||||
торговых инструментов категории 'linear'.
|
||||
|
||||
Args:
|
||||
user_id (int): Идентификатор пользователя Telegram.
|
||||
symbol (str): Торговый символ (валютная пара), например "BTCUSDT".
|
||||
|
||||
Returns:
|
||||
bool: Возвращает True, если торговая пара существует, иначе False.
|
||||
|
||||
Raises:
|
||||
Исключения подавляются и вызывается False, если произошла ошибка запроса к API.
|
||||
"""
|
||||
api_key = await rq.get_bybit_api_key(user_id)
|
||||
secret_key = await rq.get_bybit_secret_key(user_id)
|
||||
client = HTTP(api_key=api_key, api_secret=secret_key)
|
||||
|
||||
try:
|
||||
resp = client.get_instruments_info(category='linear', symbol=symbol)
|
||||
# Проверка наличия результата и непустого списка инструментов
|
||||
if resp.get('retCode') == 0 and resp.get('result') and resp['result'].get('list'):
|
||||
return len(resp['result']['list']) > 0
|
||||
return False
|
||||
except Exception as e:
|
||||
logging.error(f"Ошибка при получении списка инструментов: {e}")
|
||||
return False
|
Reference in New Issue
Block a user