diff --git a/src/keri/app/agenting.py b/src/keri/app/agenting.py index 456e3f4bc..a6023c3d6 100644 --- a/src/keri/app/agenting.py +++ b/src/keri/app/agenting.py @@ -17,8 +17,8 @@ from . import httping, forwarding from .. import help from .. import kering +from .. import core from ..core import eventing, parsing, coring, serdering, indexing -from ..core.coring import CtrDex from ..db import dbing from ..kering import Roles @@ -104,7 +104,7 @@ def receipt(self, pre, sn=None, auths=None): del rct[:rserder.size] # pull off the count code - coring.Counter(qb64b=rct, strip=True) + core.Counter(qb64b=rct, strip=True, gvrsn=kering.Vrsn_1_0) rcts[wit] = rct else: print(f"invalid response {rep.status} from witnesses {wit}") @@ -124,7 +124,8 @@ def receipt(self, pre, sn=None, auths=None): sn=sn, said=ser.said) msg.extend(rserder.raw) - msg.extend(coring.Counter(code=CtrDex.NonTransReceiptCouples, count=len(wigs)).qb64b) + msg.extend(core.Counter(core.Codens.NonTransReceiptCouples, + count=len(wigs), gvrsn=kering.Vrsn_1_0).qb64b) for wig in wigs: msg.extend(wig) diff --git a/src/keri/app/forwarding.py b/src/keri/app/forwarding.py index db5818f09..b44c67a3a 100644 --- a/src/keri/app/forwarding.py +++ b/src/keri/app/forwarding.py @@ -451,7 +451,7 @@ def handle(self, serder, attachments=None): pevt = bytearray() for pather, atc in attachments: ked = pather.resolve(embeds) - sadder = coring.Sadder(ked=ked, kind=eventing.Serials.json) + sadder = coring.Sadder(ked=ked, kind=eventing.Kinds.json) pevt.extend(sadder.raw) pevt.extend(atc) diff --git a/src/keri/app/grouping.py b/src/keri/app/grouping.py index af7faab22..41f8249c4 100644 --- a/src/keri/app/grouping.py +++ b/src/keri/app/grouping.py @@ -9,7 +9,7 @@ from hio.base import doing from hio.help import decking -from .. import kering +from .. import kering, core from .. import help from ..app import delegating, agenting from ..core import coring, routing, eventing, parsing, serdering, indexing @@ -518,14 +518,14 @@ def getEscrowedEvent(db, pre, sn): msg = bytearray() msg.extend(serder.raw) - msg.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigs)).qb64b) # attach cnt + msg.extend(core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigs), gvrsn=kering.Vrsn_1_0).qb64b) # attach cnt for sig in sigs: msg.extend(sig.qb64b) # attach sig if couple is not None: - msg.extend(coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1).qb64b) + msg.extend(core.Counter(core.Codens.SealSourceCouples, + count=1, gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(couple) return msg diff --git a/src/keri/app/habbing.py b/src/keri/app/habbing.py index d860f9bfc..44516caa8 100644 --- a/src/keri/app/habbing.py +++ b/src/keri/app/habbing.py @@ -17,7 +17,8 @@ from .. import help from .. import kering from .. import core -from ..core import coring, eventing, parsing, routing, serdering, indexing +from ..core import (coring, eventing, parsing, routing, serdering, indexing, + Counter, Codens) from ..db import dbing, basing from ..kering import MissingSignatureError, Roles @@ -1567,8 +1568,8 @@ def makeOtherEvent(self, pre, sn): dig = bytes(dig) key = dbing.dgKey(pre, dig) # digest key msg.extend(self.db.getEvt(key)) - msg.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=self.db.cntSigs(key)).qb64b) # attach cnt + msg.extend(Counter(Codens.ControllerIdxSigs, count=self.db.cntSigs(key), + gvrsn=kering.Vrsn_1_0).qb64b) # attach cnt for sig in self.db.getSigsIter(key): msg.extend(sig) # attach sig return msg @@ -2035,14 +2036,14 @@ def makeOwnEvent(self, sn, allowPartiallySigned=False): serder, sigs, couple = self.getOwnEvent(sn=sn, allowPartiallySigned=allowPartiallySigned) msg.extend(serder.raw) - msg.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigs)).qb64b) # attach cnt + msg.extend(Counter(Codens.ControllerIdxSigs, count=len(sigs), + gvrsn=kering.Vrsn_1_0).qb64b) # attach cnt for sig in sigs: msg.extend(sig.qb64b) # attach sig if couple is not None: - msg.extend(coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1).qb64b) + msg.extend(Counter(Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(couple) return msg @@ -2727,7 +2728,7 @@ def make(self, *, code=coring.MtrDex.Blake3_256, transferable=True, isith=None, rmids=self.rmids) self.save(habord) self.prefixes.add(self.pre) - + # during delegation initialization of a habitat we ignore the MissingDelegationError and # MissingSignatureError try: diff --git a/src/keri/app/indirecting.py b/src/keri/app/indirecting.py index 80b3f8865..482d79124 100644 --- a/src/keri/app/indirecting.py +++ b/src/keri/app/indirecting.py @@ -22,7 +22,8 @@ from . import directing, storing, httping, forwarding, agenting, oobiing from .habbing import GroupHab from .. import help, kering -from ..core import eventing, parsing, routing, coring, serdering +from ..core import (eventing, parsing, routing, coring, serdering, + Counter, Codens) from ..core.coring import Ilks from ..db import basing, dbing from ..end import ending @@ -893,7 +894,7 @@ def on_post(self, req, rep): rep.set_header('connection', "close") cr = httping.parseCesrHttpRequest(req=req) - sadder = coring.Sadder(ked=cr.payload, kind=eventing.Serials.json) + sadder = coring.Sadder(ked=cr.payload, kind=eventing.Kinds.json) msg = bytearray(sadder.raw) msg.extend(cr.attachments.encode("utf-8")) @@ -1063,7 +1064,7 @@ def on_post(self, req, rep): rep.set_header('connection', "close") cr = httping.parseCesrHttpRequest(req=req) - serder = serdering.SerderKERI(sad=cr.payload, kind=eventing.Serials.json) + serder = serdering.SerderKERI(sad=cr.payload, kind=eventing.Kinds.json) pre = serder.ked["i"] if self.aids is not None and pre not in self.aids: @@ -1142,8 +1143,8 @@ def on_get(self, req, rep): said=said.decode("utf-8")) rct = bytearray(rserder.raw) if wigs := self.hab.db.getWigs(key=dgkey): - rct.extend(coring.Counter(code=coring.CtrDex.WitnessIdxSigs, - count=len(wigs)).qb64b) + rct.extend(Counter(Codens.WitnessIdxSigs, count=len(wigs), + gvrsn=kering.Vrsn_1_0).qb64b) for wig in wigs: rct.extend(wig) diff --git a/src/keri/app/signing.py b/src/keri/app/signing.py index f8aed4456..3c99c50f5 100644 --- a/src/keri/app/signing.py +++ b/src/keri/app/signing.py @@ -4,13 +4,17 @@ keri.app.signing module """ +from ..kering import Vrsn_1_0, Vrsn_2_0 from ..app.habbing import GroupHab -from ..core import coring, eventing +from .. import core +from ..core import coring, eventing, counting + def serialize(creder, prefixer, seqner, saider): craw = bytearray(creder.raw) - craw.extend(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + craw.extend(core.Counter(core.Codens.SealSourceTriples, count=1, + gvrsn=Vrsn_1_0).qb64b) craw.extend(prefixer.qb64b) craw.extend(seqner.qb64b) craw.extend(saider.qb64b) diff --git a/src/keri/core/__init__.py b/src/keri/core/__init__.py index e71721fc2..734d8259c 100644 --- a/src/keri/core/__init__.py +++ b/src/keri/core/__init__.py @@ -14,4 +14,5 @@ from .coring import Tholder from .indexing import Indexer, Siger, IdrDex, IdxSigDex -from .signing import (Signer, Salter, Cipher, Encrypter, Decrypter, ) +from .signing import Signer, Salter, Cipher, Encrypter, Decrypter +from .counting import Counter, Codens diff --git a/src/keri/core/coring.py b/src/keri/core/coring.py index fc2f51009..c7e662f97 100644 --- a/src/keri/core/coring.py +++ b/src/keri/core/coring.py @@ -39,7 +39,7 @@ from ..kering import (Versionage, Version, Vrsn_1_0, Vrsn_2_0, VERRAWSIZE, VERFMT, MAXVERFULLSPAN, versify, deversify, Rever, smell) -from ..kering import (Serials, Serialage, Protocols, Protocolage, Ilkage, Ilks, +from ..kering import (Kinds, Kindage, Protocols, Protocolage, Ilkage, Ilks, TraitDex, ) from ..help import helping @@ -94,7 +94,7 @@ def sizeify(ked, kind=None, version=Version): if not kind: kind = knd - if kind not in Serials: + if kind not in Kinds: raise ValueError("Invalid serialization kind = {}".format(kind)) raw = dumps(ked, kind) @@ -118,7 +118,7 @@ def sizeify(ked, kind=None, version=Version): -def dumps(ked, kind=Serials.json): +def dumps(ked, kind=Kinds.json): """ utility function to handle serialization by kind @@ -129,13 +129,13 @@ def dumps(ked, kind=Serials.json): ked (Optional(dict, list)): key event dict or message dict to serialize kind (str): serialization kind (JSON, MGPK, CBOR) """ - if kind == Serials.json: + if kind == Kinds.json: raw = json.dumps(ked, separators=(",", ":"), ensure_ascii=False).encode("utf-8") - elif kind == Serials.mgpk: + elif kind == Kinds.mgpk: raw = msgpack.dumps(ked) - elif kind == Serials.cbor: + elif kind == Kinds.cbor: raw = cbor.dumps(ked) else: raise ValueError("Invalid serialization kind = {}".format(kind)) @@ -143,7 +143,7 @@ def dumps(ked, kind=Serials.json): return raw -def loads(raw, size=None, kind=Serials.json): +def loads(raw, size=None, kind=Kinds.json): """ utility function to handle deserialization by kind @@ -156,21 +156,21 @@ def loads(raw, size=None, kind=Serials.json): then consume all bytes kind (str): serialization kind (JSON, MGPK, CBOR) """ - if kind == Serials.json: + if kind == Kinds.json: try: ked = json.loads(raw[:size].decode("utf-8")) except Exception as ex: raise DeserializeError("Error deserializing JSON: {}" "".format(raw[:size].decode("utf-8"))) - elif kind == Serials.mgpk: + elif kind == Kinds.mgpk: try: ked = msgpack.loads(raw[:size]) except Exception as ex: raise DeserializeError("Error deserializing MGPK: {}" "".format(raw[:size])) - elif kind == Serials.cbor: + elif kind == Kinds.cbor: try: ked = cbor.loads(raw[:size]) except Exception as ex: @@ -909,7 +909,7 @@ class Matter: def __init__(self, raw=None, code=MtrDex.Ed25519N, soft='', rize=None, - qb64b=None, qb64=None, qb2=None, strip=False): + qb64b=None, qb64=None, qb2=None, strip=False, **kwa): """ Validate as fully qualified Parameters: @@ -3747,7 +3747,7 @@ def _serialize(clas, sad: dict, kind: str = None): otherwise default is Serials.json """ - knd = Serials.json + knd = Kinds.json if 'v' in sad: # versioned sad _, _, knd, _, _ = deversify(sad['v']) @@ -3906,408 +3906,6 @@ def verify(self, sad, *, prefixed=False, versioned=True, code=None, return True -@dataclass(frozen=True) -class CounterCodex: - """ - CounterCodex is codex hard (stable) part of all counter derivation codes. - Only provide defined codes. - Undefined are left out so that inclusion(exclusion) via 'in' operator works. - """ - - ControllerIdxSigs: str = '-A' # Qualified Base64 Indexed Signature. - WitnessIdxSigs: str = '-B' # Qualified Base64 Indexed Signature. - NonTransReceiptCouples: str = '-C' # Composed Base64 Couple, pre+cig. - TransReceiptQuadruples: str = '-D' # Composed Base64 Quadruple, pre+snu+dig+sig. - FirstSeenReplayCouples: str = '-E' # Composed Base64 Couple, fnu+dts. - TransIdxSigGroups: str = '-F' # Composed Base64 Group, pre+snu+dig+ControllerIdxSigs group. - SealSourceCouples: str = '-G' # Composed Base64 couple, snu+dig of given delegator/issuer/transaction event - TransLastIdxSigGroups: str = '-H' # Composed Base64 Group, pre+ControllerIdxSigs group. - SealSourceTriples: str = '-I' # Composed Base64 triple, pre+snu+dig of anchoring source event - SadPathSigGroups: str = '-J' # Composed Base64 Group path+TransIdxSigGroup of SAID of content - RootSadPathSigGroups: str = '-K' # Composed Base64 Group, root(path)+SaidPathCouples - PathedMaterialGroup: str = '-L' # Composed Grouped Pathed Material Quadlet (4 char each) - BigPathedMaterialGroup: str = '-0L' # Composed Grouped Pathed Material Quadlet (4 char each) - AttachmentGroup: str = '-V' # Composed Grouped Attached Material Quadlet (4 char each) - BigAttachmentGroup: str = '-0V' # Composed Grouped Attached Material Quadlet (4 char each) - ESSRPayloadGroup: str = '-Z' # ESSR Payload Group, dig of content+Texter group - KERIACDCGenusVersion: str = '--AAA' # KERI ACDC Protocol Stack CESR Version - - def __iter__(self): - return iter(astuple(self)) # enables inclusion test with "in" - -CtrDex = CounterCodex() - - -class Counter: - """ - Counter is fully qualified cryptographic material primitive base class for - counter primitives (framing composition grouping count codes). - - Sub classes are derivation code and key event element context specific. - - Includes the following attributes and properties: - - Class Attributes: - - Attributes: - - Properties: - .code is str derivation code to indicate cypher suite - .raw is bytes crypto material only without code - .pad is int number of pad chars given raw - .count is int count of grouped following material (not part of counter) - .qb64 is str in Base64 fully qualified with derivation code + crypto mat - .qb64b is bytes in Base64 fully qualified with derivation code + crypto mat - .qb2 is bytes in binary with derivation code + crypto material - - Hidden: - ._code is str value for .code property - ._raw is bytes value for .raw property - ._pad is method to compute .pad property - ._count is int value for .count property - ._infil is method to compute fully qualified Base64 from .raw and .code - ._exfil is method to extract .code and .raw from fully qualified Base64 - - """ - # Hards table maps from bytes Base64 first two code chars to int of - # hard size, hs,(stable) of code. The soft size, ss, (unstable) for Counter - # is always > 0 and hs + ss = fs always - Hards = ({('-' + chr(c)): 2 for c in range(65, 65 + 26)}) - Hards.update({('-' + chr(c)): 2 for c in range(97, 97 + 26)}) - Hards.update([('-0', 3)]) - Hards.update([('--', 5)]) - - # Bards table maps to hard size, hs, of code from bytes holding sextets - # converted from first two code char. Used for ._bexfil. - Bards = ({codeB64ToB2(c): hs for c, hs in Hards.items()}) - - # Sizes table maps hs chars of code to Sizage namedtuple of (hs, ss, fs) - # where hs is hard size, ss is soft size, and fs is full size - # soft size, ss, should always be > 0 and hs+ss=fs for Counter - Sizes = { - '-A': Sizage(hs=2, ss=2, fs=4, ls=0), - '-B': Sizage(hs=2, ss=2, fs=4, ls=0), - '-C': Sizage(hs=2, ss=2, fs=4, ls=0), - '-D': Sizage(hs=2, ss=2, fs=4, ls=0), - '-E': Sizage(hs=2, ss=2, fs=4, ls=0), - '-F': Sizage(hs=2, ss=2, fs=4, ls=0), - '-G': Sizage(hs=2, ss=2, fs=4, ls=0), - '-H': Sizage(hs=2, ss=2, fs=4, ls=0), - '-I': Sizage(hs=2, ss=2, fs=4, ls=0), - '-J': Sizage(hs=2, ss=2, fs=4, ls=0), - '-K': Sizage(hs=2, ss=2, fs=4, ls=0), - '-L': Sizage(hs=2, ss=2, fs=4, ls=0), - '-0L': Sizage(hs=3, ss=5, fs=8, ls=0), - '-V': Sizage(hs=2, ss=2, fs=4, ls=0), - '-Z': Sizage(hs=2, ss=2, fs=4, ls=0), - '-0V': Sizage(hs=3, ss=5, fs=8, ls=0), - '--AAA': Sizage(hs=5, ss=3, fs=8, ls=0), - } - - Codex = CtrDex - - - def __init__(self, code=None, count=None, countB64=None, - qb64b=None, qb64=None, qb2=None, strip=False): - """ - Validate as fully qualified - Parameters: - code (str | None): stable (hard) part of derivation code - count (int | None): count for composition. - Count may represent quadlets/triplet, groups, primitives or - other numericy - When both count and countB64 are None then count defaults to 1 - countB64 (str | None): count for composition as Base64 - countB64 may represent quadlets/triplet, groups, primitives or - other numericy - qb64b (bytes | bytearray | None): fully qualified crypto material text domain - qb64 (str | None) fully qualified crypto material text domain - qb2 (bytes | bytearray | None) fully qualified crypto material binary domain - strip (bool): True means strip counter contents from input stream - bytearray after parsing qb64b or qb2. False means do not strip. - default False - - - Needs either code or qb64b or qb64 or qb2 - Otherwise raises EmptyMaterialError - When code and count provided then validate that code and count are correct - Else when qb64b or qb64 or qb2 provided extract and assign - .code and .count - - """ - if code is not None: # code provided - if code not in self.Sizes: - raise InvalidCodeError("Unsupported code={}.".format(code)) - - hs, ss, fs, ls = self.Sizes[code] # get sizes for code - cs = hs + ss # both hard + soft code size - if fs != cs or cs % 4: # fs must be bs and multiple of 4 for count codes - raise InvalidCodeSizeError("Whole code size not full size or not " - "multiple of 4. cs={} fs={}.".format(cs, fs)) - - if count is None: - count = 1 if countB64 is None else b64ToInt(countB64) - - if count < 0 or count > (64 ** ss - 1): - raise InvalidVarIndexError("Invalid count={} for code={}.".format(count, code)) - - self._code = code - self._count = count - - elif qb64b is not None: - self._exfil(qb64b) - if strip: # assumes bytearray - del qb64b[:self.Sizes[self.code].fs] - - elif qb64 is not None: - self._exfil(qb64) - - elif qb2 is not None: # rewrite to use direct binary exfiltration - self._bexfil(qb2) - if strip: # assumes bytearray - del qb2[:self.Sizes[self.code].fs * 3 // 4] - - else: - raise EmptyMaterialError("Improper initialization need either " - "(code and count) or qb64b or " - "qb64 or qb2.") - - @property - def code(self): - """ - Returns ._code - Makes .code read only - """ - return self._code - - - @property - def count(self): - """ - Returns ._count - Makes ._count read only - """ - return self._count - - - @property - def qb64b(self): - """ - Property qb64b: - Returns Fully Qualified Base64 Version encoded as bytes - Assumes self.raw and self.code are correctly populated - """ - return self._infil() - - - @property - def qb64(self): - """ - Property qb64: - Returns Fully Qualified Base64 Version - Assumes self.raw and self.code are correctly populated - """ - return self.qb64b.decode("utf-8") - - - @property - def qb2(self): - """ - Property qb2: - Returns Fully Qualified Binary Version Bytes - """ - return self._binfil() - - - def countToB64(self, l=None): - """ Returns count as Base64 left padded with "A"s - Parameters: - l (int | None): minimum number characters including left padding - When not provided use the softsize of .code - - """ - if l is None: - _, ss, _, _ = self.Sizes[self.code] - l = ss - return (intToB64(self.count, l=l)) - - - @staticmethod - def semVerToB64(version="", major=0, minor=0, patch=0): - """ Converts semantic version to Base64 representation of countB64 - suitable for CESR protocol genus and version - - Returns: - countB64 (str): suitable for input to Counter - example: Counter(countB64=semVerToB64(version = "1.0.0")) - - Parameters: - version (str | None): dot separated semantic version string of format - "major.minor.patch" - major (int): When version is None or empty then use major,minor, patch - minor (int): When version is None or empty then use major,minor, patch - patch (int): When version is None or empty then use major,minor, patch - - each of major, minor, patch must be in range [0,63] for represenation as - three Base64 characters - - """ - parts = [major, minor, patch] - if version: - splits = version.split(".", maxsplit=3) - splits = [(int(s) if s else 0) for s in splits] - for i in range(3-len(splits),0, -1): - splits.append(parts[-i]) - parts = splits - - for p in parts: - if p < 0 or p > 63: - raise ValueError(f"Out of bounds semantic version. " - f"Part={p} is < 0 or > 63.") - return ("".join(intToB64(p, l=1) for p in parts)) - - - def _infil(self): - """ - Returns fully qualified attached sig base64 bytes computed from - self.code and self.count. - """ - code = self.code # codex value chars hard code - count = self.count # index value int used for soft - - hs, ss, fs, ls = self.Sizes[code] - cs = hs + ss # both hard + soft size - if fs != cs or cs % 4: # fs must be bs and multiple of 4 for count codes - raise InvalidCodeSizeError("Whole code size not full size or not " - "multiple of 4. cs={} fs={}.".format(cs, fs)) - if count < 0 or count > (64 ** ss - 1): - raise InvalidVarIndexError("Invalid count={} for code={}.".format(count, code)) - - # both is hard code + converted count - both = "{}{}".format(code, intToB64(count, l=ss)) - - # check valid pad size for whole code size - if len(both) % 4: # no pad - raise InvalidCodeSizeError("Invalid size = {} of {} not a multiple of 4." - .format(len(both), both)) - # prepending full derivation code with index and strip off trailing pad characters - return (both.encode("utf-8")) - - - def _binfil(self): - """ - Returns bytes of fully qualified base2 bytes, that is .qb2 - self.code converted to Base2 left shifted with pad bits - equivalent of Base64 decode of .qb64 into .qb2 - """ - code = self.code # codex chars hard code - count = self.count # index value int used for soft - - hs, ss, fs, ls = self.Sizes[code] - cs = hs + ss - if fs != cs or cs % 4: # fs must be cs and multiple of 4 for count codes - raise InvalidCodeSizeError("Whole code size not full size or not " - "multiple of 4. cs={} fs={}.".format(cs, fs)) - - if count < 0 or count > (64 ** ss - 1): - raise InvalidVarIndexError("Invalid count={} for code={}.".format(count, code)) - - # both is hard code + converted count - both = "{}{}".format(code, intToB64(count, l=ss)) - if len(both) != cs: - raise InvalidCodeSizeError("Mismatch code size = {} with table = {}." - .format(cs, len(both))) - - return (codeB64ToB2(both)) # convert to b2 left shift if any - - - def _exfil(self, qb64b): - """ - Extracts self.code and self.count from qualified base64 bytes qb64b - """ - if not qb64b: # empty need more bytes - raise ShortageError("Empty material, Need more characters.") - - first = qb64b[:2] # extract first two char code selector - if hasattr(first, "decode"): - first = first.decode("utf-8") - if first not in self.Hards: - if first[0] == '_': - raise UnexpectedOpCodeError("Unexpected op code start" - "while extracing Counter.") - else: - raise UnexpectedCodeError("Unsupported code start ={}.".format(first)) - - hs = self.Hards[first] # get hard code size - if len(qb64b) < hs: # need more bytes - raise ShortageError("Need {} more characters.".format(hs - len(qb64b))) - - hard = qb64b[:hs] # get hard code - if hasattr(hard, "decode"): - hard = hard.decode("utf-8") # decode converts bytearray/bytes to str - if hard not in self.Sizes: # Sizes needs str not bytes - raise UnexpectedCodeError("Unsupported code ={}.".format(hard)) - - hs, ss, fs, ls = self.Sizes[hard] # assumes hs consistent in both tables - cs = hs + ss # both hard + soft code size - - # assumes that unit tests on Counter and CounterCodex ensure that - # .Codes and .Sizes are well formed. - # hs consistent and hs > 0 and ss > 0 and fs = hs + ss and not fs % 4 - - if len(qb64b) < cs: # need more bytes - raise ShortageError("Need {} more characters.".format(cs - len(qb64b))) - - count = qb64b[hs:hs + ss] # extract count chars - if hasattr(count, "decode"): - count = count.decode("utf-8") - count = b64ToInt(count) # compute int count - - self._code = hard - self._count = count - - - def _bexfil(self, qb2): - """ - Extracts self.code and self.count from qualified base2 bytes qb2 - """ - if not qb2: # empty need more bytes - raise ShortageError("Empty material, Need more bytes.") - - first = nabSextets(qb2, 2) # extract first two sextets as code selector - if first not in self.Bards: - if first[0] == b'\xfc': # b64ToB2('_') - raise UnexpectedOpCodeError("Unexpected op code start" - "while extracing Matter.") - else: - raise UnexpectedCodeError("Unsupported code start sextet={}.".format(first)) - - hs = self.Bards[first] # get code hard size equvalent sextets - bhs = sceil(hs * 3 / 4) # bhs is min bytes to hold hs sextets - if len(qb2) < bhs: # need more bytes - raise ShortageError("Need {} more bytes.".format(bhs - len(qb2))) - - hard = codeB2ToB64(qb2, hs) # extract and convert hard part of code - if hard not in self.Sizes: - raise UnexpectedCodeError("Unsupported code ={}.".format(hard)) - - hs, ss, fs, ls = self.Sizes[hard] - cs = hs + ss # both hs and ss - # assumes that unit tests on Counter and CounterCodex ensure that - # .Codes and .Sizes are well formed. - # hs consistent and hs > 0 and ss > 0 and fs = hs + ss and not fs % 4 - - bcs = sceil(cs * 3 / 4) # bcs is min bytes to hold cs sextets - if len(qb2) < bcs: # need more bytes - raise ShortageError("Need {} more bytes.".format(bcs - len(qb2))) - - both = codeB2ToB64(qb2, cs) # extract and convert both hard and soft part of code - count = b64ToInt(both[hs:hs + ss]) # get count - - self._code = hard - self._count = count - - class Tholder: """ diff --git a/src/keri/core/counting.py b/src/keri/core/counting.py index 404b9b69b..0a5ca96f3 100644 --- a/src/keri/core/counting.py +++ b/src/keri/core/counting.py @@ -4,6 +4,7 @@ Provides versioning support for Counter classes and codes """ +import copy from dataclasses import dataclass, astuple, asdict from collections import namedtuple @@ -147,18 +148,15 @@ def __iter__(self): CtrDex_2_0 = CounterCodex_2_0() -# keys and values as strings of keys -Codict1 = asdict(CtrDex_1_0) -Tagage_1_0 = namedtuple("Tagage_1_0", list(Codict1), defaults=list(Codict1)) -Tags_1_0 = Tagage_1_0() # uses defaults - -Codict2 = asdict(CtrDex_2_0) -Tagage_2_0 = namedtuple("Tagage_2_0", list(Codict2), defaults=list(Codict2)) -Tags_2_0 = Tagage_2_0() # uses defaults - -CodictAll = Codict2 | Codict1 -AllTagage = namedtuple("AllTagage", list(CodictAll), defaults=list(CodictAll)) -AllTags = AllTagage() # uses defaults +# CodeNames is tuple of codes names given by attributes of union of codices +CodeNames = tuple(asdict(CtrDex_2_0) | asdict(CtrDex_1_0)) +# Codens is namedtuple of CodeNames where its names are the code names +# Codens enables using the attributes of the named tuple to specify a code by +# name (indirection) so that changes in the code itself do not break the +# creation of a counter. Enables specifying a counter by the code name not the +# code itself. The code may change between versions but the code name does not. +Codenage = namedtuple("Codenage", CodeNames, defaults=CodeNames) +Codens = Codenage() @dataclass(frozen=True) @@ -200,8 +198,9 @@ class Counter: Includes the following attributes and properties: Class Attributes: - Codes (dict): of codexes keyed by version - Tags (dict): of tagages keyed by version + Codes (dict): nested of codexes keyed by major and minor version + Names (dict): nested of map of code names to codes keyed by + major and minor version Hards (dict): of hard code sizes keyed by text domain selector Bards (dict): of hard code sizes keyed by binary domain selector Sizes (dict): of size tables keyed by version. Size table is dict @@ -310,7 +309,15 @@ class Counter: }, } - Tags = {Vrsn_1_0: Tags_1_0, Vrsn_2_0: Tags_2_0} + + # invert dataclass codenames: codes to dict codes: codenames + Names = copy.deepcopy(Codes) # make deep nested copy so can invert nested values + for minor in Names.values(): + for key in minor: + minor[key] = {val: key for key, val in asdict(minor[key]).items()} + + + # Hards table maps from bytes Base64 first two code chars to int of # hard size, hs,(stable) of code. The soft size, ss, (unstable) for Counter @@ -350,6 +357,7 @@ class Counter: '-0L': Sizage(hs=3, ss=5, fs=8, ls=0), '-V': Sizage(hs=2, ss=2, fs=4, ls=0), '-0V': Sizage(hs=3, ss=5, fs=8, ls=0), + '-Z': Sizage(hs=2, ss=2, fs=4, ls=0), '--AAA': Sizage(hs=5, ss=3, fs=8, ls=0), }, }, @@ -415,17 +423,17 @@ class Counter: } - def __init__(self, tag=None, *, code = None, count=None, countB64=None, - qb64b=None, qb64=None, qb2=None, strip=False, gvrsn=Vrsn_2_0): + def __init__(self, code=None, *, count=None, countB64=None, + qb64b=None, qb64=None, qb2=None, strip=False, + gvrsn=Vrsn_2_0, **kwa): """ Validate as fully qualified Parameters: - tag (str | None): label of stable (hard) part of derivation code - to lookup in codex so it can depend on version. - takes precedence over code. - code (str | None): stable (hard) part of derivation code - if tag provided lookup code from tag - else if tag is None and code provided use code. + code (str | None): either stable (hard) part of derivation code or + code name. When code name then look up code from + ._codes. This allows versioning to change code + but keep stable code name. + count (int | None): count of framed material in quadlets/triplets for composition. Count does not include code. When both count and countB64 are None then count @@ -466,14 +474,15 @@ def __init__(self, tag=None, *, code = None, count=None, countB64=None, self._version = gvrsn # provided version may be earlier than supported version - if tag: - if not hasattr(self._codes, tag): - raise kering.InvalidCodeError(f"Unsupported {tag=}.") - code = self._codes[tag] - - if code is not None: # code (hard) provided + if code: # code (hard) provided + # assumes ._sizes ._codes coherent if code not in self._sizes or len(code) < 2: - raise kering.InvalidCodeError(f"Unsupported {code=}.") + try: + code = self._codes[code] # code is code name so look up code + if code not in self._sizes or len(code) < 2: + raise kering.InvalidCodeError(f"Unsupported {code=}.") + except Exception as ex: + raise kering.InvalidCodeError(f"Unsupported {code=}.") from ex hs, ss, fs, ls = self._sizes[code] # get sizes for code cs = hs + ss # both hard + soft code size @@ -520,8 +529,7 @@ def __init__(self, tag=None, *, code = None, count=None, countB64=None, "(code and count) or qb64b or " "qb64 or qb2.") - codenames = { val: key for key, val in asdict(self.codes).items()} # map codes to code names - self._tag = codenames[self.code] + self._name = self.Names[gvrsn.major][latest][self.code] @property def version(self): @@ -547,13 +555,13 @@ def codes(self): """ return self._codes - @property - def tags(self): - """ - Returns tags for current .version - Makes .tags read only - """ - return self.Tags[self.version] # use own version + #@property + #def tags(self): + #""" + #Returns tags for current .version + #Makes .tags read only + #""" + #return self.Tags[self.version] # use own version @property def sizes(self): @@ -574,25 +582,17 @@ def code(self): """ return self._code - @property - def tag(self): - """ - Returns: - tag (str): code name for self.code - - Getter for ._tag. Makes .tag read only - """ - return self._tag - @property def name(self): """ Returns: - name (str): code name for self.code alias of .tag. Match interface + name (str): code name for self.code. Match interface for annotation for primitives like Matter + Getter for ._name. Makes .name read only + """ - return self.tag + return self._name @property diff --git a/src/keri/core/eventing.py b/src/keri/core/eventing.py index 9580e8d9b..bef5475d3 100644 --- a/src/keri/core/eventing.py +++ b/src/keri/core/eventing.py @@ -14,7 +14,7 @@ from hio.help import decking -from .. import kering +from .. import kering, core from ..kering import (MissingEntryError, ValidationError, MissingSignatureError, MissingWitnessSignatureError, UnverifiedReplyError, @@ -29,11 +29,13 @@ from ..help import helping from . import coring -from .coring import (versify, Serials, Ilks, PreDex, DigDex, - NonTransDex, CtrDex, Counter, +from .coring import (versify, Kinds, Ilks, PreDex, DigDex, + NonTransDex, Number, Seqner, Cigar, Dater, Verfer, Diger, Prefixer, Tholder, Saider) +from .counting import Counter, Codens + from . import indexing from .indexing import Siger @@ -504,7 +506,7 @@ def state(pre, cnfg=None, # default to [] dpre=None, version=Version, - kind=Serials.json, + kind=Kinds.json, intive = False, ): """ @@ -655,7 +657,7 @@ def incept(keys, cnfg=None, data=None, version=Version, - kind=Serials.json, + kind=Kinds.json, code=None, intive=False, delpre=None, @@ -804,7 +806,7 @@ def rotate(pre, adds=None, data=None, version=Version, - kind=Serials.json, + kind=Kinds.json, intive = False, ): """ @@ -972,7 +974,7 @@ def interact(pre, sn=1, data=None, version=Version, - kind=Serials.json, + kind=Kinds.json, ): """ Returns serder of interaction event message. @@ -1018,7 +1020,7 @@ def receipt(pre, said, *, version=Version, - kind=Serials.json + kind=Kinds.json ): """ Returns serder of event receipt message. Used for both non-trans and trans @@ -1057,7 +1059,7 @@ def query(route="", query=None, stamp=None, version=Version, - kind=Serials.json): + kind=Kinds.json): """ Returns serder of query 'qry' message. Utility function to automate creation of query messages. @@ -1115,7 +1117,7 @@ def reply(route="", data=None, stamp=None, version=Version, - kind=Serials.json): + kind=Kinds.json): """ Returns serder of reply 'rpy' message. Utility function to automate creation of reply messages. @@ -1169,7 +1171,7 @@ def prod(route="", query=None, stamp=None, version=Version, - kind=Serials.json): + kind=Kinds.json): """ Returns serder of prod, 'pro', msg to request disclosure via bare, 'bar' msg of data anchored via seal(s) on KEL for identifier prefix, pre, when given @@ -1213,7 +1215,7 @@ def bare(route="", data=None, stamp=None, version=Version, - kind=Serials.json): + kind=Kinds.json): """ Returns serder of bare 'bar' message. Utility function to automate creation of unhiding (bareing) messages for @@ -1304,21 +1306,25 @@ def messagize(serder, *, sigers=None, seal=None, wigers=None, cigars=None, if sigers: if isinstance(seal, SealEvent): - atc.extend(Counter(CtrDex.TransIdxSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.TransIdxSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(seal.i.encode("utf-8")) atc.extend(Seqner(snh=seal.s).qb64b) atc.extend(seal.d.encode("utf-8")) elif isinstance(seal, SealLast): - atc.extend(Counter(CtrDex.TransLastIdxSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.TransLastIdxSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(seal.i.encode("utf-8")) - atc.extend(Counter(code=CtrDex.ControllerIdxSigs, count=len(sigers)).qb64b) + atc.extend(Counter(Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0).qb64b) for siger in sigers: atc.extend(siger.qb64b) if wigers: - atc.extend(Counter(code=CtrDex.WitnessIdxSigs, count=len(wigers)).qb64b) + atc.extend(Counter(Codens.WitnessIdxSigs, count=len(wigers), + gvrsn=kering.Vrsn_1_0).qb64b) for wiger in wigers: if wiger.verfer and wiger.verfer.code not in NonTransDex: raise ValueError("Attempt to use tranferable prefix={} for " @@ -1326,7 +1332,8 @@ def messagize(serder, *, sigers=None, seal=None, wigers=None, cigars=None, atc.extend(wiger.qb64b) if cigars: - atc.extend(Counter(code=CtrDex.NonTransReceiptCouples, count=len(cigars)).qb64b) + atc.extend(Counter(Codens.NonTransReceiptCouples, count=len(cigars), + gvrsn=kering.Vrsn_1_0).qb64b) for cigar in cigars: if cigar.verfer.code not in NonTransDex: raise ValueError("Attempt to use tranferable prefix={} for " @@ -1338,8 +1345,8 @@ def messagize(serder, *, sigers=None, seal=None, wigers=None, cigars=None, if len(atc) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(atc))) - msg.extend(Counter(code=CtrDex.AttachmentGroup, - count=(len(atc) // 4)).qb64b) + msg.extend(Counter(Codens.AttachmentGroup, + count=(len(atc) // 4), gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(atc) return msg @@ -1370,33 +1377,40 @@ def proofize(sadtsgs=None, *, sadsigers=None, sadcigars=None, pipelined=False): count = 0 for (pather, sigers) in sadsigers: count += 1 - atc.extend(coring.Counter(coring.CtrDex.SadPathSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.SadPathSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(pather.qb64b) - atc.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)).qb64b) + atc.extend(Counter(Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0).qb64b) for siger in sigers: atc.extend(siger.qb64b) for (pather, prefixer, seqner, saider, sigers) in sadtsgs: count += 1 - atc.extend(coring.Counter(coring.CtrDex.SadPathSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.SadPathSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(pather.qb64b) - atc.extend(coring.Counter(coring.CtrDex.TransIdxSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.TransIdxSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(prefixer.qb64b) atc.extend(seqner.qb64b) atc.extend(saider.qb64b) - atc.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)).qb64b) + atc.extend(Counter(Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0).qb64b) for siger in sigers: atc.extend(siger.qb64b) for (pather, cigars) in sadcigars: count += 1 - atc.extend(coring.Counter(coring.CtrDex.SadPathSigGroups, count=1).qb64b) + atc.extend(Counter(Codens.SadPathSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(pather.qb64b) - atc.extend(coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, count=len(sadcigars)).qb64b) + atc.extend(Counter(Codens.NonTransReceiptCouples, + count=len(sadcigars), gvrsn=kering.Vrsn_1_0).qb64b) for cigar in cigars: if cigar.verfer.code not in coring.NonTransDex: raise ValueError("Attempt to use tranferable prefix={} for " @@ -1410,12 +1424,13 @@ def proofize(sadtsgs=None, *, sadsigers=None, sadcigars=None, pipelined=False): if len(atc) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(atc))) - msg.extend(coring.Counter(code=coring.CtrDex.AttachmentGroup, - count=(len(atc) // 4)).qb64b) + msg.extend(Counter(Codens.AttachmentGroup, count=(len(atc) // 4), + gvrsn=kering.Vrsn_1_0).qb64b) if count > 1: root = coring.Pather(bext="-") - msg.extend(coring.Counter(code=coring.CtrDex.RootSadPathSigGroups, count=count).qb64b) + msg.extend(Counter(Codens.RootSadPathSigGroups, count=count, + gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(root.qb64b) msg.extend(atc) diff --git a/src/keri/core/indexing.py b/src/keri/core/indexing.py index 7022fbc1a..65c933b5a 100644 --- a/src/keri/core/indexing.py +++ b/src/keri/core/indexing.py @@ -233,7 +233,7 @@ class Indexer: def __init__(self, raw=None, code=IdrDex.Ed25519_Sig, index=0, ondex=None, - qb64b=None, qb64=None, qb2=None, strip=False): + qb64b=None, qb64=None, qb2=None, strip=False, **kwa): """ Validate as fully qualified Parameters: diff --git a/src/keri/core/parsing.py b/src/keri/core/parsing.py index 1cd9b4cd4..db0a86fa5 100644 --- a/src/keri/core/parsing.py +++ b/src/keri/core/parsing.py @@ -7,13 +7,15 @@ import logging -from .coring import (Ilks, CtrDex, Counter, Seqner, Cigar, +from ..kering import Vrsn_1_0, Vrsn_2_0 +from .coring import (Ilks, Seqner, Cigar, Dater, Verfer, Prefixer, Saider, Pather, Texter) +from .counting import Counter, Codens, CtrDex_1_0 from .indexing import (Siger, ) from . import serdering from .. import help from .. import kering -from ..kering import Colds, sniff +from ..kering import Colds, sniff, Vrsn_1_0, Vrsn_2_0 logger = help.ogler.getLogger() @@ -94,7 +96,7 @@ def extract(ims, klas, cold=Colds.txt): @staticmethod - def _extractor(ims, klas, cold=Colds.txt, abort=False): + def _extractor(ims, klas, cold=Colds.txt, abort=False, gvrsn=Vrsn_1_0): """ Returns generator to extract and return instance of klas from input message stream, ims, given stream state, cold, is txt or bny. @@ -103,6 +105,14 @@ def _extractor(ims, klas, cold=Colds.txt, abort=False): Inits klas from ims using qb64b or qb2 parameter based on cold. Yields if not enough bytes in ims to fill out klas instance. + Parameters: + ims (bytearray): input message stream (must be strippable) + klas (Serder | Counter | Matter | Indexer): subclass that is parsable + cold (Coldage): instance str value + abort (bool): True means abort if bad pipelined frame Shortage + False means do not abort if Shortage just wait for more + gvrsn (Versionage): instance of genera version of CESR code tables + Usage: instance = self._extractor @@ -110,9 +120,9 @@ def _extractor(ims, klas, cold=Colds.txt, abort=False): while True: try: if cold == Colds.txt: - return klas(qb64b=ims, strip=True) + return klas(qb64b=ims, strip=True, gvrsn=gvrsn) elif cold == Colds.bny: - return klas(qb2=ims, strip=True) + return klas(qb2=ims, strip=True, gvrsn=gvrsn) else: raise kering.ColdStartError("Invalid stream state cold={}.".format(cold)) except kering.ShortageError as ex: @@ -137,10 +147,10 @@ def _sadPathSigGroup(self, ctr, ims, root=None, cold=Colds.txt, pipelined=False) Returns: """ - if ctr.code != CtrDex.SadPathSigGroups: + if ctr.code != CtrDex_1_0.SadPathSigGroups: raise kering.UnexpectedCountCodeError("Wrong " "count code={}.Expected code={}." - "".format(ctr.code, CtrDex.ControllerIdxSigs)) + "".format(ctr.code, CtrDex_1_0.ControllerIdxSigs)) subpath = yield from self._extractor(ims, klas=Pather, @@ -153,10 +163,10 @@ def _sadPathSigGroup(self, ctr, ims, root=None, cold=Colds.txt, pipelined=False) klas=Counter, cold=cold, abort=pipelined) - if sctr.code == CtrDex.TransIdxSigGroups: + if sctr.code == CtrDex_1_0.TransIdxSigGroups: for prefixer, seqner, saider, isigers in self._transIdxSigGroups(sctr, ims, cold=cold, pipelined=pipelined): yield sctr.code, (subpath, prefixer, seqner, saider, isigers) - elif sctr.code == CtrDex.ControllerIdxSigs: + elif sctr.code == CtrDex_1_0.ControllerIdxSigs: isigers = [] for i in range(sctr.count): # extract each attached signature isiger = yield from self._extractor(ims=ims, @@ -165,13 +175,13 @@ def _sadPathSigGroup(self, ctr, ims, root=None, cold=Colds.txt, pipelined=False) abort=pipelined) isigers.append(isiger) yield sctr.code, (subpath, isigers) - elif sctr.code == CtrDex.NonTransReceiptCouples: + elif sctr.code == CtrDex_1_0.NonTransReceiptCouples: for cigar in self._nonTransReceiptCouples(ctr=sctr, ims=ims, cold=cold, pipelined=pipelined): yield sctr.code, (subpath, cigar) else: raise kering.UnexpectedCountCodeError("Wrong " "count code={}.Expected code={}." - "".format(ctr.code, CtrDex.ControllerIdxSigs)) + "".format(ctr.code, CtrDex_1_0.ControllerIdxSigs)) def _transIdxSigGroups(self, ctr, ims, cold=Colds.txt, pipelined=False): @@ -214,10 +224,10 @@ def _transIdxSigGroups(self, ctr, ims, cold=Colds.txt, pipelined=False): klas=Counter, cold=cold, abort=pipelined) - if ictr.code != CtrDex.ControllerIdxSigs: + if ictr.code != CtrDex_1_0.ControllerIdxSigs: raise kering.UnexpectedCountCodeError("Wrong " "count code={}.Expected code={}." - "".format(ictr.code, CtrDex.ControllerIdxSigs)) + "".format(ictr.code, CtrDex_1_0.ControllerIdxSigs)) isigers = [] for i in range(ictr.count): # extract each attached signature isiger = yield from self._extractor(ims=ims, @@ -263,7 +273,7 @@ def _nonTransReceiptCouples(self, ctr, ims, cold=Colds.txt, pipelined=False): def parse(self, ims=None, framed=None, pipeline=None, kvy=None, tvy=None, - exc=None, rvy=None, vry=None, local=None): + exc=None, rvy=None, vry=None, local=None, gvrsn=Vrsn_1_0): """ Processes all messages from incoming message stream, ims, when provided. Otherwise process messages from .ims @@ -289,6 +299,7 @@ def parse(self, ims=None, framed=None, pipeline=None, kvy=None, tvy=None, local (bool): True means event source is local (protected) for validation False means event source is remote (unprotected) for validation None means use default .local + gvrsn (Versionage): instance of genera version of CESR code tables New Logic: Attachments must all have counters so know if txt or bny format for @@ -306,7 +317,8 @@ def parse(self, ims=None, framed=None, pipeline=None, kvy=None, tvy=None, exc=exc, rvy=rvy, vry=vry, - local=local) + local=local, + gvrsn=gvrsn) while True: try: @@ -366,7 +378,8 @@ def parseOne(self, ims=None, framed=True, pipeline=False, kvy=None, tvy=None, def allParsator(self, ims=None, framed=None, pipeline=None, kvy=None, - tvy=None, exc=None, rvy=None, vry=None, local=None): + tvy=None, exc=None, rvy=None, vry=None, local=None, + gvrsn=Vrsn_1_0): """ Returns generator to parse all messages from incoming message stream, ims until ims is exhausted (empty) then returns. @@ -392,6 +405,7 @@ def allParsator(self, ims=None, framed=None, pipeline=None, kvy=None, local (bool): True means event source is local (protected) for validation False means event source is remote (unprotected) for validation None means use default .local + gvrsn (Versionage): instance of genera version of CESR code tables New Logic: Attachments must all have counters so know if txt or bny format for @@ -423,7 +437,8 @@ def allParsator(self, ims=None, framed=None, pipeline=None, kvy=None, exc=exc, rvy=rvy, vry=vry, - local=local) + local=local, + gvrsn=gvrsn) except kering.SizedGroupError as ex: # error inside sized group # processOneIter already flushed group so do not flush stream @@ -627,7 +642,8 @@ def parsator(self, ims=None, framed=None, pipeline=None, kvy=None, tvy=None, def msgParsator(self, ims=None, framed=True, pipeline=False, - kvy=None, tvy=None, exc=None, rvy=None, vry=None, local=None): + kvy=None, tvy=None, exc=None, rvy=None, vry=None, + local=None, gvrsn=Vrsn_1_0): """ Returns generator that upon each iteration extracts and parses msg with attached crypto material (signature etc) from incoming message @@ -657,6 +673,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, local (bool): True means event source is local (protected) for validation False means event source is remote (unprotected) for validation None means use default .local + gvrsn (Versionage): instance of genera version of CESR code tables Logic: Currently only support couters on attachments not on combined or @@ -731,7 +748,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, cold = sniff(ims) # expect counter at front of attachments if cold != Colds.msg: # not new message so process attachments ctr = yield from self._extractor(ims=ims, klas=Counter, cold=cold) - if ctr.code == CtrDex.AttachmentGroup: # pipeline ctr? + if ctr.code == CtrDex_1_0.AttachmentGroup: # pipeline ctr? pipelined = True # compute pipelined attached group size based on txt or bny pags = ctr.count * 4 if cold == Colds.txt else ctr.count * 3 @@ -753,7 +770,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, # iteratively process attachment counters (all non pipelined) while True: # do while already extracted first counter is ctr - if ctr.code == CtrDex.ControllerIdxSigs: + if ctr.code == CtrDex_1_0.ControllerIdxSigs: for i in range(ctr.count): # extract each attached signature siger = yield from self._extractor(ims=ims, klas=Siger, @@ -761,7 +778,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) sigers.append(siger) - elif ctr.code == CtrDex.WitnessIdxSigs: + elif ctr.code == CtrDex_1_0.WitnessIdxSigs: for i in range(ctr.count): # extract each attached signature wiger = yield from self._extractor(ims=ims, klas=Siger, @@ -769,7 +786,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) wigers.append(wiger) - elif ctr.code == CtrDex.NonTransReceiptCouples: + elif ctr.code == CtrDex_1_0.NonTransReceiptCouples: # extract attached rct couplets into list of sigvers # verfer property of cigar is the identifier prefix # cigar itself has the attached signature @@ -779,7 +796,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, pipelined=pipelined): cigars.append(cigar) - elif ctr.code == CtrDex.TransReceiptQuadruples: + elif ctr.code == CtrDex_1_0.TransReceiptQuadruples: # extract attaced trans receipt vrc quadruple # spre+ssnu+sdig+sig # spre is pre of signer of vrc @@ -806,7 +823,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) trqs.append((prefixer, seqner, saider, siger)) - elif ctr.code == CtrDex.TransIdxSigGroups: + elif ctr.code == CtrDex_1_0.TransIdxSigGroups: # extract attaced trans indexed sig groups each made of # triple pre+snu+dig plus indexed sig group # pre is pre of signer (endorser) of msg @@ -819,7 +836,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, pipelined=pipelined): tsgs.append((prefixer, seqner, saider, isigers)) - elif ctr.code == CtrDex.TransLastIdxSigGroups: + elif ctr.code == CtrDex_1_0.TransLastIdxSigGroups: # extract attaced signer seal indexed sig groups each made of # identifier pre plus indexed sig group # pre is pre of signer (endorser) of msg @@ -834,10 +851,10 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, klas=Counter, cold=cold, abort=pipelined) - if ictr.code != CtrDex.ControllerIdxSigs: + if ictr.code != CtrDex_1_0.ControllerIdxSigs: raise kering.UnexpectedCountCodeError("Wrong " "count code={}.Expected code={}." - "".format(ictr.code, CtrDex.ControllerIdxSigs)) + "".format(ictr.code, CtrDex_1_0.ControllerIdxSigs)) isigers = [] for i in range(ictr.count): # extract each attached signature isiger = yield from self._extractor(ims=ims, @@ -847,7 +864,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, isigers.append(isiger) ssgs.append((prefixer, isigers)) - elif ctr.code == CtrDex.FirstSeenReplayCouples: + elif ctr.code == CtrDex_1_0.FirstSeenReplayCouples: # extract attached first seen replay couples # snu+dtm # snu is fn (first seen ordinal) of event @@ -863,7 +880,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) frcs.append((firner, dater)) - elif ctr.code == CtrDex.SealSourceCouples: + elif ctr.code == CtrDex_1_0.SealSourceCouples: # extract attached first seen replay couples # snu+dig # snu is sequence number of event @@ -879,7 +896,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) sscs.append((seqner, saider)) - elif ctr.code == CtrDex.SealSourceTriples: + elif ctr.code == CtrDex_1_0.SealSourceTriples: # extract attached anchoring source event information # pre+snu+dig # pre is prefix of event @@ -900,7 +917,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, abort=pipelined) ssts.append((prefixer, seqner, saider)) - elif ctr.code == CtrDex.SadPathSigGroups: + elif ctr.code == CtrDex_1_0.SadPathSigGroups: path = yield from self._extractor(ims, klas=Pather, cold=cold, @@ -915,12 +932,12 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, root=path, cold=cold, pipelined=pipelined): - if code == CtrDex.TransIdxSigGroups: + if code == CtrDex_1_0.TransIdxSigGroups: sadtsgs.append(sigs) else: sadcigs.append(sigs) - elif ctr.code == CtrDex.PathedMaterialGroup: # pathed ctr? + elif ctr.code == CtrDex_1_0.PathedMaterialGroup: # pathed ctr? # compute pipelined attached group size based on txt or bny pags = ctr.count * 4 if cold == Colds.txt else ctr.count * 3 while len(ims) < pags: # wait until rx full pipelned group @@ -930,7 +947,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, del ims[:pags] # strip off from ims pathed.append(pims) - elif ctr.code == CtrDex.BigPathedMaterialGroup: # pathed ctr? + elif ctr.code == CtrDex_1_0.BigPathedMaterialGroup: # pathed ctr? # compute pipelined attached group size based on txt or bny pags = ctr.count * 4 if cold == Colds.txt else ctr.count * 3 while len(ims) < pags: # wait until rx full pipelned group @@ -940,7 +957,7 @@ def msgParsator(self, ims=None, framed=True, pipeline=False, del ims[:pags] # strip off from ims pathed.append(pims) - elif ctr.code == CtrDex.ESSRPayloadGroup: + elif ctr.code == CtrDex_1_0.ESSRPayloadGroup: for i in range(ctr.count): texter = yield from self._extractor(ims, klas=Texter, diff --git a/src/keri/core/scheming.py b/src/keri/core/scheming.py index 5c87667a2..919d8e035 100644 --- a/src/keri/core/scheming.py +++ b/src/keri/core/scheming.py @@ -12,7 +12,7 @@ import msgpack from . import coring -from .coring import MtrDex, Serials, Saider, Saids +from .coring import MtrDex, Kinds, Saider, Saids from .. import help, kering from ..kering import ValidationError, DeserializeError @@ -109,7 +109,7 @@ def resolve(self, uri): return self.resolver.resolve(uri) - def load(self, raw, kind=Serials.json): + def load(self, raw, kind=Kinds.json): """ Schema loader Loads schema based on kind by performing deserialization on raw bytes of schema @@ -122,21 +122,21 @@ def load(self, raw, kind=Serials.json): tuple: (dict, Serials, Saider) of schema """ - if kind == Serials.json: + if kind == Kinds.json: try: sed = json.loads(raw.decode("utf-8")) except Exception as ex: raise DeserializeError("Error deserializing JSON: {} {}" "".format(raw.decode("utf-8"), ex)) - elif kind == Serials.mgpk: + elif kind == Kinds.mgpk: try: sed = msgpack.loads(raw) except Exception as ex: raise DeserializeError("Error deserializing MGPK: {} {}" "".format(raw, ex)) - elif kind == Serials.cbor: + elif kind == Kinds.cbor: try: sed = cbor.loads(raw) except Exception as ex: @@ -158,7 +158,7 @@ def load(self, raw, kind=Serials.json): return sed, kind, saider @staticmethod - def dump(sed, kind=Serials.json): + def dump(sed, kind=Kinds.json): """ Serailize schema based on kind Parameters: diff --git a/src/keri/core/serdering.py b/src/keri/core/serdering.py index 9c46826d0..afe6686d7 100644 --- a/src/keri/core/serdering.py +++ b/src/keri/core/serdering.py @@ -27,7 +27,7 @@ MAXVERFULLSPAN, VER1FULLSPAN, VER2FULLSPAN) from ..kering import SMELLSIZE, Smellage, smell -from ..kering import Protocols, Serials, versify, deversify, Ilks +from ..kering import Protocols, Kinds, versify, deversify, Ilks from .. import help from ..help import helping @@ -38,7 +38,7 @@ from .coring import (Matter, Saider, Verfer, Diger, Number, Tholder, Tagger, Ilker, Traitor, Verser, ) -from .counting import GenDex, AllTags, Counter, SealDex_2_0 +from .counting import GenDex, Counter, Codens, SealDex_2_0 from .structing import Sealer, SClanDom @@ -379,7 +379,7 @@ class Serder: Protocol = None # class based message protocol, None means any in Protocols is ok Proto = Protocols.keri # default message protocol type for makify on base Serder Vrsn = Vrsn_1_0 # default protocol version for protocol type - Kind = Serials.json # default serialization kind + Kind = Kinds.json # default serialization kind CVrsn = Vrsn_2_0 # default CESR code table version @@ -809,7 +809,7 @@ def _verify(self): if self.kind != kind: raise ValidationError(f"Inconsistent kind={self.kind} in {sad}.") - if self.kind in (Serials.json, Serials.cbor, Serials.mgpk): + if self.kind in (Kinds.json, Kinds.cbor, Kinds.mgpk): if size != self.size != len(raw): raise ValidationError(f"Inconsistent size={self.size} in {sad}.") else: # size is not set in version string when kind is CESR @@ -898,7 +898,7 @@ def makify(self, sad, *, proto=None, vrsn=None, kind=None, ilk = (silk if silk is not None else list(self.Fields[proto][vrsn])[0]) # list(dict) gives list of keys - if kind not in Serials: + if kind not in Kinds: raise SerializeError(f"Invalid serialization kind = {kind}") if ilk not in self.Fields[proto][vrsn]: @@ -986,7 +986,7 @@ def makify(self, sad, *, proto=None, vrsn=None, kind=None, raise SerializeError(f"Missing requires version string field 'v'" f" in sad = {sad}.") - if kind in (Serials.json, Serials.cbor, Serials.mgpk): + if kind in (Kinds.json, Kinds.cbor, Kinds.mgpk): # this size of sad needs to be computed based on actual version string span # since not same for all versions sad['v'] = self.Dummy * self.Spans[vrsn] # ensure span of vs is dummied MAXVERFULLSPAN @@ -1015,7 +1015,7 @@ def makify(self, sad, *, proto=None, vrsn=None, kind=None, sad[label] = dig raw = self.dumps(sad, kind=kind, proto=proto, vrsn=vrsn) # compute final raw - if kind == Serials.cesr:# cesr kind version string does not set size + if kind == Kinds.cesr:# cesr kind version string does not set size size = len(raw) # size of whole message self._raw = raw @@ -1074,7 +1074,7 @@ def _inhale(self, raw, *, smellage=None): - def loads(self, raw, size=None, kind=Serials.json): + def loads(self, raw, size=None, kind=Kinds.json): """method to handle deserialization by kind assumes already sniffed and smelled to determine serialization size and kind @@ -1093,21 +1093,21 @@ def loads(self, raw, size=None, kind=Serials.json): Notes: loads of json uses str whereas loads of cbor and msgpack use bytes """ - if kind == Serials.json: + if kind == Kinds.json: try: sad = json.loads(raw[:size].decode("utf-8")) except Exception as ex: raise DeserializeError(f"Error deserializing JSON: " f"{raw[:size].decode('utf-8')}") from ex - elif kind == Serials.mgpk: + elif kind == Kinds.mgpk: try: sad = msgpack.loads(raw[:size]) except Exception as ex: raise DeserializeError(f"Error deserializing MGPK: " f"{raw[:size].decode('utf-8')}") from ex - elif kind == Serials.cbor: + elif kind == Kinds.cbor: try: sad = cbor.loads(raw[:size]) except Exception as ex: @@ -1152,7 +1152,7 @@ def _exhale(self, sad): raw = self.dumps(sad, kind) - if kind in (Serials.cesr): # cesr kind version string does not set size + if kind in (Kinds.cesr): # cesr kind version string does not set size size = len(raw) # size of whole message # must call .verify to ensure these are compatible @@ -1164,7 +1164,7 @@ def _exhale(self, sad): self._size = size - def dumps(self, sad=None, kind=Serials.json, proto=None, vrsn=None): + def dumps(self, sad=None, kind=Kinds.json, proto=None, vrsn=None): """Method to handle serialization by kind Assumes sad fields are properly filled out for serialization kind. @@ -1187,17 +1187,17 @@ def dumps(self, sad=None, kind=Serials.json, proto=None, vrsn=None): """ sad = sad if sad is not None else self.sad - if kind == Serials.json: + if kind == Kinds.json: raw = json.dumps(sad, separators=(",", ":"), ensure_ascii=False).encode("utf-8") - elif kind == Serials.mgpk: + elif kind == Kinds.mgpk: raw = msgpack.dumps(sad) - elif kind == Serials.cbor: + elif kind == Kinds.cbor: raw = cbor.dumps(sad) - elif kind == Serials.cesr: # does not support list only dict + elif kind == Kinds.cesr: # does not support list only dict raw = self._dumps(sad, proto=proto, vrsn=vrsn) else: @@ -1298,7 +1298,7 @@ def _dumps(self, sad=None, proto=None, vrsn=None): for e in v: # list frame.extend(e.encode("utf-8")) - val = bytearray(Counter(tag=AllTags.GenericListGroup, + val = bytearray(Counter(Codens.GenericListGroup, count=len(frame) // 4).qb64b) val.extend(frame) @@ -1307,7 +1307,7 @@ def _dumps(self, sad=None, proto=None, vrsn=None): for e in v: # list frame.extend(Traitor(trait=e).qb64b) - val = bytearray(Counter(tag=AllTags.GenericListGroup, + val = bytearray(Counter(Codens.GenericListGroup, count=len(frame) // 4).qb64b) val.extend(frame) @@ -1342,7 +1342,7 @@ def _dumps(self, sad=None, proto=None, vrsn=None): #generic seal no count type (v, Mapping): #for l, e in v.items(): #pass - #val = bytearray(Counter(tag=AllTags.GenericMapGroup, + #val = bytearray(Counter(tag=""GenericMapGroup"", # count=len(frame) // 4).qb64b) #val.extend(mapframe) @@ -1352,7 +1352,7 @@ def _dumps(self, sad=None, proto=None, vrsn=None): gframe = bytearray() gcode = None - val = bytearray(Counter(tag=AllTags.GenericListGroup, + val = bytearray(Counter(Codens.GenericListGroup, count=len(frame) // 4).qb64b) val.extend(frame) @@ -1378,7 +1378,7 @@ def _dumps(self, sad=None, proto=None, vrsn=None): # prepend count code for message if fixed: - raw = bytearray(Counter(tag=AllTags.FixedMessageBodyGroup, + raw = bytearray(Counter(Codens.FixedMessageBodyGroup, count=len(bdy) // 4).qb64b) raw.extend(bdy) else: diff --git a/src/keri/db/basing.py b/src/keri/db/basing.py index 7426ae733..d50b8b12e 100644 --- a/src/keri/db/basing.py +++ b/src/keri/db/basing.py @@ -1556,46 +1556,46 @@ def cloneEvtMsg(self, pre, fn, dig): # add indexed signatures to attachments if not (sigs := self.getSigs(key=dgkey)): raise kering.MissingEntryError("Missing sigs for dig={}.".format(dig)) - atc.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigs)).qb64b) + atc.extend(core.Counter(code=core.Codens.ControllerIdxSigs, + count=len(sigs), gvrsn=kering.Vrsn_1_0).qb64b) for sig in sigs: atc.extend(sig) # add indexed witness signatures to attachments if wigs := self.getWigs(key=dgkey): - atc.extend(coring.Counter(code=coring.CtrDex.WitnessIdxSigs, - count=len(wigs)).qb64b) + atc.extend(core.Counter(code=core.Codens.WitnessIdxSigs, + count=len(wigs), gvrsn=kering.Vrsn_1_0).qb64b) for wig in wigs: atc.extend(wig) # add authorizer (delegator/issuer) source seal event couple to attachments couple = self.getAes(dgkey) if couple is not None: - atc.extend(coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1).qb64b) + atc.extend(core.Counter(code=core.Codens.SealSourceCouples, + count=1, gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(couple) # add trans endorsement quadruples to attachments not controller # may have been originally key event attachments or receipted endorsements if quads := self.getVrcs(key=dgkey): - atc.extend(coring.Counter(code=coring.CtrDex.TransReceiptQuadruples, - count=len(quads)).qb64b) + atc.extend(core.Counter(code=core.Codens.TransReceiptQuadruples, + count=len(quads), gvrsn=kering.Vrsn_1_0).qb64b) for quad in quads: atc.extend(quad) # add nontrans endorsement couples to attachments not witnesses # may have been originally key event attachments or receipted endorsements if coups := self.getRcts(key=dgkey): - atc.extend(coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, - count=len(coups)).qb64b) + atc.extend(core.Counter(code=core.Codens.NonTransReceiptCouples, + count=len(coups), gvrsn=kering.Vrsn_1_0).qb64b) for coup in coups: atc.extend(coup) # add first seen replay couple to attachments if not (dts := self.getDts(key=dgkey)): raise kering.MissingEntryError("Missing datetime for dig={}.".format(dig)) - atc.extend(coring.Counter(code=coring.CtrDex.FirstSeenReplayCouples, - count=1).qb64b) + atc.extend(core.Counter(code=core.Codens.FirstSeenReplayCouples, + count=1, gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(core.Number(num=fn, code=core.NumDex.Huge).qb64b) # may not need to be Huge atc.extend(coring.Dater(dts=bytes(dts)).qb64b) @@ -1603,8 +1603,8 @@ def cloneEvtMsg(self, pre, fn, dig): if len(atc) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(atc))) - pcnt = coring.Counter(code=coring.CtrDex.AttachmentGroup, - count=(len(atc) // 4)).qb64b + pcnt = core.Counter(code=core.Codens.AttachmentGroup, + count=(len(atc) // 4), gvrsn=kering.Vrsn_1_0).qb64b msg.extend(pcnt) msg.extend(atc) return msg diff --git a/src/keri/db/koming.py b/src/keri/db/koming.py index a4987563a..f69fd8b1f 100644 --- a/src/keri/db/koming.py +++ b/src/keri/db/koming.py @@ -47,7 +47,7 @@ class KomerBase: def __init__(self, db: dbing.LMDBer, *, subkey: str = 'docs.', schema: Type[dataclass], # class not instance - kind: str = coring.Serials.json, + kind: str = coring.Kinds.json, dupsort: bool = False, sep: str = None, **kwa): @@ -133,9 +133,9 @@ def _serializer(self, kind): Parameters: kind (str): serialization """ - if kind == coring.Serials.mgpk: + if kind == coring.Kinds.mgpk: return self.__serializeMGPK - elif kind == coring.Serials.cbor: + elif kind == coring.Kinds.cbor: return self.__serializeCBOR else: return self.__serializeJSON @@ -146,9 +146,9 @@ def _deserializer(self, kind): Parameters: kind (str): deserialization """ - if kind == coring.Serials.mgpk: + if kind == coring.Kinds.mgpk: return self.__deserializeMGPK - elif kind == coring.Serials.cbor: + elif kind == coring.Kinds.cbor: return self.__deserializeCBOR else: return self.__deserializeJSON @@ -218,7 +218,7 @@ def __init__(self, db: dbing.LMDBer, *, subkey: str = 'docs.', schema: Type[dataclass], # class not instance - kind: str = coring.Serials.json, + kind: str = coring.Kinds.json, **kwa): """ Parameters: @@ -378,7 +378,7 @@ def __init__(self, db: dbing.LMDBer, *, subkey: str = 'recs.', schema: Type[dataclass], # class not instance - kind: str = coring.Serials.json, + kind: str = coring.Kinds.json, **kwa): """ Parameters: @@ -665,7 +665,7 @@ def __init__(self, db: dbing.LMDBer, *, subkey: str = 'recs.', schema: Type[dataclass], # class not instance - kind: str = coring.Serials.json, + kind: str = coring.Kinds.json, **kwa): """ Parameters: diff --git a/src/keri/kering.py b/src/keri/kering.py index 2f277ffd8..725e3b961 100644 --- a/src/keri/kering.py +++ b/src/keri/kering.py @@ -15,8 +15,8 @@ # Serialization Kinds -Serialage = namedtuple("Serialage", 'json mgpk cbor cesr') -Serials = Serialage(json='JSON', mgpk='MGPK', cbor='CBOR', cesr='CESR') +Kindage = namedtuple("Kindage", 'json mgpk cbor cesr') +Kinds = Kindage(json='JSON', mgpk='MGPK', cbor='CBOR', cesr='CESR') # Protocol Types Protocolage = namedtuple("Protocolage", "keri acdc") @@ -98,7 +98,7 @@ def rematch(match): raise VersionError(f"Incompatible {vrsn=} with version string.") kind = kind.decode("utf-8") - if kind not in Serials: + if kind not in Kinds: raise KindError(f"Invalid serialization kind = {kind}.") size = b64ToInt(size) @@ -116,7 +116,7 @@ def rematch(match): raise VersionError(f"Incompatible {vrsn=} with version string.") kind = kind.decode("utf-8") - if kind not in Serials: + if kind not in Kinds: raise KindError(f"Invalid serialization kind = {kind}.") size = int(size, 16) @@ -126,7 +126,7 @@ def rematch(match): return Smellage(proto=proto, vrsn=vrsn, kind=kind, size=size) -def versify(protocol=Protocols.keri, version=Version, kind=Serials.json, size=0): +def versify(protocol=Protocols.keri, version=Version, kind=Kinds.json, size=0): """ Returns: vs (str): version string @@ -139,7 +139,7 @@ def versify(protocol=Protocols.keri, version=Version, kind=Serials.json, size=0) """ if protocol not in Protocols: raise ProtocolError("Invalid message identifier = {}".format(protocol)) - if kind not in Serials: + if kind not in Kinds: raise KindError("Invalid serialization kind = {}".format(kind)) if version.major < 2: # version1 version string diff --git a/src/keri/peer/exchanging.py b/src/keri/peer/exchanging.py index ea96b7d41..589fb5a6a 100644 --- a/src/keri/peer/exchanging.py +++ b/src/keri/peer/exchanging.py @@ -8,7 +8,7 @@ from hio.help import decking -from .. import help, kering +from .. import help, kering, core from ..app import habbing from ..core import eventing, coring, serdering from ..help import helping @@ -311,7 +311,7 @@ def exchange(route, modifiers=None, embeds=None, version=coring.Version, - kind=coring.Serials.json): + kind=coring.Kinds.json): """ Create an `exn` message with the specified route and payload Parameters: @@ -350,11 +350,13 @@ def exchange(route, pathed.extend(pather.qb64b) pathed.extend(atc) if len(pathed) // 4 < 4096: - end.extend(coring.Counter(code=coring.CtrDex.PathedMaterialGroup, - count=(len(pathed) // 4)).qb64b) + end.extend(core.Counter(core.Codens.PathedMaterialGroup, + count=(len(pathed) // 4), + gvrsn=kering.Vrsn_1_0).qb64b) else: - end.extend(coring.Counter(code=coring.CtrDex.BigPathedMaterialGroup, - count=(len(pathed) // 4)).qb64b) + end.extend(core.Counter(core.Codens.BigPathedMaterialGroup, + count=(len(pathed) // 4), + gvrsn=kering.Vrsn_1_0).qb64b) end.extend(pathed) if e: @@ -434,17 +436,20 @@ def serializeMessage(hby, said, pipelined=False): if len(tsgs) > 0: for (prefixer, seqner, saider, sigers) in tsgs: - atc.extend(coring.Counter(coring.CtrDex.TransIdxSigGroups, count=1).qb64b) + atc.extend(core.Counter(core.Codens.TransIdxSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(prefixer.qb64b) atc.extend(seqner.qb64b) atc.extend(saider.qb64b) - atc.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)).qb64b) + atc.extend(core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0).qb64b) for siger in sigers: atc.extend(siger.qb64b) if len(cigars) > 0: - atc.extend(coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, count=len(cigars)).qb64b) + atc.extend(core.Counter(core.Codens.NonTransReceiptCouples, + count=len(cigars), gvrsn=kering.Vrsn_1_0).qb64b) for cigar in cigars: if cigar.verfer.code not in coring.NonTransDex: raise ValueError("Attempt to use tranferable prefix={} for " @@ -454,8 +459,8 @@ def serializeMessage(hby, said, pipelined=False): # Smash the pathed components on the end for p in hby.db.epath.get(keys=(exn.said,)): - atc.extend(coring.Counter(code=coring.CtrDex.PathedMaterialGroup, - count=(len(p) // 4)).qb64b) + atc.extend(core.Counter(core.Codens.PathedMaterialGroup, + count=(len(p) // 4), gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(p.encode("utf-8")) msg = bytearray() @@ -464,8 +469,8 @@ def serializeMessage(hby, said, pipelined=False): if len(atc) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(atc))) - msg.extend(coring.Counter(code=coring.CtrDex.AttachmentGroup, - count=(len(atc) // 4)).qb64b) + msg.extend(core.Counter(core.Codens.AttachmentGroup, + count=(len(atc) // 4), gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(atc) return msg diff --git a/src/keri/vc/proving.py b/src/keri/vc/proving.py index bc2fdbb28..bd0a3e015 100644 --- a/src/keri/vc/proving.py +++ b/src/keri/vc/proving.py @@ -11,7 +11,7 @@ from .. import core from ..core import coring, serdering -from ..core.coring import (Serials, versify) +from ..core.coring import (Kinds, versify) from ..db import subing from ..kering import Version from ..help import helping @@ -31,7 +31,7 @@ def credential(schema, source=None, rules=None, version=Version, - kind=Serials.json): + kind=Kinds.json): """Utility function to create an ACDC. Creates dict SAD for credential from parameters and Saidifyies it before creation. diff --git a/src/keri/vdr/credentialing.py b/src/keri/vdr/credentialing.py index 49f7e6357..416bb0af0 100644 --- a/src/keri/vdr/credentialing.py +++ b/src/keri/vdr/credentialing.py @@ -12,6 +12,7 @@ from .. import kering, help from ..app import agenting from ..app.habbing import GroupHab +from .. import kering, core from ..core import parsing, coring, scheming, serdering from ..core.coring import Seqner, MtrDex from ..core.eventing import TraitDex @@ -931,7 +932,8 @@ def sendCredential(hby, hab, reger, postman, creder, recp): postman.send(serder=source, attachment=atc) serder, prefixer, seqner, saider = reger.cloneCred(creder.said) - atc = bytearray(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + atc = bytearray(core.Counter(core.Codens.SealSourceTriples, + count=1, gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(prefixer.qb64b) atc.extend(seqner.qb64b) atc.extend(saider.qb64b) diff --git a/src/keri/vdr/eventing.py b/src/keri/vdr/eventing.py index 9deb9a544..bee2c9dcd 100644 --- a/src/keri/vdr/eventing.py +++ b/src/keri/vdr/eventing.py @@ -18,7 +18,7 @@ from .. import core from .. import help from ..core import serdering, coring, indexing -from ..core.coring import (MtrDex, Serials, versify, Prefixer, +from ..core.coring import (MtrDex, Kinds, versify, Prefixer, Ilks, Seqner, Verfer, Number) from ..core.signing import (Salter,) from ..core.eventing import SealEvent, ample, TraitDex, verifySigs @@ -39,7 +39,7 @@ def incept( nonce=None, cnfg=None, version=Version, - kind=Serials.json, + kind=Kinds.json, code=MtrDex.Blake3_256, ): """ Returns serder of credential registry inception (vcp) message event @@ -118,7 +118,7 @@ def rotate( cuts=None, adds=None, version=Version, - kind=Serials.json, + kind=Kinds.json, ): """ Returns serder of registry rotation (brt) message event @@ -214,7 +214,7 @@ def issue( vcdig, regk, version=Version, - kind=Serials.json, + kind=Kinds.json, dt=None ): """ Returns serder of issuance (iss) message event @@ -256,7 +256,7 @@ def revoke( regk, dig, version=Version, - kind=Serials.json, + kind=Kinds.json, dt=None ): """ Returns serder of backerless credential revocation (rev) message event @@ -307,7 +307,7 @@ def backerIssue( regsn, regd, version=Version, - kind=Serials.json, + kind=Kinds.json, dt=None, ): """ Returns serder of backer issuance (bis) message event @@ -361,7 +361,7 @@ def backerRevoke( regd, dig, version=Version, - kind=Serials.json, + kind=Kinds.json, dt=None ): """ Returns serder of backer credential revocation (brv) message event @@ -521,7 +521,7 @@ def vcstate(vcpre, ra=None, dts=None, # default current datetime version=Version, - kind=Serials.json, + kind=Kinds.json, ): """ Returns the credential transaction state notification @@ -591,7 +591,7 @@ def query(regk, dtb=None, stamp=None, version=Version, - kind=Serials.json + kind=Kinds.json ): """ Returns serder of credentialquery (qry) event message. diff --git a/src/keri/vdr/viring.py b/src/keri/vdr/viring.py index a65c62d57..434a2d16e 100644 --- a/src/keri/vdr/viring.py +++ b/src/keri/vdr/viring.py @@ -13,9 +13,9 @@ from ..db import koming, subing, escrowing -from .. import kering +from .. import kering, core from ..app import signing -from ..core import coring, serdering, indexing +from ..core import coring, serdering, indexing, counting from ..db import dbing, basing from ..db.dbing import snKey from ..help import helping @@ -439,11 +439,11 @@ def cloneCreds(self, saids, db): ) ) - ctr = coring.Counter(qb64b=iss, strip=True) - if ctr.code == coring.CtrDex.AttachmentGroup: - ctr = coring.Counter(qb64b=iss, strip=True) + ctr = core.Counter(qb64b=iss, strip=True, gvrsn=kering.Vrsn_1_0) + if ctr.code == counting.CtrDex_1_0.AttachmentGroup: + ctr = core.Counter(qb64b=iss, strip=True, gvrsn=kering.Vrsn_1_0) - if ctr.code == coring.CtrDex.SealSourceCouples: + if ctr.code == counting.CtrDex_1_0.SealSourceCouples: coring.Seqner(qb64b=iss, strip=True) saider = coring.Saider(qb64b=iss) @@ -525,24 +525,24 @@ def cloneTvt(self, pre, dig): # add indexed backer signatures to attachments if tibs := self.getTibs(key=dgkey): - atc.extend(coring.Counter(code=coring.CtrDex.WitnessIdxSigs, - count=len(tibs)).qb64b) + atc.extend(core.Counter(core.Codens.WitnessIdxSigs, count=len(tibs), + gvrsn=kering.Vrsn_1_0).qb64b) for tib in tibs: atc.extend(tib) # add authorizer (delegator/issure) source seal event couple to attachments couple = self.getAnc(dgkey) if couple is not None: - atc.extend(coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1).qb64b) + atc.extend(core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(couple) # prepend pipelining counter to attachments if len(atc) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(atc))) - pcnt = coring.Counter(code=coring.CtrDex.AttachmentGroup, - count=(len(atc) // 4)).qb64b + pcnt = core.Counter(core.Codens.AttachmentGroup, count=(len(atc) // 4), + gvrsn=kering.Vrsn_1_0).qb64b msg.extend(pcnt) msg.extend(atc) return msg @@ -573,7 +573,8 @@ def sources(self, db, creder): for said in saids: screder, prefixer, seqner, saider = self.cloneCred(said=said) - atc = bytearray(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + atc = bytearray(core.Counter(core.Codens.SealSourceTriples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(prefixer.qb64b) atc.extend(seqner.qb64b) atc.extend(saider.qb64b) @@ -981,12 +982,14 @@ def buildProof(prefixer, seqner, diger, sigers): """ prf = bytearray() - prf.extend(coring.Counter(coring.CtrDex.TransIdxSigGroups, count=1).qb64b) + prf.extend(core.Counter(core.Codens.TransIdxSigGroups, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) prf.extend(prefixer.qb64b) prf.extend(seqner.qb64b) prf.extend(diger.qb64b) - prf.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)).qb64b) + prf.extend(core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0).qb64b) for siger in sigers: prf.extend(siger.qb64b) @@ -1009,8 +1012,8 @@ def messagize(creder, proof): if len(proof) % 4: raise ValueError("Invalid attachments size={}, nonintegral" " quadlets.".format(len(proof))) - craw.extend(coring.Counter(code=coring.CtrDex.AttachmentGroup, - count=(len(proof) // 4)).qb64b) + craw.extend(core.Counter(core.Codens.AttachmentGroup, count=(len(proof) // 4), + gvrsn=kering.Vrsn_1_0).qb64b) craw.extend(proof) return craw diff --git a/tests/app/__init__.py b/tests/app/__init__.py index 1120d113a..312d14603 100644 --- a/tests/app/__init__.py +++ b/tests/app/__init__.py @@ -5,6 +5,7 @@ from contextlib import contextmanager from keri.app import habbing +from keri import kering, core from keri.core import coring, eventing, parsing from keri.db import dbing @@ -54,8 +55,8 @@ def openMultiSig(prefix="test", salt=b'0123456789abcdef', temp=True, **kwa): sigs.extend(bytes(hab3.db.getSigs(dgkey)[0])) evt = bytearray(eraw) - evt.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=3).qb64b) # attach cnt + evt.extend(core.Counter(code=core.Codens.ControllerIdxSigs, + count=3, gvrsn=kering.Vrsn_1_0).qb64b) # attach cnt evt.extend(sigs) parsing.Parser().parse(ims=bytearray(evt), kvy=kev3, local=True) diff --git a/tests/app/test_agenting.py b/tests/app/test_agenting.py index 4b2022ddd..6f2470369 100644 --- a/tests/app/test_agenting.py +++ b/tests/app/test_agenting.py @@ -7,12 +7,9 @@ from hio.base import doing, tyming -from keri import kering - -from keri import core - +from keri import kering, core from keri.core import coring, serdering -from keri.core.coring import Counter, CtrDex, Seqner +from keri.core.coring import Seqner from keri.help import nowIso8601 from keri.app import habbing, indirecting, agenting, directing from keri.db import dbing @@ -158,7 +155,8 @@ def testDo(self, tymth, tock=0.0): serder = eventing.issue(vcdig=regser.pre, regk="EbA1o_bItVC9i6YB3hr2C3I_Gtqvz02vCmavJNoBA3Jg") msg = bytearray(serder.raw) - msg.extend(Counter(CtrDex.SealSourceCouples, count=1).qb64b) + msg.extend(core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(Seqner(sn=self.palHab.kever.sn).qb64b) msg.extend(self.palHab.kever.serder.saidb) diff --git a/tests/app/test_grouping.py b/tests/app/test_grouping.py index 5fd0090a7..c50d9402d 100644 --- a/tests/app/test_grouping.py +++ b/tests/app/test_grouping.py @@ -5,7 +5,7 @@ """ from contextlib import contextmanager - +from keri import kering, core from keri.app import habbing, grouping, notifying from keri.core import coring, eventing, parsing, serdering from keri.vdr import eventing as veventing @@ -616,8 +616,8 @@ def openMultiSig(prefix="test", salt=b'0123456789abcdef', temp=True, **kwa): sigs.extend(bytes(hab3.db.getSigs(dgkey)[0])) evt = bytearray(eraw) - evt.extend(coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=3).qb64b) # attach cnt + evt.extend(core.Counter(core.Codens.ControllerIdxSigs, + count=3, gvrsn=kering.Vrsn_1_0).qb64b) # attach cnt evt.extend(sigs) parsing.Parser().parse(ims=bytearray(evt), kvy=kev3, local=True) diff --git a/tests/app/test_signing.py b/tests/app/test_signing.py index 0b297d17e..9a132990a 100644 --- a/tests/app/test_signing.py +++ b/tests/app/test_signing.py @@ -3,7 +3,7 @@ tests.app.signing module """ -from keri import core +from keri import kering, core from keri.core import coring, parsing, eventing from keri.core.eventing import SealEvent @@ -212,7 +212,8 @@ def test_signature_transposition(seeder, mockCoringRandomNonce, mockHelpingNowIs # Sign with non-transferable identifier, defaults to single signature on entire SAD sig0 = bytearray(cred.raw) - sig0.extend(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + sig0.extend(core.Counter(core.Codens.SealSourceTriples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) sig0.extend(coring.Prefixer(qb64=issuer.regk).qb64b) sig0.extend(seqner.qb64b) sig0.extend(coring.Saider(qb64=issuer.regd).qb64b) diff --git a/tests/core/test_coring.py b/tests/core/test_coring.py index e8eee29b4..952a75b0d 100644 --- a/tests/core/test_coring.py +++ b/tests/core/test_coring.py @@ -42,8 +42,8 @@ Dater, Bexter, Texter, TagDex, PadTagDex, Tagger, Ilker, Traitor, Verser, Versage, ) -from keri.core.coring import Serialage, Serials -from keri.core.coring import (Sizage, MtrDex, Matter, CtrDex, Counter) +from keri.core.coring import Kindage, Kinds +from keri.core.coring import (Sizage, MtrDex, Matter) from keri.core.coring import (Verfer, Cigar, Saider, DigDex, Diger, Prefixer,) from keri.core.coring import versify, deversify, Rever, MAXVERFULLSPAN @@ -2162,414 +2162,6 @@ def test_matter_special(): """ Done Test """ -def test_counter(): - """ - Test Counter class - """ - assert asdict(CtrDex) == { - 'ControllerIdxSigs': '-A', - 'WitnessIdxSigs': '-B', - 'NonTransReceiptCouples': '-C', - 'TransReceiptQuadruples': '-D', - 'FirstSeenReplayCouples': '-E', - 'TransIdxSigGroups': '-F', - 'SealSourceCouples': '-G', - 'TransLastIdxSigGroups': '-H', - 'SealSourceTriples': '-I', - 'SadPathSigGroups': '-J', - 'RootSadPathSigGroups': '-K', - 'PathedMaterialGroup': '-L', - 'BigPathedMaterialGroup': '-0L', - 'AttachmentGroup': '-V', - 'ESSRPayloadGroup': '-Z', - 'BigAttachmentGroup': '-0V', - 'KERIACDCGenusVersion': '--AAA', - } - - - assert CtrDex.ControllerIdxSigs == '-A' - assert CtrDex.WitnessIdxSigs == '-B' - - assert Counter.Codex == CtrDex - - # first character of code with hard size of code - assert Counter.Hards == { - '-A': 2, '-B': 2, '-C': 2, '-D': 2, '-E': 2, '-F': 2, '-G': 2, '-H': 2, '-I': 2, - '-J': 2, '-K': 2, '-L': 2, '-M': 2, '-N': 2, '-O': 2, '-P': 2, '-Q': 2, '-R': 2, - '-S': 2, '-T': 2, '-U': 2, '-V': 2, '-W': 2, '-X': 2, '-Y': 2, '-Z': 2, - '-a': 2, '-b': 2, '-c': 2, '-d': 2, '-e': 2, '-f': 2, '-g': 2, '-h': 2, '-i': 2, - '-j': 2, '-k': 2, '-l': 2, '-m': 2, '-n': 2, '-o': 2, '-p': 2, '-q': 2, '-r': 2, - '-s': 2, '-t': 2, '-u': 2, '-v': 2, '-w': 2, '-x': 2, '-y': 2, '-z': 2, - '-0': 3, '--': 5, - } - - # Codes table with sizes of code (hard) and full primitive material - assert Counter.Sizes == { - '-A': Sizage(hs=2, ss=2, fs=4, ls=0), - '-B': Sizage(hs=2, ss=2, fs=4, ls=0), - '-C': Sizage(hs=2, ss=2, fs=4, ls=0), - '-D': Sizage(hs=2, ss=2, fs=4, ls=0), - '-E': Sizage(hs=2, ss=2, fs=4, ls=0), - '-F': Sizage(hs=2, ss=2, fs=4, ls=0), - '-G': Sizage(hs=2, ss=2, fs=4, ls=0), - '-H': Sizage(hs=2, ss=2, fs=4, ls=0), - '-I': Sizage(hs=2, ss=2, fs=4, ls=0), - '-J': Sizage(hs=2, ss=2, fs=4, ls=0), - '-K': Sizage(hs=2, ss=2, fs=4, ls=0), - '-L': Sizage(hs=2, ss=2, fs=4, ls=0), - '-0L': Sizage(hs=3, ss=5, fs=8, ls=0), - '-V': Sizage(hs=2, ss=2, fs=4, ls=0), - '-Z': Sizage(hs=2, ss=2, fs=4, ls=0), - '-0V': Sizage(hs=3, ss=5, fs=8, ls=0), - '--AAA': Sizage(hs=5, ss=3, fs=8, ls=0) - } - - assert Counter.Sizes['-A'].hs == 2 # hard size - assert Counter.Sizes['-A'].ss == 2 # soft size - assert Counter.Sizes['-A'].fs == 4 # full size - assert Counter.Sizes['-A'].ls == 0 # lead size - - # verify first hs Sizes matches hs in Codes for same first char - for ckey in Counter.Sizes.keys(): - assert Counter.Hards[ckey[:2]] == Counter.Sizes[ckey].hs - - # verify all Codes have hs > 0 and ss > 0 and fs = hs + ss and not fs % 4 - for val in Counter.Sizes.values(): - assert val.hs > 0 and val.ss > 0 and val.hs + val.ss == val.fs and not val.fs % 4 - - # Bizes maps bytes of sextet of decoded first character of code with hard size of code - # verify equivalents of items for Sizes and Bizes - for skey, sval in Counter.Hards.items(): - ckey = codeB64ToB2(skey) - assert Counter.Bards[ckey] == sval - - with pytest.raises(EmptyMaterialError): - counter = Counter() - - # create code manually - count = 1 - qsc = CtrDex.ControllerIdxSigs + intToB64(count, l=2) - assert qsc == '-AAB' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.ControllerIdxSigs) # default count = 1 - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64b=qscb) # test with bytes not str - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64=qsc) # test with str not bytes - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb2=qscb2) # test with qb2 - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - # test truncates extra bytes from qb64 parameter - longqsc64 = qsc + "ABCD" - counter = Counter(qb64=longqsc64) - assert len(counter.qb64) == Counter.Sizes[counter.code].fs - - # test raises ShortageError if not enough bytes in qb64 parameter - shortqsc64 = qsc[:-1] # too short - with pytest.raises(ShortageError): - counter = Counter(qb64=shortqsc64) - - # test truncates extra bytes from qb2 parameter - longqscb2 = qscb2 + bytearray([1, 2, 3, 4, 5]) # extra bytes in size - counter = Counter(qb2=longqscb2) - assert counter.qb2 == qscb2 - assert len(counter.qb64) == Counter.Sizes[counter.code].fs - - # test raises ShortageError if not enough bytes in qb2 parameter - shortqscb2 = qscb2[:-4] # too few bytes in size - with pytest.raises(ShortageError): - counter = Counter(qb2=shortqscb2) - - # test with non-zero count=5 - count = 5 - qsc = CtrDex.ControllerIdxSigs + intToB64(count, l=2) - assert qsc == '-AAF' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.ControllerIdxSigs, count=count) - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64b=qscb) # test with bytes not str - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64=qsc) # test with str not bytes - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb2=qscb2) # test with qb2 - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - # test with big codes index=1024000 - count = 1024000 - qsc = CtrDex.BigAttachmentGroup + intToB64(count, l=5) - assert qsc == '-0VAD6AA' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.BigAttachmentGroup, count=count) - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64b=qscb) # test with bytes not str - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64=qsc) # test with str not bytes - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb2=qscb2) # test with qb2 - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - # Test ._bexfil - counter = Counter(qb64=qsc) # - code = counter.code - count = counter.count - qb2 = counter.qb2 - counter._bexfil(qb2) - assert counter.code == code - assert counter.count == count - assert counter.qb64 == qsc - assert counter.qb2 == qb2 - - # Test ._binfil - test = counter._binfil() - assert test == qb2 - - # Test limits of PathedMaterialGroup - count = 255 - qsc = CtrDex.PathedMaterialGroup + intToB64(count, l=2) - assert qsc == '-LD_' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.PathedMaterialGroup, count=count) - assert counter.code == CtrDex.PathedMaterialGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(qb64='-L__') - assert counter.count == 4095 - - with pytest.raises(kering.InvalidVarIndexError): - Counter(code=CtrDex.PathedMaterialGroup, count=4096) # Too big - - # Test BigPathedMaterialGroup - # test with big codes index=1024000 - count = 1024000 - qsc = CtrDex.BigPathedMaterialGroup + intToB64(count, l=5) - assert qsc == '-0LAD6AA' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.BigPathedMaterialGroup, count=count) - assert counter.code == CtrDex.BigPathedMaterialGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - - # Test with strip - # create code manually - count = 1 - qsc = CtrDex.ControllerIdxSigs + intToB64(count, l=2) - assert qsc == '-AAB' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - # strip ignored if qb64 - counter = Counter(qb64=qsc, strip=True) # test with str not bytes - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - ims = bytearray(qscb) # test with qb64b - counter = Counter(qb64b=ims, strip=True) # strip - assert not ims # deleted - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - ims = bytearray(qscb2) # test with qb2 - counter = Counter(qb2=ims, strip=True) - assert not ims # deleted - assert counter.code == CtrDex.ControllerIdxSigs - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - # test with longer ims for qb64b - extra = b"ABCD" - ims = bytearray(qscb + b"ABCD") - counter = Counter(qb64b=ims, strip=True) - assert counter.qb64b == qscb - assert len(counter.qb64b) == Counter.Sizes[counter.code].fs - assert ims == extra - - # test with longer ims for qb2 - extra = bytearray([1, 2, 3, 4, 5]) - ims = bytearray(qscb2) + extra - counter = Counter(qb2=ims, strip=True) - assert counter.qb2 == qscb2 - assert len(counter.qb2) == Counter.Sizes[counter.code].fs * 3 // 4 - assert ims == extra - - # raises error if not bytearray - - ims = bytes(qscb) # test with qb64b - with pytest.raises(TypeError): - counter = Counter(qb64b=ims, strip=True) # strip - - ims = bytes(qscb2) # test with qb2 - with pytest.raises(TypeError): - counter = Counter(qb2=ims, strip=True) - - # test with big codes index=1024 - count = 1024 - qsc = CtrDex.BigAttachmentGroup + intToB64(count, l=5) - assert qsc == '-0VAAAQA' - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - ims = bytearray(qscb) - counter = Counter(qb64b=ims, strip=True) # test with bytes not str - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - assert not ims - - ims = bytearray(qscb2) - counter = Counter(qb2=ims, strip=True) # test with qb2 - assert counter.code == CtrDex.BigAttachmentGroup - assert counter.count == count - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - assert not ims - - # test protocol genus with CESR version - # test with big codes index=1024 - verint = 0 - version = intToB64(verint, l=3) - assert version == 'AAA' - assert verint == b64ToInt(version) - qsc = CtrDex.KERIACDCGenusVersion + version - assert qsc == '--AAAAAA' # keri Cesr version 0.0.0 - qscb = qsc.encode("utf-8") - qscb2 = decodeB64(qscb) - - counter = Counter(code=CtrDex.KERIACDCGenusVersion, count=verint) - assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.count == verint - assert counter.countToB64(l=3) == version - assert counter.countToB64() == version # default length - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - counter = Counter(code=CtrDex.KERIACDCGenusVersion, countB64=version) - assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.count == verint - assert counter.countToB64(l=3) == version - assert counter.countToB64() == version # default length - assert counter.qb64b == qscb - assert counter.qb64 == qsc - assert counter.qb2 == qscb2 - - assert Counter.semVerToB64("1.2.3") == "BCD" - assert Counter.semVerToB64() == "AAA" - assert Counter.semVerToB64(major=1) == "BAA" - assert Counter.semVerToB64(minor=1) == "ABA" - assert Counter.semVerToB64(patch=1) == "AAB" - assert Counter.semVerToB64(major=3, minor=4, patch=5) == "DEF" - - # test defaults for missing parts in string version - assert Counter.semVerToB64(version="1.1") == "BBA" - assert Counter.semVerToB64(version="1.") == "BAA" - assert Counter.semVerToB64(version="1") == "BAA" - assert Counter.semVerToB64(version="1.2.") == "BCA" - assert Counter.semVerToB64(version="..") == "AAA" - assert Counter.semVerToB64(version="1..3") == "BAD" - assert Counter.semVerToB64(version="4", major=1, minor=2, patch=3) == "ECD" - - with pytest.raises(ValueError): - Counter.semVerToB64(version="64.0.1") - with pytest.raises(ValueError): - Counter.semVerToB64(version="-1.0.1") - with pytest.raises(ValueError): - Counter.semVerToB64(version="0.0.64") - with pytest.raises(ValueError): - Counter.semVerToB64(major=64) - with pytest.raises(ValueError): - Counter.semVerToB64(minor=-1) - with pytest.raises(ValueError): - Counter.semVerToB64(patch=-1) - - """ Done Test """ - - - def test_seqner(): """ @@ -5140,7 +4732,7 @@ def test_prefixer(): prefixer = Prefixer(ked=badked, code=MtrDex.Ed25519) # Test digest derivation from inception ked - vs = versify(version=Version, kind=Serials.json, size=0) + vs = versify(version=Version, kind=Kinds.json, size=0) sn = 0 ilk = Ilks.icp sith = "1" @@ -5420,7 +5012,7 @@ def test_saider(): assert set(Saider.Digests.keys()) == set(code for code in DigDex) code = MtrDex.Blake3_256 - kind = Serials.json + kind = Kinds.json label = Saids.dollar # Test with valid said qb64 @@ -5622,7 +5214,7 @@ def test_saider(): assert saider.verify(sad8, prefixed=True) # verify gets kind from version string if provided when loading from dict - vs = versify(version=Version, kind=Serials.mgpk, size=0) # vaccuous size == 0 + vs = versify(version=Version, kind=Kinds.mgpk, size=0) # vaccuous size == 0 assert vs == 'KERI10MGPK000000_' sad9 = dict(sad4) sad9['v'] = vs diff --git a/tests/core/test_counting.py b/tests/core/test_counting.py index e94d18e5e..3433127a6 100644 --- a/tests/core/test_counting.py +++ b/tests/core/test_counting.py @@ -21,8 +21,8 @@ from keri.core import counting -from keri.core.counting import GenDex, Sizage, MapDom, Counter -from keri.core.counting import Versionage, Vrsn_1_0, Vrsn_2_0, AllTags +from keri.core.counting import GenDex, Sizage, MapDom, Counter, Codens +from keri.core.counting import Versionage, Vrsn_1_0, Vrsn_2_0 @@ -60,6 +60,8 @@ def test_codexes_tags(): """ Test supporting module attributes """ + + assert asdict(counting.CtrDex_1_0) == \ { 'ControllerIdxSigs': '-A', @@ -139,146 +141,122 @@ def test_codexes_tags(): 'KERIACDCGenusVersion': '--AAA' } - assert counting.Tags_1_0._asdict() == \ - { - 'ControllerIdxSigs': 'ControllerIdxSigs', - 'WitnessIdxSigs': 'WitnessIdxSigs', - 'NonTransReceiptCouples': 'NonTransReceiptCouples', - 'TransReceiptQuadruples': 'TransReceiptQuadruples', - 'FirstSeenReplayCouples': 'FirstSeenReplayCouples', - 'TransIdxSigGroups': 'TransIdxSigGroups', - 'SealSourceCouples': 'SealSourceCouples', - 'TransLastIdxSigGroups': 'TransLastIdxSigGroups', - 'SealSourceTriples': 'SealSourceTriples', - 'SadPathSigGroups': 'SadPathSigGroups', - 'RootSadPathSigGroups': 'RootSadPathSigGroups', - 'PathedMaterialGroup': 'PathedMaterialGroup', - 'BigPathedMaterialGroup': 'BigPathedMaterialGroup', - 'AttachmentGroup': 'AttachmentGroup', - 'BigAttachmentGroup': 'BigAttachmentGroup', - 'ESSRPayloadGroup': 'ESSRPayloadGroup', - 'KERIACDCGenusVersion': 'KERIACDCGenusVersion' - } - - assert counting.Tags_1_0.ControllerIdxSigs == 'ControllerIdxSigs' + assert counting.CodeNames == ( + 'GenericGroup', + 'BigGenericGroup', + 'MessageGroup', + 'BigMessageGroup', + 'AttachmentGroup', + 'BigAttachmentGroup', + 'DatagramSegmentGroup', + 'BigDatagramSegmentGroup', + 'ESSRWrapperGroup', + 'BigESSRWrapperGroup', + 'FixedMessageBodyGroup', + 'BigFixedMessageBodyGroup', + 'MapMessageBodyGroup', + 'BigMapMessageBodyGroup', + 'GenericMapGroup', + 'BigGenericMapGroup', + 'GenericListGroup', + 'BigGenericListGroup', + 'ControllerIdxSigs', + 'BigControllerIdxSigs', + 'WitnessIdxSigs', + 'BigWitnessIdxSigs', + 'NonTransReceiptCouples', + 'BigNonTransReceiptCouples', + 'TransReceiptQuadruples', + 'BigTransReceiptQuadruples', + 'FirstSeenReplayCouples', + 'BigFirstSeenReplayCouples', + 'TransIdxSigGroups', + 'BigTransIdxSigGroups', + 'TransLastIdxSigGroups', + 'BigTransLastIdxSigGroups', + 'SealSourceCouples', + 'BigSealSourceCouples', + 'SealSourceTriples', + 'BigSealSourceTriples', + 'PathedMaterialGroup', + 'BigPathedMaterialGroup', + 'SadPathSigGroups', + 'BigSadPathSigGroups', + 'RootSadPathSigGroups', + 'BigRootSadPathSigGroups', + 'DigestSealSingles', + 'BigDigestSealSingles', + 'MerkleRootSealSingles', + 'BigMerkleRootSealSingles', + 'BackerRegistrarSealCouples', + 'BigBackerRegistrarSealCouples', + 'SealSourceLastSingles', + 'BigSealSourceLastSingles', + 'ESSRPayloadGroup', + 'BigESSRPayloadGroup', + 'KERIACDCGenusVersion' + ) + assert 'ControllerIdxSigs' in counting.CodeNames + + assert counting.Codens == counting.Codenage( + GenericGroup='GenericGroup', + BigGenericGroup='BigGenericGroup', + MessageGroup='MessageGroup', + BigMessageGroup='BigMessageGroup', + AttachmentGroup='AttachmentGroup', + BigAttachmentGroup='BigAttachmentGroup', + DatagramSegmentGroup='DatagramSegmentGroup', + BigDatagramSegmentGroup='BigDatagramSegmentGroup', + ESSRWrapperGroup='ESSRWrapperGroup', + BigESSRWrapperGroup='BigESSRWrapperGroup', + FixedMessageBodyGroup='FixedMessageBodyGroup', + BigFixedMessageBodyGroup='BigFixedMessageBodyGroup', + MapMessageBodyGroup='MapMessageBodyGroup', + BigMapMessageBodyGroup='BigMapMessageBodyGroup', + GenericMapGroup='GenericMapGroup', + BigGenericMapGroup='BigGenericMapGroup', + GenericListGroup='GenericListGroup', + BigGenericListGroup='BigGenericListGroup', + ControllerIdxSigs='ControllerIdxSigs', + BigControllerIdxSigs='BigControllerIdxSigs', + WitnessIdxSigs='WitnessIdxSigs', + BigWitnessIdxSigs='BigWitnessIdxSigs', + NonTransReceiptCouples='NonTransReceiptCouples', + BigNonTransReceiptCouples='BigNonTransReceiptCouples', + TransReceiptQuadruples='TransReceiptQuadruples', + BigTransReceiptQuadruples='BigTransReceiptQuadruples', + FirstSeenReplayCouples='FirstSeenReplayCouples', + BigFirstSeenReplayCouples='BigFirstSeenReplayCouples', + TransIdxSigGroups='TransIdxSigGroups', + BigTransIdxSigGroups='BigTransIdxSigGroups', + TransLastIdxSigGroups='TransLastIdxSigGroups', + BigTransLastIdxSigGroups='BigTransLastIdxSigGroups', + SealSourceCouples='SealSourceCouples', + BigSealSourceCouples='BigSealSourceCouples', + SealSourceTriples='SealSourceTriples', + BigSealSourceTriples='BigSealSourceTriples', + PathedMaterialGroup='PathedMaterialGroup', + BigPathedMaterialGroup='BigPathedMaterialGroup', + SadPathSigGroups='SadPathSigGroups', + BigSadPathSigGroups='BigSadPathSigGroups', + RootSadPathSigGroups='RootSadPathSigGroups', + BigRootSadPathSigGroups='BigRootSadPathSigGroups', + DigestSealSingles='DigestSealSingles', + BigDigestSealSingles='BigDigestSealSingles', + MerkleRootSealSingles='MerkleRootSealSingles', + BigMerkleRootSealSingles='BigMerkleRootSealSingles', + BackerRegistrarSealCouples='BackerRegistrarSealCouples', + BigBackerRegistrarSealCouples='BigBackerRegistrarSealCouples', + SealSourceLastSingles='SealSourceLastSingles', + BigSealSourceLastSingles='BigSealSourceLastSingles', + ESSRPayloadGroup='ESSRPayloadGroup', + BigESSRPayloadGroup='BigESSRPayloadGroup', + KERIACDCGenusVersion='KERIACDCGenusVersion' + ) + + assert counting.Codens.ControllerIdxSigs == 'ControllerIdxSigs' - assert counting.Tags_2_0._asdict() == \ - { - 'GenericGroup': 'GenericGroup', - 'BigGenericGroup': 'BigGenericGroup', - 'MessageGroup': 'MessageGroup', - 'BigMessageGroup': 'BigMessageGroup', - 'AttachmentGroup': 'AttachmentGroup', - 'BigAttachmentGroup': 'BigAttachmentGroup', - 'DatagramSegmentGroup': 'DatagramSegmentGroup', - 'BigDatagramSegmentGroup': 'BigDatagramSegmentGroup', - 'ESSRWrapperGroup': 'ESSRWrapperGroup', - 'BigESSRWrapperGroup': 'BigESSRWrapperGroup', - 'FixedMessageBodyGroup': 'FixedMessageBodyGroup', - 'BigFixedMessageBodyGroup': 'BigFixedMessageBodyGroup', - 'MapMessageBodyGroup': 'MapMessageBodyGroup', - 'BigMapMessageBodyGroup': 'BigMapMessageBodyGroup', - 'GenericMapGroup': 'GenericMapGroup', - 'BigGenericMapGroup': 'BigGenericMapGroup', - 'GenericListGroup': 'GenericListGroup', - 'BigGenericListGroup': 'BigGenericListGroup', - 'ControllerIdxSigs': 'ControllerIdxSigs', - 'BigControllerIdxSigs': 'BigControllerIdxSigs', - 'WitnessIdxSigs': 'WitnessIdxSigs', - 'BigWitnessIdxSigs': 'BigWitnessIdxSigs', - 'NonTransReceiptCouples': 'NonTransReceiptCouples', - 'BigNonTransReceiptCouples': 'BigNonTransReceiptCouples', - 'TransReceiptQuadruples': 'TransReceiptQuadruples', - 'BigTransReceiptQuadruples': 'BigTransReceiptQuadruples', - 'FirstSeenReplayCouples': 'FirstSeenReplayCouples', - 'BigFirstSeenReplayCouples': 'BigFirstSeenReplayCouples', - 'TransIdxSigGroups': 'TransIdxSigGroups', - 'BigTransIdxSigGroups': 'BigTransIdxSigGroups', - 'TransLastIdxSigGroups': 'TransLastIdxSigGroups', - 'BigTransLastIdxSigGroups': 'BigTransLastIdxSigGroups', - 'SealSourceCouples': 'SealSourceCouples', - 'BigSealSourceCouples': 'BigSealSourceCouples', - 'SealSourceTriples': 'SealSourceTriples', - 'BigSealSourceTriples': 'BigSealSourceTriples', - 'PathedMaterialGroup': 'PathedMaterialGroup', - 'BigPathedMaterialGroup': 'BigPathedMaterialGroup', - 'SadPathSigGroups': 'SadPathSigGroups', - 'BigSadPathSigGroups': 'BigSadPathSigGroups', - 'RootSadPathSigGroups': 'RootSadPathSigGroups', - 'BigRootSadPathSigGroups': 'BigRootSadPathSigGroups', - 'DigestSealSingles': 'DigestSealSingles', - 'BigDigestSealSingles': 'BigDigestSealSingles', - 'MerkleRootSealSingles': 'MerkleRootSealSingles', - 'BigMerkleRootSealSingles': 'BigMerkleRootSealSingles', - 'BackerRegistrarSealCouples': 'BackerRegistrarSealCouples', - 'BigBackerRegistrarSealCouples': 'BigBackerRegistrarSealCouples', - 'SealSourceLastSingles': 'SealSourceLastSingles', - 'BigSealSourceLastSingles': 'BigSealSourceLastSingles', - 'ESSRPayloadGroup': 'ESSRPayloadGroup', - 'BigESSRPayloadGroup': 'BigESSRPayloadGroup', - 'KERIACDCGenusVersion': 'KERIACDCGenusVersion' - } - - assert counting.Tags_2_0.ControllerIdxSigs == 'ControllerIdxSigs' - - assert counting.AllTags._asdict() == \ - { - 'GenericGroup': 'GenericGroup', - 'BigGenericGroup': 'BigGenericGroup', - 'MessageGroup': 'MessageGroup', - 'BigMessageGroup': 'BigMessageGroup', - 'AttachmentGroup': 'AttachmentGroup', - 'BigAttachmentGroup': 'BigAttachmentGroup', - 'DatagramSegmentGroup': 'DatagramSegmentGroup', - 'BigDatagramSegmentGroup': 'BigDatagramSegmentGroup', - 'ESSRWrapperGroup': 'ESSRWrapperGroup', - 'BigESSRWrapperGroup': 'BigESSRWrapperGroup', - 'FixedMessageBodyGroup': 'FixedMessageBodyGroup', - 'BigFixedMessageBodyGroup': 'BigFixedMessageBodyGroup', - 'MapMessageBodyGroup': 'MapMessageBodyGroup', - 'BigMapMessageBodyGroup': 'BigMapMessageBodyGroup', - 'GenericMapGroup': 'GenericMapGroup', - 'BigGenericMapGroup': 'BigGenericMapGroup', - 'GenericListGroup': 'GenericListGroup', - 'BigGenericListGroup': 'BigGenericListGroup', - 'ControllerIdxSigs': 'ControllerIdxSigs', - 'BigControllerIdxSigs': 'BigControllerIdxSigs', - 'WitnessIdxSigs': 'WitnessIdxSigs', - 'BigWitnessIdxSigs': 'BigWitnessIdxSigs', - 'NonTransReceiptCouples': 'NonTransReceiptCouples', - 'BigNonTransReceiptCouples': 'BigNonTransReceiptCouples', - 'TransReceiptQuadruples': 'TransReceiptQuadruples', - 'BigTransReceiptQuadruples': 'BigTransReceiptQuadruples', - 'FirstSeenReplayCouples': 'FirstSeenReplayCouples', - 'BigFirstSeenReplayCouples': 'BigFirstSeenReplayCouples', - 'TransIdxSigGroups': 'TransIdxSigGroups', - 'BigTransIdxSigGroups': 'BigTransIdxSigGroups', - 'TransLastIdxSigGroups': 'TransLastIdxSigGroups', - 'BigTransLastIdxSigGroups': 'BigTransLastIdxSigGroups', - 'SealSourceCouples': 'SealSourceCouples', - 'BigSealSourceCouples': 'BigSealSourceCouples', - 'SealSourceTriples': 'SealSourceTriples', - 'BigSealSourceTriples': 'BigSealSourceTriples', - 'PathedMaterialGroup': 'PathedMaterialGroup', - 'BigPathedMaterialGroup': 'BigPathedMaterialGroup', - 'SadPathSigGroups': 'SadPathSigGroups', - 'BigSadPathSigGroups': 'BigSadPathSigGroups', - 'RootSadPathSigGroups': 'RootSadPathSigGroups', - 'BigRootSadPathSigGroups': 'BigRootSadPathSigGroups', - 'DigestSealSingles': 'DigestSealSingles', - 'BigDigestSealSingles': 'BigDigestSealSingles', - 'MerkleRootSealSingles': 'MerkleRootSealSingles', - 'BigMerkleRootSealSingles': 'BigMerkleRootSealSingles', - 'BackerRegistrarSealCouples': 'BackerRegistrarSealCouples', - 'BigBackerRegistrarSealCouples': 'BigBackerRegistrarSealCouples', - 'SealSourceLastSingles': 'SealSourceLastSingles', - 'BigSealSourceLastSingles': 'BigSealSourceLastSingles', - 'ESSRPayloadGroup': 'ESSRPayloadGroup', - 'BigESSRPayloadGroup': 'BigESSRPayloadGroup', - 'KERIACDCGenusVersion': 'KERIACDCGenusVersion' - } - assert counting.AllTags.ControllerIdxSigs == 'ControllerIdxSigs' assert asdict(counting.SealDex_2_0) == \ { @@ -319,24 +297,89 @@ def test_counter_class(): }, } - assert Counter.Tags == \ - { - counting.Vrsn_1_0: counting.Tags_1_0, - counting.Vrsn_2_0: counting.Tags_2_0, - } - + assert Counter.Names == \ + {1: + {0: + { + '-A': 'ControllerIdxSigs', + '-B': 'WitnessIdxSigs', + '-C': 'NonTransReceiptCouples', + '-D': 'TransReceiptQuadruples', + '-E': 'FirstSeenReplayCouples', + '-F': 'TransIdxSigGroups', + '-G': 'SealSourceCouples', + '-H': 'TransLastIdxSigGroups', + '-I': 'SealSourceTriples', + '-J': 'SadPathSigGroups', + '-K': 'RootSadPathSigGroups', + '-L': 'PathedMaterialGroup', + '-0L': 'BigPathedMaterialGroup', + '-V': 'AttachmentGroup', + '-0V': 'BigAttachmentGroup', + '-Z': 'ESSRPayloadGroup', + '--AAA': 'KERIACDCGenusVersion' + } + }, + 2: + {0: + { + '-A': 'GenericGroup', + '-0A': 'BigGenericGroup', + '-B': 'MessageGroup', + '-0B': 'BigMessageGroup', + '-C': 'AttachmentGroup', + '-0C': 'BigAttachmentGroup', + '-D': 'DatagramSegmentGroup', + '-0D': 'BigDatagramSegmentGroup', + '-E': 'ESSRWrapperGroup', + '-0E': 'BigESSRWrapperGroup', + '-F': 'FixedMessageBodyGroup', + '-0F': 'BigFixedMessageBodyGroup', + '-G': 'MapMessageBodyGroup', + '-0G': 'BigMapMessageBodyGroup', + '-H': 'GenericMapGroup', + '-0H': 'BigGenericMapGroup', + '-I': 'GenericListGroup', + '-0I': 'BigGenericListGroup', + '-J': 'ControllerIdxSigs', + '-0J': 'BigControllerIdxSigs', + '-K': 'WitnessIdxSigs', + '-0K': 'BigWitnessIdxSigs', + '-L': 'NonTransReceiptCouples', + '-0L': 'BigNonTransReceiptCouples', + '-M': 'TransReceiptQuadruples', + '-0M': 'BigTransReceiptQuadruples', + '-N': 'FirstSeenReplayCouples', + '-0N': 'BigFirstSeenReplayCouples', + '-O': 'TransIdxSigGroups', + '-0O': 'BigTransIdxSigGroups', + '-P': 'TransLastIdxSigGroups', + '-0P': 'BigTransLastIdxSigGroups', + '-Q': 'SealSourceCouples', + '-0Q': 'BigSealSourceCouples', + '-R': 'SealSourceTriples', + '-0R': 'BigSealSourceTriples', + '-S': 'PathedMaterialGroup', + '-0S': 'BigPathedMaterialGroup', + '-T': 'SadPathSigGroups', + '-0T': 'BigSadPathSigGroups', + '-U': 'RootSadPathSigGroups', + '-0U': 'BigRootSadPathSigGroups', + '-V': 'DigestSealSingles', + '-0V': 'BigDigestSealSingles', + '-W': 'MerkleRootSealSingles', + '-0W': 'BigMerkleRootSealSingles', + '-X': 'BackerRegistrarSealCouples', + '-0X': 'BigBackerRegistrarSealCouples', + '-Y': 'SealSourceLastSingles', + '-0Y': 'BigSealSourceLastSingles', + '-Z': 'ESSRPayloadGroup', + '-0Z': 'BigESSRPayloadGroup', + '--AAA': 'KERIACDCGenusVersion' + } + } + } - # first character of code with hard size of code - assert Counter.Hards == \ - { - '-A': 2, '-B': 2, '-C': 2, '-D': 2, '-E': 2, '-F': 2, '-G': 2, '-H': 2, '-I': 2, - '-J': 2, '-K': 2, '-L': 2, '-M': 2, '-N': 2, '-O': 2, '-P': 2, '-Q': 2, '-R': 2, - '-S': 2, '-T': 2, '-U': 2, '-V': 2, '-W': 2, '-X': 2, '-Y': 2, '-Z': 2, - '-a': 2, '-b': 2, '-c': 2, '-d': 2, '-e': 2, '-f': 2, '-g': 2, '-h': 2, '-i': 2, - '-j': 2, '-k': 2, '-l': 2, '-m': 2, '-n': 2, '-o': 2, '-p': 2, '-q': 2, '-r': 2, - '-s': 2, '-t': 2, '-u': 2, '-v': 2, '-w': 2, '-x': 2, '-y': 2, '-z': 2, - '-0': 3, '--': 5, - } # Codes table with sizes of code (hard) and full primitive material assert Counter.Sizes == \ @@ -360,6 +403,7 @@ def test_counter_class(): '-0L': Sizage(hs=3, ss=5, fs=8, ls=0), '-V': Sizage(hs=2, ss=2, fs=4, ls=0), '-0V': Sizage(hs=3, ss=5, fs=8, ls=0), + '-Z': Sizage(hs=2, ss=2, fs=4, ls=0), '--AAA': Sizage(hs=5, ss=3, fs=8, ls=0) }, }, @@ -424,6 +468,16 @@ def test_counter_class(): }, } + # Ensure there is an entry in Sizes for each entry in Codes + assert Counter.Codes.keys() == Counter.Sizes.keys() + for majorc, majors in zip(Counter.Codes.items(), Counter.Sizes.items(), strict=True): + assert majorc[0] == majors[0] # major version, keys match + for minorc, minors in zip(majorc[1].items(), majors[1].items(), strict=True): + assert minorc[0] == minors[0] # minor version keys match + for code, size in zip(asdict(minorc[1]).items(), minors[1].items(), strict=True): + code[0] == size[0] # code and size keys match + + assert Counter.Sizes[Vrsn_1_0.major][Vrsn_1_0.minor]['-A'].hs == 2 # hard size assert Counter.Sizes[Vrsn_1_0.major][Vrsn_1_0.minor]['-A'].ss == 2 # soft size assert Counter.Sizes[Vrsn_1_0.major][Vrsn_1_0.minor]['-A'].fs == 4 # full size @@ -435,6 +489,20 @@ def test_counter_class(): assert Counter.Sizes[Vrsn_2_0.major][Vrsn_2_0.minor]['-0A'].ls == 0 # lead size + # first character of code with hard size of code + assert Counter.Hards == \ + { + '-A': 2, '-B': 2, '-C': 2, '-D': 2, '-E': 2, '-F': 2, '-G': 2, '-H': 2, '-I': 2, + '-J': 2, '-K': 2, '-L': 2, '-M': 2, '-N': 2, '-O': 2, '-P': 2, '-Q': 2, '-R': 2, + '-S': 2, '-T': 2, '-U': 2, '-V': 2, '-W': 2, '-X': 2, '-Y': 2, '-Z': 2, + '-a': 2, '-b': 2, '-c': 2, '-d': 2, '-e': 2, '-f': 2, '-g': 2, '-h': 2, '-i': 2, + '-j': 2, '-k': 2, '-l': 2, '-m': 2, '-n': 2, '-o': 2, '-p': 2, '-q': 2, '-r': 2, + '-s': 2, '-t': 2, '-u': 2, '-v': 2, '-w': 2, '-x': 2, '-y': 2, '-z': 2, + '-0': 3, '--': 5, + } + + + # verify first hs Sizes matches hs in Codes for same first char for vmajor in Counter.Sizes.values(): for vminor in vmajor.values(): @@ -531,9 +599,10 @@ def test_counter_v1(): qscb = qsc.encode("utf-8") qscb2 = decodeB64(qscb) - counter = Counter(tag="ControllerIdxSigs", count=count, gvrsn=Vrsn_1_0) + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.ControllerIdxSigs == counter.hard - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" + assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -543,25 +612,24 @@ def test_counter_v1(): assert counter.soft =='AB' assert counter.both == qsc == counter.hard + counter.soft == counter.qb64 assert counter.codes == counting.CtrDex_1_0 - assert counter.tags == counting.Tags_1_0 + #assert counter.tags == counting.Tags_1_0 assert counter.sizes == Counter.Sizes[1][0] - counter = Counter(tag=AllTags.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc assert counter.qb2 == qscb2 assert counter.version == Vrsn_1_0 - # test tag takes precedence - counter = Counter(tag=AllTags.ControllerIdxSigs, - code=CtrDex.WitnessIdxSigs, + # test keyword buth with code name + counter = Counter(code=Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -570,7 +638,7 @@ def test_counter_v1(): counter = Counter(code=CtrDex.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default count = 1 assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -579,7 +647,7 @@ def test_counter_v1(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_1_0) # test with bytes not str assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -588,7 +656,7 @@ def test_counter_v1(): counter = Counter(qb64=qsc, gvrsn=Vrsn_1_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -597,7 +665,7 @@ def test_counter_v1(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_1_0) # test with qb2 assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -634,7 +702,7 @@ def test_counter_v1(): counter = Counter(code=CtrDex.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -643,7 +711,7 @@ def test_counter_v1(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_1_0) # test with bytes not str assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -652,7 +720,7 @@ def test_counter_v1(): counter = Counter(qb64=qsc, gvrsn=Vrsn_1_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -661,7 +729,7 @@ def test_counter_v1(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_1_0) # test with qb2 assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -677,7 +745,7 @@ def test_counter_v1(): counter = Counter(code=CtrDex.BigAttachmentGroup, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -686,7 +754,7 @@ def test_counter_v1(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_1_0) # test with bytes not str assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -695,7 +763,7 @@ def test_counter_v1(): counter = Counter(qb64=qsc, gvrsn=Vrsn_1_0) # test with str not bytes assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -704,7 +772,7 @@ def test_counter_v1(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_1_0) # test with qb2 assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -718,7 +786,7 @@ def test_counter_v1(): qb2 = counter.qb2 counter._bexfil(qb2) assert counter.code == code - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64 == qsc assert counter.qb2 == qb2 @@ -737,7 +805,7 @@ def test_counter_v1(): counter = Counter(code=CtrDex.BigPathedMaterialGroup, count=count, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.BigPathedMaterialGroup - assert counter.tag == AllTags.BigPathedMaterialGroup + assert counter.name == "BigPathedMaterialGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -746,7 +814,7 @@ def test_counter_v1(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_1_0) # test with bytes not str assert counter.code == CtrDex.BigPathedMaterialGroup - assert counter.tag == AllTags.BigPathedMaterialGroup + assert counter.name == "BigPathedMaterialGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -755,7 +823,7 @@ def test_counter_v1(): counter = Counter(qb64=qsc, gvrsn=Vrsn_1_0) # test with str not bytes assert counter.code == CtrDex.BigPathedMaterialGroup - assert counter.tag == AllTags.BigPathedMaterialGroup + assert counter.name == "BigPathedMaterialGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -764,7 +832,7 @@ def test_counter_v1(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_1_0) # test with qb2 assert counter.code == CtrDex.BigPathedMaterialGroup - assert counter.tag == AllTags.BigPathedMaterialGroup + assert counter.name == "BigPathedMaterialGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -778,7 +846,7 @@ def test_counter_v1(): qb2 = counter.qb2 counter._bexfil(qb2) assert counter.code == code - assert counter.tag == AllTags.BigPathedMaterialGroup + assert counter.name == "BigPathedMaterialGroup" assert counter.count == count assert counter.qb64 == qsc assert counter.qb2 == qb2 @@ -799,7 +867,7 @@ def test_counter_v1(): # strip ignored if qb64 counter = Counter(qb64=qsc, strip=True, gvrsn=Vrsn_1_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -810,7 +878,7 @@ def test_counter_v1(): counter = Counter(qb64b=ims, strip=True, gvrsn=Vrsn_1_0) # strip assert not ims # deleted assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -821,7 +889,7 @@ def test_counter_v1(): counter = Counter(qb2=ims, strip=True, gvrsn=Vrsn_1_0) assert not ims # deleted assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -864,7 +932,7 @@ def test_counter_v1(): ims = bytearray(qscb) counter = Counter(qb64b=ims, strip=True, gvrsn=Vrsn_1_0) # test with bytes not str assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -876,7 +944,7 @@ def test_counter_v1(): ims = bytearray(qscb2) counter = Counter(qb2=ims, strip=True, gvrsn=Vrsn_1_0) # test with qb2 assert counter.code == CtrDex.BigAttachmentGroup - assert counter.tag == AllTags.BigAttachmentGroup + assert counter.name == "BigAttachmentGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -900,7 +968,7 @@ def test_counter_v1(): count=genverint, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.tag == AllTags.KERIACDCGenusVersion + assert counter.name == "KERIACDCGenusVersion" assert counter.count == genverint assert counter.countToB64(l=3) == genver assert counter.countToB64() == genver # default length @@ -909,7 +977,7 @@ def test_counter_v1(): assert counter.qb2 == qscb2 assert counter.version == Vrsn_1_0 assert counter.codes == counting.CtrDex_1_0 - assert counter.tags == counting.Tags_1_0 + #assert counter.tags == counting.Tags_1_0 assert counter.sizes == Counter.Sizes[1][0] @@ -917,7 +985,7 @@ def test_counter_v1(): countB64=genver, gvrsn=Vrsn_1_0) assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.tag == AllTags.KERIACDCGenusVersion + assert counter.name == "KERIACDCGenusVersion" assert counter.count == genverint assert counter.countToB64(l=3) == genver assert counter.countToB64() == genver # default length @@ -949,7 +1017,7 @@ def test_counter_v2(): # default version and default count = 1 counter = Counter(code=CtrDex.ControllerIdxSigs) assert counter.code == CtrDex.ControllerIdxSigs == counter.hard - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -959,7 +1027,7 @@ def test_counter_v2(): assert counter.soft =='AB' assert counter.both == qsc == counter.hard + counter.soft == counter.qb64 assert counter.codes == counting.CtrDex_2_0 - assert counter.tags == counting.Tags_2_0 + #assert counter.tags == counting.Tags_2_0 assert counter.sizes == Counter.Sizes[2][0] @@ -967,7 +1035,7 @@ def test_counter_v2(): # default count = 1 counter = Counter(code=CtrDex.ControllerIdxSigs, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -976,7 +1044,7 @@ def test_counter_v2(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -985,7 +1053,7 @@ def test_counter_v2(): counter = Counter(qb64=qsc, gvrsn=Vrsn_2_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -994,7 +1062,7 @@ def test_counter_v2(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1029,33 +1097,32 @@ def test_counter_v2(): qscb = qsc.encode("utf-8") qscb2 = decodeB64(qscb) - counter = Counter(tag="ControllerIdxSigs", count=count, gvrsn=Vrsn_2_0) + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc assert counter.qb2 == qscb2 assert counter.version == Vrsn_2_0 - counter = Counter(tag=AllTags.ControllerIdxSigs, + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc assert counter.qb2 == qscb2 assert counter.version == Vrsn_2_0 - # test tag takes precedence - counter = Counter(tag=AllTags.ControllerIdxSigs, - code=CtrDex.WitnessIdxSigs, + # test keyword with code name + counter = Counter(code=Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1064,7 +1131,7 @@ def test_counter_v2(): counter = Counter(code=CtrDex.ControllerIdxSigs, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1073,7 +1140,7 @@ def test_counter_v2(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1082,7 +1149,7 @@ def test_counter_v2(): counter = Counter(qb64=qsc, gvrsn=Vrsn_2_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1091,7 +1158,7 @@ def test_counter_v2(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1105,7 +1172,7 @@ def test_counter_v2(): qb2 = counter.qb2 counter._bexfil(qb2) assert counter.code == code - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64 == qsc assert counter.qb2 == qb2 @@ -1126,7 +1193,7 @@ def test_counter_v2(): # strip ignored if qb64 counter = Counter(qb64=qsc, strip=True, gvrsn=Vrsn_2_0) # test with str not bytes assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1137,7 +1204,7 @@ def test_counter_v2(): counter = Counter(qb64b=ims, strip=True, gvrsn=Vrsn_2_0) # strip assert not ims # deleted assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1148,7 +1215,7 @@ def test_counter_v2(): counter = Counter(qb2=ims, strip=True, gvrsn=Vrsn_2_0) assert not ims # deleted assert counter.code == CtrDex.ControllerIdxSigs - assert counter.tag == AllTags.ControllerIdxSigs + assert counter.name == "ControllerIdxSigs" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1190,7 +1257,7 @@ def test_counter_v2(): counter = Counter(code=CtrDex.BigGenericGroup, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1199,7 +1266,7 @@ def test_counter_v2(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1208,7 +1275,7 @@ def test_counter_v2(): counter = Counter(qb64=qsc, gvrsn=Vrsn_2_0) # test with str not bytes assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1217,7 +1284,7 @@ def test_counter_v2(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1234,7 +1301,7 @@ def test_counter_v2(): ims = bytearray(qscb) counter = Counter(qb64b=ims, strip=True, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1245,7 +1312,7 @@ def test_counter_v2(): ims = bytearray(qscb2) counter = Counter(qb2=ims, strip=True, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1262,7 +1329,7 @@ def test_counter_v2(): counter = Counter(code=CtrDex.BigGenericGroup, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.BigGenericGroup == counter.hard - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1274,7 +1341,7 @@ def test_counter_v2(): counter = Counter(qb64b=qscb, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1283,7 +1350,7 @@ def test_counter_v2(): counter = Counter(qb64=qsc, gvrsn=Vrsn_2_0) # test with str not bytes assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1292,7 +1359,7 @@ def test_counter_v2(): counter = Counter(qb2=qscb2, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1309,7 +1376,7 @@ def test_counter_v2(): ims = bytearray(qscb) counter = Counter(qb64b=ims, strip=True, gvrsn=Vrsn_2_0) # test with bytes not str assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1321,7 +1388,7 @@ def test_counter_v2(): ims = bytearray(qscb2) counter = Counter(qb2=ims, strip=True, gvrsn=Vrsn_2_0) # test with qb2 assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1338,7 +1405,7 @@ def test_counter_v2(): counter = Counter(code=CtrDex.GenericGroup, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.BigGenericGroup == counter.hard - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1347,9 +1414,9 @@ def test_counter_v2(): assert counter.soft =='AACAB' assert counter.both == qsc == counter.hard + counter.soft == counter.qb64 - counter = Counter(tag=AllTags.GenericGroup, count=count, gvrsn=Vrsn_2_0) + counter = Counter(Codens.GenericGroup, count=count, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.BigGenericGroup - assert counter.tag == AllTags.BigGenericGroup + assert counter.name == "BigGenericGroup" assert counter.count == count assert counter.qb64b == qscb assert counter.qb64 == qsc @@ -1370,7 +1437,7 @@ def test_counter_v2(): count=genverint, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.tag == AllTags.KERIACDCGenusVersion + assert counter.name == "KERIACDCGenusVersion" assert counter.count == genverint assert counter.countToB64(l=3) == genver assert counter.countToB64() == genver # default length @@ -1380,14 +1447,14 @@ def test_counter_v2(): assert counter.version == Vrsn_2_0 assert counter.fullSize == 8 assert counter.codes == counting.CtrDex_2_0 - assert counter.tags == counting.Tags_2_0 + #assert counter.tags == counting.Tags_2_0 assert counter.sizes == Counter.Sizes[2][0] counter = Counter(code=CtrDex.KERIACDCGenusVersion, countB64=genver, gvrsn=Vrsn_2_0) assert counter.code == CtrDex.KERIACDCGenusVersion - assert counter.tag == AllTags.KERIACDCGenusVersion + assert counter.name == "KERIACDCGenusVersion" assert counter.count == genverint assert counter.countToB64(l=3) == genver assert counter.countToB64() == genver # default length diff --git a/tests/core/test_delegating.py b/tests/core/test_delegating.py index 0c05f27c8..2f183f3e2 100644 --- a/tests/core/test_delegating.py +++ b/tests/core/test_delegating.py @@ -7,7 +7,7 @@ from keri import help -from keri import core +from keri import kering, core from keri.core import coring, eventing, parsing from keri.app import keeping, habbing @@ -55,7 +55,8 @@ def test_delegation(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -107,8 +108,8 @@ def test_delegation(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -135,13 +136,13 @@ def test_delegation(): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) @@ -201,8 +202,8 @@ def test_delegation(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -229,13 +230,13 @@ def test_delegation(): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) @@ -462,14 +463,7 @@ def test_load_event(mockHelpingNowUTC): count = botHab.db.cntWigs(dbing.dgKey(botHab.pre, serder.said)) assert count >= 1 - - - """End Test""" - - - - - + # This needs to be fixedup to actually test delegating superseding recovery with (basing.openDB(name="bob") as bobDB, keeping.openKS(name="bob") as bobKS, basing.openDB(name="del") as delDB, @@ -497,7 +491,8 @@ def test_load_event(mockHelpingNowUTC): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -549,8 +544,8 @@ def test_load_event(mockHelpingNowUTC): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -577,13 +572,13 @@ def test_load_event(mockHelpingNowUTC): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) @@ -643,8 +638,8 @@ def test_load_event(mockHelpingNowUTC): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -671,13 +666,13 @@ def test_load_event(mockHelpingNowUTC): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, count=1, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) diff --git a/tests/core/test_escrow.py b/tests/core/test_escrow.py index a100cf03a..d3f419fa6 100644 --- a/tests/core/test_escrow.py +++ b/tests/core/test_escrow.py @@ -10,7 +10,7 @@ from keri import help from keri.help import helping -from keri import core +from keri import core, kering from keri.core import coring, eventing, parsing from keri.db import dbing, basing @@ -55,7 +55,8 @@ def test_partial_signed_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[0].qb64b) @@ -85,7 +86,8 @@ def test_partial_signed_escrow(): # Send message again but with signature from other siger msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[2].qb64b) # apply msg to Kevery to process @@ -119,8 +121,8 @@ def test_partial_signed_escrow(): # send duplicate message with all three sigs msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -148,7 +150,7 @@ def test_partial_signed_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=kvr.verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[1].qb64b) @@ -162,7 +164,7 @@ def test_partial_signed_escrow(): # add another sig msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[0].qb64b) @@ -190,7 +192,7 @@ def test_partial_signed_escrow(): # resend events to load escrow msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[1].qb64b) @@ -204,7 +206,7 @@ def test_partial_signed_escrow(): # add another sig msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[0].qb64b) @@ -233,7 +235,7 @@ def test_partial_signed_escrow(): # send duplicate message but add last sig msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[2].qb64b) psr.parse(ims=bytearray(msg), kvy=kvy) @@ -270,8 +272,8 @@ def test_partial_signed_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -300,7 +302,8 @@ def test_partial_signed_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, count=2) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=2, + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[0].qb64b) msg.extend(sigers[3].qb64b) @@ -315,7 +318,7 @@ def test_partial_signed_escrow(): assert kvr.serder.said != srdr.said # key state not updated msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs) + counter = core.Counter(core.Codens.ControllerIdxSigs, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) msg.extend(sigers[1].qb64b) @@ -383,8 +386,8 @@ def test_missing_delegator_escrow(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -425,8 +428,8 @@ def test_missing_delegator_escrow(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -441,13 +444,13 @@ def test_missing_delegator_escrow(): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, + count=1, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) @@ -533,8 +536,8 @@ def test_missing_delegator_escrow(): sigers = bobMgr.sign(ser=bobSrdr.raw, verfers=bobK.verfers) msg = bytearray(bobSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -553,13 +556,13 @@ def test_missing_delegator_escrow(): sigers = delMgr.sign(ser=delSrdr.raw, verfers=verfers) msg = bytearray(delSrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = core.Counter(core.Codens.SealSourceCouples, + count=1, gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) seqner = coring.Seqner(sn=bobK.sn) msg.extend(seqner.qb64b) @@ -640,8 +643,8 @@ def test_out_of_order_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -654,8 +657,8 @@ def test_out_of_order_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -683,8 +686,8 @@ def test_out_of_order_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -850,8 +853,8 @@ def test_unverified_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -864,7 +867,8 @@ def test_unverified_receipt_escrow(): wit0Cigar = mgr.sign(ser=srdr.raw, verfers=[wit0Verfer], indexed=False)[0] # returns Cigar unindexed wit1Cigar = mgr.sign(ser=srdr.raw, verfers=[wit1Verfer], indexed=False)[0] # returns Cigar unindexed - recnt = coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, count=2) + recnt = core.Counter(core.Codens.NonTransReceiptCouples, count=2, + gvrsn=kering.Vrsn_1_0) msg = bytearray() msg.extend(reserder.raw) @@ -897,8 +901,8 @@ def test_unverified_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -911,7 +915,8 @@ def test_unverified_receipt_escrow(): wit0Cigar = mgr.sign(ser=srdr.raw, verfers=[wit0Verfer], indexed=False)[0] # returns Cigar unindexed wit1Cigar = mgr.sign(ser=srdr.raw, verfers=[wit1Verfer], indexed=False)[0] # returns Cigar unindexed - recnt = coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, count=2) + recnt = core.Counter(core.Codens.NonTransReceiptCouples, count=2, + gvrsn=kering.Vrsn_1_0) msg = bytearray() msg.extend(reserder.raw) @@ -959,8 +964,8 @@ def test_unverified_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -973,7 +978,8 @@ def test_unverified_receipt_escrow(): wit0Cigar = mgr.sign(ser=srdr.raw, verfers=[wit0Verfer], indexed=False)[0] # returns Cigar unindexed wit1Cigar = mgr.sign(ser=srdr.raw, verfers=[wit1Verfer], indexed=False)[0] # returns Cigar unindexed - recnt = coring.Counter(code=coring.CtrDex.NonTransReceiptCouples, count=2) + recnt = core.Counter(core.Codens.NonTransReceiptCouples, count=2, + gvrsn=kering.Vrsn_1_0) msg = bytearray() msg.extend(reserder.raw) @@ -1122,8 +1128,8 @@ def test_unverified_trans_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -1149,8 +1155,8 @@ def test_unverified_trans_receipt_escrow(): rsigers = mgr.sign(ser=rsrdr.raw, verfers=rverfers) msg = bytearray(rsrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(rsigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(rsigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in rsigers: msg.extend(siger.qb64b) @@ -1189,8 +1195,8 @@ def test_unverified_trans_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -1215,8 +1221,8 @@ def test_unverified_trans_receipt_escrow(): rsigers = mgr.sign(ser=rsrdr.raw, verfers=rverfers) msg = bytearray(rsrdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(rsigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(rsigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in rsigers: msg.extend(siger.qb64b) @@ -1269,8 +1275,8 @@ def test_unverified_trans_receipt_escrow(): sigers = mgr.sign(ser=srdr.raw, verfers=verfers) msg = bytearray(srdr.raw) - counter = coring.Counter(code=coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, + count=len(sigers), gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) diff --git a/tests/core/test_eventing.py b/tests/core/test_eventing.py index 942a20cac..7384bbf0f 100644 --- a/tests/core/test_eventing.py +++ b/tests/core/test_eventing.py @@ -10,19 +10,20 @@ import pytest from keri import kering +from keri.kering import Vrsn_1_0 from keri.app import habbing, keeping from keri.app.keeping import openKS, Manager from keri import core -from keri.core import Signer +from keri.core import Signer, Counter, Codens from keri.core import coring, eventing, parsing, serdering from keri.core.coring import (Diger, MtrDex, Matter, - CtrDex, Counter, Cigar, + Cigar, Seqner, Verfer, Prefixer, DigDex) from keri.core.indexing import (IdrDex, IdxSigDex, Indexer, Siger) from keri.core.eventing import Kever, Kevery from keri.core.eventing import (SealDigest, SealRoot, SealBacker, SealEvent, SealLast, StateEvent, StateEstEvent) -from keri.core.eventing import (TraitDex, LastEstLoc, Serials, versify, +from keri.core.eventing import (TraitDex, LastEstLoc, Kinds, versify, simple, ample) from keri.core.eventing import (deWitnessCouple, deReceiptCouple, deSourceCouple, deReceiptTriple, @@ -2851,7 +2852,7 @@ def test_multisig_digprefix(): # create sig counter count = len(keys) - counter = Counter(CtrDex.ControllerIdxSigs, count=count) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization sigers = [signers[i].sign(serder.raw, index=i) for i in range(count)] # create key event verifier state @@ -2887,7 +2888,7 @@ def test_multisig_digprefix(): sn=1) # create sig counter count = len(keys) - counter = Counter(CtrDex.ControllerIdxSigs, count=count) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization sigers = [signers[i].sign(serder.raw, index=i - count) for i in range(count, count + count)] # update key event verifier state @@ -2903,7 +2904,7 @@ def test_multisig_digprefix(): dig=kever.serder.said, sn=2) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs, count=count) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization sigers = [signers[i].sign(serder.raw, index=i - count) for i in range(count, count + count)] # update key event verifier state @@ -2919,7 +2920,7 @@ def test_multisig_digprefix(): dig=kever.serder.said, sn=3) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs, count=count) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization sigers = [signers[i].sign(serder.raw, index=i - count) for i in range(count, count + count)] # update key event verifier state @@ -2939,7 +2940,7 @@ def test_multisig_digprefix(): dig=kever.serder.said, sn=4) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs, count=count) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, count=count, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization sigers = [signers[i].sign(serder.raw, index=i - 5) for i in range(5, 8)] # update key event verifier state @@ -2991,7 +2992,7 @@ def test_recovery(): event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # return siger # create key event verifier state @@ -3013,7 +3014,7 @@ def test_recovery(): event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # returns siger # update key event verifier state @@ -3032,7 +3033,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3054,7 +3055,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3073,7 +3074,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3092,7 +3093,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3111,7 +3112,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3134,7 +3135,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3153,7 +3154,7 @@ def test_recovery(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[esn].sign(serder.raw, index=0) # update key event verifier state @@ -3244,7 +3245,7 @@ def test_receipt(): event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) # return Siger if index @@ -3273,7 +3274,7 @@ def test_receipt(): valCigar = valSigner.sign(ser=serder.raw) # returns Cigar cause no index assert valCigar.qb64 == ('0BADE2aOlwLi6OCF-jzRWSPuaOo916ADjwhA92hBQ1km' 'LSSYdzDiZIpJNFf0uislNR8uhCbB6x2Y1I6rqbNeBXwF') - recnt = Counter(code=CtrDex.NonTransReceiptCouples, count=1) + recnt = Counter(code=Codens.NonTransReceiptCouples, count=1, gvrsn=Vrsn_1_0) assert recnt.qb64 == '-CAB' res.extend(reserder.raw) @@ -3302,7 +3303,7 @@ def test_receipt(): said=fake) # sign event not receipt valCigar = valSigner.sign(ser=serder.raw) # returns Cigar cause no index - recnt = Counter(code=CtrDex.NonTransReceiptCouples, count=1) + recnt = Counter(code=Codens.NonTransReceiptCouples, count=1, gvrsn=Vrsn_1_0) # attach to receipt msg stream res.extend(reserder.raw) res.extend(recnt.qb64b) @@ -3324,7 +3325,7 @@ def test_receipt(): said=fake) # sign event not receipt valCigar = valSigner.sign(ser=serder.raw) # returns Cigar cause no index - recnt = Counter(code=CtrDex.NonTransReceiptCouples, count=1) + recnt = Counter(code=Codens.NonTransReceiptCouples, count=1, gvrsn=Vrsn_1_0) # attach to receipt msg stream res.extend(reserder.raw) res.extend(recnt.qb64b) @@ -3354,7 +3355,7 @@ def test_receipt(): event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) # returns siger # extend key event stream @@ -3375,7 +3376,7 @@ def test_receipt(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) @@ -3400,7 +3401,7 @@ def test_receipt(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) @@ -3422,7 +3423,7 @@ def test_receipt(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) @@ -3444,7 +3445,7 @@ def test_receipt(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) @@ -3466,7 +3467,7 @@ def test_receipt(): sn=sn) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[esn].sign(serder.raw, index=0) @@ -3536,7 +3537,7 @@ def test_direct_mode(): coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) # return Siger if index @@ -3569,7 +3570,7 @@ def test_direct_mode(): val_event_digs.append(valSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = valSigners[vesn].sign(valSerder.raw, index=0) # return Siger if index @@ -3750,7 +3751,7 @@ def test_direct_mode(): sn=csn) coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) # returns siger @@ -3844,7 +3845,7 @@ def test_direct_mode(): sn=csn) coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) @@ -3995,14 +3996,14 @@ def test_direct_mode_cbor_mgpk(): coeSerder = incept(keys=[coeSigners[cesn].verfer.qb64], ndigs=[coring.Diger(ser=coeSigners[cesn + 1].verfer.qb64b).qb64], code=MtrDex.Blake3_256, - kind=Serials.cbor) + kind=Kinds.cbor) assert csn == int(coeSerder.ked["s"], 16) == 0 coepre = coeSerder.ked["i"] coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) # return Siger if index @@ -4027,14 +4028,14 @@ def test_direct_mode_cbor_mgpk(): valSerder = incept(keys=[valSigners[vesn].verfer.qb64], ndigs=[coring.Diger(ser=valSigners[vesn + 1].verfer.qb64b).qb64], code=MtrDex.Blake3_256, - kind=Serials.mgpk) + kind=Kinds.mgpk) assert vsn == int(valSerder.ked["s"], 16) == 0 valpre = valSerder.ked["i"] val_event_digs.append(valSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = valSigners[vesn].sign(valSerder.raw, index=0) # return Siger if index @@ -4071,7 +4072,7 @@ def test_direct_mode_cbor_mgpk(): reserder = receipt(pre=coeK.prefixer.qb64, sn=coeK.sn, said=coeK.serder.said, - kind=Serials.mgpk) + kind=Kinds.mgpk) # sign coe's event not receipt # look up event to sign from val's kever for coe coeIcpDig = bytes(valKevery.db.getKeLast(key=snKey(pre=coepre, sn=csn))) @@ -4122,7 +4123,7 @@ def test_direct_mode_cbor_mgpk(): reserder = receipt(pre=coeK.prefixer.qb64, sn=10, said=fake, - kind=Serials.mgpk) + kind=Kinds.mgpk) # sign event not receipt siger = valSigners[vesn].sign(ser=coeIcpRaw, index=0) # return Siger if index @@ -4157,7 +4158,7 @@ def test_direct_mode_cbor_mgpk(): reserder = receipt(pre=valK.prefixer.qb64, sn=valK.sn, said=valK.serder.said, - kind=Serials.cbor) + kind=Kinds.cbor) # sign vals's event not receipt # look up event to sign from coe's kever for val valIcpDig = bytes(coeKevery.db.getKeLast(key=snKey(pre=valpre, sn=vsn))) @@ -4210,10 +4211,10 @@ def test_direct_mode_cbor_mgpk(): dig=coeKever.serder.said, ndigs=[coring.Diger(ser=coeSigners[cesn + 1].verfer.qb64b).qb64], sn=csn, - kind=Serials.cbor) + kind=Kinds.cbor) coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) # returns siger @@ -4252,7 +4253,7 @@ def test_direct_mode_cbor_mgpk(): reserder = receipt(pre=coeK.prefixer.qb64, sn=coeK.sn, said=coeK.serder.said, - kind=Serials.mgpk) + kind=Kinds.mgpk) # sign coe's event not receipt # look up event to sign from val's kever for coe coeRotDig = bytes(valKevery.db.getKeLast(key=snKey(pre=coepre, sn=csn))) @@ -4304,10 +4305,10 @@ def test_direct_mode_cbor_mgpk(): coeSerder = interact(pre=coeKever.prefixer.qb64, dig=coeKever.serder.said, sn=csn, - kind=Serials.cbor) + kind=Kinds.cbor) coe_event_digs.append(coeSerder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = coeSigners[cesn].sign(coeSerder.raw, index=0) @@ -4344,7 +4345,7 @@ def test_direct_mode_cbor_mgpk(): reserder = receipt(pre=coeK.prefixer.qb64, sn=coeK.sn, said=coeK.serder.said, - kind=Serials.mgpk) + kind=Kinds.mgpk) # sign coe's event not receipt # look up event to sign from val's kever for coe coeIxnDig = bytes(valKevery.db.getKeLast(key=snKey(pre=coepre, sn=csn))) @@ -4443,7 +4444,7 @@ def test_process_nontransferable(): nsigs = 1 # one attached signature unspecified index #["v", "t", "d", "i", "s", "kt", "k", "nt", "n","bt", "b", "c", "a"] - ked0 = dict(v=versify(kind=Serials.json, size=0), + ked0 = dict(v=versify(kind=Kinds.json, size=0), t=Ilks.icp, d="", i=aid0.qb64, # qual base 64 prefix @@ -4472,7 +4473,7 @@ def test_process_nontransferable(): assert skp0.verfer.verify(tsig0.raw, tser0.raw) # create attached sig counter - cnt0 = Counter(CtrDex.ControllerIdxSigs) + cnt0 = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # create packet msgb0 = bytearray(tser0.raw + cnt0.qb64b + tsig0.qb64b) @@ -4483,7 +4484,7 @@ def test_process_nontransferable(): del msgb0[:rser0.size] # strip off event from front # extract sig counter - rcnt0 = Counter(qb64=msgb0) + rcnt0 = Counter(qb64=msgb0, gvrsn=Vrsn_1_0) nrsigs = rcnt0.count assert nrsigs == 1 del msgb0[:len(rcnt0.qb64)] @@ -4531,7 +4532,7 @@ def test_process_transferable(): nsigs = 1 # one attached signature unspecified index - ked0 = dict(v=versify(kind=Serials.json, size=0), # version string + ked0 = dict(v=versify(kind=Kinds.json, size=0), # version string t=Ilks.icp, d="", # SAID i="", # qb64 prefix @@ -4565,7 +4566,7 @@ def test_process_transferable(): assert skp0.verfer.verify(tsig0.raw, tser0.raw) # create attached sig counter - cnt0 = Counter(CtrDex.ControllerIdxSigs) + cnt0 = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # create packet msgb0 = bytearray(tser0.raw + cnt0.qb64b + tsig0.qb64b) @@ -4576,7 +4577,7 @@ def test_process_transferable(): del msgb0[:rser0.size] # strip off event from front # extract sig counter - rcnt0 = Counter(qb64=msgb0) + rcnt0 = Counter(qb64=msgb0, gvrsn=Vrsn_1_0) nrsigs = rcnt0.count assert nrsigs == 1 del msgb0[:len(rcnt0.qb64)] @@ -4658,7 +4659,7 @@ def test_process_manual(): index = 0 # create key event dict - ked0 = dict(v=versify(kind=Serials.json, size=0), + ked0 = dict(v=versify(kind=Kinds.json, size=0), t=Ilks.icp, d="", i=aidmat.qb64, # qual base 64 prefix @@ -4674,7 +4675,7 @@ def test_process_manual(): ) _, ked0 = coring.Saider.saidify(sad=ked0) - txsrdr = serdering.SerderKERI(sad=ked0, kind=Serials.json) + txsrdr = serdering.SerderKERI(sad=ked0, kind=Kinds.json) assert txsrdr.raw == (b'{"v":"KERI10JSON00012b_","t":"icp","d":"EKYHED-wvkYDZv4tNUF9qiC1kgnnGLS9YUU8' b'PCWig_n4","i":"DK-WsHD7MKfQpBjJ3B2GwjqY9z90G94uzMs7irCiT-dL","s":"0","kt":"1' b'","k":["DK-WsHD7MKfQpBjJ3B2GwjqY9z90G94uzMs7irCiT-dL"],"nt":"1","n":["EDcWJG' @@ -4891,8 +4892,8 @@ def test_load_event(mockHelpingNowUTC): 'witnesses': []} # Add seal source couple to Tee's inception before sending to Wan - counter = coring.Counter(code=coring.CtrDex.SealSourceCouples, - count=1) + counter = Counter(Codens.SealSourceCouples, + count=1, gvrsn=Vrsn_1_0) teeIcp.extend(counter.qb64b) seqner = coring.Seqner(sn=torHab.kever.sn) teeIcp.extend(seqner.qb64b) diff --git a/tests/core/test_kevery.py b/tests/core/test_kevery.py index 183b073a2..97b6dd7d5 100644 --- a/tests/core/test_kevery.py +++ b/tests/core/test_kevery.py @@ -2,13 +2,13 @@ import pytest -from keri.kering import (ValidationError) +from keri.kering import (ValidationError, Vrsn_1_0) from keri import help from keri import core -from keri.core import parsing, eventing, coring, serdering -from keri.core.coring import CtrDex, Counter +from keri.core import parsing, eventing, coring, serdering, Counter, Codens + from keri.core.eventing import Kever, Kevery from keri.core.eventing import (incept, rotate, interact) @@ -44,7 +44,7 @@ def test_kevery(): ndigs=[coring.Diger(ser=signers[1].verfer.qb64b).qb64]) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[0].sign(serder.raw, index=0) # return siger # create key event verifier state @@ -70,7 +70,7 @@ def test_kevery(): sn=1) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[1].sign(serder.raw, index=0) # returns siger # update key event verifier state @@ -88,7 +88,7 @@ def test_kevery(): sn=2) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -104,7 +104,7 @@ def test_kevery(): sn=3) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -120,7 +120,7 @@ def test_kevery(): sn=4) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -138,7 +138,7 @@ def test_kevery(): sn=5) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[3].sign(serder.raw, index=0) # update key event verifier state @@ -154,7 +154,7 @@ def test_kevery(): sn=6) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[3].sign(serder.raw, index=0) # update key event verifier state @@ -172,7 +172,7 @@ def test_kevery(): sn=7) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state @@ -187,7 +187,7 @@ def test_kevery(): dig=kever.serder.said, sn=8) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state @@ -205,7 +205,7 @@ def test_kevery(): ndigs=[coring.Diger(ser=signers[5].verfer.qb64b).qb64], sn=8) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state diff --git a/tests/core/test_parsing.py b/tests/core/test_parsing.py index 95ebc7e9e..a6438ea01 100644 --- a/tests/core/test_parsing.py +++ b/tests/core/test_parsing.py @@ -9,13 +9,13 @@ from hio.help import decking -from keri.kering import ValidationError +from keri.kering import ValidationError, Vrsn_1_0 from keri import help from keri import core -from keri.core import parsing, coring -from keri.core.coring import (CtrDex, Counter,) +from keri.core import parsing, coring, Counter, Codens + from keri.core.eventing import (Kever, Kevery, incept, rotate, interact) from keri.db.basing import openDB @@ -46,7 +46,7 @@ def test_parser(): ndigs=[coring.Diger(ser=signers[1].verfer.qb64b).qb64]) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[0].sign(serder.raw, index=0) # return siger # create key event verifier state @@ -72,7 +72,7 @@ def test_parser(): sn=1) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[1].sign(serder.raw, index=0) # returns siger # update key event verifier state @@ -90,7 +90,7 @@ def test_parser(): sn=2) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -106,7 +106,7 @@ def test_parser(): sn=3) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -122,7 +122,7 @@ def test_parser(): sn=4) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[2].sign(serder.raw, index=0) # update key event verifier state @@ -140,7 +140,7 @@ def test_parser(): sn=5) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[3].sign(serder.raw, index=0) # update key event verifier state @@ -156,7 +156,7 @@ def test_parser(): sn=6) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[3].sign(serder.raw, index=0) # update key event verifier state @@ -174,7 +174,7 @@ def test_parser(): sn=7) event_digs.append(serder.said) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state @@ -189,7 +189,7 @@ def test_parser(): dig=kever.serder.said, sn=8) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state @@ -207,7 +207,7 @@ def test_parser(): ndigs=[coring.Diger(ser=signers[5].verfer.qb64b).qb64], sn=8) # create sig counter - counter = Counter(CtrDex.ControllerIdxSigs) # default is count = 1 + counter = Counter(Codens.ControllerIdxSigs, gvrsn=Vrsn_1_0) # default is count = 1 # sign serialization siger = signers[4].sign(serder.raw, index=0) # update key event verifier state diff --git a/tests/core/test_replay.py b/tests/core/test_replay.py index 29547a88c..70b5ecf02 100644 --- a/tests/core/test_replay.py +++ b/tests/core/test_replay.py @@ -9,8 +9,8 @@ from keri import help from keri.help import helping -from keri import core -from keri.core import coring, eventing, parsing, serdering, indexing +from keri import core, kering +from keri.core import coring, eventing, parsing, serdering, indexing, counting from keri.app import habbing @@ -340,14 +340,14 @@ def test_replay(): del msg[:len(serder.raw)] assert len(msg) == 1076 - counter = coring.Counter(qb64b=msg) # attachment length quadlets counter - assert counter.code == coring.CtrDex.AttachmentGroup + counter = core.Counter(qb64b=msg, gvrsn=kering.Vrsn_1_0) # attachment length quadlets counter + assert counter.code == counting.CtrDex_1_0.AttachmentGroup assert counter.count == (len(msg) - len(counter.qb64b)) // 4 == 268 del msg[:len(counter.qb64b)] assert len(msg) == 1072 == 268 * 4 - counter = coring.Counter(qb64b=msg) # indexed signatures counter - assert counter.code == coring.CtrDex.ControllerIdxSigs + counter = core.Counter(qb64b=msg, gvrsn=kering.Vrsn_1_0) # indexed signatures counter + assert counter.code == counting.CtrDex_1_0.ControllerIdxSigs assert counter.count == 3 # multisig deb del msg[:len(counter.qb64b)] assert len(msg) == 1068 @@ -357,8 +357,8 @@ def test_replay(): del msg[:len(siger.qb64b)] assert len(msg) == 1068 - 3 * len(siger.qb64b) == 804 - counter = coring.Counter(qb64b=msg) # trans receipt (vrc) counter - assert counter.code == coring.CtrDex.TransReceiptQuadruples + counter = core.Counter(qb64b=msg, gvrsn=kering.Vrsn_1_0) # trans receipt (vrc) counter + assert counter.code == counting.CtrDex_1_0.TransReceiptQuadruples assert counter.count == 3 # multisig cam del msg[:len(counter.qb64b)] assert len(msg) == 800 @@ -368,8 +368,8 @@ def test_replay(): assert len(msg) == 800 - 3 * (len(prefixer.qb64b) + len(seqner.qb64b) + len(diger.qb64b) + len(siger.qb64b)) == 200 - counter = coring.Counter(qb64b=msg) # nontrans receipt (rct) counter - assert counter.code == coring.CtrDex.NonTransReceiptCouples + counter = core.Counter(qb64b=msg, gvrsn=kering.Vrsn_1_0) # nontrans receipt (rct) counter + assert counter.code == counting.CtrDex_1_0.NonTransReceiptCouples assert counter.count == 1 # single sig bev del msg[:len(counter.qb64b)] assert len(msg) == 196 @@ -378,8 +378,8 @@ def test_replay(): prefixer, cigar = eventing.deReceiptCouple(msg, strip=True) assert len(msg) == 196 - 1 * (len(prefixer.qb64b) + len(cigar.qb64b)) == 64 - counter = coring.Counter(qb64b=msg) # first seen replay couple counter - assert counter.code == coring.CtrDex.FirstSeenReplayCouples + counter = core.Counter(qb64b=msg, gvrsn=kering.Vrsn_1_0) # first seen replay couple counter + assert counter.code == counting.CtrDex_1_0.FirstSeenReplayCouples assert counter.count == 1 del msg[:len(counter.qb64b)] assert len(msg) == 60 diff --git a/tests/core/test_serdering.py b/tests/core/test_serdering.py index ef7cbd07e..bbeebd0e4 100644 --- a/tests/core/test_serdering.py +++ b/tests/core/test_serdering.py @@ -159,7 +159,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -180,7 +180,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -194,7 +194,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -208,7 +208,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -220,7 +220,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -247,7 +247,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == None @@ -261,7 +261,7 @@ def test_serder(): #Test makify bootstrap for ACDC with CBOR - serder = Serder(makify=True, proto=Protocols.acdc, kind=kering.Serials.cbor) + serder = Serder(makify=True, proto=Protocols.acdc, kind=kering.Kinds.cbor) assert serder.sad == {'v': 'ACDC10CBOR00004b_', 'd': 'EGahYhEMb_Sz0L1UwhrUvbyxyzoi_G85-pD9jRjhnqgU', 'i': '', @@ -281,7 +281,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.cbor + assert serder.kind == kering.Kinds.cbor assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -302,7 +302,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.cbor + assert serder.kind == kering.Kinds.cbor assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -316,7 +316,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.cbor + assert serder.kind == kering.Kinds.cbor assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -324,7 +324,7 @@ def test_serder(): #Test makify bootstrap for ACDC with MGPK - serder = Serder(makify=True, proto=Protocols.acdc, kind=kering.Serials.mgpk) + serder = Serder(makify=True, proto=Protocols.acdc, kind=kering.Kinds.mgpk) assert serder.sad == {'v': 'ACDC10MGPK00004b_', 'd': 'EGV5wdF1nRbSXatBgZDpAxlGL6BuATjpUYBuk0AQW7GC', 'i': '', @@ -344,7 +344,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.mgpk + assert serder.kind == kering.Kinds.mgpk assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -365,7 +365,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.mgpk + assert serder.kind == kering.Kinds.mgpk assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -379,7 +379,7 @@ def test_serder(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.mgpk + assert serder.kind == kering.Kinds.mgpk assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -417,7 +417,7 @@ def test_serder(): assert serder.sad == sad assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk == kering.Ilks.icp @@ -426,7 +426,7 @@ def test_serder(): assert serder.sad == sad assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk == kering.Ilks.icp @@ -468,7 +468,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -478,7 +478,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -552,7 +552,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -562,7 +562,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -604,7 +604,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -614,7 +614,7 @@ def test_serder(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -755,7 +755,7 @@ def test_serderkeri(): assert serder.sad == sad assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.pre == pre assert serder.ilk == kering.Ilks.icp @@ -788,7 +788,7 @@ def test_serderkeri(): assert serder.sad == sad assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == kering.Ilks.icp @@ -857,7 +857,7 @@ def test_serderkeri_icp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -893,7 +893,7 @@ def test_serderkeri_icp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -993,7 +993,7 @@ def test_serderkeri_icp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1029,7 +1029,7 @@ def test_serderkeri_icp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1115,7 +1115,7 @@ def test_serderkeri_rot(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1146,7 +1146,7 @@ def test_serderkeri_rot(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1223,7 +1223,7 @@ def test_serderkeri_ixn(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1257,7 +1257,7 @@ def test_serderkeri_ixn(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1357,7 +1357,7 @@ def test_serderkeri_dip(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1392,7 +1392,7 @@ def test_serderkeri_dip(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1526,7 +1526,7 @@ def test_serderkeri_dip(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1561,7 +1561,7 @@ def test_serderkeri_dip(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1654,7 +1654,7 @@ def test_serderkeri_drt(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1687,7 +1687,7 @@ def test_serderkeri_drt(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1756,7 +1756,7 @@ def test_serderkeri_rct(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1786,7 +1786,7 @@ def test_serderkeri_rct(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1856,7 +1856,7 @@ def test_serderkeri_qry(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1887,7 +1887,7 @@ def test_serderkeri_qry(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1959,7 +1959,7 @@ def test_serderkeri_rpy(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -1989,7 +1989,7 @@ def test_serderkeri_rpy(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2060,7 +2060,7 @@ def test_serderkeri_pro(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2091,7 +2091,7 @@ def test_serderkeri_pro(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2162,7 +2162,7 @@ def test_serderkeri_bar(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2193,7 +2193,7 @@ def test_serderkeri_bar(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2272,7 +2272,7 @@ def test_serderkeri_exn(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2305,7 +2305,7 @@ def test_serderkeri_exn(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2373,7 +2373,7 @@ def test_serderkeri_vcp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2405,7 +2405,7 @@ def test_serderkeri_vcp(): assert serder.proto == Protocols.keri assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == ilk @@ -2452,7 +2452,7 @@ def test_serderacdc(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == 90 - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == 'EMk7BvrqO_2sYjpI_-BmSELOFNie-muw4XTi3iYCz6pT' assert serder.ilk == None @@ -2484,7 +2484,7 @@ def test_serderacdc(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == None assert serder.issuer == isr @@ -2496,7 +2496,7 @@ def test_serderacdc(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_1_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.ilk == None assert serder.issuer == isr @@ -2549,7 +2549,7 @@ def test_serder_v2(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_2_0 == serder.version assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -2570,7 +2570,7 @@ def test_serder_v2(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_2_0 == serder.version assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -2584,7 +2584,7 @@ def test_serder_v2(): assert serder.proto == Protocols.acdc assert serder.vrsn == kering.Vrsn_2_0 assert serder.size == size - assert serder.kind == kering.Serials.json + assert serder.kind == kering.Kinds.json assert serder.said == said assert serder.saidb == said.encode("utf-8") assert serder.ilk == None @@ -2614,7 +2614,7 @@ def test_serder_v2(): assert serder.verify() assert serder.proto == Protocols.keri == Serder.Proto # default assert serder.vrsn == kering.Vrsn_2_0 - assert serder.kind == kering.Serials.json == Serder.Kind # default + assert serder.kind == kering.Kinds.json == Serder.Kind # default assert serder.ilk == kering.Ilks.icp # default first one @@ -2692,7 +2692,7 @@ def test_cesr_native_dumps(): keys = [csigners[0].verfer.qb64] assert keys == ['DG9XhvcVryHjoIGcj5nK4sAE3oslQHWi4fBJre3NGwTQ'] - serder = incept(keys, version=Vrsn_2_0, kind=kering.Serials.cesr) + serder = incept(keys, version=Vrsn_2_0, kind=kering.Kinds.cesr) assert serder.sad == \ { @@ -2731,10 +2731,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 252 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 202 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 202 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] @@ -2777,7 +2777,7 @@ def test_cesr_native_dumps(): data=data, code=core.MtrDex.Blake3_256, version=Vrsn_2_0, - kind=kering.Serials.cesr) + kind=kering.Kinds.cesr) pre = serder.pre assert pre == 'EKIuA20I5q6IrgAHrX-gkAt4Og17Ebu5CDBrRvh8RToi' @@ -2878,10 +2878,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 915 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 829 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 829 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] @@ -2930,7 +2930,7 @@ def test_cesr_native_dumps(): sn=1, data=data, version=Vrsn_2_0, - kind=kering.Serials.cesr) + kind=kering.Kinds.cesr) said = serder.said assert said == 'EHXLwMJsZLyG643VW8Do1cqqiMxD_E65Mc3Z1we6vTaR' @@ -2992,10 +2992,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 601 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 536 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 536 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] @@ -3024,7 +3024,7 @@ def test_cesr_native_dumps(): adds=adds, data=data, version=Vrsn_2_0, - kind=kering.Serials.cesr) + kind=kering.Kinds.cesr) said = serder.said assert said == 'EDHlTlOcSXZInbTE4iXzb1iFjZcxJZn3C3UXhckb3uQm' @@ -3085,10 +3085,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 638 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 577 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 577 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] @@ -3140,7 +3140,7 @@ def test_cesr_native_dumps(): delpre=delpre, code=core.MtrDex.Blake3_256, version=Vrsn_2_0, - kind=kering.Serials.cesr) + kind=kering.Kinds.cesr) pre = serder.pre assert pre == 'EKCFMk4nmn3t8jdC1pB_-Qmp7w8EROvdYaxgru7vHOjC' @@ -3233,10 +3233,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 1059 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 953 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 953 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] @@ -3266,7 +3266,7 @@ def test_cesr_native_dumps(): adds=adds, data=data, version=Vrsn_2_0, - kind=kering.Serials.cesr) + kind=kering.Kinds.cesr) said = serder.said assert said == 'EKfRY6YrpqUU0HyKWMGvNtzuZCaeMcIBrdKzHAqpmtTA' @@ -3314,10 +3314,10 @@ def test_cesr_native_dumps(): rawjson = serder.dumps(serder.sad) assert len(rawjson) == 450 - rawcbor = serder.dumps(serder.sad, kind=kering.Serials.cbor) + rawcbor = serder.dumps(serder.sad, kind=kering.Kinds.cbor) assert len(rawcbor) == 393 - rawmgpk = serder.dumps(serder.sad, kind=kering.Serials.mgpk) + rawmgpk = serder.dumps(serder.sad, kind=kering.Kinds.mgpk) assert len(rawmgpk) == 393 raws = [rawqb2, rawqb64, rawcbor, rawmgpk, rawjson] diff --git a/tests/core/test_streaming.py b/tests/core/test_streaming.py index 60b3ecc47..86eefc399 100644 --- a/tests/core/test_streaming.py +++ b/tests/core/test_streaming.py @@ -162,7 +162,7 @@ def test_annot(): "kid" : "FdFYFzERwC2uCBB46pZQi4GG85LujR8obt-KWRBICVQ" } - jwk = dumps(djwk, kering.Serials.json) + jwk = dumps(djwk, kering.Kinds.json) assert jwk == (b'{"kty":"OKP","crv":"Ed25519","x":"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHUR' b'o","d":"nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A","use":"sig","kid":"FdFY' b'FzERwC2uCBB46pZQi4GG85LujR8obt-KWRBICVQ"}') diff --git a/tests/core/test_weighted_threshold.py b/tests/core/test_weighted_threshold.py index 3f65bc88d..8342f49d3 100644 --- a/tests/core/test_weighted_threshold.py +++ b/tests/core/test_weighted_threshold.py @@ -9,7 +9,7 @@ from keri import help -from keri import core +from keri import core, kering from keri.core import coring, eventing, parsing from keri.db import basing @@ -53,8 +53,8 @@ def test_weighted(): sigers = wesMgr.sign(ser=wesSrdr.raw, verfers=verfers) msg = bytearray(wesSrdr.raw) - counter = coring.Counter(coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -89,8 +89,8 @@ def test_weighted(): sigers = wesMgr.sign(ser=wesSrdr.raw, verfers=wesK.verfers) msg = bytearray(wesSrdr.raw) - counter = coring.Counter(coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -126,8 +126,8 @@ def test_weighted(): sigers = wesMgr.sign(ser=wesSrdr.raw, verfers=verfers) msg = bytearray(wesSrdr.raw) - counter = coring.Counter(coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -172,8 +172,8 @@ def test_weighted(): sigers = wesMgr.sign(ser=wesSrdr.raw, verfers=verfers) msg = bytearray(wesSrdr.raw) - counter = coring.Counter(coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) @@ -218,8 +218,8 @@ def test_weighted(): sigers = wesMgr.sign(ser=wesSrdr.raw, verfers=verfers) msg = bytearray(wesSrdr.raw) - counter = coring.Counter(coring.CtrDex.ControllerIdxSigs, - count=len(sigers)) + counter = core.Counter(core.Codens.ControllerIdxSigs, count=len(sigers), + gvrsn=kering.Vrsn_1_0) msg.extend(counter.qb64b) for siger in sigers: msg.extend(siger.qb64b) diff --git a/tests/db/test_basing.py b/tests/db/test_basing.py index 89044c7d9..16a0819eb 100644 --- a/tests/db/test_basing.py +++ b/tests/db/test_basing.py @@ -16,7 +16,7 @@ from keri import core from keri.core import coring, eventing, serdering -from keri.core.coring import Serials, versify +from keri.core.coring import Kinds, versify from keri.core.eventing import incept, rotate, interact, Kever @@ -124,7 +124,7 @@ def test_baser(): preb = 'DAzwEHHzq7K0gzQPYGGwTmuupUhPx5_yZ-Wk1x4ejhcc'.encode("utf-8") digb = 'EGAPkzNZMtX-QiVgbRbyAIZGoXvbGv9IPb0foWTZvI_4'.encode("utf-8") sn = 3 - vs = versify(kind=Serials.json, size=20) + vs = versify(kind=Kinds.json, size=20) assert vs == 'KERI10JSON000014_' ked = dict(vs=vs, pre=preb.decode("utf-8"), @@ -1838,7 +1838,7 @@ def test_fetchkeldel(): preb = 'BWzwEHHzq7K0gzQPYGGwTmuupUhPx5_yZ-Wk1x4ejhcc'.encode("utf-8") digb = 'EGAPkzNZMtX-QiVgbRbyAIZGoXvbGv9IPb0foWTZvI_4'.encode("utf-8") sn = 3 - vs = versify(kind=Serials.json, size=20) + vs = versify(kind=Kinds.json, size=20) assert vs == 'KERI10JSON000014_' ked = dict(vs=vs, pre=preb.decode("utf-8"), diff --git a/tests/db/test_escrowing.py b/tests/db/test_escrowing.py index 87d12d9bc..6a7e5af24 100644 --- a/tests/db/test_escrowing.py +++ b/tests/db/test_escrowing.py @@ -66,7 +66,7 @@ def test_broker_nontrans(): rrsr = viring.RegStateRecord._fromdict(ked["a"]) # reply RegStateRecord #tserder = serdering.SerderKERI(sad=ked["a"]) - saider, _ = coring.Saider.saidify(sad=ked, kind=coring.Serials.json, label=coring.Saids.d) + saider, _ = coring.Saider.saidify(sad=ked, kind=coring.Kinds.json, label=coring.Saids.d) dater = coring.Dater(dts=dts) cigars = wesHab.sign(ser=serder.raw, @@ -132,7 +132,7 @@ def test_broker_trans(): serder = serdering.SerderKERI(sad=ked) rrsr = viring.RegStateRecord._fromdict(ked["a"]) # reply RegStateRecord #tserder = serdering.SerderKERI(sad=ked["a"]) - saider, _ = coring.Saider.saidify(sad=ked, kind=coring.Serials.json, label=coring.Saids.d) + saider, _ = coring.Saider.saidify(sad=ked, kind=coring.Kinds.json, label=coring.Saids.d) dater = coring.Dater(dts=dts) sigers = bobHab.sign(ser=serder.raw, diff --git a/tests/db/test_koming.py b/tests/db/test_koming.py index dfafa5327..ae1975e36 100644 --- a/tests/db/test_koming.py +++ b/tests/db/test_koming.py @@ -10,7 +10,7 @@ import pytest -from keri.core.coring import Serials +from keri.core.coring import Kinds from keri.db import dbing, koming from keri.help import helping @@ -299,16 +299,16 @@ class Record: with dbing.openLMDB() as db: k = koming.Komer(db=db, schema=Record, subkey='records.') - srl = k._serializer(Serials.mgpk) + srl = k._serializer(Kinds.mgpk) expected = b'\x86\xa5first\xa3Jim\xa4last\xa5Black\xa6street\xaf100 Main Street\xa4city\xa8Riverton\xa5state\xa2UT\xa3zip\xce\x00\x01HZ' assert srl(jim) == expected - srl = k._serializer(Serials.cbor) + srl = k._serializer(Kinds.cbor) expected = b'\xa6efirstcJimdlasteBlackfstreeto100 Main StreetdcityhRivertonestatebUTczip\x1a\x00\x01HZ' assert srl(jim) == expected - srl = k._serializer(Serials.json) + srl = k._serializer(Kinds.json) expected = b'{"first":"Jim","last":"Black","street":"100 Main Street","city":"Riverton","state":"UT","zip":84058}' assert srl(jim) == expected @@ -389,7 +389,7 @@ class Record: with dbing.openLMDB() as db: k = koming.Komer(db=db, schema=Record, subkey='records.') - desrl = k._deserializer(Serials.mgpk) + desrl = k._deserializer(Kinds.mgpk) actual = helping.datify(Record, desrl(msgp)) assert actual.first == "Jim" assert actual.last == "Black" @@ -398,7 +398,7 @@ class Record: assert actual.state == "UT" assert actual.zip == 84058 - desrl = k._deserializer(Serials.json) + desrl = k._deserializer(Kinds.json) actual = helping.datify(Record, desrl(json)) assert actual.first == "Jim" assert actual.last == "Black" @@ -407,7 +407,7 @@ class Record: assert actual.state == "UT" assert actual.zip == 84058 - desrl = k._deserializer(Serials.cbor) + desrl = k._deserializer(Kinds.cbor) actual = helping.datify(Record, desrl(cbor)) assert actual.first == "Jim" assert actual.last == "Black" diff --git a/tests/end/test_ending.py b/tests/end/test_ending.py index b27a9378b..4e90bad64 100644 --- a/tests/end/test_ending.py +++ b/tests/end/test_ending.py @@ -39,13 +39,13 @@ def test_mimes(): assert ending.KeriMimes.cesr == 'application/keri+cesr' # Usage: to get Mime from serialization kind - assert getattr(ending.Mimes, coring.Serials.json.lower()) == ending.Mimes.json - assert getattr(ending.Mimes, coring.Serials.mgpk.lower()) == ending.Mimes.mgpk - assert getattr(ending.Mimes, coring.Serials.cbor.lower()) == ending.Mimes.cbor + assert getattr(ending.Mimes, coring.Kinds.json.lower()) == ending.Mimes.json + assert getattr(ending.Mimes, coring.Kinds.mgpk.lower()) == ending.Mimes.mgpk + assert getattr(ending.Mimes, coring.Kinds.cbor.lower()) == ending.Mimes.cbor - assert getattr(ending.KeriMimes, coring.Serials.json.lower()) == ending.KeriMimes.json - assert getattr(ending.KeriMimes, coring.Serials.mgpk.lower()) == ending.KeriMimes.mgpk - assert getattr(ending.KeriMimes, coring.Serials.cbor.lower()) == ending.KeriMimes.cbor + assert getattr(ending.KeriMimes, coring.Kinds.json.lower()) == ending.KeriMimes.json + assert getattr(ending.KeriMimes, coring.Kinds.mgpk.lower()) == ending.KeriMimes.mgpk + assert getattr(ending.KeriMimes, coring.Kinds.cbor.lower()) == ending.KeriMimes.cbor """Done Test""" diff --git a/tests/peer/test_exchanging.py b/tests/peer/test_exchanging.py index 5e7e96949..54115ae60 100644 --- a/tests/peer/test_exchanging.py +++ b/tests/peer/test_exchanging.py @@ -7,11 +7,11 @@ from base64 import urlsafe_b64encode as encodeB64 from base64 import urlsafe_b64decode as decodeB64 +from keri import kering from keri import core from keri.core import coring, serdering, MtrDex, parsing from keri.app import habbing, forwarding, storing, signing -from keri.core.coring import CtrDex from keri.peer import exchanging from keri.vdr.eventing import incept @@ -68,11 +68,15 @@ def test_essrs(): essr, _ = exchanging.exchange(route='/essr/req', sender=hab.pre, diger=diger, modifiers=dict(src=hab.pre, dest=recHab.pre)) ims = hab.endorse(serder=essr, pipelined=False) - ims.extend(coring.Counter(code=CtrDex.ESSRPayloadGroup, count=1).qb64b) + ims.extend(core.Counter(core.Codens.ESSRPayloadGroup, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) ims.extend(texter.qb64b) exc = exchanging.Exchanger(hby=recHby, handlers=[]) - parsing.Parser().parse(ims=ims, kvy=recHby.kvy, exc=exc) + parsing.Parser().parse(ims=ims, + kvy=recHby.kvy, + exc=exc, + gvrsn=kering.Vrsn_1_0) # parser does not support version2 count codes # Pull the logged exn and verify the attributes digest matches the attachment serder = recHby.db.exns.get(keys=(essr.said,)) @@ -88,7 +92,8 @@ def test_essrs(): essr, _ = exchanging.exchange(route='/essr/req', sender=hab.pre, diger=diger, modifiers=dict(src=hab.pre, dest=recHab.pre)) ims = hab.endorse(serder=essr, pipelined=False) - ims.extend(coring.Counter(code=CtrDex.ESSRPayloadGroup, count=1).qb64b) + ims.extend(core.Counter(core.Codens.ESSRPayloadGroup, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) ims.extend(texter[0].qb64b) parsing.Parser().parse(ims=ims, kvy=recHby.kvy, exc=exc) diff --git a/tests/test_kering.py b/tests/test_kering.py index aeb86e717..a8f2941ff 100644 --- a/tests/test_kering.py +++ b/tests/test_kering.py @@ -14,7 +14,7 @@ from keri import kering from keri.kering import Protocolage, Protocols -from keri.kering import Serialage, Serials +from keri.kering import Kindage, Kinds from keri.kering import Ilkage, Ilks from keri.kering import ColdCodex, ColdDex, TraitCodex, TraitDex from keri.kering import (Versionage, Version, MAXVERFULLSPAN, @@ -251,7 +251,7 @@ def snatch(match, size=0): if gvrsn.major < 2: # version2 vs but major < 2 raise VersionError(f"Incompatible {gvrsn=} with CESR native version" f"field.") - kind = Serials.cesr + kind = Kinds.cesr size = size else: raise VersionError(f"Bad snatch.") @@ -456,22 +456,22 @@ def test_serials(): assert Version == Versionage(major=1, minor=0) - assert isinstance(Serials, Serialage) + assert isinstance(Kinds, Kindage) - assert Serials.json == 'JSON' - assert Serials.mgpk == 'MGPK' - assert Serials.cbor == 'CBOR' - assert Serials.cesr == 'CESR' + assert Kinds.json == 'JSON' + assert Kinds.mgpk == 'MGPK' + assert Kinds.cbor == 'CBOR' + assert Kinds.cesr == 'CESR' - assert 'JSON' in Serials - assert 'MGPK' in Serials - assert 'CBOR' in Serials - assert 'CESR' in Serials + assert 'JSON' in Kinds + assert 'MGPK' in Kinds + assert 'CBOR' in Kinds + assert 'CESR' in Kinds - Vstrings = Serialage(json=versify(kind=Serials.json, size=0), - mgpk=versify(kind=Serials.mgpk, size=0), - cbor=versify(kind=Serials.cbor, size=0), - cesr=versify(kind=Serials.cesr, size=0)) + Vstrings = Kindage(json=versify(kind=Kinds.json, size=0), + mgpk=versify(kind=Kinds.mgpk, size=0), + cbor=versify(kind=Kinds.cbor, size=0), + cesr=versify(kind=Kinds.cesr, size=0)) assert Vstrings.json == 'KERI10JSON000000_' @@ -589,61 +589,61 @@ def test_versify_v1(): assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == Version assert size == 0 - vs = versify(kind=Serials.json, size=65) + vs = versify(kind=Kinds.json, size=65) assert vs == "KERI10JSON000041_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == Version assert size == 65 - vs = versify(protocol=Protocols.acdc, kind=Serials.json, size=86) + vs = versify(protocol=Protocols.acdc, kind=Kinds.json, size=86) assert vs == "ACDC10JSON000056_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.acdc - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == Version assert size == 86 - vs = versify(kind=Serials.mgpk, size=0) + vs = versify(kind=Kinds.mgpk, size=0) assert vs == "KERI10MGPK000000_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.mgpk + assert kind == Kinds.mgpk assert vrsn == Version assert size == 0 - vs = versify(kind=Serials.mgpk, size=65) + vs = versify(kind=Kinds.mgpk, size=65) assert vs == "KERI10MGPK000041_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.mgpk + assert kind == Kinds.mgpk assert vrsn == Version assert size == 65 - vs = versify(kind=Serials.cbor, size=0) + vs = versify(kind=Kinds.cbor, size=0) assert vs == "KERI10CBOR000000_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.cbor + assert kind == Kinds.cbor assert vrsn == Version assert size == 0 - vs = versify(kind=Serials.cbor, size=65) + vs = versify(kind=Kinds.cbor, size=65) assert vs == "KERI10CBOR000041_" assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.cbor + assert kind == Kinds.cbor assert vrsn == Version assert size == 65 @@ -652,7 +652,7 @@ def test_versify_v1(): assert len(vs) == VER1FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == (1, 1) assert size == 0 @@ -685,61 +685,61 @@ def test_versify_v2(): assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == version assert size == 0 - vs = versify(version=version, kind=Serials.json, size=65) + vs = versify(version=version, kind=Kinds.json, size=65) assert vs == "KERICAAJSONAABB." assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == version assert size == 65 - vs = versify(protocol=Protocols.acdc, version=version, kind=Serials.json, size=86) + vs = versify(protocol=Protocols.acdc, version=version, kind=Kinds.json, size=86) assert vs == "ACDCCAAJSONAABW." assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.acdc - assert kind == Serials.json + assert kind == Kinds.json assert version == version assert size == 86 - vs = versify(version=version, kind=Serials.mgpk, size=0) + vs = versify(version=version, kind=Kinds.mgpk, size=0) assert vs == 'KERICAAMGPKAAAA.' assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.mgpk + assert kind == Kinds.mgpk assert vrsn == version assert size == 0 - vs = versify(version=version, kind=Serials.mgpk, size=65) + vs = versify(version=version, kind=Kinds.mgpk, size=65) assert vs == 'KERICAAMGPKAABB.' assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.mgpk + assert kind == Kinds.mgpk assert vrsn == version assert size == 65 - vs = versify(version=version, kind=Serials.cbor, size=0) + vs = versify(version=version, kind=Kinds.cbor, size=0) assert vs == 'KERICAACBORAAAA.' assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.cbor + assert kind == Kinds.cbor assert vrsn == version assert size == 0 - vs = versify(version=version, kind=Serials.cbor, size=65) + vs = versify(version=version, kind=Kinds.cbor, size=65) assert vs == 'KERICAACBORAABB.' assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.cbor + assert kind == Kinds.cbor assert vrsn == version assert size == 65 @@ -748,7 +748,7 @@ def test_versify_v2(): assert len(vs) == VER2FULLSPAN proto, vrsn, kind, size, opt = deversify(vs) assert proto == Protocols.keri - assert kind == Serials.json + assert kind == Kinds.json assert vrsn == (2, 1) assert size == 0 diff --git a/tests/vc/test_protocoling.py b/tests/vc/test_protocoling.py index f6dde10bd..69a5b4853 100644 --- a/tests/vc/test_protocoling.py +++ b/tests/vc/test_protocoling.py @@ -4,7 +4,7 @@ """ -from keri import core +from keri import core, kering from keri.core import coring, scheming, parsing from keri.core.eventing import SealEvent @@ -96,7 +96,7 @@ def test_ipex(seeder, mockCoringRandomNonce, mockHelpingNowIso8601, mockHelpingN b'I":"254900OPPU84GM83MG36"}}') atc = bytearray(msg) - atc.extend(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + atc.extend(core.Counter(core.Codens.SealSourceTriples, count=1, gvrsn=kering.Vrsn_1_0).qb64b) atc.extend(coring.Prefixer(qb64=iss.pre).qb64b) atc.extend(coring.Seqner(sn=0).qb64b) atc.extend(iss.saidb) diff --git a/tests/vc/test_proving.py b/tests/vc/test_proving.py index 9860ca072..798478be3 100644 --- a/tests/vc/test_proving.py +++ b/tests/vc/test_proving.py @@ -6,11 +6,12 @@ import pytest from keri import kering -from keri.kering import Versionage +from keri.kering import Versionage, Vrsn_1_0 from keri import core from keri.core import coring, scheming, parsing, serdering -from keri.core.coring import Serials, Counter, CtrDex, Prefixer, Seqner, Diger +from keri.core import counting, Counter, Codens +from keri.core.coring import Kinds, Prefixer, Seqner, Diger from keri.core.indexing import Siger from keri.core.scheming import CacheResolver @@ -74,15 +75,15 @@ def test_proving(mockHelpingNowIso8601): creder = serdering.SerderACDC(raw=msg) # Creder(raw=msg) proof = msg[creder.size:] - ctr = Counter(qb64b=proof, strip=True) - assert ctr.code == CtrDex.AttachmentGroup + ctr = Counter(qb64b=proof, strip=True, gvrsn=Vrsn_1_0) + assert ctr.code == counting.CtrDex_1_0.AttachmentGroup assert ctr.count == 52 pags = ctr.count * 4 assert len(proof) == pags - ctr = Counter(qb64b=proof, strip=True) - assert ctr.code == CtrDex.TransIdxSigGroups + ctr = Counter(qb64b=proof, strip=True, gvrsn=Vrsn_1_0) + assert ctr.code == counting.CtrDex_1_0.TransIdxSigGroups assert ctr.count == 1 prefixer = Prefixer(qb64b=proof, strip=True) @@ -94,8 +95,8 @@ def test_proving(mockHelpingNowIso8601): diger = Diger(qb64b=proof, strip=True) assert diger.qb64 == sidHab.kever.serder.said - ictr = Counter(qb64b=proof, strip=True) - assert ictr.code == CtrDex.ControllerIdxSigs + ictr = Counter(qb64b=proof, strip=True, gvrsn=Vrsn_1_0) + assert ictr.code == counting.CtrDex_1_0.ControllerIdxSigs isigers = [] for i in range(ictr.count): @@ -118,7 +119,7 @@ def test_credentialer(): sub = dict(a=123, b="abc", issuanceDate="2021-06-27T21:26:21.233257+00:00") d = dict( - v=coring.versify(protocol=coring.Protocols.acdc, kind=Serials.json, size=0), + v=coring.versify(protocol=coring.Protocols.acdc, kind=Kinds.json, size=0), d="", i="EF6maPM_d5ZN7U3NRFC1-6TM7k_E00_a8AG9YyLA4uWi", s="abc", @@ -130,7 +131,7 @@ def test_credentialer(): creder = serdering.SerderACDC(sad=d) # Creder(ked=d) assert creder.said == said - assert creder.kind == Serials.json + assert creder.kind == Kinds.json assert creder.issuer == "EF6maPM_d5ZN7U3NRFC1-6TM7k_E00_a8AG9YyLA4uWi" assert creder.schema == "abc" assert creder.attrib == sub @@ -146,19 +147,19 @@ def test_credentialer(): knd1 = creder.kind sad1 = creder.sad - assert knd1 == Serials.json + assert knd1 == Kinds.json assert sad1 == d assert ver1 == Versionage(major=1, minor=0) creder = serdering.SerderACDC(raw=raw1) # Creder(raw=raw1) - assert creder.kind == Serials.json + assert creder.kind == Kinds.json assert creder.issuer == "EF6maPM_d5ZN7U3NRFC1-6TM7k_E00_a8AG9YyLA4uWi" assert creder.sad == d assert creder.size == 211 d2 = dict(d) d2['d'] = "" - d2["v"] = coring.versify(protocol=coring.Protocols.acdc, kind=Serials.cbor, size=0) + d2["v"] = coring.versify(protocol=coring.Protocols.acdc, kind=Kinds.cbor, size=0) _, d2 = coring.Saider.saidify(sad=d2) creder = serdering.SerderACDC(sad=d2) # Creder(ked=d2) @@ -184,7 +185,7 @@ def test_credentialer(): assert creder.sad == d2 d3 = dict(d) - d3["v"] = coring.versify(protocol=coring.Protocols.acdc, kind=Serials.mgpk, size=0) + d3["v"] = coring.versify(protocol=coring.Protocols.acdc, kind=Kinds.mgpk, size=0) _, d3 = coring.Saider.saidify(sad=d3) creder = serdering.SerderACDC(sad=d3) # Creder(ked=d3) @@ -292,7 +293,7 @@ def test_credential_parsator(): status=issuer.regk) msg = bytearray(creder.raw) - msg.extend(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + msg.extend(Counter(Codens.SealSourceTriples, count=1, gvrsn=Vrsn_1_0).qb64b) msg.extend(hab.kever.prefixer.qb64b) msg.extend(coring.Seqner(sn=hab.kever.sn).qb64b) msg.extend(hab.kever.serder.said.encode("utf-8")) diff --git a/tests/vc/test_walleting.py b/tests/vc/test_walleting.py index 7049477fa..ddbbf4e35 100644 --- a/tests/vc/test_walleting.py +++ b/tests/vc/test_walleting.py @@ -3,7 +3,7 @@ tests.vc.walleting module """ -from keri import core +from keri import core, kering from keri.core import coring, parsing from keri.core.eventing import SealEvent @@ -56,7 +56,8 @@ def test_wallet(seeder, mockCoringRandomNonce, mockHelpingNowIso8601): sidReg.processEscrows() msg = bytearray(creder.raw) - msg.extend(coring.Counter(coring.CtrDex.SealSourceTriples, count=1).qb64b) + msg.extend(core.Counter(core.Codens.SealSourceTriples, count=1, + gvrsn=kering.Vrsn_1_0).qb64b) msg.extend(coring.Prefixer(qb64=iss.pre).qb64b) msg.extend(coring.Seqner(sn=0).qb64b) msg.extend(iss.saidb) diff --git a/tests/vdr/test_eventing.py b/tests/vdr/test_eventing.py index 124030cb3..6cfdf6196 100644 --- a/tests/vdr/test_eventing.py +++ b/tests/vdr/test_eventing.py @@ -9,7 +9,7 @@ from keri.core import Signer from keri.core import coring, serdering from keri.core import eventing as keventing -from keri.core.coring import versify, Serials, Ilks, MtrDex, Prefixer, Seqner, Saider +from keri.core.coring import versify, Kinds, Ilks, MtrDex, Prefixer, Seqner, Saider from keri.db import basing from keri.db.dbing import snKey, dgKey from keri.kering import Version, EmptyMaterialError, DerivationError, MissingAnchorError, ValidationError, \ @@ -323,7 +323,7 @@ def test_backer_issue_revoke(mockHelpingNowUTC): def test_prefixer(): pre = "DAtNTPnDFBnmlO6J44LXCrzZTAmpe-82b7BmQGtL4QhM" - vs = versify(version=Version, kind=Serials.json, size=0) + vs = versify(version=Version, kind=Kinds.json, size=0) with pytest.raises(EmptyMaterialError): prefixer = Prefixer() diff --git a/tests/vdr/test_viring.py b/tests/vdr/test_viring.py index dd84c1448..8ec90e476 100644 --- a/tests/vdr/test_viring.py +++ b/tests/vdr/test_viring.py @@ -9,7 +9,7 @@ import lmdb -from keri.core.coring import Diger, versify, Serials +from keri.core.coring import Diger, versify, Kinds from keri.db.dbing import openLMDB, dgKey, snKey from keri.vdr.viring import Reger @@ -77,7 +77,7 @@ def test_issuer(): # test with registry inception (vcp) event regk = regb sn = 0 - vs = versify(kind=Serials.json, size=20) + vs = versify(kind=Kinds.json, size=20) vcp = dict(v=vs, i=regk.decode("utf-8"), s="{:x}".format(sn), b=[rarb.decode("utf-8")], @@ -184,7 +184,7 @@ def test_issuer(): # test with verifiable credential issuance (iss) event vcdig = b'EAvR3p8V95W8J7Ui4-mEzZ79S-A1esAnJo1Kmzq80Jkc' sn = 0 - vs = versify(kind=Serials.json, size=20) + vs = versify(kind=Kinds.json, size=20) vcp = dict(v=vs, i=vcdig.decode("utf-8"), s="{:x}".format(sn), @@ -267,7 +267,7 @@ def test_clone(): # test with registry inception (vcp) event sn = 0 - vs = versify(kind=Serials.json, size=20) + vs = versify(kind=Kinds.json, size=20) vcp = dict(v=vs, i=regk.decode("utf-8"), s="{:x}".format(sn), b=[rarb.decode("utf-8")],