keri 1.2.0.dev3__tar.gz → 1.2.0.dev4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {keri-1.2.0.dev3/src/keri.egg-info → keri-1.2.0.dev4}/PKG-INFO +1 -1
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/setup.py +1 -1
- keri-1.2.0.dev4/src/keri/__init__.py +5 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/delegate/confirm.py +2 -2
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/eventing.py +118 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4/src/keri.egg-info}/PKG-INFO +1 -1
- keri-1.2.0.dev3/src/keri/__init__.py +0 -5
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/LICENSE +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/README.md +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/setup.cfg +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/agenting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/apping.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/challenging.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/challenge/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/challenge/generate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/challenge/respond.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/challenge/verify.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/clean.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/contacts/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/contacts/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/decrypt.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/delegate/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/delegate/request.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/did/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/did/generate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ends/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ends/add.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ends/export.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ends/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/escrow.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/export.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/incept.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/init.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/interact.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/admit.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/agree.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/apply.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/grant.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/join.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/offer.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ipex/spurn.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/kevers.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/local/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/local/watch.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/mailbox/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/mailbox/debug.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/mailbox/update.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/migrate/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/migrate/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/migrate/run.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/migrate/show.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/migrate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/continue.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/demo.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/incept.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/interact.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/join.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/notice.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/rotate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/shell.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/multisig/update.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/nonce.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/oobi/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/oobi/clean.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/oobi/generate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/oobi/resolve.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/passcode/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/passcode/generate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/passcode/remove.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/passcode/set.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/query.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/rename.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/rollback.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/rotate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/saidify.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/salt.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/sign.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ssh/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/ssh/export.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/status.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/time.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/create.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/export.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/registry/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/registry/incept.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/registry/list.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/registry/status.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/vc/revoke.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/verify.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/version.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/watcher/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/watcher/add.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/witness/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/witness/authenticate.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/witness/demo.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/witness/start.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/commands/witness/submit.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/config.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/displaying.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/existing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/incepting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/rotating.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/common/terming.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/cli/kli.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/configing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/connecting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/delegating.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/directing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/forwarding.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/grouping.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/habbing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/httping.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/indirecting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/keeping.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/notifying.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/oobiing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/querying.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/signaling.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/signing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/specing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/app/storing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/coring.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/counting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/indexing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/parsing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/routing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/scheming.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/serdering.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/signing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/streaming.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/core/structing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/basing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/dbing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/escrowing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/koming.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/migrations/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/migrations/rekey_habs.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/db/subing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/demo_bob.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/demo_eve.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/demo_kev.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/demo_sam.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/demo/demoing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/end/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/end/ending.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/end/priming.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/help/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/help/helping.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/kering.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/peer/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/peer/exchanging.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vc/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vc/protocoling.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vc/proving.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vc/walleting.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vdr/__init__.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vdr/credentialing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vdr/eventing.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vdr/verifying.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri/vdr/viring.py +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/SOURCES.txt +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/dependency_links.txt +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/entry_points.txt +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/not-zip-safe +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/requires.txt +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/src/keri.egg-info/top_level.txt +0 -0
- {keri-1.2.0.dev3 → keri-1.2.0.dev4}/tests/test_kering.py +0 -0
|
@@ -37,7 +37,7 @@ from os.path import splitext
|
|
|
37
37
|
from setuptools import find_packages, setup
|
|
38
38
|
setup(
|
|
39
39
|
name='keri',
|
|
40
|
-
version='1.2.0-
|
|
40
|
+
version='1.2.0-dev4', # also change in src/keri/__init__.py
|
|
41
41
|
license='Apache Software License 2.0',
|
|
42
42
|
description='Key Event Receipt Infrastructure',
|
|
43
43
|
long_description="KERI Decentralized Key Management Infrastructure",
|
|
@@ -130,7 +130,7 @@ class ConfirmDoer(doing.DoDoer):
|
|
|
130
130
|
|
|
131
131
|
if isinstance(hab, GroupHab):
|
|
132
132
|
aids = hab.smids
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
anchor = dict(i=eserder.ked["i"], s=eserder.snh, d=eserder.said)
|
|
135
135
|
if self.interact:
|
|
136
136
|
msg = hab.interact(data=[anchor])
|
|
@@ -166,7 +166,7 @@ class ConfirmDoer(doing.DoDoer):
|
|
|
166
166
|
|
|
167
167
|
else:
|
|
168
168
|
cur = hab.kever.sner.num
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
anchor = dict(i=eserder.ked["i"], s=eserder.snh, d=eserder.said)
|
|
171
171
|
if self.interact:
|
|
172
172
|
hab.interact(data=[anchor])
|
|
@@ -5714,6 +5714,124 @@ class Kevery:
|
|
|
5714
5714
|
break
|
|
5715
5715
|
key = ekey # setup next while iteration, with key after ekey
|
|
5716
5716
|
|
|
5717
|
+
def processEscrowDelegables(self):
|
|
5718
|
+
"""
|
|
5719
|
+
Process events escrowed by Kever that require delegation.
|
|
5720
|
+
|
|
5721
|
+
Escrowed items are indexed in database table keyed by prefix and
|
|
5722
|
+
sn with duplicates given by different dig inserted in insertion order.
|
|
5723
|
+
This allows FIFO processing of events with same prefix and sn but different
|
|
5724
|
+
digest.
|
|
5725
|
+
|
|
5726
|
+
Uses .db.delegables.add(key, val) which is IOVal with dups.
|
|
5727
|
+
|
|
5728
|
+
Value is dgkey for event stored in .Evt where .Evt has serder.raw of event.
|
|
5729
|
+
|
|
5730
|
+
Steps:
|
|
5731
|
+
Each pass (walk index table)
|
|
5732
|
+
For each prefix,sn
|
|
5733
|
+
For each escrow item dup at prefix,sn:
|
|
5734
|
+
Get Event
|
|
5735
|
+
Get and Attach Signatures
|
|
5736
|
+
Process event as if it came in over the wire
|
|
5737
|
+
If successful then remove from escrow table
|
|
5738
|
+
"""
|
|
5739
|
+
|
|
5740
|
+
for (pre, sn), dig in self.db.delegables.getItemIter():
|
|
5741
|
+
try:
|
|
5742
|
+
edig = dig.encode("utf-8")
|
|
5743
|
+
dgkey = dgKey(pre.encode("utf-8"), edig)
|
|
5744
|
+
if not (esr := self.db.esrs.get(keys=dgkey)): # get event source, otherwise error
|
|
5745
|
+
# no local sourde so raise ValidationError which unescrows below
|
|
5746
|
+
raise ValidationError("Missing escrowed event source "
|
|
5747
|
+
"at dig = {}.".format(bytes(edig)))
|
|
5748
|
+
|
|
5749
|
+
# check date if expired then remove escrow.
|
|
5750
|
+
dtb = self.db.getDts(dgkey)
|
|
5751
|
+
if dtb is None: # othewise is a datetime as bytes
|
|
5752
|
+
# no date time so raise ValidationError which unescrows below
|
|
5753
|
+
logger.info("Kevery unescrow error: Missing event datetime"
|
|
5754
|
+
" at dig = %s", bytes(edig))
|
|
5755
|
+
|
|
5756
|
+
raise ValidationError("Missing escrowed event datetime "
|
|
5757
|
+
"at dig = {}.".format(bytes(edig)))
|
|
5758
|
+
|
|
5759
|
+
# do date math here and discard if stale nowIso8601() bytes
|
|
5760
|
+
dtnow = helping.nowUTC()
|
|
5761
|
+
dte = helping.fromIso8601(bytes(dtb))
|
|
5762
|
+
if (dtnow - dte) > datetime.timedelta(seconds=self.TimeoutOOE):
|
|
5763
|
+
# escrow stale so raise ValidationError which unescrows below
|
|
5764
|
+
logger.info("Kevery unescrow error: Stale event escrow "
|
|
5765
|
+
" at dig = %s", bytes(edig))
|
|
5766
|
+
|
|
5767
|
+
raise ValidationError("Stale event escrow "
|
|
5768
|
+
"at dig = {}.".format(bytes(edig)))
|
|
5769
|
+
|
|
5770
|
+
# get the escrowed event using edig
|
|
5771
|
+
eraw = self.db.getEvt(dgKey(pre, bytes(edig)))
|
|
5772
|
+
if eraw is None:
|
|
5773
|
+
# no event so raise ValidationError which unescrows below
|
|
5774
|
+
logger.info("Kevery unescrow error: Missing event at."
|
|
5775
|
+
"dig = %s", bytes(edig))
|
|
5776
|
+
|
|
5777
|
+
raise ValidationError("Missing escrowed evt at dig = {}."
|
|
5778
|
+
"".format(bytes(edig)))
|
|
5779
|
+
|
|
5780
|
+
eserder = serdering.SerderKERI(raw=bytes(eraw)) # escrowed event
|
|
5781
|
+
|
|
5782
|
+
# get sigs and attach
|
|
5783
|
+
sigs = self.db.getSigs(dgKey(pre, bytes(edig)))
|
|
5784
|
+
if not sigs: # otherwise its a list of sigs
|
|
5785
|
+
# no sigs so raise ValidationError which unescrows below
|
|
5786
|
+
logger.info("Kevery unescrow error: Missing event sigs at."
|
|
5787
|
+
"dig = %s", bytes(edig))
|
|
5788
|
+
|
|
5789
|
+
raise ValidationError("Missing escrowed evt sigs at "
|
|
5790
|
+
"dig = {}.".format(bytes(edig)))
|
|
5791
|
+
|
|
5792
|
+
sigers = [Siger(qb64b=bytes(sig)) for sig in sigs]
|
|
5793
|
+
|
|
5794
|
+
# get wigs
|
|
5795
|
+
wigs = self.db.getWigs(dgKey(pre, bytes(edig))) # list of wigs
|
|
5796
|
+
wigers = [Siger(qb64b=bytes(wig)) for wig in wigs]
|
|
5797
|
+
|
|
5798
|
+
# get delgate seal
|
|
5799
|
+
couple = self.db.getAes(dgkey)
|
|
5800
|
+
if couple is not None: # Only try to parse the event if we have the del seal
|
|
5801
|
+
raw = bytearray(couple)
|
|
5802
|
+
seqner = coring.Seqner(qb64b=raw, strip=True)
|
|
5803
|
+
saider = coring.Saider(qb64b=raw)
|
|
5804
|
+
|
|
5805
|
+
# process event
|
|
5806
|
+
self.processEvent(serder=eserder, sigers=sigers, wigers=wigers, delseqner=seqner,
|
|
5807
|
+
delsaider=saider, local=esr.local)
|
|
5808
|
+
else:
|
|
5809
|
+
raise MissingDelegableApprovalError()
|
|
5810
|
+
|
|
5811
|
+
except MissingDelegableApprovalError as ex:
|
|
5812
|
+
# still waiting on missing delegation approval
|
|
5813
|
+
if logger.isEnabledFor(logging.DEBUG):
|
|
5814
|
+
logger.exception("Kevery unescrow failed: %s", ex.args[0])
|
|
5815
|
+
else:
|
|
5816
|
+
logger.error("Kevery unescrow failed: %s", ex.args[0])
|
|
5817
|
+
|
|
5818
|
+
except Exception as ex: # log diagnostics errors etc
|
|
5819
|
+
# error other than out of order so remove from OO escrow
|
|
5820
|
+
self.db.delegables.rem(keys=(pre, sn,), val=edig) # removes one escrow at key val
|
|
5821
|
+
if logger.isEnabledFor(logging.DEBUG):
|
|
5822
|
+
logger.exception("Kevery unescrowed: %s", ex.args[0])
|
|
5823
|
+
else:
|
|
5824
|
+
logger.error("Kevery unescrowed: %s", ex.args[0])
|
|
5825
|
+
|
|
5826
|
+
else: # unescrow succeeded, remove from escrow
|
|
5827
|
+
# We don't remove all escrows at pre,sn because some might be
|
|
5828
|
+
# duplicitous so we process remaining escrows in spite of found
|
|
5829
|
+
# valid event escrow.
|
|
5830
|
+
self.db.delegables.rem(keys=(pre, sn,), val=edig) # removes one escrow at key val
|
|
5831
|
+
logger.info("Kevery unescrow succeeded in valid event: "
|
|
5832
|
+
"event=%s", eserder.said)
|
|
5833
|
+
logger.debug(f"event=\n{eserder.pretty()}\n")
|
|
5834
|
+
|
|
5717
5835
|
def processQueryNotFound(self):
|
|
5718
5836
|
"""
|
|
5719
5837
|
Process qry events escrowed by Kevery for KELs that have not yet met the criteria of the query.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|