@verana-labs/vs-agent-sdk 1.12.0-dev.3 → 1.12.0-dev.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -27
- package/build/agent/VsAgent.d.ts +16 -0
- package/build/agent/VsAgent.js +78 -14
- package/build/agent/VsAgent.js.map +1 -1
- package/build/agent/createVsAgent.d.ts +3 -0
- package/build/agent/createVsAgent.js +2 -0
- package/build/agent/createVsAgent.js.map +1 -1
- package/build/auth/adr036.d.ts +7 -0
- package/build/auth/adr036.js +22 -0
- package/build/auth/adr036.js.map +1 -0
- package/build/auth/index.d.ts +1 -0
- package/build/auth/index.js +18 -0
- package/build/auth/index.js.map +1 -0
- package/build/blockchain/AuthorizationService.d.ts +30 -0
- package/build/blockchain/AuthorizationService.js +100 -0
- package/build/blockchain/AuthorizationService.js.map +1 -0
- package/build/blockchain/IndexerWebSocketService.d.ts +15 -9
- package/build/blockchain/IndexerWebSocketService.js +201 -97
- package/build/blockchain/IndexerWebSocketService.js.map +1 -1
- package/build/blockchain/VeranaChainService.d.ts +29 -3
- package/build/blockchain/VeranaChainService.js +164 -27
- package/build/blockchain/VeranaChainService.js.map +1 -1
- package/build/blockchain/VeranaHelpers.js +1 -0
- package/build/blockchain/VeranaHelpers.js.map +1 -1
- package/build/blockchain/VeranaIndexerService.d.ts +13 -2
- package/build/blockchain/VeranaIndexerService.js +49 -6
- package/build/blockchain/VeranaIndexerService.js.map +1 -1
- package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +4 -3
- package/build/blockchain/handlers/IndexerHandlerRegistry.js +6 -0
- package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -1
- package/build/blockchain/handlers/authorizationHandlers.d.ts +4 -0
- package/build/blockchain/handlers/authorizationHandlers.js +54 -0
- package/build/blockchain/handlers/authorizationHandlers.js.map +1 -0
- package/build/blockchain/handlers/defaultHandlers.d.ts +4 -1
- package/build/blockchain/handlers/defaultHandlers.js +62 -35
- package/build/blockchain/handlers/defaultHandlers.js.map +1 -1
- package/build/blockchain/handlers/index.d.ts +1 -0
- package/build/blockchain/handlers/index.js +1 -0
- package/build/blockchain/handlers/index.js.map +1 -1
- package/build/blockchain/handlers/stateMutations.d.ts +6 -1
- package/build/blockchain/handlers/stateMutations.js +146 -10
- package/build/blockchain/handlers/stateMutations.js.map +1 -1
- package/build/blockchain/index.d.ts +1 -0
- package/build/blockchain/index.js +1 -0
- package/build/blockchain/index.js.map +1 -1
- package/build/blockchain/indexerSync.d.ts +10 -0
- package/build/blockchain/indexerSync.js +34 -0
- package/build/blockchain/indexerSync.js.map +1 -0
- package/build/blockchain/types.d.ts +123 -11
- package/build/blockchain/types.js +20 -1
- package/build/blockchain/types.js.map +1 -1
- package/build/bootstrap/EcsBootstrapService.d.ts +30 -0
- package/build/bootstrap/EcsBootstrapService.js +300 -0
- package/build/bootstrap/EcsBootstrapService.js.map +1 -0
- package/build/bootstrap/index.d.ts +1 -0
- package/build/bootstrap/index.js +18 -0
- package/build/bootstrap/index.js.map +1 -0
- package/build/credentials/FullTailsFileService.d.ts +4 -4
- package/build/credentials/FullTailsFileService.js +76 -65
- package/build/credentials/FullTailsFileService.js.map +1 -1
- package/build/did/adminApiService.d.ts +2 -0
- package/build/did/adminApiService.js +17 -0
- package/build/did/adminApiService.js.map +1 -0
- package/build/did/migrateWebVhVersionTime.d.ts +9 -0
- package/build/did/migrateWebVhVersionTime.js +191 -0
- package/build/did/migrateWebVhVersionTime.js.map +1 -0
- package/build/events/VsAgentEvents.d.ts +16 -2
- package/build/events/VsAgentEvents.js +2 -0
- package/build/events/VsAgentEvents.js.map +1 -1
- package/build/events/VtFlowEvents.d.ts +3 -0
- package/build/events/VtFlowEvents.js +35 -0
- package/build/events/VtFlowEvents.js.map +1 -0
- package/build/events/index.d.ts +1 -0
- package/build/events/index.js +1 -0
- package/build/events/index.js.map +1 -1
- package/build/index.d.ts +4 -1
- package/build/index.js +9 -4
- package/build/index.js.map +1 -1
- package/build/plugins/setupBaseDidComm.js +1 -1
- package/build/plugins/setupBaseDidComm.js.map +1 -1
- package/build/types.d.ts +4 -0
- package/build/types.js +5 -1
- package/build/types.js.map +1 -1
- package/build/utils/trustCredentialStore.d.ts +2 -0
- package/build/utils/trustCredentialStore.js +49 -2
- package/build/utils/trustCredentialStore.js.map +1 -1
- package/build/utils/util.d.ts +5 -1
- package/build/utils/util.js +17 -5
- package/build/utils/util.js.map +1 -1
- package/build/vtFlow/VtFlowOrchestrator.d.ts +16 -1
- package/build/vtFlow/VtFlowOrchestrator.js +215 -87
- package/build/vtFlow/VtFlowOrchestrator.js.map +1 -1
- package/build/vtFlow/assertVerifiableService.d.ts +8 -0
- package/build/vtFlow/assertVerifiableService.js +28 -0
- package/build/vtFlow/assertVerifiableService.js.map +1 -0
- package/build/vtFlow/index.d.ts +1 -0
- package/build/vtFlow/index.js +1 -0
- package/build/vtFlow/index.js.map +1 -1
- package/package.json +15 -11
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthorizationService = void 0;
|
|
4
|
+
// A lapsed grant that carries a period is still valid: the chain rolls the expiration
|
|
5
|
+
// forward on the next check (VPR spec AUTHZ-CHECK-3 step 4, AUTHZ-CHECK-1 step 2).
|
|
6
|
+
function renews(period) {
|
|
7
|
+
var _a;
|
|
8
|
+
return period != null && (period.seconds > 0 || ((_a = period.nanos) !== null && _a !== void 0 ? _a : 0) > 0);
|
|
9
|
+
}
|
|
10
|
+
function isOperatorAuthorizationActive(expiration, period) {
|
|
11
|
+
return expiration === undefined || expiration.getTime() > Date.now() || renews(period);
|
|
12
|
+
}
|
|
13
|
+
function isVsoaRecordActive(expiration, period) {
|
|
14
|
+
return expiration != null && (expiration.getTime() > Date.now() || renews(period));
|
|
15
|
+
}
|
|
16
|
+
/** VS operator authorization records cached for the admin API (https://github.com/verana-labs/vs-agent/issues/472); operator authorizations are queried on demand. */
|
|
17
|
+
class AuthorizationService {
|
|
18
|
+
constructor(config) {
|
|
19
|
+
var _a;
|
|
20
|
+
this.vsoaByParticipant = new Map();
|
|
21
|
+
this.lastRefreshAt = 0;
|
|
22
|
+
this.chain = config.chain;
|
|
23
|
+
this.logger = config.logger;
|
|
24
|
+
this.corporationId = config.corporationId;
|
|
25
|
+
this.minRefreshIntervalMs = (_a = config.minRefreshIntervalMs) !== null && _a !== void 0 ? _a : 2000;
|
|
26
|
+
}
|
|
27
|
+
inScope(corporationId) {
|
|
28
|
+
return this.corporationId === undefined || corporationId === this.corporationId;
|
|
29
|
+
}
|
|
30
|
+
async refreshForOperator() {
|
|
31
|
+
// Catch-up replays hit the same current chain state, so back-to-back refreshes are skipped.
|
|
32
|
+
if (Date.now() - this.lastRefreshAt < this.minRefreshIntervalMs)
|
|
33
|
+
return;
|
|
34
|
+
const vsoas = await this.chain.listVsOperatorAuthorizations();
|
|
35
|
+
this.lastRefreshAt = Date.now();
|
|
36
|
+
const rebuilt = new Map();
|
|
37
|
+
for (const vsoa of vsoas) {
|
|
38
|
+
if (!this.inScope(vsoa.corporationId))
|
|
39
|
+
continue;
|
|
40
|
+
for (const record of vsoa.records) {
|
|
41
|
+
rebuilt.set(record.participantId, Object.assign(Object.assign({}, record), { corporationId: vsoa.corporationId, vsOperator: vsoa.vsOperator }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.vsoaByParticipant = rebuilt;
|
|
45
|
+
this.logger.debug(`[Authorization] cache refreshed: ${rebuilt.size} VSOA record(s)`);
|
|
46
|
+
}
|
|
47
|
+
invalidateParticipant(participantId) {
|
|
48
|
+
if (this.vsoaByParticipant.delete(participantId)) {
|
|
49
|
+
this.logger.debug(`[Authorization] invalidated VSOA record for participant ${participantId}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
canSign(participantId, msgType) {
|
|
53
|
+
const record = this.vsoaByParticipant.get(participantId);
|
|
54
|
+
return (!!record && record.msgTypes.includes(msgType) && isVsoaRecordActive(record.expiration, record.period));
|
|
55
|
+
}
|
|
56
|
+
getVsOperatorAuthorizationRecord(participantId) {
|
|
57
|
+
return this.vsoaByParticipant.get(participantId);
|
|
58
|
+
}
|
|
59
|
+
listVsOperatorAuthorizationRecords() {
|
|
60
|
+
return [...this.vsoaByParticipant.values()];
|
|
61
|
+
}
|
|
62
|
+
// The feegrant mirror requires a strictly future expiration and is not renewed by the
|
|
63
|
+
// lazy cycle (MOD-DE-MSG-5-5), so no period leniency here.
|
|
64
|
+
hasFeegrant(participantId) {
|
|
65
|
+
const record = this.vsoaByParticipant.get(participantId);
|
|
66
|
+
return (!!record && record.withFeegrant && record.expiration != null && record.expiration.getTime() > Date.now());
|
|
67
|
+
}
|
|
68
|
+
async agentHoldsOperatorGrant(msgType) {
|
|
69
|
+
return this.callerHoldsOperatorGrant(this.chain.address, msgType);
|
|
70
|
+
}
|
|
71
|
+
// A blank account must fail closed: the chain treats an empty filter as "any account".
|
|
72
|
+
async callerHoldsOperatorGrant(account, msgType) {
|
|
73
|
+
if (!account.trim())
|
|
74
|
+
return false;
|
|
75
|
+
const auths = await this.chain.listOperatorAuthorizations(account);
|
|
76
|
+
return auths.some(a => this.inScope(a.corporationId) &&
|
|
77
|
+
a.msgTypes.includes(msgType) &&
|
|
78
|
+
isOperatorAuthorizationActive(a.expiration, a.period));
|
|
79
|
+
}
|
|
80
|
+
async callerHoldsAnyVsOperatorGrant(account, msgType) {
|
|
81
|
+
if (!account.trim())
|
|
82
|
+
return false;
|
|
83
|
+
const vsoas = await this.chain.listVsOperatorAuthorizations(account);
|
|
84
|
+
return vsoas.some(vsoa => this.inScope(vsoa.corporationId) &&
|
|
85
|
+
vsoa.records.some(r => this.vsoaByParticipant.has(r.participantId) &&
|
|
86
|
+
r.msgTypes.includes(msgType) &&
|
|
87
|
+
isVsoaRecordActive(r.expiration, r.period)));
|
|
88
|
+
}
|
|
89
|
+
async callerHoldsVsOperatorGrant(account, participantId, msgType) {
|
|
90
|
+
if (!account.trim())
|
|
91
|
+
return false;
|
|
92
|
+
const vsoas = await this.chain.listVsOperatorAuthorizations(account);
|
|
93
|
+
return vsoas.some(vsoa => this.inScope(vsoa.corporationId) &&
|
|
94
|
+
vsoa.records.some(r => r.participantId === participantId &&
|
|
95
|
+
r.msgTypes.includes(msgType) &&
|
|
96
|
+
isVsoaRecordActive(r.expiration, r.period)));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.AuthorizationService = AuthorizationService;
|
|
100
|
+
//# sourceMappingURL=AuthorizationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorizationService.js","sourceRoot":"","sources":["../../src/blockchain/AuthorizationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,32 +4,38 @@ export interface IndexerWebSocketServiceOptions {
|
|
|
4
4
|
indexerUrl: string;
|
|
5
5
|
agent: VsAgent;
|
|
6
6
|
handlerRegistry?: IndexerHandlerRegistry;
|
|
7
|
+
corporationId?: number;
|
|
7
8
|
}
|
|
8
9
|
export declare class IndexerWebSocketService {
|
|
9
10
|
private readonly options;
|
|
10
11
|
private ws;
|
|
11
12
|
private reconnectAttempt;
|
|
13
|
+
private reconnectTimer;
|
|
14
|
+
private watchdog;
|
|
12
15
|
private stopped;
|
|
13
16
|
private syncing;
|
|
14
|
-
private
|
|
17
|
+
private generation;
|
|
18
|
+
private chain;
|
|
19
|
+
private syncBuffer;
|
|
15
20
|
private readonly indexer;
|
|
16
21
|
private readonly handlerRegistry;
|
|
17
22
|
constructor(options: IndexerWebSocketServiceOptions);
|
|
18
23
|
start(): Promise<void>;
|
|
19
24
|
stop(): void;
|
|
20
25
|
private get logger();
|
|
21
|
-
/**
|
|
22
|
-
* Connects to the indexer WebSocket, performs an initial sync via REST (use /events endpoint because it returns historical events in a single request)
|
|
23
|
-
* Finally, processes pending events received during the initial sync.
|
|
24
|
-
*/
|
|
25
26
|
private connect;
|
|
26
27
|
private openWebSocket;
|
|
28
|
+
private handleMessage;
|
|
27
29
|
private syncRest;
|
|
28
|
-
private
|
|
29
|
-
private
|
|
30
|
+
private drainSyncBuffer;
|
|
31
|
+
private enqueueLive;
|
|
32
|
+
private runExclusive;
|
|
33
|
+
private applyEvent;
|
|
34
|
+
private applyChanges;
|
|
30
35
|
private fetchActivity;
|
|
31
36
|
private fetchEntity;
|
|
32
|
-
private
|
|
37
|
+
private armWatchdog;
|
|
38
|
+
private clearWatchdog;
|
|
39
|
+
private forceReconnect;
|
|
33
40
|
private scheduleReconnect;
|
|
34
|
-
private fetchInitialEvents;
|
|
35
41
|
}
|
|
@@ -4,21 +4,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.IndexerWebSocketService = void 0;
|
|
7
|
+
const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
|
|
7
8
|
const ws_1 = __importDefault(require("ws"));
|
|
9
|
+
const events_1 = require("../events");
|
|
8
10
|
const VeranaHelpers_1 = require("./VeranaHelpers");
|
|
9
11
|
const VeranaIndexerService_1 = require("./VeranaIndexerService");
|
|
10
12
|
const handlers_1 = require("./handlers");
|
|
13
|
+
const indexerSync_1 = require("./indexerSync");
|
|
11
14
|
const MAX_RECONNECT_DELAY_MS = 300000;
|
|
12
15
|
const WS_PATHNAME = 'v4/indexer/subscribe';
|
|
16
|
+
const REST_PAGE_LIMIT = 500;
|
|
17
|
+
const MAX_SYNC_BUFFER = 10000;
|
|
18
|
+
// The indexer pings every 30 seconds, so a longer gap means the socket is dead.
|
|
19
|
+
const LIVENESS_TIMEOUT_MS = 90000;
|
|
13
20
|
class IndexerWebSocketService {
|
|
14
21
|
constructor(options) {
|
|
15
22
|
var _a;
|
|
16
23
|
this.options = options;
|
|
17
24
|
this.ws = null;
|
|
18
25
|
this.reconnectAttempt = 0;
|
|
26
|
+
this.reconnectTimer = null;
|
|
27
|
+
this.watchdog = null;
|
|
19
28
|
this.stopped = false;
|
|
20
29
|
this.syncing = false;
|
|
21
|
-
this.
|
|
30
|
+
this.generation = 0;
|
|
31
|
+
this.chain = Promise.resolve();
|
|
32
|
+
this.syncBuffer = [];
|
|
22
33
|
this.indexer = new VeranaIndexerService_1.VeranaIndexerService({
|
|
23
34
|
baseUrl: options.indexerUrl,
|
|
24
35
|
logger: options.agent.config.logger,
|
|
@@ -32,23 +43,37 @@ class IndexerWebSocketService {
|
|
|
32
43
|
stop() {
|
|
33
44
|
var _a;
|
|
34
45
|
this.stopped = true;
|
|
46
|
+
this.clearWatchdog();
|
|
47
|
+
if (this.reconnectTimer) {
|
|
48
|
+
clearTimeout(this.reconnectTimer);
|
|
49
|
+
this.reconnectTimer = null;
|
|
50
|
+
}
|
|
35
51
|
(_a = this.ws) === null || _a === void 0 ? void 0 : _a.close();
|
|
36
52
|
this.ws = null;
|
|
37
53
|
}
|
|
38
54
|
get logger() {
|
|
39
55
|
return this.options.agent.config.logger;
|
|
40
56
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Connects to the indexer WebSocket, performs an initial sync via REST (use /events endpoint because it returns historical events in a single request)
|
|
43
|
-
* Finally, processes pending events received during the initial sync.
|
|
44
|
-
*/
|
|
45
57
|
async connect() {
|
|
58
|
+
if (this.stopped)
|
|
59
|
+
return;
|
|
60
|
+
const generation = ++this.generation;
|
|
46
61
|
this.syncing = true;
|
|
47
|
-
this.
|
|
62
|
+
this.syncBuffer = [];
|
|
48
63
|
this.openWebSocket();
|
|
49
|
-
|
|
64
|
+
try {
|
|
65
|
+
await this.syncRest(generation);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
this.logger.error(`[IndexerWS] Catch-up failed, will reconnect: ${error.message}`);
|
|
69
|
+
if (generation === this.generation)
|
|
70
|
+
this.forceReconnect('catch-up failed');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (this.stopped || generation !== this.generation)
|
|
74
|
+
return;
|
|
50
75
|
this.syncing = false;
|
|
51
|
-
|
|
76
|
+
this.drainSyncBuffer(generation);
|
|
52
77
|
}
|
|
53
78
|
openWebSocket() {
|
|
54
79
|
const url = new URL(this.options.indexerUrl);
|
|
@@ -59,44 +84,25 @@ class IndexerWebSocketService {
|
|
|
59
84
|
this.logger.info(`[IndexerWS] Connecting to ${wsUrl}`);
|
|
60
85
|
const ws = new ws_1.default(wsUrl);
|
|
61
86
|
this.ws = ws;
|
|
87
|
+
this.armWatchdog();
|
|
62
88
|
ws.on('open', () => {
|
|
63
|
-
|
|
64
|
-
|
|
89
|
+
if (ws === this.ws)
|
|
90
|
+
this.logger.info(`[IndexerWS] Connected to indexer`);
|
|
91
|
+
});
|
|
92
|
+
ws.on('ping', () => {
|
|
93
|
+
if (ws === this.ws)
|
|
94
|
+
this.armWatchdog();
|
|
65
95
|
});
|
|
66
96
|
ws.on('message', (data) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const subscribe = {
|
|
72
|
-
action: 'subscribe',
|
|
73
|
-
dids: this.options.agent.did ? [this.options.agent.did] : undefined,
|
|
74
|
-
};
|
|
75
|
-
ws.send(JSON.stringify(subscribe));
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (message.type !== 'block')
|
|
79
|
-
return;
|
|
80
|
-
for (const event of message.events) {
|
|
81
|
-
if (event.type !== 'indexer-event')
|
|
82
|
-
continue;
|
|
83
|
-
if (event.block_height <= 0)
|
|
84
|
-
continue;
|
|
85
|
-
if (!((_a = event.payload) === null || _a === void 0 ? void 0 : _a.sender))
|
|
86
|
-
continue;
|
|
87
|
-
if (this.syncing) {
|
|
88
|
-
this.IndexerEventRecords.push(event);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.processBlock(event).catch(err => this.logger.error(`[IndexerWS] Handler error: ${err.message}`));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (_b) {
|
|
96
|
-
this.logger.warn(`[IndexerWS] Failed to parse message: ${data}`);
|
|
97
|
-
}
|
|
97
|
+
if (ws !== this.ws)
|
|
98
|
+
return;
|
|
99
|
+
this.armWatchdog();
|
|
100
|
+
this.handleMessage(ws, data);
|
|
98
101
|
});
|
|
99
102
|
ws.on('close', () => {
|
|
103
|
+
if (ws !== this.ws)
|
|
104
|
+
return;
|
|
105
|
+
this.clearWatchdog();
|
|
100
106
|
if (!this.stopped)
|
|
101
107
|
this.scheduleReconnect();
|
|
102
108
|
});
|
|
@@ -104,55 +110,147 @@ class IndexerWebSocketService {
|
|
|
104
110
|
this.logger.error(`[IndexerWS] Error: ${error.message}`);
|
|
105
111
|
});
|
|
106
112
|
}
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
handleMessage(ws, data) {
|
|
114
|
+
let message;
|
|
109
115
|
try {
|
|
110
|
-
|
|
111
|
-
const data = await this.fetchInitialEvents(lastBlockHeight);
|
|
112
|
-
for (const event of data.events) {
|
|
113
|
-
await this.processBlock(event);
|
|
114
|
-
}
|
|
115
|
-
this.logger.info(`[IndexerWS] Initial sync complete: ${data.events.length} event(s)`);
|
|
116
|
+
message = JSON.parse(data.toString());
|
|
116
117
|
}
|
|
117
|
-
catch (
|
|
118
|
-
this.logger.
|
|
118
|
+
catch (_a) {
|
|
119
|
+
this.logger.warn(`[IndexerWS] Failed to parse message: ${data}`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (message.type === 'ready') {
|
|
123
|
+
this.reconnectAttempt = 0;
|
|
124
|
+
const subscribe = this.options.corporationId != null
|
|
125
|
+
? { action: 'subscribe', corporationId: this.options.corporationId }
|
|
126
|
+
: { action: 'subscribe', dids: this.options.agent.did ? [this.options.agent.did] : undefined };
|
|
127
|
+
ws.send(JSON.stringify(subscribe));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (message.type !== 'block')
|
|
131
|
+
return;
|
|
132
|
+
const generation = this.generation;
|
|
133
|
+
for (const event of message.events) {
|
|
134
|
+
if (!(0, indexerSync_1.isProcessableEvent)(event))
|
|
135
|
+
continue;
|
|
136
|
+
if (!this.syncing) {
|
|
137
|
+
this.enqueueLive(event, generation);
|
|
138
|
+
}
|
|
139
|
+
else if (this.syncBuffer.length < MAX_SYNC_BUFFER) {
|
|
140
|
+
this.syncBuffer.push(event);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this.forceReconnect('sync buffer overflow');
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
119
146
|
}
|
|
120
147
|
}
|
|
121
|
-
async
|
|
148
|
+
async syncRest(generation) {
|
|
149
|
+
if (!this.options.agent.did)
|
|
150
|
+
throw new Error('Agent does not have any defined public DID');
|
|
151
|
+
const did = this.options.agent.did;
|
|
122
152
|
const { lastBlockHeight } = await (0, VeranaHelpers_1.loadSyncState)(this.options.agent);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
153
|
+
let cursor = lastBlockHeight;
|
|
154
|
+
for (;;) {
|
|
155
|
+
if (this.stopped || generation !== this.generation)
|
|
156
|
+
return;
|
|
157
|
+
const page = await this.indexer.getEvents(did, cursor, REST_PAGE_LIMIT, this.options.corporationId);
|
|
158
|
+
for (const event of (0, indexerSync_1.sortEventsByPosition)(page.events.filter(indexerSync_1.isProcessableEvent))) {
|
|
159
|
+
if (this.stopped || generation !== this.generation)
|
|
160
|
+
return;
|
|
161
|
+
await this.runExclusive(() => this.applyEvent(event, generation));
|
|
162
|
+
}
|
|
163
|
+
const next = (0, indexerSync_1.nextRestCursor)(page.events, cursor, REST_PAGE_LIMIT);
|
|
164
|
+
if (next.done)
|
|
165
|
+
return;
|
|
166
|
+
if (next.blockExceedsPage) {
|
|
167
|
+
this.logger.warn(`[IndexerWS] Block ${next.cursor} fills a full page; the events API cannot page within a block`);
|
|
130
168
|
}
|
|
131
|
-
|
|
132
|
-
|
|
169
|
+
cursor = next.cursor;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
drainSyncBuffer(generation) {
|
|
173
|
+
const events = this.syncBuffer.splice(0);
|
|
174
|
+
for (const event of (0, indexerSync_1.sortEventsByPosition)(events)) {
|
|
175
|
+
this.enqueueLive(event, generation);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
enqueueLive(event, generation) {
|
|
179
|
+
this.runExclusive(() => this.applyEvent(event, generation)).catch(error => {
|
|
180
|
+
this.logger.error(`[IndexerWS] Live event ${event.event_type} failed at block ${event.block_height}: ${error.message}`);
|
|
181
|
+
if (generation === this.generation)
|
|
182
|
+
this.forceReconnect('live event processing failed');
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
runExclusive(task) {
|
|
186
|
+
const result = this.chain.then(task);
|
|
187
|
+
this.chain = result.then(() => undefined, () => undefined);
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
async applyEvent(event, generation) {
|
|
191
|
+
var _a;
|
|
192
|
+
if (this.stopped || generation !== this.generation)
|
|
193
|
+
return;
|
|
194
|
+
const key = (0, indexerSync_1.eventKey)(event);
|
|
195
|
+
const block = event.block_height;
|
|
196
|
+
const state = await (0, VeranaHelpers_1.loadSyncState)(this.options.agent);
|
|
197
|
+
if (block <= state.lastBlockHeight)
|
|
198
|
+
return;
|
|
199
|
+
const partialKeys = (_a = state.partialKeys) !== null && _a !== void 0 ? _a : [];
|
|
200
|
+
if (block === state.partialBlock && partialKeys.includes(key))
|
|
201
|
+
return;
|
|
202
|
+
const activity = await this.fetchActivity(event);
|
|
203
|
+
if (this.stopped || generation !== this.generation)
|
|
204
|
+
return;
|
|
205
|
+
if (activity)
|
|
206
|
+
await this.applyChanges(event, activity, state);
|
|
207
|
+
if (state.partialBlock === undefined || block > state.partialBlock) {
|
|
208
|
+
state.partialBlock = block;
|
|
209
|
+
state.partialKeys = [key];
|
|
133
210
|
}
|
|
134
|
-
|
|
135
|
-
|
|
211
|
+
else {
|
|
212
|
+
state.partialKeys = [...partialKeys, key];
|
|
136
213
|
}
|
|
214
|
+
// A block counts as done only when a later block arrives, so the saved height stays one behind.
|
|
215
|
+
state.lastBlockHeight = Math.max(state.lastBlockHeight, block - 1);
|
|
216
|
+
await (0, VeranaHelpers_1.saveSyncState)(this.options.agent, state);
|
|
137
217
|
}
|
|
138
|
-
async
|
|
218
|
+
async applyChanges(event, activity, state) {
|
|
219
|
+
const syncState = state !== null && state !== void 0 ? state : (await (0, VeranaHelpers_1.loadSyncState)(this.options.agent));
|
|
220
|
+
const block = event.block_height;
|
|
221
|
+
(0, handlers_1.applyStateMutation)(syncState, activity);
|
|
222
|
+
await this.handlerRegistry.dispatch(activity, {
|
|
223
|
+
agent: this.options.agent,
|
|
224
|
+
blockHeight: block,
|
|
225
|
+
operatorAddress: event.payload.sender,
|
|
226
|
+
state: syncState,
|
|
227
|
+
txHash: event.tx_hash,
|
|
228
|
+
});
|
|
229
|
+
if (!state) {
|
|
230
|
+
syncState.lastBlockHeight = Math.max(syncState.lastBlockHeight, block);
|
|
231
|
+
await (0, VeranaHelpers_1.saveSyncState)(this.options.agent, syncState);
|
|
232
|
+
}
|
|
139
233
|
try {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
234
|
+
(0, events_1.emitVsAgentEvent)(this.options.agent, events_1.VsAgentEventTypes.IndexerNotification, new vs_agent_model_1.IndexerNotification({
|
|
235
|
+
msg: activity.msg,
|
|
236
|
+
entityType: String(activity.entity_type),
|
|
237
|
+
entityId: String(activity.entity_id),
|
|
238
|
+
changes: activity.changes,
|
|
239
|
+
blockHeight: block,
|
|
240
|
+
txHash: event.tx_hash,
|
|
241
|
+
operatorAddress: event.payload.sender,
|
|
242
|
+
timestamp: new Date(event.timestamp),
|
|
243
|
+
}));
|
|
144
244
|
}
|
|
145
|
-
catch (
|
|
146
|
-
this.logger.error(`[IndexerWS] Failed to
|
|
245
|
+
catch (err) {
|
|
246
|
+
this.logger.error(`[IndexerWS] Failed to emit indexer notification: ${err.message}`);
|
|
147
247
|
}
|
|
148
248
|
}
|
|
149
249
|
async fetchActivity(event) {
|
|
150
250
|
var _a;
|
|
151
251
|
const entity_id = event.payload.entity_id;
|
|
152
|
-
if (!entity_id)
|
|
153
|
-
this.logger.warn(`[IndexerWS] No entity_id for event ${event.event_type} — skipping`);
|
|
252
|
+
if (!entity_id)
|
|
154
253
|
return undefined;
|
|
155
|
-
}
|
|
156
254
|
const changes = await this.fetchEntity(event.payload.entity_type, entity_id);
|
|
157
255
|
return {
|
|
158
256
|
timestamp: event.timestamp,
|
|
@@ -165,6 +263,7 @@ class IndexerWebSocketService {
|
|
|
165
263
|
};
|
|
166
264
|
}
|
|
167
265
|
async fetchEntity(entityType, id) {
|
|
266
|
+
var _a;
|
|
168
267
|
switch (entityType) {
|
|
169
268
|
case 'Ecosystem':
|
|
170
269
|
return (await this.indexer.getEcosystem(id));
|
|
@@ -172,46 +271,51 @@ class IndexerWebSocketService {
|
|
|
172
271
|
return (await this.indexer.getCredentialSchema(id));
|
|
173
272
|
case 'Participant':
|
|
174
273
|
return (await this.indexer.getParticipant(id));
|
|
274
|
+
case 'Corporation':
|
|
275
|
+
return ((_a = (await this.indexer.getCorporation(id))) !== null && _a !== void 0 ? _a : {});
|
|
175
276
|
default:
|
|
176
277
|
return {};
|
|
177
278
|
}
|
|
178
279
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
280
|
+
armWatchdog() {
|
|
281
|
+
this.clearWatchdog();
|
|
282
|
+
if (this.stopped)
|
|
283
|
+
return;
|
|
284
|
+
this.watchdog = setTimeout(() => this.forceReconnect('liveness timeout'), LIVENESS_TIMEOUT_MS);
|
|
285
|
+
}
|
|
286
|
+
clearWatchdog() {
|
|
287
|
+
if (this.watchdog) {
|
|
288
|
+
clearTimeout(this.watchdog);
|
|
289
|
+
this.watchdog = null;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
forceReconnect(reason) {
|
|
293
|
+
if (this.stopped)
|
|
294
|
+
return;
|
|
295
|
+
this.logger.warn(`[IndexerWS] Forcing reconnect: ${reason}`);
|
|
296
|
+
this.generation++; // stops queued work so it cannot move the height past the failed event
|
|
297
|
+
this.clearWatchdog();
|
|
298
|
+
const ws = this.ws;
|
|
299
|
+
this.ws = null;
|
|
182
300
|
try {
|
|
183
|
-
|
|
184
|
-
agent: this.options.agent,
|
|
185
|
-
block_height,
|
|
186
|
-
operatorAddress: event.payload.sender,
|
|
187
|
-
state,
|
|
188
|
-
txHash: event.tx_hash,
|
|
189
|
-
});
|
|
301
|
+
ws === null || ws === void 0 ? void 0 : ws.terminate();
|
|
190
302
|
}
|
|
191
|
-
|
|
192
|
-
this.
|
|
303
|
+
finally {
|
|
304
|
+
this.scheduleReconnect();
|
|
193
305
|
}
|
|
194
|
-
state.lastBlockHeight = Math.max(state.lastBlockHeight, event.block_height);
|
|
195
|
-
await (0, VeranaHelpers_1.saveSyncState)(this.options.agent, state);
|
|
196
|
-
this.logger.debug(`[IndexerWS] Block ${event.block_height}: applied ${event.event_type}`);
|
|
197
306
|
}
|
|
198
307
|
scheduleReconnect() {
|
|
308
|
+
if (this.reconnectTimer || this.stopped)
|
|
309
|
+
return;
|
|
199
310
|
const delay = Math.min(1000 * 2 ** this.reconnectAttempt, MAX_RECONNECT_DELAY_MS);
|
|
200
311
|
this.reconnectAttempt++;
|
|
201
312
|
this.logger.info(`[IndexerWS] Reconnecting in ${delay}ms (attempt ${this.reconnectAttempt})`);
|
|
202
|
-
setTimeout(() => {
|
|
313
|
+
this.reconnectTimer = setTimeout(() => {
|
|
314
|
+
this.reconnectTimer = null;
|
|
203
315
|
if (!this.stopped)
|
|
204
316
|
this.connect();
|
|
205
317
|
}, delay);
|
|
206
318
|
}
|
|
207
|
-
async fetchInitialEvents(afterBlockHeight) {
|
|
208
|
-
this.logger.info(`[IndexerWS] Fetching initial events after block ${afterBlockHeight}`);
|
|
209
|
-
if (!this.options.agent.did)
|
|
210
|
-
throw new Error('Agent does not have any defined public DID');
|
|
211
|
-
const response = await this.indexer.getEvents(this.options.agent.did, afterBlockHeight);
|
|
212
|
-
this.logger.info(`[IndexerWS] Fetched: count=${response.count}, after_block_height=${response.after_block_height}`);
|
|
213
|
-
return response;
|
|
214
|
-
}
|
|
215
319
|
}
|
|
216
320
|
exports.IndexerWebSocketService = IndexerWebSocketService;
|
|
217
321
|
//# sourceMappingURL=IndexerWebSocketService.js.map
|
|
@@ -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,5 +1,5 @@
|
|
|
1
1
|
import { type DeliverTxResponse } from '@cosmjs/stargate';
|
|
2
|
-
import { CreateOrUpdateParticipantSessionParams, Participant, SetParticipantOPToValidatedParams, VeranaChainConfig } from './types';
|
|
2
|
+
import { Coin, CreateOrUpdateParticipantSessionParams, CredentialSchema, Ecosystem, OperatorAuthorization, Participant, SelfCreateParticipantParams, SetParticipantOPToValidatedParams, StartParticipantOPParams, VeranaChainConfig, VsOperatorAuthorization } from './types';
|
|
3
3
|
export declare class VeranaChainService {
|
|
4
4
|
private readonly config;
|
|
5
5
|
private signingClient;
|
|
@@ -7,20 +7,46 @@ export declare class VeranaChainService {
|
|
|
7
7
|
private chainId;
|
|
8
8
|
private corporationAddress;
|
|
9
9
|
private ppQuery;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
10
|
+
private deQuery;
|
|
11
|
+
private ecQuery;
|
|
12
|
+
private csQuery;
|
|
12
13
|
constructor(config: VeranaChainConfig);
|
|
13
14
|
get address(): string;
|
|
14
15
|
get getChainId(): string;
|
|
15
16
|
get corporation(): string;
|
|
17
|
+
get autoTriggerResolverEnabled(): boolean;
|
|
16
18
|
start(): Promise<void>;
|
|
17
19
|
getParticipant(id: number): Promise<Participant | undefined>;
|
|
20
|
+
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
|
+
startParticipantOP(params: StartParticipantOPParams): Promise<{
|
|
27
|
+
participantId: number;
|
|
28
|
+
txHash: string;
|
|
29
|
+
}>;
|
|
30
|
+
renewParticipantOP(id: number): Promise<{
|
|
31
|
+
txHash: string;
|
|
32
|
+
}>;
|
|
33
|
+
cancelParticipantOPLastRequest(id: number): Promise<{
|
|
34
|
+
txHash: string;
|
|
35
|
+
}>;
|
|
36
|
+
selfCreateParticipant(params: SelfCreateParticipantParams): Promise<{
|
|
37
|
+
participantId: number;
|
|
38
|
+
txHash: string;
|
|
39
|
+
}>;
|
|
18
40
|
setParticipantOPToValidated(params: SetParticipantOPToValidatedParams): Promise<{
|
|
19
41
|
txHash: string;
|
|
20
42
|
}>;
|
|
21
43
|
createOrUpdateParticipantSession(params: CreateOrUpdateParticipantSessionParams): Promise<{
|
|
22
44
|
txHash: string;
|
|
23
45
|
}>;
|
|
46
|
+
findActiveHolderParticipantIdByDid(did: string): Promise<number | undefined>;
|
|
47
|
+
triggerResolver(participantId: number): Promise<{
|
|
48
|
+
txHash: string;
|
|
49
|
+
}>;
|
|
24
50
|
private broadcastMsg;
|
|
25
51
|
extractIdFromEvent(txHashOrResult: string | DeliverTxResponse, eventType: string, attrKey: string): Promise<number>;
|
|
26
52
|
}
|