@subql/node-algorand 3.17.0 → 4.0.0
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/CHANGELOG.md +9 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/algorand/algorand.spec.js +1 -1
- package/dist/algorand/algorand.spec.js.map +1 -1
- package/dist/algorand/api.algorand.js +1 -1
- package/dist/algorand/api.algorand.js.map +1 -1
- package/dist/algorand/api.connection.js +1 -1
- package/dist/algorand/api.connection.js.map +1 -1
- package/dist/algorand/api.service.algorand.js +1 -1
- package/dist/algorand/api.service.algorand.js.map +1 -1
- package/dist/algorand/index.js +1 -1
- package/dist/algorand/index.js.map +1 -1
- package/dist/algorand/utils.algorand.js +2 -1
- package/dist/algorand/utils.algorand.js.map +1 -1
- package/dist/algorand/utils.algorand.spec.js +1 -1
- package/dist/algorand/utils.algorand.spec.js.map +1 -1
- package/dist/app.module.js +1 -1
- package/dist/app.module.js.map +1 -1
- package/dist/blockchain.service.d.ts +30 -0
- package/dist/blockchain.service.js +96 -0
- package/dist/blockchain.service.js.map +1 -0
- package/dist/configure/SubqueryProject.js +1 -1
- package/dist/configure/SubqueryProject.js.map +1 -1
- package/dist/configure/configure.module.js +1 -1
- package/dist/configure/configure.module.js.map +1 -1
- package/dist/indexer/api.service.spec.js +1 -1
- package/dist/indexer/api.service.spec.js.map +1 -1
- package/dist/indexer/dictionary/algorandDictionary.service.d.ts +1 -2
- package/dist/indexer/dictionary/algorandDictionary.service.js +2 -3
- package/dist/indexer/dictionary/algorandDictionary.service.js.map +1 -1
- package/dist/indexer/dictionary/index.js +1 -1
- package/dist/indexer/dictionary/index.js.map +1 -1
- package/dist/indexer/dictionary/v1/algorandDictionaryV1.d.ts +1 -2
- package/dist/indexer/dictionary/v1/algorandDictionaryV1.js +1 -1
- package/dist/indexer/dictionary/v1/algorandDictionaryV1.js.map +1 -1
- package/dist/indexer/dictionary/v1/algorandDictionaryV1.spec.js +1 -1
- package/dist/indexer/dictionary/v1/algorandDictionaryV1.spec.js.map +1 -1
- package/dist/indexer/dictionary/v1/index.js +1 -1
- package/dist/indexer/dictionary/v1/index.js.map +1 -1
- package/dist/indexer/fetch.module.js +31 -23
- package/dist/indexer/fetch.module.js.map +1 -1
- package/dist/indexer/indexer.manager.d.ts +3 -5
- package/dist/indexer/indexer.manager.js +14 -9
- package/dist/indexer/indexer.manager.js.map +1 -1
- package/dist/indexer/types.js +1 -1
- package/dist/indexer/types.js.map +1 -1
- package/dist/indexer/worker/worker-fetch.module.js +7 -14
- package/dist/indexer/worker/worker-fetch.module.js.map +1 -1
- package/dist/indexer/worker/worker.js +1 -1
- package/dist/indexer/worker/worker.js.map +1 -1
- package/dist/indexer/worker/worker.module.js +1 -2
- package/dist/indexer/worker/worker.module.js.map +1 -1
- package/dist/indexer/worker/worker.service.js +2 -1
- package/dist/indexer/worker/worker.service.js.map +1 -1
- package/dist/init.js +2 -3
- package/dist/init.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/subcommands/forceClean.init.js +1 -1
- package/dist/subcommands/forceClean.init.js.map +1 -1
- package/dist/subcommands/forceClean.module.js +1 -1
- package/dist/subcommands/forceClean.module.js.map +1 -1
- package/dist/subcommands/forceClean.service.js +1 -1
- package/dist/subcommands/forceClean.service.js.map +1 -1
- package/dist/subcommands/reindex.init.js +1 -1
- package/dist/subcommands/reindex.init.js.map +1 -1
- package/dist/subcommands/reindex.module.js +20 -8
- package/dist/subcommands/reindex.module.js.map +1 -1
- package/dist/subcommands/testing.init.js +1 -1
- package/dist/subcommands/testing.init.js.map +1 -1
- package/dist/subcommands/testing.module.js +14 -28
- package/dist/subcommands/testing.module.js.map +1 -1
- package/dist/subcommands/testing.service.js +1 -3
- package/dist/subcommands/testing.service.js.map +1 -1
- package/dist/utils/project.js +1 -1
- package/dist/utils/project.js.map +1 -1
- package/dist/yargs.js +1 -1
- package/dist/yargs.js.map +1 -1
- package/package.json +9 -9
- package/dist/indexer/blockDispatcher/algorand-block-dispatcher.d.ts +0 -5
- package/dist/indexer/blockDispatcher/algorand-block-dispatcher.js +0 -5
- package/dist/indexer/blockDispatcher/algorand-block-dispatcher.js.map +0 -1
- package/dist/indexer/blockDispatcher/block-dispatcher.service.d.ts +0 -17
- package/dist/indexer/blockDispatcher/block-dispatcher.service.js +0 -55
- package/dist/indexer/blockDispatcher/block-dispatcher.service.js.map +0 -1
- package/dist/indexer/blockDispatcher/index.d.ts +0 -4
- package/dist/indexer/blockDispatcher/index.js +0 -10
- package/dist/indexer/blockDispatcher/index.js.map +0 -1
- package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.d.ts +0 -18
- package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js +0 -48
- package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js.map +0 -1
- package/dist/indexer/ds-processor.service.d.ts +0 -11
- package/dist/indexer/ds-processor.service.js +0 -22
- package/dist/indexer/ds-processor.service.js.map +0 -1
- package/dist/indexer/dynamic-ds.service.d.ts +0 -9
- package/dist/indexer/dynamic-ds.service.js +0 -57
- package/dist/indexer/dynamic-ds.service.js.map +0 -1
- package/dist/indexer/fetch.service.d.ts +0 -22
- package/dist/indexer/fetch.service.js +0 -78
- package/dist/indexer/fetch.service.js.map +0 -1
- package/dist/indexer/project.service.d.ts +0 -16
- package/dist/indexer/project.service.js +0 -71
- package/dist/indexer/project.service.js.map +0 -1
- package/dist/indexer/unfinalizedBlocks.service.d.ts +0 -10
- package/dist/indexer/unfinalizedBlocks.service.js +0 -64
- package/dist/indexer/unfinalizedBlocks.service.js.map +0 -1
package/dist/init.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.bootstrap = void 0;
|
|
6
6
|
const core_1 = require("@nestjs/core");
|
|
7
7
|
const node_core_1 = require("@subql/node-core");
|
|
8
8
|
const app_module_1 = require("./app.module");
|
|
9
|
-
const fetch_service_1 = require("./indexer/fetch.service");
|
|
10
9
|
const yargs_1 = require("./yargs");
|
|
11
10
|
const pjson = require('../package.json');
|
|
12
11
|
const { argv } = yargs_1.yargsOptions;
|
|
@@ -20,7 +19,7 @@ async function bootstrap() {
|
|
|
20
19
|
});
|
|
21
20
|
await app.init();
|
|
22
21
|
const projectService = app.get('IProjectService');
|
|
23
|
-
const fetchService = app.get(
|
|
22
|
+
const fetchService = app.get(node_core_1.FetchService);
|
|
24
23
|
await projectService.init();
|
|
25
24
|
await fetchService.init(projectService.startHeight);
|
|
26
25
|
app.enableShutdownHooks();
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,uCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,uCAA2C;AAC3C,gDAM0B;AAC1B,6CAAyC;AACzC,mCAAuC;AACvC,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEzC,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAY,CAAC;AAE9B,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC;AAEhC,KAAK,UAAU,SAAS;IAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,EAAE;YAC9C,MAAM,EAAE,IAAI,sBAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;SACrC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjB,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAY,CAAC,CAAC;QAE3C,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEpD,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAE1B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvB,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,IAAA,yBAAa,EAAC,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KACxE;AACH,CAAC;AAzBD,8BAyBC","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { NestFactory } from '@nestjs/core';\nimport {\n exitWithError,\n FetchService,\n getLogger,\n getValidPort,\n NestLogger,\n} from '@subql/node-core';\nimport { AppModule } from './app.module';\nimport { yargsOptions } from './yargs';\nconst pjson = require('../package.json');\n\nconst { argv } = yargsOptions;\n\nconst logger = getLogger('subql-node');\n\nexport async function bootstrap(): Promise<void> {\n logger.info(`Current ${pjson.name} version is ${pjson.version}`);\n\n const port = await getValidPort(argv.port);\n\n try {\n const app = await NestFactory.create(AppModule, {\n logger: new NestLogger(!!argv.debug),\n });\n await app.init();\n\n const projectService = app.get('IProjectService');\n const fetchService = app.get(FetchService);\n\n await projectService.init();\n await fetchService.init(projectService.startHeight);\n\n app.enableShutdownHooks();\n\n await app.listen(port);\n\n logger.info(`Node started on port: ${port}`);\n } catch (e) {\n exitWithError(new Error('Node failed to start', { cause: e }), logger);\n }\n}\n"]}
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const logger_1 = require("@subql/node-core/logger");
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;AAEnC,oDAAqD;AACrD,mCAAuC;AAEvC,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAY,CAAC;AAE9B,iIAAiI;AACjI,IAAA,mBAAU,EACR,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAA+B,EACpC,IAAI,CAAC,QAA8B,CACpC,CAAC;AAEF,0BAA0B;AAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACd,oEAAoE;IACpE,kDAAkD;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,KAAK,SAAS,EAAE,CAAC;CAClB","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;AAEnC,oDAAqD;AACrD,mCAAuC;AAEvC,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAY,CAAC;AAE9B,iIAAiI;AACjI,IAAA,mBAAU,EACR,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAA+B,EACpC,IAAI,CAAC,QAA8B,CACpC,CAAC;AAEF,0BAA0B;AAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACd,oEAAoE;IACpE,kDAAkD;IAClD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,KAAK,SAAS,EAAE,CAAC;CAClB","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { initLogger } from '@subql/node-core/logger';\nimport { yargsOptions } from './yargs';\n\nconst { argv } = yargsOptions;\n\n// initLogger is imported from true path, to make sure getLogger (or other logger values that relies on logger) isn't initialised\ninitLogger(\n argv.debug,\n argv.outputFmt as 'json' | 'colored',\n argv.logLevel as string | undefined,\n);\n\n// Check for no subcommand\nif (!argv._[0]) {\n // Lazy import, to allow logger to be initialised before bootstrap()\n // As bootstrap runs services that requires logger\n const { bootstrap } = require('./init');\n void bootstrap();\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.forceCleanInit = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forceClean.init.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAA8C;AAC9C,2DAAuD;AAEhD,MAAM,cAAc,GAAG,GAAkB,EAAE,CAAC,IAAA,sBAAU,EAAC,oCAAgB,CAAC,CAAC;AAAnE,QAAA,cAAc,kBAAqD","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"forceClean.init.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAA8C;AAC9C,2DAAuD;AAEhD,MAAM,cAAc,GAAG,GAAkB,EAAE,CAAC,IAAA,sBAAU,EAAC,oCAAgB,CAAC,CAAC;AAAnE,QAAA,cAAc,kBAAqD","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { forceClean } from '@subql/node-core';\nimport { ForceCleanModule } from './forceClean.module';\n\nexport const forceCleanInit = (): Promise<void> => forceClean(ForceCleanModule);\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forceClean.module.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,gDAAqE;AACrE,oEAAgE;AAUzD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAR5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAQ,CAAC,OAAO,EAAE;YAClB,kCAAe,CAAC,QAAQ,EAAE;YAC1B,mCAAuB;SACxB;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,gBAAgB,CAAG;AAAnB,4CAAgB","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"forceClean.module.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,gDAAqE;AACrE,oEAAgE;AAUzD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAR5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAQ,CAAC,OAAO,EAAE;YAClB,kCAAe,CAAC,QAAQ,EAAE;YAC1B,mCAAuB;SACxB;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,gBAAgB,CAAG;AAAnB,4CAAgB","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { DbModule, ForceCleanFeatureModule } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\n\n@Module({\n imports: [\n DbModule.forRoot(),\n ConfigureModule.register(),\n ForceCleanFeatureModule,\n ],\n controllers: [],\n})\nexport class ForceCleanModule {}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forceClean.service.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"forceClean.service.js","sourceRoot":"","sources":["../../src/subcommands/forceClean.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,gDAM0B;AAC1B,wCAAuD;AACvD,oDAA2D;AAG3D,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,aAAa,CAAC,CAAC;AAGjC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAET;IACA;IACqB;IAHxC,YACmB,SAAoB,EACpB,UAAsB,EACD,OAAwB;QAF7C,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;QACD,YAAO,GAAP,OAAO,CAAiB;IAC7D,CAAC;IAEJ,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAwB,EAC3C,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CACf,CAAC;QACF,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,MAAM,cAAc,GAAG,IAAA,+BAAuB,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpE,IAAI;YACF,kDAAkD;YAClD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,MAAM,GAAG,EAAE;gBAC7C,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YAEH,yDAAyD;YACzD,qFAAqF;YACrF,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,sBAAsB,GAAG,GAAG,MAAM,SAAS,IAAA,0BAAc,EAC7D,CAAC,CAAC,IAAI,CACP,EAAE,CAAC;gBACJ,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAiB,EAC/C,IAAI,CAAC,SAAS,EACd,sBAAsB,CACvB,CAAC;gBACF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;yBACd,sBAAsB;WACpC,CAAC,CAAC;iBACF;YACH,CAAC,CAAC,CACH,CAAC;YAEF,sDAAsD;YACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CACxC;mHAC2G,CAC5G,CAAC;YAEF,IAAK,OAAO,CAAC,CAAC,CAAS,CAAC,QAAQ,GAAG,CAAC,EAAE;gBACpC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CACxB;;qCAE2B,EAC3B;oBACE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;oBACpD,IAAI,EAAE,wBAAU,CAAC,MAAM;iBACxB,CACF,CAAC;aACH;YAED,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SAChD;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;SACX;IACH,CAAC;CACF,CAAA;AApEY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAFC,uBAAS;QACR,sBAAU;GAH9B,iBAAiB,CAoE7B;AApEY,8CAAiB","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport {\n getLogger,\n NodeConfig,\n getExistingProjectSchema,\n enumNameToHash,\n getEnumDeprecated,\n} from '@subql/node-core';\nimport { getAllEntitiesRelations } from '@subql/utils';\nimport { QueryTypes, Sequelize } from '@subql/x-sequelize';\nimport { SubqueryProject } from '../configure/SubqueryProject';\n\nconst logger = getLogger('Force-clean');\n\n@Injectable()\nexport class ForceCleanService {\n constructor(\n private readonly sequelize: Sequelize,\n private readonly nodeConfig: NodeConfig,\n @Inject('ISubqueryProject') protected project: SubqueryProject,\n ) {}\n\n async forceClean(): Promise<void> {\n const schema = await getExistingProjectSchema(\n this.nodeConfig,\n this.sequelize,\n );\n if (!schema) {\n logger.error('Unable to locate schema');\n throw new Error('Schema does not exist.');\n }\n const modelsRelation = getAllEntitiesRelations(this.project.schema);\n\n try {\n // drop existing project schema and metadata table\n await this.sequelize.dropSchema(`\"${schema}\"`, {\n logging: false,\n benchmark: false,\n });\n\n // TODO, remove this soon, once original enum are cleaned\n // Deprecate, now enums are moved under schema, drop schema will remove project enums\n await Promise.all(\n modelsRelation.enums.map(async (e) => {\n const enumTypeNameDeprecated = `${schema}_enum_${enumNameToHash(\n e.name,\n )}`;\n const resultsDeprecated = await getEnumDeprecated(\n this.sequelize,\n enumTypeNameDeprecated,\n );\n if (resultsDeprecated.length !== 0) {\n await this.sequelize.query(`\n DROP TYPE \"${enumTypeNameDeprecated}\";\n `);\n }\n }),\n );\n\n // remove schema from subquery table (might not exist)\n const checker = await this.sequelize.query(\n `\n SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'subqueries'`,\n );\n\n if ((checker[1] as any).rowCount > 0) {\n await this.sequelize.query(\n ` DELETE\n FROM public.subqueries\n WHERE name = :name`,\n {\n replacements: { name: this.nodeConfig.subqueryName },\n type: QueryTypes.DELETE,\n },\n );\n }\n\n logger.info('force cleaned schema and tables');\n } catch (err: any) {\n logger.error(err, 'failed to force clean');\n throw err;\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.reindexInit = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reindex.init.js","sourceRoot":"","sources":["../../src/subcommands/reindex.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAAkE;AAClE,qDAAiD;AAE1C,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAE,EAAE,CAClD,IAAA,uBAAe,EAAC,8BAAa,EAAE,YAAY,CAAC,CAAC;AADlC,QAAA,WAAW,eACuB","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"reindex.init.js","sourceRoot":"","sources":["../../src/subcommands/reindex.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAAkE;AAClE,qDAAiD;AAE1C,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAE,EAAE,CAClD,IAAA,uBAAe,EAAC,8BAAa,EAAE,YAAY,CAAC,CAAC;AADlC,QAAA,WAAW,eACuB","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { reindexInit as baseReindexInit } from '@subql/node-core';\nimport { ReindexModule } from './reindex.module';\n\nexport const reindexInit = (targetHeight: number) =>\n baseReindexInit(ReindexModule, targetHeight);\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -15,9 +15,8 @@ const schedule_1 = require("@nestjs/schedule");
|
|
|
15
15
|
const node_core_1 = require("@subql/node-core");
|
|
16
16
|
const x_sequelize_1 = require("@subql/x-sequelize");
|
|
17
17
|
const algorand_1 = require("../algorand");
|
|
18
|
+
const blockchain_service_1 = require("../blockchain.service");
|
|
18
19
|
const configure_module_1 = require("../configure/configure.module");
|
|
19
|
-
const ds_processor_service_1 = require("../indexer/ds-processor.service");
|
|
20
|
-
const dynamic_ds_service_1 = require("../indexer/dynamic-ds.service");
|
|
21
20
|
let ReindexFeatureModule = class ReindexFeatureModule {
|
|
22
21
|
};
|
|
23
22
|
ReindexFeatureModule = __decorate([
|
|
@@ -26,21 +25,34 @@ ReindexFeatureModule = __decorate([
|
|
|
26
25
|
{
|
|
27
26
|
provide: 'IStoreModelProvider',
|
|
28
27
|
useFactory: node_core_1.storeModelFactory,
|
|
29
|
-
inject: [node_core_1.NodeConfig, event_emitter_1.EventEmitter2,
|
|
28
|
+
inject: [node_core_1.NodeConfig, event_emitter_1.EventEmitter2, x_sequelize_1.Sequelize],
|
|
30
29
|
},
|
|
31
30
|
node_core_1.StoreService,
|
|
32
31
|
node_core_1.ReindexService,
|
|
33
|
-
node_core_1.ForceCleanService,
|
|
34
|
-
dynamic_ds_service_1.DynamicDsService,
|
|
35
32
|
node_core_1.PoiService,
|
|
36
|
-
|
|
33
|
+
node_core_1.ForceCleanService,
|
|
34
|
+
{
|
|
35
|
+
provide: 'UnfinalizedBlocksService',
|
|
36
|
+
useClass: node_core_1.UnfinalizedBlocksService,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
provide: 'DynamicDsService',
|
|
40
|
+
useClass: node_core_1.DynamicDsService,
|
|
41
|
+
},
|
|
42
|
+
node_core_1.DsProcessorService,
|
|
37
43
|
node_core_1.ConnectionPoolStateManager,
|
|
38
44
|
node_core_1.ConnectionPoolService,
|
|
39
45
|
{
|
|
40
|
-
|
|
46
|
+
// Used to work with DI for unfinalizedBlocksService but not used with reindex
|
|
47
|
+
provide: 'APIService',
|
|
41
48
|
useFactory: algorand_1.AlgorandApiService.init,
|
|
42
49
|
inject: ['ISubqueryProject', node_core_1.ConnectionPoolService, event_emitter_1.EventEmitter2],
|
|
43
50
|
},
|
|
51
|
+
{
|
|
52
|
+
provide: 'IBlockchainService',
|
|
53
|
+
useClass: blockchain_service_1.BlockchainService,
|
|
54
|
+
},
|
|
55
|
+
node_core_1.MultiChainRewindService,
|
|
44
56
|
schedule_1.SchedulerRegistry,
|
|
45
57
|
],
|
|
46
58
|
controllers: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reindex.module.js","sourceRoot":"","sources":["../../src/subcommands/reindex.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA0E;AAC1E,+CAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"reindex.module.js","sourceRoot":"","sources":["../../src/subcommands/reindex.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA0E;AAC1E,+CAAqD;AACrD,gDAc0B;AAC1B,oDAA+C;AAC/C,0CAAiD;AACjD,8DAA0D;AAC1D,oEAAgE;AAuCzD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IArChC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,UAAU,EAAE,6BAAiB;gBAC7B,MAAM,EAAE,CAAC,sBAAU,EAAE,6BAAa,EAAE,uBAAS,CAAC;aAC/C;YACD,wBAAY;YACZ,0BAAc;YACd,sBAAU;YACV,6BAAiB;YACjB;gBACE,OAAO,EAAE,0BAA0B;gBACnC,QAAQ,EAAE,oCAAwB;aACnC;YACD;gBACE,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,4BAAgB;aAC3B;YACD,8BAAkB;YAClB,sCAA0B;YAC1B,iCAAqB;YACrB;gBACE,8EAA8E;gBAC9E,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,6BAAkB,CAAC,IAAI;gBACnC,MAAM,EAAE,CAAC,kBAAkB,EAAE,iCAAqB,EAAE,6BAAa,CAAC;aACnE;YACD;gBACE,OAAO,EAAE,oBAAoB;gBAC7B,QAAQ,EAAE,sCAAiB;aAC5B;YACD,mCAAuB;YACvB,4BAAiB;SAClB;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,oBAAoB,CAAG;AAAvB,oDAAoB;AAW1B,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IATzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAQ,CAAC,OAAO,EAAE;YAClB,kCAAe,CAAC,QAAQ,EAAE;YAC1B,oBAAoB;YACpB,kCAAkB,CAAC,OAAO,EAAE;SAC7B;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,aAAa,CAAG;AAAhB,sCAAa","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';\nimport { SchedulerRegistry } from '@nestjs/schedule';\nimport {\n ConnectionPoolService,\n ConnectionPoolStateManager,\n DbModule,\n DsProcessorService,\n DynamicDsService,\n ForceCleanService,\n MultiChainRewindService,\n NodeConfig,\n PoiService,\n ReindexService,\n storeModelFactory,\n StoreService,\n UnfinalizedBlocksService,\n} from '@subql/node-core';\nimport { Sequelize } from '@subql/x-sequelize';\nimport { AlgorandApiService } from '../algorand';\nimport { BlockchainService } from '../blockchain.service';\nimport { ConfigureModule } from '../configure/configure.module';\n\n@Module({\n providers: [\n {\n provide: 'IStoreModelProvider',\n useFactory: storeModelFactory,\n inject: [NodeConfig, EventEmitter2, Sequelize],\n },\n StoreService,\n ReindexService,\n PoiService,\n ForceCleanService,\n {\n provide: 'UnfinalizedBlocksService',\n useClass: UnfinalizedBlocksService,\n },\n {\n provide: 'DynamicDsService',\n useClass: DynamicDsService,\n },\n DsProcessorService,\n ConnectionPoolStateManager,\n ConnectionPoolService,\n {\n // Used to work with DI for unfinalizedBlocksService but not used with reindex\n provide: 'APIService',\n useFactory: AlgorandApiService.init,\n inject: ['ISubqueryProject', ConnectionPoolService, EventEmitter2],\n },\n {\n provide: 'IBlockchainService',\n useClass: BlockchainService,\n },\n MultiChainRewindService,\n SchedulerRegistry,\n ],\n controllers: [],\n})\nexport class ReindexFeatureModule {}\n\n@Module({\n imports: [\n DbModule.forRoot(),\n ConfigureModule.register(),\n ReindexFeatureModule,\n EventEmitterModule.forRoot(),\n ],\n controllers: [],\n})\nexport class ReindexModule {}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.testingInit = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.init.js","sourceRoot":"","sources":["../../src/subcommands/testing.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAA4D;AAC5D,oEAAgE;AAChE,uDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC;AAC7B,KAAK,UAAU,WAAW;IAC/B,IAAI;QACF,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,kCAAe,CAAC,WAAW,EAAE,CAAC;QAEpE,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,IAAA,yBAAa,EAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KAClE;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAVD,kCAUC","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"testing.init.js","sourceRoot":"","sources":["../../src/subcommands/testing.init.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,gDAA4D;AAC5D,oEAAgE;AAChE,uDAAmD;AAEnD,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,SAAS,CAAC,CAAC;AAC7B,KAAK,UAAU,WAAW;IAC/B,IAAI;QACF,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,kCAAe,CAAC,WAAW,EAAE,CAAC;QAEpE,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,IAAA,yBAAa,EAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KAClE;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAVD,kCAUC","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { getLogger, exitWithError } from '@subql/node-core';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { TestingService } from './testing.service';\n\nconst logger = getLogger('Testing');\nexport async function testingInit(): Promise<void> {\n try {\n const { nodeConfig, project } = await ConfigureModule.getInstance();\n\n const testingService = new TestingService(nodeConfig, project);\n await testingService.run();\n } catch (e) {\n exitWithError(new Error('Testing failed', { cause: e }), logger);\n }\n process.exit(0);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -13,54 +13,40 @@ const common_1 = require("@nestjs/common");
|
|
|
13
13
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
14
14
|
const schedule_1 = require("@nestjs/schedule");
|
|
15
15
|
const node_core_1 = require("@subql/node-core");
|
|
16
|
-
const x_sequelize_1 = require("@subql/x-sequelize");
|
|
17
16
|
const algorand_1 = require("../algorand");
|
|
17
|
+
const blockchain_service_1 = require("../blockchain.service");
|
|
18
18
|
const configure_module_1 = require("../configure/configure.module");
|
|
19
|
-
const ds_processor_service_1 = require("../indexer/ds-processor.service");
|
|
20
|
-
const dynamic_ds_service_1 = require("../indexer/dynamic-ds.service");
|
|
21
19
|
const indexer_manager_1 = require("../indexer/indexer.manager");
|
|
22
|
-
const project_service_1 = require("../indexer/project.service");
|
|
23
|
-
const unfinalizedBlocks_service_1 = require("../indexer/unfinalizedBlocks.service");
|
|
24
20
|
let TestingFeatureModule = class TestingFeatureModule {
|
|
25
21
|
};
|
|
26
22
|
TestingFeatureModule = __decorate([
|
|
27
23
|
(0, common_1.Module)({
|
|
24
|
+
imports: [node_core_1.TestingCoreModule],
|
|
28
25
|
providers: [
|
|
29
|
-
node_core_1.InMemoryCacheService,
|
|
30
|
-
node_core_1.StoreService,
|
|
31
|
-
{
|
|
32
|
-
provide: 'IStoreModelProvider',
|
|
33
|
-
useFactory: node_core_1.storeModelFactory,
|
|
34
|
-
inject: [node_core_1.NodeConfig, event_emitter_1.EventEmitter2, schedule_1.SchedulerRegistry, x_sequelize_1.Sequelize],
|
|
35
|
-
},
|
|
36
|
-
event_emitter_1.EventEmitter2,
|
|
37
|
-
node_core_1.PoiService,
|
|
38
|
-
node_core_1.PoiSyncService,
|
|
39
|
-
node_core_1.SandboxService,
|
|
40
|
-
ds_processor_service_1.DsProcessorService,
|
|
41
|
-
dynamic_ds_service_1.DynamicDsService,
|
|
42
|
-
unfinalizedBlocks_service_1.UnfinalizedBlocksService,
|
|
43
|
-
node_core_1.ConnectionPoolStateManager,
|
|
44
|
-
node_core_1.ConnectionPoolService,
|
|
45
26
|
{
|
|
46
27
|
provide: 'IProjectService',
|
|
47
|
-
useClass:
|
|
28
|
+
useClass: node_core_1.ProjectService,
|
|
48
29
|
},
|
|
49
30
|
{
|
|
50
|
-
provide:
|
|
31
|
+
provide: 'APIService',
|
|
51
32
|
useFactory: algorand_1.AlgorandApiService.init,
|
|
52
33
|
inject: ['ISubqueryProject', node_core_1.ConnectionPoolService, event_emitter_1.EventEmitter2],
|
|
53
34
|
},
|
|
54
|
-
schedule_1.SchedulerRegistry,
|
|
55
|
-
node_core_1.TestRunner,
|
|
56
35
|
{
|
|
57
|
-
provide: '
|
|
58
|
-
|
|
36
|
+
provide: 'IUnfinalizedBlocksService',
|
|
37
|
+
useClass: node_core_1.UnfinalizedBlocksService,
|
|
59
38
|
},
|
|
39
|
+
{
|
|
40
|
+
provide: 'IBlockchainService',
|
|
41
|
+
useClass: blockchain_service_1.BlockchainService,
|
|
42
|
+
},
|
|
43
|
+
node_core_1.TestRunner,
|
|
60
44
|
{
|
|
61
45
|
provide: 'IIndexerManager',
|
|
62
46
|
useClass: indexer_manager_1.IndexerManager,
|
|
63
47
|
},
|
|
48
|
+
node_core_1.DsProcessorService,
|
|
49
|
+
node_core_1.DynamicDsService,
|
|
64
50
|
],
|
|
65
51
|
controllers: [],
|
|
66
52
|
exports: [node_core_1.TestRunner],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.module.js","sourceRoot":"","sources":["../../src/subcommands/testing.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA0E;AAC1E,+
|
|
1
|
+
{"version":3,"file":"testing.module.js","sourceRoot":"","sources":["../../src/subcommands/testing.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA0E;AAC1E,+CAAkD;AAClD,gDAS0B;AAC1B,0CAAiD;AACjD,8DAA0D;AAC1D,oEAAgE;AAChE,gEAA4D;AAiCrD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAAG,CAAA;AAAvB,oBAAoB;IA/BhC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAAiB,CAAC;QAC5B,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,0BAAc;aACzB;YACD;gBACE,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,6BAAkB,CAAC,IAAI;gBACnC,MAAM,EAAE,CAAC,kBAAkB,EAAE,iCAAqB,EAAE,6BAAa,CAAC;aACnE;YACD;gBACE,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,oCAAwB;aACnC;YACD;gBACE,OAAO,EAAE,oBAAoB;gBAC7B,QAAQ,EAAE,sCAAiB;aAC5B;YACD,sBAAU;YACV;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,gCAAc;aACzB;YACD,8BAAkB;YAClB,4BAAgB;SACjB;QACD,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,CAAC,sBAAU,CAAC;KACtB,CAAC;GACW,oBAAoB,CAAG;AAAvB,oDAAoB;AAY1B,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IAVzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAQ,CAAC,OAAO,EAAE;YAClB,kCAAe,CAAC,QAAQ,EAAE;YAC1B,kCAAkB,CAAC,OAAO,EAAE;YAC5B,yBAAc,CAAC,OAAO,EAAE;YACxB,oBAAoB;SACrB;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,aAAa,CAAG;AAAhB,sCAAa","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport {\n ConnectionPoolService,\n DbModule,\n TestRunner,\n DsProcessorService,\n DynamicDsService,\n UnfinalizedBlocksService,\n ProjectService,\n TestingCoreModule,\n} from '@subql/node-core';\nimport { AlgorandApiService } from '../algorand';\nimport { BlockchainService } from '../blockchain.service';\nimport { ConfigureModule } from '../configure/configure.module';\nimport { IndexerManager } from '../indexer/indexer.manager';\n\n@Module({\n imports: [TestingCoreModule],\n providers: [\n {\n provide: 'IProjectService',\n useClass: ProjectService,\n },\n {\n provide: 'APIService',\n useFactory: AlgorandApiService.init,\n inject: ['ISubqueryProject', ConnectionPoolService, EventEmitter2],\n },\n {\n provide: 'IUnfinalizedBlocksService',\n useClass: UnfinalizedBlocksService,\n },\n {\n provide: 'IBlockchainService',\n useClass: BlockchainService,\n },\n TestRunner,\n {\n provide: 'IIndexerManager',\n useClass: IndexerManager,\n },\n DsProcessorService,\n DynamicDsService,\n ],\n controllers: [],\n exports: [TestRunner],\n})\nexport class TestingFeatureModule {}\n\n@Module({\n imports: [\n DbModule.forRoot(),\n ConfigureModule.register(),\n EventEmitterModule.forRoot(),\n ScheduleModule.forRoot(),\n TestingFeatureModule,\n ],\n controllers: [],\n})\nexport class TestingModule {}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
5
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -18,7 +18,6 @@ exports.TestingService = void 0;
|
|
|
18
18
|
const common_1 = require("@nestjs/common");
|
|
19
19
|
const core_1 = require("@nestjs/core");
|
|
20
20
|
const node_core_1 = require("@subql/node-core");
|
|
21
|
-
const algorand_1 = require("../algorand");
|
|
22
21
|
const testing_module_1 = require("./testing.module");
|
|
23
22
|
let TestingService = class TestingService extends node_core_1.TestingService {
|
|
24
23
|
constructor(nodeConfig, project) {
|
|
@@ -30,7 +29,6 @@ let TestingService = class TestingService extends node_core_1.TestingService {
|
|
|
30
29
|
});
|
|
31
30
|
await testContext.init();
|
|
32
31
|
const projectService = testContext.get('IProjectService');
|
|
33
|
-
const apiService = testContext.get(algorand_1.AlgorandApiService);
|
|
34
32
|
// Initialise async services, we do this here rather than in factories, so we can capture one off events
|
|
35
33
|
await projectService.init();
|
|
36
34
|
return [testContext.close.bind(testContext), testContext.get(node_core_1.TestRunner)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.service.js","sourceRoot":"","sources":["../../src/subcommands/testing.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,uCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"testing.service.js","sourceRoot":"","sources":["../../src/subcommands/testing.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,uCAA2C;AAC3C,gDAO0B;AAM1B,qDAAiD;AAG1C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,0BAKnC;IACC,YACE,UAAsB,EACM,OAAwB;QAEpD,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa;QAWjB,MAAM,WAAW,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAC5D,8BAAa,EACb;YACE,MAAM,EAAE,IAAI,sBAAU,EAAE;SACzB,CACF,CAAC;QAEF,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,cAAc,GAAmB,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE1E,wGAAwG;QACxG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAE5B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,sBAAU,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAA2B,EAC3B,OAAe,EACf,cAA8B;QAE9B,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;CACF,CAAA;AAhDY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCADf,sBAAU;GAPb,cAAc,CAgD1B;AAhDY,wCAAc","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { NestFactory } from '@nestjs/core';\nimport {\n NodeConfig,\n TestingService as BaseTestingService,\n NestLogger,\n TestRunner,\n IBlock,\n ProjectService,\n} from '@subql/node-core';\nimport { AlgorandDataSource } from '@subql/types-algorand';\nimport { AlgorandApi, SafeAPIService } from '../algorand';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { IndexerManager } from '../indexer/indexer.manager';\nimport { BlockContent } from '../indexer/types';\nimport { TestingModule } from './testing.module';\n\n@Injectable()\nexport class TestingService extends BaseTestingService<\n AlgorandApi,\n SafeAPIService,\n BlockContent,\n AlgorandDataSource\n> {\n constructor(\n nodeConfig: NodeConfig,\n @Inject('ISubqueryProject') project: SubqueryProject,\n ) {\n super(nodeConfig, project);\n }\n\n async getTestRunner(): Promise<\n [\n close: () => Promise<void>,\n runner: TestRunner<\n AlgorandApi,\n SafeAPIService,\n BlockContent,\n AlgorandDataSource\n >,\n ]\n > {\n const testContext = await NestFactory.createApplicationContext(\n TestingModule,\n {\n logger: new NestLogger(),\n },\n );\n\n await testContext.init();\n\n const projectService: ProjectService = testContext.get('IProjectService');\n\n // Initialise async services, we do this here rather than in factories, so we can capture one off events\n await projectService.init();\n\n return [testContext.close.bind(testContext), testContext.get(TestRunner)];\n }\n\n async indexBlock(\n block: IBlock<BlockContent>,\n handler: string,\n indexerManager: IndexerManager,\n ): Promise<void> {\n await indexerManager.indexBlock(block, this.getDsWithHandler(handler));\n }\n}\n"]}
|
package/dist/utils/project.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.isCustomHandler = exports.isBaseHandler = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,4DAKgC;AAEhC,SAAgB,aAAa,CAC3B,OAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAAS,qCAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAJD,sCAIC;AAED,SAAgB,eAAe,CAC7B,OAAwB;IAExB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAJD,0CAIC","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,4DAKgC;AAEhC,SAAgB,aAAa,CAC3B,OAAwB;IAExB,OAAO,MAAM,CAAC,MAAM,CAAS,qCAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAJD,sCAIC;AAED,SAAgB,eAAe,CAC7B,OAAwB;IAExB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAJD,0CAIC","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n AlgorandRuntimeHandler,\n AlgorandCustomHandler,\n AlgorandHandler,\n AlgorandHandlerKind,\n} from '@subql/common-algorand';\n\nexport function isBaseHandler(\n handler: AlgorandHandler,\n): handler is AlgorandRuntimeHandler {\n return Object.values<string>(AlgorandHandlerKind).includes(handler.kind);\n}\n\nexport function isCustomHandler(\n handler: AlgorandHandler,\n): handler is AlgorandCustomHandler {\n return !isBaseHandler(handler);\n}\n"]}
|
package/dist/yargs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright 2020-
|
|
2
|
+
// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.yargsOptions = void 0;
|
package/dist/yargs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yargs.js","sourceRoot":"","sources":["../src/yargs.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,kDAAsD;AAEzC,QAAA,YAAY,GAAG,IAAA,oBAAY,EAAC;IACvC,WAAW,EAAE,GAAG,EAAE;QAChB,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,cAAc,EAAE,GAAG,EAAE;QACnB,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACpE,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,WAAW,EAAE,CAAC,YAAoB,EAAE,EAAE;QACpC,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF,CAAC,CAAC","sourcesContent":["// Copyright 2020-
|
|
1
|
+
{"version":3,"file":"yargs.js","sourceRoot":"","sources":["../src/yargs.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,kDAAsD;AAEzC,QAAA,YAAY,GAAG,IAAA,oBAAY,EAAC;IACvC,WAAW,EAAE,GAAG,EAAE;QAChB,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,cAAc,EAAE,GAAG,EAAE;QACnB,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACpE,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,WAAW,EAAE,CAAC,YAAoB,EAAE,EAAE;QACpC,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF,CAAC,CAAC","sourcesContent":["// Copyright 2020-2025 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { yargsBuilder } from '@subql/node-core/yargs';\n\nexport const yargsOptions = yargsBuilder({\n initTesting: () => {\n // lazy import to make sure logger is instantiated before all other services\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { testingInit } = require('./subcommands/testing.init');\n return testingInit();\n },\n initForceClean: () => {\n // lazy import to make sure logger is instantiated before all other services\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { forceCleanInit } = require('./subcommands/forceClean.init');\n return forceCleanInit();\n },\n initReindex: (targetHeight: number) => {\n // lazy import to make sure logger is instantiated before all other services\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { reindexInit } = require('./subcommands/reindex.init');\n return reindexInit(targetHeight);\n },\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subql/node-algorand",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Ian He",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"subql-node-algorand": "./bin/run"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@nestjs/common": "^
|
|
23
|
-
"@nestjs/core": "^
|
|
22
|
+
"@nestjs/common": "^11.0.16",
|
|
23
|
+
"@nestjs/core": "^11.0.10",
|
|
24
24
|
"@nestjs/event-emitter": "^2.0.0",
|
|
25
|
-
"@nestjs/platform-express": "^
|
|
26
|
-
"@nestjs/schedule": "^
|
|
27
|
-
"@subql/common": "^5.
|
|
28
|
-
"@subql/common-algorand": "4.
|
|
29
|
-
"@subql/node-core": "^
|
|
30
|
-
"@subql/types-algorand": "4.0
|
|
25
|
+
"@nestjs/platform-express": "^11.0.10",
|
|
26
|
+
"@nestjs/schedule": "^5.0.1",
|
|
27
|
+
"@subql/common": "^5.5.0",
|
|
28
|
+
"@subql/common-algorand": "4.4.0",
|
|
29
|
+
"@subql/node-core": "^18.0.3",
|
|
30
|
+
"@subql/types-algorand": "4.1.0",
|
|
31
31
|
"algosdk": "^2.8.0",
|
|
32
32
|
"lodash": "^4.17.21",
|
|
33
33
|
"reflect-metadata": "^0.1.13",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { IBlockDispatcher } from '@subql/node-core';
|
|
2
|
-
import { AlgorandBlock } from '@subql/types-algorand';
|
|
3
|
-
export interface IAlgorandBlockDispatcher extends IBlockDispatcher<AlgorandBlock> {
|
|
4
|
-
init(onDynamicDsCreated: (height: number) => Promise<void> | void): Promise<void>;
|
|
5
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"algorand-block-dispatcher.js","sourceRoot":"","sources":["../../../src/indexer/blockDispatcher/algorand-block-dispatcher.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { IBlockDispatcher } from '@subql/node-core';\nimport { AlgorandBlock } from '@subql/types-algorand';\n\nexport interface IAlgorandBlockDispatcher\n extends IBlockDispatcher<AlgorandBlock> {\n init(\n onDynamicDsCreated: (height: number) => Promise<void> | void,\n ): Promise<void>;\n}\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
-
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
3
|
-
import { NodeConfig, IStoreModelProvider, StoreService, IProjectService, PoiSyncService, BlockDispatcher, ProcessBlockResponse, IProjectUpgradeService, IBlock } from '@subql/node-core';
|
|
4
|
-
import { AlgorandBlock, AlgorandDataSource } from '@subql/types-algorand';
|
|
5
|
-
import { AlgorandApiService } from '../../algorand';
|
|
6
|
-
import { SubqueryProject } from '../../configure/SubqueryProject';
|
|
7
|
-
import { IndexerManager } from '../indexer.manager';
|
|
8
|
-
/**
|
|
9
|
-
* @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing
|
|
10
|
-
*/
|
|
11
|
-
export declare class BlockDispatcherService extends BlockDispatcher<AlgorandBlock, AlgorandDataSource> implements OnApplicationShutdown {
|
|
12
|
-
private indexerManager;
|
|
13
|
-
constructor(apiService: AlgorandApiService, nodeConfig: NodeConfig, indexerManager: IndexerManager, eventEmitter: EventEmitter2, projectService: IProjectService<AlgorandDataSource>, projectUpgradeService: IProjectUpgradeService, storeService: StoreService, storeModelProvider: IStoreModelProvider, poiSyncService: PoiSyncService, project: SubqueryProject);
|
|
14
|
-
protected getBlockHeight(block: AlgorandBlock): number;
|
|
15
|
-
protected indexBlock(block: IBlock<AlgorandBlock>): Promise<ProcessBlockResponse>;
|
|
16
|
-
protected getBlockSize(block: IBlock<AlgorandBlock>): number;
|
|
17
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors
|
|
3
|
-
// SPDX-License-Identifier: GPL-3.0
|
|
4
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
9
|
-
};
|
|
10
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
11
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
12
|
-
};
|
|
13
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
14
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.BlockDispatcherService = void 0;
|
|
18
|
-
const common_1 = require("@nestjs/common");
|
|
19
|
-
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
20
|
-
const node_core_1 = require("@subql/node-core");
|
|
21
|
-
const algorand_1 = require("../../algorand");
|
|
22
|
-
const indexer_manager_1 = require("../indexer.manager");
|
|
23
|
-
const types_1 = require("../types");
|
|
24
|
-
/**
|
|
25
|
-
* @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing
|
|
26
|
-
*/
|
|
27
|
-
let BlockDispatcherService = class BlockDispatcherService extends node_core_1.BlockDispatcher {
|
|
28
|
-
indexerManager;
|
|
29
|
-
constructor(apiService, nodeConfig, indexerManager, eventEmitter, projectService, projectUpgradeService, storeService, storeModelProvider, poiSyncService, project) {
|
|
30
|
-
super(nodeConfig, eventEmitter, projectService, projectUpgradeService, storeService, storeModelProvider, poiSyncService, project, apiService.fetchBlocks.bind(apiService));
|
|
31
|
-
this.indexerManager = indexerManager;
|
|
32
|
-
}
|
|
33
|
-
getBlockHeight(block) {
|
|
34
|
-
return block.round;
|
|
35
|
-
}
|
|
36
|
-
async indexBlock(block) {
|
|
37
|
-
return this.indexerManager.indexBlock(block, await this.projectService.getDataSources(block.getHeader().blockHeight));
|
|
38
|
-
}
|
|
39
|
-
getBlockSize(block) {
|
|
40
|
-
return (0, types_1.getBlockSize)(block.block);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
BlockDispatcherService = __decorate([
|
|
44
|
-
(0, common_1.Injectable)(),
|
|
45
|
-
__param(4, (0, common_1.Inject)('IProjectService')),
|
|
46
|
-
__param(5, (0, common_1.Inject)('IProjectUpgradeService')),
|
|
47
|
-
__param(7, (0, common_1.Inject)('IStoreModelProvider')),
|
|
48
|
-
__param(9, (0, common_1.Inject)('ISubqueryProject')),
|
|
49
|
-
__metadata("design:paramtypes", [algorand_1.AlgorandApiService,
|
|
50
|
-
node_core_1.NodeConfig,
|
|
51
|
-
indexer_manager_1.IndexerManager,
|
|
52
|
-
event_emitter_1.EventEmitter2, Object, Object, node_core_1.StoreService, Object, node_core_1.PoiSyncService, Object])
|
|
53
|
-
], BlockDispatcherService);
|
|
54
|
-
exports.BlockDispatcherService = BlockDispatcherService;
|
|
55
|
-
//# sourceMappingURL=block-dispatcher.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-dispatcher.service.js","sourceRoot":"","sources":["../../../src/indexer/blockDispatcher/block-dispatcher.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAA2E;AAC3E,yDAAsD;AACtD,gDAU0B;AAE1B,6CAAoD;AAEpD,wDAAoD;AACpD,oCAAwC;AAExC;;GAEG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,2BAAkD;IAMhD;IAHV,YACE,UAA8B,EAC9B,UAAsB,EACd,cAA8B,EACtC,YAA2B,EAE3B,cAAmD,EAEnD,qBAA6C,EAC7C,YAA0B,EACK,kBAAuC,EACtE,cAA8B,EACF,OAAwB;QAEpD,KAAK,CACH,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CACxC,CAAC;QArBM,mBAAc,GAAd,cAAc,CAAgB;IAsBxC,CAAC;IAES,cAAc,CAAC,KAAoB;QAC3C,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,KAA4B;QAE5B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CACnC,KAAK,EACL,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CACxE,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,KAA4B;QACjD,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AA/CY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAA;IAGhC,WAAA,IAAA,eAAM,EAAC,qBAAqB,CAAC,CAAA;IAE7B,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAXf,6BAAkB;QAClB,sBAAU;QACE,gCAAc;QACxB,6BAAa,kBAKb,wBAAY,UAEV,0BAAc;GAfrB,sBAAsB,CA+ClC;AA/CY,wDAAsB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n NodeConfig,\n IStoreModelProvider,\n StoreService,\n IProjectService,\n PoiSyncService,\n BlockDispatcher,\n ProcessBlockResponse,\n IProjectUpgradeService,\n IBlock,\n} from '@subql/node-core';\nimport { AlgorandBlock, AlgorandDataSource } from '@subql/types-algorand';\nimport { AlgorandApiService } from '../../algorand';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { IndexerManager } from '../indexer.manager';\nimport { getBlockSize } from '../types';\n\n/**\n * @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing\n */\n@Injectable()\nexport class BlockDispatcherService\n extends BlockDispatcher<AlgorandBlock, AlgorandDataSource>\n implements OnApplicationShutdown\n{\n constructor(\n apiService: AlgorandApiService,\n nodeConfig: NodeConfig,\n private indexerManager: IndexerManager,\n eventEmitter: EventEmitter2,\n @Inject('IProjectService')\n projectService: IProjectService<AlgorandDataSource>,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService,\n storeService: StoreService,\n @Inject('IStoreModelProvider') storeModelProvider: IStoreModelProvider,\n poiSyncService: PoiSyncService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n ) {\n super(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n storeService,\n storeModelProvider,\n poiSyncService,\n project,\n apiService.fetchBlocks.bind(apiService),\n );\n }\n\n protected getBlockHeight(block: AlgorandBlock): number {\n return block.round;\n }\n\n protected async indexBlock(\n block: IBlock<AlgorandBlock>,\n ): Promise<ProcessBlockResponse> {\n return this.indexerManager.indexBlock(\n block,\n await this.projectService.getDataSources(block.getHeader().blockHeight),\n );\n }\n\n protected getBlockSize(block: IBlock<AlgorandBlock>): number {\n return getBlockSize(block.block);\n }\n}\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { IAlgorandBlockDispatcher } from './algorand-block-dispatcher';
|
|
2
|
-
import { BlockDispatcherService } from './block-dispatcher.service';
|
|
3
|
-
import { WorkerBlockDispatcherService } from './worker-block-dispatcher.service';
|
|
4
|
-
export { IAlgorandBlockDispatcher, BlockDispatcherService, WorkerBlockDispatcherService, };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors
|
|
3
|
-
// SPDX-License-Identifier: GPL-3.0
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.WorkerBlockDispatcherService = exports.BlockDispatcherService = void 0;
|
|
6
|
-
const block_dispatcher_service_1 = require("./block-dispatcher.service");
|
|
7
|
-
Object.defineProperty(exports, "BlockDispatcherService", { enumerable: true, get: function () { return block_dispatcher_service_1.BlockDispatcherService; } });
|
|
8
|
-
const worker_block_dispatcher_service_1 = require("./worker-block-dispatcher.service");
|
|
9
|
-
Object.defineProperty(exports, "WorkerBlockDispatcherService", { enumerable: true, get: function () { return worker_block_dispatcher_service_1.WorkerBlockDispatcherService; } });
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/indexer/blockDispatcher/index.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAGnC,yEAAoE;AAKlE,uGALO,iDAAsB,OAKP;AAJxB,uFAAiF;AAK/E,6GALO,8DAA4B,OAKP","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { IAlgorandBlockDispatcher } from './algorand-block-dispatcher';\nimport { BlockDispatcherService } from './block-dispatcher.service';\nimport { WorkerBlockDispatcherService } from './worker-block-dispatcher.service';\n\nexport {\n IAlgorandBlockDispatcher,\n BlockDispatcherService,\n WorkerBlockDispatcherService,\n};\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
-
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
3
|
-
import { NodeConfig, StoreService, PoiSyncService, IProjectService, WorkerBlockDispatcher, ConnectionPoolStateManager, IProjectUpgradeService, InMemoryCacheService, MonitorServiceInterface, IStoreModelProvider } from '@subql/node-core';
|
|
4
|
-
import { AlgorandBlock, AlgorandDataSource } from '@subql/types-algorand';
|
|
5
|
-
import { AlgorandApiConnection } from '../../algorand';
|
|
6
|
-
import { SubqueryProject } from '../../configure/SubqueryProject';
|
|
7
|
-
import { DynamicDsService } from '../dynamic-ds.service';
|
|
8
|
-
import { UnfinalizedBlocksService } from '../unfinalizedBlocks.service';
|
|
9
|
-
import { IIndexerWorker } from '../worker/worker';
|
|
10
|
-
import { FetchBlockResponse } from '../worker/worker.service';
|
|
11
|
-
type IndexerWorker = IIndexerWorker & {
|
|
12
|
-
terminate: () => Promise<number>;
|
|
13
|
-
};
|
|
14
|
-
export declare class WorkerBlockDispatcherService extends WorkerBlockDispatcher<AlgorandDataSource, IndexerWorker, AlgorandBlock> implements OnApplicationShutdown {
|
|
15
|
-
constructor(nodeConfig: NodeConfig, eventEmitter: EventEmitter2, projectService: IProjectService<AlgorandDataSource>, projectUpgadeService: IProjectUpgradeService, cacheService: InMemoryCacheService, storeService: StoreService, storeModelProvider: IStoreModelProvider, poiSyncService: PoiSyncService, project: SubqueryProject, dynamicDsService: DynamicDsService, unfinalizedBlocksService: UnfinalizedBlocksService, connectionPoolState: ConnectionPoolStateManager<AlgorandApiConnection>, monitorService?: MonitorServiceInterface);
|
|
16
|
-
protected fetchBlock(worker: IndexerWorker, height: number): Promise<FetchBlockResponse>;
|
|
17
|
-
}
|
|
18
|
-
export {};
|