@verana-labs/vs-agent-sdk 1.12.0-dev.2 → 1.12.0-dev.21

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.
Files changed (78) hide show
  1. package/README.md +35 -46
  2. package/build/agent/VsAgent.d.ts +6 -0
  3. package/build/agent/VsAgent.js +25 -13
  4. package/build/agent/VsAgent.js.map +1 -1
  5. package/build/agent/createVsAgent.d.ts +1 -0
  6. package/build/agent/createVsAgent.js +1 -0
  7. package/build/agent/createVsAgent.js.map +1 -1
  8. package/build/blockchain/IndexerWebSocketService.d.ts +15 -13
  9. package/build/blockchain/IndexerWebSocketService.js +207 -103
  10. package/build/blockchain/IndexerWebSocketService.js.map +1 -1
  11. package/build/blockchain/VeranaChainService.d.ts +33 -11
  12. package/build/blockchain/VeranaChainService.js +246 -55
  13. package/build/blockchain/VeranaChainService.js.map +1 -1
  14. package/build/blockchain/VeranaHelpers.js +3 -2
  15. package/build/blockchain/VeranaHelpers.js.map +1 -1
  16. package/build/blockchain/VeranaIndexerService.d.ts +9 -5
  17. package/build/blockchain/VeranaIndexerService.js +41 -23
  18. package/build/blockchain/VeranaIndexerService.js.map +1 -1
  19. package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +5 -3
  20. package/build/blockchain/handlers/IndexerHandlerRegistry.js +6 -0
  21. package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -1
  22. package/build/blockchain/handlers/defaultHandlers.d.ts +4 -1
  23. package/build/blockchain/handlers/defaultHandlers.js +76 -44
  24. package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
  25. package/build/blockchain/handlers/stateMutations.d.ts +17 -4
  26. package/build/blockchain/handlers/stateMutations.js +229 -31
  27. package/build/blockchain/handlers/stateMutations.js.map +1 -1
  28. package/build/blockchain/indexerSync.d.ts +10 -0
  29. package/build/blockchain/indexerSync.js +34 -0
  30. package/build/blockchain/indexerSync.js.map +1 -0
  31. package/build/blockchain/types.d.ts +291 -49
  32. package/build/blockchain/types.js +27 -1
  33. package/build/blockchain/types.js.map +1 -1
  34. package/build/credentials/FullTailsFileService.d.ts +4 -4
  35. package/build/credentials/FullTailsFileService.js +78 -71
  36. package/build/credentials/FullTailsFileService.js.map +1 -1
  37. package/build/did/adminApiService.d.ts +2 -0
  38. package/build/did/adminApiService.js +17 -0
  39. package/build/did/adminApiService.js.map +1 -0
  40. package/build/did/migrateWebVhVersionTime.d.ts +9 -0
  41. package/build/did/migrateWebVhVersionTime.js +191 -0
  42. package/build/did/migrateWebVhVersionTime.js.map +1 -0
  43. package/build/events/VsAgentEvents.d.ts +16 -2
  44. package/build/events/VsAgentEvents.js +2 -0
  45. package/build/events/VsAgentEvents.js.map +1 -1
  46. package/build/events/VtFlowEvents.d.ts +3 -0
  47. package/build/events/VtFlowEvents.js +35 -0
  48. package/build/events/VtFlowEvents.js.map +1 -0
  49. package/build/events/index.d.ts +1 -0
  50. package/build/events/index.js +1 -0
  51. package/build/events/index.js.map +1 -1
  52. package/build/index.d.ts +4 -4
  53. package/build/index.js +9 -6
  54. package/build/index.js.map +1 -1
  55. package/build/plugins/setupBaseDidComm.d.ts +3 -1
  56. package/build/plugins/setupBaseDidComm.js +3 -1
  57. package/build/plugins/setupBaseDidComm.js.map +1 -1
  58. package/build/types.d.ts +2 -0
  59. package/build/types.js +3 -1
  60. package/build/types.js.map +1 -1
  61. package/build/utils/trustCredentialStore.js +2 -0
  62. package/build/utils/trustCredentialStore.js.map +1 -1
  63. package/build/utils/util.d.ts +5 -1
  64. package/build/utils/util.js +17 -5
  65. package/build/utils/util.js.map +1 -1
  66. package/build/vtFlow/VtFlowOrchestrator.d.ts +41 -0
  67. package/build/vtFlow/VtFlowOrchestrator.js +285 -0
  68. package/build/vtFlow/VtFlowOrchestrator.js.map +1 -0
  69. package/build/vtFlow/assertVerifiableService.d.ts +8 -0
  70. package/build/vtFlow/assertVerifiableService.js +28 -0
  71. package/build/vtFlow/assertVerifiableService.js.map +1 -0
  72. package/build/vtFlow/credentialDigest.d.ts +3 -0
  73. package/build/vtFlow/credentialDigest.js +23 -0
  74. package/build/vtFlow/credentialDigest.js.map +1 -0
  75. package/build/vtFlow/index.d.ts +2 -0
  76. package/build/vtFlow/index.js +19 -0
  77. package/build/vtFlow/index.js.map +1 -0
  78. package/package.json +16 -12
@@ -7,8 +7,28 @@ const stargate_1 = require("@cosmjs/stargate");
7
7
  const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
8
8
  const verana_types_1 = require("@verana-labs/verana-types");
9
9
  const types_1 = require("./types");
10
- const { QueryClientImpl: PermQueryClientImpl, } = require('@verana-labs/verana-types/codec/verana/perm/v1/query');
11
- const { MsgStartPermissionVP, MsgRenewPermissionVP, MsgSetPermissionVPToValidated, MsgCancelPermissionVPLastRequest, MsgCreateOrUpdatePermissionSession, } = require('@verana-labs/verana-types/codec/verana/perm/v1/tx');
10
+ const { QueryClientImpl: CsQueryClientImpl } = require('@verana-labs/verana-types/codec/verana/cs/v1/query');
11
+ const { QueryClientImpl: DeQueryClientImpl } = require('@verana-labs/verana-types/codec/verana/de/v1/query');
12
+ const { QueryClientImpl: EcQueryClientImpl, QueryGetEcosystemRequest, } = require('@verana-labs/verana-types/codec/verana/ec/v1/query');
13
+ const { QueryClientImpl: PpQueryClientImpl, QueryFindParticipantsWithDIDRequest, } = require('@verana-labs/verana-types/codec/verana/pp/v1/query');
14
+ const { MsgSetParticipantOPToValidated, MsgCreateOrUpdateParticipantSession, MsgTriggerResolver, MsgStartParticipantOP, MsgStartParticipantOPResponse, MsgRenewParticipantOP, MsgCancelParticipantOPLastRequest, MsgSelfCreateParticipant, MsgSelfCreateParticipantResponse, } = require('@verana-labs/verana-types/codec/verana/pp/v1/tx');
15
+ // ParticipantRole.HOLDER (x/pp/types); the only role whose vs_operator may send TriggerResolver (chain Path 1).
16
+ const PARTICIPANT_ROLE_HOLDER = 6;
17
+ function mapParticipant(p) {
18
+ var _a;
19
+ return {
20
+ id: p.id,
21
+ schemaId: p.schemaId,
22
+ role: p.role,
23
+ did: p.did,
24
+ corporation: p.corporationId != null ? String(p.corporationId) : '',
25
+ validatorParticipantId: p.validatorParticipantId,
26
+ opState: p.opState,
27
+ opSummaryDigest: (_a = p.opSummaryDigest) !== null && _a !== void 0 ? _a : '',
28
+ revoked: p.revoked,
29
+ slashed: p.slashed,
30
+ };
31
+ }
12
32
  class VeranaChainService {
13
33
  constructor(config) {
14
34
  this.config = config;
@@ -19,20 +39,40 @@ class VeranaChainService {
19
39
  get getChainId() {
20
40
  return this.chainId;
21
41
  }
42
+ get corporation() {
43
+ return this.corporationAddress;
44
+ }
45
+ get autoTriggerResolverEnabled() {
46
+ return this.config.autoTriggerResolver !== false;
47
+ }
22
48
  async start() {
49
+ var _a;
23
50
  const { rpcUrl, mnemonic, chainId, logger, gasPrice } = this.config;
24
51
  const wallet = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
25
52
  prefix: types_1.VERANA_BECH32_PREFIX,
26
53
  });
27
54
  const [account] = await wallet.getAccounts();
28
55
  this.operatorAddress = account.address;
56
+ this.corporationAddress = (_a = this.config.corporationAddress) !== null && _a !== void 0 ? _a : account.address;
29
57
  logger.info(`[VeranaChain] vs_operator address: ${this.operatorAddress} (fund this address with VNA to enable on-chain operations)`);
30
58
  const cometClient = await (0, tendermint_rpc_1.connectComet)(rpcUrl);
31
59
  this.signingClient = await stargate_1.SigningStargateClient.createWithSigner(cometClient, wallet, {
32
60
  registry: (0, verana_types_1.createVeranaRegistry)(),
33
61
  aminoTypes: (0, verana_types_1.createVeranaAminoTypes)(),
34
- gasPrice: stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '0uvna'), // TODO: consider minium gas price
62
+ gasPrice: stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '1uvna'),
35
63
  });
64
+ if (this.config.sessionOperatorMnemonic) {
65
+ const sessionWallet = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(this.config.sessionOperatorMnemonic, {
66
+ prefix: types_1.VERANA_BECH32_PREFIX,
67
+ });
68
+ const [sessionAccount] = await sessionWallet.getAccounts();
69
+ this.sessionSigningClient = await stargate_1.SigningStargateClient.createWithSigner(cometClient, sessionWallet, {
70
+ registry: (0, verana_types_1.createVeranaRegistry)(),
71
+ aminoTypes: (0, verana_types_1.createVeranaAminoTypes)(),
72
+ gasPrice: stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '1uvna'),
73
+ });
74
+ this.sessionOperatorAddress = sessionAccount.address;
75
+ }
36
76
  this.chainId = await this.signingClient.getChainId();
37
77
  if (chainId && this.chainId !== chainId) {
38
78
  throw new Error(`[VeranaChain] Chain ID mismatch: expected "${chainId}", got "${this.chainId}"`);
@@ -40,85 +80,236 @@ class VeranaChainService {
40
80
  logger.info(`[VeranaChain] Connected to chain: ${this.chainId}`);
41
81
  const queryClient = new stargate_1.QueryClient(cometClient);
42
82
  const rpc = (0, stargate_1.createProtobufRpcClient)(queryClient);
43
- this.permQuery = new PermQueryClientImpl(rpc);
83
+ this.ppQuery = new PpQueryClientImpl(rpc);
84
+ this.deQuery = new DeQueryClientImpl(rpc);
85
+ this.ecQuery = new EcQueryClientImpl(rpc);
86
+ this.csQuery = new CsQueryClientImpl(rpc);
44
87
  }
45
- // Query API (No signed)
46
- async getPermission(id) {
47
- return this.permQuery.GetPermission({ id });
88
+ // Query API (unsigned)
89
+ async getParticipant(id) {
90
+ const result = await this.ppQuery.GetParticipant({ id });
91
+ return result.participant ? mapParticipant(result.participant) : undefined;
48
92
  }
49
- async findPermissionsWithDID(params) {
50
- var _a;
51
- const result = await this.permQuery.FindPermissionsWithDID(params);
52
- return (_a = result.permissions) !== null && _a !== void 0 ? _a : [];
53
- }
54
- async getPermissionSession(uuid) {
55
- return this.permQuery.GetPermissionSession({ id: uuid });
56
- }
57
- // Transaction API (Signed)
58
- async startPermissionVP(params) {
59
- const value = MsgStartPermissionVP.fromPartial({
60
- creator: this.operatorAddress,
61
- type: params.type,
62
- validatorPermId: params.validatorPermId,
63
- country: params.country,
93
+ async getBalance(denom = 'uvna') {
94
+ return this.signingClient.getBalance(this.operatorAddress, denom);
95
+ }
96
+ async hasVsOperatorAuthorization() {
97
+ return (await this.listVsOperatorAuthorizations()).length > 0;
98
+ }
99
+ async listOperatorAuthorizations() {
100
+ const result = await this.deQuery.ListOperatorAuthorizations({
101
+ corporationId: 0,
102
+ operator: this.operatorAddress,
103
+ responseMaxSize: 64,
104
+ });
105
+ return result.operatorAuthorizations.map(a => ({
106
+ id: a.id,
107
+ corporationId: a.corporationId,
108
+ operator: a.operator,
109
+ msgTypes: a.msgTypes,
110
+ }));
111
+ }
112
+ async listVsOperatorAuthorizations() {
113
+ const result = await this.deQuery.ListVSOperatorAuthorizations({
114
+ corporationId: 0,
115
+ vsOperator: this.operatorAddress,
116
+ responseMaxSize: 64,
117
+ });
118
+ return result.vsOperatorAuthorizations.map(a => ({
119
+ id: a.id,
120
+ corporationId: a.corporationId,
121
+ vsOperator: a.vsOperator,
122
+ records: a.records.map(r => ({ participantId: r.participantId, msgTypes: r.msgTypes })),
123
+ }));
124
+ }
125
+ async getEcosystem(id) {
126
+ // fromPartial fills the unused request fields with defaults so the request encodes correctly.
127
+ const result = await this.ecQuery.GetEcosystem(QueryGetEcosystemRequest.fromPartial({ id }));
128
+ if (!result.ecosystem)
129
+ return undefined;
130
+ const { id: ecosystemId, did, corporationId, archived, activeVersion } = result.ecosystem;
131
+ return { id: ecosystemId, did, corporationId, archived, activeVersion };
132
+ }
133
+ async getCredentialSchema(id) {
134
+ const result = await this.csQuery.GetCredentialSchema({ id });
135
+ if (!result.schema)
136
+ return undefined;
137
+ const s = result.schema;
138
+ return {
139
+ id: s.id,
140
+ ecosystemId: s.ecosystemId,
141
+ jsonSchema: s.jsonSchema,
142
+ issuerOnboardingMode: s.issuerOnboardingMode,
143
+ verifierOnboardingMode: s.verifierOnboardingMode,
144
+ holderOnboardingMode: s.holderOnboardingMode,
145
+ archived: s.archived,
146
+ };
147
+ }
148
+ // Transaction API (signed)
149
+ async startParticipantOP(params) {
150
+ var _a, _b;
151
+ const value = MsgStartParticipantOP.fromPartial({
152
+ corporation: this.corporationAddress,
153
+ operator: this.operatorAddress,
154
+ role: params.role,
155
+ validatorParticipantId: params.validatorParticipantId,
64
156
  did: params.did,
65
157
  validationFees: params.validationFees,
158
+ issuanceFees: params.issuanceFees,
159
+ verificationFees: params.verificationFees,
160
+ vsOperator: (_a = params.vsOperator) !== null && _a !== void 0 ? _a : '',
161
+ vsOperatorAuthzMsgTypes: (_b = params.vsOperatorAuthzMsgTypes) !== null && _b !== void 0 ? _b : [],
66
162
  });
67
- const result = await this.broadcastMsg(verana_types_1.veranaTypeUrls.MsgStartPermissionVP, value);
163
+ const result = await this.broadcastMsg({ typeUrl: verana_types_1.veranaTypeUrls.MsgStartParticipantOP, value });
164
+ const participantId = Number(MsgStartParticipantOPResponse.decode(result.msgResponses[0].value).participantId);
165
+ return { participantId, txHash: result.transactionHash };
166
+ }
167
+ async renewParticipantOP(id) {
168
+ const value = MsgRenewParticipantOP.fromPartial({
169
+ corporation: this.corporationAddress,
170
+ operator: this.operatorAddress,
171
+ id,
172
+ });
173
+ const result = await this.broadcastMsg({ typeUrl: verana_types_1.veranaTypeUrls.MsgRenewParticipantOP, value });
68
174
  return { txHash: result.transactionHash };
69
175
  }
70
- async renewPermissionVP(id) {
71
- const value = MsgRenewPermissionVP.fromPartial({
72
- creator: this.operatorAddress,
176
+ async cancelParticipantOPLastRequest(id) {
177
+ const value = MsgCancelParticipantOPLastRequest.fromPartial({
178
+ corporation: this.corporationAddress,
179
+ operator: this.operatorAddress,
73
180
  id,
74
181
  });
75
- const result = await this.broadcastMsg(verana_types_1.veranaTypeUrls.MsgRenewPermissionVP, value);
182
+ const result = await this.broadcastMsg({
183
+ typeUrl: verana_types_1.veranaTypeUrls.MsgCancelParticipantOPLastRequest,
184
+ value,
185
+ });
76
186
  return { txHash: result.transactionHash };
77
187
  }
78
- async setPermissionVPToValidated(params) {
79
- const value = MsgSetPermissionVPToValidated.fromPartial({
80
- creator: this.operatorAddress,
188
+ async selfCreateParticipant(params) {
189
+ var _a, _b, _c, _d, _e, _f, _g;
190
+ const value = MsgSelfCreateParticipant.fromPartial({
191
+ corporation: this.corporationAddress,
192
+ operator: this.operatorAddress,
193
+ role: params.role,
194
+ validatorParticipantId: params.validatorParticipantId,
195
+ did: params.did,
196
+ effectiveFrom: params.effectiveFrom,
197
+ effectiveUntil: params.effectiveUntil,
198
+ validationFees: (_a = params.validationFees) !== null && _a !== void 0 ? _a : 0,
199
+ verificationFees: (_b = params.verificationFees) !== null && _b !== void 0 ? _b : 0,
200
+ vsOperator: (_c = params.vsOperator) !== null && _c !== void 0 ? _c : '',
201
+ vsOperatorAuthzMsgTypes: (_d = params.vsOperatorAuthzMsgTypes) !== null && _d !== void 0 ? _d : [],
202
+ vsOperatorAuthzSpendLimit: (_e = params.vsOperatorAuthzSpendLimit) !== null && _e !== void 0 ? _e : [],
203
+ vsOperatorAuthzWithFeegrant: (_f = params.vsOperatorAuthzWithFeegrant) !== null && _f !== void 0 ? _f : false,
204
+ vsOperatorAuthzFeeSpendLimit: (_g = params.vsOperatorAuthzFeeSpendLimit) !== null && _g !== void 0 ? _g : [],
205
+ vsOperatorAuthzPeriod: params.vsOperatorAuthzPeriod,
206
+ });
207
+ const result = await this.broadcastMsg({ typeUrl: verana_types_1.veranaTypeUrls.MsgSelfCreateParticipant, value });
208
+ const participantId = Number(MsgSelfCreateParticipantResponse.decode(result.msgResponses[0].value).id);
209
+ return { participantId, txHash: result.transactionHash };
210
+ }
211
+ async setParticipantOPToValidated(params) {
212
+ var _a, _b, _c, _d, _e;
213
+ const value = MsgSetParticipantOPToValidated.fromPartial({
214
+ corporation: this.corporationAddress,
215
+ operator: this.operatorAddress,
81
216
  id: params.id,
82
217
  effectiveUntil: params.effectiveUntil,
83
- validationFees: params.validationFees,
84
- issuanceFees: params.issuanceFees,
85
- verificationFees: params.verificationFees,
86
- country: params.country,
87
- vpSummaryDigestSri: params.vpSummaryDigestSri,
88
- issuanceFeeDiscount: params.issuanceFeeDiscount,
89
- verificationFeeDiscount: params.verificationFeeDiscount,
218
+ validationFees: (_a = params.validationFees) !== null && _a !== void 0 ? _a : 0,
219
+ issuanceFees: (_b = params.issuanceFees) !== null && _b !== void 0 ? _b : 0,
220
+ verificationFees: (_c = params.verificationFees) !== null && _c !== void 0 ? _c : 0,
221
+ opSummaryDigest: params.opSummaryDigest,
222
+ issuanceFeeDiscount: (_d = params.issuanceFeeDiscount) !== null && _d !== void 0 ? _d : 0,
223
+ verificationFeeDiscount: (_e = params.verificationFeeDiscount) !== null && _e !== void 0 ? _e : 0,
90
224
  });
91
- const result = await this.broadcastMsg(verana_types_1.veranaTypeUrls.MsgSetPermissionVPToValidated, value);
225
+ const result = await this.broadcastMsg({ typeUrl: verana_types_1.veranaTypeUrls.MsgSetParticipantOPToValidated, value });
92
226
  return { txHash: result.transactionHash };
93
227
  }
94
- async cancelPermissionVPLastRequest(id) {
95
- const value = MsgCancelPermissionVPLastRequest.fromPartial({
96
- creator: this.operatorAddress,
97
- id,
228
+ async createOrUpdateParticipantSession(params) {
229
+ var _a;
230
+ const value = MsgCreateOrUpdateParticipantSession.fromPartial({
231
+ corporation: this.corporationAddress,
232
+ operator: (_a = this.sessionOperatorAddress) !== null && _a !== void 0 ? _a : this.operatorAddress,
233
+ id: params.id,
234
+ issuerParticipantId: params.issuerParticipantId,
235
+ verifierParticipantId: params.verifierParticipantId,
236
+ agentParticipantId: params.agentParticipantId,
237
+ walletAgentParticipantId: params.walletAgentParticipantId,
238
+ digest: params.digest,
239
+ });
240
+ const result = await this.broadcastMsg({
241
+ typeUrl: verana_types_1.veranaTypeUrls.MsgCreateOrUpdateParticipantSession,
242
+ value,
243
+ useSessionSigner: true,
98
244
  });
99
- const result = await this.broadcastMsg(verana_types_1.veranaTypeUrls.MsgCancelPermissionVPLastRequest, value);
100
245
  return { txHash: result.transactionHash };
101
246
  }
102
- async createOrUpdatePermissionSession(params) {
103
- const value = MsgCreateOrUpdatePermissionSession.fromPartial({
104
- creator: this.operatorAddress,
105
- id: params.id,
106
- issuerPermId: params.issuerPermId,
107
- verifierPermId: params.verifierPermId,
108
- agentPermId: params.agentPermId,
109
- walletAgentPermId: params.walletAgentPermId,
247
+ async findActiveHolderParticipantIdByDid(did) {
248
+ var _a;
249
+ // fromPartial fills the unused fields with defaults so the request encodes correctly.
250
+ const request = QueryFindParticipantsWithDIDRequest.fromPartial({ did });
251
+ const { participants } = await this.ppQuery.FindParticipantsWithDID(request);
252
+ return (_a = participants.find(p => p.did === did && p.role === PARTICIPANT_ROLE_HOLDER && !p.revoked && !p.slashed)) === null || _a === void 0 ? void 0 : _a.id;
253
+ }
254
+ async triggerResolver(participantId) {
255
+ var _a;
256
+ const value = MsgTriggerResolver.fromPartial({
257
+ corporation: this.corporationAddress,
258
+ operator: (_a = this.sessionOperatorAddress) !== null && _a !== void 0 ? _a : this.operatorAddress,
259
+ id: participantId,
260
+ });
261
+ const result = await this.broadcastMsg({
262
+ typeUrl: verana_types_1.veranaTypeUrls.MsgTriggerResolver,
263
+ value,
264
+ useSessionSigner: true,
110
265
  });
111
- const result = await this.broadcastMsg(verana_types_1.veranaTypeUrls.MsgCreateOrUpdatePermissionSession, value);
112
266
  return { txHash: result.transactionHash };
113
267
  }
114
- async broadcastMsg(typeUrl, value) {
268
+ async broadcastMsg(options) {
269
+ var _a, _b;
270
+ const { typeUrl, value, useSessionSigner = false } = options;
271
+ const signingClient = useSessionSigner
272
+ ? ((_a = this.sessionSigningClient) !== null && _a !== void 0 ? _a : this.signingClient)
273
+ : this.signingClient;
274
+ const signerAddress = useSessionSigner
275
+ ? ((_b = this.sessionOperatorAddress) !== null && _b !== void 0 ? _b : this.operatorAddress)
276
+ : this.operatorAddress;
115
277
  const msg = { typeUrl, value };
116
- this.config.logger.debug(`[VeranaChain] Broadcasting ${typeUrl}`);
117
- const result = await this.signingClient.signAndBroadcast(this.operatorAddress, [msg], 'auto');
278
+ this.config.logger.debug(`[VeranaChain] Broadcasting ${typeUrl} as ${signerAddress}`);
279
+ const result = await signingClient.signAndBroadcast(signerAddress, [msg], 'auto');
118
280
  (0, stargate_1.assertIsDeliverTxSuccess)(result);
119
281
  this.config.logger.info(`[VeranaChain] Tx success: ${result.transactionHash}`);
120
282
  return result;
121
283
  }
284
+ async extractIdFromEvent(txHashOrResult, eventType, attrKey) {
285
+ let events;
286
+ let txRef;
287
+ if (typeof txHashOrResult === 'string') {
288
+ const tx = await this.signingClient.getTx(txHashOrResult);
289
+ if (!tx) {
290
+ throw new Error(`[VeranaChain] tx ${txHashOrResult} not found`);
291
+ }
292
+ events = tx.events;
293
+ txRef = txHashOrResult;
294
+ }
295
+ else {
296
+ events = txHashOrResult.events;
297
+ txRef = txHashOrResult.transactionHash;
298
+ }
299
+ const event = events.find(e => e.type === eventType);
300
+ if (!event) {
301
+ throw new Error(`[VeranaChain] tx ${txRef} missing '${eventType}' event`);
302
+ }
303
+ const attr = event.attributes.find(a => a.key === attrKey);
304
+ if (!attr) {
305
+ throw new Error(`[VeranaChain] tx ${txRef} missing '${attrKey}' in '${eventType}' event`);
306
+ }
307
+ const id = Number(attr.value);
308
+ if (!Number.isFinite(id)) {
309
+ throw new Error(`[VeranaChain] tx ${txRef} has non-numeric ${attrKey}=${attr.value}`);
310
+ }
311
+ return id;
312
+ }
122
313
  }
123
314
  exports.VeranaChainService = VeranaChainService;
124
315
  //# sourceMappingURL=VeranaChainService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VeranaChainService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaChainService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeranaChainService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaChainService.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ exports.saveSyncState = saveSyncState;
5
5
  const types_1 = require("./types");
6
6
  const emptyState = () => ({
7
7
  lastBlockHeight: 0,
8
- trustRegistries: {},
8
+ ecosystems: {},
9
9
  credentialSchemas: {},
10
- permissions: {},
10
+ participants: {},
11
+ partialKeys: [],
11
12
  });
12
13
  async function loadSyncState(agent) {
13
14
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"VeranaHelpers.js","sourceRoot":"","sources":["../../src/blockchain/VeranaHelpers.ts"],"names":[],"mappings":";;AAaA,sCAIC;AAED,sCAQC;AAvBD,mCAAoD;AAEpD,MAAM,UAAU,GAAG,GAAoB,EAAE,CAAC,CAAC;IACzC,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,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"}
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"}
@@ -1,11 +1,15 @@
1
- import { CredentialSchemaDto, IndexerChangesResponse, IndexerEventsResponse, PermissionDto, TrustRegistryDto, VeranaIdxConfig } from './types';
1
+ import { CorporationDto, CredentialSchemaDto, DigestDto, EcosystemDto, IndexerEventsResponse, ParticipantDto, ParticipantSessionDto, 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
- getChanges(blockHeight: number): Promise<IndexerChangesResponse>;
7
- getEvents(agentDid: string, afterBlockHeight?: number, limit?: number): Promise<IndexerEventsResponse>;
8
- getTrustRegistry(id: string | number): Promise<TrustRegistryDto>;
6
+ getEvents(agentDid: string, afterBlockHeight?: number, limit?: number, corporationId?: number): Promise<IndexerEventsResponse>;
7
+ getEcosystem(id: string | number): Promise<EcosystemDto>;
8
+ listEcosystems(): Promise<EcosystemDto[]>;
9
+ listCredentialSchemas(ecosystemId: number): Promise<CredentialSchemaDto[]>;
9
10
  getCredentialSchema(id: string | number): Promise<CredentialSchemaDto>;
10
- getPermission(id: string | number): Promise<PermissionDto>;
11
+ getParticipant(id: string | number): Promise<ParticipantDto>;
12
+ getCorporation(id: string | number): Promise<CorporationDto | undefined>;
13
+ getParticipantSession(id: string): Promise<ParticipantSessionDto | undefined>;
14
+ getDigest(digest: string): Promise<DigestDto | undefined>;
11
15
  }
@@ -2,41 +2,59 @@
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 getChanges(blockHeight) {
11
- var _a, _b;
12
- this.config.logger.debug(`[VeranaIndexer] getChanges block=${blockHeight}`);
13
- const url = `${this.baseUrl}/verana/indexer/v1/changes/${blockHeight}`;
14
- const data = await (0, util_1.fetchJson)(url);
15
- return {
16
- block_height: Number((_a = data['block_height']) !== null && _a !== void 0 ? _a : blockHeight),
17
- next_change_at: data['next_change_at'] != null ? Number(data['next_change_at']) : null,
18
- activity: ((_b = data['activity']) !== null && _b !== void 0 ? _b : []),
19
- };
20
- }
21
- async getEvents(agentDid, afterBlockHeight = 0, limit = 500) {
12
+ async getEvents(agentDid, afterBlockHeight = 0, limit = 500, corporationId) {
22
13
  this.config.logger.debug(`[VeranaIndexer] getEvents after_block=${afterBlockHeight}`);
23
- const url = `${this.baseUrl}/verana/indexer/v1/events?did=${encodeURIComponent(agentDid)}&after_block_height=${afterBlockHeight}&limit=${limit}`;
24
- return (0, util_1.fetchJson)(url);
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);
25
17
  }
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;
18
+ async getEcosystem(id) {
19
+ this.config.logger.debug(`[VeranaIndexer] getEcosystem id=${id}`);
20
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/ecosystem/get/${id}`, REQUEST_TIMEOUT_MS);
21
+ return data.ecosystem;
22
+ }
23
+ async listEcosystems() {
24
+ var _a;
25
+ this.config.logger.debug('[VeranaIndexer] listEcosystems');
26
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/ecosystem/list`, REQUEST_TIMEOUT_MS);
27
+ return (_a = data.ecosystems) !== null && _a !== void 0 ? _a : [];
28
+ }
29
+ async listCredentialSchemas(ecosystemId) {
30
+ this.config.logger.debug(`[VeranaIndexer] listCredentialSchemas ecosystem=${ecosystemId}`);
31
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/credential-schema/list?ecosystem_id=${ecosystemId}`, REQUEST_TIMEOUT_MS);
32
+ return data.schemas;
30
33
  }
31
34
  async getCredentialSchema(id) {
32
35
  this.config.logger.debug(`[VeranaIndexer] getCredentialSchema id=${id}`);
33
- const data = await (0, util_1.fetchJson)(`${this.baseUrl}/verana/cs/v1/get/${id}`);
36
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/credential-schema/get/${id}`, REQUEST_TIMEOUT_MS);
34
37
  return data.schema;
35
38
  }
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;
39
+ async getParticipant(id) {
40
+ this.config.logger.debug(`[VeranaIndexer] getParticipant id=${id}`);
41
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/participant/get/${id}`, REQUEST_TIMEOUT_MS);
42
+ return data.participant;
43
+ }
44
+ async getCorporation(id) {
45
+ this.config.logger.debug(`[VeranaIndexer] getCorporation id=${id}`);
46
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/corporation/get/${id}`, { timeoutMs: REQUEST_TIMEOUT_MS, allowNotFound: true });
47
+ return data === null || data === void 0 ? void 0 : data.corporation;
48
+ }
49
+ async getParticipantSession(id) {
50
+ this.config.logger.debug(`[VeranaIndexer] getParticipantSession id=${id}`);
51
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/participant/participant-session/${encodeURIComponent(id)}`, { timeoutMs: REQUEST_TIMEOUT_MS, allowNotFound: true });
52
+ return data === null || data === void 0 ? void 0 : data.session;
53
+ }
54
+ async getDigest(digest) {
55
+ this.config.logger.debug(`[VeranaIndexer] getDigest digest=${digest}`);
56
+ const data = await (0, util_1.fetchJson)(`${this.baseUrl}/v4/di/get/${encodeURIComponent(digest)}`, { timeoutMs: REQUEST_TIMEOUT_MS, allowNotFound: true });
57
+ return data === null || data === void 0 ? void 0 : data.digest;
40
58
  }
41
59
  }
42
60
  exports.VeranaIndexerService = VeranaIndexerService;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"VeranaIndexerService.js","sourceRoot":"","sources":["../../src/blockchain/VeranaIndexerService.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { VsAgent } from '../../agent';
2
2
  import { IndexerActivity, VeranaSyncState } from '../types';
3
- interface IndexerHandlerContext {
3
+ export interface IndexerHandlerContext {
4
4
  agent: VsAgent;
5
- block_height: number;
5
+ blockHeight: number;
6
6
  operatorAddress: string;
7
7
  state: VeranaSyncState;
8
+ txHash: string;
8
9
  }
9
10
  export interface IndexerEventHandler<TMsg extends string = string> {
10
11
  readonly msg: TMsg;
@@ -20,6 +21,7 @@ export declare class IndexerHandlerRegistry {
20
21
  unregister(msg: string): void;
21
22
  get(msg: string): IndexerEventHandler | undefined;
22
23
  has(msg: string): boolean;
24
+ keys(): string[];
25
+ clear(): void;
23
26
  dispatch(activity: IndexerActivity, ctx: IndexerHandlerContext): Promise<void>;
24
27
  }
25
- export {};
@@ -21,6 +21,12 @@ class IndexerHandlerRegistry {
21
21
  has(msg) {
22
22
  return this.handlers.has(msg);
23
23
  }
24
+ keys() {
25
+ return [...this.handlers.keys()];
26
+ }
27
+ clear() {
28
+ this.handlers.clear();
29
+ }
24
30
  async dispatch(activity, ctx) {
25
31
  const h = this.handlers.get(activity.msg);
26
32
  if (!h) {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerHandlerRegistry.js","sourceRoot":"","sources":["../../../src/blockchain/handlers/IndexerHandlerRegistry.ts"],"names":[],"mappings":";;;AAeA;;;GAGG;AACH,MAAa,sBAAsB;IAAnC;QACU,aAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IA0B3D,CAAC;IAxBC,QAAQ,CAAC,OAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAyB,EAAE,GAA0B;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/E,OAAM;QACR,CAAC;QACD,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;CACF;AA3BD,wDA2BC"}
1
+ {"version":3,"file":"IndexerHandlerRegistry.js","sourceRoot":"","sources":["../../../src/blockchain/handlers/IndexerHandlerRegistry.ts"],"names":[],"mappings":";;;AAgBA;;;GAGG;AACH,MAAa,sBAAsB;IAAnC;QACU,aAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IAkC3D,CAAC;IAhCC,QAAQ,CAAC,OAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAyB,EAAE,GAA0B;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;YAC/E,OAAM;QACR,CAAC;QACD,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;CACF;AAnCD,wDAmCC"}
@@ -1,6 +1,9 @@
1
1
  import { IndexerEventHandler, IndexerHandlerRegistry } from './IndexerHandlerRegistry';
2
2
  /**
3
- * Default handlers for indexer events emitted by the Verana blockchain.
3
+ * Default business reactions for indexer events emitted by the Verana blockchain.
4
+ *
5
+ * State-sync bookkeeping is handled separately by `applyStateMutation` and always runs, so these
6
+ * handlers can be overridden/disabled by application developers without breaking the sync state.
4
7
  */
5
8
  export declare const defaultHandlers: IndexerEventHandler[];
6
9
  export declare function buildDefaultIndexerHandlerRegistry(): IndexerHandlerRegistry;