import os from dotenv import load_dotenv from x10.config import MAINNET_CONFIG from x10.core.stark_account import StarkPerpetualAccount from x10.perpetual.trading_client import PerpetualTradingClient import logging async def create_auth_account_and_trading_client() -> tuple[StarkPerpetualAccount, PerpetualTradingClient]: load_dotenv() API_KEY = os.getenv('EXTENDED_API_KEY') PUBLIC_KEY = os.getenv('EXTENDED_STARK_KEY_PUBLIC') PRIVATE_KEY = os.getenv('EXTENDED_STARK_KEY_PRIVATE') VAULT = int(os.getenv('EXTENDED_VAULT_NUMBER')) stark_account = StarkPerpetualAccount( vault=VAULT, private_key=PRIVATE_KEY, public_key=PUBLIC_KEY, api_key=API_KEY, ) trading_client = PerpetualTradingClient(MAINNET_CONFIG, stark_account) try: await trading_client.account.get_balance() except ValueError as e: logging.critical(f'Failed to get balance after creation of trading account: {e}') return stark_account, trading_client