@subql/node-stellar 3.10.1 → 3.10.2-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/configure/SubqueryProject.d.ts +7 -8
  4. package/dist/configure/SubqueryProject.js.map +1 -1
  5. package/dist/indexer/blockDispatcher/block-dispatcher.service.d.ts +5 -6
  6. package/dist/indexer/blockDispatcher/block-dispatcher.service.js +5 -8
  7. package/dist/indexer/blockDispatcher/block-dispatcher.service.js.map +1 -1
  8. package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.d.ts +5 -5
  9. package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js +4 -5
  10. package/dist/indexer/blockDispatcher/worker-block-dispatcher.service.js.map +1 -1
  11. package/dist/indexer/ds-processor.service.d.ts +1 -5
  12. package/dist/indexer/ds-processor.service.js +1 -22
  13. package/dist/indexer/ds-processor.service.js.map +1 -1
  14. package/dist/indexer/dynamic-ds.service.d.ts +4 -4
  15. package/dist/indexer/dynamic-ds.service.js +2 -20
  16. package/dist/indexer/dynamic-ds.service.js.map +1 -1
  17. package/dist/indexer/fetch.module.js +4 -13
  18. package/dist/indexer/fetch.module.js.map +1 -1
  19. package/dist/indexer/fetch.service.d.ts +1 -5
  20. package/dist/indexer/fetch.service.js +1 -9
  21. package/dist/indexer/fetch.service.js.map +1 -1
  22. package/dist/indexer/indexer.manager.d.ts +5 -10
  23. package/dist/indexer/indexer.manager.js +2 -10
  24. package/dist/indexer/indexer.manager.js.map +1 -1
  25. package/dist/indexer/project.service.d.ts +3 -4
  26. package/dist/indexer/project.service.js +0 -1
  27. package/dist/indexer/project.service.js.map +1 -1
  28. package/dist/indexer/worker/worker-fetch.module.js +2 -4
  29. package/dist/indexer/worker/worker-fetch.module.js.map +1 -1
  30. package/dist/indexer/worker/worker.service.d.ts +2 -3
  31. package/dist/indexer/worker/worker.service.js.map +1 -1
  32. package/dist/stellar/api.connection.spec.js +3 -6
  33. package/dist/stellar/api.connection.spec.js.map +1 -1
  34. package/dist/stellar/api.service.stellar.js +1 -6
  35. package/dist/stellar/api.service.stellar.js.map +1 -1
  36. package/dist/stellar/api.stellar.d.ts +0 -1
  37. package/dist/stellar/api.stellar.js.map +1 -1
  38. package/dist/stellar/api.stellar.spec.js +2 -2
  39. package/dist/stellar/api.stellar.spec.js.map +1 -1
  40. package/dist/stellar/utils.stellar.js.map +1 -1
  41. package/dist/subcommands/forceClean.init.d.ts +1 -1
  42. package/dist/subcommands/forceClean.init.js +1 -15
  43. package/dist/subcommands/forceClean.init.js.map +1 -1
  44. package/dist/subcommands/reindex.init.d.ts +1 -1
  45. package/dist/subcommands/reindex.init.js +1 -20
  46. package/dist/subcommands/reindex.init.js.map +1 -1
  47. package/dist/subcommands/testing.init.js.map +1 -1
  48. package/dist/subcommands/testing.module.js +1 -2
  49. package/dist/subcommands/testing.module.js.map +1 -1
  50. package/dist/subcommands/testing.service.d.ts +4 -4
  51. package/dist/subcommands/testing.service.js.map +1 -1
  52. package/package.json +7 -12
  53. package/dist/indexer/sandbox.service.d.ts +0 -13
  54. package/dist/indexer/sandbox.service.js +0 -65
  55. package/dist/indexer/sandbox.service.js.map +0 -1
  56. package/dist/indexer/worker/worker.unfinalizedBlocks.service.d.ts +0 -12
  57. package/dist/indexer/worker/worker.unfinalizedBlocks.service.js +0 -47
  58. package/dist/indexer/worker/worker.unfinalizedBlocks.service.js.map +0 -1
@@ -1,10 +1,9 @@
1
- import { StellarProjectNetworkConfig, SubqlStellarDataSource } from '@subql/common-stellar';
2
- import { ISubqueryProject, SubqlProjectDs } from '@subql/node-core';
1
+ import { StellarProjectNetworkConfig } from '@subql/common-stellar';
2
+ import { ISubqueryProject } from '@subql/node-core';
3
3
  import { ParentProject, Reader, RunnerSpecs } from '@subql/types-core';
4
- import { CustomDatasourceTemplate, RuntimeDatasourceTemplate } from '@subql/types-stellar';
4
+ import { SubqlDatasource, CustomDatasourceTemplate, RuntimeDatasourceTemplate } from '@subql/types-stellar';
5
5
  import { GraphQLSchema } from 'graphql';
6
- export type StellarProjectDs = SubqlProjectDs<SubqlStellarDataSource>;
7
- export type StellarProjectDsTemplate = SubqlProjectDs<RuntimeDatasourceTemplate> | SubqlProjectDs<CustomDatasourceTemplate>;
6
+ export type StellarProjectDsTemplate = RuntimeDatasourceTemplate | CustomDatasourceTemplate;
8
7
  type NetworkConfig = StellarProjectNetworkConfig & {
9
8
  chainId: string;
10
9
  };
@@ -17,10 +16,10 @@ export declare class SubqueryProject implements ISubqueryProject {
17
16
  readonly templates: StellarProjectDsTemplate[];
18
17
  readonly runner?: RunnerSpecs;
19
18
  readonly parent?: ParentProject;
20
- constructor(id: string, root: string, network: NetworkConfig, dataSources: StellarProjectDs[], schema: GraphQLSchema, templates: StellarProjectDsTemplate[], runner?: RunnerSpecs, parent?: ParentProject);
21
- get dataSources(): StellarProjectDs[];
19
+ constructor(id: string, root: string, network: NetworkConfig, dataSources: SubqlDatasource[], schema: GraphQLSchema, templates: StellarProjectDsTemplate[], runner?: RunnerSpecs, parent?: ParentProject);
20
+ get dataSources(): SubqlDatasource[];
22
21
  static create(path: string, rawManifest: unknown, reader: Reader, root?: string, networkOverrides?: Partial<StellarProjectNetworkConfig>): Promise<SubqueryProject>;
23
22
  applyCronTimestamps(getTimestamp: (height: number) => Promise<Date>): Promise<void>;
24
23
  }
25
- export declare function dsHasSorobanEventHandler(dataSources: StellarProjectDs[]): boolean;
24
+ export declare function dsHasSorobanEventHandler(dataSources: SubqlDatasource[]): boolean;
26
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SubqueryProject.js","sourceRoot":"","sources":["../../src/configure/SubqueryProject.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 assert from 'assert';\nimport { Injectable } from '@nestjs/common';\nimport { validateSemver } from '@subql/common';\nimport {\n StellarProjectNetworkConfig,\n parseStellarProjectManifest,\n SubqlStellarDataSource,\n ProjectManifestV1_0_0Impl,\n isCustomDs,\n StellarHandlerKind,\n isRuntimeDs,\n} from '@subql/common-stellar';\nimport {\n insertBlockFiltersCronSchedules,\n ISubqueryProject,\n loadProjectTemplates,\n SubqlProjectDs,\n updateDataSourcesV1_0_0,\n} from '@subql/node-core';\nimport { ParentProject, Reader, RunnerSpecs } from '@subql/types-core';\nimport {\n CustomDatasourceTemplate,\n RuntimeDatasourceTemplate,\n} from '@subql/types-stellar';\nimport { buildSchemaFromString } from '@subql/utils';\nimport { GraphQLSchema } from 'graphql';\n\nconst { version: packageVersion } = require('../../package.json');\n\nexport type StellarProjectDs = SubqlProjectDs<SubqlStellarDataSource>;\n\nexport type StellarProjectDsTemplate =\n | SubqlProjectDs<RuntimeDatasourceTemplate>\n | SubqlProjectDs<CustomDatasourceTemplate>;\n\nconst NOT_SUPPORT = (name: string) => {\n throw new Error(`Manifest specVersion ${name} is not supported`);\n};\n\n// This is the runtime type after we have mapped genesisHash to chainId and endpoint/dict have been provided when dealing with deployments\ntype NetworkConfig = StellarProjectNetworkConfig & { chainId: string };\n\n@Injectable()\nexport class SubqueryProject implements ISubqueryProject {\n #dataSources: StellarProjectDs[];\n\n constructor(\n readonly id: string,\n readonly root: string,\n readonly network: NetworkConfig,\n dataSources: StellarProjectDs[],\n readonly schema: GraphQLSchema,\n readonly templates: StellarProjectDsTemplate[],\n readonly runner?: RunnerSpecs,\n readonly parent?: ParentProject,\n ) {\n this.#dataSources = dataSources;\n }\n\n get dataSources(): StellarProjectDs[] {\n return this.#dataSources;\n }\n\n static async create(\n path: string,\n rawManifest: unknown,\n reader: Reader,\n root?: string,\n networkOverrides?: Partial<StellarProjectNetworkConfig>,\n ): Promise<SubqueryProject> {\n // rawManifest and reader can be reused here.\n // It has been pre-fetched and used for rebase manifest runner options with args\n // in order to generate correct configs.\n\n // But we still need reader here, because path can be remote or local\n // and the `loadProjectManifest(projectPath)` only support local mode\n if (rawManifest === undefined) {\n throw new Error(`Get manifest from project path ${path} failed`);\n }\n const manifest = parseStellarProjectManifest(rawManifest);\n\n if (manifest.isV1_0_0) {\n return loadProjectFromManifestBase(\n manifest.asV1_0_0,\n reader,\n path,\n root,\n networkOverrides,\n );\n } else {\n NOT_SUPPORT(manifest.specVersion);\n }\n }\n\n async applyCronTimestamps(\n getTimestamp: (height: number) => Promise<Date>,\n ): Promise<void> {\n this.#dataSources = await insertBlockFiltersCronSchedules(\n this.dataSources,\n getTimestamp,\n isRuntimeDs,\n StellarHandlerKind.Block,\n );\n }\n}\n\nfunction processChainId(network: any): NetworkConfig {\n if (network.chainId && network.genesisHash) {\n throw new Error('Please only provide one of chainId and genesisHash');\n } else if (network.genesisHash && !network.chainId) {\n network.chainId = network.genesisHash;\n }\n delete network.genesisHash;\n return network;\n}\n\ntype SUPPORT_MANIFEST = ProjectManifestV1_0_0Impl;\n\nasync function loadProjectFromManifestBase(\n projectManifest: SUPPORT_MANIFEST,\n reader: Reader,\n path: string,\n root: string,\n networkOverrides?: Partial<StellarProjectNetworkConfig>,\n): Promise<SubqueryProject> {\n if (typeof projectManifest.network.endpoint === 'string') {\n projectManifest.network.endpoint = [projectManifest.network.endpoint];\n }\n\n const network = processChainId({\n ...projectManifest.network,\n ...networkOverrides,\n });\n\n if (!network.endpoint) {\n throw new Error(\n `Stellar network endpoint must be provided for network. chainId=\"${network.chainId}\"`,\n );\n }\n\n let schemaString: string;\n try {\n schemaString = await reader.getFile(projectManifest.schema.file);\n } catch (e) {\n throw new Error(\n `unable to fetch the schema from ${projectManifest.schema.file}`,\n );\n }\n const schema = buildSchemaFromString(schemaString);\n\n const dataSources = await updateDataSourcesV1_0_0(\n projectManifest.dataSources,\n reader,\n root,\n isCustomDs,\n );\n\n const templates = await loadProjectTemplates(\n projectManifest.templates,\n root,\n reader,\n isCustomDs,\n );\n\n const runner = projectManifest.runner;\n assert(\n validateSemver(packageVersion, runner.node.version),\n new Error(\n `Runner require node version ${runner.node.version}, current node ${packageVersion}`,\n ),\n );\n\n return new SubqueryProject(\n reader.root ? reader.root : path, //TODO, need to method to get project_id\n root,\n network,\n dataSources,\n schema,\n templates,\n runner,\n projectManifest.parent,\n );\n}\n\nexport function dsHasSorobanEventHandler(\n dataSources: StellarProjectDs[],\n): boolean {\n return (\n dataSources.findIndex(function (ds) {\n return (\n isRuntimeDs(ds) &&\n ds.mapping.handlers.findIndex(function (handler) {\n return handler.kind === StellarHandlerKind.Event;\n }) !== -1\n );\n }) !== -1\n );\n}\n"]}
1
+ {"version":3,"file":"SubqueryProject.js","sourceRoot":"","sources":["../../src/configure/SubqueryProject.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 assert from 'assert';\nimport { Injectable } from '@nestjs/common';\nimport { validateSemver } from '@subql/common';\nimport {\n StellarProjectNetworkConfig,\n parseStellarProjectManifest,\n ProjectManifestV1_0_0Impl,\n isCustomDs,\n StellarHandlerKind,\n isRuntimeDs,\n} from '@subql/common-stellar';\nimport {\n insertBlockFiltersCronSchedules,\n ISubqueryProject,\n loadProjectTemplates,\n updateDataSourcesV1_0_0,\n} from '@subql/node-core';\nimport { ParentProject, Reader, RunnerSpecs } from '@subql/types-core';\nimport {\n SubqlDatasource,\n CustomDatasourceTemplate,\n RuntimeDatasourceTemplate,\n} from '@subql/types-stellar';\nimport { buildSchemaFromString } from '@subql/utils';\nimport { GraphQLSchema } from 'graphql';\n\nconst { version: packageVersion } = require('../../package.json');\n\nexport type StellarProjectDsTemplate =\n | RuntimeDatasourceTemplate\n | CustomDatasourceTemplate;\n\nconst NOT_SUPPORT = (name: string) => {\n throw new Error(`Manifest specVersion ${name} is not supported`);\n};\n\n// This is the runtime type after we have mapped genesisHash to chainId and endpoint/dict have been provided when dealing with deployments\ntype NetworkConfig = StellarProjectNetworkConfig & { chainId: string };\n\n@Injectable()\nexport class SubqueryProject implements ISubqueryProject {\n #dataSources: SubqlDatasource[];\n\n constructor(\n readonly id: string,\n readonly root: string,\n readonly network: NetworkConfig,\n dataSources: SubqlDatasource[],\n readonly schema: GraphQLSchema,\n readonly templates: StellarProjectDsTemplate[],\n readonly runner?: RunnerSpecs,\n readonly parent?: ParentProject,\n ) {\n this.#dataSources = dataSources;\n }\n\n get dataSources(): SubqlDatasource[] {\n return this.#dataSources;\n }\n\n static async create(\n path: string,\n rawManifest: unknown,\n reader: Reader,\n root?: string,\n networkOverrides?: Partial<StellarProjectNetworkConfig>,\n ): Promise<SubqueryProject> {\n // rawManifest and reader can be reused here.\n // It has been pre-fetched and used for rebase manifest runner options with args\n // in order to generate correct configs.\n\n // But we still need reader here, because path can be remote or local\n // and the `loadProjectManifest(projectPath)` only support local mode\n if (rawManifest === undefined) {\n throw new Error(`Get manifest from project path ${path} failed`);\n }\n const manifest = parseStellarProjectManifest(rawManifest);\n\n if (manifest.isV1_0_0) {\n return loadProjectFromManifestBase(\n manifest.asV1_0_0,\n reader,\n path,\n root,\n networkOverrides,\n );\n } else {\n NOT_SUPPORT(manifest.specVersion);\n }\n }\n\n async applyCronTimestamps(\n getTimestamp: (height: number) => Promise<Date>,\n ): Promise<void> {\n this.#dataSources = await insertBlockFiltersCronSchedules(\n this.dataSources,\n getTimestamp,\n isRuntimeDs,\n StellarHandlerKind.Block,\n );\n }\n}\n\nfunction processChainId(network: any): NetworkConfig {\n if (network.chainId && network.genesisHash) {\n throw new Error('Please only provide one of chainId and genesisHash');\n } else if (network.genesisHash && !network.chainId) {\n network.chainId = network.genesisHash;\n }\n delete network.genesisHash;\n return network;\n}\n\ntype SUPPORT_MANIFEST = ProjectManifestV1_0_0Impl;\n\nasync function loadProjectFromManifestBase(\n projectManifest: SUPPORT_MANIFEST,\n reader: Reader,\n path: string,\n root: string,\n networkOverrides?: Partial<StellarProjectNetworkConfig>,\n): Promise<SubqueryProject> {\n if (typeof projectManifest.network.endpoint === 'string') {\n projectManifest.network.endpoint = [projectManifest.network.endpoint];\n }\n\n const network = processChainId({\n ...projectManifest.network,\n ...networkOverrides,\n });\n\n if (!network.endpoint) {\n throw new Error(\n `Stellar network endpoint must be provided for network. chainId=\"${network.chainId}\"`,\n );\n }\n\n let schemaString: string;\n try {\n schemaString = await reader.getFile(projectManifest.schema.file);\n } catch (e) {\n throw new Error(\n `unable to fetch the schema from ${projectManifest.schema.file}`,\n );\n }\n const schema = buildSchemaFromString(schemaString);\n\n const dataSources = await updateDataSourcesV1_0_0(\n projectManifest.dataSources,\n reader,\n root,\n isCustomDs,\n );\n\n const templates = await loadProjectTemplates(\n projectManifest.templates,\n root,\n reader,\n isCustomDs,\n );\n\n const runner = projectManifest.runner;\n assert(\n validateSemver(packageVersion, runner.node.version),\n new Error(\n `Runner require node version ${runner.node.version}, current node ${packageVersion}`,\n ),\n );\n\n return new SubqueryProject(\n reader.root ? reader.root : path, //TODO, need to method to get project_id\n root,\n network,\n dataSources,\n schema,\n templates,\n runner,\n projectManifest.parent,\n );\n}\n\nexport function dsHasSorobanEventHandler(\n dataSources: SubqlDatasource[],\n): boolean {\n return (\n dataSources.findIndex(function (ds) {\n return (\n isRuntimeDs(ds) &&\n ds.mapping.handlers.findIndex(function (handler) {\n return handler.kind === StellarHandlerKind.Event;\n }) !== -1\n );\n }) !== -1\n );\n}\n"]}
@@ -1,16 +1,15 @@
1
1
  import { OnApplicationShutdown } from '@nestjs/common';
2
2
  import { EventEmitter2 } from '@nestjs/event-emitter';
3
- import { NodeConfig, SmartBatchService, StoreCacheService, StoreService, IProjectService, BlockDispatcher, ProcessBlockResponse, ApiService, IProjectUpgradeService, PoiSyncService, IBlock } from '@subql/node-core';
4
- import { StellarBlockWrapper } from '@subql/types-stellar';
5
- import { StellarProjectDs, SubqueryProject } from '../../configure/SubqueryProject';
6
- import { DynamicDsService } from '../dynamic-ds.service';
3
+ import { NodeConfig, StoreCacheService, StoreService, IProjectService, BlockDispatcher, ProcessBlockResponse, ApiService, IProjectUpgradeService, PoiSyncService, IBlock } from '@subql/node-core';
4
+ import { StellarBlockWrapper, SubqlDatasource } from '@subql/types-stellar';
5
+ import { SubqueryProject } from '../../configure/SubqueryProject';
7
6
  import { IndexerManager } from '../indexer.manager';
8
7
  /**
9
8
  * @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing
10
9
  */
11
- export declare class BlockDispatcherService extends BlockDispatcher<StellarBlockWrapper, StellarProjectDs> implements OnApplicationShutdown {
10
+ export declare class BlockDispatcherService extends BlockDispatcher<StellarBlockWrapper, SubqlDatasource> implements OnApplicationShutdown {
12
11
  private indexerManager;
13
- constructor(apiService: ApiService, nodeConfig: NodeConfig, indexerManager: IndexerManager, eventEmitter: EventEmitter2, projectService: IProjectService<StellarProjectDs>, projectUpgradeService: IProjectUpgradeService, smartBatchService: SmartBatchService, storeService: StoreService, storeCacheService: StoreCacheService, poiSyncService: PoiSyncService, project: SubqueryProject, dynamicDsService: DynamicDsService);
12
+ constructor(apiService: ApiService, nodeConfig: NodeConfig, indexerManager: IndexerManager, eventEmitter: EventEmitter2, projectService: IProjectService<SubqlDatasource>, projectUpgradeService: IProjectUpgradeService, storeService: StoreService, storeCacheService: StoreCacheService, poiSyncService: PoiSyncService, project: SubqueryProject);
14
13
  protected getBlockHeight(block: StellarBlockWrapper): number;
15
14
  protected indexBlock(block: IBlock<StellarBlockWrapper>): Promise<ProcessBlockResponse>;
16
15
  }
@@ -19,14 +19,13 @@ const common_1 = require("@nestjs/common");
19
19
  const event_emitter_1 = require("@nestjs/event-emitter");
20
20
  const node_core_1 = require("@subql/node-core");
21
21
  const SubqueryProject_1 = require("../../configure/SubqueryProject");
22
- const dynamic_ds_service_1 = require("../dynamic-ds.service");
23
22
  const indexer_manager_1 = require("../indexer.manager");
24
23
  /**
25
24
  * @description Intended to behave the same as WorkerBlockDispatcherService but doesn't use worker threads or any parallel processing
26
25
  */
27
26
  let BlockDispatcherService = class BlockDispatcherService extends node_core_1.BlockDispatcher {
28
- constructor(apiService, nodeConfig, indexerManager, eventEmitter, projectService, projectUpgradeService, smartBatchService, storeService, storeCacheService, poiSyncService, project, dynamicDsService) {
29
- super(nodeConfig, eventEmitter, projectService, projectUpgradeService, smartBatchService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, apiService.fetchBlocks.bind(apiService));
27
+ constructor(apiService, nodeConfig, indexerManager, eventEmitter, projectService, projectUpgradeService, storeService, storeCacheService, poiSyncService, project) {
28
+ super(nodeConfig, eventEmitter, projectService, projectUpgradeService, storeService, storeCacheService, poiSyncService, project, apiService.fetchBlocks.bind(apiService));
30
29
  this.indexerManager = indexerManager;
31
30
  }
32
31
  getBlockHeight(block) {
@@ -40,16 +39,14 @@ BlockDispatcherService = __decorate([
40
39
  (0, common_1.Injectable)(),
41
40
  __param(4, (0, common_1.Inject)('IProjectService')),
42
41
  __param(5, (0, common_1.Inject)('IProjectUpgradeService')),
43
- __param(10, (0, common_1.Inject)('ISubqueryProject')),
42
+ __param(9, (0, common_1.Inject)('ISubqueryProject')),
44
43
  __metadata("design:paramtypes", [node_core_1.ApiService,
45
44
  node_core_1.NodeConfig,
46
45
  indexer_manager_1.IndexerManager,
47
- event_emitter_1.EventEmitter2, Object, Object, node_core_1.SmartBatchService,
48
- node_core_1.StoreService,
46
+ event_emitter_1.EventEmitter2, Object, Object, node_core_1.StoreService,
49
47
  node_core_1.StoreCacheService,
50
48
  node_core_1.PoiSyncService,
51
- SubqueryProject_1.SubqueryProject,
52
- dynamic_ds_service_1.DynamicDsService])
49
+ SubqueryProject_1.SubqueryProject])
53
50
  ], BlockDispatcherService);
54
51
  exports.BlockDispatcherService = BlockDispatcherService;
55
52
  //# sourceMappingURL=block-dispatcher.service.js.map
@@ -1 +1 @@
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,gDAY0B;AAE1B,qEAGyC;AACzC,8DAAyD;AACzD,wDAAoD;AAEpD;;GAEG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,2BAAsD;IAG9D,YACE,UAAsB,EACtB,UAAsB,EACd,cAA8B,EACtC,YAA2B,EAE3B,cAAiD,EAEjD,qBAA6C,EAC7C,iBAAoC,EACpC,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EACF,OAAwB,EACpD,gBAAkC;QAElC,KAAK,CACH,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CACxC,CAAC;QAzBM,mBAAc,GAAd,cAAc,CAAgB;IA0BxC,CAAC;IAES,cAAc,CAAC,KAA0B;QACjD,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,KAAkC;QAElC,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;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;IAMhC,YAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAZf,sBAAU;QACV,sBAAU;QACE,gCAAc;QACxB,6BAAa,kBAKR,6BAAiB;QACtB,wBAAY;QACP,6BAAiB;QACpB,0BAAc;QACO,iCAAe;QAClC,qCAAgB;GAlBzB,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 SmartBatchService,\n StoreCacheService,\n StoreService,\n IProjectService,\n BlockDispatcher,\n ProcessBlockResponse,\n ApiService,\n IProjectUpgradeService,\n PoiSyncService,\n IBlock,\n} from '@subql/node-core';\nimport { StellarBlockWrapper } from '@subql/types-stellar';\nimport {\n StellarProjectDs,\n SubqueryProject,\n} from '../../configure/SubqueryProject';\nimport { DynamicDsService } from '../dynamic-ds.service';\nimport { IndexerManager } from '../indexer.manager';\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<StellarBlockWrapper, StellarProjectDs>\n implements OnApplicationShutdown\n{\n constructor(\n apiService: ApiService,\n nodeConfig: NodeConfig,\n private indexerManager: IndexerManager,\n eventEmitter: EventEmitter2,\n @Inject('IProjectService')\n projectService: IProjectService<StellarProjectDs>,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService,\n smartBatchService: SmartBatchService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n dynamicDsService: DynamicDsService,\n ) {\n super(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n smartBatchService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n dynamicDsService,\n apiService.fetchBlocks.bind(apiService),\n );\n }\n\n protected getBlockHeight(block: StellarBlockWrapper): number {\n return block.block.sequence;\n }\n\n protected async indexBlock(\n block: IBlock<StellarBlockWrapper>,\n ): Promise<ProcessBlockResponse> {\n return this.indexerManager.indexBlock(\n block,\n await this.projectService.getDataSources(block.getHeader().blockHeight),\n );\n }\n}\n"]}
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,gDAW0B;AAE1B,qEAAkE;AAClE,wDAAoD;AAEpD;;GAEG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,2BAAqD;IAG7D,YACE,UAAsB,EACtB,UAAsB,EACd,cAA8B,EACtC,YAA2B,EAE3B,cAAgD,EAEhD,qBAA6C,EAC7C,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EACF,OAAwB;QAEpD,KAAK,CACH,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CACxC,CAAC;QArBM,mBAAc,GAAd,cAAc,CAAgB;IAsBxC,CAAC;IAES,cAAc,CAAC,KAA0B;QACjD,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,KAAkC;QAElC,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;CACF,CAAA;AA3CY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAA;IAKhC,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAXf,sBAAU;QACV,sBAAU;QACE,gCAAc;QACxB,6BAAa,kBAKb,wBAAY;QACP,6BAAiB;QACpB,0BAAc;QACO,iCAAe;GAhB3C,sBAAsB,CA2ClC;AA3CY,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 StoreCacheService,\n StoreService,\n IProjectService,\n BlockDispatcher,\n ProcessBlockResponse,\n ApiService,\n IProjectUpgradeService,\n PoiSyncService,\n IBlock,\n} from '@subql/node-core';\nimport { StellarBlockWrapper, SubqlDatasource } from '@subql/types-stellar';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { IndexerManager } from '../indexer.manager';\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<StellarBlockWrapper, SubqlDatasource>\n implements OnApplicationShutdown\n{\n constructor(\n apiService: ApiService,\n nodeConfig: NodeConfig,\n private indexerManager: IndexerManager,\n eventEmitter: EventEmitter2,\n @Inject('IProjectService')\n projectService: IProjectService<SubqlDatasource>,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n ) {\n super(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n apiService.fetchBlocks.bind(apiService),\n );\n }\n\n protected getBlockHeight(block: StellarBlockWrapper): number {\n return block.block.sequence;\n }\n\n protected async indexBlock(\n block: IBlock<StellarBlockWrapper>,\n ): Promise<ProcessBlockResponse> {\n return this.indexerManager.indexBlock(\n block,\n await this.projectService.getDataSources(block.getHeader().blockHeight),\n );\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { OnApplicationShutdown } from '@nestjs/common';
2
2
  import { EventEmitter2 } from '@nestjs/event-emitter';
3
- import { NodeConfig, SmartBatchService, StoreService, PoiSyncService, StoreCacheService, IProjectService, WorkerBlockDispatcher, IProjectUpgradeService, ConnectionPoolStateManager, InMemoryCacheService } from '@subql/node-core';
4
- import { StellarBlockWrapper } from '@subql/types-stellar';
5
- import { StellarProjectDs, SubqueryProject } from '../../configure/SubqueryProject';
3
+ import { NodeConfig, StoreService, PoiSyncService, StoreCacheService, IProjectService, WorkerBlockDispatcher, IProjectUpgradeService, ConnectionPoolStateManager, InMemoryCacheService } from '@subql/node-core';
4
+ import { StellarBlockWrapper, SubqlDatasource } from '@subql/types-stellar';
5
+ import { SubqueryProject } from '../../configure/SubqueryProject';
6
6
  import { StellarApiConnection } from '../../stellar/api.connection';
7
7
  import { DynamicDsService } from '../dynamic-ds.service';
8
8
  import { UnfinalizedBlocksService } from '../unfinalizedBlocks.service';
@@ -10,8 +10,8 @@ import { IIndexerWorker } from '../worker/worker';
10
10
  type IndexerWorker = IIndexerWorker & {
11
11
  terminate: () => Promise<number>;
12
12
  };
13
- export declare class WorkerBlockDispatcherService extends WorkerBlockDispatcher<StellarProjectDs, IndexerWorker, StellarBlockWrapper> implements OnApplicationShutdown {
14
- constructor(nodeConfig: NodeConfig, eventEmitter: EventEmitter2, projectService: IProjectService<StellarProjectDs>, projectUpgradeService: IProjectUpgradeService, smartBatchService: SmartBatchService, cacheService: InMemoryCacheService, storeService: StoreService, storeCacheService: StoreCacheService, poiSyncService: PoiSyncService, project: SubqueryProject, dynamicDsService: DynamicDsService, unfinalizedBlocksSevice: UnfinalizedBlocksService, connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>);
13
+ export declare class WorkerBlockDispatcherService extends WorkerBlockDispatcher<SubqlDatasource, IndexerWorker, StellarBlockWrapper> implements OnApplicationShutdown {
14
+ constructor(nodeConfig: NodeConfig, eventEmitter: EventEmitter2, projectService: IProjectService<SubqlDatasource>, projectUpgradeService: IProjectUpgradeService, cacheService: InMemoryCacheService, storeService: StoreService, storeCacheService: StoreCacheService, poiSyncService: PoiSyncService, project: SubqueryProject, dynamicDsService: DynamicDsService, unfinalizedBlocksSevice: UnfinalizedBlocksService, connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>);
15
15
  protected fetchBlock(worker: IndexerWorker, height: number): Promise<void>;
16
16
  }
17
17
  export {};
@@ -27,8 +27,8 @@ const dynamic_ds_service_1 = require("../dynamic-ds.service");
27
27
  const unfinalizedBlocks_service_1 = require("../unfinalizedBlocks.service");
28
28
  const logger = (0, node_core_1.getLogger)('WorkerBlockDispatcherService');
29
29
  let WorkerBlockDispatcherService = class WorkerBlockDispatcherService extends node_core_1.WorkerBlockDispatcher {
30
- constructor(nodeConfig, eventEmitter, projectService, projectUpgradeService, smartBatchService, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocksSevice, connectionPoolState) {
31
- super(nodeConfig, eventEmitter, projectService, projectUpgradeService, smartBatchService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, () => (0, node_core_1.createIndexerWorker)(path_1.default.resolve(__dirname, '../../../dist/indexer/worker/worker.js'), [], storeService.getStore(), cacheService.getCache(), dynamicDsService, unfinalizedBlocksSevice, connectionPoolState, project.root, projectService.startHeight));
30
+ constructor(nodeConfig, eventEmitter, projectService, projectUpgradeService, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocksSevice, connectionPoolState) {
31
+ super(nodeConfig, eventEmitter, projectService, projectUpgradeService, storeService, storeCacheService, poiSyncService, project, () => (0, node_core_1.createIndexerWorker)(path_1.default.resolve(__dirname, '../../../dist/indexer/worker/worker.js'), [], storeService.getStore(), cacheService.getCache(), dynamicDsService, unfinalizedBlocksSevice, connectionPoolState, project.root, projectService.startHeight));
32
32
  }
33
33
  async fetchBlock(worker, height) {
34
34
  const start = new Date();
@@ -40,10 +40,9 @@ WorkerBlockDispatcherService = __decorate([
40
40
  (0, common_1.Injectable)(),
41
41
  __param(2, (0, common_1.Inject)('IProjectService')),
42
42
  __param(3, (0, common_1.Inject)('IProjectUpgradeService')),
43
- __param(9, (0, common_1.Inject)('ISubqueryProject')),
43
+ __param(8, (0, common_1.Inject)('ISubqueryProject')),
44
44
  __metadata("design:paramtypes", [node_core_1.NodeConfig,
45
- event_emitter_1.EventEmitter2, Object, Object, node_core_1.SmartBatchService,
46
- node_core_1.InMemoryCacheService,
45
+ event_emitter_1.EventEmitter2, Object, Object, node_core_1.InMemoryCacheService,
47
46
  node_core_1.StoreService,
48
47
  node_core_1.StoreCacheService,
49
48
  node_core_1.PoiSyncService,
@@ -1 +1 @@
1
- {"version":3,"file":"worker-block-dispatcher.service.js","sourceRoot":"","sources":["../../../src/indexer/blockDispatcher/worker-block-dispatcher.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;;;;AAEnC,gDAAwB;AACxB,2CAA2E;AAC3E,yDAAsD;AACtD,gDAa0B;AAE1B,qEAGyC;AAGzC,8DAAyD;AACzD,4EAAwE;AAGxE,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,8BAA8B,CAAC,CAAC;AAOlD,IAAM,4BAA4B,GAAlC,MAAM,4BACX,SAAQ,iCAIP;IAGD,YACE,UAAsB,EACtB,YAA2B,EAE3B,cAAiD,EAEjD,qBAA6C,EAC7C,iBAAoC,EACpC,YAAkC,EAClC,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EACF,OAAwB,EACpD,gBAAkC,EAClC,uBAAiD,EACjD,mBAAqE;QAErE,KAAK,CACH,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,GAAG,EAAE,CACH,IAAA,+BAAmB,EAMjB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC,EACjE,EAAE,EACF,YAAY,CAAC,QAAQ,EAAE,EACvB,YAAY,CAAC,QAAQ,EAAE,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,CAAC,IAAI,EACZ,cAAc,CAAC,WAAW,CAC3B,CACJ,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,MAAqB,EACrB,MAAc;QAEd,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;CACF,CAAA;AAhEY,4BAA4B;IADxC,IAAA,mBAAU,GAAE;IAYR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAA;IAOhC,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAXf,sBAAU;QACR,6BAAa,kBAKR,6BAAiB;QACtB,gCAAoB;QACpB,wBAAY;QACP,6BAAiB;QACpB,0BAAc;QACO,iCAAe;QAClC,qCAAgB;QACT,oDAAwB;QAC5B,sCAA0B;GAvBtC,4BAA4B,CAgExC;AAhEY,oEAA4B","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n getLogger,\n NodeConfig,\n SmartBatchService,\n StoreService,\n PoiSyncService,\n StoreCacheService,\n IProjectService,\n WorkerBlockDispatcher,\n IProjectUpgradeService,\n ConnectionPoolStateManager,\n createIndexerWorker,\n InMemoryCacheService,\n} from '@subql/node-core';\nimport { StellarBlockWrapper } from '@subql/types-stellar';\nimport {\n StellarProjectDs,\n SubqueryProject,\n} from '../../configure/SubqueryProject';\nimport { StellarApiConnection } from '../../stellar/api.connection';\nimport { StellarBlockWrapped } from '../../stellar/block.stellar';\nimport { DynamicDsService } from '../dynamic-ds.service';\nimport { UnfinalizedBlocksService } from '../unfinalizedBlocks.service';\nimport { IIndexerWorker } from '../worker/worker';\n\nconst logger = getLogger('WorkerBlockDispatcherService');\n\ntype IndexerWorker = IIndexerWorker & {\n terminate: () => Promise<number>;\n};\n\n@Injectable()\nexport class WorkerBlockDispatcherService\n extends WorkerBlockDispatcher<\n StellarProjectDs,\n IndexerWorker,\n StellarBlockWrapper\n >\n implements OnApplicationShutdown\n{\n constructor(\n nodeConfig: NodeConfig,\n eventEmitter: EventEmitter2,\n @Inject('IProjectService')\n projectService: IProjectService<StellarProjectDs>,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService,\n smartBatchService: SmartBatchService,\n cacheService: InMemoryCacheService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n dynamicDsService: DynamicDsService,\n unfinalizedBlocksSevice: UnfinalizedBlocksService,\n connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>,\n ) {\n super(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n smartBatchService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n dynamicDsService,\n () =>\n createIndexerWorker<\n IIndexerWorker,\n StellarApiConnection,\n StellarBlockWrapped,\n StellarProjectDs\n >(\n path.resolve(__dirname, '../../../dist/indexer/worker/worker.js'),\n [],\n storeService.getStore(),\n cacheService.getCache(),\n dynamicDsService,\n unfinalizedBlocksSevice,\n connectionPoolState,\n project.root,\n projectService.startHeight,\n ),\n );\n }\n\n protected async fetchBlock(\n worker: IndexerWorker,\n height: number,\n ): Promise<void> {\n const start = new Date();\n await worker.fetchBlock(height, null);\n const end = new Date();\n }\n}\n"]}
1
+ {"version":3,"file":"worker-block-dispatcher.service.js","sourceRoot":"","sources":["../../../src/indexer/blockDispatcher/worker-block-dispatcher.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;;;;AAEnC,gDAAwB;AACxB,2CAA2E;AAC3E,yDAAsD;AACtD,gDAY0B;AAE1B,qEAAkE;AAGlE,8DAAyD;AACzD,4EAAwE;AAGxE,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,8BAA8B,CAAC,CAAC;AAOlD,IAAM,4BAA4B,GAAlC,MAAM,4BACX,SAAQ,iCAIP;IAGD,YACE,UAAsB,EACtB,YAA2B,EAE3B,cAAgD,EAEhD,qBAA6C,EAC7C,YAAkC,EAClC,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EACF,OAAwB,EACpD,gBAAkC,EAClC,uBAAiD,EACjD,mBAAqE;QAErE,KAAK,CACH,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,GAAG,EAAE,CACH,IAAA,+BAAmB,EAMjB,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC,EACjE,EAAE,EACF,YAAY,CAAC,QAAQ,EAAE,EACvB,YAAY,CAAC,QAAQ,EAAE,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,CAAC,IAAI,EACZ,cAAc,CAAC,WAAW,CAC3B,CACJ,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,MAAqB,EACrB,MAAc;QAEd,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;CACF,CAAA;AA7DY,4BAA4B;IADxC,IAAA,mBAAU,GAAE;IAYR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,IAAA,eAAM,EAAC,wBAAwB,CAAC,CAAA;IAMhC,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCAVf,sBAAU;QACR,6BAAa,kBAKb,gCAAoB;QACpB,wBAAY;QACP,6BAAiB;QACpB,0BAAc;QACO,iCAAe;QAClC,qCAAgB;QACT,oDAAwB;QAC5B,sCAA0B;GAtBtC,4BAA4B,CA6DxC;AA7DY,oEAA4B","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n getLogger,\n NodeConfig,\n StoreService,\n PoiSyncService,\n StoreCacheService,\n IProjectService,\n WorkerBlockDispatcher,\n IProjectUpgradeService,\n ConnectionPoolStateManager,\n createIndexerWorker,\n InMemoryCacheService,\n} from '@subql/node-core';\nimport { StellarBlockWrapper, SubqlDatasource } from '@subql/types-stellar';\nimport { SubqueryProject } from '../../configure/SubqueryProject';\nimport { StellarApiConnection } from '../../stellar/api.connection';\nimport { StellarBlockWrapped } from '../../stellar/block.stellar';\nimport { DynamicDsService } from '../dynamic-ds.service';\nimport { UnfinalizedBlocksService } from '../unfinalizedBlocks.service';\nimport { IIndexerWorker } from '../worker/worker';\n\nconst logger = getLogger('WorkerBlockDispatcherService');\n\ntype IndexerWorker = IIndexerWorker & {\n terminate: () => Promise<number>;\n};\n\n@Injectable()\nexport class WorkerBlockDispatcherService\n extends WorkerBlockDispatcher<\n SubqlDatasource,\n IndexerWorker,\n StellarBlockWrapper\n >\n implements OnApplicationShutdown\n{\n constructor(\n nodeConfig: NodeConfig,\n eventEmitter: EventEmitter2,\n @Inject('IProjectService')\n projectService: IProjectService<SubqlDatasource>,\n @Inject('IProjectUpgradeService')\n projectUpgradeService: IProjectUpgradeService,\n cacheService: InMemoryCacheService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n dynamicDsService: DynamicDsService,\n unfinalizedBlocksSevice: UnfinalizedBlocksService,\n connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>,\n ) {\n super(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n () =>\n createIndexerWorker<\n IIndexerWorker,\n StellarApiConnection,\n StellarBlockWrapped,\n SubqlDatasource\n >(\n path.resolve(__dirname, '../../../dist/indexer/worker/worker.js'),\n [],\n storeService.getStore(),\n cacheService.getCache(),\n dynamicDsService,\n unfinalizedBlocksSevice,\n connectionPoolState,\n project.root,\n projectService.startHeight,\n ),\n );\n }\n\n protected async fetchBlock(\n worker: IndexerWorker,\n height: number,\n ): Promise<void> {\n const start = new Date();\n await worker.fetchBlock(height, null);\n const end = new Date();\n }\n}\n"]}
@@ -1,9 +1,5 @@
1
- import { StellarHandlerKind, isCustomDs, SubqlStellarCustomDataSource, SubqlStellarDataSource, SubqlDatasourceProcessor } from '@subql/common-stellar';
1
+ import { isCustomDs, SubqlStellarCustomDataSource, SubqlStellarDataSource, SubqlDatasourceProcessor } from '@subql/common-stellar';
2
2
  import { BaseDsProcessorService } from '@subql/node-core';
3
- import { SecondLayerHandlerProcessor_0_0_0, SecondLayerHandlerProcessor_1_0_0, SubqlCustomDatasource } from '@subql/types-stellar';
4
- export declare function isSecondLayerHandlerProcessor_0_0_0<K extends StellarHandlerKind, F extends Record<string, unknown>, E, DS extends SubqlCustomDatasource = SubqlStellarCustomDataSource>(processor: SecondLayerHandlerProcessor_0_0_0<K, F, E, DS> | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>): processor is SecondLayerHandlerProcessor_0_0_0<K, F, E, DS>;
5
- export declare function isSecondLayerHandlerProcessor_1_0_0<K extends StellarHandlerKind, F extends Record<string, unknown>, E, DS extends SubqlStellarCustomDataSource = SubqlStellarCustomDataSource>(processor: SecondLayerHandlerProcessor_0_0_0<K, F, E, DS> | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>): processor is SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>;
6
- export declare function asSecondLayerHandlerProcessor_1_0_0<K extends StellarHandlerKind, F extends Record<string, unknown>, E, DS extends SubqlStellarCustomDataSource = SubqlStellarCustomDataSource>(processor: SecondLayerHandlerProcessor_0_0_0<K, F, E, DS> | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>): SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>;
7
3
  export declare class DsProcessorService extends BaseDsProcessorService<SubqlStellarDataSource, SubqlStellarCustomDataSource<string>, SubqlDatasourceProcessor<string, Record<string, unknown>>> {
8
4
  protected isCustomDs: typeof isCustomDs;
9
5
  }
@@ -8,31 +8,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  return c > 3 && r && Object.defineProperty(target, key, r), r;
9
9
  };
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.DsProcessorService = exports.asSecondLayerHandlerProcessor_1_0_0 = exports.isSecondLayerHandlerProcessor_1_0_0 = exports.isSecondLayerHandlerProcessor_0_0_0 = void 0;
11
+ exports.DsProcessorService = void 0;
12
12
  const common_1 = require("@nestjs/common");
13
13
  const common_stellar_1 = require("@subql/common-stellar");
14
14
  const node_core_1 = require("@subql/node-core");
15
- function isSecondLayerHandlerProcessor_0_0_0(processor) {
16
- // Exisiting datasource processors had no concept of specVersion, therefore undefined is equivalent to 0.0.0
17
- return processor.specVersion === undefined;
18
- }
19
- exports.isSecondLayerHandlerProcessor_0_0_0 = isSecondLayerHandlerProcessor_0_0_0;
20
- function isSecondLayerHandlerProcessor_1_0_0(processor) {
21
- return processor.specVersion === '1.0.0';
22
- }
23
- exports.isSecondLayerHandlerProcessor_1_0_0 = isSecondLayerHandlerProcessor_1_0_0;
24
- function asSecondLayerHandlerProcessor_1_0_0(processor) {
25
- if (isSecondLayerHandlerProcessor_1_0_0(processor)) {
26
- return processor;
27
- }
28
- if (!isSecondLayerHandlerProcessor_0_0_0(processor)) {
29
- throw new Error('Unsupported ds processor version');
30
- }
31
- return Object.assign(Object.assign({}, processor), { specVersion: '1.0.0', filterProcessor: (params) => processor.filterProcessor(params.filter, params.input, params.ds), transformer: (params) => processor
32
- .transformer(params.input, params.ds, params.api, params.assets)
33
- .then((res) => [res]) });
34
- }
35
- exports.asSecondLayerHandlerProcessor_1_0_0 = asSecondLayerHandlerProcessor_1_0_0;
36
15
  let DsProcessorService = class DsProcessorService extends node_core_1.BaseDsProcessorService {
37
16
  constructor() {
38
17
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"ds-processor.service.js","sourceRoot":"","sources":["../../src/indexer/ds-processor.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAA4C;AAC5C,0DAM+B;AAC/B,gDAA0D;AAO1D,SAAgB,mCAAmC,CAMjD,SAEkD;IAElD,4GAA4G;IAC5G,OAAO,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC;AAC7C,CAAC;AAZD,kFAYC;AAED,SAAgB,mCAAmC,CAMjD,SAEkD;IAElD,OAAO,SAAS,CAAC,WAAW,KAAK,OAAO,CAAC;AAC3C,CAAC;AAXD,kFAWC;AAED,SAAgB,mCAAmC,CAMjD,SAEkD;IAElD,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IAED,uCACK,SAAS,KACZ,WAAW,EAAE,OAAO,EACpB,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1B,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EACnE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACtB,SAAS;aACN,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;aAC/D,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IACzB;AACJ,CAAC;AA5BD,kFA4BC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,kCAIvC;IAJM;;QAKK,eAAU,GAAG,2BAAU,CAAC;IACpC,CAAC;CAAA,CAAA;AANY,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAM9B;AANY,gDAAkB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Injectable } from '@nestjs/common';\nimport {\n StellarHandlerKind,\n isCustomDs,\n SubqlStellarCustomDataSource,\n SubqlStellarDataSource,\n SubqlDatasourceProcessor,\n} from '@subql/common-stellar';\nimport { BaseDsProcessorService } from '@subql/node-core';\nimport {\n SecondLayerHandlerProcessor_0_0_0,\n SecondLayerHandlerProcessor_1_0_0,\n SubqlCustomDatasource,\n} from '@subql/types-stellar';\n\nexport function isSecondLayerHandlerProcessor_0_0_0<\n K extends StellarHandlerKind,\n F extends Record<string, unknown>,\n E,\n DS extends SubqlCustomDatasource = SubqlStellarCustomDataSource,\n>(\n processor:\n | SecondLayerHandlerProcessor_0_0_0<K, F, E, DS>\n | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>,\n): processor is SecondLayerHandlerProcessor_0_0_0<K, F, E, DS> {\n // Exisiting datasource processors had no concept of specVersion, therefore undefined is equivalent to 0.0.0\n return processor.specVersion === undefined;\n}\n\nexport function isSecondLayerHandlerProcessor_1_0_0<\n K extends StellarHandlerKind,\n F extends Record<string, unknown>,\n E,\n DS extends SubqlStellarCustomDataSource = SubqlStellarCustomDataSource,\n>(\n processor:\n | SecondLayerHandlerProcessor_0_0_0<K, F, E, DS>\n | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>,\n): processor is SecondLayerHandlerProcessor_1_0_0<K, F, E, DS> {\n return processor.specVersion === '1.0.0';\n}\n\nexport function asSecondLayerHandlerProcessor_1_0_0<\n K extends StellarHandlerKind,\n F extends Record<string, unknown>,\n E,\n DS extends SubqlStellarCustomDataSource = SubqlStellarCustomDataSource,\n>(\n processor:\n | SecondLayerHandlerProcessor_0_0_0<K, F, E, DS>\n | SecondLayerHandlerProcessor_1_0_0<K, F, E, DS>,\n): SecondLayerHandlerProcessor_1_0_0<K, F, E, DS> {\n if (isSecondLayerHandlerProcessor_1_0_0(processor)) {\n return processor;\n }\n\n if (!isSecondLayerHandlerProcessor_0_0_0(processor)) {\n throw new Error('Unsupported ds processor version');\n }\n\n return {\n ...processor,\n specVersion: '1.0.0',\n filterProcessor: (params) =>\n processor.filterProcessor(params.filter, params.input, params.ds),\n transformer: (params) =>\n processor\n .transformer(params.input, params.ds, params.api, params.assets)\n .then((res) => [res]),\n };\n}\n\n@Injectable()\nexport class DsProcessorService extends BaseDsProcessorService<\n SubqlStellarDataSource,\n SubqlStellarCustomDataSource<string>,\n SubqlDatasourceProcessor<string, Record<string, unknown>>\n> {\n protected isCustomDs = isCustomDs;\n}\n"]}
1
+ {"version":3,"file":"ds-processor.service.js","sourceRoot":"","sources":["../../src/indexer/ds-processor.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAA4C;AAC5C,0DAK+B;AAC/B,gDAA0D;AAGnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,kCAIvC;IAJM;;QAKK,eAAU,GAAG,2BAAU,CAAC;IACpC,CAAC;CAAA,CAAA;AANY,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAM9B;AANY,gDAAkB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Injectable } from '@nestjs/common';\nimport {\n isCustomDs,\n SubqlStellarCustomDataSource,\n SubqlStellarDataSource,\n SubqlDatasourceProcessor,\n} from '@subql/common-stellar';\nimport { BaseDsProcessorService } from '@subql/node-core';\n\n@Injectable()\nexport class DsProcessorService extends BaseDsProcessorService<\n SubqlStellarDataSource,\n SubqlStellarCustomDataSource<string>,\n SubqlDatasourceProcessor<string, Record<string, unknown>>\n> {\n protected isCustomDs = isCustomDs;\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { DatasourceParams, DynamicDsService as BaseDynamicDsService } from '@subql/node-core';
2
- import { StellarProjectDs, SubqueryProject } from '../configure/SubqueryProject';
2
+ import { SubqlDatasource } from '@subql/types-stellar';
3
+ import { SubqueryProject } from '../configure/SubqueryProject';
3
4
  import { DsProcessorService } from './ds-processor.service';
4
- export declare class DynamicDsService extends BaseDynamicDsService<StellarProjectDs> {
5
+ export declare class DynamicDsService extends BaseDynamicDsService<SubqlDatasource, SubqueryProject> {
5
6
  private readonly dsProcessorService;
6
- private readonly project;
7
7
  constructor(dsProcessorService: DsProcessorService, project: SubqueryProject);
8
- protected getDatasource(params: DatasourceParams): Promise<StellarProjectDs>;
8
+ protected getDatasource(params: DatasourceParams): Promise<SubqlDatasource>;
9
9
  }
@@ -13,17 +13,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
13
13
  var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  return function (target, key) { decorator(target, key, paramIndex); }
15
15
  };
16
- var __rest = (this && this.__rest) || function (s, e) {
17
- var t = {};
18
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
19
- t[p] = s[p];
20
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
21
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
22
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
23
- t[p[i]] = s[p[i]];
24
- }
25
- return t;
26
- };
27
16
  Object.defineProperty(exports, "__esModule", { value: true });
28
17
  exports.DynamicDsService = void 0;
29
18
  const common_1 = require("@nestjs/common");
@@ -31,22 +20,15 @@ const common_stellar_1 = require("@subql/common-stellar");
31
20
  const node_core_1 = require("@subql/node-core");
32
21
  const class_transformer_1 = require("class-transformer");
33
22
  const class_validator_1 = require("class-validator");
34
- const lodash_1 = require("lodash");
35
23
  const SubqueryProject_1 = require("../configure/SubqueryProject");
36
24
  const ds_processor_service_1 = require("./ds-processor.service");
37
25
  let DynamicDsService = class DynamicDsService extends node_core_1.DynamicDsService {
38
26
  constructor(dsProcessorService, project) {
39
- super();
27
+ super(project);
40
28
  this.dsProcessorService = dsProcessorService;
41
- this.project = project;
42
29
  }
43
30
  async getDatasource(params) {
44
- const t = this.project.templates.find((t) => t.name === params.templateName);
45
- if (!t) {
46
- throw new Error(`Unable to find matching template in project for name: "${params.templateName}"`);
47
- }
48
- const _a = (0, lodash_1.cloneDeep)(t), { name } = _a, template = __rest(_a, ["name"]);
49
- const dsObj = Object.assign(Object.assign({}, template), { startBlock: params.startBlock });
31
+ const dsObj = this.getTemplate(params.templateName, params.startBlock);
50
32
  try {
51
33
  if ((0, common_stellar_1.isCustomDs)(dsObj)) {
52
34
  dsObj.processor.options = Object.assign(Object.assign({}, dsObj.processor.options), params.args);
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-ds.service.js","sourceRoot":"","sources":["../../src/indexer/dynamic-ds.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,0DAI+B;AAC/B,gDAG0B;AAC1B,yDAAiD;AACjD,qDAA+C;AAC/C,mCAAmC;AACnC,kEAGsC;AACtC,iEAA4D;AAGrD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,4BAAsC;IAC1E,YACmB,kBAAsC,EACV,OAAwB;QAErE,KAAK,EAAE,CAAC;QAHS,uBAAkB,GAAlB,kBAAkB,CAAoB;QACV,YAAO,GAAP,OAAO,CAAiB;IAGvE,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,MAAwB;QAExB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,CACtC,CAAC;QACF,IAAI,CAAC,CAAC,EAAE;YACN,MAAM,IAAI,KAAK,CACb,0DAA0D,MAAM,CAAC,YAAY,GAAG,CACjF,CAAC;SACH;QACD,MAAM,KAAwB,IAAA,kBAAS,EAAC,CAAC,CAAC,EAApC,EAAE,IAAI,OAA8B,EAAzB,QAAQ,cAAnB,QAAqB,CAAe,CAAC;QAE3C,MAAM,KAAK,GAAG,gCACT,QAAQ,KACX,UAAU,EAAE,MAAM,CAAC,UAAU,GACV,CAAC;QACtB,IAAI;YACF,IAAI,IAAA,2BAAU,EAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,SAAS,CAAC,OAAO,mCAClB,KAAK,CAAC,SAAS,CAAC,OAAO,GACvB,MAAM,CAAC,IAAI,CACf,CAAC;gBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACzD;iBAAM,IAAI,IAAA,4BAAW,EAAC,KAAK,CAAC,EAAE;gBAC7B,KAAK,CAAC,OAAO,mCACR,KAAK,CAAC,OAAO,GACb,MAAM,CAAC,IAAI,CACf,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAA,gCAAY,EAAC,6CAA4B,EAAE,KAAK,CAAC,CAAC;gBAEnE,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,QAAQ,EAAE;oBACpC,SAAS,EAAE,IAAI;oBACf,oBAAoB,EAAE,KAAK;iBAC5B,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM;yBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;yBACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;iBACH;aACF;YACD,OAAO,KAAK,CAAC;SACd;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;CACF,CAAA;AAzDY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCADU,yCAAkB;QACD,iCAAe;GAH5D,gBAAgB,CAyD5B;AAzDY,4CAAgB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport {\n StellarRuntimeDataSourceImpl,\n isCustomDs,\n isRuntimeDs,\n} from '@subql/common-stellar';\nimport {\n DatasourceParams,\n DynamicDsService as BaseDynamicDsService,\n} from '@subql/node-core';\nimport { plainToClass } from 'class-transformer';\nimport { validateSync } from 'class-validator';\nimport { cloneDeep } from 'lodash';\nimport {\n StellarProjectDs,\n SubqueryProject,\n} from '../configure/SubqueryProject';\nimport { DsProcessorService } from './ds-processor.service';\n\n@Injectable()\nexport class DynamicDsService extends BaseDynamicDsService<StellarProjectDs> {\n constructor(\n private readonly dsProcessorService: DsProcessorService,\n @Inject('ISubqueryProject') private readonly project: SubqueryProject,\n ) {\n super();\n }\n\n protected async getDatasource(\n params: DatasourceParams,\n ): Promise<StellarProjectDs> {\n const t = this.project.templates.find(\n (t) => t.name === params.templateName,\n );\n if (!t) {\n throw new Error(\n `Unable to find matching template in project for name: \"${params.templateName}\"`,\n );\n }\n const { name, ...template } = cloneDeep(t);\n\n const dsObj = {\n ...template,\n startBlock: params.startBlock,\n } as StellarProjectDs;\n try {\n if (isCustomDs(dsObj)) {\n dsObj.processor.options = {\n ...dsObj.processor.options,\n ...params.args,\n };\n await this.dsProcessorService.validateCustomDs([dsObj]);\n } else if (isRuntimeDs(dsObj)) {\n dsObj.options = {\n ...dsObj.options,\n ...params.args,\n };\n\n const parsedDs = plainToClass(StellarRuntimeDataSourceImpl, dsObj);\n\n const errors = validateSync(parsedDs, {\n whitelist: true,\n forbidNonWhitelisted: false,\n });\n if (errors.length) {\n throw new Error(\n `Dynamic ds is invalid\\n${errors\n .map((e) => e.toString())\n .join('\\n')}`,\n );\n }\n }\n return dsObj;\n } catch (e) {\n throw new Error(`Unable to create dynamic datasource.\\n ${e.message}`);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"dynamic-ds.service.js","sourceRoot":"","sources":["../../src/indexer/dynamic-ds.service.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;;;;AAEnC,2CAAoD;AACpD,0DAI+B;AAC/B,gDAG0B;AAE1B,yDAAiD;AACjD,qDAA+C;AAC/C,kEAA+D;AAC/D,iEAA4D;AAGrD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,4BAGrC;IACC,YACmB,kBAAsC,EAC3B,OAAwB;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC;QAHE,uBAAkB,GAAlB,kBAAkB,CAAoB;IAIzD,CAAC;IAES,KAAK,CAAC,aAAa,CAC3B,MAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAC5B,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,CAClB,CAAC;QAEF,IAAI;YACF,IAAI,IAAA,2BAAU,EAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,SAAS,CAAC,OAAO,mCAClB,KAAK,CAAC,SAAS,CAAC,OAAO,GACvB,MAAM,CAAC,IAAI,CACf,CAAC;gBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACzD;iBAAM,IAAI,IAAA,4BAAW,EAAC,KAAK,CAAC,EAAE;gBAC7B,KAAK,CAAC,OAAO,mCACR,KAAK,CAAC,OAAO,GACb,MAAM,CAAC,IAAI,CACf,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAA,gCAAY,EAAC,6CAA4B,EAAE,KAAK,CAAC,CAAC;gBAEnE,MAAM,MAAM,GAAG,IAAA,8BAAY,EAAC,QAAQ,EAAE;oBACpC,SAAS,EAAE,IAAI;oBACf,oBAAoB,EAAE,KAAK;iBAC5B,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,EAAE;oBACjB,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM;yBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;yBACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;iBACH;aACF;YACD,OAAO,KAAK,CAAC;SACd;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACxE;IACH,CAAC;CACF,CAAA;AAnDY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAOR,WAAA,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAA;qCADU,yCAAkB;QAClB,iCAAe;GAN3C,gBAAgB,CAmD5B;AAnDY,4CAAgB","sourcesContent":["// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport { Inject, Injectable } from '@nestjs/common';\nimport {\n StellarRuntimeDataSourceImpl,\n isCustomDs,\n isRuntimeDs,\n} from '@subql/common-stellar';\nimport {\n DatasourceParams,\n DynamicDsService as BaseDynamicDsService,\n} from '@subql/node-core';\nimport { SubqlDatasource } from '@subql/types-stellar';\nimport { plainToClass } from 'class-transformer';\nimport { validateSync } from 'class-validator';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { DsProcessorService } from './ds-processor.service';\n\n@Injectable()\nexport class DynamicDsService extends BaseDynamicDsService<\n SubqlDatasource,\n SubqueryProject\n> {\n constructor(\n private readonly dsProcessorService: DsProcessorService,\n @Inject('ISubqueryProject') project: SubqueryProject,\n ) {\n super(project);\n }\n\n protected async getDatasource(\n params: DatasourceParams,\n ): Promise<SubqlDatasource> {\n const dsObj = this.getTemplate<SubqlDatasource>(\n params.templateName,\n params.startBlock,\n );\n\n try {\n if (isCustomDs(dsObj)) {\n dsObj.processor.options = {\n ...dsObj.processor.options,\n ...params.args,\n };\n await this.dsProcessorService.validateCustomDs([dsObj]);\n } else if (isRuntimeDs(dsObj)) {\n dsObj.options = {\n ...dsObj.options,\n ...params.args,\n };\n\n const parsedDs = plainToClass(StellarRuntimeDataSourceImpl, dsObj);\n\n const errors = validateSync(parsedDs, {\n whitelist: true,\n forbidNonWhitelisted: false,\n });\n if (errors.length) {\n throw new Error(\n `Dynamic ds is invalid\\n${errors\n .map((e) => e.toString())\n .join('\\n')}`,\n );\n }\n }\n return dsObj;\n } catch (e) {\n throw new Error(`Unable to create dynamic datasource.\\n ${e.message}`);\n }\n }\n}\n"]}
@@ -20,7 +20,6 @@ const dynamic_ds_service_1 = require("./dynamic-ds.service");
20
20
  const fetch_service_1 = require("./fetch.service");
21
21
  const indexer_manager_1 = require("./indexer.manager");
22
22
  const project_service_1 = require("./project.service");
23
- const sandbox_service_1 = require("./sandbox.service");
24
23
  const unfinalizedBlocks_service_1 = require("./unfinalizedBlocks.service");
25
24
  let FetchModule = class FetchModule {
26
25
  };
@@ -47,18 +46,11 @@ FetchModule = __decorate([
47
46
  indexer_manager_1.IndexerManager,
48
47
  node_core_1.ConnectionPoolService,
49
48
  node_core_1.ConnectionPoolStateManager,
50
- {
51
- provide: node_core_1.SmartBatchService,
52
- useFactory: (nodeConfig) => {
53
- return new node_core_1.SmartBatchService(nodeConfig.batchSize);
54
- },
55
- inject: [node_core_1.NodeConfig],
56
- },
57
49
  {
58
50
  provide: 'IBlockDispatcher',
59
- useFactory: (nodeConfig, eventEmitter, projectService, projectUpgradeService, apiService, indexerManager, smartBatchService, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocks, connectionPoolState) => nodeConfig.workers
60
- ? new blockDispatcher_1.WorkerBlockDispatcherService(nodeConfig, eventEmitter, projectService, projectUpgradeService, smartBatchService, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocks, connectionPoolState)
61
- : new blockDispatcher_1.BlockDispatcherService(apiService, nodeConfig, indexerManager, eventEmitter, projectService, projectUpgradeService, smartBatchService, storeService, storeCacheService, poiSyncService, project, dynamicDsService),
51
+ useFactory: (nodeConfig, eventEmitter, projectService, projectUpgradeService, apiService, indexerManager, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocks, connectionPoolState) => nodeConfig.workers
52
+ ? new blockDispatcher_1.WorkerBlockDispatcherService(nodeConfig, eventEmitter, projectService, projectUpgradeService, cacheService, storeService, storeCacheService, poiSyncService, project, dynamicDsService, unfinalizedBlocks, connectionPoolState)
53
+ : new blockDispatcher_1.BlockDispatcherService(apiService, nodeConfig, indexerManager, eventEmitter, projectService, projectUpgradeService, storeService, storeCacheService, poiSyncService, project),
62
54
  inject: [
63
55
  node_core_1.NodeConfig,
64
56
  event_emitter_1.EventEmitter2,
@@ -66,7 +58,6 @@ FetchModule = __decorate([
66
58
  'IProjectUpgradeService',
67
59
  node_core_1.ApiService,
68
60
  indexer_manager_1.IndexerManager,
69
- node_core_1.SmartBatchService,
70
61
  node_core_1.InMemoryCacheService,
71
62
  node_core_1.StoreService,
72
63
  node_core_1.StoreCacheService,
@@ -81,7 +72,7 @@ FetchModule = __decorate([
81
72
  node_core_1.IndexingBenchmarkService,
82
73
  node_core_1.PoiBenchmarkService,
83
74
  dictionary_1.StellarDictionaryService,
84
- sandbox_service_1.SandboxService,
75
+ node_core_1.SandboxService,
85
76
  ds_processor_service_1.DsProcessorService,
86
77
  dynamic_ds_service_1.DynamicDsService,
87
78
  node_core_1.PoiService,
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.module.js","sourceRoot":"","sources":["../../src/indexer/fetch.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAAsD;AACtD,gDAe0B;AAG1B,wEAAmE;AACnE,uDAG2B;AAC3B,6CAAwD;AACxD,iEAA4D;AAC5D,6DAAwD;AACxD,mDAA+C;AAC/C,uDAAmD;AACnD,uDAAmD;AACnD,uDAAmD;AACnD,2EAAuE;AA6HhE,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IA3HvB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,gCAAoB;YACpB,wBAAY;YACZ,6BAAiB;YACjB;gBACE,OAAO,EAAE,sBAAU;gBACnB,UAAU,EAAE,KAAK,EACf,OAAwB,EACxB,qBAA4C,EAC5C,qBAAkE,EAClE,YAA2B,EAC3B,EAAE;oBACF,MAAM,UAAU,GAAG,IAAI,uCAAiB,CACtC,OAAO,EACP,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,CACb,CAAC;oBACF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE;oBACN,kBAAkB;oBAClB,wBAAwB;oBACxB,iCAAqB;oBACrB,6BAAa;iBACd;aACF;YACD,gCAAc;YACd,iCAAqB;YACrB,sCAA0B;YAC1B;gBACE,OAAO,EAAE,6BAAiB;gBAC1B,UAAU,EAAE,CAAC,UAAsB,EAAE,EAAE;oBACrC,OAAO,IAAI,6BAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,EAAE,CAAC,sBAAU,CAAC;aACrB;YACD;gBACE,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,CACV,UAAsB,EACtB,YAA2B,EAC3B,cAA8B,EAC9B,qBAA6C,EAC7C,UAAsB,EACtB,cAA8B,EAC9B,iBAAoC,EACpC,YAAkC,EAClC,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EAC9B,OAAwB,EACxB,gBAAkC,EAClC,iBAA2C,EAC3C,mBAAqE,EACrE,EAAE,CACF,UAAU,CAAC,OAAO;oBAChB,CAAC,CAAC,IAAI,8CAA4B,CAC9B,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,CACpB;oBACH,CAAC,CAAC,IAAI,wCAAsB,CACxB,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,gBAAgB,CACjB;gBACP,MAAM,EAAE;oBACN,sBAAU;oBACV,6BAAa;oBACb,iBAAiB;oBACjB,wBAAwB;oBACxB,sBAAU;oBACV,gCAAc;oBACd,6BAAiB;oBACjB,gCAAoB;oBACpB,wBAAY;oBACZ,6BAAiB;oBACjB,0BAAc;oBACd,kBAAkB;oBAClB,qCAAgB;oBAChB,oDAAwB;oBACxB,sCAA0B;iBAC3B;aACF;YACD,4BAAY;YACZ,oCAAwB;YACxB,+BAAmB;YACnB,qCAAwB;YACxB,gCAAc;YACd,yCAAkB;YAClB,qCAAgB;YAChB,sBAAU;YACV,0BAAc;YACd;gBACE,QAAQ,EAAE,gCAAc;gBACxB,OAAO,EAAE,iBAAiB;aAC3B;YACD,oDAAwB;SACzB;QACD,OAAO,EAAE,CAAC,wBAAY,EAAE,6BAAiB,CAAC;KAC3C,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 { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n PoiBenchmarkService,\n IndexingBenchmarkService,\n StoreService,\n PoiService,\n PoiSyncService,\n ApiService,\n ConnectionPoolService,\n SmartBatchService,\n StoreCacheService,\n ConnectionPoolStateManager,\n NodeConfig,\n IProjectUpgradeService,\n ProjectUpgradeService,\n InMemoryCacheService,\n} from '@subql/node-core';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { StellarApiConnection } from '../stellar/api.connection';\nimport { StellarApiService } from '../stellar/api.service.stellar';\nimport {\n BlockDispatcherService,\n WorkerBlockDispatcherService,\n} from './blockDispatcher';\nimport { StellarDictionaryService } from './dictionary';\nimport { DsProcessorService } from './ds-processor.service';\nimport { DynamicDsService } from './dynamic-ds.service';\nimport { FetchService } from './fetch.service';\nimport { IndexerManager } from './indexer.manager';\nimport { ProjectService } from './project.service';\nimport { SandboxService } from './sandbox.service';\nimport { UnfinalizedBlocksService } from './unfinalizedBlocks.service';\n\n@Module({\n providers: [\n InMemoryCacheService,\n StoreService,\n StoreCacheService,\n {\n provide: ApiService,\n useFactory: async (\n project: SubqueryProject,\n projectUpgradeService: ProjectUpgradeService,\n connectionPoolService: ConnectionPoolService<StellarApiConnection>,\n eventEmitter: EventEmitter2,\n ) => {\n const apiService = new StellarApiService(\n project,\n projectUpgradeService,\n connectionPoolService,\n eventEmitter,\n );\n await apiService.init();\n return apiService;\n },\n inject: [\n 'ISubqueryProject',\n 'IProjectUpgradeService',\n ConnectionPoolService,\n EventEmitter2,\n ],\n },\n IndexerManager,\n ConnectionPoolService,\n ConnectionPoolStateManager,\n {\n provide: SmartBatchService,\n useFactory: (nodeConfig: NodeConfig) => {\n return new SmartBatchService(nodeConfig.batchSize);\n },\n inject: [NodeConfig],\n },\n {\n provide: 'IBlockDispatcher',\n useFactory: (\n nodeConfig: NodeConfig,\n eventEmitter: EventEmitter2,\n projectService: ProjectService,\n projectUpgradeService: IProjectUpgradeService,\n apiService: ApiService,\n indexerManager: IndexerManager,\n smartBatchService: SmartBatchService,\n cacheService: InMemoryCacheService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n project: SubqueryProject,\n dynamicDsService: DynamicDsService,\n unfinalizedBlocks: UnfinalizedBlocksService,\n connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>,\n ) =>\n nodeConfig.workers\n ? new WorkerBlockDispatcherService(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n smartBatchService,\n cacheService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n dynamicDsService,\n unfinalizedBlocks,\n connectionPoolState,\n )\n : new BlockDispatcherService(\n apiService,\n nodeConfig,\n indexerManager,\n eventEmitter,\n projectService,\n projectUpgradeService,\n smartBatchService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n dynamicDsService,\n ),\n inject: [\n NodeConfig,\n EventEmitter2,\n 'IProjectService',\n 'IProjectUpgradeService',\n ApiService,\n IndexerManager,\n SmartBatchService,\n InMemoryCacheService,\n StoreService,\n StoreCacheService,\n PoiSyncService,\n 'ISubqueryProject',\n DynamicDsService,\n UnfinalizedBlocksService,\n ConnectionPoolStateManager,\n ],\n },\n FetchService,\n IndexingBenchmarkService,\n PoiBenchmarkService,\n StellarDictionaryService,\n SandboxService,\n DsProcessorService,\n DynamicDsService,\n PoiService,\n PoiSyncService,\n {\n useClass: ProjectService,\n provide: 'IProjectService',\n },\n UnfinalizedBlocksService,\n ],\n exports: [StoreService, StoreCacheService],\n})\nexport class FetchModule {}\n"]}
1
+ {"version":3,"file":"fetch.module.js","sourceRoot":"","sources":["../../src/indexer/fetch.module.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;AAEnC,2CAAwC;AACxC,yDAAsD;AACtD,gDAe0B;AAG1B,wEAAmE;AACnE,uDAG2B;AAC3B,6CAAwD;AACxD,iEAA4D;AAC5D,6DAAwD;AACxD,mDAA+C;AAC/C,uDAAmD;AACnD,uDAAmD;AACnD,2EAAuE;AAiHhE,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IA/GvB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,gCAAoB;YACpB,wBAAY;YACZ,6BAAiB;YACjB;gBACE,OAAO,EAAE,sBAAU;gBACnB,UAAU,EAAE,KAAK,EACf,OAAwB,EACxB,qBAA4C,EAC5C,qBAAkE,EAClE,YAA2B,EAC3B,EAAE;oBACF,MAAM,UAAU,GAAG,IAAI,uCAAiB,CACtC,OAAO,EACP,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,CACb,CAAC;oBACF,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE;oBACN,kBAAkB;oBAClB,wBAAwB;oBACxB,iCAAqB;oBACrB,6BAAa;iBACd;aACF;YACD,gCAAc;YACd,iCAAqB;YACrB,sCAA0B;YAC1B;gBACE,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,CACV,UAAsB,EACtB,YAA2B,EAC3B,cAA8B,EAC9B,qBAA6C,EAC7C,UAAsB,EACtB,cAA8B,EAC9B,YAAkC,EAClC,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B,EAC9B,OAAwB,EACxB,gBAAkC,EAClC,iBAA2C,EAC3C,mBAAqE,EACrE,EAAE,CACF,UAAU,CAAC,OAAO;oBAChB,CAAC,CAAC,IAAI,8CAA4B,CAC9B,UAAU,EACV,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,CACpB;oBACH,CAAC,CAAC,IAAI,wCAAsB,CACxB,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,OAAO,CACR;gBACP,MAAM,EAAE;oBACN,sBAAU;oBACV,6BAAa;oBACb,iBAAiB;oBACjB,wBAAwB;oBACxB,sBAAU;oBACV,gCAAc;oBACd,gCAAoB;oBACpB,wBAAY;oBACZ,6BAAiB;oBACjB,0BAAc;oBACd,kBAAkB;oBAClB,qCAAgB;oBAChB,oDAAwB;oBACxB,sCAA0B;iBAC3B;aACF;YACD,4BAAY;YACZ,oCAAwB;YACxB,+BAAmB;YACnB,qCAAwB;YACxB,0BAAc;YACd,yCAAkB;YAClB,qCAAgB;YAChB,sBAAU;YACV,0BAAc;YACd;gBACE,QAAQ,EAAE,gCAAc;gBACxB,OAAO,EAAE,iBAAiB;aAC3B;YACD,oDAAwB;SACzB;QACD,OAAO,EAAE,CAAC,wBAAY,EAAE,6BAAiB,CAAC;KAC3C,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 { EventEmitter2 } from '@nestjs/event-emitter';\nimport {\n PoiBenchmarkService,\n IndexingBenchmarkService,\n StoreService,\n PoiService,\n PoiSyncService,\n ApiService,\n ConnectionPoolService,\n StoreCacheService,\n ConnectionPoolStateManager,\n NodeConfig,\n IProjectUpgradeService,\n ProjectUpgradeService,\n InMemoryCacheService,\n SandboxService,\n} from '@subql/node-core';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { StellarApiConnection } from '../stellar/api.connection';\nimport { StellarApiService } from '../stellar/api.service.stellar';\nimport {\n BlockDispatcherService,\n WorkerBlockDispatcherService,\n} from './blockDispatcher';\nimport { StellarDictionaryService } from './dictionary';\nimport { DsProcessorService } from './ds-processor.service';\nimport { DynamicDsService } from './dynamic-ds.service';\nimport { FetchService } from './fetch.service';\nimport { IndexerManager } from './indexer.manager';\nimport { ProjectService } from './project.service';\nimport { UnfinalizedBlocksService } from './unfinalizedBlocks.service';\n\n@Module({\n providers: [\n InMemoryCacheService,\n StoreService,\n StoreCacheService,\n {\n provide: ApiService,\n useFactory: async (\n project: SubqueryProject,\n projectUpgradeService: ProjectUpgradeService,\n connectionPoolService: ConnectionPoolService<StellarApiConnection>,\n eventEmitter: EventEmitter2,\n ) => {\n const apiService = new StellarApiService(\n project,\n projectUpgradeService,\n connectionPoolService,\n eventEmitter,\n );\n await apiService.init();\n return apiService;\n },\n inject: [\n 'ISubqueryProject',\n 'IProjectUpgradeService',\n ConnectionPoolService,\n EventEmitter2,\n ],\n },\n IndexerManager,\n ConnectionPoolService,\n ConnectionPoolStateManager,\n {\n provide: 'IBlockDispatcher',\n useFactory: (\n nodeConfig: NodeConfig,\n eventEmitter: EventEmitter2,\n projectService: ProjectService,\n projectUpgradeService: IProjectUpgradeService,\n apiService: ApiService,\n indexerManager: IndexerManager,\n cacheService: InMemoryCacheService,\n storeService: StoreService,\n storeCacheService: StoreCacheService,\n poiSyncService: PoiSyncService,\n project: SubqueryProject,\n dynamicDsService: DynamicDsService,\n unfinalizedBlocks: UnfinalizedBlocksService,\n connectionPoolState: ConnectionPoolStateManager<StellarApiConnection>,\n ) =>\n nodeConfig.workers\n ? new WorkerBlockDispatcherService(\n nodeConfig,\n eventEmitter,\n projectService,\n projectUpgradeService,\n cacheService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n dynamicDsService,\n unfinalizedBlocks,\n connectionPoolState,\n )\n : new BlockDispatcherService(\n apiService,\n nodeConfig,\n indexerManager,\n eventEmitter,\n projectService,\n projectUpgradeService,\n storeService,\n storeCacheService,\n poiSyncService,\n project,\n ),\n inject: [\n NodeConfig,\n EventEmitter2,\n 'IProjectService',\n 'IProjectUpgradeService',\n ApiService,\n IndexerManager,\n InMemoryCacheService,\n StoreService,\n StoreCacheService,\n PoiSyncService,\n 'ISubqueryProject',\n DynamicDsService,\n UnfinalizedBlocksService,\n ConnectionPoolStateManager,\n ],\n },\n FetchService,\n IndexingBenchmarkService,\n PoiBenchmarkService,\n StellarDictionaryService,\n SandboxService,\n DsProcessorService,\n DynamicDsService,\n PoiService,\n PoiSyncService,\n {\n useClass: ProjectService,\n provide: 'IProjectService',\n },\n UnfinalizedBlocksService,\n ],\n exports: [StoreService, StoreCacheService],\n})\nexport class FetchModule {}\n"]}
@@ -6,17 +6,13 @@ import { SubqueryProject } from '../configure/SubqueryProject';
6
6
  import { StellarApi } from '../stellar';
7
7
  import { IStellarBlockDispatcher } from './blockDispatcher';
8
8
  import { StellarDictionaryService } from './dictionary';
9
- import { DsProcessorService } from './ds-processor.service';
10
- import { DynamicDsService } from './dynamic-ds.service';
11
9
  import { ProjectService } from './project.service';
12
10
  import { UnfinalizedBlocksService } from './unfinalizedBlocks.service';
13
11
  export declare class FetchService extends BaseFetchService<SubqlDatasource, IStellarBlockDispatcher, StellarBlock> {
14
12
  private apiService;
15
- private dsProcessorService;
16
13
  private unfinalizedBlocksService;
17
- constructor(apiService: ApiService, nodeConfig: NodeConfig, projectService: ProjectService, project: SubqueryProject, blockDispatcher: IStellarBlockDispatcher, dictionaryService: StellarDictionaryService, dsProcessorService: DsProcessorService, dynamicDsService: DynamicDsService, unfinalizedBlocksService: UnfinalizedBlocksService, eventEmitter: EventEmitter2, schedulerRegistry: SchedulerRegistry);
14
+ constructor(apiService: ApiService, nodeConfig: NodeConfig, projectService: ProjectService, project: SubqueryProject, blockDispatcher: IStellarBlockDispatcher, dictionaryService: StellarDictionaryService, unfinalizedBlocksService: UnfinalizedBlocksService, eventEmitter: EventEmitter2, schedulerRegistry: SchedulerRegistry);
18
15
  get api(): StellarApi;
19
- protected getGenesisHash(): string;
20
16
  protected getFinalizedHeight(): Promise<number>;
21
17
  protected getBestHeight(): Promise<number>;
22
18
  protected getChainInterval(): Promise<number>;
@@ -23,25 +23,19 @@ const node_core_1 = require("@subql/node-core");
23
23
  const SubqueryProject_1 = require("../configure/SubqueryProject");
24
24
  const utils_stellar_1 = require("../stellar/utils.stellar");
25
25
  const dictionary_1 = require("./dictionary");
26
- const ds_processor_service_1 = require("./ds-processor.service");
27
- const dynamic_ds_service_1 = require("./dynamic-ds.service");
28
26
  const project_service_1 = require("./project.service");
29
27
  const unfinalizedBlocks_service_1 = require("./unfinalizedBlocks.service");
30
28
  const BLOCK_TIME_VARIANCE = 5000;
31
29
  const INTERVAL_PERCENT = 0.9;
32
30
  let FetchService = class FetchService extends node_core_1.BaseFetchService {
33
- constructor(apiService, nodeConfig, projectService, project, blockDispatcher, dictionaryService, dsProcessorService, dynamicDsService, unfinalizedBlocksService, eventEmitter, schedulerRegistry) {
31
+ constructor(apiService, nodeConfig, projectService, project, blockDispatcher, dictionaryService, unfinalizedBlocksService, eventEmitter, schedulerRegistry) {
34
32
  super(nodeConfig, projectService, project.network, blockDispatcher, dictionaryService, eventEmitter, schedulerRegistry);
35
33
  this.apiService = apiService;
36
- this.dsProcessorService = dsProcessorService;
37
34
  this.unfinalizedBlocksService = unfinalizedBlocksService;
38
35
  }
39
36
  get api() {
40
37
  return this.apiService.unsafeApi;
41
38
  }
42
- getGenesisHash() {
43
- return this.apiService.networkMeta.genesisHash;
44
- }
45
39
  async getFinalizedHeight() {
46
40
  const sequence = await this.api.getFinalizedBlockHeight();
47
41
  const header = (0, utils_stellar_1.blockToHeader)(sequence);
@@ -79,8 +73,6 @@ FetchService = __decorate([
79
73
  node_core_1.NodeConfig,
80
74
  project_service_1.ProjectService,
81
75
  SubqueryProject_1.SubqueryProject, Object, dictionary_1.StellarDictionaryService,
82
- ds_processor_service_1.DsProcessorService,
83
- dynamic_ds_service_1.DynamicDsService,
84
76
  unfinalizedBlocks_service_1.UnfinalizedBlocksService,
85
77
  event_emitter_1.EventEmitter2,
86
78
  schedule_1.SchedulerRegistry])
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.service.js","sourceRoot":"","sources":["../../src/indexer/fetch.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 { Inject, Injectable } from '@nestjs/common';\nimport { EventEmitter2 } from '@nestjs/event-emitter';\nimport { SchedulerRegistry } from '@nestjs/schedule';\n\nimport { StellarHandlerKind, isCustomDs } from '@subql/common-stellar';\nimport {\n NodeConfig,\n BaseFetchService,\n ApiService,\n getModulos,\n} from '@subql/node-core';\nimport { StellarBlock, SubqlDatasource } from '@subql/types-stellar';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { StellarApi } from '../stellar';\nimport { blockToHeader, calcInterval } from '../stellar/utils.stellar';\nimport { IStellarBlockDispatcher } from './blockDispatcher';\nimport { StellarDictionaryService } from './dictionary';\nimport { DsProcessorService } from './ds-processor.service';\nimport { DynamicDsService } from './dynamic-ds.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 IStellarBlockDispatcher,\n StellarBlock\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: IStellarBlockDispatcher,\n dictionaryService: StellarDictionaryService,\n private dsProcessorService: DsProcessorService,\n dynamicDsService: DynamicDsService,\n private unfinalizedBlocksService: UnfinalizedBlocksService,\n eventEmitter: EventEmitter2,\n schedulerRegistry: SchedulerRegistry,\n ) {\n super(\n nodeConfig,\n projectService,\n project.network,\n blockDispatcher,\n dictionaryService,\n eventEmitter,\n schedulerRegistry,\n );\n }\n\n get api(): StellarApi {\n return this.apiService.unsafeApi;\n }\n\n protected getGenesisHash(): string {\n return this.apiService.networkMeta.genesisHash;\n }\n\n protected async getFinalizedHeight(): Promise<number> {\n const sequence = await this.api.getFinalizedBlockHeight();\n\n const header = blockToHeader(sequence);\n\n this.unfinalizedBlocksService.registerFinalizedBlock(header);\n return header.blockHeight;\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 async getChainId(): Promise<string> {\n return Promise.resolve(this.api.getChainId().toString());\n }\n\n protected getModulos(): number[] {\n return getModulos(\n this.projectService.getAllDataSources(),\n isCustomDs,\n StellarHandlerKind.Block,\n );\n }\n\n protected async initBlockDispatcher(): Promise<void> {\n await this.blockDispatcher.init(this.resetForNewDs.bind(this));\n }\n\n protected async preLoopHook(): Promise<void> {\n // Stellar doesn't need to do anything here\n return Promise.resolve();\n }\n}\n"]}
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,0DAAuE;AACvE,gDAK0B;AAE1B,kEAA+D;AAE/D,4DAAuE;AAEvE,6CAAwD;AACxD,uDAAmD;AACnD,2EAAuE;AAEvE,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAGtB,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAIjC;IACC,YACU,UAAsB,EAC9B,UAAsB,EACK,cAA8B,EAC7B,OAAwB,EAEpD,eAAwC,EACxC,iBAA2C,EACnC,wBAAkD,EAC1D,YAA2B,EAC3B,iBAAoC;QAEpC,KAAK,CACH,UAAU,EACV,cAAc,EACd,OAAO,CAAC,OAAO,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,CAClB,CAAC;QAnBM,eAAU,GAAV,UAAU,CAAY;QAOtB,6BAAwB,GAAxB,wBAAwB,CAA0B;IAa5D,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAES,KAAK,CAAC,kBAAkB;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAE1D,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,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,4BAAY,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;QAEjE,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAES,UAAU;QAClB,OAAO,IAAA,sBAAU,EACf,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EACvC,2BAAU,EACV,mCAAkB,CAAC,KAAK,CACzB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,mBAAmB;QACjC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAES,KAAK,CAAC,WAAW;QACzB,2CAA2C;QAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAxEY,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;QACpB,iCAAe,UAGjC,qCAAwB;QACT,oDAAwB;QAC5C,6BAAa;QACR,4BAAiB;GAf3B,YAAY,CAwExB;AAxEY,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 { StellarHandlerKind, isCustomDs } from '@subql/common-stellar';\nimport {\n NodeConfig,\n BaseFetchService,\n ApiService,\n getModulos,\n} from '@subql/node-core';\nimport { StellarBlock, SubqlDatasource } from '@subql/types-stellar';\nimport { SubqueryProject } from '../configure/SubqueryProject';\nimport { StellarApi } from '../stellar';\nimport { blockToHeader, calcInterval } from '../stellar/utils.stellar';\nimport { IStellarBlockDispatcher } from './blockDispatcher';\nimport { StellarDictionaryService } from './dictionary';\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 IStellarBlockDispatcher,\n StellarBlock\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: IStellarBlockDispatcher,\n dictionaryService: StellarDictionaryService,\n private unfinalizedBlocksService: UnfinalizedBlocksService,\n eventEmitter: EventEmitter2,\n schedulerRegistry: SchedulerRegistry,\n ) {\n super(\n nodeConfig,\n projectService,\n project.network,\n blockDispatcher,\n dictionaryService,\n eventEmitter,\n schedulerRegistry,\n );\n }\n\n get api(): StellarApi {\n return this.apiService.unsafeApi;\n }\n\n protected async getFinalizedHeight(): Promise<number> {\n const sequence = await this.api.getFinalizedBlockHeight();\n\n const header = blockToHeader(sequence);\n\n this.unfinalizedBlocksService.registerFinalizedBlock(header);\n return header.blockHeight;\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 async getChainId(): Promise<string> {\n return Promise.resolve(this.api.getChainId().toString());\n }\n\n protected getModulos(): number[] {\n return getModulos(\n this.projectService.getAllDataSources(),\n isCustomDs,\n StellarHandlerKind.Block,\n );\n }\n\n protected async initBlockDispatcher(): Promise<void> {\n await this.blockDispatcher.init(this.resetForNewDs.bind(this));\n }\n\n protected async preLoopHook(): Promise<void> {\n // Stellar doesn't need to do anything here\n return Promise.resolve();\n }\n}\n"]}
@@ -1,26 +1,21 @@
1
1
  import { isCustomDs, isRuntimeDs, SubqlStellarCustomDataSource, StellarHandlerKind, StellarRuntimeHandlerInputMap, SubqlStellarDataSource, isBlockHandlerProcessor, isTransactionHandlerProcessor, isOperationHandlerProcessor, isEffectHandlerProcessor, isEventHandlerProcessor, isSorobanTransactionHandlerProcessor } from '@subql/common-stellar';
2
- import { NodeConfig, IndexerSandbox, ProcessBlockResponse, BaseIndexerManager, ApiService, IBlock } from '@subql/node-core';
2
+ import { NodeConfig, IndexerSandbox, ProcessBlockResponse, BaseIndexerManager, ApiService, IBlock, SandboxService } from '@subql/node-core';
3
3
  import { StellarBlockWrapper, SubqlDatasource, StellarTransaction, StellarOperation, StellarEffect, StellarBlock, StellarBlockFilter, StellarTransactionFilter, StellarOperationFilter, StellarEffectFilter, SorobanEvent, SorobanEventFilter } from '@subql/types-stellar';
4
- import { StellarProjectDs } from '../configure/SubqueryProject';
5
4
  import { StellarApi } from '../stellar';
6
5
  import SafeStellarProvider from '../stellar/safe-api';
7
- import { asSecondLayerHandlerProcessor_1_0_0, DsProcessorService } from './ds-processor.service';
6
+ import { DsProcessorService } from './ds-processor.service';
8
7
  import { DynamicDsService } from './dynamic-ds.service';
9
8
  import { ProjectService } from './project.service';
10
- import { SandboxService } from './sandbox.service';
11
9
  import { UnfinalizedBlocksService } from './unfinalizedBlocks.service';
12
- export declare class IndexerManager extends BaseIndexerManager<SafeStellarProvider, StellarApi, StellarBlockWrapper, ApiService, SubqlStellarDataSource, SubqlStellarCustomDataSource, typeof FilterTypeMap, typeof ProcessorTypeMap, StellarRuntimeHandlerInputMap> {
10
+ export declare class IndexerManager extends BaseIndexerManager<StellarApi, SafeStellarProvider, StellarBlockWrapper, ApiService, SubqlStellarDataSource, SubqlStellarCustomDataSource, typeof FilterTypeMap, typeof ProcessorTypeMap, StellarRuntimeHandlerInputMap> {
13
11
  private projectService;
14
12
  protected isRuntimeDs: typeof isRuntimeDs;
15
13
  protected isCustomDs: typeof isCustomDs;
16
- protected updateCustomProcessor: typeof asSecondLayerHandlerProcessor_1_0_0;
17
- constructor(apiService: ApiService, nodeConfig: NodeConfig, sandboxService: SandboxService, dsProcessorService: DsProcessorService, dynamicDsService: DynamicDsService, unfinalizedBlocksService: UnfinalizedBlocksService, projectService: ProjectService);
14
+ constructor(apiService: ApiService, nodeConfig: NodeConfig, sandboxService: SandboxService<SafeStellarProvider, StellarApi>, dsProcessorService: DsProcessorService, dynamicDsService: DynamicDsService, unfinalizedBlocksService: UnfinalizedBlocksService, projectService: ProjectService);
18
15
  start(): Promise<void>;
19
16
  indexBlock(block: IBlock<StellarBlockWrapper>, dataSources: SubqlStellarDataSource[]): Promise<ProcessBlockResponse>;
20
- getBlockHeight(block: StellarBlockWrapper): number;
21
- getBlockHash(block: StellarBlockWrapper): string;
22
17
  private getApi;
23
- protected indexBlockData({ block, effects, operations, transactions }: StellarBlockWrapper, dataSources: StellarProjectDs[], getVM: (d: StellarProjectDs) => Promise<IndexerSandbox>): Promise<void>;
18
+ protected indexBlockData({ block, effects, operations, transactions }: StellarBlockWrapper, dataSources: SubqlDatasource[], getVM: (d: SubqlDatasource) => Promise<IndexerSandbox>): Promise<void>;
24
19
  private indexBlockContent;
25
20
  private indexTransaction;
26
21
  private indexOperation;