Source code for aries_cloudagent.resolver.default.peer2

"""Peer DID Resolver.

Resolution is performed using the peer-did-python library https://github.com/sicpa-dlab/peer-did-python.
"""

from typing import Optional, Pattern, Sequence, Text

from did_peer_2 import resolve, PATTERN

from ...config.injection_context import InjectionContext
from ...core.profile import Profile
from ..base import BaseDIDResolver, DIDNotFound, ResolverType
from .peer3 import PeerDID3Resolver


[docs]class PeerDID2Resolver(BaseDIDResolver): """Peer DID Resolver.""" def __init__(self): """Initialize Key Resolver.""" super().__init__(ResolverType.NATIVE)
[docs] async def setup(self, context: InjectionContext): """Perform required setup for Key DID resolution."""
@property def supported_did_regex(self) -> Pattern: """Return supported_did_regex of Key DID Resolver.""" return PATTERN async def _resolve( self, profile: Profile, did: str, service_accept: Optional[Sequence[Text]] = None, ) -> dict: """Resolve a Key DID.""" if not PATTERN.match(did): raise DIDNotFound(f"did is not a peer did: {did}") doc = resolve(did) await PeerDID3Resolver().create_and_store(profile, did) return doc