11import logging
2+ from datetime import datetime
23from typing import cast
34
45from hiero_sdk_python import PublicKey
@@ -29,7 +30,6 @@ class DidDocument(Serializable):
2930 Attributes:
3031 created: Creation timestamp
3132 updated: Last update timestamp
32- version_id: DID document version ID (equals to last update timestamp)
3333 deactivated: DID document deactivation status
3434 controller: Dictionary representing DID document controller info
3535 services: DID document services dictionary
@@ -42,9 +42,8 @@ def __init__(self, id_: str):
4242 self .id_ = id_
4343 self .context = DID_DOCUMENT_CONTEXT
4444
45- self .created : float | None = None
46- self .updated : float | None = None
47- self .version_id : str | None = None
45+ self .created : datetime | None = None
46+ self .updated : datetime | None = None
4847 self .deactivated : bool = False
4948
5049 self .controller : dict | None = None
@@ -61,6 +60,10 @@ def __init__(self, id_: str):
6160
6261 self ._public_key : PublicKey | None = None
6362
63+ @property
64+ def version_timestamp (self ) -> datetime | None :
65+ return self .updated or self .created
66+
6467 async def process_messages (self , envelopes : list [HcsDidMessageEnvelope ]):
6568 """
6669 Process HCS DID messages - apply DID document state changes according to events.
@@ -202,7 +205,7 @@ async def _process_create_message(self, message: HcsDidMessage): # noqa: C901
202205
203206 did_owner_event = cast (HcsDidUpdateDidOwnerEvent , event )
204207
205- self .controller = did_owner_event .get_owner_def ()
208+ self .controller = did_owner_event .get_controller_verification_method ()
206209 self ._public_key = did_owner_event .public_key
207210 self ._on_activated (message .timestamp )
208211 case HcsDidEventTarget .SERVICE :
@@ -259,7 +262,7 @@ def _process_update_message(self, message: HcsDidMessage):
259262 case HcsDidEventTarget .DID_OWNER :
260263 did_owner_event = cast (HcsDidUpdateDidOwnerEvent , event )
261264
262- self .controller = did_owner_event .get_owner_def ()
265+ self .controller = did_owner_event .get_controller_verification_method ()
263266 self ._public_key = did_owner_event .public_key
264267 self ._on_updated (message .timestamp )
265268 case HcsDidEventTarget .SERVICE :
@@ -412,18 +415,15 @@ def _is_message_signature_valid(self, message: HcsDidMessage, signature: str) ->
412415
413416 return True
414417
415- def _on_activated (self , timestamp : float ):
418+ def _on_activated (self , timestamp : datetime ):
416419 self .created = timestamp
417420 self .updated = timestamp
418421 self .deactivated = False
419- self .version_id = str (timestamp )
420422
421- def _on_updated (self , timestamp : float ):
423+ def _on_updated (self , timestamp : datetime ):
422424 self .updated = timestamp
423- self .version_id = str (timestamp )
424425
425426 def _on_deactivated (self ):
426427 self .created = None
427428 self .updated = None
428429 self .deactivated = True
429- self .version_id = None
0 commit comments