@verana-labs/vs-agent-sdk 1.11.0-dev.9 → 1.11.1-dev.1
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/README.md +172 -0
- package/build/agent/VsAgent.d.ts +15 -3
- package/build/agent/VsAgent.js +168 -40
- package/build/agent/VsAgent.js.map +1 -1
- package/build/agent/createVsAgent.d.ts +1 -1
- package/build/blockchain/IndexerWebSocketService.d.ts +39 -0
- package/build/blockchain/IndexerWebSocketService.js +217 -0
- package/build/blockchain/IndexerWebSocketService.js.map +1 -0
- package/build/blockchain/VeranaChainService.d.ts +2 -0
- package/build/blockchain/VeranaChainService.js +7 -4
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaHelpers.d.ts +4 -0
- package/build/blockchain/VeranaHelpers.js +29 -0
- package/build/blockchain/VeranaHelpers.js.map +1 -0
- package/build/blockchain/VeranaIndexerService.d.ts +11 -0
- package/build/blockchain/VeranaIndexerService.js +43 -0
- package/build/blockchain/VeranaIndexerService.js.map +1 -0
- package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +25 -0
- package/build/blockchain/handlers/IndexerHandlerRegistry.js +34 -0
- package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -0
- package/build/blockchain/handlers/defaultHandlers.d.ts +6 -0
- package/build/blockchain/handlers/defaultHandlers.js +126 -0
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -0
- package/build/blockchain/handlers/index.d.ts +3 -0
- package/build/blockchain/handlers/index.js +20 -0
- package/build/blockchain/handlers/index.js.map +1 -0
- package/build/blockchain/handlers/stateMutations.d.ts +12 -0
- package/build/blockchain/handlers/stateMutations.js +113 -0
- package/build/blockchain/handlers/stateMutations.js.map +1 -0
- package/build/blockchain/index.d.ts +4 -0
- package/build/blockchain/index.js +4 -0
- package/build/blockchain/index.js.map +1 -1
- package/build/blockchain/types.d.ts +107 -0
- package/build/blockchain/types.js +2 -1
- package/build/blockchain/types.js.map +1 -1
- package/build/did/WebDidRegistrar.d.ts +3 -1
- package/build/did/WebDidRegistrar.js +10 -1
- package/build/did/WebDidRegistrar.js.map +1 -1
- package/build/did/migrateWebVhLog.d.ts +34 -0
- package/build/did/migrateWebVhLog.js +230 -0
- package/build/did/migrateWebVhLog.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/plugins/setupBaseDidComm.d.ts +2 -0
- package/build/plugins/setupBaseDidComm.js +9 -1
- package/build/plugins/setupBaseDidComm.js.map +1 -1
- package/build/transports/VsAgentWsInboundTransport.js +1 -1
- package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
- package/build/utils/agent.d.ts +2 -1
- package/build/utils/agent.js +16 -10
- package/build/utils/agent.js.map +1 -1
- package/build/utils/setupSelfTr.d.ts +115 -0
- package/build/utils/setupSelfTr.js +452 -0
- package/build/utils/setupSelfTr.js.map +1 -0
- package/build/utils/trustCredentialStore.d.ts +18 -0
- package/build/utils/trustCredentialStore.js +196 -0
- package/build/utils/trustCredentialStore.js.map +1 -0
- package/package.json +13 -10
package/README.md
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# @verana-labs/vs-agent-sdk
|
|
2
|
+
|
|
3
|
+
Framework-agnostic Verifiable Service Agent SDK with DIDComm, AnonCreds, and blockchain integration.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @verana-labs/vs-agent-sdk @credo-ts/core @credo-ts/node
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Basic Usage
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { createVsAgent, setupBaseDidComm } from '@verana-labs/vs-agent-sdk'
|
|
15
|
+
import { getNodeHttpServer } from '@credo-ts/node'
|
|
16
|
+
|
|
17
|
+
const agent = createVsAgent({
|
|
18
|
+
plugins: [
|
|
19
|
+
setupBaseDidComm({
|
|
20
|
+
walletConfig: { dbPath: './wallet' },
|
|
21
|
+
publicApiBaseUrl: 'https://api.example.com',
|
|
22
|
+
endpoints: ['https://agent.example.com/didcomm'],
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
label: 'My Agent',
|
|
26
|
+
publicApiBaseUrl: 'https://api.example.com',
|
|
27
|
+
dependencies: getNodeHttpServer(),
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
await agent.initialize()
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Indexer WebSocket
|
|
34
|
+
|
|
35
|
+
Stream blockchain events in real-time:
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import { IndexerWebSocketService } from '@verana-labs/vs-agent-sdk'
|
|
39
|
+
|
|
40
|
+
const indexerWs = new IndexerWebSocketService({
|
|
41
|
+
indexerUrl: 'https://indexer.verana.io',
|
|
42
|
+
agent,
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
await indexerWs.start()
|
|
46
|
+
// Auto-reconnects with exponential backoff (max 5min)
|
|
47
|
+
// Persists last block height in agent storage
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Custom Handlers
|
|
51
|
+
|
|
52
|
+
Build default handlers or replace with your own:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
|
|
56
|
+
|
|
57
|
+
const handlerRegistry = buildDefaultIndexerHandlerRegistry()
|
|
58
|
+
|
|
59
|
+
const indexerWs = new IndexerWebSocketService({
|
|
60
|
+
indexerUrl: 'https://indexer.example.com',
|
|
61
|
+
agent,
|
|
62
|
+
handlerRegistry,
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Override a specific handler:**
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
|
|
70
|
+
import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
|
|
71
|
+
|
|
72
|
+
const registry = buildDefaultIndexerHandlerRegistry()
|
|
73
|
+
|
|
74
|
+
// Replace credential schema handler with custom logic
|
|
75
|
+
registry.register('CredentialSchema', async (activity: IndexerActivity, context: IndexerDispatchContext) => {
|
|
76
|
+
const { id, jsonSchema } = activity.changes as any
|
|
77
|
+
console.log(`Schema ${id} updated at block ${context.blockHeight}`)
|
|
78
|
+
|
|
79
|
+
// Sync to your database
|
|
80
|
+
await db.schemas.update(id, { schema: jsonSchema })
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
const indexerWs = new IndexerWebSocketService({
|
|
84
|
+
indexerUrl: 'https://indexer.example.com',
|
|
85
|
+
agent,
|
|
86
|
+
handlerRegistry: registry,
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Custom handlers from scratch:**
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import { IndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
|
|
94
|
+
import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
|
|
95
|
+
|
|
96
|
+
const registry = new IndexerHandlerRegistry()
|
|
97
|
+
|
|
98
|
+
// Handle trust registry changes
|
|
99
|
+
registry.register('TrustRegistry', async (activity, context) => {
|
|
100
|
+
const { id, did, archived } = activity.changes as any
|
|
101
|
+
await agent.config.logger.info(`[Block ${context.blockHeight}] TR ${id} ${archived ? 'archived' : 'activated'}`)
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
// Handle permission changes with custom messages
|
|
105
|
+
registry.register('Permission', async (activity, context) => {
|
|
106
|
+
const { id, did, revoked } = activity.changes as any
|
|
107
|
+
const status = revoked ? 'revoked' : 'granted'
|
|
108
|
+
|
|
109
|
+
await agent.config.logger.info(`[Block ${context.blockHeight}] Permission ${status}: ${id}`)
|
|
110
|
+
|
|
111
|
+
// Emit to your service
|
|
112
|
+
await sendWebhookEvent('https://your-service.com/perms', {
|
|
113
|
+
type: 'permission_status_changed',
|
|
114
|
+
permissionId: id,
|
|
115
|
+
did,
|
|
116
|
+
status,
|
|
117
|
+
blockHeight: context.blockHeight,
|
|
118
|
+
timestamp: new Date().toISOString(),
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
const indexerWs = new IndexerWebSocketService({
|
|
123
|
+
indexerUrl: 'https://indexer.example.com',
|
|
124
|
+
agent,
|
|
125
|
+
handlerRegistry: registry,
|
|
126
|
+
})
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Blockchain Integration
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import { VeranaChainService } from '@verana-labs/vs-agent-sdk'
|
|
133
|
+
|
|
134
|
+
const chain = new VeranaChainService({
|
|
135
|
+
rpcUrl: 'https://rpc.verana.io',
|
|
136
|
+
chainId: 'verana-mainnet-1',
|
|
137
|
+
mnemonic: 'your wallet seed phrase...',
|
|
138
|
+
logger: agent.config.logger,
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
const agent = createVsAgent({
|
|
142
|
+
plugins: [...],
|
|
143
|
+
veranaChain: chain,
|
|
144
|
+
label: 'My Agent',
|
|
145
|
+
publicApiBaseUrl: 'https://api.example.com',
|
|
146
|
+
dependencies: getNodeHttpServer(),
|
|
147
|
+
})
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Utilities
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// DIDs
|
|
154
|
+
import { createInvitation, getWebDid } from '@verana-labs/vs-agent-sdk'
|
|
155
|
+
|
|
156
|
+
const did = await getWebDid(agent)
|
|
157
|
+
const invitation = await createInvitation(agent)
|
|
158
|
+
|
|
159
|
+
// Webhooks
|
|
160
|
+
import { sendWebhookEvent } from '@verana-labs/vs-agent-sdk'
|
|
161
|
+
|
|
162
|
+
await sendWebhookEvent('https://example.com/webhook', {
|
|
163
|
+
type: 'event_type',
|
|
164
|
+
data: { /* ... */ },
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
// Transports
|
|
168
|
+
import {
|
|
169
|
+
HttpInboundTransport,
|
|
170
|
+
VsAgentWsInboundTransport,
|
|
171
|
+
} from '@verana-labs/vs-agent-sdk'
|
|
172
|
+
```
|
package/build/agent/VsAgent.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AnonCredsDidCommCredentialFormatService, AnonCredsModule, AnonCredsDidCommProofFormatService, LegacyIndyDidCommCredentialFormatService, LegacyIndyDidCommProofFormatService } from '@credo-ts/anoncreds';
|
|
2
2
|
import { AskarModule, AskarModuleConfigStoreOptions } from '@credo-ts/askar';
|
|
3
3
|
import { Agent, AgentDependencies, DidsModule, InitConfig, W3cCredentialsModule } from '@credo-ts/core';
|
|
4
|
-
import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
|
|
5
|
-
import { VeranaChainService } from '../blockchain';
|
|
4
|
+
import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommJsonLdCredentialFormatService, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
|
|
5
|
+
import { VeranaChainService } from '../blockchain/VeranaChainService';
|
|
6
6
|
type VsAgentDidCommModule = DidCommModule<DidCommModuleConfigOptions & {
|
|
7
7
|
credentials: DidCommCredentialsModuleConfigOptions<[
|
|
8
8
|
DidCommCredentialV2Protocol<[
|
|
9
9
|
LegacyIndyDidCommCredentialFormatService,
|
|
10
|
-
AnonCredsDidCommCredentialFormatService
|
|
10
|
+
AnonCredsDidCommCredentialFormatService,
|
|
11
|
+
DidCommJsonLdCredentialFormatService
|
|
11
12
|
]>
|
|
12
13
|
]>;
|
|
13
14
|
proofs: DidCommProofsModuleConfigOptions<[
|
|
@@ -44,7 +45,18 @@ export declare class VsAgent<TModules extends BaseAgentModules = BaseAgentModule
|
|
|
44
45
|
private get hasUserProfile();
|
|
45
46
|
initialize(): Promise<void>;
|
|
46
47
|
private findCreatedDid;
|
|
48
|
+
private findEd25519VerificationMethodId;
|
|
47
49
|
private getDidCommServices;
|
|
50
|
+
private persistDidDocumentKey;
|
|
51
|
+
/**
|
|
52
|
+
* Fix a webvh update-key mapping whose `didDocumentRelativeKeyId` was stored as the full multibase
|
|
53
|
+
* (e.g. `#z6Mk...`) while the DID document verification method uses a short fragment (e.g. `#BVhGnL79`).
|
|
54
|
+
* `getKmsKeyIdForVerifiacationMethod` matches by suffix (`vm.id.endsWith(relativeKeyId)`), so the
|
|
55
|
+
* mismatch leaves the update key unresolvable and every webvh update fails with
|
|
56
|
+
* "The key ID must be present before the log can be edited." The private key is present in the KMS;
|
|
57
|
+
* only the mapping label is wrong. Idempotent: a mapping that already correlates to a VM is left alone.
|
|
58
|
+
*/
|
|
59
|
+
private repairWebvhUpdateKeyMapping;
|
|
48
60
|
private createAndAddDidCommKeysAndServices;
|
|
49
61
|
private createAndAddLinkedVpServices;
|
|
50
62
|
/**
|
package/build/agent/VsAgent.js
CHANGED
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VsAgent = void 0;
|
|
4
4
|
const core_1 = require("@credo-ts/core");
|
|
5
5
|
const didwebvh_ts_1 = require("didwebvh-ts");
|
|
6
|
+
const migrateWebVhLog_1 = require("../did/migrateWebVhLog");
|
|
7
|
+
const MANAGED_DIDCOMM_SERVICE_TYPES = [core_1.DidCommV1Service.type, core_1.NewDidCommV2Service.type];
|
|
6
8
|
class VsAgent extends core_1.Agent {
|
|
7
9
|
constructor(options) {
|
|
8
10
|
super(options);
|
|
@@ -17,7 +19,7 @@ class VsAgent extends core_1.Agent {
|
|
|
17
19
|
return 'userProfile' in this.modules;
|
|
18
20
|
}
|
|
19
21
|
async initialize() {
|
|
20
|
-
var _a, _b, _c, _d, _e, _f;
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
21
23
|
await super.initialize();
|
|
22
24
|
if (this.hasUserProfile) {
|
|
23
25
|
// Make sure default User Profile corresponds to settings in environment variables
|
|
@@ -40,7 +42,7 @@ class VsAgent extends core_1.Agent {
|
|
|
40
42
|
if (!existingRecord) {
|
|
41
43
|
if (parsedDid.method === 'web') {
|
|
42
44
|
const didDocument = new core_1.DidDocument({ id: parsedDid.did });
|
|
43
|
-
await this.createAndAddDidCommKeysAndServices(didDocument);
|
|
45
|
+
const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
|
|
44
46
|
// Add Self TR
|
|
45
47
|
await this.createAndAddLinkedVpServices(didDocument);
|
|
46
48
|
// Add AnonCreds Services
|
|
@@ -49,6 +51,7 @@ class VsAgent extends core_1.Agent {
|
|
|
49
51
|
method: 'web',
|
|
50
52
|
domain,
|
|
51
53
|
didDocument,
|
|
54
|
+
keys: [didCommKey],
|
|
52
55
|
});
|
|
53
56
|
this.did = parsedDid.did;
|
|
54
57
|
}
|
|
@@ -69,12 +72,15 @@ class VsAgent extends core_1.Agent {
|
|
|
69
72
|
process.exit(1);
|
|
70
73
|
}
|
|
71
74
|
// Add DIDComm services and keys
|
|
72
|
-
await this.createAndAddDidCommKeysAndServices(didDocument);
|
|
75
|
+
const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
|
|
73
76
|
// Add Linked VP services
|
|
74
77
|
await this.createAndAddLinkedVpServices(didDocument);
|
|
75
78
|
// Add implicit services
|
|
76
79
|
await this.createAndAddWebVhImplicitServices(didDocument);
|
|
77
80
|
didDocument.alsoKnownAs = [`did:web:${domain}`];
|
|
81
|
+
// The webvh registrar doesn't merge new keys into the DidRecord on update,
|
|
82
|
+
// so persist the DIDComm key mapping directly on the existing record.
|
|
83
|
+
await this.persistDidDocumentKey(publicDid, didCommKey);
|
|
78
84
|
const result = await this.dids.update({ did: publicDid, didDocument });
|
|
79
85
|
if (result.didState.state !== 'finished') {
|
|
80
86
|
this.logger.error(`Cannot update DID ${publicDid}`);
|
|
@@ -88,6 +94,20 @@ class VsAgent extends core_1.Agent {
|
|
|
88
94
|
}
|
|
89
95
|
return;
|
|
90
96
|
}
|
|
97
|
+
// If this is a did:webvh record, ensure the stored log is resolvable under the
|
|
98
|
+
// current didwebvh-ts version. Logs created with didwebvh-ts <2.7.4 used the
|
|
99
|
+
// SCID placeholder when computing the entry hash for entries beyond #1, which
|
|
100
|
+
// newer resolvers (correctly) reject as a broken hash chain. We rebuild the
|
|
101
|
+
// log in-place, preserving entry #1 (and therefore the SCID and the public DID).
|
|
102
|
+
if (parsedDid.method === 'webvh') {
|
|
103
|
+
try {
|
|
104
|
+
await (0, migrateWebVhLog_1.migrateWebVhLogIfBroken)(this.agentContext, existingRecord, this.logger);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.logger.error(`Failed to migrate webvh DID log for ${existingRecord.did}: ${error instanceof Error ? error.message : String(error)}`);
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
91
111
|
// Make sure did:webvh record has the did:web form as an alternative, in order to support
|
|
92
112
|
// implicit invitations
|
|
93
113
|
if (parsedDid.method === 'webvh' &&
|
|
@@ -97,28 +117,59 @@ class VsAgent extends core_1.Agent {
|
|
|
97
117
|
const didRepository = this.dependencyManager.resolve(core_1.DidRepository);
|
|
98
118
|
await didRepository.update(this.agentContext, existingRecord);
|
|
99
119
|
}
|
|
120
|
+
// Fix a legacy webvh update-key mapping before the self-heal update below relies on it.
|
|
121
|
+
if (parsedDid.method === 'webvh')
|
|
122
|
+
await this.repairWebvhUpdateKeyMapping(existingRecord);
|
|
100
123
|
// DID Already exists: update it in case that agent parameters have been changed. At the moment, we can only update
|
|
101
124
|
// DIDComm endpoints, so we'll only replace the service (if different from previous)
|
|
102
125
|
const didDocument = existingRecord.didDocument;
|
|
103
126
|
const hasLegacyMethods = ((_d = didDocument.verificationMethod) !== null && _d !== void 0 ? _d : []).some(vm => ['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
127
|
+
const ed25519VerificationMethodId = this.findEd25519VerificationMethodId(didDocument);
|
|
128
|
+
const servicesChanged = !ed25519VerificationMethodId ||
|
|
129
|
+
JSON.stringify(didDocument.didCommServices) !==
|
|
130
|
+
JSON.stringify(this.getDidCommServices(didDocument.id, ed25519VerificationMethodId));
|
|
131
|
+
// One-shot migration for did:webvh records published before authentication-replace
|
|
132
|
+
// landed, which still carry the didwebvh-ts update key in authentication.
|
|
133
|
+
const authHasUpdateKey = parsedDid.method === 'webvh' &&
|
|
134
|
+
!!ed25519VerificationMethodId &&
|
|
135
|
+
((_e = didDocument.authentication) !== null && _e !== void 0 ? _e : []).some(a => {
|
|
136
|
+
const id = typeof a === 'string' ? a : a.id;
|
|
137
|
+
return id !== ed25519VerificationMethodId;
|
|
138
|
+
});
|
|
139
|
+
if (hasLegacyMethods || servicesChanged || authHasUpdateKey) {
|
|
140
|
+
if (servicesChanged && ed25519VerificationMethodId) {
|
|
108
141
|
didDocument.service = [
|
|
109
142
|
...(didDocument.service
|
|
110
|
-
? didDocument.service.filter(service => !
|
|
143
|
+
? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
|
|
111
144
|
: []),
|
|
112
|
-
...this.getDidCommServices(didDocument.id),
|
|
145
|
+
...this.getDidCommServices(didDocument.id, ed25519VerificationMethodId),
|
|
113
146
|
];
|
|
114
147
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
148
|
+
const newKeys = [];
|
|
149
|
+
if (hasLegacyMethods) {
|
|
150
|
+
newKeys.push(await this.createAndAddDidCommKeysAndServices(didDocument));
|
|
151
|
+
}
|
|
152
|
+
if (authHasUpdateKey)
|
|
153
|
+
didDocument.authentication = [ed25519VerificationMethodId];
|
|
154
|
+
if (newKeys.length && parsedDid.method === 'webvh') {
|
|
155
|
+
// webvh registrar doesn't accept keys in update options; persist directly
|
|
156
|
+
for (const key of newKeys)
|
|
157
|
+
await this.persistDidDocumentKey(didDocument.id, key);
|
|
158
|
+
}
|
|
159
|
+
const updateResult = await this.dids.update(Object.assign({ did: didDocument.id, didDocument }, (newKeys.length && parsedDid.method === 'web' ? { keys: newKeys } : {})));
|
|
160
|
+
if (updateResult.didState.state !== 'finished') {
|
|
161
|
+
(_f = this.logger) === null || _f === void 0 ? void 0 : _f.error('Public did record update failed to persist', {
|
|
162
|
+
did: didDocument.id,
|
|
163
|
+
state: updateResult.didState.state,
|
|
164
|
+
reason: updateResult.didState.reason,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
(_g = this.logger) === null || _g === void 0 ? void 0 : _g.debug('Public did record updated');
|
|
169
|
+
}
|
|
119
170
|
}
|
|
120
171
|
else {
|
|
121
|
-
(
|
|
172
|
+
(_h = this.logger) === null || _h === void 0 ? void 0 : _h.debug('Existing DID record found. No updates');
|
|
122
173
|
}
|
|
123
174
|
this.did = existingRecord.did;
|
|
124
175
|
}
|
|
@@ -132,21 +183,98 @@ class VsAgent extends core_1.Agent {
|
|
|
132
183
|
}
|
|
133
184
|
return await didRepository.findCreatedDid(this.context, parsedDid.did);
|
|
134
185
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
186
|
+
// Prefer Ed25519VerificationKey2020 over Multikey: webvh's update Multikey is not ours to use.
|
|
187
|
+
findEd25519VerificationMethodId(didDocument) {
|
|
188
|
+
var _a;
|
|
189
|
+
const vms = (_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : [];
|
|
190
|
+
const preferred = vms.find(vm => vm.type === 'Ed25519VerificationKey2020');
|
|
191
|
+
if (preferred)
|
|
192
|
+
return preferred.id;
|
|
193
|
+
const fallback = vms.find(vm => vm.type === 'Ed25519VerificationKey2018' ||
|
|
194
|
+
(vm.type === 'Multikey' &&
|
|
195
|
+
typeof vm.publicKeyMultibase === 'string' &&
|
|
196
|
+
vm.publicKeyMultibase.startsWith('z6Mk')));
|
|
197
|
+
return fallback === null || fallback === void 0 ? void 0 : fallback.id;
|
|
198
|
+
}
|
|
199
|
+
getDidCommServices(publicDid, ed25519VerificationMethodId) {
|
|
200
|
+
const didcommVersions = this.didcomm.config.didcommVersions;
|
|
201
|
+
const includeV1 = didcommVersions.includes('v1');
|
|
202
|
+
const includeV2 = didcommVersions.includes('v2');
|
|
203
|
+
const services = [];
|
|
204
|
+
this.didcomm.config.endpoints.forEach((endpoint, index) => {
|
|
205
|
+
if (includeV1) {
|
|
206
|
+
services.push(new core_1.DidCommV1Service({
|
|
207
|
+
id: `${publicDid}#did-communication`,
|
|
208
|
+
serviceEndpoint: endpoint,
|
|
209
|
+
priority: index,
|
|
210
|
+
routingKeys: [], // TODO: Support mediation
|
|
211
|
+
recipientKeys: [ed25519VerificationMethodId],
|
|
212
|
+
accept: ['didcomm/aip2;env=rfc19'],
|
|
213
|
+
}));
|
|
214
|
+
}
|
|
215
|
+
if (includeV2) {
|
|
216
|
+
services.push(new core_1.NewDidCommV2Service({
|
|
217
|
+
id: `${publicDid}#didcomm-messaging-${index}`,
|
|
218
|
+
serviceEndpoint: new core_1.NewDidCommV2ServiceEndpoint({
|
|
219
|
+
uri: endpoint,
|
|
220
|
+
accept: ['didcomm/v2'],
|
|
221
|
+
}),
|
|
222
|
+
}));
|
|
223
|
+
}
|
|
146
224
|
});
|
|
225
|
+
return services;
|
|
226
|
+
}
|
|
227
|
+
async persistDidDocumentKey(did, key) {
|
|
228
|
+
var _a;
|
|
229
|
+
const didRepository = this.agentContext.resolve(core_1.DidRepository);
|
|
230
|
+
const [record] = await didRepository.findByQuery(this.agentContext, { did });
|
|
231
|
+
if (!record)
|
|
232
|
+
return;
|
|
233
|
+
const existing = (_a = record.keys) !== null && _a !== void 0 ? _a : [];
|
|
234
|
+
if (existing.some(k => k.didDocumentRelativeKeyId === key.didDocumentRelativeKeyId))
|
|
235
|
+
return;
|
|
236
|
+
record.keys = [...existing, key];
|
|
237
|
+
await didRepository.update(this.agentContext, record);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Fix a webvh update-key mapping whose `didDocumentRelativeKeyId` was stored as the full multibase
|
|
241
|
+
* (e.g. `#z6Mk...`) while the DID document verification method uses a short fragment (e.g. `#BVhGnL79`).
|
|
242
|
+
* `getKmsKeyIdForVerifiacationMethod` matches by suffix (`vm.id.endsWith(relativeKeyId)`), so the
|
|
243
|
+
* mismatch leaves the update key unresolvable and every webvh update fails with
|
|
244
|
+
* "The key ID must be present before the log can be edited." The private key is present in the KMS;
|
|
245
|
+
* only the mapping label is wrong. Idempotent: a mapping that already correlates to a VM is left alone.
|
|
246
|
+
*/
|
|
247
|
+
async repairWebvhUpdateKeyMapping(record) {
|
|
248
|
+
var _a, _b, _c;
|
|
249
|
+
if (!record.didDocument || !((_a = record.keys) === null || _a === void 0 ? void 0 : _a.length))
|
|
250
|
+
return;
|
|
251
|
+
const vms = (_b = record.didDocument.verificationMethod) !== null && _b !== void 0 ? _b : [];
|
|
252
|
+
let repaired = false;
|
|
253
|
+
for (const key of record.keys) {
|
|
254
|
+
const rel = key.didDocumentRelativeKeyId;
|
|
255
|
+
if (vms.some(vm => vm.id.endsWith(rel)))
|
|
256
|
+
continue; // already correlates
|
|
257
|
+
const vm = vms.find(v => `#${v.publicKeyMultibase}` === rel); // was stored as #<multibase>
|
|
258
|
+
if (!vm)
|
|
259
|
+
continue;
|
|
260
|
+
const correct = `#${vm.id.split('#')[1]}`;
|
|
261
|
+
if (correct !== rel) {
|
|
262
|
+
(_c = this.logger) === null || _c === void 0 ? void 0 : _c.warn('Fixing webvh update-key mapping', {
|
|
263
|
+
from: rel,
|
|
264
|
+
to: correct,
|
|
265
|
+
kmsKeyId: key.kmsKeyId,
|
|
266
|
+
});
|
|
267
|
+
key.didDocumentRelativeKeyId = correct;
|
|
268
|
+
repaired = true;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (repaired) {
|
|
272
|
+
const didRepository = this.dependencyManager.resolve(core_1.DidRepository);
|
|
273
|
+
await didRepository.update(this.agentContext, record);
|
|
274
|
+
}
|
|
147
275
|
}
|
|
148
276
|
async createAndAddDidCommKeysAndServices(didDocument) {
|
|
149
|
-
var _a, _b, _c, _d, _e
|
|
277
|
+
var _a, _b, _c, _d, _e;
|
|
150
278
|
const publicDid = didDocument.id;
|
|
151
279
|
const context = [
|
|
152
280
|
'https://w3id.org/security/multikey/v1',
|
|
@@ -155,28 +283,25 @@ class VsAgent extends core_1.Agent {
|
|
|
155
283
|
];
|
|
156
284
|
const keyAgreementId = `${publicDid}#key-agreement-1`;
|
|
157
285
|
const kms = this.agentContext.resolve(core_1.Kms.KeyManagementApi);
|
|
158
|
-
const didRepository = this.agentContext.resolve(core_1.DidRepository);
|
|
159
286
|
// Create didcomm keys
|
|
160
287
|
const key = await kms.createKey({ type: { kty: 'OKP', crv: 'Ed25519' } });
|
|
161
288
|
const publicKeyBytes = core_1.Kms.PublicJwk.fromPublicJwk(key.publicJwk).publicKey.publicKey;
|
|
162
289
|
const publicKeyMultibase = (0, didwebvh_ts_1.multibaseEncode)(new Uint8Array([0xed, 0x01, ...publicKeyBytes]), didwebvh_ts_1.MultibaseEncoding.BASE58_BTC);
|
|
163
|
-
const
|
|
164
|
-
(_a = record.keys) === null || _a === void 0 ? void 0 : _a.push({
|
|
290
|
+
const didDocumentKey = {
|
|
165
291
|
kmsKeyId: key.keyId,
|
|
166
292
|
didDocumentRelativeKeyId: `#${publicKeyMultibase}`,
|
|
167
|
-
}
|
|
168
|
-
await didRepository.update(this.agentContext, record);
|
|
293
|
+
};
|
|
169
294
|
const verificationMethodId = `${publicDid}#${publicKeyMultibase}`;
|
|
170
295
|
const publicKeyX25519 = (0, core_1.convertPublicKeyToX25519)(publicKeyBytes);
|
|
171
296
|
const x25519Key = core_1.Kms.PublicJwk.fromPublicKey({ kty: 'OKP', crv: 'X25519', publicKey: publicKeyX25519 });
|
|
172
297
|
// Remove legacy if exist
|
|
173
298
|
const legacyContexts = ['https://w3id.org/security/suites/ed25519-2018/v1'];
|
|
174
|
-
const legacyAuthId = (
|
|
299
|
+
const legacyAuthId = (_b = ((_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : []).find(vm => ['Ed25519VerificationKey2018'].includes(vm.type))) === null || _b === void 0 ? void 0 : _b.id;
|
|
175
300
|
if (legacyAuthId) {
|
|
176
|
-
didDocument.authentication = ((
|
|
177
|
-
didDocument.assertionMethod = ((
|
|
301
|
+
didDocument.authentication = ((_c = didDocument.authentication) !== null && _c !== void 0 ? _c : []).filter(id => id !== legacyAuthId);
|
|
302
|
+
didDocument.assertionMethod = ((_d = didDocument.assertionMethod) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
|
|
178
303
|
}
|
|
179
|
-
const filteredMethods = ((
|
|
304
|
+
const filteredMethods = ((_e = didDocument.verificationMethod) !== null && _e !== void 0 ? _e : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
|
|
180
305
|
const verificationMethods = [
|
|
181
306
|
{
|
|
182
307
|
controller: publicDid,
|
|
@@ -194,7 +319,7 @@ class VsAgent extends core_1.Agent {
|
|
|
194
319
|
const authentication = verificationMethodId;
|
|
195
320
|
const assertionMethod = verificationMethodId;
|
|
196
321
|
const keyAgreement = keyAgreementId;
|
|
197
|
-
const didcommServices = this.getDidCommServices(publicDid);
|
|
322
|
+
const didcommServices = this.getDidCommServices(publicDid, verificationMethodId);
|
|
198
323
|
const currentContexts = Array.isArray(didDocument.context)
|
|
199
324
|
? didDocument.context
|
|
200
325
|
: didDocument.context
|
|
@@ -204,15 +329,18 @@ class VsAgent extends core_1.Agent {
|
|
|
204
329
|
...new Set([...currentContexts.filter(ctx => !legacyContexts.includes(ctx)), ...context]),
|
|
205
330
|
];
|
|
206
331
|
didDocument.verificationMethod = [...filteredMethods, ...verificationMethods];
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
didDocument.
|
|
332
|
+
// Replace (not merge): keeps did:webvh's update key out of DIDComm relations.
|
|
333
|
+
// Same pattern as didcomm-mediator/src/agent/DidCommMediatorAgent.ts.
|
|
334
|
+
didDocument.authentication = [authentication];
|
|
335
|
+
didDocument.assertionMethod = [assertionMethod];
|
|
336
|
+
didDocument.keyAgreement = [keyAgreement];
|
|
210
337
|
didDocument.service = [
|
|
211
338
|
...(didDocument.service
|
|
212
|
-
? didDocument.service.filter(service => !
|
|
339
|
+
? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
|
|
213
340
|
: []),
|
|
214
341
|
...didcommServices,
|
|
215
342
|
];
|
|
343
|
+
return didDocumentKey;
|
|
216
344
|
}
|
|
217
345
|
async createAndAddLinkedVpServices(didDocument) {
|
|
218
346
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AskarModuleConfigStoreOptions } from '@credo-ts/askar';
|
|
2
2
|
import { AgentDependencies, InitConfig, LogLevel } from '@credo-ts/core';
|
|
3
|
-
import { VeranaChainService } from '../blockchain';
|
|
3
|
+
import { VeranaChainService } from '../blockchain/VeranaChainService';
|
|
4
4
|
import { Plugin } from '../types';
|
|
5
5
|
import { BaseAgentModules, VsAgent } from './VsAgent';
|
|
6
6
|
type MergePluginModules<T extends Plugin[]> = T extends [infer First, ...infer Rest] ? First extends {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VsAgent } from '../agent/VsAgent';
|
|
2
|
+
import { IndexerHandlerRegistry } from './handlers/IndexerHandlerRegistry';
|
|
3
|
+
export interface IndexerWebSocketServiceOptions {
|
|
4
|
+
indexerUrl: string;
|
|
5
|
+
agent: VsAgent;
|
|
6
|
+
handlerRegistry?: IndexerHandlerRegistry;
|
|
7
|
+
}
|
|
8
|
+
export declare class IndexerWebSocketService {
|
|
9
|
+
private readonly options;
|
|
10
|
+
private ws;
|
|
11
|
+
private reconnectAttempt;
|
|
12
|
+
private stopped;
|
|
13
|
+
private syncing;
|
|
14
|
+
private IndexerEventRecords;
|
|
15
|
+
private readonly indexer;
|
|
16
|
+
private readonly handlerRegistry;
|
|
17
|
+
constructor(options: IndexerWebSocketServiceOptions);
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
stop(): void;
|
|
20
|
+
private get logger();
|
|
21
|
+
/**
|
|
22
|
+
* Connects to the indexer WebSocket, performs an initial sync via REST (use /events endpoint because it returns historical events in a single request)
|
|
23
|
+
* Finally, processes pending events received during the initial sync.
|
|
24
|
+
*/
|
|
25
|
+
private connect;
|
|
26
|
+
private openWebSocket;
|
|
27
|
+
private syncRest;
|
|
28
|
+
private drainIndexerEventRecords;
|
|
29
|
+
private processBlock;
|
|
30
|
+
/**
|
|
31
|
+
* TODO: Once the indexer emits consistent event_id for create events, we can remove this workaround
|
|
32
|
+
*/
|
|
33
|
+
private resolveCreateActivity;
|
|
34
|
+
private fetchActivity;
|
|
35
|
+
private fetchEntity;
|
|
36
|
+
private applyChanges;
|
|
37
|
+
private scheduleReconnect;
|
|
38
|
+
private fetchInitialEvents;
|
|
39
|
+
}
|