@verana-labs/vs-agent-sdk 1.12.0-dev.11 → 1.12.0-dev.13
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.js +6 -5
- package/build/agent/VsAgent.js.map +1 -1
- package/build/blockchain/IndexerWebSocketService.d.ts +14 -9
- package/build/blockchain/IndexerWebSocketService.js +173 -98
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- package/build/blockchain/VeranaChainService.d.ts +4 -1
- package/build/blockchain/VeranaChainService.js +13 -0
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaHelpers.js +1 -0
- package/build/blockchain/VeranaHelpers.js.map +1 -1
- package/build/blockchain/VeranaIndexerService.d.ts +1 -1
- package/build/blockchain/VeranaIndexerService.js +9 -6
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/indexerSync.d.ts +10 -0
- package/build/blockchain/indexerSync.js +34 -0
- package/build/blockchain/indexerSync.js.map +1 -0
- package/build/blockchain/types.d.ts +11 -0
- package/build/did/migrateWebVhVersionTime.d.ts +9 -0
- package/build/did/migrateWebVhVersionTime.js +191 -0
- package/build/did/migrateWebVhVersionTime.js.map +1 -0
- package/build/utils/util.d.ts +1 -1
- package/build/utils/util.js +13 -5
- package/build/utils/util.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeranaChainService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaChainService.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,yDAA+D;AAC/D,+CAOyB;AACzB,2DAAqD;AACrD,4DAAwG;AAExG,
|
|
1
|
+
{"version":3,"file":"VeranaChainService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaChainService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeranaHelpers.js","sourceRoot":"","sources":["../../src/blockchain/VeranaHelpers.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"VeranaHelpers.js","sourceRoot":"","sources":["../../src/blockchain/VeranaHelpers.ts"],"names":[],"mappings":";;AAcA,sCAIC;AAED,sCAQC;AAxBD,mCAAoD;AAEpD,MAAM,UAAU,GAAG,GAAoB,EAAE,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,EAAE;IACd,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;CAChB,CAAC,CAAA;AAEK,KAAK,UAAU,aAAa,CAAC,KAAc;;IAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAS,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,EAAE,CAAA;IAChC,OAAO,MAAC,MAAM,CAAC,OAAsC,mCAAI,UAAU,EAAE,CAAA;AACvE,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAc,EAAE,KAAsB;IACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAS,CAAC,CAAA;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,GAAG,KAA8B,CAAA;QACjD,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,iBAAS,EAAE,OAAO,EAAE,KAA8B,EAAE,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@ export declare class VeranaIndexerService {
|
|
|
3
3
|
private readonly config;
|
|
4
4
|
private readonly baseUrl;
|
|
5
5
|
constructor(config: VeranaIdxConfig);
|
|
6
|
-
getEvents(agentDid: string, afterBlockHeight?: number, limit?: number): Promise<IndexerEventsResponse>;
|
|
6
|
+
getEvents(agentDid: string, afterBlockHeight?: number, limit?: number, corporationId?: number): Promise<IndexerEventsResponse>;
|
|
7
7
|
getEcosystem(id: string | number): Promise<EcosystemDto>;
|
|
8
8
|
getCredentialSchema(id: string | number): Promise<CredentialSchemaDto>;
|
|
9
9
|
getParticipant(id: string | number): Promise<ParticipantDto>;
|
|
@@ -2,29 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VeranaIndexerService = void 0;
|
|
4
4
|
const util_1 = require("../utils/util");
|
|
5
|
+
// Timeout so one stuck request cannot block the whole sync queue.
|
|
6
|
+
const REQUEST_TIMEOUT_MS = 30000;
|
|
5
7
|
class VeranaIndexerService {
|
|
6
8
|
constructor(config) {
|
|
7
9
|
this.config = config;
|
|
8
10
|
this.baseUrl = config.baseUrl.replace(/\/$/, '');
|
|
9
11
|
}
|
|
10
|
-
async getEvents(agentDid, afterBlockHeight = 0, limit = 500) {
|
|
12
|
+
async getEvents(agentDid, afterBlockHeight = 0, limit = 500, corporationId) {
|
|
11
13
|
this.config.logger.debug(`[VeranaIndexer] getEvents after_block=${afterBlockHeight}`);
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
+
const scope = corporationId != null ? `corporation_id=${corporationId}` : `dids=${encodeURIComponent(agentDid)}`;
|
|
15
|
+
const url = `${this.baseUrl}/v4/indexer/events?${scope}&after_block_height=${afterBlockHeight}&limit=${limit}`;
|
|
16
|
+
return (0, util_1.fetchJson)(url, REQUEST_TIMEOUT_MS);
|
|
14
17
|
}
|
|
15
18
|
async getEcosystem(id) {
|
|
16
19
|
this.config.logger.debug(`[VeranaIndexer] getEcosystem id=${id}`);
|
|
17
|
-
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/
|
|
20
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/ecosystem/get/${id}`, REQUEST_TIMEOUT_MS);
|
|
18
21
|
return data.ecosystem;
|
|
19
22
|
}
|
|
20
23
|
async getCredentialSchema(id) {
|
|
21
24
|
this.config.logger.debug(`[VeranaIndexer] getCredentialSchema id=${id}`);
|
|
22
|
-
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/
|
|
25
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/credential-schema/get/${id}`, REQUEST_TIMEOUT_MS);
|
|
23
26
|
return data.schema;
|
|
24
27
|
}
|
|
25
28
|
async getParticipant(id) {
|
|
26
29
|
this.config.logger.debug(`[VeranaIndexer] getParticipant id=${id}`);
|
|
27
|
-
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/
|
|
30
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/participant/get/${id}`, REQUEST_TIMEOUT_MS);
|
|
28
31
|
return data.participant;
|
|
29
32
|
}
|
|
30
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeranaIndexerService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaIndexerService.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;AAUzC,MAAa,oBAAoB;IAG/B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"VeranaIndexerService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaIndexerService.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;AAUzC,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,KAAM,CAAA;AAEjC,MAAa,oBAAoB;IAG/B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,QAAgB,EAChB,gBAAgB,GAAG,CAAC,EACpB,KAAK,GAAG,GAAG,EACX,aAAsB;QAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,gBAAgB,EAAE,CAAC,CAAA;QACrF,MAAM,KAAK,GACT,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QACpG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,sBAAsB,KAAK,uBAAuB,gBAAgB,UAAU,KAAK,EAAE,CAAA;QAC9G,OAAO,IAAA,gBAAS,EAAwB,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAmB;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,EAAE,EAAE,EACxC,kBAAkB,CACnB,CAAA;QACD,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAmB;QAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,CAAC,CAAA;QACxE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAC1B,GAAG,IAAI,CAAC,OAAO,6BAA6B,EAAE,EAAE,EAChD,kBAAkB,CACnB,CAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAmB;QACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAC1B,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE,EAAE,EAC1C,kBAAkB,CACnB,CAAA;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;CACF;AA9CD,oDA8CC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IndexerEventRecord } from './types';
|
|
2
|
+
export declare function eventKey(event: IndexerEventRecord): string;
|
|
3
|
+
export declare function isProcessableEvent(event: IndexerEventRecord): boolean;
|
|
4
|
+
export declare function sortEventsByPosition(events: IndexerEventRecord[]): IndexerEventRecord[];
|
|
5
|
+
export interface RestCursorResult {
|
|
6
|
+
done: boolean;
|
|
7
|
+
cursor: number;
|
|
8
|
+
blockExceedsPage: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function nextRestCursor(events: IndexerEventRecord[], currentCursor: number, pageLimit: number): RestCursorResult;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventKey = eventKey;
|
|
4
|
+
exports.isProcessableEvent = isProcessableEvent;
|
|
5
|
+
exports.sortEventsByPosition = sortEventsByPosition;
|
|
6
|
+
exports.nextRestCursor = nextRestCursor;
|
|
7
|
+
function eventKey(event) {
|
|
8
|
+
return `${event.tx_hash}:${event.payload.message_index}`;
|
|
9
|
+
}
|
|
10
|
+
function isProcessableEvent(event) {
|
|
11
|
+
var _a;
|
|
12
|
+
return event.type === 'indexer-event' && event.block_height > 0 && Boolean((_a = event.payload) === null || _a === void 0 ? void 0 : _a.sender);
|
|
13
|
+
}
|
|
14
|
+
function sortEventsByPosition(events) {
|
|
15
|
+
return [...events].sort((a, b) => {
|
|
16
|
+
if (a.block_height !== b.block_height)
|
|
17
|
+
return a.block_height - b.block_height;
|
|
18
|
+
if (a.payload.tx_index !== b.payload.tx_index)
|
|
19
|
+
return a.payload.tx_index - b.payload.tx_index;
|
|
20
|
+
return a.payload.message_index - b.payload.message_index;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// A full page can stop partway through a block, so step back one block and let dedup skip the
|
|
24
|
+
// repeats. If one block fills the whole page, move past it.
|
|
25
|
+
function nextRestCursor(events, currentCursor, pageLimit) {
|
|
26
|
+
if (events.length < pageLimit)
|
|
27
|
+
return { done: true, cursor: currentCursor, blockExceedsPage: false };
|
|
28
|
+
const maxBlock = events.reduce((max, e) => (e.block_height > max ? e.block_height : max), currentCursor);
|
|
29
|
+
const rewound = maxBlock - 1;
|
|
30
|
+
if (rewound > currentCursor)
|
|
31
|
+
return { done: false, cursor: rewound, blockExceedsPage: false };
|
|
32
|
+
return { done: false, cursor: maxBlock, blockExceedsPage: true };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=indexerSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexerSync.js","sourceRoot":"","sources":["../../src/blockchain/indexerSync.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,gDAEC;AAED,oDAMC;AAUD,wCAUC;AAlCD,SAAgB,QAAQ,CAAC,KAAyB;IAChD,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;AAC1D,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAyB;;IAC1D,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,OAAO,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,CAAC,CAAA;AACnG,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAA4B;IAC/D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAA;QAC7E,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;QAC7F,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,CAAA;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAQD,8FAA8F;AAC9F,4DAA4D;AAC5D,SAAgB,cAAc,CAC5B,MAA4B,EAC5B,aAAqB,EACrB,SAAiB;IAEjB,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA;IACpG,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAA;IACxG,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAA;IAC5B,IAAI,OAAO,GAAG,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAA;IAC7F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -114,6 +114,8 @@ export interface VeranaSyncState {
|
|
|
114
114
|
ecosystems: Record<string, SyncedEcosystem>;
|
|
115
115
|
credentialSchemas: Record<string, SyncedCredentialSchema>;
|
|
116
116
|
participants: Record<string, SyncedParticipant>;
|
|
117
|
+
partialBlock?: number;
|
|
118
|
+
partialKeys?: string[];
|
|
117
119
|
}
|
|
118
120
|
export interface EcosystemDto {
|
|
119
121
|
id: number;
|
|
@@ -172,6 +174,15 @@ export interface ParticipantQueryClient {
|
|
|
172
174
|
session?: unknown;
|
|
173
175
|
}>;
|
|
174
176
|
}
|
|
177
|
+
export interface DelegationQueryClient {
|
|
178
|
+
ListVSOperatorAuthorizations(req: {
|
|
179
|
+
corporationId: number;
|
|
180
|
+
vsOperator: string;
|
|
181
|
+
responseMaxSize: number;
|
|
182
|
+
}): Promise<{
|
|
183
|
+
vsOperatorAuthorizations: unknown[];
|
|
184
|
+
}>;
|
|
185
|
+
}
|
|
175
186
|
export interface VeranaChainConfig {
|
|
176
187
|
rpcUrl: string;
|
|
177
188
|
chainId?: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AgentContext, DidRecord, Logger } from '@credo-ts/core';
|
|
2
|
+
import { DIDLog, Signer, Verifier } from 'didwebvh-ts';
|
|
3
|
+
export interface RebuildWebVhVersionTimesOptions {
|
|
4
|
+
signer: Signer;
|
|
5
|
+
verifier: Verifier;
|
|
6
|
+
domain?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function rebuildWebVhVersionTimes(log: DIDLog, { signer, verifier, domain }: RebuildWebVhVersionTimesOptions): Promise<DIDLog | null>;
|
|
9
|
+
export declare function migrateWebVhVersionTimeIfBroken(agentContext: AgentContext, didRecord: DidRecord, logger: Logger): Promise<boolean>;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rebuildWebVhVersionTimes = rebuildWebVhVersionTimes;
|
|
4
|
+
exports.migrateWebVhVersionTimeIfBroken = migrateWebVhVersionTimeIfBroken;
|
|
5
|
+
const askar_1 = require("@credo-ts/askar");
|
|
6
|
+
const core_1 = require("@credo-ts/core");
|
|
7
|
+
const askar_shared_1 = require("@openwallet-foundation/askar-shared");
|
|
8
|
+
const didwebvh_ts_1 = require("didwebvh-ts");
|
|
9
|
+
// didwebvh-ts >=2.8.0 enforces the spec rule that each entry's versionTime is strictly greater
|
|
10
|
+
// than the previous one; logs written by the old create+update-at-init flow share a second.
|
|
11
|
+
// Hash-chain errors are accepted too: a hash break can mask a same-second pair behind it,
|
|
12
|
+
// and the rebuild recomputes hashes anyway.
|
|
13
|
+
const REBUILDABLE_ERROR = /must be greater than previous entry time|hash chain broken/i;
|
|
14
|
+
class KmsVerifier {
|
|
15
|
+
constructor(agentContext) {
|
|
16
|
+
this.agentContext = agentContext;
|
|
17
|
+
}
|
|
18
|
+
async verify(signature, message, publicKey) {
|
|
19
|
+
try {
|
|
20
|
+
const kms = this.agentContext.dependencyManager.resolve(core_1.Kms.KeyManagementApi);
|
|
21
|
+
const publicJwk = core_1.Kms.PublicJwk.fromPublicKey({ kty: 'OKP', crv: 'Ed25519', publicKey });
|
|
22
|
+
const { verified } = await kms.verify({
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
key: { publicJwk: publicJwk.toJson() },
|
|
25
|
+
algorithm: 'EdDSA',
|
|
26
|
+
signature,
|
|
27
|
+
data: message,
|
|
28
|
+
});
|
|
29
|
+
return verified;
|
|
30
|
+
}
|
|
31
|
+
catch (_a) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class KmsSigner {
|
|
37
|
+
constructor(agentContext, kmsKeyId, publicKeyMultibase) {
|
|
38
|
+
this.agentContext = agentContext;
|
|
39
|
+
this.kmsKeyId = kmsKeyId;
|
|
40
|
+
this.publicKeyMultibase = publicKeyMultibase;
|
|
41
|
+
}
|
|
42
|
+
getVerificationMethodId() {
|
|
43
|
+
return `did:key:${this.publicKeyMultibase}`;
|
|
44
|
+
}
|
|
45
|
+
async sign(input) {
|
|
46
|
+
const kms = this.agentContext.dependencyManager.resolve(core_1.Kms.KeyManagementApi);
|
|
47
|
+
const data = await (0, didwebvh_ts_1.prepareDataForSigning)(input.document, input.proof);
|
|
48
|
+
const { signature } = await kms.sign({
|
|
49
|
+
keyId: this.kmsKeyId,
|
|
50
|
+
algorithm: 'EdDSA',
|
|
51
|
+
data,
|
|
52
|
+
});
|
|
53
|
+
return { proofValue: (0, didwebvh_ts_1.multibaseEncode)(signature, didwebvh_ts_1.MultibaseEncoding.BASE58_BTC) };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
const normalizeMethodArray = (arr) =>
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
arr === null || arr === void 0 ? void 0 : arr.map((item) => (typeof item === 'string' ? item : item.id));
|
|
60
|
+
// Compare at second precision because the output is second-truncated.
|
|
61
|
+
function nextVersionTime(previous, desired) {
|
|
62
|
+
const parseSeconds = (value) => Math.floor(Date.parse(value) / 1000) * 1000;
|
|
63
|
+
const previousMs = parseSeconds(previous);
|
|
64
|
+
const desiredMs = parseSeconds(desired);
|
|
65
|
+
const chosen = Number.isNaN(desiredMs) || desiredMs <= previousMs ? previousMs + 1000 : desiredMs;
|
|
66
|
+
return new Date(chosen).toISOString().replace(/\.\d+Z$/, 'Z');
|
|
67
|
+
}
|
|
68
|
+
async function tryResolveLog(log, verifier) {
|
|
69
|
+
try {
|
|
70
|
+
await (0, didwebvh_ts_1.resolveDIDFromLog)(log, { verifier });
|
|
71
|
+
return { ok: true };
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return { ok: false, reason: error instanceof Error ? error.message : String(error) };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function rebuildWebVhVersionTimes(log, { signer, verifier, domain }) {
|
|
78
|
+
var _a, _b, _c;
|
|
79
|
+
if (!log || log.length < 2)
|
|
80
|
+
return null;
|
|
81
|
+
const initial = await tryResolveLog(log, verifier);
|
|
82
|
+
if (initial.ok)
|
|
83
|
+
return null;
|
|
84
|
+
if (!REBUILDABLE_ERROR.test(initial.reason))
|
|
85
|
+
return null;
|
|
86
|
+
const originalScid = log[0].parameters.scid;
|
|
87
|
+
let newLog = [log[0]];
|
|
88
|
+
for (let i = 1; i < log.length; i++) {
|
|
89
|
+
const oldEntry = log[i];
|
|
90
|
+
const oldState = oldEntry.state;
|
|
91
|
+
const oldParams = oldEntry.parameters;
|
|
92
|
+
const lastParams = newLog[newLog.length - 1].parameters;
|
|
93
|
+
const activeUpdateKeys = (_a = lastParams.updateKeys) !== null && _a !== void 0 ? _a : [];
|
|
94
|
+
if (activeUpdateKeys.length === 0) {
|
|
95
|
+
throw new Error(`Cannot rebuild webvh log: no active updateKeys at entry ${i + 1}`);
|
|
96
|
+
}
|
|
97
|
+
const controllerValue = Array.isArray(oldState.controller) ? oldState.controller[0] : oldState.controller;
|
|
98
|
+
const { log: rebuilt } = await (0, didwebvh_ts_1.updateDID)({
|
|
99
|
+
log: newLog,
|
|
100
|
+
signer,
|
|
101
|
+
verifier,
|
|
102
|
+
domain,
|
|
103
|
+
updateKeys: (_b = oldParams.updateKeys) !== null && _b !== void 0 ? _b : activeUpdateKeys,
|
|
104
|
+
verificationMethods: oldState.verificationMethod,
|
|
105
|
+
services: oldState.service,
|
|
106
|
+
controller: controllerValue,
|
|
107
|
+
authentication: normalizeMethodArray(oldState.authentication),
|
|
108
|
+
assertionMethod: normalizeMethodArray(oldState.assertionMethod),
|
|
109
|
+
keyAgreement: normalizeMethodArray(oldState.keyAgreement),
|
|
110
|
+
alsoKnownAs: oldState.alsoKnownAs,
|
|
111
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
|
+
context: oldState['@context'],
|
|
113
|
+
portable: oldParams.portable,
|
|
114
|
+
nextKeyHashes: oldParams.nextKeyHashes,
|
|
115
|
+
witness: oldParams.witness && (((_c = oldParams.witness.witnesses) === null || _c === void 0 ? void 0 : _c.length) || oldParams.witness.threshold)
|
|
116
|
+
? oldParams.witness
|
|
117
|
+
: undefined,
|
|
118
|
+
watchers: oldParams.watchers,
|
|
119
|
+
updated: nextVersionTime(newLog[newLog.length - 1].versionTime, oldEntry.versionTime),
|
|
120
|
+
});
|
|
121
|
+
newLog = rebuilt;
|
|
122
|
+
}
|
|
123
|
+
const verify = await tryResolveLog(newLog, verifier);
|
|
124
|
+
if (!verify.ok) {
|
|
125
|
+
throw new Error(`Rebuilt webvh log is still invalid: ${verify.reason}`);
|
|
126
|
+
}
|
|
127
|
+
if (newLog[0].parameters.scid !== originalScid) {
|
|
128
|
+
throw new Error(`Rebuilt webvh log produced a different SCID; aborting migration`);
|
|
129
|
+
}
|
|
130
|
+
return newLog;
|
|
131
|
+
}
|
|
132
|
+
async function findKmsKeyIdForFingerprint(agentContext, fingerprint) {
|
|
133
|
+
try {
|
|
134
|
+
const storeManager = agentContext.dependencyManager.resolve(askar_1.AskarStoreManager);
|
|
135
|
+
return await storeManager.withSession(agentContext, async (session) => {
|
|
136
|
+
const entries = await session.fetchAllKeys({ algorithm: askar_shared_1.KeyAlgorithm.Ed25519 });
|
|
137
|
+
for (const entry of entries) {
|
|
138
|
+
const pubBytes = entry.key.publicBytes;
|
|
139
|
+
const computed = (0, didwebvh_ts_1.multibaseEncode)(new Uint8Array([237, 1, ...pubBytes]), didwebvh_ts_1.MultibaseEncoding.BASE58_BTC);
|
|
140
|
+
entry.key.handle.free();
|
|
141
|
+
if (computed === fingerprint)
|
|
142
|
+
return entry.name;
|
|
143
|
+
}
|
|
144
|
+
return undefined;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
catch (_a) {
|
|
148
|
+
agentContext.config.logger.warn(`Failed to scan Askar keys, cannot recover controller key for webvh versionTime migration`);
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
async function migrateWebVhVersionTimeIfBroken(agentContext, didRecord, logger) {
|
|
153
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
154
|
+
const log = didRecord.metadata.get('log');
|
|
155
|
+
if (!log || log.length < 2)
|
|
156
|
+
return false;
|
|
157
|
+
const verifier = new KmsVerifier(agentContext);
|
|
158
|
+
const preCheck = await tryResolveLog(log, verifier);
|
|
159
|
+
if (preCheck.ok)
|
|
160
|
+
return false;
|
|
161
|
+
if (!REBUILDABLE_ERROR.test(preCheck.reason))
|
|
162
|
+
return false;
|
|
163
|
+
const domain = didRecord.getTag('domain');
|
|
164
|
+
const activeUpdateKey = (_b = (_a = log[log.length - 1].parameters.updateKeys) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : (_c = log[0].parameters.updateKeys) === null || _c === void 0 ? void 0 : _c[0];
|
|
165
|
+
if (!activeUpdateKey) {
|
|
166
|
+
throw new Error(`Cannot migrate webvh log for ${didRecord.did}: no updateKeys present`);
|
|
167
|
+
}
|
|
168
|
+
let kmsKeyId = (_e = (_d = didRecord.keys) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.kmsKeyId;
|
|
169
|
+
if (!kmsKeyId) {
|
|
170
|
+
kmsKeyId = await findKmsKeyIdForFingerprint(agentContext, activeUpdateKey);
|
|
171
|
+
if (!kmsKeyId) {
|
|
172
|
+
throw new Error(`Cannot migrate webvh log for ${didRecord.did}: no controller key on DID record`);
|
|
173
|
+
}
|
|
174
|
+
logger.warn(`webvh DID ${didRecord.did}: controller key recovered from Askar scan`);
|
|
175
|
+
const vm = (_g = (_f = didRecord.didDocument) === null || _f === void 0 ? void 0 : _f.verificationMethod) === null || _g === void 0 ? void 0 : _g.find(v => v.publicKeyMultibase === activeUpdateKey);
|
|
176
|
+
const relativeKeyId = (vm === null || vm === void 0 ? void 0 : vm.id) ? `#${vm.id.split('#')[1]}` : '#key-1';
|
|
177
|
+
didRecord.keys = [{ kmsKeyId, didDocumentRelativeKeyId: relativeKeyId }];
|
|
178
|
+
}
|
|
179
|
+
logger.warn(`webvh DID log for ${didRecord.did} has non-monotonic versionTimes. ` +
|
|
180
|
+
`Rebuilding entries 2..${log.length} while preserving SCID.`);
|
|
181
|
+
const signer = new KmsSigner(agentContext, kmsKeyId, activeUpdateKey);
|
|
182
|
+
const newLog = await rebuildWebVhVersionTimes(log, { signer, verifier, domain });
|
|
183
|
+
if (!newLog)
|
|
184
|
+
return false;
|
|
185
|
+
didRecord.metadata.set('log', newLog);
|
|
186
|
+
const didRepository = agentContext.dependencyManager.resolve(core_1.DidRepository);
|
|
187
|
+
await didRepository.update(agentContext, didRecord);
|
|
188
|
+
logger.info(`webvh DID log for ${didRecord.did} versionTimes migrated; ${newLog.length} entries; SCID preserved (${log[0].parameters.scid}).`);
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=migrateWebVhVersionTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateWebVhVersionTime.js","sourceRoot":"","sources":["../../src/did/migrateWebVhVersionTime.ts"],"names":[],"mappings":"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"}
|