[docs]defregister_account_classes(self,data:dict):""" :param data: { KeyringNetwork.Network.value: AccountClass, ... } :return: """ifnotdataornotisinstance(data,dict):raiseValueError(f"KeyringRegistry :: Unsupported type of data: {data}")self.registry=data
[docs]defcreate_account(self,network:str)->EcdsaAccount:""" Determine the account class dependent on network. :param network: E.g. KeyringNetwork.Constellation.value :return: Account class. """ifnotnetworkornotisinstance(network,str):raiseValueError(f"KeyringRegistry :: Unsupported network: {network}")class_=self.registry.get(network)returnclass_()
[docs]defadd_account(self,network:str,account:EcdsaAccount):""" Add account to registry. :param network: New chain name (network id). :param account: New account inheriting from EcdsaAccount. """self.registry[network]=account