from __future__ import annotations from dataclasses import dataclass from yuxi.channels.adapters.signal.client import RpcClient @dataclass class RpcContext: client: RpcClient base_url: str account: str @classmethod async def resolve(cls, base_url: str, account: str) -> RpcContext: client = RpcClient(base_url) await client.connect() return cls(client=client, base_url=base_url, account=account) async def disconnect(self) -> None: await self.client.disconnect()