@verana-labs/vs-agent-sdk 2.0.0-dev.7 → 2.0.0-dev.70

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 (166) hide show
  1. package/README.md +0 -2
  2. package/build/adminApi/AdminApiError.d.ts +27 -0
  3. package/build/adminApi/AdminApiError.js +59 -0
  4. package/build/adminApi/AdminApiError.js.map +1 -0
  5. package/build/adminApi/didcommModules.d.ts +2 -0
  6. package/build/adminApi/didcommModules.js +8 -0
  7. package/build/adminApi/didcommModules.js.map +1 -0
  8. package/build/adminApi/index.d.ts +4 -0
  9. package/build/adminApi/index.js +21 -0
  10. package/build/adminApi/index.js.map +1 -0
  11. package/build/adminApi/moduleEndpoint.d.ts +8 -0
  12. package/build/adminApi/moduleEndpoint.js +28 -0
  13. package/build/adminApi/moduleEndpoint.js.map +1 -0
  14. package/build/adminApi/pagination/PageDto.d.ts +7 -0
  15. package/build/adminApi/pagination/PageDto.js +50 -0
  16. package/build/adminApi/pagination/PageDto.js.map +1 -0
  17. package/build/adminApi/pagination/PaginationQueryDto.d.ts +11 -0
  18. package/build/adminApi/pagination/PaginationQueryDto.js +46 -0
  19. package/build/adminApi/pagination/PaginationQueryDto.js.map +1 -0
  20. package/build/adminApi/pagination/cursor.d.ts +28 -0
  21. package/build/adminApi/pagination/cursor.js +64 -0
  22. package/build/adminApi/pagination/cursor.js.map +1 -0
  23. package/build/adminApi/pagination/index.d.ts +4 -0
  24. package/build/adminApi/pagination/index.js +21 -0
  25. package/build/adminApi/pagination/index.js.map +1 -0
  26. package/build/adminApi/pagination/paginate.d.ts +27 -0
  27. package/build/adminApi/pagination/paginate.js +77 -0
  28. package/build/adminApi/pagination/paginate.js.map +1 -0
  29. package/build/agent/VsAgent.d.ts +17 -34
  30. package/build/agent/VsAgent.js +75 -205
  31. package/build/agent/VsAgent.js.map +1 -1
  32. package/build/agent/createVsAgent.d.ts +5 -6
  33. package/build/agent/createVsAgent.js +3 -5
  34. package/build/agent/createVsAgent.js.map +1 -1
  35. package/build/blockchain/AnonCredsTrustService.d.ts +62 -0
  36. package/build/blockchain/AnonCredsTrustService.js +256 -0
  37. package/build/blockchain/AnonCredsTrustService.js.map +1 -0
  38. package/build/blockchain/AuthorizationService.d.ts +5 -3
  39. package/build/blockchain/AuthorizationService.js +17 -29
  40. package/build/blockchain/AuthorizationService.js.map +1 -1
  41. package/build/blockchain/IndexerWebSocketService.d.ts +7 -1
  42. package/build/blockchain/IndexerWebSocketService.js +68 -36
  43. package/build/blockchain/IndexerWebSocketService.js.map +1 -1
  44. package/build/blockchain/VeranaChainService.d.ts +25 -14
  45. package/build/blockchain/VeranaChainService.js +123 -113
  46. package/build/blockchain/VeranaChainService.js.map +1 -1
  47. package/build/blockchain/VeranaIndexerService.d.ts +14 -1
  48. package/build/blockchain/VeranaIndexerService.js +122 -8
  49. package/build/blockchain/VeranaIndexerService.js.map +1 -1
  50. package/build/blockchain/handlers/authorizationHandlers.js +2 -2
  51. package/build/blockchain/handlers/authorizationHandlers.js.map +1 -1
  52. package/build/blockchain/handlers/defaultHandlers.js +2 -0
  53. package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
  54. package/build/blockchain/handlers/index.d.ts +1 -0
  55. package/build/blockchain/handlers/index.js +1 -0
  56. package/build/blockchain/handlers/index.js.map +1 -1
  57. package/build/blockchain/handlers/selfIssuanceHandlers.d.ts +13 -0
  58. package/build/blockchain/handlers/selfIssuanceHandlers.js +71 -0
  59. package/build/blockchain/handlers/selfIssuanceHandlers.js.map +1 -0
  60. package/build/blockchain/handlers/stateMutations.d.ts +21 -2
  61. package/build/blockchain/handlers/stateMutations.js +285 -37
  62. package/build/blockchain/handlers/stateMutations.js.map +1 -1
  63. package/build/blockchain/index.d.ts +2 -0
  64. package/build/blockchain/index.js +2 -0
  65. package/build/blockchain/index.js.map +1 -1
  66. package/build/blockchain/indexerMappers.d.ts +3 -0
  67. package/build/blockchain/indexerMappers.js +53 -0
  68. package/build/blockchain/indexerMappers.js.map +1 -0
  69. package/build/blockchain/types.d.ts +13 -58
  70. package/build/blockchain/types.js.map +1 -1
  71. package/build/bootstrap/EcsBootstrapService.d.ts +14 -3
  72. package/build/bootstrap/EcsBootstrapService.js +166 -76
  73. package/build/bootstrap/EcsBootstrapService.js.map +1 -1
  74. package/build/connections/ParentConnectionModule.d.ts +20 -0
  75. package/build/connections/ParentConnectionModule.js +56 -0
  76. package/build/connections/ParentConnectionModule.js.map +1 -0
  77. package/build/credentials/FullTailsFileService.d.ts +0 -1
  78. package/build/credentials/FullTailsFileService.js +0 -49
  79. package/build/credentials/FullTailsFileService.js.map +1 -1
  80. package/build/did/CachedDocumentLoader.d.ts +3 -0
  81. package/build/did/CachedDocumentLoader.js +7 -1
  82. package/build/did/CachedDocumentLoader.js.map +1 -1
  83. package/build/did/CachedWebDidResolver.d.ts +0 -4
  84. package/build/did/CachedWebDidResolver.js +1 -5
  85. package/build/did/CachedWebDidResolver.js.map +1 -1
  86. package/build/did/artifactServices.d.ts +12 -0
  87. package/build/did/artifactServices.js +48 -0
  88. package/build/did/artifactServices.js.map +1 -0
  89. package/build/did/legacyDidWeb.d.ts +6 -4
  90. package/build/did/legacyDidWeb.js +17 -14
  91. package/build/did/legacyDidWeb.js.map +1 -1
  92. package/build/did/publicDid.d.ts +4 -0
  93. package/build/did/publicDid.js +19 -0
  94. package/build/did/publicDid.js.map +1 -0
  95. package/build/events/BaseMessageEvents.js +139 -5
  96. package/build/events/BaseMessageEvents.js.map +1 -1
  97. package/build/events/ConnectionEvents.js +129 -82
  98. package/build/events/ConnectionEvents.js.map +1 -1
  99. package/build/events/VsAgentEvents.d.ts +11 -9
  100. package/build/events/VsAgentEvents.js +8 -1
  101. package/build/events/VsAgentEvents.js.map +1 -1
  102. package/build/events/VtFlowEvents.d.ts +1 -1
  103. package/build/events/VtFlowEvents.js +27 -18
  104. package/build/events/VtFlowEvents.js.map +1 -1
  105. package/build/index.d.ts +7 -1
  106. package/build/index.js +15 -2
  107. package/build/index.js.map +1 -1
  108. package/build/plugins/setupBaseDidComm.js +9 -12
  109. package/build/plugins/setupBaseDidComm.js.map +1 -1
  110. package/build/transports/VsAgentWsInboundTransport.d.ts +1 -1
  111. package/build/transports/VsAgentWsInboundTransport.js +20 -14
  112. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  113. package/build/types.d.ts +7 -0
  114. package/build/types.js.map +1 -1
  115. package/build/utils/agent.d.ts +29 -4
  116. package/build/utils/agent.js +91 -22
  117. package/build/utils/agent.js.map +1 -1
  118. package/build/utils/didReadiness.d.ts +9 -0
  119. package/build/utils/didReadiness.js +42 -0
  120. package/build/utils/didReadiness.js.map +1 -0
  121. package/build/utils/ecsClaims.d.ts +47 -0
  122. package/build/utils/ecsClaims.js +120 -0
  123. package/build/utils/ecsClaims.js.map +1 -0
  124. package/build/utils/ecsService.d.ts +8 -0
  125. package/build/utils/ecsService.js +23 -0
  126. package/build/utils/ecsService.js.map +1 -0
  127. package/build/utils/index.d.ts +4 -0
  128. package/build/utils/index.js +4 -0
  129. package/build/utils/index.js.map +1 -1
  130. package/build/utils/selfIssuedEcsCredential.d.ts +8 -0
  131. package/build/utils/selfIssuedEcsCredential.js +151 -0
  132. package/build/utils/selfIssuedEcsCredential.js.map +1 -0
  133. package/build/utils/setupSelfTr.d.ts +34 -66
  134. package/build/utils/setupSelfTr.js +89 -295
  135. package/build/utils/setupSelfTr.js.map +1 -1
  136. package/build/utils/trustCredentialStore.d.ts +67 -9
  137. package/build/utils/trustCredentialStore.js +296 -111
  138. package/build/utils/trustCredentialStore.js.map +1 -1
  139. package/build/utils/util.d.ts +10 -0
  140. package/build/utils/util.js +16 -0
  141. package/build/utils/util.js.map +1 -1
  142. package/build/utils/vcdm2.d.ts +34 -0
  143. package/build/utils/vcdm2.js +62 -0
  144. package/build/utils/vcdm2.js.map +1 -0
  145. package/build/utils/vtjscResolver.d.ts +18 -0
  146. package/build/utils/vtjscResolver.js +54 -0
  147. package/build/utils/vtjscResolver.js.map +1 -0
  148. package/build/vtFlow/VtFlowOrchestrator.d.ts +84 -13
  149. package/build/vtFlow/VtFlowOrchestrator.js +505 -107
  150. package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
  151. package/build/vtFlow/assertVerifiableService.d.ts +1 -0
  152. package/build/vtFlow/assertVerifiableService.js +45 -5
  153. package/build/vtFlow/assertVerifiableService.js.map +1 -1
  154. package/build/vtFlow/ecsIssuanceExemption.d.ts +12 -0
  155. package/build/vtFlow/ecsIssuanceExemption.js +84 -0
  156. package/build/vtFlow/ecsIssuanceExemption.js.map +1 -0
  157. package/build/vtFlow/index.d.ts +1 -0
  158. package/build/vtFlow/index.js +1 -0
  159. package/build/vtFlow/index.js.map +1 -1
  160. package/package.json +17 -12
  161. package/build/did/migrateWebVhLog.d.ts +0 -34
  162. package/build/did/migrateWebVhLog.js +0 -230
  163. package/build/did/migrateWebVhLog.js.map +0 -1
  164. package/build/did/migrateWebVhVersionTime.d.ts +0 -9
  165. package/build/did/migrateWebVhVersionTime.js +0 -191
  166. package/build/did/migrateWebVhVersionTime.js.map +0 -1
@@ -29,10 +29,12 @@ class IndexerWebSocketService {
29
29
  this.watchdog = null;
30
30
  this.stopped = false;
31
31
  this.syncing = false;
32
+ this.phase = 'connecting';
33
+ this.everSynced = false;
32
34
  this.generation = 0;
33
35
  this.chain = Promise.resolve();
34
36
  this.syncBuffer = [];
35
- this.subscribeSent = null;
37
+ this.settleSubscribed = null;
36
38
  this.indexer = new VeranaIndexerService_1.VeranaIndexerService({
37
39
  baseUrl: options.indexerUrl,
38
40
  logger: options.agent.config.logger,
@@ -43,6 +45,13 @@ class IndexerWebSocketService {
43
45
  this.stopped = false;
44
46
  await this.connect();
45
47
  }
48
+ get syncStatus() {
49
+ if (this.phase === 'catching-up')
50
+ return 'catching-up';
51
+ if (this.phase === 'synced')
52
+ return 'synced';
53
+ return this.everSynced ? 'disconnected' : 'never-synced';
54
+ }
46
55
  stop() {
47
56
  var _a;
48
57
  this.stopped = true;
@@ -62,14 +71,24 @@ class IndexerWebSocketService {
62
71
  return;
63
72
  const generation = ++this.generation;
64
73
  this.syncing = true;
74
+ this.phase = 'connecting';
65
75
  this.syncBuffer = [];
66
76
  const subscribed = new Promise(resolve => {
67
- this.subscribeSent = resolve;
77
+ this.settleSubscribed = resolve;
68
78
  });
69
79
  this.openWebSocket();
70
- await Promise.race([subscribed, delay(SUBSCRIBE_TIMEOUT_MS)]);
80
+ const outcome = await Promise.race([
81
+ subscribed,
82
+ delay(SUBSCRIBE_TIMEOUT_MS).then(() => 'timed-out'),
83
+ ]);
71
84
  if (this.stopped || generation !== this.generation)
72
85
  return;
86
+ if (outcome === 'disconnected')
87
+ return;
88
+ if (outcome === 'timed-out') {
89
+ this.logger.warn(`[IndexerWS] No 'subscribed' acknowledgement within ${SUBSCRIBE_TIMEOUT_MS}ms; starting the catch-up anyway. Events landing before the subscription becomes active may be missed.`);
90
+ }
91
+ this.phase = 'catching-up';
73
92
  try {
74
93
  await this.syncRest(generation);
75
94
  }
@@ -82,6 +101,8 @@ class IndexerWebSocketService {
82
101
  if (this.stopped || generation !== this.generation)
83
102
  return;
84
103
  this.syncing = false;
104
+ this.phase = 'synced';
105
+ this.everSynced = true;
85
106
  this.drainSyncBuffer(generation);
86
107
  }
87
108
  openWebSocket() {
@@ -98,13 +119,9 @@ class IndexerWebSocketService {
98
119
  if (ws === this.ws)
99
120
  this.logger.info(`[IndexerWS] Connected to indexer`);
100
121
  });
101
- const releaseSubscribeWait = () => {
102
- var _a;
103
- (_a = this.subscribeSent) === null || _a === void 0 ? void 0 : _a.call(this);
104
- this.subscribeSent = null;
105
- };
106
- ws.on('error', releaseSubscribeWait);
107
- ws.on('close', releaseSubscribeWait);
122
+ const abandonSubscribeWait = () => this.resolveSubscribed('disconnected');
123
+ ws.on('error', abandonSubscribeWait);
124
+ ws.on('close', abandonSubscribeWait);
108
125
  ws.on('ping', () => {
109
126
  if (ws === this.ws)
110
127
  this.armWatchdog();
@@ -119,6 +136,7 @@ class IndexerWebSocketService {
119
136
  if (ws !== this.ws)
120
137
  return;
121
138
  this.clearWatchdog();
139
+ this.phase = 'connecting';
122
140
  if (!this.stopped)
123
141
  this.scheduleReconnect();
124
142
  });
@@ -126,6 +144,11 @@ class IndexerWebSocketService {
126
144
  this.logger.error(`[IndexerWS] Error: ${error.message}`);
127
145
  });
128
146
  }
147
+ resolveSubscribed(outcome) {
148
+ var _a;
149
+ (_a = this.settleSubscribed) === null || _a === void 0 ? void 0 : _a.call(this, outcome);
150
+ this.settleSubscribed = null;
151
+ }
129
152
  handleMessage(ws, data) {
130
153
  let message;
131
154
  try {
@@ -140,11 +163,12 @@ class IndexerWebSocketService {
140
163
  const subscribe = this.options.corporationId != null
141
164
  ? { action: 'subscribe', corporationId: this.options.corporationId }
142
165
  : { action: 'subscribe', dids: this.options.agent.did ? [this.options.agent.did] : undefined };
143
- ws.send(JSON.stringify(subscribe), () => {
144
- var _a;
145
- (_a = this.subscribeSent) === null || _a === void 0 ? void 0 : _a.call(this);
146
- this.subscribeSent = null;
147
- });
166
+ ws.send(JSON.stringify(subscribe));
167
+ return;
168
+ }
169
+ if (message.type === 'subscribed') {
170
+ this.logger.debug(`[IndexerWS] Subscription active, delivery starts at block ${message.block}`);
171
+ this.resolveSubscribed('acknowledged');
148
172
  return;
149
173
  }
150
174
  if (message.type !== 'block')
@@ -222,8 +246,7 @@ class IndexerWebSocketService {
222
246
  const activity = await this.fetchActivity(event);
223
247
  if (this.stopped || generation !== this.generation)
224
248
  return;
225
- if (activity)
226
- await this.applyChanges(event, activity, state);
249
+ await this.applyChanges(event, activity, state);
227
250
  if (state.partialBlock === undefined || block > state.partialBlock) {
228
251
  state.partialBlock = block;
229
252
  state.partialKeys = [key];
@@ -238,30 +261,38 @@ class IndexerWebSocketService {
238
261
  async applyChanges(event, activity, state) {
239
262
  const syncState = state !== null && state !== void 0 ? state : (await (0, VeranaHelpers_1.loadSyncState)(this.options.agent));
240
263
  const block = event.block_height;
241
- (0, handlers_1.applyStateMutation)(syncState, activity);
242
- await this.handlerRegistry.dispatch(activity, {
243
- agent: this.options.agent,
244
- blockHeight: block,
245
- operatorAddress: event.payload.sender,
246
- agentCorporationId: this.options.agentCorporationId,
247
- state: syncState,
248
- txHash: event.tx_hash,
249
- });
264
+ if (activity) {
265
+ (0, handlers_1.applyStateMutation)(syncState, activity);
266
+ await this.handlerRegistry.dispatch(activity, {
267
+ agent: this.options.agent,
268
+ blockHeight: block,
269
+ operatorAddress: event.payload.sender,
270
+ agentCorporationId: this.options.agentCorporationId,
271
+ state: syncState,
272
+ txHash: event.tx_hash,
273
+ });
274
+ }
250
275
  if (!state) {
251
276
  syncState.lastBlockHeight = Math.max(syncState.lastBlockHeight, block);
252
277
  await (0, VeranaHelpers_1.saveSyncState)(this.options.agent, syncState);
253
278
  }
279
+ this.emitNotification(event, activity === null || activity === void 0 ? void 0 : activity.changes);
280
+ }
281
+ emitNotification(event, changes) {
282
+ const { payload } = event;
283
+ const resolved = changes && Object.keys(changes).length > 0;
254
284
  try {
255
- (0, events_1.emitVsAgentEvent)(this.options.agent, events_1.VsAgentEventTypes.IndexerNotification, new vs_agent_model_1.IndexerNotification({
256
- msg: activity.msg,
257
- entityType: String(activity.entity_type),
258
- entityId: String(activity.entity_id),
259
- changes: activity.changes,
260
- blockHeight: block,
261
- txHash: event.tx_hash,
262
- operatorAddress: event.payload.sender,
263
- timestamp: new Date(event.timestamp),
264
- }));
285
+ (0, events_1.emitVsAgentEvent)(this.options.agent, events_1.VsAgentEventTypes.IndexerNotification, new vs_agent_model_1.IndexerNotification(Object.assign({ eventType: event.event_type, did: event.did, blockHeight: event.block_height, txHash: event.tx_hash, timestamp: new Date(event.timestamp), payload: {
286
+ module: payload.module,
287
+ action: payload.action,
288
+ messageType: payload.message_type,
289
+ txIndex: payload.tx_index,
290
+ messageIndex: payload.message_index,
291
+ sender: payload.sender,
292
+ relatedDids: payload.related_dids,
293
+ entityType: payload.entity_type,
294
+ entityId: payload.entity_id,
295
+ } }, (resolved ? { changes } : {}))));
265
296
  }
266
297
  catch (err) {
267
298
  this.logger.error(`[IndexerWS] Failed to emit indexer notification: ${err.message}`);
@@ -314,6 +345,7 @@ class IndexerWebSocketService {
314
345
  if (this.stopped)
315
346
  return;
316
347
  this.logger.warn(`[IndexerWS] Forcing reconnect: ${reason}`);
348
+ this.phase = 'connecting';
317
349
  this.generation++; // stops queued work so it cannot move the height past the failed event
318
350
  this.clearWatchdog();
319
351
  const ws = this.ws;
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerWebSocketService.js","sourceRoot":"","sources":["../../src/blockchain/IndexerWebSocketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexerWebSocketService.js","sourceRoot":"","sources":["../../src/blockchain/IndexerWebSocketService.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,31 @@
1
- import { type DeliverTxResponse } from '@cosmjs/stargate';
2
- import { Coin, CreateOrUpdateParticipantSessionParams, CredentialSchema, Ecosystem, OperatorAuthorization, Participant, SelfCreateParticipantParams, SetParticipantOPToValidatedParams, StartParticipantOPParams, VeranaChainConfig, VsOperatorAuthorization } from './types';
1
+ import { type EncodeObject } from '@cosmjs/proto-signing';
2
+ import { type DeliverTxResponse, type StdFee } from '@cosmjs/stargate';
3
+ import type { Any } from 'cosmjs-types/google/protobuf/any';
4
+ import { Coin, CreateOrUpdateParticipantSessionParams, SelfCreateParticipantParams, SetParticipantOPToValidatedParams, StartParticipantOPParams, VeranaChainConfig } from './types';
5
+ export type FeeAllowance = {
6
+ unlimited: true;
7
+ } | {
8
+ unlimited: false;
9
+ remaining: bigint;
10
+ };
11
+ export declare function feeAllowanceOf(allowance: Any | undefined, denom: string, now?: number): FeeAllowance | undefined;
3
12
  export declare class VeranaChainService {
4
13
  private readonly config;
5
14
  private signingClient;
6
15
  private operatorAddress;
7
16
  private chainId;
8
17
  private corporationAddress;
9
- private ppQuery;
10
- private deQuery;
11
- private ecQuery;
12
- private csQuery;
18
+ private gasAdjustment;
19
+ private gasPrice;
20
+ private operatorPubkey;
21
+ private queryClient;
13
22
  constructor(config: VeranaChainConfig);
14
23
  get address(): string;
15
24
  get getChainId(): string;
16
25
  get corporation(): string;
17
26
  get autoTriggerResolverEnabled(): boolean;
18
27
  start(): Promise<void>;
19
- getParticipant(id: number): Promise<Participant | undefined>;
20
28
  getBalance(denom?: string): Promise<Coin>;
21
- hasVsOperatorAuthorization(): Promise<boolean>;
22
- listOperatorAuthorizations(operator?: string): Promise<OperatorAuthorization[]>;
23
- listVsOperatorAuthorizations(vsOperator?: string): Promise<VsOperatorAuthorization[]>;
24
- getEcosystem(id: number): Promise<Ecosystem | undefined>;
25
- getCredentialSchema(id: number): Promise<CredentialSchema | undefined>;
26
29
  startParticipantOP(params: StartParticipantOPParams): Promise<{
27
30
  participantId: number;
28
31
  txHash: string;
@@ -37,14 +40,22 @@ export declare class VeranaChainService {
37
40
  participantId: number;
38
41
  txHash: string;
39
42
  }>;
43
+ setParticipantOPToValidatedMsg(params: SetParticipantOPToValidatedParams): EncodeObject;
44
+ estimateFee(messages: EncodeObject[], granter?: string): Promise<StdFee>;
45
+ broadcastWithoutWaiting(messages: EncodeObject[], fee: StdFee): Promise<string>;
46
+ findTx(hash: string): Promise<{
47
+ code: number;
48
+ height: number;
49
+ rawLog: string;
50
+ } | undefined>;
51
+ getAccountBalance(address: string, denom?: string): Promise<Coin>;
52
+ feeAllowance(granter: string, denom?: string): Promise<FeeAllowance | undefined>;
40
53
  setParticipantOPToValidated(params: SetParticipantOPToValidatedParams): Promise<{
41
54
  txHash: string;
42
55
  }>;
43
56
  createOrUpdateParticipantSession(params: CreateOrUpdateParticipantSessionParams): Promise<{
44
57
  txHash: string;
45
58
  }>;
46
- findActiveHolderParticipantIdByDid(did: string): Promise<number | undefined>;
47
- findActiveIssuerParticipantId(did: string, schemaId: number): Promise<number | undefined>;
48
59
  triggerResolver(participantId: number): Promise<{
49
60
  txHash: string;
50
61
  }>;
@@ -1,35 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VeranaChainService = void 0;
4
+ exports.feeAllowanceOf = feeAllowanceOf;
4
5
  /* eslint-disable @typescript-eslint/no-var-requires */
6
+ const amino_1 = require("@cosmjs/amino");
5
7
  const proto_signing_1 = require("@cosmjs/proto-signing");
6
8
  const stargate_1 = require("@cosmjs/stargate");
9
+ const feegrant_1 = require("cosmjs-types/cosmos/feegrant/v1beta1/feegrant");
10
+ const signing_1 = require("cosmjs-types/cosmos/tx/signing/v1beta1/signing");
11
+ const service_1 = require("cosmjs-types/cosmos/tx/v1beta1/service");
12
+ const tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
7
13
  const tendermint_rpc_1 = require("@cosmjs/tendermint-rpc");
8
14
  const verana_types_1 = require("@verana-labs/verana-types");
9
15
  const types_1 = require("./types");
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
16
  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
- const PARTICIPANT_ROLE_ISSUER = 1;
18
- function mapParticipant(p) {
19
- var _a;
20
- return {
21
- id: p.id,
22
- schemaId: p.schemaId,
23
- role: p.role,
24
- did: p.did,
25
- corporation: p.corporationId != null ? String(p.corporationId) : '',
26
- validatorParticipantId: p.validatorParticipantId,
27
- opState: p.opState,
28
- opSummaryDigest: (_a = p.opSummaryDigest) !== null && _a !== void 0 ? _a : '',
29
- revoked: p.revoked,
30
- slashed: p.slashed,
31
- };
17
+ const ALLOWED_MSG_ALLOWANCE = '/cosmos.feegrant.v1beta1.AllowedMsgAllowance';
18
+ const BASIC_ALLOWANCE = '/cosmos.feegrant.v1beta1.BasicAllowance';
19
+ const PERIODIC_ALLOWANCE = '/cosmos.feegrant.v1beta1.PeriodicAllowance';
20
+ function hasPassed(timestamp, now) {
21
+ return timestamp !== undefined && Number(timestamp.seconds) * 1000 <= now;
32
22
  }
23
+ function amountOf(coins, denom) {
24
+ var _a, _b;
25
+ return BigInt((_b = (_a = coins.find(coin => coin.denom === denom)) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : '0');
26
+ }
27
+ // An empty spend_limit on a BasicAllowance means no limit, while an empty period_can_spend on a
28
+ // PeriodicAllowance means nothing left. verana-node v0.10.1 grants a BasicAllowance, the VPR of
29
+ // 2026-09-16 (MOD-DE-MSG-5-5) a PeriodicAllowance, so both are read.
30
+ function feeAllowanceOf(allowance, denom, now = Date.now()) {
31
+ var _a, _b, _c;
32
+ const granted = (allowance === null || allowance === void 0 ? void 0 : allowance.typeUrl) === ALLOWED_MSG_ALLOWANCE
33
+ ? feegrant_1.AllowedMsgAllowance.decode(allowance.value).allowance
34
+ : allowance;
35
+ if ((granted === null || granted === void 0 ? void 0 : granted.typeUrl) === BASIC_ALLOWANCE) {
36
+ const basic = feegrant_1.BasicAllowance.decode(granted.value);
37
+ if (hasPassed(basic.expiration, now))
38
+ return undefined;
39
+ return basic.spendLimit.length === 0
40
+ ? { unlimited: true }
41
+ : { unlimited: false, remaining: amountOf(basic.spendLimit, denom) };
42
+ }
43
+ if ((granted === null || granted === void 0 ? void 0 : granted.typeUrl) === PERIODIC_ALLOWANCE) {
44
+ const periodic = feegrant_1.PeriodicAllowance.decode(granted.value);
45
+ if (hasPassed((_a = periodic.basic) === null || _a === void 0 ? void 0 : _a.expiration, now))
46
+ return undefined;
47
+ const inPeriod = amountOf(hasPassed(periodic.periodReset, now) ? periodic.periodSpendLimit : periodic.periodCanSpend, denom);
48
+ const overall = (_c = (_b = periodic.basic) === null || _b === void 0 ? void 0 : _b.spendLimit) !== null && _c !== void 0 ? _c : [];
49
+ const remaining = overall.length === 0 ? inPeriod : [inPeriod, amountOf(overall, denom)].reduce((a, b) => (a < b ? a : b));
50
+ return { unlimited: false, remaining };
51
+ }
52
+ return undefined;
53
+ }
54
+ // A simulation signs with an empty signature and runs against the state of the moment, so it
55
+ // reports less gas than the delivery consumes. Cosmos SDK 0.47 made the difference larger (see
56
+ // cosmos-sdk#16020), and cosmjs answers it with a default multiplier of 1.4. Not always enough.
57
+ const DEFAULT_GAS_ADJUSTMENT = 1.5;
33
58
  class VeranaChainService {
34
59
  constructor(config) {
35
60
  this.config = config;
@@ -47,102 +72,35 @@ class VeranaChainService {
47
72
  return this.config.autoTriggerResolver !== false;
48
73
  }
49
74
  async start() {
50
- var _a;
75
+ var _a, _b;
51
76
  const { rpcUrl, mnemonic, chainId, logger, gasPrice } = this.config;
52
77
  const wallet = await proto_signing_1.DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
53
78
  prefix: types_1.VERANA_BECH32_PREFIX,
54
79
  });
55
80
  const [account] = await wallet.getAccounts();
56
81
  this.operatorAddress = account.address;
82
+ this.operatorPubkey = account.pubkey;
57
83
  this.corporationAddress = (_a = this.config.corporationAddress) !== null && _a !== void 0 ? _a : account.address;
58
84
  logger.info(`[VeranaChain] vs_operator address: ${this.operatorAddress} (fund this address with VNA to enable on-chain operations)`);
85
+ this.gasAdjustment = (_b = this.config.gasAdjustment) !== null && _b !== void 0 ? _b : DEFAULT_GAS_ADJUSTMENT;
86
+ this.gasPrice = stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '1uvna');
59
87
  const cometClient = await (0, tendermint_rpc_1.connectComet)(rpcUrl);
60
88
  this.signingClient = await stargate_1.SigningStargateClient.createWithSigner(cometClient, wallet, {
61
89
  registry: (0, verana_types_1.createVeranaRegistry)(),
62
90
  aminoTypes: (0, verana_types_1.createVeranaAminoTypes)(),
63
- gasPrice: stargate_1.GasPrice.fromString(gasPrice !== null && gasPrice !== void 0 ? gasPrice : '1uvna'),
91
+ gasPrice: this.gasPrice,
64
92
  });
93
+ this.queryClient = stargate_1.QueryClient.withExtensions(cometClient, stargate_1.setupFeegrantExtension);
65
94
  this.chainId = await this.signingClient.getChainId();
66
95
  if (chainId && this.chainId !== chainId) {
67
96
  throw new Error(`[VeranaChain] Chain ID mismatch: expected "${chainId}", got "${this.chainId}"`);
68
97
  }
69
98
  logger.info(`[VeranaChain] Connected to chain: ${this.chainId}`);
70
- const queryClient = new stargate_1.QueryClient(cometClient);
71
- const rpc = (0, stargate_1.createProtobufRpcClient)(queryClient);
72
- this.ppQuery = new PpQueryClientImpl(rpc);
73
- this.deQuery = new DeQueryClientImpl(rpc);
74
- this.ecQuery = new EcQueryClientImpl(rpc);
75
- this.csQuery = new CsQueryClientImpl(rpc);
76
- }
77
- // Query API (unsigned)
78
- async getParticipant(id) {
79
- const result = await this.ppQuery.GetParticipant({ id });
80
- return result.participant ? mapParticipant(result.participant) : undefined;
81
99
  }
100
+ // [VSA-VPR-QRY]: the one read left on the ledger, the indexer serves no account balance.
82
101
  async getBalance(denom = 'uvna') {
83
102
  return this.signingClient.getBalance(this.operatorAddress, denom);
84
103
  }
85
- async hasVsOperatorAuthorization() {
86
- return (await this.listVsOperatorAuthorizations()).length > 0;
87
- }
88
- async listOperatorAuthorizations(operator) {
89
- const result = await this.deQuery.ListOperatorAuthorizations({
90
- corporationId: 0,
91
- operator: operator !== null && operator !== void 0 ? operator : this.operatorAddress,
92
- responseMaxSize: 64,
93
- });
94
- return result.operatorAuthorizations.map(a => ({
95
- id: a.id,
96
- corporationId: a.corporationId,
97
- operator: a.operator,
98
- msgTypes: a.msgTypes,
99
- expiration: a.expiration,
100
- period: a.period,
101
- }));
102
- }
103
- async listVsOperatorAuthorizations(vsOperator) {
104
- const result = await this.deQuery.ListVSOperatorAuthorizations({
105
- corporationId: 0,
106
- vsOperator: vsOperator !== null && vsOperator !== void 0 ? vsOperator : this.operatorAddress,
107
- responseMaxSize: 64,
108
- });
109
- return result.vsOperatorAuthorizations.map(a => ({
110
- id: a.id,
111
- corporationId: a.corporationId,
112
- vsOperator: a.vsOperator,
113
- records: a.records.map(r => ({
114
- participantId: r.participantId,
115
- msgTypes: r.msgTypes,
116
- withFeegrant: r.withFeegrant,
117
- expiration: r.expiration,
118
- period: r.period,
119
- })),
120
- }));
121
- }
122
- async getEcosystem(id) {
123
- // fromPartial fills the unused request fields with defaults so the request encodes correctly.
124
- const result = await this.ecQuery.GetEcosystem(QueryGetEcosystemRequest.fromPartial({ id }));
125
- if (!result.ecosystem)
126
- return undefined;
127
- const { id: ecosystemId, did, corporationId, archived, activeVersion } = result.ecosystem;
128
- return { id: ecosystemId, did, corporationId, archived, activeVersion };
129
- }
130
- async getCredentialSchema(id) {
131
- const result = await this.csQuery.GetCredentialSchema({ id });
132
- if (!result.schema)
133
- return undefined;
134
- const s = result.schema;
135
- return {
136
- id: s.id,
137
- ecosystemId: s.ecosystemId,
138
- jsonSchema: s.jsonSchema,
139
- digestAlgorithm: s.digestAlgorithm,
140
- issuerOnboardingMode: s.issuerOnboardingMode,
141
- verifierOnboardingMode: s.verifierOnboardingMode,
142
- holderOnboardingMode: s.holderOnboardingMode,
143
- archived: s.archived,
144
- };
145
- }
146
104
  // Transaction API (signed)
147
105
  async startParticipantOP(params) {
148
106
  var _a, _b;
@@ -206,6 +164,75 @@ class VeranaChainService {
206
164
  const participantId = Number(MsgSelfCreateParticipantResponse.decode(result.msgResponses[0].value).id);
207
165
  return { participantId, txHash: result.transactionHash };
208
166
  }
167
+ setParticipantOPToValidatedMsg(params) {
168
+ var _a, _b, _c, _d, _e;
169
+ return {
170
+ typeUrl: verana_types_1.veranaTypeUrls.MsgSetParticipantOPToValidated,
171
+ value: MsgSetParticipantOPToValidated.fromPartial({
172
+ corporation: this.corporationAddress,
173
+ operator: this.operatorAddress,
174
+ id: params.id,
175
+ effectiveUntil: params.effectiveUntil,
176
+ validationFees: (_a = params.validationFees) !== null && _a !== void 0 ? _a : 0,
177
+ issuanceFees: (_b = params.issuanceFees) !== null && _b !== void 0 ? _b : 0,
178
+ verificationFees: (_c = params.verificationFees) !== null && _c !== void 0 ? _c : 0,
179
+ opSummaryDigest: params.opSummaryDigest,
180
+ issuanceFeeDiscount: (_d = params.issuanceFeeDiscount) !== null && _d !== void 0 ? _d : 0,
181
+ verificationFeeDiscount: (_e = params.verificationFeeDiscount) !== null && _e !== void 0 ? _e : 0,
182
+ }),
183
+ };
184
+ }
185
+ // The simulation carries the granter too: a Corporation-paid fee also rewrites its allowance at
186
+ // delivery, and that write is gas a simulation without the granter never counts.
187
+ async estimateFee(messages, granter) {
188
+ var _a, _b;
189
+ const { sequence } = await this.signingClient.getSequence(this.operatorAddress);
190
+ const tx = tx_1.Tx.fromPartial({
191
+ authInfo: tx_1.AuthInfo.fromPartial({
192
+ fee: tx_1.Fee.fromPartial({ granter }),
193
+ signerInfos: [
194
+ {
195
+ publicKey: (0, proto_signing_1.encodePubkey)((0, amino_1.encodeSecp256k1Pubkey)(this.operatorPubkey)),
196
+ sequence: BigInt(sequence),
197
+ modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },
198
+ },
199
+ ],
200
+ }),
201
+ body: tx_1.TxBody.fromPartial({
202
+ messages: messages.map(message => this.signingClient.registry.encodeAsAny(message)),
203
+ }),
204
+ signatures: [new Uint8Array()],
205
+ });
206
+ const request = service_1.SimulateRequest.encode(service_1.SimulateRequest.fromPartial({ txBytes: tx_1.Tx.encode(tx).finish() })).finish();
207
+ const response = await this.queryClient.queryAbci('/cosmos.tx.v1beta1.Service/Simulate', request);
208
+ const gas = Number((_b = (_a = service_1.SimulateResponse.decode(response.value).gasInfo) === null || _a === void 0 ? void 0 : _a.gasUsed) !== null && _b !== void 0 ? _b : 0);
209
+ const fee = (0, stargate_1.calculateFee)(Math.ceil(gas * this.gasAdjustment), this.gasPrice);
210
+ return granter ? Object.assign(Object.assign({}, fee), { granter }) : fee;
211
+ }
212
+ // Returns once the node accepted the transaction into its mempool, without waiting for a block.
213
+ async broadcastWithoutWaiting(messages, fee) {
214
+ return this.signingClient.signAndBroadcastSync(this.operatorAddress, messages, fee);
215
+ }
216
+ async findTx(hash) {
217
+ const tx = await this.signingClient.getTx(hash);
218
+ return tx ? { code: tx.code, height: tx.height, rawLog: tx.rawLog } : undefined;
219
+ }
220
+ async getAccountBalance(address, denom = 'uvna') {
221
+ return this.signingClient.getBalance(address, denom);
222
+ }
223
+ // The aggregate VS operator allowance of MOD-DE-MSG-5-5.
224
+ async feeAllowance(granter, denom = 'uvna') {
225
+ var _a;
226
+ const response = await this.queryClient.feegrant
227
+ .allowance(granter, this.operatorAddress)
228
+ .catch((error) => {
229
+ // verana-node v0.10.1 answers a missing grant with "fee-grant not found".
230
+ if (error instanceof Error && error.message.includes('fee-grant not found'))
231
+ return undefined;
232
+ throw error;
233
+ });
234
+ return feeAllowanceOf((_a = response === null || response === void 0 ? void 0 : response.allowance) === null || _a === void 0 ? void 0 : _a.allowance, denom);
235
+ }
209
236
  async setParticipantOPToValidated(params) {
210
237
  var _a, _b, _c, _d, _e;
211
238
  const value = MsgSetParticipantOPToValidated.fromPartial({
@@ -240,23 +267,6 @@ class VeranaChainService {
240
267
  });
241
268
  return { txHash: result.transactionHash };
242
269
  }
243
- async findActiveHolderParticipantIdByDid(did) {
244
- var _a;
245
- // fromPartial fills the unused fields with defaults so the request encodes correctly.
246
- const request = QueryFindParticipantsWithDIDRequest.fromPartial({ did });
247
- const { participants } = await this.ppQuery.FindParticipantsWithDID(request);
248
- 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;
249
- }
250
- async findActiveIssuerParticipantId(did, schemaId) {
251
- var _a;
252
- const request = QueryFindParticipantsWithDIDRequest.fromPartial({ did });
253
- const { participants } = await this.ppQuery.FindParticipantsWithDID(request);
254
- return (_a = participants.find(p => p.did === did &&
255
- p.role === PARTICIPANT_ROLE_ISSUER &&
256
- p.schemaId === schemaId &&
257
- !p.revoked &&
258
- !p.slashed)) === null || _a === void 0 ? void 0 : _a.id;
259
- }
260
270
  async triggerResolver(participantId) {
261
271
  const value = MsgTriggerResolver.fromPartial({
262
272
  corporation: this.corporationAddress,
@@ -270,7 +280,7 @@ class VeranaChainService {
270
280
  const { typeUrl, value } = options;
271
281
  const msg = { typeUrl, value };
272
282
  this.config.logger.debug(`[VeranaChain] Broadcasting ${typeUrl} as ${this.operatorAddress}`);
273
- const result = await this.signingClient.signAndBroadcast(this.operatorAddress, [msg], 'auto');
283
+ const result = await this.signingClient.signAndBroadcast(this.operatorAddress, [msg], this.gasAdjustment);
274
284
  (0, stargate_1.assertIsDeliverTxSuccess)(result);
275
285
  this.config.logger.info(`[VeranaChain] Tx success: ${result.transactionHash}`);
276
286
  return result;