diff --git a/src/keri/core/serdering.py b/src/keri/core/serdering.py index f010cbca1..5b211b404 100644 --- a/src/keri/core/serdering.py +++ b/src/keri/core/serdering.py @@ -27,18 +27,22 @@ MAXVERFULLSPAN, VER1FULLSPAN, VER2FULLSPAN) from ..kering import SMELLSIZE, Smellage, smell -from ..kering import Protocols, Serials, Rever, versify, deversify, Ilks -from ..core import coring +from ..kering import Protocols, Serials, versify, deversify, Ilks + +from .. import help +from ..help import helping + + +from . import coring from .coring import MtrDex, DigDex, PreDex, Saids, Digestage from .coring import (Matter, Saider, Verfer, Diger, Number, Tholder, Tagger, Ilker, Traitor, Verser, ) -from ..core import counting -from ..core.counting import GenDex, AllTags, Counter +from .counting import GenDex, AllTags, Counter + +from .structing import Sealer + -from .. import help -from ..help import helping -from ..help.helping import nonStringSequence logger = help.ogler.getLogger() @@ -1280,6 +1284,13 @@ def _dumps(self, sad): case "a": # list of seals or field map of attributes frame = bytearray() for e in v: # list of seal dicts + try: + sealer = Sealer(crew=e) + frame.extend(sealer.qb64b) + except kering.InvalidValueError: + pass + #unknown seal type so serialize as field map + pass #if tuple(v) == eventing.SealEvent._fields: #eseal = eventing.SealEvent(**v) # convert to namedtuple diff --git a/tests/core/test_serdering.py b/tests/core/test_serdering.py index 2d9bb346f..31583a84f 100644 --- a/tests/core/test_serdering.py +++ b/tests/core/test_serdering.py @@ -2649,6 +2649,7 @@ def test_cesr_native_dumps(): raw = b'\x05\xaa\x8f-S\x9a\xe9\xfaU\x9c\x02\x9c\x9b\x08Hu' salter = core.Salter(raw=raw) + # replace with Salter.signers() csigners = core.generateSigners(raw=salter.raw, count=3) wsigners = core.generateSigners(raw=salter.raw, count=3, transferable=False)