import grpc from frostfs_sdk.cryptography.key_extension import KeyExtension from frostfs_sdk.client.models.ecdsa_model import ECDSA from frostfs_sdk.models.dto.version import Version from frostfs_sdk.models.dto.owner_id import OwnerId from frostfs_sdk.client.utils.session_cache import SessionCache class ClientEnvironment: def __init__(self, ecdsa: ECDSA, channel: grpc.Channel, address: str, version: Version, session_cache: SessionCache): self.ecdsa = ecdsa self.channel = channel self.version = version self.owner_id = OwnerId(KeyExtension().get_owner_id_by_public_key(ecdsa.public_key)) self.session_cache = session_cache self.address = address self._session_key = None def get_session_key(self): if not self._session_key: self._session_key = SessionCache.form_cache_key(self.address, KeyExtension.get_hex_string(self.ecdsa.public_key)) return self._session_key