@subql/node-ethereum 4.7.4-0 → 4.7.4-2
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 +2 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/app.module.js +9 -4
- package/dist/app.module.js.map +1 -1
- package/dist/configure/SubqueryProject.d.ts +5 -18
- package/dist/configure/SubqueryProject.js +16 -101
- 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/ethereum/api.service.ethereum.js +1 -3
- package/dist/ethereum/api.service.ethereum.js.map +1 -1
- package/dist/indexer/blockDispatcher/block-dispatcher.service.js +1 -3
- package/dist/indexer/blockDispatcher/block-dispatcher.service.js.map +1 -1
- package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js +1 -4
- package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js.map +1 -1
- package/dist/indexer/dictionary/ethDictionary.service.js +1 -3
- package/dist/indexer/dictionary/ethDictionary.service.js.map +1 -1
- package/dist/indexer/dynamic-ds.service.js +1 -3
- package/dist/indexer/dynamic-ds.service.js.map +1 -1
- package/dist/indexer/fetch.module.js +1 -13
- package/dist/indexer/fetch.module.js.map +1 -1
- package/dist/indexer/fetch.service.d.ts +2 -2
- package/dist/indexer/fetch.service.js +5 -6
- package/dist/indexer/fetch.service.js.map +1 -1
- package/dist/indexer/project.service.js +1 -3
- package/dist/indexer/project.service.js.map +1 -1
- package/dist/indexer/worker/worker-fetch.module.js +1 -14
- package/dist/indexer/worker/worker-fetch.module.js.map +1 -1
- package/dist/indexer/worker/worker.module.js +1 -0
- package/dist/indexer/worker/worker.module.js.map +1 -1
- package/dist/subcommands/testing.service.js +1 -3
- package/dist/subcommands/testing.service.js.map +1 -1
- package/package.json +3 -3
- package/dist/admin/admin.module.d.ts +0 -2
- package/dist/admin/admin.module.js +0 -25
- package/dist/admin/admin.module.js.map +0 -1
- package/dist/meta/meta.controller.d.ts +0 -21
- package/dist/meta/meta.controller.js +0 -37
- package/dist/meta/meta.controller.js.map +0 -1
- package/dist/meta/meta.module.d.ts +0 -2
- package/dist/meta/meta.module.js +0 -28
- package/dist/meta/meta.module.js.map +0 -1
- package/dist/meta/meta.service.d.ts +0 -24
- package/dist/meta/meta.service.js +0 -123
- package/dist/meta/meta.service.js.map +0 -1
|
@@ -20,7 +20,6 @@ const event_emitter_1 = require("@nestjs/event-emitter");
|
|
|
20
20
|
const schedule_1 = require("@nestjs/schedule");
|
|
21
21
|
const common_ethereum_1 = require("@subql/common-ethereum");
|
|
22
22
|
const node_core_1 = require("@subql/node-core");
|
|
23
|
-
const SubqueryProject_1 = require("../configure/SubqueryProject");
|
|
24
23
|
const utils_ethereum_1 = require("../ethereum/utils.ethereum");
|
|
25
24
|
const ethDictionary_service_1 = require("./dictionary/ethDictionary.service");
|
|
26
25
|
const project_service_1 = require("./project.service");
|
|
@@ -29,8 +28,8 @@ const BLOCK_TIME_VARIANCE = 5000;
|
|
|
29
28
|
const INTERVAL_PERCENT = 0.9;
|
|
30
29
|
let FetchService = class FetchService extends node_core_1.BaseFetchService {
|
|
31
30
|
apiService;
|
|
32
|
-
constructor(apiService, nodeConfig, projectService, project, blockDispatcher, dictionaryService, unfinalizedBlocksService, eventEmitter, schedulerRegistry) {
|
|
33
|
-
super(nodeConfig, projectService, project.network, blockDispatcher, dictionaryService, eventEmitter, schedulerRegistry, unfinalizedBlocksService);
|
|
31
|
+
constructor(apiService, nodeConfig, projectService, project, blockDispatcher, dictionaryService, unfinalizedBlocksService, eventEmitter, schedulerRegistry, storeCacheService) {
|
|
32
|
+
super(nodeConfig, projectService, project.network, blockDispatcher, dictionaryService, eventEmitter, schedulerRegistry, unfinalizedBlocksService, storeCacheService);
|
|
34
33
|
this.apiService = apiService;
|
|
35
34
|
}
|
|
36
35
|
get api() {
|
|
@@ -66,11 +65,11 @@ FetchService = __decorate([
|
|
|
66
65
|
__param(4, (0, common_1.Inject)('IBlockDispatcher')),
|
|
67
66
|
__metadata("design:paramtypes", [node_core_1.ApiService,
|
|
68
67
|
node_core_1.NodeConfig,
|
|
69
|
-
project_service_1.ProjectService,
|
|
70
|
-
SubqueryProject_1.SubqueryProject, Object, ethDictionary_service_1.EthDictionaryService,
|
|
68
|
+
project_service_1.ProjectService, Object, Object, ethDictionary_service_1.EthDictionaryService,
|
|
71
69
|
unfinalizedBlocks_service_1.UnfinalizedBlocksService,
|
|
72
70
|
event_emitter_1.EventEmitter2,
|
|
73
|
-
schedule_1.SchedulerRegistry
|
|
71
|
+
schedule_1.SchedulerRegistry,
|
|
72
|
+
node_core_1.StoreCacheService])
|
|
74
73
|
], FetchService);
|
|
75
74
|
exports.FetchService = FetchService;
|
|
76
75
|
//# sourceMappingURL=fetch.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.service.js","sourceRoot":"","sources":["../../src/indexer/fetch.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,yDAAsD;AACtD,+CAAqD;AAErD,4DAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"fetch.service.js","sourceRoot":"","sources":["../../src/indexer/fetch.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,yDAAsD;AACtD,+CAAqD;AAErD,4DAAyE;AACzE,gDAQ0B;AAI1B,+DAGoC;AAEpC,8EAA0E;AAC1E,uDAAmD;AACnD,2EAAuE;AAEvE,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAGtB,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAIjC;IAEW;IADV,YACU,UAAsB,EAC9B,UAAsB,EACK,cAA8B,EAC7B,OAAwB,EAEpD,eAAyC,EACzC,iBAAuC,EACvC,wBAAkD,EAClD,YAA2B,EAC3B,iBAAoC,EACpC,iBAAoC;QAEpC,KAAK,CACH,UAAU,EACV,cAAc,EACd,OAAO,CAAC,OAAO,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;QAtBM,eAAU,GAAV,UAAU,CAAY;IAuBhC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACjD,OAAO,IAAA,sCAAqB,EAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAES,KAAK,CAAC,aAAa;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACvC,CAAC;IAED,4DAA4D;IAClD,KAAK,CAAC,gBAAgB;QAC9B,MAAM,cAAc,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAEjE,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAES,UAAU,CAAC,WAA8B;QACjD,OAAO,IAAA,sBAAU,EAAC,WAAW,EAAE,4BAAU,EAAE,qCAAmB,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAES,KAAK,CAAC,mBAAmB;QACjC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAC5C,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,WAAW;QACzB,4CAA4C;QAC5C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAjEY,YAAY;IADxB,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAJP,sBAAU;QAClB,sBAAU;QACqB,gCAAc,kBAItC,4CAAoB;QACb,oDAAwB;QACpC,6BAAa;QACR,4BAAiB;QACjB,6BAAiB;GAhB3B,YAAY,CAiExB;AAjEY,oCAAY","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { SchedulerRegistry } from '@nestjs/schedule';\n\nimport { isCustomDs, EthereumHandlerKind } from '@subql/common-ethereum';\nimport {\n NodeConfig,\n BaseFetchService,\n ApiService,\n getModulos,\n getLogger,\n Header,\n StoreCacheService,\n} from '@subql/node-core';\nimport { EthereumBlock, SubqlDatasource } from '@subql/types-ethereum';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { EthereumApi } from '../ethereum';\nimport {\n calcInterval,\n ethereumBlockToHeader,\n} from '../ethereum/utils.ethereum';\nimport { IEthereumBlockDispatcher } from './blockDispatcher';\nimport { EthDictionaryService } from './dictionary/ethDictionary.service';\nimport { ProjectService } from './project.service';\nimport { UnfinalizedBlocksService } from './unfinalizedBlocks.service';\n\nconst BLOCK_TIME_VARIANCE = 5000;\n\nconst INTERVAL_PERCENT = 0.9;\n\n@Injectable()\nexport class FetchService extends BaseFetchService<\n SubqlDatasource,\n IEthereumBlockDispatcher,\n EthereumBlock\n> {\n constructor(\n private apiService: ApiService,\n nodeConfig: NodeConfig,\n @Inject('IProjectService') projectService: ProjectService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n @Inject('IBlockDispatcher')\n blockDispatcher: IEthereumBlockDispatcher,\n dictionaryService: EthDictionaryService,\n unfinalizedBlocksService: UnfinalizedBlocksService,\n eventEmitter: EventEmitter2,\n schedulerRegistry: SchedulerRegistry,\n storeCacheService: StoreCacheService,\n ) {\n super(\n nodeConfig,\n projectService,\n project.network,\n blockDispatcher,\n dictionaryService,\n eventEmitter,\n schedulerRegistry,\n unfinalizedBlocksService,\n storeCacheService,\n );\n }\n\n get api(): EthereumApi {\n return this.apiService.unsafeApi;\n }\n\n protected async getFinalizedHeader(): Promise<Header> {\n const block = await this.api.getFinalizedBlock();\n return ethereumBlockToHeader(block);\n }\n\n protected async getBestHeight(): Promise<number> {\n return this.api.getBestBlockHeight();\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n protected async getChainInterval(): Promise<number> {\n const CHAIN_INTERVAL = calcInterval(this.api) * INTERVAL_PERCENT;\n\n return Math.min(BLOCK_TIME_VARIANCE, CHAIN_INTERVAL);\n }\n\n protected getModulos(dataSources: SubqlDatasource[]): number[] {\n return getModulos(dataSources, isCustomDs, EthereumHandlerKind.Block);\n }\n\n protected async initBlockDispatcher(): Promise<void> {\n await this.blockDispatcher.init((height) =>\n Promise.resolve(this.resetForNewDs(height)),\n );\n }\n\n protected async preLoopHook(): Promise<void> {\n // Ethereum doesn't need to do anything here\n return Promise.resolve();\n }\n}\n"]}
|
|
@@ -20,7 +20,6 @@ const common_1 = require("@nestjs/common");
|
|
|
20
20
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
21
21
|
const node_core_1 = require("@subql/node-core");
|
|
22
22
|
const x_sequelize_1 = require("@subql/x-sequelize");
|
|
23
|
-
const SubqueryProject_1 = require("../configure/SubqueryProject");
|
|
24
23
|
const ethereum_1 = require("../ethereum");
|
|
25
24
|
const ds_processor_service_1 = require("./ds-processor.service");
|
|
26
25
|
const dynamic_ds_service_1 = require("./dynamic-ds.service");
|
|
@@ -66,8 +65,7 @@ ProjectService = __decorate([
|
|
|
66
65
|
ethereum_1.EthereumApiService,
|
|
67
66
|
node_core_1.PoiService,
|
|
68
67
|
node_core_1.PoiSyncService,
|
|
69
|
-
x_sequelize_1.Sequelize,
|
|
70
|
-
SubqueryProject_1.SubqueryProject, Object, node_core_1.StoreService,
|
|
68
|
+
x_sequelize_1.Sequelize, Object, Object, node_core_1.StoreService,
|
|
71
69
|
node_core_1.NodeConfig,
|
|
72
70
|
dynamic_ds_service_1.DynamicDsService,
|
|
73
71
|
event_emitter_1.EventEmitter2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/indexer/project.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,mDAA8C;AAC9C,2CAAoD;AACpD,yDAAsD;AACtD,gDAS0B;AAC1B,oDAA+C;
|
|
1
|
+
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/indexer/project.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,mDAA8C;AAC9C,2CAAoD;AACpD,yDAAsD;AACtD,gDAS0B;AAC1B,oDAA+C;AAK/C,0CAAiD;AACjD,iEAA4D;AAC5D,6DAAwD;AACxD,2EAAuE;AAEvE,8DAA8D;AAC9D,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAG3D,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,8BAInC;IACW,cAAc,GAAG,cAAc,CAAC;IAE1C,YACE,kBAAsC,EAClB,UAA8B,EACN,UAAsB,EAElE,cAA8B,EACa,SAAoB,EACnC,OAAwB,EAEpD,qBAA8D,EAChB,YAA0B,EACxE,UAAsB,EACtB,gBAAkC,EAClC,YAA2B,EAC3B,uBAAiD;QAEjD,KAAK,CACH,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,OAAO,EACP,qBAAqB,EACrB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAC,WAAoB;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEnE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,0CAA0C;IACrF,CAAC;IAES,eAAe,CAAC,OAAwB;QAChD,+DAA+D;QAC/D,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CACzC,CAAC;IACJ,CAAC;CACF,CAAA;AArBO;IADL,IAAA,oBAAQ,GAAE;;;;0CAGV;AA1CU,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,sBAAU,CAAC,CAAA;IAClB,WAAA,IAAA,eAAM,EAAC,6BAAY,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1C,WAAA,IAAA,eAAM,EAAC,6BAAY,CAAC,CAAC,CAAC,0BAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE9C,WAAA,IAAA,eAAM,EAAC,6BAAY,CAAC,CAAC,CAAC,uBAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACzC,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;IAC1B,WAAA,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAA;IAEhC,WAAA,IAAA,eAAM,EAAC,6BAAY,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;qCATzB,yCAAkB;QACN,6BAAkB;QACM,sBAAU;QAElD,0BAAc;QACwB,uBAAS,kBAIH,wBAAY;QAC5D,sBAAU;QACJ,qCAAgB;QACpB,6BAAa;QACF,oDAAwB;GArBxC,cAAc,CA6D1B;AA7DY,wCAAc","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { isMainThread } from 'worker_threads';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n PoiService,\n PoiSyncService,\n BaseProjectService,\n StoreService,\n NodeConfig,\n IProjectUpgradeService,\n ApiService,\n profiler,\n} from '@subql/node-core';\nimport { Sequelize } from '@subql/x-sequelize';\nimport {\n EthereumProjectDs,\n SubqueryProject,\n} from '../configure/SubqueryProject';\nimport { EthereumApiService } from '../ethereum';\nimport { DsProcessorService } from './ds-processor.service';\nimport { DynamicDsService } from './dynamic-ds.service';\nimport { UnfinalizedBlocksService } from './unfinalizedBlocks.service';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: packageVersion } = require('../../package.json');\n\n@Injectable()\nexport class ProjectService extends BaseProjectService<\n EthereumApiService,\n EthereumProjectDs,\n UnfinalizedBlocksService\n> {\n protected packageVersion = packageVersion;\n\n constructor(\n dsProcessorService: DsProcessorService,\n @Inject(ApiService) apiService: EthereumApiService,\n @Inject(isMainThread ? PoiService : 'Null') poiService: PoiService,\n @Inject(isMainThread ? PoiSyncService : 'Null')\n poiSyncService: PoiSyncService,\n @Inject(isMainThread ? Sequelize : 'Null') sequelize: Sequelize,\n @Inject('ISubqueryProject') project: SubqueryProject,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService<SubqueryProject>,\n @Inject(isMainThread ? StoreService : 'Null') storeService: StoreService,\n nodeConfig: NodeConfig,\n dynamicDsService: DynamicDsService,\n eventEmitter: EventEmitter2,\n unfinalizedBlockService: UnfinalizedBlocksService,\n ) {\n super(\n dsProcessorService,\n apiService,\n poiService,\n poiSyncService,\n sequelize,\n project,\n projectUpgradeService,\n storeService,\n nodeConfig,\n dynamicDsService,\n eventEmitter,\n unfinalizedBlockService,\n );\n }\n\n @profiler()\n async init(startHeight?: number): Promise<void> {\n return super.init(startHeight);\n }\n\n protected async getBlockTimestamp(height: number): Promise<Date> {\n const block = await this.apiService.unsafeApi.api.getBlock(height);\n\n return new Date(block.timestamp * 1000); // TODO test and make sure its in MS not S\n }\n\n protected onProjectChange(project: SubqueryProject): void | Promise<void> {\n // TODO update this when implementing skipBlock feature for Eth\n this.apiService.updateBlockFetching();\n }\n\n protected async initUnfinalized(): Promise<number | undefined> {\n return this.unfinalizedBlockService.init(\n this.reindex.bind(this),\n this.apiService.api.supportsFinalization,\n );\n }\n}\n"]}
|
|
@@ -23,13 +23,9 @@ let WorkerFetchModule = class WorkerFetchModule {
|
|
|
23
23
|
};
|
|
24
24
|
WorkerFetchModule = __decorate([
|
|
25
25
|
(0, common_1.Module)({
|
|
26
|
+
imports: [node_core_1.WorkerCoreModule],
|
|
26
27
|
providers: [
|
|
27
28
|
indexer_manager_1.IndexerManager,
|
|
28
|
-
{
|
|
29
|
-
provide: node_core_1.ConnectionPoolStateManager,
|
|
30
|
-
useFactory: () => new node_core_1.WorkerConnectionPoolStateManager(global.host),
|
|
31
|
-
},
|
|
32
|
-
node_core_1.ConnectionPoolService,
|
|
33
29
|
{
|
|
34
30
|
provide: node_core_1.ApiService,
|
|
35
31
|
useFactory: async (project, connectionPoolService, eventEmitter, nodeConfig) => {
|
|
@@ -44,7 +40,6 @@ WorkerFetchModule = __decorate([
|
|
|
44
40
|
node_core_1.NodeConfig,
|
|
45
41
|
],
|
|
46
42
|
},
|
|
47
|
-
node_core_1.SandboxService,
|
|
48
43
|
ds_processor_service_1.DsProcessorService,
|
|
49
44
|
{
|
|
50
45
|
provide: dynamic_ds_service_1.DynamicDsService,
|
|
@@ -59,14 +54,6 @@ WorkerFetchModule = __decorate([
|
|
|
59
54
|
useFactory: () => new node_core_1.WorkerUnfinalizedBlocksService(global.host),
|
|
60
55
|
},
|
|
61
56
|
worker_service_1.WorkerService,
|
|
62
|
-
{
|
|
63
|
-
provide: node_core_1.MonitorService,
|
|
64
|
-
useFactory: () => new node_core_1.WorkerMonitorService(global.host),
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
provide: node_core_1.InMemoryCacheService,
|
|
68
|
-
useFactory: () => new node_core_1.WorkerInMemoryCacheService(global.host),
|
|
69
|
-
},
|
|
70
57
|
],
|
|
71
58
|
})
|
|
72
59
|
], WorkerFetchModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-fetch.module.js","sourceRoot":"","sources":["../../../src/indexer/worker/worker-fetch.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"worker-fetch.module.js","sourceRoot":"","sources":["../../../src/indexer/worker/worker-fetch.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAAsD;AACtD,gDAO0B;AAE1B,6CAAoD;AAEpD,kEAA6D;AAC7D,8DAAyD;AACzD,wDAAoD;AACpD,wDAAoD;AACpD,4EAAwE;AACxE,qDAAiD;AA+C1C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IA7C7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAgB,CAAC;QAC3B,SAAS,EAAE;YACT,gCAAc;YACd;gBACE,OAAO,EAAE,sBAAU;gBACnB,UAAU,EAAE,KAAK,EACf,OAAwB,EACxB,qBAAmE,EACnE,YAA2B,EAC3B,UAAsB,EACtB,EAAE;oBACF,MAAM,UAAU,GAAG,IAAI,6BAAkB,CACvC,OAAO,EACP,qBAAqB,EACrB,YAAY,EACZ,UAAU,CACX,CAAC;oBACF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE;oBACN,kBAAkB;oBAClB,iCAAqB;oBACrB,6BAAa;oBACb,sBAAU;iBACX;aACF;YACD,yCAAkB;YAClB;gBACE,OAAO,EAAE,qCAAgB;gBACzB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAsB,CAAE,MAAc,CAAC,IAAI,CAAC;aACnE;YACD;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,gCAAc;aACzB;YACD;gBACE,OAAO,EAAE,oDAAwB;gBACjC,UAAU,EAAE,GAAG,EAAE,CACf,IAAI,0CAA8B,CAAE,MAAc,CAAC,IAAI,CAAC;aAC3D;YACD,8BAAa;SACd;KACF,CAAC;GACW,iBAAiB,CAAG;AAApB,8CAAiB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n ApiService,\n ConnectionPoolService,\n WorkerDynamicDsService,\n NodeConfig,\n WorkerUnfinalizedBlocksService,\n WorkerCoreModule,\n} from '@subql/node-core';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { EthereumApiService } from '../../ethereum';\nimport { EthereumApiConnection } from '../../ethereum/api.connection';\nimport { DsProcessorService } from '../ds-processor.service';\nimport { DynamicDsService } from '../dynamic-ds.service';\nimport { IndexerManager } from '../indexer.manager';\nimport { ProjectService } from '../project.service';\nimport { UnfinalizedBlocksService } from '../unfinalizedBlocks.service';\nimport { WorkerService } from './worker.service';\n\n@Module({\n imports: [WorkerCoreModule],\n providers: [\n IndexerManager,\n {\n provide: ApiService,\n useFactory: async (\n project: SubqueryProject,\n connectionPoolService: ConnectionPoolService<EthereumApiConnection>,\n eventEmitter: EventEmitter2,\n nodeConfig: NodeConfig,\n ) => {\n const apiService = new EthereumApiService(\n project,\n connectionPoolService,\n eventEmitter,\n nodeConfig,\n );\n await apiService.init();\n return apiService;\n },\n inject: [\n 'ISubqueryProject',\n ConnectionPoolService,\n EventEmitter2,\n NodeConfig,\n ],\n },\n DsProcessorService,\n {\n provide: DynamicDsService,\n useFactory: () => new WorkerDynamicDsService((global as any).host),\n },\n {\n provide: 'IProjectService',\n useClass: ProjectService,\n },\n {\n provide: UnfinalizedBlocksService,\n useFactory: () =>\n new WorkerUnfinalizedBlocksService((global as any).host),\n },\n WorkerService,\n ],\n})\nexport class WorkerFetchModule {}\n"]}
|
|
@@ -24,6 +24,7 @@ WorkerModule = __decorate([
|
|
|
24
24
|
event_emitter_1.EventEmitterModule.forRoot(),
|
|
25
25
|
configure_module_1.ConfigureModule.register(),
|
|
26
26
|
schedule_1.ScheduleModule.forRoot(),
|
|
27
|
+
node_core_1.WorkerCoreModule,
|
|
27
28
|
worker_fetch_module_1.WorkerFetchModule,
|
|
28
29
|
],
|
|
29
30
|
controllers: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.module.js","sourceRoot":"","sources":["../../../src/indexer/worker/worker.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA2D;AAC3D,+CAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"worker.module.js","sourceRoot":"","sources":["../../../src/indexer/worker/worker.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAA2D;AAC3D,+CAAkD;AAClD,gDAA8D;AAC9D,uEAAmE;AACnE,+DAA0D;AAanD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IAXxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oBAAQ,CAAC,OAAO,EAAE;YAClB,kCAAkB,CAAC,OAAO,EAAE;YAC5B,kCAAe,CAAC,QAAQ,EAAE;YAC1B,yBAAc,CAAC,OAAO,EAAE;YACxB,4BAAgB;YAChB,uCAAiB;SAClB;QACD,WAAW,EAAE,EAAE;KAChB,CAAC;GACW,YAAY,CAAG;AAAf,oCAAY","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { EventEmitterModule } from '@nestjs/event-emitter';\nimport { ScheduleModule } from '@nestjs/schedule';\nimport { DbModule, WorkerCoreModule } from '@subql/node-core';\nimport { ConfigureModule } from '../../configure/configure.module';\nimport { WorkerFetchModule } from './worker-fetch.module';\n\n@Module({\n imports: [\n DbModule.forRoot(),\n EventEmitterModule.forRoot(),\n ConfigureModule.register(),\n ScheduleModule.forRoot(),\n WorkerCoreModule,\n WorkerFetchModule,\n ],\n controllers: [],\n})\nexport class WorkerModule {}\n"]}
|
|
@@ -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 SubqueryProject_1 = require("../configure/SubqueryProject");
|
|
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) {
|
|
@@ -40,8 +39,7 @@ let TestingService = class TestingService extends node_core_1.TestingService {
|
|
|
40
39
|
TestingService = __decorate([
|
|
41
40
|
(0, common_1.Injectable)(),
|
|
42
41
|
__param(1, (0, common_1.Inject)('ISubqueryProject')),
|
|
43
|
-
__metadata("design:paramtypes", [node_core_1.NodeConfig,
|
|
44
|
-
SubqueryProject_1.SubqueryProject])
|
|
42
|
+
__metadata("design:paramtypes", [node_core_1.NodeConfig, Object])
|
|
45
43
|
], TestingService);
|
|
46
44
|
exports.TestingService = TestingService;
|
|
47
45
|
//# sourceMappingURL=testing.service.js.map
|
|
@@ -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;AAE3C,gDAM0B;
|
|
1
|
+
{"version":3,"file":"testing.service.js","sourceRoot":"","sources":["../../src/subcommands/testing.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,uCAA2C;AAE3C,gDAM0B;AAU1B,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,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SAChD,CACF,CAAC;QAEF,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,cAAc,GAAmB,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE1E,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;AA/CY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCADf,sBAAU;GAPb,cAAc,CA+C1B;AA/CY,wCAAc","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport { NestFactory } from '@nestjs/core';\n\nimport {\n NodeConfig,\n TestingService as BaseTestingService,\n NestLogger,\n TestRunner,\n IBlock,\n} from '@subql/node-core';\nimport {\n EthereumProjectDs,\n SubqueryProject,\n} from '../configure/SubqueryProject';\nimport { EthereumApi } from '../ethereum';\nimport SafeEthProvider from '../ethereum/safe-api';\nimport { IndexerManager } from '../indexer/indexer.manager';\nimport { ProjectService } from '../indexer/project.service';\nimport { BlockContent } from '../indexer/types';\nimport { TestingModule } from './testing.module';\n\n@Injectable()\nexport class TestingService extends BaseTestingService<\n EthereumApi,\n SafeEthProvider,\n BlockContent,\n EthereumProjectDs\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 EthereumApi,\n SafeEthProvider,\n BlockContent,\n EthereumProjectDs\n >,\n ]\n > {\n const testContext = await NestFactory.createApplicationContext(\n TestingModule,\n {\n logger: new NestLogger(!!this.nodeConfig.debug),\n },\n );\n\n await testContext.init();\n\n const projectService: ProjectService = testContext.get('IProjectService');\n\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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subql/node-ethereum",
|
|
3
|
-
"version": "4.7.4-
|
|
3
|
+
"version": "4.7.4-2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Ian He",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@nestjs/platform-express": "^9.4.0",
|
|
26
26
|
"@nestjs/schedule": "^3.0.1",
|
|
27
27
|
"@subql/common-ethereum": "4.3.1-0",
|
|
28
|
-
"@subql/node-core": "^
|
|
28
|
+
"@subql/node-core": "^13.0.0",
|
|
29
29
|
"@subql/testing": "^2.2.1",
|
|
30
30
|
"@subql/types-ethereum": "3.11.1-0",
|
|
31
31
|
"cacheable-lookup": "6",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"/dist",
|
|
60
60
|
"/bin"
|
|
61
61
|
],
|
|
62
|
-
"stableVersion": "4.7.
|
|
62
|
+
"stableVersion": "4.7.4-1"
|
|
63
63
|
}
|
|
@@ -1,25 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.AdminModule = void 0;
|
|
12
|
-
const common_1 = require("@nestjs/common");
|
|
13
|
-
const node_core_1 = require("@subql/node-core");
|
|
14
|
-
const fetch_module_1 = require("../indexer/fetch.module");
|
|
15
|
-
let AdminModule = class AdminModule {
|
|
16
|
-
};
|
|
17
|
-
AdminModule = __decorate([
|
|
18
|
-
(0, common_1.Module)({
|
|
19
|
-
imports: [fetch_module_1.FetchModule],
|
|
20
|
-
controllers: [...node_core_1.adminControllers],
|
|
21
|
-
providers: [...node_core_1.adminServices],
|
|
22
|
-
})
|
|
23
|
-
], AdminModule);
|
|
24
|
-
exports.AdminModule = AdminModule;
|
|
25
|
-
//# sourceMappingURL=admin.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,gDAAmE;AACnE,0DAAsD;AAO/C,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,0BAAW,CAAC;QACtB,WAAW,EAAE,CAAC,GAAG,4BAAgB,CAAC;QAClC,SAAS,EAAE,CAAC,GAAG,yBAAa,CAAC;KAC9B,CAAC;GACW,WAAW,CAAG;AAAd,kCAAW","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { adminControllers, adminServices } from '@subql/node-core';\nimport { FetchModule } from '../indexer/fetch.module';\n\n@Module({\n imports: [FetchModule],\n controllers: [...adminControllers],\n providers: [...adminServices],\n})\nexport class AdminModule {}\n"]}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { MetaService } from './meta.service';
|
|
2
|
-
export declare class MetaController {
|
|
3
|
-
private metaService;
|
|
4
|
-
constructor(metaService: MetaService);
|
|
5
|
-
getMeta(): {
|
|
6
|
-
chain?: string | undefined;
|
|
7
|
-
specName?: string | undefined;
|
|
8
|
-
genesisHash?: string | undefined;
|
|
9
|
-
currentProcessingHeight: number | undefined;
|
|
10
|
-
currentProcessingTimestamp: number | undefined;
|
|
11
|
-
targetHeight: number | undefined;
|
|
12
|
-
bestHeight: number | undefined;
|
|
13
|
-
indexerNodeVersion: string;
|
|
14
|
-
lastProcessedHeight: number | undefined;
|
|
15
|
-
lastProcessedTimestamp: number | undefined;
|
|
16
|
-
uptime: number;
|
|
17
|
-
processedBlockCount: number | undefined;
|
|
18
|
-
apiConnected: boolean | undefined;
|
|
19
|
-
usingDictionary: boolean | undefined;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,37 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.MetaController = void 0;
|
|
15
|
-
const common_1 = require("@nestjs/common");
|
|
16
|
-
const meta_service_1 = require("./meta.service");
|
|
17
|
-
let MetaController = class MetaController {
|
|
18
|
-
metaService;
|
|
19
|
-
constructor(metaService) {
|
|
20
|
-
this.metaService = metaService;
|
|
21
|
-
}
|
|
22
|
-
getMeta() {
|
|
23
|
-
return this.metaService.getMeta();
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
__decorate([
|
|
27
|
-
(0, common_1.Get)(),
|
|
28
|
-
__metadata("design:type", Function),
|
|
29
|
-
__metadata("design:paramtypes", []),
|
|
30
|
-
__metadata("design:returntype", void 0)
|
|
31
|
-
], MetaController.prototype, "getMeta", null);
|
|
32
|
-
MetaController = __decorate([
|
|
33
|
-
(0, common_1.Controller)('meta'),
|
|
34
|
-
__metadata("design:paramtypes", [meta_service_1.MetaService])
|
|
35
|
-
], MetaController);
|
|
36
|
-
exports.MetaController = MetaController;
|
|
37
|
-
//# sourceMappingURL=meta.controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.controller.js","sourceRoot":"","sources":["../../src/meta/meta.controller.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;AAEnC,2CAAiD;AACjD,iDAA6C;AAGtC,IAAM,cAAc,GAApB,MAAM,cAAc;IACL;IAApB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAGhD,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AAJC;IAAC,IAAA,YAAG,GAAE;;;;6CAGL;AANU,cAAc;IAD1B,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEgB,0BAAW;GADjC,cAAc,CAO1B;AAPY,wCAAc","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Controller, Get } from '@nestjs/common';\nimport { MetaService } from './meta.service';\n\n@Controller('meta')\nexport class MetaController {\n constructor(private metaService: MetaService) {}\n\n @Get()\n getMeta() {\n return this.metaService.getMeta();\n }\n}\n"]}
|
package/dist/meta/meta.module.js
DELETED
|
@@ -1,28 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.MetaModule = void 0;
|
|
12
|
-
const common_1 = require("@nestjs/common");
|
|
13
|
-
const node_core_1 = require("@subql/node-core");
|
|
14
|
-
const nestjs_prometheus_1 = require("@willsoto/nestjs-prometheus");
|
|
15
|
-
const fetch_module_1 = require("../indexer/fetch.module");
|
|
16
|
-
const meta_controller_1 = require("./meta.controller");
|
|
17
|
-
const meta_service_1 = require("./meta.service");
|
|
18
|
-
let MetaModule = class MetaModule {
|
|
19
|
-
};
|
|
20
|
-
MetaModule = __decorate([
|
|
21
|
-
(0, common_1.Module)({
|
|
22
|
-
imports: [nestjs_prometheus_1.PrometheusModule.register(), fetch_module_1.FetchModule],
|
|
23
|
-
controllers: [...node_core_1.metaControllers, meta_controller_1.MetaController],
|
|
24
|
-
providers: [...node_core_1.metaServices, meta_service_1.MetaService],
|
|
25
|
-
})
|
|
26
|
-
], MetaModule);
|
|
27
|
-
exports.MetaModule = MetaModule;
|
|
28
|
-
//# sourceMappingURL=meta.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.module.js","sourceRoot":"","sources":["../../src/meta/meta.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,gDAAiE;AACjE,mEAA+D;AAC/D,0DAAsD;AACtD,uDAAmD;AACnD,iDAA6C;AAOtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,UAAU;IALtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oCAAgB,CAAC,QAAQ,EAAE,EAAE,0BAAW,CAAC;QACnD,WAAW,EAAE,CAAC,GAAG,2BAAe,EAAE,gCAAc,CAAC;QACjD,SAAS,EAAE,CAAC,GAAG,wBAAY,EAAE,0BAAW,CAAC;KAC1C,CAAC;GACW,UAAU,CAAG;AAAb,gCAAU","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Module } from '@nestjs/common';\nimport { metaControllers, metaServices } from '@subql/node-core';\nimport { PrometheusModule } from '@willsoto/nestjs-prometheus';\nimport { FetchModule } from '../indexer/fetch.module';\nimport { MetaController } from './meta.controller';\nimport { MetaService } from './meta.service';\n\n@Module({\n imports: [PrometheusModule.register(), FetchModule],\n controllers: [...metaControllers, MetaController],\n providers: [...metaServices, MetaService],\n})\nexport class MetaModule {}\n"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { BaseMetaService, NodeConfig, StoreCacheService } from '@subql/node-core';
|
|
2
|
-
export declare class MetaService extends BaseMetaService {
|
|
3
|
-
private nodeConfig;
|
|
4
|
-
private accEnqueueBlocks;
|
|
5
|
-
private accFetchBlocks;
|
|
6
|
-
private currentFilteringBlockNum;
|
|
7
|
-
private accRpcCalls;
|
|
8
|
-
private lastReportedFilteringBlockNum;
|
|
9
|
-
private lastReportedEnqueueBlocks;
|
|
10
|
-
private lastReportedFetchBlocks;
|
|
11
|
-
private lastReportedRpcCalls;
|
|
12
|
-
private lastStatsReportedTs?;
|
|
13
|
-
protected packageVersion: any;
|
|
14
|
-
constructor(nodeConfig: NodeConfig, storeCacheService: StoreCacheService);
|
|
15
|
-
protected sdkVersion(): {
|
|
16
|
-
name: string;
|
|
17
|
-
version: string;
|
|
18
|
-
};
|
|
19
|
-
handleEnqueueBlocks(size: number): void;
|
|
20
|
-
handleFilteringBlocks(height: number): void;
|
|
21
|
-
handleFetchBlock(): void;
|
|
22
|
-
handleRpcCall(): void;
|
|
23
|
-
blockFilteringSpeed(): void;
|
|
24
|
-
}
|
|
@@ -1,123 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.MetaService = void 0;
|
|
15
|
-
const common_1 = require("@nestjs/common");
|
|
16
|
-
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
17
|
-
const schedule_1 = require("@nestjs/schedule");
|
|
18
|
-
const node_core_1 = require("@subql/node-core");
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
20
|
-
const { version: ethersSdkVersion } = require('ethers/package.json');
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
22
|
-
const { version: packageVersion } = require('../../package.json');
|
|
23
|
-
const logger = (0, node_core_1.getLogger)('profiler');
|
|
24
|
-
let MetaService = class MetaService extends node_core_1.BaseMetaService {
|
|
25
|
-
nodeConfig;
|
|
26
|
-
accEnqueueBlocks = 0;
|
|
27
|
-
accFetchBlocks = 0;
|
|
28
|
-
currentFilteringBlockNum = 0;
|
|
29
|
-
accRpcCalls = 0;
|
|
30
|
-
lastReportedFilteringBlockNum = 0;
|
|
31
|
-
lastReportedEnqueueBlocks = 0;
|
|
32
|
-
lastReportedFetchBlocks = 0;
|
|
33
|
-
lastReportedRpcCalls = 0;
|
|
34
|
-
lastStatsReportedTs;
|
|
35
|
-
packageVersion = packageVersion;
|
|
36
|
-
constructor(nodeConfig, storeCacheService) {
|
|
37
|
-
super(storeCacheService, nodeConfig);
|
|
38
|
-
this.nodeConfig = nodeConfig;
|
|
39
|
-
}
|
|
40
|
-
sdkVersion() {
|
|
41
|
-
return { name: 'ethersSdkVersion', version: ethersSdkVersion };
|
|
42
|
-
}
|
|
43
|
-
handleEnqueueBlocks(size) {
|
|
44
|
-
this.accEnqueueBlocks += size;
|
|
45
|
-
if (!this.lastStatsReportedTs) {
|
|
46
|
-
this.lastStatsReportedTs = new Date();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
handleFilteringBlocks(height) {
|
|
50
|
-
this.currentFilteringBlockNum = height;
|
|
51
|
-
if (!this.lastStatsReportedTs) {
|
|
52
|
-
this.lastReportedFilteringBlockNum = height;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
handleFetchBlock() {
|
|
56
|
-
this.accFetchBlocks++;
|
|
57
|
-
if (!this.lastStatsReportedTs) {
|
|
58
|
-
this.lastStatsReportedTs = new Date();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
handleRpcCall() {
|
|
62
|
-
this.accRpcCalls++;
|
|
63
|
-
if (!this.lastStatsReportedTs) {
|
|
64
|
-
this.lastStatsReportedTs = new Date();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
blockFilteringSpeed() {
|
|
68
|
-
if (!this.nodeConfig.profiler || !this.lastStatsReportedTs) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const count = this.accEnqueueBlocks - this.lastReportedEnqueueBlocks;
|
|
72
|
-
this.lastReportedEnqueueBlocks = this.accEnqueueBlocks;
|
|
73
|
-
const filteringCount = this.currentFilteringBlockNum - this.lastReportedFilteringBlockNum;
|
|
74
|
-
const now = new Date();
|
|
75
|
-
const timepass = now.getTime() - this.lastStatsReportedTs.getTime();
|
|
76
|
-
this.lastStatsReportedTs = now;
|
|
77
|
-
this.lastReportedFilteringBlockNum = this.currentFilteringBlockNum;
|
|
78
|
-
const rpcCalls = this.accRpcCalls - this.lastReportedRpcCalls;
|
|
79
|
-
this.lastReportedRpcCalls = this.accRpcCalls;
|
|
80
|
-
const fetchCount = this.accFetchBlocks - this.lastReportedFetchBlocks;
|
|
81
|
-
this.lastReportedFetchBlocks = this.accFetchBlocks;
|
|
82
|
-
logger.info(`actual block filtering: ${(count / (timepass / 1000)).toFixed(2)}/sec, \
|
|
83
|
-
seeming speed: ${(filteringCount / (timepass / 1000)).toFixed(2)}/sec, rpcCalls: ${(rpcCalls / (timepass / 1000)).toFixed(2)}/sec \
|
|
84
|
-
fetch speed: ${(fetchCount / (timepass / 1000)).toFixed(2)}/sec`);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
__decorate([
|
|
88
|
-
(0, event_emitter_1.OnEvent)('enqueueBlocks'),
|
|
89
|
-
__metadata("design:type", Function),
|
|
90
|
-
__metadata("design:paramtypes", [Number]),
|
|
91
|
-
__metadata("design:returntype", void 0)
|
|
92
|
-
], MetaService.prototype, "handleEnqueueBlocks", null);
|
|
93
|
-
__decorate([
|
|
94
|
-
(0, event_emitter_1.OnEvent)('filteringBlocks'),
|
|
95
|
-
__metadata("design:type", Function),
|
|
96
|
-
__metadata("design:paramtypes", [Number]),
|
|
97
|
-
__metadata("design:returntype", void 0)
|
|
98
|
-
], MetaService.prototype, "handleFilteringBlocks", null);
|
|
99
|
-
__decorate([
|
|
100
|
-
(0, event_emitter_1.OnEvent)('fetchBlock'),
|
|
101
|
-
__metadata("design:type", Function),
|
|
102
|
-
__metadata("design:paramtypes", []),
|
|
103
|
-
__metadata("design:returntype", void 0)
|
|
104
|
-
], MetaService.prototype, "handleFetchBlock", null);
|
|
105
|
-
__decorate([
|
|
106
|
-
(0, event_emitter_1.OnEvent)('rpcCall'),
|
|
107
|
-
__metadata("design:type", Function),
|
|
108
|
-
__metadata("design:paramtypes", []),
|
|
109
|
-
__metadata("design:returntype", void 0)
|
|
110
|
-
], MetaService.prototype, "handleRpcCall", null);
|
|
111
|
-
__decorate([
|
|
112
|
-
(0, schedule_1.Interval)(10000),
|
|
113
|
-
__metadata("design:type", Function),
|
|
114
|
-
__metadata("design:paramtypes", []),
|
|
115
|
-
__metadata("design:returntype", void 0)
|
|
116
|
-
], MetaService.prototype, "blockFilteringSpeed", null);
|
|
117
|
-
MetaService = __decorate([
|
|
118
|
-
(0, common_1.Injectable)(),
|
|
119
|
-
__metadata("design:paramtypes", [node_core_1.NodeConfig,
|
|
120
|
-
node_core_1.StoreCacheService])
|
|
121
|
-
], MetaService);
|
|
122
|
-
exports.MetaService = MetaService;
|
|
123
|
-
//# sourceMappingURL=meta.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta.service.js","sourceRoot":"","sources":["../../src/meta/meta.service.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Injectable } from '@nestjs/common';\nimport { OnEvent } from '@nestjs/event-emitter';\nimport { Interval } from '@nestjs/schedule';\nimport {\n BaseMetaService,\n getLogger,\n NodeConfig,\n StoreCacheService,\n} from '@subql/node-core';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: ethersSdkVersion } = require('ethers/package.json');\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst { version: packageVersion } = require('../../package.json');\nconst logger = getLogger('profiler');\n\n@Injectable()\nexport class MetaService extends BaseMetaService {\n private accEnqueueBlocks = 0;\n private accFetchBlocks = 0;\n private currentFilteringBlockNum = 0;\n private accRpcCalls = 0;\n private lastReportedFilteringBlockNum = 0;\n private lastReportedEnqueueBlocks = 0;\n private lastReportedFetchBlocks = 0;\n private lastReportedRpcCalls = 0;\n private lastStatsReportedTs?: Date;\n protected packageVersion = packageVersion;\n\n constructor(\n private nodeConfig: NodeConfig,\n storeCacheService: StoreCacheService,\n ) {\n super(storeCacheService, nodeConfig);\n }\n\n protected sdkVersion(): { name: string; version: string } {\n return { name: 'ethersSdkVersion', version: ethersSdkVersion };\n }\n\n @OnEvent('enqueueBlocks')\n handleEnqueueBlocks(size: number): void {\n this.accEnqueueBlocks += size;\n if (!this.lastStatsReportedTs) {\n this.lastStatsReportedTs = new Date();\n }\n }\n\n @OnEvent('filteringBlocks')\n handleFilteringBlocks(height: number): void {\n this.currentFilteringBlockNum = height;\n if (!this.lastStatsReportedTs) {\n this.lastReportedFilteringBlockNum = height;\n }\n }\n\n @OnEvent('fetchBlock')\n handleFetchBlock(): void {\n this.accFetchBlocks++;\n if (!this.lastStatsReportedTs) {\n this.lastStatsReportedTs = new Date();\n }\n }\n\n @OnEvent('rpcCall')\n handleRpcCall(): void {\n this.accRpcCalls++;\n if (!this.lastStatsReportedTs) {\n this.lastStatsReportedTs = new Date();\n }\n }\n\n @Interval(10000)\n blockFilteringSpeed(): void {\n if (!this.nodeConfig.profiler || !this.lastStatsReportedTs) {\n return;\n }\n const count = this.accEnqueueBlocks - this.lastReportedEnqueueBlocks;\n this.lastReportedEnqueueBlocks = this.accEnqueueBlocks;\n const filteringCount =\n this.currentFilteringBlockNum - this.lastReportedFilteringBlockNum;\n const now = new Date();\n const timepass = now.getTime() - this.lastStatsReportedTs.getTime();\n this.lastStatsReportedTs = now;\n this.lastReportedFilteringBlockNum = this.currentFilteringBlockNum;\n const rpcCalls = this.accRpcCalls - this.lastReportedRpcCalls;\n this.lastReportedRpcCalls = this.accRpcCalls;\n const fetchCount = this.accFetchBlocks - this.lastReportedFetchBlocks;\n this.lastReportedFetchBlocks = this.accFetchBlocks;\n logger.info(`actual block filtering: ${(count / (timepass / 1000)).toFixed(\n 2,\n )}/sec, \\\nseeming speed: ${(filteringCount / (timepass / 1000)).toFixed(\n 2,\n )}/sec, rpcCalls: ${(rpcCalls / (timepass / 1000)).toFixed(2)}/sec \\\nfetch speed: ${(fetchCount / (timepass / 1000)).toFixed(2)}/sec`);\n }\n}\n"]}
|