feat(V2): IBKR router wiring + build_client + WS singleton DI
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -72,4 +72,24 @@ async def build_client(
|
||||
cryptopanic_key=settings.sentiment.cryptopanic_key.get_secret_value(),
|
||||
lunarcrush_key=settings.sentiment.lunarcrush_key.get_secret_value(),
|
||||
)
|
||||
if exchange == "ibkr":
|
||||
from cerbero_mcp.exchanges.ibkr.client import IBKRClient
|
||||
from cerbero_mcp.exchanges.ibkr.oauth import OAuth1aSigner
|
||||
|
||||
creds = settings.ibkr.credentials(env)
|
||||
url = settings.ibkr.url_testnet if env == "testnet" else settings.ibkr.url_live
|
||||
signer = OAuth1aSigner(
|
||||
consumer_key=creds["consumer_key"],
|
||||
access_token=creds["access_token"],
|
||||
access_token_secret=creds["access_token_secret"],
|
||||
signature_key_path=creds["signature_key_path"],
|
||||
encryption_key_path=creds["encryption_key_path"],
|
||||
dh_prime=creds["dh_prime"],
|
||||
)
|
||||
return IBKRClient(
|
||||
signer=signer,
|
||||
account_id=creds["account_id"],
|
||||
paper=(env == "testnet"),
|
||||
base_url=url,
|
||||
)
|
||||
raise ValueError(f"unsupported exchange: {exchange}")
|
||||
|
||||
Reference in New Issue
Block a user