@verana-labs/vs-agent-sdk 2.0.0-dev.5 → 2.0.0-dev.51
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/build/agent/VsAgent.d.ts +11 -16
- package/build/agent/VsAgent.js +82 -172
- package/build/agent/VsAgent.js.map +1 -1
- package/build/agent/createVsAgent.d.ts +5 -0
- package/build/agent/createVsAgent.js +3 -0
- package/build/agent/createVsAgent.js.map +1 -1
- package/build/blockchain/AnonCredsTrustService.d.ts +53 -0
- package/build/blockchain/AnonCredsTrustService.js +238 -0
- package/build/blockchain/AnonCredsTrustService.js.map +1 -0
- package/build/blockchain/AuthorizationService.d.ts +5 -3
- package/build/blockchain/AuthorizationService.js +17 -29
- package/build/blockchain/AuthorizationService.js.map +1 -1
- package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
- package/build/blockchain/IndexerWebSocketService.js +68 -36
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- package/build/blockchain/VeranaChainService.d.ts +2 -13
- package/build/blockchain/VeranaChainService.js +8 -113
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaIndexerService.d.ts +14 -1
- package/build/blockchain/VeranaIndexerService.js +122 -8
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/handlers/authorizationHandlers.js +2 -2
- package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
- package/build/blockchain/handlers/defaultHandlers.js +2 -0
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
- package/build/blockchain/handlers/index.d.ts +1 -0
- package/build/blockchain/handlers/index.js +1 -0
- package/build/blockchain/handlers/index.js.map +1 -1
- package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js +71 -0
- package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
- package/build/blockchain/handlers/stateMutations.d.ts +21 -2
- package/build/blockchain/handlers/stateMutations.js +272 -34
- package/build/blockchain/handlers/stateMutations.js.map +1 -1
- package/build/blockchain/index.d.ts +2 -0
- package/build/blockchain/index.js +2 -0
- package/build/blockchain/index.js.map +1 -1
- package/build/blockchain/indexerMappers.d.ts +3 -0
- package/build/blockchain/indexerMappers.js +53 -0
- package/build/blockchain/indexerMappers.js.map +1 -0
- package/build/blockchain/types.d.ts +5 -57
- package/build/blockchain/types.js.map +1 -1
- package/build/bootstrap/EcsBootstrapService.d.ts +16 -3
- package/build/bootstrap/EcsBootstrapService.js +202 -77
- package/build/bootstrap/EcsBootstrapService.js.map +1 -1
- package/build/did/CachedWebDidResolver.d.ts +0 -4
- package/build/did/CachedWebDidResolver.js +1 -5
- package/build/did/CachedWebDidResolver.js.map +1 -1
- package/build/did/artifactServices.d.ts +11 -0
- package/build/did/artifactServices.js +48 -0
- package/build/did/artifactServices.js.map +1 -0
- package/build/did/legacyDidWeb.d.ts +6 -4
- package/build/did/legacyDidWeb.js +17 -14
- package/build/did/legacyDidWeb.js.map +1 -1
- package/build/did/migrations/index.d.ts +22 -0
- package/build/did/migrations/index.js +103 -0
- package/build/did/migrations/index.js.map +1 -0
- package/build/did/migrations/migrateWebVhLog.js.map +1 -0
- package/build/did/migrations/migrateWebVhVersionTime.js.map +1 -0
- package/build/events/BaseMessageEvents.js +109 -0
- package/build/events/BaseMessageEvents.js.map +1 -1
- package/build/events/ConnectionEvents.js +110 -82
- package/build/events/ConnectionEvents.js.map +1 -1
- package/build/events/VsAgentEvents.d.ts +1 -8
- package/build/events/VsAgentEvents.js +0 -1
- package/build/events/VsAgentEvents.js.map +1 -1
- package/build/events/VtFlowEvents.d.ts +1 -1
- package/build/events/VtFlowEvents.js +2 -19
- package/build/events/VtFlowEvents.js.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/plugins/setupBaseDidComm.js +4 -6
- package/build/plugins/setupBaseDidComm.js.map +1 -1
- package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
- package/build/transports/VsAgentWsInboundTransport.js +20 -14
- package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
- package/build/utils/agent.d.ts +27 -3
- package/build/utils/agent.js +78 -19
- package/build/utils/agent.js.map +1 -1
- package/build/utils/didReadiness.d.ts +9 -0
- package/build/utils/didReadiness.js +42 -0
- package/build/utils/didReadiness.js.map +1 -0
- package/build/utils/ecsClaims.d.ts +47 -0
- package/build/utils/ecsClaims.js +120 -0
- package/build/utils/ecsClaims.js.map +1 -0
- package/build/utils/index.d.ts +2 -0
- package/build/utils/index.js +2 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/selfIssuedEcsCredential.d.ts +4 -0
- package/build/utils/selfIssuedEcsCredential.js +140 -0
- package/build/utils/selfIssuedEcsCredential.js.map +1 -0
- package/build/utils/setupSelfTr.d.ts +3 -56
- package/build/utils/setupSelfTr.js +41 -249
- package/build/utils/setupSelfTr.js.map +1 -1
- package/build/utils/trustCredentialStore.d.ts +32 -6
- package/build/utils/trustCredentialStore.js +183 -82
- package/build/utils/trustCredentialStore.js.map +1 -1
- package/build/utils/util.d.ts +10 -0
- package/build/utils/util.js +16 -0
- package/build/utils/util.js.map +1 -1
- package/build/utils/vtjscResolver.d.ts +18 -0
- package/build/utils/vtjscResolver.js +54 -0
- package/build/utils/vtjscResolver.js.map +1 -0
- package/build/vtFlow/VtFlowOrchestrator.d.ts +47 -9
- package/build/vtFlow/VtFlowOrchestrator.js +99 -58
- package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
- package/build/vtFlow/assertVerifiableService.d.ts +1 -0
- package/build/vtFlow/assertVerifiableService.js +45 -5
- package/build/vtFlow/assertVerifiableService.js.map +1 -1
- package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
- package/build/vtFlow/ecsIssuanceExemption.js +84 -0
- package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
- package/build/vtFlow/index.d.ts +1 -0
- package/build/vtFlow/index.js +1 -0
- package/build/vtFlow/index.js.map +1 -1
- package/package.json +11 -11
- package/build/did/migrateWebVhLog.js.map +0 -1
- package/build/did/migrateWebVhVersionTime.js.map +0 -1
- /package/build/did/{migrateWebVhLog.d.ts → migrations/migrateWebVhLog.d.ts} +0 -0
- /package/build/did/{migrateWebVhLog.js → migrations/migrateWebVhLog.js} +0 -0
- /package/build/did/{migrateWebVhVersionTime.d.ts → migrations/migrateWebVhVersionTime.d.ts} +0 -0
- /package/build/did/{migrateWebVhVersionTime.js → migrations/migrateWebVhVersionTime.js} +0 -0
|
@@ -5,18 +5,13 @@ const credo_ts_didcomm_vt_flow_1 = require("@verana-labs/credo-ts-didcomm-vt-flo
|
|
|
5
5
|
const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
|
|
6
6
|
const blockchain_1 = require("../blockchain");
|
|
7
7
|
const types_1 = require("../types");
|
|
8
|
+
const didReadiness_1 = require("../utils/didReadiness");
|
|
9
|
+
const VtFlowOrchestrator_1 = require("../vtFlow/VtFlowOrchestrator");
|
|
10
|
+
const ecsClaims_1 = require("../utils/ecsClaims");
|
|
8
11
|
const START_OP_MSG = '/verana.pp.v1.MsgStartParticipantOP';
|
|
9
12
|
const SELF_CREATE_MSG = '/verana.pp.v1.MsgSelfCreateParticipant';
|
|
10
13
|
const ISSUER_ONBOARDING_MODE_OPEN = 1;
|
|
11
14
|
const ISSUER_ONBOARDING_MODE_GRANTOR = 3;
|
|
12
|
-
const ECS_TITLE_BY_TYPE = {
|
|
13
|
-
ServiceCredential: vs_agent_model_1.ECS.SERVICE,
|
|
14
|
-
OrganizationCredential: vs_agent_model_1.ECS.ORG,
|
|
15
|
-
PersonaCredential: vs_agent_model_1.ECS.PERSONA,
|
|
16
|
-
UserAgentCredential: vs_agent_model_1.ECS.USER_AGENT,
|
|
17
|
-
BadgeCredential: vs_agent_model_1.ECS.BADGE,
|
|
18
|
-
};
|
|
19
|
-
const DELEGATED_OUTCOME_TIMEOUT_MS = 15 * 60000;
|
|
20
15
|
class EcsBootstrapService {
|
|
21
16
|
constructor(agent, indexer, options, logger) {
|
|
22
17
|
this.agent = agent;
|
|
@@ -25,6 +20,10 @@ class EcsBootstrapService {
|
|
|
25
20
|
this.logger = logger;
|
|
26
21
|
}
|
|
27
22
|
async run() {
|
|
23
|
+
// Both repair steps sign nothing on chain, so they run before any gate, in either mode, and
|
|
24
|
+
// also for a deployment whose participants the Corporation operator provisions out of band.
|
|
25
|
+
await this.acceptPendingOffers();
|
|
26
|
+
await this.resumePendingOnboardings();
|
|
28
27
|
if (this.options.mode === 'delegated')
|
|
29
28
|
return this.runDelegated();
|
|
30
29
|
return this.runStandalone();
|
|
@@ -32,12 +31,11 @@ class EcsBootstrapService {
|
|
|
32
31
|
async runStandalone() {
|
|
33
32
|
const skip = await this.preflight();
|
|
34
33
|
if (skip) {
|
|
35
|
-
this.logger.info(`[EcsBootstrap] standalone bootstrap skipped: ${skip}`);
|
|
34
|
+
this.logger.info(`[EcsBootstrap] standalone bootstrap skipped: ${skip}; this agent expects its participants to be provisioned out of band`);
|
|
36
35
|
return;
|
|
37
36
|
}
|
|
38
37
|
const chain = this.agent.veranaChain;
|
|
39
38
|
const indexer = this.indexer;
|
|
40
|
-
await this.acceptPendingOffers();
|
|
41
39
|
const { credential, credentialType, service } = await this.discoverEcsSchemas(indexer);
|
|
42
40
|
await this.ensureHolderParticipant(chain, indexer, credential, credentialType);
|
|
43
41
|
await this.ensureServiceIssuer(chain, indexer, service);
|
|
@@ -53,9 +51,15 @@ class EcsBootstrapService {
|
|
|
53
51
|
return 'the Verana indexer is not configured';
|
|
54
52
|
if (!((_a = this.options.trustedEcosystemDids) === null || _a === void 0 ? void 0 : _a.length))
|
|
55
53
|
return 'TRUSTED_ECS_ECOSYSTEM_DIDS is not set';
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
return this.operatorSkipReason(chain);
|
|
55
|
+
}
|
|
56
|
+
// StartParticipantOP costs a trust deposit and a fee, so both the authorization and the funds
|
|
57
|
+
// must be there. Neither is a misconfiguration: the operator may provision the entry itself.
|
|
58
|
+
async operatorSkipReason(chain) {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const operatorAuths = (_b = (await ((_a = this.indexer) === null || _a === void 0 ? void 0 : _a.listOperatorAuthorizations(chain.address)))) !== null && _b !== void 0 ? _b : [];
|
|
61
|
+
if (!operatorAuths.some(auth => auth.msgTypes.includes(START_OP_MSG))) {
|
|
62
|
+
return `operator ${chain.address} holds no OperatorAuthorization covering MsgStartParticipantOP`;
|
|
59
63
|
}
|
|
60
64
|
const balance = await chain.getBalance();
|
|
61
65
|
if (Number(balance.amount) === 0) {
|
|
@@ -85,6 +89,66 @@ class EcsBootstrapService {
|
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* StartParticipantOP pays a trust deposit, and it cannot be undone. The onboarding request that
|
|
94
|
+
* must follow it travels over DIDComm from the chain event handler, which catches its own
|
|
95
|
+
* failure. The indexer marks that block processed all the same and never replays it, so an
|
|
96
|
+
* unreachable validator leaves the entry at PENDING for ever. This boot step closes that gap.
|
|
97
|
+
*/
|
|
98
|
+
async resumePendingOnboardings() {
|
|
99
|
+
if (!this.indexer || !this.agent.did)
|
|
100
|
+
return;
|
|
101
|
+
const own = await this.indexer.listParticipants({ did: this.agent.did }).catch(() => []);
|
|
102
|
+
for (const participant of own) {
|
|
103
|
+
if (participant.op_state !== 'PENDING' || participant.revoked || participant.slashed)
|
|
104
|
+
continue;
|
|
105
|
+
try {
|
|
106
|
+
await this.resumeOnboarding(participant);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
this.logger.warn(`[EcsBootstrap] could not resume the onboarding of participant ${participant.id}: ${error.message}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async resumeOnboarding(participant) {
|
|
114
|
+
// A flow that a peer ended on purpose is not an interruption; only an error deserves a retry.
|
|
115
|
+
const api = this.agent.dependencyManager.resolve(credo_ts_didcomm_vt_flow_1.VtFlowApi);
|
|
116
|
+
const [latest] = (await api.findAllByQuery({
|
|
117
|
+
participantId: String(participant.id),
|
|
118
|
+
role: credo_ts_didcomm_vt_flow_1.VtFlowRole.Applicant,
|
|
119
|
+
flowVariant: credo_ts_didcomm_vt_flow_1.VtFlowVariant.OnboardingProcess,
|
|
120
|
+
})).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
|
|
121
|
+
if (latest && (0, credo_ts_didcomm_vt_flow_1.isVtFlowTerminalState)(latest.state) && latest.state !== credo_ts_didcomm_vt_flow_1.VtFlowState.Error)
|
|
122
|
+
return;
|
|
123
|
+
// The agent validates its own entry when it controls the ECOSYSTEM root of the schema, so
|
|
124
|
+
// there is no peer to send a request to: the interrupted step is the chain outcome itself.
|
|
125
|
+
if (await this.isSelfValidated(participant)) {
|
|
126
|
+
const chain = this.agent.veranaChain;
|
|
127
|
+
if (!chain)
|
|
128
|
+
return;
|
|
129
|
+
await chain.setParticipantOPToValidated({
|
|
130
|
+
id: participant.id,
|
|
131
|
+
validationFees: 0,
|
|
132
|
+
issuanceFees: 0,
|
|
133
|
+
verificationFees: 0,
|
|
134
|
+
});
|
|
135
|
+
await this.triggerResolverBestEffort(chain, participant.id);
|
|
136
|
+
this.logger.info(`[EcsBootstrap] validated the interrupted self-issued participant ${participant.id}`);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// startOnboardingProcess writes nothing on chain, and it refuses to resend while a flow is in
|
|
140
|
+
// progress, so this is safe on every boot.
|
|
141
|
+
await (0, didReadiness_1.waitUntilOwnDidIsPubliclyResolvable)(this.agent, this.logger);
|
|
142
|
+
const claims = await this.onboardingClaims(participant.schema_id);
|
|
143
|
+
const record = await new VtFlowOrchestrator_1.VtFlowOrchestrator(this.agent).startOnboardingProcess(Object.assign({ applicantParticipantId: participant.id }, (claims ? { claims } : {})));
|
|
144
|
+
this.logger.info(`[EcsBootstrap] resumed the onboarding of participant ${participant.id} (flow ${record.id}, state ${record.state})`);
|
|
145
|
+
}
|
|
146
|
+
async isSelfValidated(participant) {
|
|
147
|
+
if (participant.validator_participant_id == null)
|
|
148
|
+
return false;
|
|
149
|
+
const validator = await this.indexer.getParticipant(participant.validator_participant_id).catch(() => undefined);
|
|
150
|
+
return (validator === null || validator === void 0 ? void 0 : validator.did) === this.agent.did;
|
|
151
|
+
}
|
|
88
152
|
// WL-ECS: only ecosystems on the configured allowlist may provide the essential credential schemas.
|
|
89
153
|
async discoverEcsSchemas(indexer) {
|
|
90
154
|
const ecosystems = await indexer.listEcosystems();
|
|
@@ -108,7 +172,7 @@ class EcsBootstrapService {
|
|
|
108
172
|
const schemas = await indexer.listCredentialSchemas(ecosystemId);
|
|
109
173
|
const classified = await Promise.all(schemas
|
|
110
174
|
.filter(schema => !schema.archived)
|
|
111
|
-
.map(async (schema) => ({ schema, type: await
|
|
175
|
+
.map(async (schema) => ({ schema, type: await (0, vs_agent_model_1.classifyEcsSchema)(schema.json_schema) })));
|
|
112
176
|
const byType = (type) => { var _a; return (_a = classified.find(c => c.type === type)) === null || _a === void 0 ? void 0 : _a.schema; };
|
|
113
177
|
const service = byType(vs_agent_model_1.ECS.SERVICE);
|
|
114
178
|
if (!service)
|
|
@@ -120,21 +184,14 @@ class EcsBootstrapService {
|
|
|
120
184
|
throw new Error('no ECS Organization or Persona credential schema');
|
|
121
185
|
return { credential, credentialType: org ? vs_agent_model_1.ECS.ORG : vs_agent_model_1.ECS.PERSONA, service };
|
|
122
186
|
}
|
|
123
|
-
async classifySchema(schema) {
|
|
124
|
-
var _a;
|
|
125
|
-
try {
|
|
126
|
-
const parsed = JSON.parse(schema.json_schema);
|
|
127
|
-
const byDigest = await (0, vs_agent_model_1.identifySchema)(parsed);
|
|
128
|
-
if (byDigest)
|
|
129
|
-
return byDigest;
|
|
130
|
-
const title = typeof parsed.title === 'string' ? parsed.title : '';
|
|
131
|
-
return (_a = ECS_TITLE_BY_TYPE[title]) !== null && _a !== void 0 ? _a : null;
|
|
132
|
-
}
|
|
133
|
-
catch (_b) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
187
|
async ensureHolderParticipant(chain, indexer, schema, credentialType) {
|
|
188
|
+
// If this agent controls the schema's ECOSYSTEM root, it has no external ISSUER to seek a
|
|
189
|
+
// HOLDER credential from — it must become the ISSUER itself (see ensureSelfIssuedParticipant).
|
|
190
|
+
const ownRoot = await this.findOwnActiveRoot(indexer, schema.id);
|
|
191
|
+
if (ownRoot) {
|
|
192
|
+
await this.ensureSelfIssuedParticipant(chain, indexer, schema, credentialType, ownRoot);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
138
195
|
const existing = await indexer.listParticipants({
|
|
139
196
|
schemaId: schema.id,
|
|
140
197
|
did: this.agent.did,
|
|
@@ -158,7 +215,47 @@ class EcsBootstrapService {
|
|
|
158
215
|
});
|
|
159
216
|
this.logger.info(`[EcsBootstrap] started HOLDER onboarding ${participantId} for the ECS ${credentialType} schema with validator ${validator.id}`);
|
|
160
217
|
}
|
|
218
|
+
// Unlike findActiveValidator, this does not exclude the agent's own DID.
|
|
219
|
+
async findOwnActiveRoot(indexer, schemaId) {
|
|
220
|
+
if (!this.agent.did)
|
|
221
|
+
return undefined;
|
|
222
|
+
const candidates = await indexer.listParticipants({
|
|
223
|
+
schemaId,
|
|
224
|
+
role: blockchain_1.ParticipantRole.Ecosystem,
|
|
225
|
+
did: this.agent.did,
|
|
226
|
+
participantState: blockchain_1.ParticipantState.Active,
|
|
227
|
+
});
|
|
228
|
+
return candidates.find(p => !p.revoked && !p.slashed && p.did === this.agent.did);
|
|
229
|
+
}
|
|
230
|
+
// Self-validation is spec-legal: [MOD-PP-MSG-3-2-1] checks only the validator side, and
|
|
231
|
+
// [MOD-PP-MSG-1-1] grants an ECOSYSTEM root's own operator the right to validate against it.
|
|
232
|
+
async ensureSelfIssuedParticipant(chain, indexer, schema, credentialType, root) {
|
|
233
|
+
const existing = await indexer.listParticipants({
|
|
234
|
+
schemaId: schema.id,
|
|
235
|
+
did: this.agent.did,
|
|
236
|
+
role: blockchain_1.ParticipantRole.Issuer,
|
|
237
|
+
});
|
|
238
|
+
const usable = existing.find(p => this.isUsableParticipant(p));
|
|
239
|
+
if (usable) {
|
|
240
|
+
this.logger.info(`[EcsBootstrap] reusing self-issued ISSUER participant ${usable.id} for the ECS ${credentialType} schema`);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const { participantId } = await chain.startParticipantOP({
|
|
244
|
+
role: types_1.ISSUER_PARTICIPANT_TYPE,
|
|
245
|
+
validatorParticipantId: root.id,
|
|
246
|
+
did: this.agent.did,
|
|
247
|
+
});
|
|
248
|
+
await chain.setParticipantOPToValidated({
|
|
249
|
+
id: participantId,
|
|
250
|
+
validationFees: 0,
|
|
251
|
+
issuanceFees: 0,
|
|
252
|
+
verificationFees: 0,
|
|
253
|
+
});
|
|
254
|
+
await this.triggerResolverBestEffort(chain, participantId);
|
|
255
|
+
this.logger.info(`[EcsBootstrap] self-issued ISSUER participant ${participantId} for the ECS ${credentialType} schema (ecosystem root ${root.id})`);
|
|
256
|
+
}
|
|
161
257
|
async ensureServiceIssuer(chain, indexer, schema) {
|
|
258
|
+
var _a;
|
|
162
259
|
const existing = await indexer.listParticipants({
|
|
163
260
|
schemaId: schema.id,
|
|
164
261
|
did: this.agent.did,
|
|
@@ -169,15 +266,18 @@ class EcsBootstrapService {
|
|
|
169
266
|
this.logger.info(`[EcsBootstrap] reusing Service ISSUER participant ${usable.id}`);
|
|
170
267
|
return;
|
|
171
268
|
}
|
|
172
|
-
const onChainSchema = await
|
|
269
|
+
const onChainSchema = await indexer
|
|
270
|
+
.getCredentialSchema(schema.id)
|
|
271
|
+
.then(blockchain_1.toCredentialSchema)
|
|
272
|
+
.catch(() => undefined);
|
|
173
273
|
if (!onChainSchema)
|
|
174
274
|
throw new Error(`Service schema ${schema.id} not found on chain`);
|
|
175
275
|
if (onChainSchema.issuerOnboardingMode === ISSUER_ONBOARDING_MODE_OPEN) {
|
|
176
|
-
const operatorAuths = await
|
|
276
|
+
const operatorAuths = await indexer.listOperatorAuthorizations(chain.address);
|
|
177
277
|
if (!operatorAuths.some(a => a.msgTypes.includes(SELF_CREATE_MSG))) {
|
|
178
278
|
throw new Error(`operator ${chain.address} has no OperatorAuthorization covering MsgSelfCreateParticipant (required for OPEN issuer onboarding)`);
|
|
179
279
|
}
|
|
180
|
-
const root = await this.findActiveValidator(indexer, schema.id, blockchain_1.ParticipantRole.Ecosystem);
|
|
280
|
+
const root = (_a = (await this.findOwnActiveRoot(indexer, schema.id))) !== null && _a !== void 0 ? _a : (await this.findActiveValidator(indexer, schema.id, blockchain_1.ParticipantRole.Ecosystem));
|
|
181
281
|
if (!root)
|
|
182
282
|
throw new Error(`no active ECOSYSTEM participant found for Service schema ${schema.id}`);
|
|
183
283
|
const { participantId } = await chain.selfCreateParticipant({
|
|
@@ -186,6 +286,7 @@ class EcsBootstrapService {
|
|
|
186
286
|
did: this.agent.did,
|
|
187
287
|
effectiveUntil: root.effective_until ? new Date(root.effective_until) : undefined,
|
|
188
288
|
});
|
|
289
|
+
await this.triggerResolverBestEffort(chain, participantId);
|
|
189
290
|
this.logger.info(`[EcsBootstrap] self-created Service ISSUER participant ${participantId}`);
|
|
190
291
|
return;
|
|
191
292
|
}
|
|
@@ -211,6 +312,14 @@ class EcsBootstrapService {
|
|
|
211
312
|
});
|
|
212
313
|
return candidates.find(p => !p.revoked && !p.slashed && p.did !== this.agent.did);
|
|
213
314
|
}
|
|
315
|
+
async triggerResolverBestEffort(chain, participantId) {
|
|
316
|
+
try {
|
|
317
|
+
await chain.triggerResolver(participantId);
|
|
318
|
+
}
|
|
319
|
+
catch (error) {
|
|
320
|
+
this.logger.warn(`[EcsBootstrap] TriggerResolver failed for participant ${participantId}: ${error.message}`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
214
323
|
isUsableParticipant(p) {
|
|
215
324
|
return (!p.revoked &&
|
|
216
325
|
!p.slashed &&
|
|
@@ -226,6 +335,9 @@ class EcsBootstrapService {
|
|
|
226
335
|
throw new Error('delegated bootstrap requires a public DID');
|
|
227
336
|
if (!this.indexer)
|
|
228
337
|
throw new Error('delegated bootstrap requires the Verana indexer');
|
|
338
|
+
const chain = this.agent.veranaChain;
|
|
339
|
+
if (!chain)
|
|
340
|
+
throw new Error('delegated bootstrap requires the Verana chain');
|
|
229
341
|
if (!this.options.verifyPeer) {
|
|
230
342
|
throw new Error(`cannot verify parent VS ${parentDid}: verifiable public registries are not configured (set VERANA_CHAIN_ID)`);
|
|
231
343
|
}
|
|
@@ -233,68 +345,81 @@ class EcsBootstrapService {
|
|
|
233
345
|
if (!verified) {
|
|
234
346
|
throw new Error(`parent VS ${parentDid} is not a Verifiable Service`);
|
|
235
347
|
}
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
348
|
+
const validator = await this.findParentServiceIssuer(parentDid);
|
|
349
|
+
await this.assertTrustedEcosystem(validator.schema_id);
|
|
350
|
+
// An existing entry means the process already ran, or the operator provisioned it.
|
|
351
|
+
const own = await this.indexer.listParticipants({
|
|
352
|
+
did: this.agent.did,
|
|
353
|
+
role: blockchain_1.ParticipantRole.Holder,
|
|
354
|
+
schemaId: validator.schema_id,
|
|
355
|
+
});
|
|
356
|
+
const existing = own.find(participant => this.isUsableParticipant(participant));
|
|
357
|
+
if (existing) {
|
|
358
|
+
// The parent named by AGENT_DELEGATED_PARENT_VS_DID must be the validator of the entry;
|
|
359
|
+
// any other validator would issue the Service credential of another accountable party.
|
|
360
|
+
if (Number(existing.validator_participant_id) !== validator.id) {
|
|
361
|
+
throw new Error(`HOLDER participant ${existing.id} for the ECS Service schema ${validator.schema_id} names validator ${existing.validator_participant_id}, not the parent VS ${parentDid} (validator ${validator.id})`);
|
|
362
|
+
}
|
|
363
|
+
this.logger.info(`[EcsBootstrap] HOLDER participant ${existing.id} for the ECS Service schema ${validator.schema_id} already exists; the onboarding process continues on its own`);
|
|
364
|
+
return;
|
|
249
365
|
}
|
|
250
|
-
|
|
251
|
-
|
|
366
|
+
// [VSA-VTI-FLOW-OP-NEW] step 1: the applicant submits StartParticipantOP. The agent then
|
|
367
|
+
// reacts to its own chain event and sends the onboarding request, so nothing is awaited here.
|
|
368
|
+
// Direct Issuance does not apply: it needs holder_onboarding_mode = PERMISSIONLESS, and the
|
|
369
|
+
// ECS Service schema uses ISSUER_ONBOARDING_PROCESS.
|
|
370
|
+
const skip = await this.operatorSkipReason(chain);
|
|
371
|
+
if (skip) {
|
|
372
|
+
this.logger.info(`[EcsBootstrap] delegated bootstrap skipped: ${skip}; this agent expects its HOLDER participant to be provisioned out of band, with validator ${validator.id}`);
|
|
373
|
+
return;
|
|
252
374
|
}
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
agentParticipantId: '0',
|
|
258
|
-
walletAgentParticipantId: '0',
|
|
375
|
+
const { participantId } = await chain.startParticipantOP({
|
|
376
|
+
role: types_1.HOLDER_PARTICIPANT_TYPE,
|
|
377
|
+
validatorParticipantId: validator.id,
|
|
378
|
+
did: this.agent.did,
|
|
259
379
|
});
|
|
260
|
-
this.logger.info(`[EcsBootstrap]
|
|
261
|
-
await this.awaitDelegatedOutcome(record.id, parentDid);
|
|
380
|
+
this.logger.info(`[EcsBootstrap] started HOLDER onboarding ${participantId} for the ECS Service schema ${validator.schema_id} with parent VS ${parentDid} (validator ${validator.id})`);
|
|
262
381
|
}
|
|
263
|
-
async
|
|
382
|
+
async findParentServiceIssuer(parentDid) {
|
|
264
383
|
const participants = await this.indexer.listParticipants({
|
|
265
384
|
did: parentDid,
|
|
266
385
|
role: blockchain_1.ParticipantRole.Issuer,
|
|
267
386
|
participantState: blockchain_1.ParticipantState.Active,
|
|
268
387
|
});
|
|
269
388
|
for (const participant of participants) {
|
|
389
|
+
if (participant.revoked || participant.slashed)
|
|
390
|
+
continue;
|
|
270
391
|
const schema = await this.indexer.getCredentialSchema(participant.schema_id).catch(() => undefined);
|
|
271
392
|
if (!schema)
|
|
272
393
|
continue;
|
|
273
|
-
if ((await
|
|
274
|
-
return
|
|
394
|
+
if ((await (0, vs_agent_model_1.classifyEcsSchema)(schema.json_schema)) === vs_agent_model_1.ECS.SERVICE)
|
|
395
|
+
return participant;
|
|
275
396
|
}
|
|
276
397
|
throw new Error(`parent VS ${parentDid} holds no active ISSUER participant for an ECS Service schema`);
|
|
277
398
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
399
|
+
// WL-ECS: an allowlist is optional in delegated mode, but it binds the flow once the operator sets it.
|
|
400
|
+
async assertTrustedEcosystem(schemaId) {
|
|
401
|
+
var _a;
|
|
402
|
+
const trusted = this.options.trustedEcosystemDids;
|
|
403
|
+
if (!(trusted === null || trusted === void 0 ? void 0 : trusted.length))
|
|
404
|
+
return;
|
|
405
|
+
const schema = await this.indexer.getCredentialSchema(schemaId).catch(() => undefined);
|
|
406
|
+
const ecosystem = schema
|
|
407
|
+
? await this.indexer.getEcosystem(schema.ecosystem_id).catch(() => undefined)
|
|
408
|
+
: undefined;
|
|
409
|
+
if (!ecosystem || ecosystem.archived || !trusted.includes(ecosystem.did)) {
|
|
410
|
+
throw new Error(`the ECS Service schema ${schemaId} belongs to ecosystem ${(_a = ecosystem === null || ecosystem === void 0 ? void 0 : ecosystem.did) !== null && _a !== void 0 ? _a : '<unresolvable>'}, which TRUSTED_ECS_ECOSYSTEM_DIDS does not list`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
async onboardingClaims(schemaId) {
|
|
414
|
+
if (!this.agent.ecsClaims || !this.agent.did)
|
|
415
|
+
return undefined;
|
|
416
|
+
const schema = await this.agent.indexer.getCredentialSchema(schemaId);
|
|
417
|
+
const ecsKey = schema && (await (0, vs_agent_model_1.classifyEcsSchema)(schema.json_schema));
|
|
418
|
+
if (!ecsKey) {
|
|
419
|
+
this.agent.config.logger.warn(`[ecs-claims] schema ${schemaId} is not an ECS schema, sending no claims`);
|
|
420
|
+
return undefined;
|
|
421
|
+
}
|
|
422
|
+
return await (0, ecsClaims_1.composeEcsClaims)(this.agent.ecsClaims, ecsKey, this.agent.config.logger);
|
|
298
423
|
}
|
|
299
424
|
}
|
|
300
425
|
exports.EcsBootstrapService = EcsBootstrapService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EcsBootstrapService.js","sourceRoot":"","sources":["../../src/bootstrap/EcsBootstrapService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EcsBootstrapService.js","sourceRoot":"","sources":["../../src/bootstrap/EcsBootstrapService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { AgentContext, DidResolutionOptions, DidResolutionResult, WebDidResolver } from '@credo-ts/core';
|
|
2
2
|
import { ParsedDID } from 'did-resolver';
|
|
3
3
|
export declare class CachedWebDidResolver extends WebDidResolver {
|
|
4
|
-
private publicApiBaseUrl;
|
|
5
|
-
constructor(options: {
|
|
6
|
-
publicApiBaseUrl: string;
|
|
7
|
-
});
|
|
8
4
|
resolve(agentContext: AgentContext, did: string, parsed: ParsedDID, didResolutionOptions: DidResolutionOptions): Promise<DidResolutionResult>;
|
|
9
5
|
}
|
|
@@ -4,10 +4,6 @@ exports.CachedWebDidResolver = void 0;
|
|
|
4
4
|
const core_1 = require("@credo-ts/core");
|
|
5
5
|
const legacyDidWeb_1 = require("./legacyDidWeb");
|
|
6
6
|
class CachedWebDidResolver extends core_1.WebDidResolver {
|
|
7
|
-
constructor(options) {
|
|
8
|
-
super();
|
|
9
|
-
this.publicApiBaseUrl = options.publicApiBaseUrl;
|
|
10
|
-
}
|
|
11
7
|
async resolve(agentContext, did, parsed, didResolutionOptions) {
|
|
12
8
|
// First check within our own public dids, as there is no need to resolve it through HTTPS
|
|
13
9
|
const didRepository = agentContext.dependencyManager.resolve(core_1.DidRepository);
|
|
@@ -28,7 +24,7 @@ class CachedWebDidResolver extends core_1.WebDidResolver {
|
|
|
28
24
|
method: 'webvh',
|
|
29
25
|
});
|
|
30
26
|
if (webVhdDidRecord === null || webVhdDidRecord === void 0 ? void 0 : webVhdDidRecord.didDocument) {
|
|
31
|
-
const legacyDidDocument = (0, legacyDidWeb_1.getLegacyDidDocument)(webVhdDidRecord.didDocument
|
|
27
|
+
const legacyDidDocument = (0, legacyDidWeb_1.getLegacyDidDocument)(webVhdDidRecord.didDocument);
|
|
32
28
|
if (legacyDidDocument) {
|
|
33
29
|
return {
|
|
34
30
|
didDocument: legacyDidDocument,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedWebDidResolver.js","sourceRoot":"","sources":["../../src/did/CachedWebDidResolver.ts"],"names":[],"mappings":";;;AAAA,yCAMuB;AAGvB,iDAAqD;AAErD,MAAa,oBAAqB,SAAQ,qBAAc;
|
|
1
|
+
{"version":3,"file":"CachedWebDidResolver.js","sourceRoot":"","sources":["../../src/did/CachedWebDidResolver.ts"],"names":[],"mappings":";;;AAAA,yCAMuB;AAGvB,iDAAqD;AAErD,MAAa,oBAAqB,SAAQ,qBAAc;IAC/C,KAAK,CAAC,OAAO,CAClB,YAA0B,EAC1B,GAAW,EACX,MAAiB,EACjB,oBAA0C;QAE1C,0FAA0F;QAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAa,CAAC,CAAA;QAC3E,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,YAAY,EAAE;YACpE,GAAG;YACH,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAC;YAC3B,OAAO;gBACL,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,mBAAmB,EAAE,EAAE;gBACvB,qBAAqB,EAAE,EAAE;aAC1B,CAAA;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,YAAY,EAAE;YAC1E,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QAEF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,EAAE,CAAC;YACjC,MAAM,iBAAiB,GAAG,IAAA,mCAAoB,EAAC,eAAe,CAAC,WAAW,CAAC,CAAA;YAC3E,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO;oBACL,WAAW,EAAE,iBAAiB;oBAC9B,mBAAmB,EAAE,EAAE;oBACvB,qBAAqB,EAAE,EAAE;iBAC1B,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACvE,CAAC;CACF;AAzCD,oDAyCC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DidDocument } from '@credo-ts/core';
|
|
2
|
+
export type ArtifactServiceMethod = 'web' | 'webvh';
|
|
3
|
+
export interface ArtifactServiceOptions {
|
|
4
|
+
method: ArtifactServiceMethod;
|
|
5
|
+
publicApiBaseUrl: string;
|
|
6
|
+
}
|
|
7
|
+
/** Declares the artifact service of the given method, and only that one. */
|
|
8
|
+
export declare function applyArtifactServices(didDocument: DidDocument, options: ArtifactServiceOptions): void;
|
|
9
|
+
/** Strips every artifact service: the parallel did:web document advertises none. */
|
|
10
|
+
export declare function removeArtifactServices(didDocument: DidDocument): void;
|
|
11
|
+
export declare function artifactServicesMatch(didDocument: DidDocument, options: ArtifactServiceOptions): boolean;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyArtifactServices = applyArtifactServices;
|
|
4
|
+
exports.removeArtifactServices = removeArtifactServices;
|
|
5
|
+
exports.artifactServicesMatch = artifactServicesMatch;
|
|
6
|
+
const core_1 = require("@credo-ts/core");
|
|
7
|
+
const ANONCREDS_REGISTRY_SERVICE_TYPE = 'AnonCredsRegistry';
|
|
8
|
+
const RELATIVE_REF_SERVICE_TYPE = 'relativeRef';
|
|
9
|
+
const ARTIFACT_SERVICE_TYPES = [ANONCREDS_REGISTRY_SERVICE_TYPE, RELATIVE_REF_SERVICE_TYPE];
|
|
10
|
+
/** Declares the artifact service of the given method, and only that one. */
|
|
11
|
+
function applyArtifactServices(didDocument, options) {
|
|
12
|
+
var _a;
|
|
13
|
+
removeArtifactServices(didDocument);
|
|
14
|
+
didDocument.service = [...((_a = didDocument.service) !== null && _a !== void 0 ? _a : []), ...expectedArtifactServices(didDocument.id, options)];
|
|
15
|
+
}
|
|
16
|
+
/** Strips every artifact service: the parallel did:web document advertises none. */
|
|
17
|
+
function removeArtifactServices(didDocument) {
|
|
18
|
+
var _a;
|
|
19
|
+
didDocument.service = ((_a = didDocument.service) !== null && _a !== void 0 ? _a : []).filter(service => !ARTIFACT_SERVICE_TYPES.includes(service.type));
|
|
20
|
+
}
|
|
21
|
+
function artifactServicesMatch(didDocument, options) {
|
|
22
|
+
var _a;
|
|
23
|
+
const current = ((_a = didDocument.service) !== null && _a !== void 0 ? _a : []).filter(service => ARTIFACT_SERVICE_TYPES.includes(service.type));
|
|
24
|
+
const expected = expectedArtifactServices(didDocument.id, options);
|
|
25
|
+
return (current.length === expected.length &&
|
|
26
|
+
expected.every(service => current.some(entry => entry.id === service.id &&
|
|
27
|
+
entry.type === service.type &&
|
|
28
|
+
entry.serviceEndpoint === service.serviceEndpoint)));
|
|
29
|
+
}
|
|
30
|
+
function expectedArtifactServices(did, options) {
|
|
31
|
+
const { method, publicApiBaseUrl } = options;
|
|
32
|
+
return method === 'web'
|
|
33
|
+
? [
|
|
34
|
+
new core_1.DidDocumentService({
|
|
35
|
+
id: `${did}#anoncreds`,
|
|
36
|
+
serviceEndpoint: `${publicApiBaseUrl}/anoncreds/v1`,
|
|
37
|
+
type: ANONCREDS_REGISTRY_SERVICE_TYPE,
|
|
38
|
+
}),
|
|
39
|
+
]
|
|
40
|
+
: [
|
|
41
|
+
new core_1.DidDocumentService({
|
|
42
|
+
id: `${did}#files`,
|
|
43
|
+
serviceEndpoint: publicApiBaseUrl,
|
|
44
|
+
type: RELATIVE_REF_SERVICE_TYPE,
|
|
45
|
+
}),
|
|
46
|
+
];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=artifactServices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifactServices.js","sourceRoot":"","sources":["../../src/did/artifactServices.ts"],"names":[],"mappings":";;AAeA,sDAGC;AAGD,wDAIC;AAED,sDAeC;AA1CD,yCAAgE;AAEhE,MAAM,+BAA+B,GAAG,mBAAmB,CAAA;AAC3D,MAAM,yBAAyB,GAAG,aAAa,CAAA;AAE/C,MAAM,sBAAsB,GAAsB,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,CAAA;AAS9G,4EAA4E;AAC5E,SAAgB,qBAAqB,CAAC,WAAwB,EAAE,OAA+B;;IAC7F,sBAAsB,CAAC,WAAW,CAAC,CAAA;IACnC,WAAW,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC,EAAE,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9G,CAAC;AAED,oFAAoF;AACpF,SAAgB,sBAAsB,CAAC,WAAwB;;IAC7D,WAAW,CAAC,OAAO,GAAG,CAAC,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,MAAM,CACtD,OAAO,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAC1D,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,WAAwB,EAAE,OAA+B;;IAC7F,MAAM,OAAO,GAAG,CAAC,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5G,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAElE,OAAO,CACL,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CACvB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;YACvB,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;YAC3B,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,eAAe,CACpD,CACF,CACF,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW,EAAE,OAA+B;IAC5E,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAA;IAE5C,OAAO,MAAM,KAAK,KAAK;QACrB,CAAC,CAAC;YACE,IAAI,yBAAkB,CAAC;gBACrB,EAAE,EAAE,GAAG,GAAG,YAAY;gBACtB,eAAe,EAAE,GAAG,gBAAgB,eAAe;gBACnD,IAAI,EAAE,+BAA+B;aACtC,CAAC;SACH;QACH,CAAC,CAAC;YACE,IAAI,yBAAkB,CAAC;gBACrB,EAAE,EAAE,GAAG,GAAG,QAAQ;gBAClB,eAAe,EAAE,gBAAgB;gBACjC,IAAI,EAAE,yBAAyB;aAChC,CAAC;SACH,CAAA;AACP,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { DidDocument } from '@credo-ts/core';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the legacy did:web form of a DID: the DID itself when it is already a did:web, and the
|
|
4
|
+
* SCID-less did:web of a did:webvh. Returns undefined for any other method.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getLegacyDidWeb(did: string): string | undefined;
|
|
2
7
|
/**
|
|
3
8
|
* Returns a Legacy did:web document, based on an input document. If it is already a did:web,
|
|
4
9
|
* it returns the same document.
|
|
5
10
|
* If it isn't supported (i.e. it is not a did:webvh DID Document), it returns undefined
|
|
6
|
-
* @param didDocument
|
|
7
|
-
* @param publicApiBaseUrl
|
|
8
|
-
* @returns
|
|
9
11
|
*/
|
|
10
|
-
export declare function getLegacyDidDocument(didDocument: DidDocument
|
|
12
|
+
export declare function getLegacyDidDocument(didDocument: DidDocument): DidDocument | undefined;
|