Source code for keri.vdr.vdring

# -*- encoding: utf-8 -*-
"""
keri.db.vdring module

Utility and support constants, functions, and classes

VIR  Verifiable Issuance(Revocation) Registry
VDR Verifiable Data Registry

"""

from dataclasses import dataclass, field

from ..recording import RawRecord

[docs] @dataclass class RegistryRecord: """ Registry Key keyed by Registry name """ registryKey: str prefix: str
[docs] @dataclass class RegStateRecord(RawRecord): # reger.state """ Registry Event Log (REL) State information (see reger.state at 'stts' for database that holds these records keyed by Registry SAID, i field) Attributes: vn (list[int]): version number [major, minor] i (str): registry SAID qb64 (registry inception event SAID) s (str): sequence number of latest event in KEL as hex str d (str): latest registry event digest qb64 ii (str): registry issuer identifier aid qb64 dt (str): datetime iso-8601 of registry state record update, usually now et (str): event packet type (ilk) bt (str): backer threshold hex num b (list[str]): backer aids qb64 c (list[str]): config traits Note: the seal anchor dict 'a' field is not included in the state notice because it may be verbose and would impede the main purpose of a notice which is to trigger the download of the latest events, which would include the anchored seals. rsr = RegStateRecord( vn=list(version), # version number as list [major, minor] i=ri, # qb64 registry SAID s="{:x}".format(sn), # lowercase hex string no leading zeros d=said, ii=pre, dt=dts, et=eilk, bt="{:x}".format(toad), # hex string no leading zeros lowercase b=wits, # list of qb64 may be empty c=cnfg if cnfg is not None else [], ) """ vn: list[int] = field(default_factory=list) # version number [major, minor] round trip serializable i: str = '' # identifier prefix qb64 s: str = '0' # sequence number of latest event in KEL as hex str d: str = '' # latest event digest qb64 ii: str = '' # issuer identifier of registry aid qb64 dt: str = '' # datetime of update of state record et: str = '' # TEL evt packet type (ilk) bt: str = '0' # backer threshold hex num str b: list = field(default_factory=list) # backer AID list qb64 c: list[str] = field(default_factory=list) # config trait list
[docs] @dataclass class VcStateRecord(RawRecord): vn: list[str] = field(default_factory=list) # version number [major, minor] round trip serializable i: str = '' # identifier prefix qb64 s: str = '0' # sequence number of latest event in KEL as hex str d: str = '' # latest event digest qb64 ri: str = '' # registry identifier of registry aid qb64 ra: dict = field(default_factory=dict) # registry anchor for registry with backers a: dict = field(default_factory=dict) # seal for anchor in KEL dt: str = '' # datetime of update of state record et: str = '' # TEL evt packet type (ilk)