3333)
3434from .did_method import DIDMethod
3535from .error import WalletError , WalletDuplicateError , WalletNotFoundError
36- from .key_type import BLS12381G2 , ED25519 , KeyType
36+ from .key_type import BLS12381G2 , ED25519 , KeyType , KeyTypes
3737from .util import b58_to_bytes , bytes_to_b58
3838
3939CATEGORY_DID = "did"
@@ -257,7 +257,7 @@ async def get_local_dids(self) -> Sequence[DIDInfo]:
257257
258258 ret = []
259259 for item in await self ._session .handle .fetch_all (CATEGORY_DID ):
260- ret .append (_load_did_entry (item ))
260+ ret .append (self . _load_did_entry (item ))
261261 return ret
262262
263263 async def get_local_did (self , did : str ) -> DIDInfo :
@@ -284,7 +284,7 @@ async def get_local_did(self, did: str) -> DIDInfo:
284284 raise WalletError ("Error when fetching local DID" ) from err
285285 if not did :
286286 raise WalletNotFoundError ("Unknown DID: {}" .format (did ))
287- return _load_did_entry (did )
287+ return self . _load_did_entry (did )
288288
289289 async def get_local_did_for_verkey (self , verkey : str ) -> DIDInfo :
290290 """
@@ -308,7 +308,7 @@ async def get_local_did_for_verkey(self, verkey: str) -> DIDInfo:
308308 except AskarError as err :
309309 raise WalletError ("Error when fetching local DID for verkey" ) from err
310310 if dids :
311- return _load_did_entry (dids [0 ])
311+ return self . _load_did_entry (dids [0 ])
312312 raise WalletNotFoundError ("No DID defined for verkey: {}" .format (verkey ))
313313
314314 async def replace_local_did_metadata (self , did : str , metadata : dict ):
@@ -403,7 +403,7 @@ async def set_public_did(self, did: Union[str, DIDInfo]) -> DIDInfo:
403403 raise WalletError ("Error when fetching local DID" ) from err
404404 if not item :
405405 raise WalletNotFoundError ("Unknown DID: {}" .format (did ))
406- info = _load_did_entry (item )
406+ info = self . _load_did_entry (item )
407407 else :
408408 info = did
409409 item = None
@@ -727,6 +727,19 @@ async def unpack_message(self, enc_message: bytes) -> Tuple[str, str, str]:
727727 raise WalletError ("Exception when unpacking message" ) from err
728728 return unpacked_json .decode ("utf-8" ), sender , recipient
729729
730+ def _load_did_entry (self , entry : Entry ) -> DIDInfo :
731+ """Convert a DID record into the expected DIDInfo format."""
732+ did_info = entry .value_json
733+ key_types : KeyTypes = self ._session .inject (KeyTypes )
734+ return DIDInfo (
735+ did = did_info ["did" ],
736+ verkey = did_info ["verkey" ],
737+ metadata = did_info .get ("metadata" ),
738+ method = DIDMethod .from_method (did_info .get ("method" , "sov" )),
739+ key_type = key_types .from_key_type (did_info .get ("verkey_type" , "ed25519" ))
740+ or ED25519 ,
741+ )
742+
730743
731744def _create_keypair (key_type : KeyType , seed : Union [str , bytes ] = None ) -> Key :
732745 """Instantiate a new keypair with an optional seed value."""
@@ -755,15 +768,3 @@ def _create_keypair(key_type: KeyType, seed: Union[str, bytes] = None) -> Key:
755768 raise WalletError ("Invalid seed for key generation" ) from None
756769 else :
757770 return Key .generate (alg )
758-
759-
760- def _load_did_entry (entry : Entry ) -> DIDInfo :
761- """Convert a DID record into the expected DIDInfo format."""
762- did_info = entry .value_json
763- return DIDInfo (
764- did = did_info ["did" ],
765- verkey = did_info ["verkey" ],
766- metadata = did_info .get ("metadata" ),
767- method = DIDMethod .from_method (did_info .get ("method" , "sov" )),
768- key_type = KeyType .from_key_type (did_info .get ("verkey_type" , "ed25519" )),
769- )
0 commit comments