Source code for acapy_agent.resolver.default.webvh

"""WEBVH DID Resolver.

Resolution is performed by the did_webvh library.
"""

from re import Pattern
from typing import Optional, Sequence, Text

from did_webvh.resolver import ResolutionResult, resolve_did

from ...config.injection_context import InjectionContext
from ...core.profile import Profile
from ...messaging.valid import DIDWebvh
from ..base import BaseDIDResolver, ResolverType


[docs] class WebvhDIDResolver(BaseDIDResolver): """WEBVH DID Resolver.""" def __init__(self): """Initialize the WEBVH DID Resolver.""" super().__init__(ResolverType.NATIVE)
[docs] async def setup(self, context: InjectionContext): """Perform required setup for WEBVH DID resolution."""
@property def supported_did_regex(self) -> Pattern: """Return supported DID regex of WEBVH DID Resolver.""" return DIDWebvh.PATTERN async def _resolve( self, profile: Profile, did: str, service_accept: Optional[Sequence[Text]] = None ) -> dict: """Resolve DID using WEBVH.""" response: ResolutionResult = await resolve_did(did) if response.resolution_metadata and response.resolution_metadata.get("error"): return response.resolution_metadata # Include document_metadata if available from the resolver result = response.document if response.document_metadata: result["document_metadata"] = response.document_metadata return result