keri-ts 2.2.3 → 2.2.5
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.
- package/esm/keri/npm/src/_dnt.polyfills.js +14 -14
- package/esm/keri/npm/src/acdc/registering.js +19 -0
- package/esm/keri/npm/src/acdc/salting.js +4 -0
- package/esm/keri/npm/src/app/bootstrap/authenticating.js +34 -12
- package/esm/keri/npm/src/app/bootstrap/oobiery.js +365 -32
- package/esm/keri/npm/src/app/credentials/credential-importing.js +33 -4
- package/esm/keri/npm/src/app/credentials/root-replicator.js +27 -15
- package/esm/keri/npm/src/app/credentials/schema-resolving.js +5 -1
- package/esm/keri/npm/src/app/credentials/tel-publishing.js +16 -7
- package/esm/keri/npm/src/app/delivery/forwarding.js +188 -47
- package/esm/keri/npm/src/app/delivery/relaying.js +232 -0
- package/esm/keri/npm/src/app/delivery/respondant.js +8 -5
- package/esm/keri/npm/src/app/exchanges/exchange-messaging.js +1 -1
- package/esm/keri/npm/src/app/exchanges/exchanging.js +65 -9
- package/esm/keri/npm/src/app/identity/delegating.js +66 -9
- package/esm/keri/npm/src/app/identity/habbing.js +190 -71
- package/esm/keri/npm/src/app/identity/keeping.js +111 -39
- package/esm/keri/npm/src/app/identity/retire-identifier.js +98 -0
- package/esm/keri/npm/src/app/ipex/disclosure-replaying.js +116 -0
- package/esm/keri/npm/src/app/ipex/group-ipex.js +122 -25
- package/esm/keri/npm/src/app/ipex/group-issuance.js +109 -23
- package/esm/keri/npm/src/app/ipex/ipex-discloser.js +36 -22
- package/esm/keri/npm/src/app/ipex/ipex-grouping.js +53 -3
- package/esm/keri/npm/src/app/ipex/ipex-v2.js +7 -2
- package/esm/keri/npm/src/app/ipex/issuance.js +131 -35
- package/esm/keri/npm/src/app/ipex/pending-presentations.js +4 -2
- package/esm/keri/npm/src/app/ipex/presenting.js +3 -18
- package/esm/keri/npm/src/app/ipex/receive-issuance.js +2 -1
- package/esm/keri/npm/src/app/ipex/unblinding-workflow.js +16 -3
- package/esm/keri/npm/src/app/mailbox/agent-inbox.js +292 -0
- package/esm/keri/npm/src/app/mailbox/forward-handler.js +298 -52
- package/esm/keri/npm/src/app/mailbox/kel-publisher.js +26 -31
- package/esm/keri/npm/src/app/mailbox/mailbox-poller.js +70 -62
- package/esm/keri/npm/src/app/mailbox/mailboxing.js +20 -4
- package/esm/keri/npm/src/app/multisig/counseling.js +75 -27
- package/esm/keri/npm/src/app/multisig/group-members.js +41 -5
- package/esm/keri/npm/src/app/multisig/grouping.js +50 -2
- package/esm/keri/npm/src/app/multisig/multisig-workflows.js +3 -18
- package/esm/keri/npm/src/app/multisig/proposing.js +1 -16
- package/esm/keri/npm/src/app/multisig/rejoin-group.js +99 -0
- package/esm/keri/npm/src/app/multisig/replace-member.js +29 -8
- package/esm/keri/npm/src/app/protocol/parsering.js +45 -17
- package/esm/keri/npm/src/app/protocol/protocol-processing.js +62 -27
- package/esm/keri/npm/src/app/queries/query-replies.js +0 -22
- package/esm/keri/npm/src/app/queries/relay-refresh.js +81 -0
- package/esm/keri/npm/src/app/queries/witness-inquisitor.js +190 -40
- package/esm/keri/npm/src/app/runtime/agent-runtime.js +46 -73
- package/esm/keri/npm/src/app/runtime/cue-runtime.js +45 -5
- package/esm/keri/npm/src/app/runtime/doing.js +25 -0
- package/esm/keri/npm/src/app/runtime/operation-owners.js +26 -56
- package/esm/keri/npm/src/app/runtime/workflow-contract.js +7 -4
- package/esm/keri/npm/src/app/transport/http-client.js +20 -2
- package/esm/keri/npm/src/app/transport/message-source.js +2 -1
- package/esm/keri/npm/src/app/transport/messengering.js +39 -8
- package/esm/keri/npm/src/app/witness/ingress.js +7 -0
- package/esm/keri/npm/src/app/witness/receipt-client.js +43 -16
- package/esm/keri/npm/src/app/witness/receipting.js +62 -20
- package/esm/keri/npm/src/cli/messaging/multisig.js +4 -3
- package/esm/keri/npm/src/core/errors.js +73 -0
- package/esm/keri/npm/src/core/kel/delegation-ancestry.js +11 -2
- package/esm/keri/npm/src/core/kel/eventing.js +25 -28
- package/esm/keri/npm/src/core/kel/kever.js +15 -9
- package/esm/keri/npm/src/core/mailbox/kram-policy.js +8 -0
- package/esm/keri/npm/src/core/mailbox/kram-pruning.js +25 -6
- package/esm/keri/npm/src/core/mailbox/kram-time.js +34 -6
- package/esm/keri/npm/src/core/mailbox/kraming.js +58 -2
- package/esm/keri/npm/src/core/routing.js +18 -25
- package/esm/keri/npm/src/core/scheming.js +12 -5
- package/esm/keri/npm/src/core/wire-fields.js +126 -0
- package/esm/keri/npm/src/db/basing.js +4 -13
- package/esm/keri/npm/src/db/core/indexeddb-persistence.js +3 -2
- package/esm/keri/npm/src/db/core/lmdber.js +25 -6
- package/esm/keri/npm/src/db/core/memstore.js +4 -0
- package/esm/keri/npm/src/db/core/store-owner.js +4 -0
- package/esm/keri/npm/src/db/core/webdber.js +85 -27
- package/esm/keri/npm/src/db/mailbox/mailboxing.js +13 -0
- package/esm/keri/npm/src/db/subing.js +4 -0
- package/esm/keri/npm/src/runtime/index.js +11 -5
- package/esm/keri/npm/src/time/mod.js +5 -0
- package/esm/keri/npm/src/vdr/credential-tsn-record.js +2 -7
- package/esm/keri/npm/src/vdr/eventing.js +28 -19
- package/esm/keri/npm/src/vdr/registry-tsn-record.js +3 -13
- package/esm/keri/npm/src/version.js +2 -2
- package/package.json +1 -1
- package/types/_dnt.polyfills.d.ts +9 -9
- package/types/_dnt.polyfills.d.ts.map +1 -1
- package/types/acdc/registering.d.ts +6 -0
- package/types/acdc/registering.d.ts.map +1 -1
- package/types/acdc/salting.d.ts.map +1 -1
- package/types/app/bootstrap/authenticating.d.ts +12 -2
- package/types/app/bootstrap/authenticating.d.ts.map +1 -1
- package/types/app/bootstrap/oobiery.d.ts +144 -7
- package/types/app/bootstrap/oobiery.d.ts.map +1 -1
- package/types/app/credentials/credential-importing.d.ts +8 -0
- package/types/app/credentials/credential-importing.d.ts.map +1 -1
- package/types/app/credentials/root-replicator.d.ts +19 -8
- package/types/app/credentials/root-replicator.d.ts.map +1 -1
- package/types/app/credentials/schema-resolving.d.ts.map +1 -1
- package/types/app/credentials/tel-publishing.d.ts +4 -2
- package/types/app/credentials/tel-publishing.d.ts.map +1 -1
- package/types/app/delivery/forwarding.d.ts +75 -7
- package/types/app/delivery/forwarding.d.ts.map +1 -1
- package/types/app/delivery/relaying.d.ts +144 -0
- package/types/app/delivery/relaying.d.ts.map +1 -0
- package/types/app/delivery/respondant.d.ts +9 -2
- package/types/app/delivery/respondant.d.ts.map +1 -1
- package/types/app/exchanges/exchanging.d.ts +36 -0
- package/types/app/exchanges/exchanging.d.ts.map +1 -1
- package/types/app/identity/delegating.d.ts +6 -0
- package/types/app/identity/delegating.d.ts.map +1 -1
- package/types/app/identity/habbing.d.ts +106 -19
- package/types/app/identity/habbing.d.ts.map +1 -1
- package/types/app/identity/keeping.d.ts +54 -19
- package/types/app/identity/keeping.d.ts.map +1 -1
- package/types/app/identity/retire-identifier.d.ts +24 -0
- package/types/app/identity/retire-identifier.d.ts.map +1 -0
- package/types/app/ipex/disclosure-replaying.d.ts +61 -0
- package/types/app/ipex/disclosure-replaying.d.ts.map +1 -0
- package/types/app/ipex/group-ipex.d.ts +60 -14
- package/types/app/ipex/group-ipex.d.ts.map +1 -1
- package/types/app/ipex/group-issuance.d.ts +48 -6
- package/types/app/ipex/group-issuance.d.ts.map +1 -1
- package/types/app/ipex/ipex-discloser.d.ts +14 -2
- package/types/app/ipex/ipex-discloser.d.ts.map +1 -1
- package/types/app/ipex/ipex-grouping.d.ts +23 -2
- package/types/app/ipex/ipex-grouping.d.ts.map +1 -1
- package/types/app/ipex/ipex-v2.d.ts +5 -2
- package/types/app/ipex/ipex-v2.d.ts.map +1 -1
- package/types/app/ipex/issuance.d.ts +35 -11
- package/types/app/ipex/issuance.d.ts.map +1 -1
- package/types/app/ipex/pending-presentations.d.ts +4 -2
- package/types/app/ipex/pending-presentations.d.ts.map +1 -1
- package/types/app/ipex/presenting.d.ts.map +1 -1
- package/types/app/ipex/receive-issuance.d.ts +2 -1
- package/types/app/ipex/receive-issuance.d.ts.map +1 -1
- package/types/app/ipex/unblinding-workflow.d.ts +4 -1
- package/types/app/ipex/unblinding-workflow.d.ts.map +1 -1
- package/types/app/mailbox/agent-inbox.d.ts +126 -0
- package/types/app/mailbox/agent-inbox.d.ts.map +1 -0
- package/types/app/mailbox/forward-handler.d.ts +114 -14
- package/types/app/mailbox/forward-handler.d.ts.map +1 -1
- package/types/app/mailbox/kel-publisher.d.ts +12 -22
- package/types/app/mailbox/kel-publisher.d.ts.map +1 -1
- package/types/app/mailbox/mailbox-poller.d.ts +40 -24
- package/types/app/mailbox/mailbox-poller.d.ts.map +1 -1
- package/types/app/mailbox/mailboxing.d.ts +19 -5
- package/types/app/mailbox/mailboxing.d.ts.map +1 -1
- package/types/app/multisig/counseling.d.ts +34 -11
- package/types/app/multisig/counseling.d.ts.map +1 -1
- package/types/app/multisig/group-members.d.ts +17 -1
- package/types/app/multisig/group-members.d.ts.map +1 -1
- package/types/app/multisig/grouping.d.ts +17 -1
- package/types/app/multisig/grouping.d.ts.map +1 -1
- package/types/app/multisig/multisig-workflows.d.ts +0 -8
- package/types/app/multisig/multisig-workflows.d.ts.map +1 -1
- package/types/app/multisig/proposing.d.ts +4 -19
- package/types/app/multisig/proposing.d.ts.map +1 -1
- package/types/app/multisig/rejoin-group.d.ts +119 -0
- package/types/app/multisig/rejoin-group.d.ts.map +1 -0
- package/types/app/multisig/replace-member.d.ts +15 -1
- package/types/app/multisig/replace-member.d.ts.map +1 -1
- package/types/app/protocol/parsering.d.ts +21 -2
- package/types/app/protocol/parsering.d.ts.map +1 -1
- package/types/app/protocol/protocol-processing.d.ts +31 -6
- package/types/app/protocol/protocol-processing.d.ts.map +1 -1
- package/types/app/queries/query-replies.d.ts +4 -8
- package/types/app/queries/query-replies.d.ts.map +1 -1
- package/types/app/queries/relay-refresh.d.ts +26 -0
- package/types/app/queries/relay-refresh.d.ts.map +1 -0
- package/types/app/queries/witness-inquisitor.d.ts +57 -6
- package/types/app/queries/witness-inquisitor.d.ts.map +1 -1
- package/types/app/runtime/agent-runtime.d.ts +34 -3
- package/types/app/runtime/agent-runtime.d.ts.map +1 -1
- package/types/app/runtime/cue-runtime.d.ts +15 -3
- package/types/app/runtime/cue-runtime.d.ts.map +1 -1
- package/types/app/runtime/doing.d.ts +17 -0
- package/types/app/runtime/doing.d.ts.map +1 -1
- package/types/app/runtime/operation-owners.d.ts +16 -26
- package/types/app/runtime/operation-owners.d.ts.map +1 -1
- package/types/app/runtime/workflow-contract.d.ts +21 -6
- package/types/app/runtime/workflow-contract.d.ts.map +1 -1
- package/types/app/transport/http-client.d.ts +9 -0
- package/types/app/transport/http-client.d.ts.map +1 -1
- package/types/app/transport/message-source.d.ts +6 -3
- package/types/app/transport/message-source.d.ts.map +1 -1
- package/types/app/transport/messengering.d.ts +10 -1
- package/types/app/transport/messengering.d.ts.map +1 -1
- package/types/app/witness/ingress.d.ts +1 -0
- package/types/app/witness/ingress.d.ts.map +1 -1
- package/types/app/witness/receipt-client.d.ts +19 -1
- package/types/app/witness/receipt-client.d.ts.map +1 -1
- package/types/app/witness/receipting.d.ts +24 -1
- package/types/app/witness/receipting.d.ts.map +1 -1
- package/types/cli/messaging/multisig.d.ts.map +1 -1
- package/types/core/cues.d.ts +53 -1
- package/types/core/cues.d.ts.map +1 -1
- package/types/core/errors.d.ts +32 -0
- package/types/core/errors.d.ts.map +1 -1
- package/types/core/kel/delegation-ancestry.d.ts.map +1 -1
- package/types/core/kel/eventing.d.ts.map +1 -1
- package/types/core/kel/kever-decisions.d.ts +3 -1
- package/types/core/kel/kever-decisions.d.ts.map +1 -1
- package/types/core/kel/kever.d.ts +7 -1
- package/types/core/kel/kever.d.ts.map +1 -1
- package/types/core/mailbox/kram-policy.d.ts +6 -0
- package/types/core/mailbox/kram-policy.d.ts.map +1 -1
- package/types/core/mailbox/kram-pruning.d.ts +5 -1
- package/types/core/mailbox/kram-pruning.d.ts.map +1 -1
- package/types/core/mailbox/kram-time.d.ts +26 -2
- package/types/core/mailbox/kram-time.d.ts.map +1 -1
- package/types/core/mailbox/kraming.d.ts +14 -1
- package/types/core/mailbox/kraming.d.ts.map +1 -1
- package/types/core/routing.d.ts +3 -7
- package/types/core/routing.d.ts.map +1 -1
- package/types/core/scheming.d.ts.map +1 -1
- package/types/core/wire-fields.d.ts +56 -0
- package/types/core/wire-fields.d.ts.map +1 -0
- package/types/db/basing.d.ts.map +1 -1
- package/types/db/core/dber.d.ts +5 -0
- package/types/db/core/dber.d.ts.map +1 -1
- package/types/db/core/indexeddb-persistence.d.ts +3 -2
- package/types/db/core/indexeddb-persistence.d.ts.map +1 -1
- package/types/db/core/lmdber.d.ts +6 -0
- package/types/db/core/lmdber.d.ts.map +1 -1
- package/types/db/core/memstore.d.ts +2 -0
- package/types/db/core/memstore.d.ts.map +1 -1
- package/types/db/core/store-owner.d.ts +2 -0
- package/types/db/core/store-owner.d.ts.map +1 -1
- package/types/db/core/webdber.d.ts +32 -6
- package/types/db/core/webdber.d.ts.map +1 -1
- package/types/db/exchange/exchange-records.d.ts +4 -0
- package/types/db/exchange/exchange-records.d.ts.map +1 -1
- package/types/db/mailbox/mailboxing.d.ts +10 -1
- package/types/db/mailbox/mailboxing.d.ts.map +1 -1
- package/types/db/subing.d.ts +2 -0
- package/types/db/subing.d.ts.map +1 -1
- package/types/runtime/index.d.ts +20 -14
- package/types/runtime/index.d.ts.map +1 -1
- package/types/time/mod.d.ts +2 -0
- package/types/time/mod.d.ts.map +1 -1
- package/types/vdr/credential-tsn-record.d.ts.map +1 -1
- package/types/vdr/eventing.d.ts.map +1 -1
- package/types/vdr/registry-tsn-record.d.ts.map +1 -1
- package/types/version.d.ts +2 -2
- package/esm/keri/npm/src/app/runtime/signer-conditions.js +0 -51
- package/types/app/runtime/signer-conditions.d.ts +0 -32
- package/types/app/runtime/signer-conditions.d.ts.map +0 -1
|
@@ -201,10 +201,17 @@ export declare class Creatory {
|
|
|
201
201
|
tier?: Tier;
|
|
202
202
|
}): Creator;
|
|
203
203
|
}
|
|
204
|
+
/** What `Manager.forget` removed for one retired prefix. */
|
|
205
|
+
export interface ForgottenKeys {
|
|
206
|
+
/** Private keys deleted from the Keeper's `pris.`; 0 for a keyless habitat. */
|
|
207
|
+
deleted: number;
|
|
208
|
+
/** Current public keys whose held signers were dropped; empty for keys the Keeper stored. */
|
|
209
|
+
released: string[];
|
|
210
|
+
}
|
|
204
211
|
/**
|
|
205
|
-
* No private key for `pub`: neither held (`Manager.hold`) nor stored in the Keeper. A
|
|
206
|
-
*
|
|
207
|
-
*
|
|
212
|
+
* No private key for `pub`: neither held (`Manager.hold`) nor stored in the Keeper. A background loop reads
|
|
213
|
+
* `Hab.canSign()` before it signs and skips a habitat that cannot, so this error escaping a loop is a real fault.
|
|
214
|
+
* The message is the one the Keeper has always used.
|
|
208
215
|
*/
|
|
209
216
|
export declare class SignerNotHeldError extends Error {
|
|
210
217
|
/** The qualified public key whose private key is missing. */
|
|
@@ -243,8 +250,6 @@ export declare class Manager {
|
|
|
243
250
|
* Never written to the Keeper and never consulted by `Keeper` rows.
|
|
244
251
|
*/
|
|
245
252
|
private readonly held;
|
|
246
|
-
/** Told after `hold()` borrows signers; a loop that waited for a missing signer resumes on it. */
|
|
247
|
-
private readonly holdListeners;
|
|
248
253
|
constructor(args: ManagerArgs);
|
|
249
254
|
get ks(): Keeper;
|
|
250
255
|
/** Process-local AEID/authentication seed kept only in memory, never persisted in keeper state. */
|
|
@@ -318,7 +323,7 @@ export declare class Manager {
|
|
|
318
323
|
* readonly and borrowed-writer changes are refused
|
|
319
324
|
*/
|
|
320
325
|
updateAeid(aeid: string, seed: string): void;
|
|
321
|
-
/** Require full canonical keys; local ownership is the calling operation's responsibility. */
|
|
326
|
+
/** Require full canonical keys for a write; local ownership is the calling operation's responsibility. */
|
|
322
327
|
private registryRootKeys;
|
|
323
328
|
/** Authenticate live policy as well as process-local crypto, refusing stale managers. */
|
|
324
329
|
private registryRootCrypto;
|
|
@@ -332,7 +337,10 @@ export declare class Manager {
|
|
|
332
337
|
* for its registry) may set it.
|
|
333
338
|
*/
|
|
334
339
|
putRegistryRoot(aid: string, regid: string, root: Salter, overwrite?: boolean): boolean;
|
|
335
|
-
/**
|
|
340
|
+
/**
|
|
341
|
+
* Whether a root is retained for `aid` and `regid`; reads no ciphertext and needs no unlocked Keeper. False for
|
|
342
|
+
* a key that is not canonical, since no root is stored under one (see `canonicalRegistryRootKeys`).
|
|
343
|
+
*/
|
|
336
344
|
hasRegistryRoot(aid: string, regid: string): boolean;
|
|
337
345
|
private signerDecrypter;
|
|
338
346
|
/**
|
|
@@ -353,7 +361,8 @@ export declare class Manager {
|
|
|
353
361
|
* and hold that encoding. A request for the other encoding does not match.
|
|
354
362
|
* - The host owns each `Signer` and its seed bytes, including zeroing them.
|
|
355
363
|
* This keeps the reference only; it never copies seed bytes and never
|
|
356
|
-
* erases them.
|
|
364
|
+
* erases them. Retiring the habitat (`forget()`) drops the reference but
|
|
365
|
+
* does not zero memory.
|
|
357
366
|
* - Holding a pub that is already held replaces the earlier signer. A held
|
|
358
367
|
* signer shadows a stored key with the same public key.
|
|
359
368
|
* - The `pre/path` branch of `sign()` re-derives salty keys from the stored
|
|
@@ -363,19 +372,13 @@ export declare class Manager {
|
|
|
363
372
|
*/
|
|
364
373
|
hold(signers: readonly Signer[]): void;
|
|
365
374
|
/**
|
|
366
|
-
*
|
|
375
|
+
* Whether this Manager can sign with `pub` now: a signer is held for it, or the Keeper stores its private key.
|
|
376
|
+
* A pure read; it neither decrypts nor signs.
|
|
367
377
|
*
|
|
368
|
-
*
|
|
378
|
+
* A store may be opened without a habitat's signer (a keyless habitat before its host calls `hold()`), so this
|
|
379
|
+
* is ordinary state: background loops read it before they sign and skip what cannot be signed yet.
|
|
369
380
|
*/
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* Drop held signer references: all of them, or only those for `pubs`.
|
|
373
|
-
*
|
|
374
|
-
* Unheld pubs are ignored. Afterwards a request for a released key resolves
|
|
375
|
-
* from stored keys only and fails as any missing key does. This drops
|
|
376
|
-
* references; zeroing a signer's seed stays the host's job.
|
|
377
|
-
*/
|
|
378
|
-
release(pubs?: readonly string[]): void;
|
|
381
|
+
hasSigner(pub: string): boolean;
|
|
379
382
|
/** Resolve one signer by qualified public key: held first, then the Keeper's `pris.`. */
|
|
380
383
|
private getSignerByPub;
|
|
381
384
|
/** Resolve signers from either explicit public-key text or hydrated verifiers. */
|
|
@@ -452,6 +455,38 @@ export declare class Manager {
|
|
|
452
455
|
* state update succeeds
|
|
453
456
|
*/
|
|
454
457
|
rotate(args: ManagerRotateArgs): [Verfer[], Diger[]];
|
|
458
|
+
/**
|
|
459
|
+
* Delete the stored key rows of one managed prefix, in one Keeper transaction.
|
|
460
|
+
*
|
|
461
|
+
* Removed rows:
|
|
462
|
+
* - `prms.` and `sits.` for `pre`
|
|
463
|
+
* - every `pubs.` lot stored under `pre` or under an inception alias that
|
|
464
|
+
* `move()` bound to it (the first current public key of a self-addressing prefix)
|
|
465
|
+
* - `pris.` for every public key named by those lots or by the situation
|
|
466
|
+
*
|
|
467
|
+
* Kept: every `pres.` row that resolves to `pre`. They are the one-way marker:
|
|
468
|
+
* `incept()` refuses any later inception whose first key is one of them, so
|
|
469
|
+
* the same name, namespace and salt cannot derive these keys again under a
|
|
470
|
+
* new or the same prefix.
|
|
471
|
+
*
|
|
472
|
+
* Limit: this deletes stored rows, not the secret's derivability. For a
|
|
473
|
+
* rooted salty prefix the seeds stay derivable from the Keeper-global salt
|
|
474
|
+
* and the habitat's derivation stem (its namespace and name).
|
|
475
|
+
*
|
|
476
|
+
* A prefix with no key rows, such as a keyless habitat whose signers are held
|
|
477
|
+
* externally (`hold()`) or one already forgotten, has no stored keys to delete.
|
|
478
|
+
* Held signers for `current` (the prefix's current public keys, which a keyless
|
|
479
|
+
* habitat has no Keeper row for) are dropped as well; zeroing their seeds stays
|
|
480
|
+
* the host's job. There is no other way to drop a held signer: a store's signers
|
|
481
|
+
* only ever grow until it closes.
|
|
482
|
+
*
|
|
483
|
+
* No KERIpy counterpart: `Habery.deleteHab` keeps all of the Keeper's state.
|
|
484
|
+
*
|
|
485
|
+
* @param pre Prefix to forget.
|
|
486
|
+
* @param current The prefix's current public keys, whose held signers are dropped.
|
|
487
|
+
* @returns What was deleted and dropped.
|
|
488
|
+
*/
|
|
489
|
+
forget(pre: string, current: readonly string[]): ForgottenKeys;
|
|
455
490
|
/**
|
|
456
491
|
* Sign through either explicit stored signers (`pubs` / `verfers`) or one
|
|
457
492
|
* managed keeper prefix (`pre` plus optional key-list path metadata).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keeping.d.ts","sourceRoot":"","sources":["../../../src/app/identity/keeping.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"keeping.d.ts","sourceRoot":"","sources":["../../../src/app/identity/keeping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAGL,KAAK,EAUL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,IAAI,EAET,MAAM,EACP,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAwE,MAAM,qBAAqB,CAAC;AAEnH;;;;;GAKG;AACH,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,uFAAuF;AACvF,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA4CD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GACZ,cAAc,CAShB;AA2BD,gFAAgF;AAChF,qBAAa,OAAO;IAClB,uEAAuE;IACvE,MAAM,CAAC,KAAK,GAAE,iBAAsB,GAAG,MAAM,EAAE;IAI/C,oFAAoF;IACpF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,6EAA6E;IAC7E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sEAAsE;IACtE,IAAI,IAAI,IAAI,IAAI,CAEf;CACF;AAED,2EAA2E;AAC3E,qBAAa,YAAa,SAAQ,OAAO;IAC9B,MAAM,CAAC,EACd,KAAK,EACL,KAAS,EACT,IAA0B,EAC1B,YAAmB,GACpB,GAAE,iBAAsB,GAAG,MAAM,EAAE;CAIrC;AAED,sFAAsF;AACtF,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAG7B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAA;KAAO;IAU1E,IAAa,IAAI,IAAI,MAAM,CAE1B;IAED,IAAa,IAAI,IAAI,MAAM,CAE1B;IAED,IAAa,IAAI,IAAI,IAAI,CAExB;IAEQ,MAAM,CAAC,EACd,KAAK,EACL,KAAS,EACT,IAA0B,EAC1B,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,YAAmB,EACnB,IAAY,GACb,GAAE,iBAAsB,GAAG,MAAM,EAAE;CAarC;AAED,yDAAyD;AACzD,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,GAAE,KAAmB;IAEtD,oFAAoF;IACpF,IAAI,CACF,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAA;KAAO,GACvE,OAAO;CASX;AA0DD,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBACT,GAAG,EAAE,MAAM;CAKxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,kFAAkF;IAClF,OAAO,CAAC,SAAS,CAA0B;IAC3C,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAA0B;IAC3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;gBAEtC,IAAI,EAAE,WAAW;IAwB7B,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,mGAAmG;IACnG,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,qFAAqF;IACrF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,uFAAuF;IACvF,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAIxB;IAED,uEAAuE;IACvE,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAEpB;IAED,kFAAkF;IAClF,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAIvB;IAED,2DAA2D;IAC3D,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAEnB;IAED;;;;;;;;;;OAUG;IACH,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAQxB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAOpB;IAED,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAGtB;IAED,kFAAkF;IAClF,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAElB;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,IAAI,SAAK,EAAE,IAAI,SAAK,GAAG,IAAI;IAyBjC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAoB5C,0GAA0G;IAC1G,OAAO,CAAC,gBAAgB;IAOxB,yFAAyF;IACzF,OAAO,CAAC,kBAAkB;IAQ1B,kGAAkG;IAClG,yBAAyB,IAAI,IAAI;IAIjC,4EAA4E;IAC5E,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAa1D;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO;IAOrF;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpD,OAAO,CAAC,eAAe;IASvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,IAAI,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAWtC;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK/B,yFAAyF;IACzF,OAAO,CAAC,cAAc;IAUtB,kFAAkF;IAClF,OAAO,CAAC,UAAU;IAelB,yFAAyF;IACzF,OAAO,CAAC,eAAe;IAWvB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA2C1B,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IA2BzB;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IAoD7B,+EAA+E;IAC/E,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;IA2IzD;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmE1C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;IAiFpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa;IA4B9D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE;IAC7D,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE;IAC/D,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,KAAK,EAAE;IACzE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE;IAiDhE;;;;;;;;;;OAUG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,IAAI,GAAE,kBAAuB,GAC5B,UAAU;IAyBb,qGAAqG;IACrG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQ/D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IAwKrD;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;CAwDrD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAElD;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AgentRuntime } from "../runtime/agent-runtime.js";
|
|
2
|
+
/** What {@link retireIdentifier} did. */
|
|
3
|
+
export interface RetiredIdentifier {
|
|
4
|
+
pre: string;
|
|
5
|
+
/** The local name the identifier had. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Current public keys whose held signers retirement dropped; empty for keys the Keeper stored. */
|
|
8
|
+
released: string[];
|
|
9
|
+
/** Mailbox (and witness) endpoints whose poll workers stop. */
|
|
10
|
+
mailboxes: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Why `runtime` would refuse to retire `pre`, or null when {@link retireIdentifier} would retire it. A pure read;
|
|
14
|
+
* the first refusal found is returned, `retireHab`'s own first.
|
|
15
|
+
*/
|
|
16
|
+
export declare function retireIdentifierRefusal(runtime: AgentRuntime, pre: string): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Retire `pre`: `Habery.retireHab` (which drops its held signers), then delete its mailbox cursors and KEL
|
|
19
|
+
* publisher rows, and prompt the mailbox poller and KEL publisher. Makes no event and signs nothing.
|
|
20
|
+
*
|
|
21
|
+
* @throws ValidationError with {@link retireIdentifierRefusal}'s reason, before any write.
|
|
22
|
+
*/
|
|
23
|
+
export declare function retireIdentifier(runtime: AgentRuntime, pre: string): RetiredIdentifier;
|
|
24
|
+
//# sourceMappingURL=retire-identifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retire-identifier.d.ts","sourceRoot":"","sources":["../../../src/app/identity/retire-identifier.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBzF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAgBtF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type Operation } from "effection";
|
|
2
|
+
import type { Exchanger } from "../exchanges/exchanging.js";
|
|
3
|
+
import type { Hab, Habery } from "../identity/habbing.js";
|
|
4
|
+
import type { IpexDiscloser } from "./ipex-discloser.js";
|
|
5
|
+
/** Which side of a disclosure the group is on. */
|
|
6
|
+
export type DisclosureRole = "issuer" | "holder";
|
|
7
|
+
/** One accepted v2 Grant of a credential and the accepted Admit that answered it. */
|
|
8
|
+
export interface GroupDisclosure {
|
|
9
|
+
/** SAID of the accepted `/ipex/grant`. */
|
|
10
|
+
grant: string;
|
|
11
|
+
/** SAID of the accepted `/ipex/admit` whose prior is the Grant. */
|
|
12
|
+
admit: string;
|
|
13
|
+
/** SAID of the Grant's single disclosed origin credential. */
|
|
14
|
+
credential: string;
|
|
15
|
+
/** Registry the origin credential names, or null for a registry-less credential. */
|
|
16
|
+
registry: string | null;
|
|
17
|
+
role: DisclosureRole;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The group's completed credential disclosures, in `erpy.` key order (by Grant SAID). Scans `erpy.` (one row per
|
|
21
|
+
* accepted exchange that answered a prior) and reads the named Grant, Admit and Grant nests; nothing else.
|
|
22
|
+
*
|
|
23
|
+
* - `holder`: the group is the Grant's recipient and its Admit is accepted, whoever sent the Grant. This is what a
|
|
24
|
+
* wallet records as admitted.
|
|
25
|
+
* - `issuer`: the group sent the Grant and is the origin credential's issuer, and the recipient's Admit is accepted.
|
|
26
|
+
* A Grant in which the group re-presents a credential it holds is not listed; that credential is listed as held.
|
|
27
|
+
*
|
|
28
|
+
* Neither role needs the local member to sign or to carry weight, so a weight-0 member lists the same rows as its
|
|
29
|
+
* co-members once it has accepted the Admit. Listing does not reauthenticate stored proofs;
|
|
30
|
+
* {@link exportDisclosureStream} does. Each Grant carries its whole credential graph, so the rows are independent
|
|
31
|
+
* and need no order between them.
|
|
32
|
+
*/
|
|
33
|
+
export declare function listGroupDisclosures(hby: Habery, exc: Exchanger, group: string): GroupDisclosure[];
|
|
34
|
+
/**
|
|
35
|
+
* One dependency-ordered CESR stream for a completed disclosure, which a receiver with an empty store can process
|
|
36
|
+
* front to back:
|
|
37
|
+
*
|
|
38
|
+
* 1. KELs, each after its delegation ancestry, with the stored signatures, witness receipts and first-seen replay
|
|
39
|
+
* attachments, of `hab`, the Grant's sender, the Admit's sender and every identifier the carried ACDC nodes name
|
|
40
|
+
* (issuers, issuees, source-seal prefixes);
|
|
41
|
+
* 2. the accepted TEL (`rip`, `bup`, with any retained public opening) of every registry those nodes name;
|
|
42
|
+
* 3. the Grant, as accepted, with its nests: the credential and every disclosed far node of its graph (a chained
|
|
43
|
+
* credential's dependencies travel inside it, before nothing that cites them);
|
|
44
|
+
* 4. the Admit, as accepted.
|
|
45
|
+
*
|
|
46
|
+
* Not in the stream: schemas (JSON Schema documents are not CESR; the receiver must hold or fetch them), the
|
|
47
|
+
* registry root and any other private registry state (a group root travels only as a `/registry/root` copy), the
|
|
48
|
+
* group's habitat record and its members' KELs beyond those named above, OOBI and end-role replies, KRAM cache
|
|
49
|
+
* rows, `/multisig/*` workflow wrappers and wallet inventory rows.
|
|
50
|
+
*
|
|
51
|
+
* Everything is re-encoded from stored, accepted evidence: `Exchanger.replay` revalidates each exchange's retained
|
|
52
|
+
* proofs, and nothing is signed, so `hab` needs no usable signing key; a weight-0 member, or one whose signer the
|
|
53
|
+
* host does not hold, exports the same stream. `hab` only adds its own KEL. A Grant that is not a completed
|
|
54
|
+
* disclosure (see {@link listGroupDisclosures}) is refused with a `ValidationError`. A host passes the runtime's
|
|
55
|
+
* own discloser, `runtime.operations.issuance.discloser`.
|
|
56
|
+
*
|
|
57
|
+
* The exchanges keep their original timestamps, so once their KRAM windows have passed, ordinary network intake
|
|
58
|
+
* with KRAM enabled refuses them as replays; accepting them on import is the importer's concern, not this read's.
|
|
59
|
+
*/
|
|
60
|
+
export declare function exportDisclosureStream(discloser: IpexDiscloser, hab: Hab, grant: string): Operation<Uint8Array>;
|
|
61
|
+
//# sourceMappingURL=disclosure-replaying.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclosure-replaying.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/disclosure-replaying.ts"],"names":[],"mappings":"AAcA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,kDAAkD;AAClD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAkCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAelG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAiB,sBAAsB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAgBhH"}
|
|
@@ -13,16 +13,21 @@
|
|
|
13
13
|
* a member that is briefly offline), collects the other members' stored contributions, and, once the message is
|
|
14
14
|
* accepted, lets the elected lead send the completed message to its recipient. It signs nothing beyond the
|
|
15
15
|
* contribution that the consent recorded.
|
|
16
|
+
* - A member that did not sign a message the others' signatures complete (a weight-0 member, say) takes it with no
|
|
17
|
+
* call: intake on receipt of a wrapper whose copies carry the group's threshold, or else `processOnce`'s periodic
|
|
18
|
+
* sweep once the exchange the message answers is accepted. That adds no signature, so it is not consent; the
|
|
19
|
+
* member then holds what the group completed and can accept the counterparty's answer in its thread.
|
|
16
20
|
* - {@link groupIpexStatus} is a pure read and {@link waitForGroupIpex} only observes.
|
|
17
21
|
*
|
|
18
22
|
* Status is derived from the protocol stores: an accepted message reads `done`; a stored proposal without a live
|
|
19
23
|
* operation reads `awaitingConsent` (a member that reloaded consents again with the same call and reuses its
|
|
20
24
|
* recorded signature). Lost on reload, by design: whether the lead had already delivered the completed message,
|
|
21
|
-
* the `failed` and `abandoned` reasons, and the publication results. The runtime never writes wallet inventory; the
|
|
25
|
+
* the `failed`, `expired` and `abandoned` reasons, and the publication results. The runtime never writes wallet inventory; the
|
|
22
26
|
* embedder reacts to the pushed `{kind: "ipex", id: <message>}` change.
|
|
23
27
|
*/
|
|
24
28
|
import { type SerderKERI, type Versionage } from "cesr-ts";
|
|
25
29
|
import type { Operation } from "effection";
|
|
30
|
+
import type { RegistryDisclosure } from "../../acdc/regeventing.js";
|
|
26
31
|
import type { Regery } from "../../acdc/registraring.js";
|
|
27
32
|
import { type RegistryEventRef } from "../credentials/registry-settling.js";
|
|
28
33
|
import type { Poster } from "../delivery/forwarding.js";
|
|
@@ -34,12 +39,19 @@ import type { ProtocolProcessor } from "../protocol/protocol-processing.js";
|
|
|
34
39
|
import { RetryBackoff } from "../runtime/retry-backoff.js";
|
|
35
40
|
import type { RuntimeClock } from "../runtime/runtime-clock.js";
|
|
36
41
|
import { type ChangeSink, type WaitResult } from "../runtime/workflow-contract.js";
|
|
42
|
+
import { type PreparedGrantBody } from "./ipex-discloser.js";
|
|
37
43
|
/** Milliseconds between collections of the other members' stored contributions. */
|
|
38
44
|
export declare const GROUP_IPEX_COLLECT_MS = 250;
|
|
45
|
+
/** Milliseconds between sweeps for group messages this member holds completed but has not accepted. */
|
|
46
|
+
export declare const GROUP_IPEX_FOLLOW_MS = 5000;
|
|
39
47
|
/** How long delivery failures may last before an operation ends `failed`; a group IPEX message has no deadline. */
|
|
40
48
|
export declare const GROUP_IPEX_RETRY_BOUND_MS = 600000;
|
|
41
|
-
/**
|
|
42
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Terminal states that are not completion; each carries a reason. `expired` means this member's own KRAM refused the
|
|
51
|
+
* contribution for its time, thread or exchange lifetime (the reason names the KRAM reason and, when it has one, the
|
|
52
|
+
* deadline); no retry can change that.
|
|
53
|
+
*/
|
|
54
|
+
export type GroupIpexEndState = "abandoned" | "expired" | "failed";
|
|
43
55
|
/** Where an active group IPEX message is. */
|
|
44
56
|
export type GroupIpexPhase = "awaitingConsent"
|
|
45
57
|
/** A presentation Grant waits for the group to accept the registry update that carries its proof. */
|
|
@@ -70,12 +82,18 @@ export interface GroupIpexDeps {
|
|
|
70
82
|
/** Collaborators of a group registry update; a Grant that carries a presentation proof needs them. */
|
|
71
83
|
readonly registry?: RegistryProposeDeps;
|
|
72
84
|
}
|
|
73
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* A presentation Grant waiting for the group to accept the registry update that anchors its proof. Plain data: the
|
|
87
|
+
* owner reads the stores on each pass and, once the update is accepted, attaches the proof and signs this member's
|
|
88
|
+
* contribution itself.
|
|
89
|
+
*/
|
|
74
90
|
export interface GroupIpexPrerequisite {
|
|
75
91
|
/** The TEL event and the group anchor that seals it. */
|
|
76
92
|
readonly anchor: RegistryEventRef;
|
|
77
|
-
/**
|
|
78
|
-
readonly
|
|
93
|
+
/** The frozen unsigned Grant and its selected nodes; only its nested proof is extended once the update is accepted. */
|
|
94
|
+
readonly grant: PreparedGrantBody;
|
|
95
|
+
/** The presented-state opening the update commits to. It blinds the Grant's state, so it is never logged or reported. */
|
|
96
|
+
readonly opening: RegistryDisclosure;
|
|
79
97
|
}
|
|
80
98
|
interface LiveGroupIpex {
|
|
81
99
|
/** SAID of the group-authored IPEX message. */
|
|
@@ -139,11 +157,25 @@ export declare class GroupIpexOperations {
|
|
|
139
157
|
}>;
|
|
140
158
|
/** What accepted operations published and delivered in this process; not durable. */
|
|
141
159
|
readonly outcomes: Map<string, GroupIpexOutcome>;
|
|
160
|
+
/** Messages this member's KRAM refused to take from their copies in this process; a sweep tries them no more. */
|
|
161
|
+
readonly unfollowable: Set<string>;
|
|
162
|
+
/** When the next sweep for completed group messages is due. */
|
|
163
|
+
private nextFollow;
|
|
142
164
|
constructor(deps: GroupIpexDeps);
|
|
143
|
-
/** Whether a pass has work. */
|
|
165
|
+
/** Whether a pass has work: a live operation, or a sweep for completed group messages is due. */
|
|
144
166
|
active(): boolean;
|
|
145
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Advance every live operation by one pass. Every {@link GROUP_IPEX_FOLLOW_MS} a pass also takes the group messages
|
|
169
|
+
* this member did not sign but holds completed ({@link follow}); that signs and sends nothing.
|
|
170
|
+
*/
|
|
146
171
|
processOnce(): Operation<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Accept each stored group IPEX message whose received copies already carry the group's threshold
|
|
174
|
+
* ({@link groupIpexFollowable}), adding no signature, so this member holds what the group completed without it.
|
|
175
|
+
* Intake takes such a message on receipt; this sweep takes what intake could not yet, such as an answer that arrived
|
|
176
|
+
* before the exchange it answers. A message with a live operation is left to that operation's own collection.
|
|
177
|
+
*/
|
|
178
|
+
private follow;
|
|
147
179
|
/** End a live operation and tell the sink. */
|
|
148
180
|
end(op: LiveGroupIpex, state: GroupIpexEndState, reason: string): void;
|
|
149
181
|
/** Record an operation the user consented to. */
|
|
@@ -151,6 +183,17 @@ export declare class GroupIpexOperations {
|
|
|
151
183
|
private setPhase;
|
|
152
184
|
/** Run a delivery; a failure keeps the work for a later pass until failures have lasted the bound. */
|
|
153
185
|
private attempt;
|
|
186
|
+
/**
|
|
187
|
+
* The event that took the awaited update's place, read from state: a different accepted KEL event at the anchor's
|
|
188
|
+
* sequence number, or a different accepted TEL event at the update's. Null while the update can still be accepted;
|
|
189
|
+
* an update the members never approve stays awaited until the user abandons it.
|
|
190
|
+
*/
|
|
191
|
+
private supersededBy;
|
|
192
|
+
/**
|
|
193
|
+
* Sign this member's contribution to a presentation Grant whose registry update the group has accepted: attach the
|
|
194
|
+
* proof sealed by the accepted anchor, then contribute. The consent that began the operation covers this signature.
|
|
195
|
+
*/
|
|
196
|
+
private signAfterUpdate;
|
|
154
197
|
private step;
|
|
155
198
|
}
|
|
156
199
|
/** A group-authored message to propose. */
|
|
@@ -169,7 +212,8 @@ export interface GroupIpexProposalInput {
|
|
|
169
212
|
* `processOnce`.
|
|
170
213
|
*
|
|
171
214
|
* @throws ValidationError for a body the group did not author, a non-group identifier, a message awaiting
|
|
172
|
-
* authenticating dependencies, or one already begun
|
|
215
|
+
* authenticating dependencies, or one already begun; KramRefusedError (a ValidationError) when this member's own
|
|
216
|
+
* KRAM refuses the message, as an Offer past its exchange lifetime.
|
|
173
217
|
*/
|
|
174
218
|
export declare function proposeGroupIpex(ops: GroupIpexOperations, { hab, exn, nests, gvrsn, deliver }: GroupIpexProposalInput): Operation<GroupIpexBegun>;
|
|
175
219
|
/** A group-authored message and the registry update it waits for. */
|
|
@@ -182,10 +226,11 @@ export interface GroupIpexAfterInput {
|
|
|
182
226
|
prerequisite: GroupIpexPrerequisite;
|
|
183
227
|
}
|
|
184
228
|
/**
|
|
185
|
-
* The proposer's consent to a
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
229
|
+
* The proposer's consent to a presentation Grant that waits for a registry update: the caller has proposed the
|
|
230
|
+
* update (this member's contribution is its approval) and passes the frozen Grant, its opening and the anchor to wait
|
|
231
|
+
* for. On each pass the owner reads whether the group accepted the update; once it has, the owner attaches the proof
|
|
232
|
+
* and signs this member's contribution under this same consent. A superseded update ends the operation `failed`; one
|
|
233
|
+
* the members never approve stays active until {@link abandonGroupIpex}. Returns after local commit.
|
|
189
234
|
*/
|
|
190
235
|
export declare function proposeGroupIpexAfter(ops: GroupIpexOperations, { hab, exn, gvrsn, deliver, prerequisite }: GroupIpexAfterInput): GroupIpexBegun;
|
|
191
236
|
/** An Admit of an accepted Grant a group holder proposes. */
|
|
@@ -223,7 +268,8 @@ export interface GroupIpexApproveOptions {
|
|
|
223
268
|
* completed message, which a lead that learned of the acceptance from another member's wrapper has not yet done.
|
|
224
269
|
*
|
|
225
270
|
* @throws ValidationError when no v2 proposal is stored for `said`, an operation is already live for it, or this
|
|
226
|
-
* member still lacks the evidence to approve it
|
|
271
|
+
* member still lacks the evidence to approve it; KramRefusedError (a ValidationError) when this member's own KRAM
|
|
272
|
+
* refuses the contribution.
|
|
227
273
|
*/
|
|
228
274
|
export declare function approveGroupIpex(ops: GroupIpexOperations, said: string, { deliver }?: GroupIpexApproveOptions): Operation<GroupIpexBegun>;
|
|
229
275
|
/** Local abandon: stop publishing and collecting. Does not undo a recorded contribution or message the peers. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-ipex.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-ipex.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"group-ipex.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-ipex.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
* | holder custodian or member | {@link approveGroupIssuanceExchange} | consent to DH (contributions follow as they arrive) |
|
|
17
17
|
* | a member that only follows | {@link followGroupIssuanceProof} | nothing; verifies the custodian's final proof |
|
|
18
18
|
*
|
|
19
|
+
* The follow is not a consent and needs no call: the owner begins it itself (below). The explicit call remains for a
|
|
20
|
+
* proof supplied as bytes and is idempotent with the automatic follow.
|
|
21
|
+
*
|
|
19
22
|
* The registry update is a separate consent: the custodian proposes the BUP through `proposeRegistryEvent`
|
|
20
23
|
* (its own contribution is its approval) and every other issuer member approves that proposal with
|
|
21
24
|
* `approveGroupProposal`. Admit is a separate consent as well.
|
|
@@ -25,10 +28,18 @@
|
|
|
25
28
|
* Grant and the proof broadcast to the other members. Root copies are not sent here: the DH completion cue
|
|
26
29
|
* feeds the runtime's `RootReplicator`, which sends exactly one copy per member.
|
|
27
30
|
*
|
|
31
|
+
* Automatic follow: on its slow sweep of the pending exchange escrow the owner begins the proof-only follow, in either
|
|
32
|
+
* role, of each pending group Grant inside its deadline that this member has no live, ended or complete operation for
|
|
33
|
+
* and whose custodian's final proof is stored ({@link storedGroupProof}). The proof exists only after the key exchange
|
|
34
|
+
* finished, so the follow never takes the place of a member whose signature is still wanted; until the proof or a root
|
|
35
|
+
* copy is stored the member reads `awaitingExchangeConsent` and consents as usual. A member holding a root copy or the
|
|
36
|
+
* proof reads `awaitingAnchor` ({@link awaitsGroupProof}) until the follow accepts the Grant.
|
|
37
|
+
*
|
|
28
38
|
* Reload: nothing about a group operation is durable but the protocol stores. A member that reloads reads
|
|
29
39
|
* `awaitingExchangeConsent` for a pending Grant it holds no root for and consents again with the same call;
|
|
30
40
|
* its signatures are deterministic, so consenting twice produces the same bytes. A custodian that reloaded
|
|
31
|
-
* after retaining its root resumes when the stores allow it ({@link deriveGroupCustody}).
|
|
41
|
+
* after retaining its root resumes when the stores allow it ({@link deriveGroupCustody}). A follow signs nothing, so
|
|
42
|
+
* the first sweep after a reload begins it again from the stored proof.
|
|
32
43
|
*/
|
|
33
44
|
import { type CesrFrame, SerderACDC, SerderKERI } from "cesr-ts";
|
|
34
45
|
import { type Operation } from "effection";
|
|
@@ -143,6 +154,22 @@ export interface CustodyDeps {
|
|
|
143
154
|
* of a disclosed root, holds none, or no accepted event elects it.
|
|
144
155
|
*/
|
|
145
156
|
export declare function deriveGroupCustody(deps: CustodyDeps, hab: Hab, grant: string): GroupElection | null;
|
|
157
|
+
/**
|
|
158
|
+
* The election of a final proof the local member of `hab` can follow for `grant` without taking part: the
|
|
159
|
+
* `/multisig/ipex-proof` wrapper of this exact Grant that another current signing member published, with a recent
|
|
160
|
+
* accepted group event electing that member as custodian. The custodian publishes the proof only after the key
|
|
161
|
+
* exchange finished and the registry update was accepted, so once it is stored no member's signature is still wanted
|
|
162
|
+
* for this issuance. The sender names the custodian exactly, which a root copy cannot (any member holding a root
|
|
163
|
+
* sends copies). Null when no such proof is stored. A pure read of the stored exchanges.
|
|
164
|
+
*/
|
|
165
|
+
export declare function storedGroupProof(deps: CustodyDeps, hab: Hab, grant: string): GroupElection | null;
|
|
166
|
+
/**
|
|
167
|
+
* Whether the group completed `grant` without the local member of `hab`, so that its runtime follows the final proof
|
|
168
|
+
* instead of asking it to consent: a `/registry/root` copy of a disclosed registry was sent to it (copies are
|
|
169
|
+
* authorized only once the registry update is accepted, after the key exchange), or the custodian's final proof is
|
|
170
|
+
* stored ({@link storedGroupProof}). A pure read of the stores.
|
|
171
|
+
*/
|
|
172
|
+
export declare function awaitsGroupProof(deps: CustodyDeps, hab: Hab, grant: string): boolean;
|
|
146
173
|
/**
|
|
147
174
|
* Prepare the custodian's first partial Grant for a fresh credential, preserving the discloser's fresh-origin and
|
|
148
175
|
* far-node checks, and return the proposal the other issuer members consent to. Signs the custodian's Grant
|
|
@@ -186,14 +213,29 @@ export declare function proposeGroupIssuance(ops: IssuanceOperations, draft: Gra
|
|
|
186
213
|
*/
|
|
187
214
|
export declare function approveGroupIssuanceExchange(ops: IssuanceOperations, said: string, coordinator?: string): IssuanceBegun;
|
|
188
215
|
/**
|
|
189
|
-
* Follow a group issuance
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
216
|
+
* Follow a group issuance only to verify and accept the custodian's final proof, signing nothing. It serves any
|
|
217
|
+
* member that does not contribute to the key exchange: an issuer member that left after contributing and returns
|
|
218
|
+
* for the proof, or a holder member the group completed without, such as one whose signing weight is 0. The group
|
|
219
|
+
* is the Grant's sender when that is a local group, otherwise its recipient. The proof may already be stored (it
|
|
220
|
+
* arrives by mailbox), or be supplied as bytes.
|
|
221
|
+
*
|
|
222
|
+
* The owner begins the same follow on its own once the custodian's proof is stored ({@link storedGroupProof}), so a
|
|
223
|
+
* host needs this call only to supply the proof as bytes or to pin the coordinator. It is idempotent with that
|
|
224
|
+
* follow; see {@link beginGroupProofFollow}.
|
|
193
225
|
*
|
|
194
|
-
* @throws ValidationError for a Grant
|
|
226
|
+
* @throws ValidationError for a Grant that is not pending for a local group, or one begun under a consent.
|
|
195
227
|
*/
|
|
196
228
|
export declare function followGroupIssuanceProof(ops: IssuanceOperations, said: string, options?: GroupFollowOptions): Operation<IssuanceBegun>;
|
|
229
|
+
/**
|
|
230
|
+
* Begin `role`'s proof-only follow of the pending group Grant `said` under `coordinator` (default the group's latest
|
|
231
|
+
* establishment event). Signs nothing. Idempotent: when that party's follow is already live, or its side of the Grant
|
|
232
|
+
* is already complete, returns the Grant and its transaction and begins nothing. The owner's sweep and
|
|
233
|
+
* {@link followGroupIssuanceProof} both begin follows here.
|
|
234
|
+
*
|
|
235
|
+
* @throws ValidationError for a Grant that is not pending for a local group, one whose live operation is a consent,
|
|
236
|
+
* or a coordinator {@link GroupParty.resolve} refuses.
|
|
237
|
+
*/
|
|
238
|
+
export declare function beginGroupProofFollow(ops: IssuanceOperations, said: string, role: IssuanceRole, coordinator?: string): IssuanceBegun;
|
|
197
239
|
/**
|
|
198
240
|
* The custodian's exact public proof of a completed group issuance: the proof support and the
|
|
199
241
|
* `/multisig/ipex-proof` wrapper every other member received, read back from the stores. A copy for members that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-issuance.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-issuance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"group-issuance.d.ts","sourceRoot":"","sources":["../../../src/app/ipex/group-issuance.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,14 @@ export declare function exchangeWire(hab: Hab, exn: SerderKERI, nested?: Uint8Ar
|
|
|
60
60
|
* reads them with this instead of re-signing.
|
|
61
61
|
*/
|
|
62
62
|
export declare function storedExchangeWire(retained: ExchangeInput, gvrsn?: Versionage): Operation<Uint8Array>;
|
|
63
|
+
/**
|
|
64
|
+
* Extend a frozen Grant's exact origin proof with its presented-state opening and the KEL seal of the registry update
|
|
65
|
+
* that commits to it; the Grant body and its SAID are unchanged. Ordinary intake still authenticates the supplied
|
|
66
|
+
* presentation evidence. Reads no store and signs nothing.
|
|
67
|
+
*
|
|
68
|
+
* @throws ValidationError when the opening does not target this exact Grant's disclosed Issuee in the `presented` state.
|
|
69
|
+
*/
|
|
70
|
+
export declare function attachPresentationProof(prepared: PreparedGrantBody, opening: RegistryDisclosure, source: SealSource): Operation<PreparedGrantBody>;
|
|
63
71
|
/** Exact admitted node streams; no fuller cached section replaces retained disclosure. */
|
|
64
72
|
export interface HeldCredential {
|
|
65
73
|
credential: SerderACDC;
|
|
@@ -123,6 +131,12 @@ export declare class IpexDiscloser {
|
|
|
123
131
|
prepareIssuanceGrantBody(sender: string, credential: SerderACDC, options: IssuanceGrantOptions): Operation<PreparedGrantBody>;
|
|
124
132
|
/** Carry selected public evidence and root-first delegation ancestry; receiver intake still verifies every approval. */
|
|
125
133
|
proofSupport(raw: Uint8Array, hab: Hab): Uint8Array;
|
|
134
|
+
/**
|
|
135
|
+
* `proofSupport` for explicitly named parties instead of one habitat: the KELs of `parties` and of every identifier
|
|
136
|
+
* the ACDC frames in `raw` name, each after its delegation ancestry, then the accepted TEL of every registry they
|
|
137
|
+
* name. Reads accepted state only and signs nothing, so it needs no keys.
|
|
138
|
+
*/
|
|
139
|
+
proofSupportFor(raw: Uint8Array, parties: readonly string[]): Uint8Array;
|
|
126
140
|
/** Public replay includes actual stored witness receipts; it grants no new consent. */
|
|
127
141
|
kel(hab: Hab): Uint8Array;
|
|
128
142
|
/** Reduce only the selected attribute view using the existing commitment-preserving Compactor. */
|
|
@@ -143,8 +157,6 @@ export declare class IpexDiscloser {
|
|
|
143
157
|
prepareReply(sender: string, verb: "agree" | "spurn", priorSaid: string, message?: string, recipient?: string, auths?: WitnessAuthMap): Operation<PreparedDisclosure>;
|
|
144
158
|
/** The unsigned Agree or Spurn body answering an accepted, authenticated predecessor. */
|
|
145
159
|
replyBody(sender: string, verb: "agree" | "spurn", priorSaid: string, message?: string, recipient?: string): Operation<SerderKERI>;
|
|
146
|
-
/** Extend the frozen Grant's exact origin proof; ordinary intake still authenticates the supplied presentation evidence. */
|
|
147
|
-
attachPresentationProof(prepared: PreparedGrantBody, opening: RegistryDisclosure, source: SealSource): Operation<PreparedGrantBody>;
|
|
148
160
|
/** Select immutable admitted/transferred nests; proof refresh changes attachments only when explicitly requested. */
|
|
149
161
|
protected selected(selection: DisclosureSelection, offer?: boolean): Operation<Uint8Array>;
|
|
150
162
|
/** Offer only the selected commitment/view without issuer proof attachments. */
|