@verana-labs/vs-agent-sdk 1.11.0-dev.14 → 1.11.0-dev.15
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/blockchain/IndexerWebSocketService.d.ts +8 -2
- package/build/blockchain/IndexerWebSocketService.js +77 -41
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- 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/VeranaIndexerService.d.ts +4 -1
- package/build/blockchain/VeranaIndexerService.js +15 -0
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +1 -1
- package/build/blockchain/handlers/defaultHandlers.js +17 -16
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
- package/build/blockchain/handlers/stateMutations.d.ts +3 -3
- package/build/blockchain/handlers/stateMutations.js +44 -5
- package/build/blockchain/handlers/stateMutations.js.map +1 -1
- package/build/blockchain/types.d.ts +50 -2
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/index.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 +5 -2
|
@@ -11,7 +11,7 @@ export declare class IndexerWebSocketService {
|
|
|
11
11
|
private reconnectAttempt;
|
|
12
12
|
private stopped;
|
|
13
13
|
private syncing;
|
|
14
|
-
private
|
|
14
|
+
private IndexerEventRecords;
|
|
15
15
|
private readonly indexer;
|
|
16
16
|
private readonly handlerRegistry;
|
|
17
17
|
constructor(options: IndexerWebSocketServiceOptions);
|
|
@@ -25,8 +25,14 @@ export declare class IndexerWebSocketService {
|
|
|
25
25
|
private connect;
|
|
26
26
|
private openWebSocket;
|
|
27
27
|
private syncRest;
|
|
28
|
-
private
|
|
28
|
+
private drainIndexerEventRecords;
|
|
29
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;
|
|
30
36
|
private applyChanges;
|
|
31
37
|
private scheduleReconnect;
|
|
32
38
|
private fetchInitialEvents;
|
|
@@ -10,6 +10,7 @@ const VeranaIndexerService_1 = require("./VeranaIndexerService");
|
|
|
10
10
|
const handlers_1 = require("./handlers");
|
|
11
11
|
const MAX_RECONNECT_DELAY_MS = 300000;
|
|
12
12
|
const WS_PATHNAME = 'verana/indexer/v1/events';
|
|
13
|
+
const CREATES_WITHOUT_ID = new Set(['CreateNewTrustRegistry', 'CreateNewCredentialSchema']);
|
|
13
14
|
class IndexerWebSocketService {
|
|
14
15
|
constructor(options) {
|
|
15
16
|
var _a;
|
|
@@ -18,7 +19,7 @@ class IndexerWebSocketService {
|
|
|
18
19
|
this.reconnectAttempt = 0;
|
|
19
20
|
this.stopped = false;
|
|
20
21
|
this.syncing = false;
|
|
21
|
-
this.
|
|
22
|
+
this.IndexerEventRecords = [];
|
|
22
23
|
this.indexer = new VeranaIndexerService_1.VeranaIndexerService({
|
|
23
24
|
baseUrl: options.indexerUrl,
|
|
24
25
|
logger: options.agent.config.logger,
|
|
@@ -44,11 +45,11 @@ class IndexerWebSocketService {
|
|
|
44
45
|
*/
|
|
45
46
|
async connect() {
|
|
46
47
|
this.syncing = true;
|
|
47
|
-
this.
|
|
48
|
+
this.IndexerEventRecords = [];
|
|
48
49
|
this.openWebSocket();
|
|
49
50
|
await this.syncRest();
|
|
50
51
|
this.syncing = false;
|
|
51
|
-
await this.
|
|
52
|
+
await this.drainIndexerEventRecords();
|
|
52
53
|
}
|
|
53
54
|
openWebSocket() {
|
|
54
55
|
const url = new URL(this.options.indexerUrl);
|
|
@@ -67,18 +68,17 @@ class IndexerWebSocketService {
|
|
|
67
68
|
var _a;
|
|
68
69
|
try {
|
|
69
70
|
const event = JSON.parse(data.toString());
|
|
70
|
-
|
|
71
|
-
if (blockHeight <= 0)
|
|
71
|
+
if (event.type !== 'indexer-event')
|
|
72
72
|
return;
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
if (event.block_height <= 0)
|
|
74
|
+
return;
|
|
75
|
+
if (!((_a = event.payload) === null || _a === void 0 ? void 0 : _a.sender))
|
|
75
76
|
return;
|
|
76
|
-
const sender = payload.sender;
|
|
77
77
|
if (this.syncing) {
|
|
78
|
-
this.
|
|
78
|
+
this.IndexerEventRecords.push(event);
|
|
79
79
|
}
|
|
80
80
|
else {
|
|
81
|
-
this.processBlock(
|
|
81
|
+
this.processBlock(event).catch(err => this.logger.error(`[IndexerWS] Handler error: ${err.message}`));
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
catch (_b) {
|
|
@@ -99,9 +99,7 @@ class IndexerWebSocketService {
|
|
|
99
99
|
const { lastBlockHeight } = await (0, VeranaHelpers_1.loadSyncState)(this.options.agent);
|
|
100
100
|
const data = await this.fetchInitialEvents(lastBlockHeight);
|
|
101
101
|
for (const event of data.events) {
|
|
102
|
-
|
|
103
|
-
const sender = event.payload.sender;
|
|
104
|
-
await this.processBlock(blockHeight, sender, event.did);
|
|
102
|
+
await this.processBlock(event);
|
|
105
103
|
}
|
|
106
104
|
this.logger.info(`[IndexerWS] Initial sync complete: ${data.events.length} event(s)`);
|
|
107
105
|
}
|
|
@@ -109,55 +107,93 @@ class IndexerWebSocketService {
|
|
|
109
107
|
this.logger.error(`[IndexerWS] REST initial sync failed: ${error.message}`);
|
|
110
108
|
}
|
|
111
109
|
}
|
|
112
|
-
async
|
|
110
|
+
async drainIndexerEventRecords() {
|
|
113
111
|
const { lastBlockHeight } = await (0, VeranaHelpers_1.loadSyncState)(this.options.agent);
|
|
114
|
-
const events = this.
|
|
112
|
+
const events = this.IndexerEventRecords.splice(0);
|
|
115
113
|
let processed = 0;
|
|
116
114
|
let skipped = 0;
|
|
117
|
-
for (const
|
|
118
|
-
if (
|
|
115
|
+
for (const event of events) {
|
|
116
|
+
if (event.block_height <= lastBlockHeight) {
|
|
119
117
|
skipped++;
|
|
120
118
|
continue;
|
|
121
119
|
}
|
|
122
|
-
await this.processBlock(
|
|
120
|
+
await this.processBlock(event);
|
|
123
121
|
processed++;
|
|
124
122
|
}
|
|
125
123
|
if (skipped + processed > 0) {
|
|
126
124
|
this.logger.info(`[IndexerWS] Drained: ${processed} processed, ${skipped} skipped`);
|
|
127
125
|
}
|
|
128
126
|
}
|
|
129
|
-
async processBlock(
|
|
127
|
+
async processBlock(event) {
|
|
130
128
|
try {
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
await this.
|
|
129
|
+
const activity = CREATES_WITHOUT_ID.has(event.event_type)
|
|
130
|
+
? await this.resolveCreateActivity(event)
|
|
131
|
+
: await this.fetchActivity(event);
|
|
132
|
+
if (activity) {
|
|
133
|
+
await this.applyChanges(event, activity);
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
catch (error) {
|
|
137
|
-
this.logger.error(`[IndexerWS] Failed to
|
|
137
|
+
this.logger.error(`[IndexerWS] Failed to process event ${event.event_type} block=${event.block_height}: ${error.message}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* TODO: Once the indexer emits consistent event_id for create events, we can remove this workaround
|
|
142
|
+
*/
|
|
143
|
+
async resolveCreateActivity(event) {
|
|
144
|
+
const changes = await this.indexer.getChanges(event.block_height);
|
|
145
|
+
const expectedType = event.payload.entity_type;
|
|
146
|
+
const expectedAccount = event.payload.sender;
|
|
147
|
+
const matches = changes.activity.filter(a => a.entity_type === expectedType && a.account === expectedAccount);
|
|
148
|
+
return matches.length > 0 ? Object.assign(Object.assign({}, matches[0]), { msg: event.event_type }) : undefined;
|
|
149
|
+
}
|
|
150
|
+
async fetchActivity(event) {
|
|
151
|
+
var _a;
|
|
152
|
+
const entity_id = event.payload.entity_id;
|
|
153
|
+
if (!entity_id) {
|
|
154
|
+
this.logger.warn(`[IndexerWS] No entity_id for event ${event.event_type} — skipping`);
|
|
155
|
+
return undefined;
|
|
138
156
|
}
|
|
157
|
+
const changes = await this.fetchEntity(event.payload.entity_type, entity_id);
|
|
158
|
+
return {
|
|
159
|
+
timestamp: event.timestamp,
|
|
160
|
+
block_height: event.block_height,
|
|
161
|
+
entity_type: (_a = event.payload.entity_type) !== null && _a !== void 0 ? _a : '',
|
|
162
|
+
entity_id,
|
|
163
|
+
msg: event.event_type,
|
|
164
|
+
changes,
|
|
165
|
+
account: event.payload.sender,
|
|
166
|
+
};
|
|
139
167
|
}
|
|
140
|
-
async
|
|
168
|
+
async fetchEntity(entityType, id) {
|
|
169
|
+
switch (entityType) {
|
|
170
|
+
case 'TrustRegistry':
|
|
171
|
+
return (await this.indexer.getTrustRegistry(id));
|
|
172
|
+
case 'CredentialSchema':
|
|
173
|
+
return (await this.indexer.getCredentialSchema(id));
|
|
174
|
+
case 'Permission':
|
|
175
|
+
return (await this.indexer.getPermission(id));
|
|
176
|
+
default:
|
|
177
|
+
return {};
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
async applyChanges(event, activity) {
|
|
141
181
|
const state = await (0, VeranaHelpers_1.loadSyncState)(this.options.agent);
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
catch (err) {
|
|
155
|
-
this.logger.error(`[IndexerWS] Handler ${a.msg} failed at block ${blockHeight}: ${err.message}`);
|
|
156
|
-
}
|
|
182
|
+
const { block_height } = event;
|
|
183
|
+
try {
|
|
184
|
+
await this.handlerRegistry.dispatch(activity, {
|
|
185
|
+
agent: this.options.agent,
|
|
186
|
+
block_height,
|
|
187
|
+
operatorAddress: event.payload.sender,
|
|
188
|
+
state,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
this.logger.error(`[IndexerWS] Handler ${event.event_type} failed at block ${event.block_height}: ${err.message}`);
|
|
157
193
|
}
|
|
158
|
-
state.lastBlockHeight = Math.max(state.lastBlockHeight,
|
|
194
|
+
state.lastBlockHeight = Math.max(state.lastBlockHeight, event.block_height);
|
|
159
195
|
await (0, VeranaHelpers_1.saveSyncState)(this.options.agent, state);
|
|
160
|
-
this.logger.debug(`[IndexerWS] Block ${
|
|
196
|
+
this.logger.debug(`[IndexerWS] Block ${event.block_height}: applied ${event.event_type}`);
|
|
161
197
|
}
|
|
162
198
|
scheduleReconnect() {
|
|
163
199
|
const delay = Math.min(1000 * 2 ** this.reconnectAttempt, MAX_RECONNECT_DELAY_MS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexerWebSocketService.js","sourceRoot":"","sources":["../../src/blockchain/IndexerWebSocketService.ts"],"names":[],"mappings":";;;;;;AACA,4CAA0B;AAI1B,mDAA8D;AAC9D,iEAA6D;AAC7D,yCAA+D;AAU/D,MAAM,sBAAsB,GAAG,MAAO,CAAA;AACtC,MAAM,WAAW,GAAG,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"IndexerWebSocketService.js","sourceRoot":"","sources":["../../src/blockchain/IndexerWebSocketService.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,11 @@ export declare class VeranaChainService {
|
|
|
4
4
|
private readonly config;
|
|
5
5
|
private signingClient;
|
|
6
6
|
private operatorAddress;
|
|
7
|
+
private chainId;
|
|
7
8
|
private permQuery;
|
|
8
9
|
constructor(config: VeranaChainConfig);
|
|
9
10
|
get address(): string;
|
|
11
|
+
get getChainId(): string;
|
|
10
12
|
start(): Promise<void>;
|
|
11
13
|
getPermission(id: Long): Promise<unknown>;
|
|
12
14
|
findPermissionsWithDID(params: object): Promise<unknown[]>;
|
|
@@ -16,6 +16,9 @@ class VeranaChainService {
|
|
|
16
16
|
get address() {
|
|
17
17
|
return this.operatorAddress;
|
|
18
18
|
}
|
|
19
|
+
get getChainId() {
|
|
20
|
+
return this.chainId;
|
|
21
|
+
}
|
|
19
22
|
async start() {
|
|
20
23
|
const { rpcUrl, mnemonic, chainId, logger, gasPrice } = this.config;
|
|
21
24
|
const wallet = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
|
|
@@ -30,11 +33,11 @@ class VeranaChainService {
|
|
|
30
33
|
aminoTypes: (0, verana_types_1.createVeranaAminoTypes)(),
|
|
31
34
|
gasPrice: stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '0uvna'), // TODO: consider minium gas price
|
|
32
35
|
});
|
|
33
|
-
|
|
34
|
-
if (chainId &&
|
|
35
|
-
throw new Error(`[VeranaChain] Chain ID mismatch: expected "${chainId}", got "${
|
|
36
|
+
this.chainId = await this.signingClient.getChainId();
|
|
37
|
+
if (chainId && this.chainId !== chainId) {
|
|
38
|
+
throw new Error(`[VeranaChain] Chain ID mismatch: expected "${chainId}", got "${this.chainId}"`);
|
|
36
39
|
}
|
|
37
|
-
logger.info(`[VeranaChain] Connected to chain: ${
|
|
40
|
+
logger.info(`[VeranaChain] Connected to chain: ${this.chainId}`);
|
|
38
41
|
const queryClient = new stargate_1.QueryClient(cometClient);
|
|
39
42
|
const rpc = (0, stargate_1.createProtobufRpcClient)(queryClient);
|
|
40
43
|
this.permQuery = new PermQueryClientImpl(rpc);
|
|
@@ -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;AAGxG,mCAOgB;AAEhB,MAAM,EACJ,eAAe,EAAE,mBAAmB,GACrC,GAAG,OAAO,CAAC,sDAAsD,CAAC,CAAA;AACnE,MAAM,EACJ,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,GACnC,GAAG,OAAO,CAAC,mDAAmD,CAAC,CAAA;AAEhE,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"VeranaChainService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaChainService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { IndexerChangesResponse, IndexerEventsResponse, VeranaIdxConfig } from './types';
|
|
1
|
+
import { CredentialSchemaDto, IndexerChangesResponse, IndexerEventsResponse, PermissionDto, TrustRegistryDto, VeranaIdxConfig } from './types';
|
|
2
2
|
export declare class VeranaIndexerService {
|
|
3
3
|
private readonly config;
|
|
4
4
|
private readonly baseUrl;
|
|
5
5
|
constructor(config: VeranaIdxConfig);
|
|
6
6
|
getChanges(blockHeight: number): Promise<IndexerChangesResponse>;
|
|
7
7
|
getEvents(agentDid: string, afterBlockHeight?: number, limit?: number): Promise<IndexerEventsResponse>;
|
|
8
|
+
getTrustRegistry(id: string | number): Promise<TrustRegistryDto>;
|
|
9
|
+
getCredentialSchema(id: string | number): Promise<CredentialSchemaDto>;
|
|
10
|
+
getPermission(id: string | number): Promise<PermissionDto>;
|
|
8
11
|
}
|
|
@@ -23,6 +23,21 @@ class VeranaIndexerService {
|
|
|
23
23
|
const url = `${this.baseUrl}/verana/indexer/v1/events?did=${encodeURIComponent(agentDid)}&after_block_height=${afterBlockHeight}&limit=${limit}`;
|
|
24
24
|
return (0, util_1.fetchJson)(url);
|
|
25
25
|
}
|
|
26
|
+
async getTrustRegistry(id) {
|
|
27
|
+
this.config.logger.debug(`[VeranaIndexer] getTrustRegistry id=${id}`);
|
|
28
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/verana/tr/v1/get/${id}`);
|
|
29
|
+
return data.trust_registry;
|
|
30
|
+
}
|
|
31
|
+
async getCredentialSchema(id) {
|
|
32
|
+
this.config.logger.debug(`[VeranaIndexer] getCredentialSchema id=${id}`);
|
|
33
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/verana/cs/v1/get/${id}`);
|
|
34
|
+
return data.schema;
|
|
35
|
+
}
|
|
36
|
+
async getPermission(id) {
|
|
37
|
+
this.config.logger.debug(`[VeranaIndexer] getPermission id=${id}`);
|
|
38
|
+
const data = await (0, util_1.fetchJson)(`${this.baseUrl}/verana/perm/v1/get/${id}`);
|
|
39
|
+
return data.permission;
|
|
40
|
+
}
|
|
26
41
|
}
|
|
27
42
|
exports.VeranaIndexerService = VeranaIndexerService;
|
|
28
43
|
//# sourceMappingURL=VeranaIndexerService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VeranaIndexerService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaIndexerService.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;
|
|
1
|
+
{"version":3,"file":"VeranaIndexerService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaIndexerService.ts"],"names":[],"mappings":";;;AAAA,wCAAyC;AAYzC,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,UAAU,CAAC,WAAmB;;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAA;QAC3E,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,8BAA8B,WAAW,EAAE,CAAA;QACtE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAA0B,GAAG,CAAC,CAAA;QAC1D,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,MAAA,IAAI,CAAC,cAAc,CAAC,mCAAI,WAAW,CAAC;YACzD,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACtF,QAAQ,EAAE,CAAC,MAAA,IAAI,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAsB;SACxD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,gBAAgB,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG;QACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,gBAAgB,EAAE,CAAC,CAAA;QACrF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,uBAAuB,gBAAgB,UAAU,KAAK,EAAE,CAAA;QAChJ,OAAO,IAAA,gBAAS,EAAwB,GAAG,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAmB;QACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAA;QACrE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,EAAE,EAAE,CACzC,CAAA;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,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,EAAkC,GAAG,IAAI,CAAC,OAAO,qBAAqB,EAAE,EAAE,CAAC,CAAA;QACvG,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAmB;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAA;QAClE,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAS,EAAgC,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE,EAAE,CAAC,CAAA;QACvG,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF;AA3CD,oDA2CC"}
|
|
@@ -12,70 +12,71 @@ exports.defaultHandlers = [
|
|
|
12
12
|
msg: 'CreateNewTrustRegistry',
|
|
13
13
|
handle: async (activity, ctx) => {
|
|
14
14
|
(0, stateMutations_1.upsertTrustRegistry)(ctx.state, activity);
|
|
15
|
-
ctx.agent.config.logger.info(`[IndexerWS] CreateNewTrustRegistry entity=${activity.entity_id} block=${ctx.
|
|
15
|
+
ctx.agent.config.logger.info(`[IndexerWS] CreateNewTrustRegistry entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
16
16
|
},
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
msg: 'UpdateTrustRegistry',
|
|
20
20
|
handle: async (activity, ctx) => {
|
|
21
21
|
(0, stateMutations_1.upsertTrustRegistry)(ctx.state, activity);
|
|
22
|
-
ctx.agent.config.logger.info(`[IndexerWS] UpdateTrustRegistry entity=${activity.entity_id} block=${ctx.
|
|
22
|
+
ctx.agent.config.logger.info(`[IndexerWS] UpdateTrustRegistry entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
msg: 'AddGovernanceFrameworkDocument',
|
|
27
27
|
handle: async (activity, ctx) => {
|
|
28
28
|
(0, stateMutations_1.upsertTrustRegistry)(ctx.state, activity);
|
|
29
|
-
ctx.agent.config.logger.info(`[IndexerWS] AddGovernanceFrameworkDocument entity=${activity.entity_id} block=${ctx.
|
|
29
|
+
ctx.agent.config.logger.info(`[IndexerWS] AddGovernanceFrameworkDocument entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
msg: 'IncreaseActiveGFVersion',
|
|
34
34
|
handle: async (activity, ctx) => {
|
|
35
35
|
(0, stateMutations_1.bumpActiveGfVersion)(ctx.state, activity);
|
|
36
|
-
ctx.agent.config.logger.info(`[IndexerWS] IncreaseActiveGFVersion entity=${activity.entity_id} block=${ctx.
|
|
36
|
+
ctx.agent.config.logger.info(`[IndexerWS] IncreaseActiveGFVersion entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
msg: 'CreateNewCredentialSchema',
|
|
41
41
|
handle: async (activity, ctx) => {
|
|
42
42
|
(0, stateMutations_1.upsertCredentialSchema)(ctx.state, activity);
|
|
43
|
-
ctx.agent.config.logger.info(`[IndexerWS] CreateNewCredentialSchema entity=${activity.entity_id} block=${ctx.
|
|
43
|
+
ctx.agent.config.logger.info(`[IndexerWS] CreateNewCredentialSchema entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
44
|
+
await (0, stateMutations_1.publishVtjscIfOwner)(ctx.state, ctx.agent, String(activity.entity_id));
|
|
44
45
|
},
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
48
|
msg: 'UpdateCredentialSchema',
|
|
48
49
|
handle: async (activity, ctx) => {
|
|
49
50
|
(0, stateMutations_1.upsertCredentialSchema)(ctx.state, activity);
|
|
50
|
-
ctx.agent.config.logger.info(`[IndexerWS] UpdateCredentialSchema entity=${activity.entity_id} block=${ctx.
|
|
51
|
+
ctx.agent.config.logger.info(`[IndexerWS] UpdateCredentialSchema entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
51
52
|
},
|
|
52
53
|
},
|
|
53
54
|
{
|
|
54
55
|
msg: 'ArchiveCredentialSchema',
|
|
55
56
|
handle: async (activity, ctx) => {
|
|
56
|
-
(0, stateMutations_1.upsertCredentialSchema)(ctx.state, activity
|
|
57
|
-
ctx.agent.config.logger.info(`[IndexerWS] ArchiveCredentialSchema entity=${activity.entity_id} block=${ctx.
|
|
57
|
+
(0, stateMutations_1.upsertCredentialSchema)(ctx.state, activity);
|
|
58
|
+
ctx.agent.config.logger.info(`[IndexerWS] ArchiveCredentialSchema entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
58
59
|
},
|
|
59
60
|
},
|
|
60
61
|
{
|
|
61
62
|
msg: 'StartPermissionVP',
|
|
62
63
|
handle: async (activity, ctx) => {
|
|
63
64
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { vpState: 'PENDING' });
|
|
64
|
-
ctx.agent.config.logger.info(`[IndexerWS] StartPermissionVP entity=${activity.entity_id} block=${ctx.
|
|
65
|
+
ctx.agent.config.logger.info(`[IndexerWS] StartPermissionVP entity=${activity.entity_id} block=${ctx.block_height} — TODO §5.1: progress credential acquisition flow (applicant)`);
|
|
65
66
|
},
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
69
|
msg: 'RenewPermissionVP',
|
|
69
70
|
handle: async (activity, ctx) => {
|
|
70
71
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { vpState: 'PENDING' });
|
|
71
|
-
ctx.agent.config.logger.info(`[IndexerWS] RenewPermissionVP entity=${activity.entity_id} block=${ctx.
|
|
72
|
+
ctx.agent.config.logger.info(`[IndexerWS] RenewPermissionVP entity=${activity.entity_id} block=${ctx.block_height} — TODO §5.1: progress credential acquisition flow (applicant renewal)`);
|
|
72
73
|
},
|
|
73
74
|
},
|
|
74
75
|
{
|
|
75
76
|
msg: 'SetPermissionVPToValidated',
|
|
76
77
|
handle: async (activity, ctx) => {
|
|
77
78
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { vpState: 'VALIDATED' });
|
|
78
|
-
ctx.agent.config.logger.info(`[IndexerWS] SetPermissionVPToValidated entity=${activity.entity_id} block=${ctx.
|
|
79
|
+
ctx.agent.config.logger.info(`[IndexerWS] SetPermissionVPToValidated entity=${activity.entity_id} block=${ctx.block_height} — TODO §5.1: progress credential acquisition flow (validator)`);
|
|
79
80
|
},
|
|
80
81
|
},
|
|
81
82
|
{
|
|
@@ -85,35 +86,35 @@ exports.defaultHandlers = [
|
|
|
85
86
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, {
|
|
86
87
|
effectiveUntil: String((_a = activity.changes['effective_until']) !== null && _a !== void 0 ? _a : ''),
|
|
87
88
|
});
|
|
88
|
-
ctx.agent.config.logger.info(`[IndexerWS] AdjustPermission entity=${activity.entity_id} block=${ctx.
|
|
89
|
+
ctx.agent.config.logger.info(`[IndexerWS] AdjustPermission entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
89
90
|
},
|
|
90
91
|
},
|
|
91
92
|
{
|
|
92
93
|
msg: 'RevokePermission',
|
|
93
94
|
handle: async (activity, ctx) => {
|
|
94
95
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { revoked: true });
|
|
95
|
-
ctx.agent.config.logger.info(`[IndexerWS] RevokePermission entity=${activity.entity_id} block=${ctx.
|
|
96
|
+
ctx.agent.config.logger.info(`[IndexerWS] RevokePermission entity=${activity.entity_id} block=${ctx.block_height} — TODO §7.2: remove linked VP from DID doc + delete credential`);
|
|
96
97
|
},
|
|
97
98
|
},
|
|
98
99
|
{
|
|
99
100
|
msg: 'SlashPermissionTrustDeposit',
|
|
100
101
|
handle: async (activity, ctx) => {
|
|
101
102
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { slashed: true });
|
|
102
|
-
ctx.agent.config.logger.info(`[IndexerWS] SlashPermissionTrustDeposit entity=${activity.entity_id} block=${ctx.
|
|
103
|
+
ctx.agent.config.logger.info(`[IndexerWS] SlashPermissionTrustDeposit entity=${activity.entity_id} block=${ctx.block_height} — TODO §7.2: clean up associated flow state`);
|
|
103
104
|
},
|
|
104
105
|
},
|
|
105
106
|
{
|
|
106
107
|
msg: 'RepayPermissionSlashedTrustDeposit',
|
|
107
108
|
handle: async (activity, ctx) => {
|
|
108
109
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, { slashed: false });
|
|
109
|
-
ctx.agent.config.logger.info(`[IndexerWS] RepayPermissionSlashedTrustDeposit entity=${activity.entity_id} block=${ctx.
|
|
110
|
+
ctx.agent.config.logger.info(`[IndexerWS] RepayPermissionSlashedTrustDeposit entity=${activity.entity_id} block=${ctx.block_height}`);
|
|
110
111
|
},
|
|
111
112
|
},
|
|
112
113
|
{
|
|
113
114
|
msg: 'CancelPermissionVPLastRequest',
|
|
114
115
|
handle: async (activity, ctx) => {
|
|
115
116
|
(0, stateMutations_1.upsertPermission)(ctx.state, activity, {});
|
|
116
|
-
ctx.agent.config.logger.info(`[IndexerWS] CancelPermissionVPLastRequest entity=${activity.entity_id} block=${ctx.
|
|
117
|
+
ctx.agent.config.logger.info(`[IndexerWS] CancelPermissionVPLastRequest entity=${activity.entity_id} block=${ctx.block_height} — TODO §7.2: clean up associated flow state`);
|
|
117
118
|
},
|
|
118
119
|
},
|
|
119
120
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultHandlers.js","sourceRoot":"","sources":["../../../src/blockchain/handlers/defaultHandlers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaultHandlers.js","sourceRoot":"","sources":["../../../src/blockchain/handlers/defaultHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { VsAgent } from '../../agent/VsAgent';
|
|
1
2
|
import { IndexerActivity, VeranaSyncState } from '../types';
|
|
2
3
|
export declare function upsertTrustRegistry(state: VeranaSyncState, activity: IndexerActivity): void;
|
|
3
4
|
export declare function bumpActiveGfVersion(state: VeranaSyncState, activity: IndexerActivity): void;
|
|
4
|
-
export declare function upsertCredentialSchema(state: VeranaSyncState, activity: IndexerActivity
|
|
5
|
-
toggleArchived?: boolean;
|
|
6
|
-
}): void;
|
|
5
|
+
export declare function upsertCredentialSchema(state: VeranaSyncState, activity: IndexerActivity): void;
|
|
7
6
|
export declare function upsertPermission(state: VeranaSyncState, activity: IndexerActivity, overrides?: {
|
|
8
7
|
vpState?: string;
|
|
9
8
|
revoked?: boolean;
|
|
10
9
|
slashed?: boolean;
|
|
11
10
|
effectiveUntil?: string;
|
|
12
11
|
}): void;
|
|
12
|
+
export declare function publishVtjscIfOwner(state: VeranaSyncState, agent: VsAgent, schemaEntityId: string): Promise<void>;
|
|
@@ -4,6 +4,11 @@ exports.upsertTrustRegistry = upsertTrustRegistry;
|
|
|
4
4
|
exports.bumpActiveGfVersion = bumpActiveGfVersion;
|
|
5
5
|
exports.upsertCredentialSchema = upsertCredentialSchema;
|
|
6
6
|
exports.upsertPermission = upsertPermission;
|
|
7
|
+
exports.publishVtjscIfOwner = publishVtjscIfOwner;
|
|
8
|
+
const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
|
|
9
|
+
const data_1 = require("../../utils/data");
|
|
10
|
+
const trustCredentialStore_1 = require("../../utils/trustCredentialStore");
|
|
11
|
+
const DEFAULT_CHAIN_ID = 'vna-testnet-1';
|
|
7
12
|
function upsertTrustRegistry(state, activity) {
|
|
8
13
|
var _a, _b, _c, _d, _e, _f;
|
|
9
14
|
const block = Number(activity.block_height) || 0;
|
|
@@ -33,23 +38,25 @@ function bumpActiveGfVersion(state, activity) {
|
|
|
33
38
|
lastModifiedBlock: block,
|
|
34
39
|
};
|
|
35
40
|
}
|
|
36
|
-
function upsertCredentialSchema(state, activity
|
|
37
|
-
var _a, _b, _c, _d, _e
|
|
41
|
+
function upsertCredentialSchema(state, activity) {
|
|
42
|
+
var _a, _b, _c, _d, _e;
|
|
38
43
|
const block = Number(activity.block_height) || 0;
|
|
39
44
|
const id = String(activity.entity_id);
|
|
40
45
|
const c = activity.changes;
|
|
41
46
|
const existing = state.credentialSchemas[id];
|
|
47
|
+
const archivedRaw = c['archived'];
|
|
48
|
+
const archived = archivedRaw !== undefined ? archivedRaw !== null && archivedRaw !== false : ((_a = existing === null || existing === void 0 ? void 0 : existing.archived) !== null && _a !== void 0 ? _a : false);
|
|
42
49
|
state.credentialSchemas[id] = {
|
|
43
50
|
id: Number(id),
|
|
44
|
-
trId: Number((
|
|
45
|
-
jsonSchema: String((
|
|
51
|
+
trId: Number((_c = (_b = c['tr_id']) !== null && _b !== void 0 ? _b : existing === null || existing === void 0 ? void 0 : existing.trId) !== null && _c !== void 0 ? _c : 0),
|
|
52
|
+
jsonSchema: String((_e = (_d = c['json_schema']) !== null && _d !== void 0 ? _d : existing === null || existing === void 0 ? void 0 : existing.jsonSchema) !== null && _e !== void 0 ? _e : ''),
|
|
46
53
|
issuerMode: c['issuer_perm_management_mode']
|
|
47
54
|
? String(c['issuer_perm_management_mode'])
|
|
48
55
|
: existing === null || existing === void 0 ? void 0 : existing.issuerMode,
|
|
49
56
|
verifierMode: c['verifier_perm_management_mode']
|
|
50
57
|
? String(c['verifier_perm_management_mode'])
|
|
51
58
|
: existing === null || existing === void 0 ? void 0 : existing.verifierMode,
|
|
52
|
-
archived
|
|
59
|
+
archived,
|
|
53
60
|
lastModifiedBlock: block,
|
|
54
61
|
};
|
|
55
62
|
}
|
|
@@ -71,4 +78,36 @@ function upsertPermission(state, activity, overrides = {}) {
|
|
|
71
78
|
lastModifiedBlock: block,
|
|
72
79
|
};
|
|
73
80
|
}
|
|
81
|
+
async function publishVtjscIfOwner(state, agent, schemaEntityId) {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
const schema = state.credentialSchemas[schemaEntityId];
|
|
84
|
+
if (!schema) {
|
|
85
|
+
agent.config.logger.warn(`[VTJSC] Schema ${schemaEntityId} not found in state`);
|
|
86
|
+
}
|
|
87
|
+
const tr = state.trustRegistries[String(schema.trId)];
|
|
88
|
+
if (!tr) {
|
|
89
|
+
agent.config.logger.warn(`[VTJSC] Trust Registry ${schema.trId} not found in state`);
|
|
90
|
+
}
|
|
91
|
+
const chainId = (_b = (_a = agent.veranaChain) === null || _a === void 0 ? void 0 : _a.getChainId) !== null && _b !== void 0 ? _b : DEFAULT_CHAIN_ID;
|
|
92
|
+
const jsonSchemaRef = `vpr:verana:${chainId}/cs/v1/js/${schema.id}`;
|
|
93
|
+
let digestSRI;
|
|
94
|
+
try {
|
|
95
|
+
digestSRI = await (0, vs_agent_model_1.computeSchemaDigest)(JSON.parse(schema.jsonSchema));
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
agent.config.logger.error(`[VTJSC] Failed to parse/digest schema ${schemaEntityId}`, e);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
await (0, trustCredentialStore_1.createJsc)(agent, agent.publicApiBaseUrl, (0, data_1.getEcsSchemas)(agent.publicApiBaseUrl), {
|
|
103
|
+
schemaBaseId: String(schema.id),
|
|
104
|
+
jsonSchemaRef,
|
|
105
|
+
precomputedDigestSRI: digestSRI,
|
|
106
|
+
});
|
|
107
|
+
agent.config.logger.info(`[VTJSC] Published VTJSC for schema ${schema.id} (TR ${schema.trId}) at block ${state.lastBlockHeight}`);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
agent.config.logger.error(`[VTJSC] Failed to publish VTJSC for schema ${schema.id}`, e);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
74
113
|
//# sourceMappingURL=stateMutations.js.map
|