Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blockchain service #2517

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft

Blockchain service #2517

wants to merge 6 commits into from

Conversation

stwiname
Copy link
Collaborator

@stwiname stwiname commented Aug 1, 2024

Description

This is another phase of moving more code to node core, it is a shift away from using super classes and now defines a clear interface for blockchain specific code.

This reduces a lot of boiler plate in extending classes and having to redefine constructors as well as nestjs modules. This will greatly simplify adding support for new blockchains.

TODOs

  • Test all sub commands and dependency injection
    • Fix runtime service circular dependency with dictionary service
  • Test various flags, workers, unfinalized, mostly runtime service and workers
    • Test runtime service is syncing between services
  • Test with another SDK to check flexibility(no runtime service, custom unfinalized blocks class)
  • Document this interface so that there is a guide for adding new blockchains
  • Remove fetch service from node (remove initBlockDispatcher, preLoopHook)
  • Move tests to node core

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have tested locally
  • I have performed a self review of my changes
  • Updated any relevant documentation
  • Linked to any relevant issues
  • I have added tests relevant to my changes
  • Any dependent changes have been merged and published in downstream modules
  • My code is up to date with the base branch
  • I have updated relevant changelogs. We suggest using chan

Copy link

github-actions bot commented Aug 1, 2024

Coverage report for .

Caution

Test run failed

St.
Category Percentage Covered / Total
🟡 Statements
64.59% (-5.52% 🔻)
19145/29642
🟡 Branches
78.89% (+0.59% 🔼)
2507/3178
🟡 Functions
66.9% (+4.4% 🔼)
1049/1568
🟡 Lines
64.59% (-5.52% 🔻)
19145/29642
Show new covered files 🐣
St.
File Statements Branches Functions Lines
🟢
... / migrate.ts
85.34% 16.67% 100% 85.34%
🟢
... / migrate-abis.controller.ts
95% 87.5% 100% 95%
🟢
... / constants.ts
100% 100% 100% 100%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / ethereum.ts
82.28% 83.33% 100% 82.28%
🟢
... / migrate-manifest.controller.ts
88% 73.33% 88.89% 88%
🟢
... / migrate-mapping.controller.ts
100% 100% 100% 100%
🟢
... / migrate-controller.ts
92.41% 84.62% 100% 92.41%
🟢
... / migrate.fixtures.ts
100% 100% 100% 100%
🟢
... / migrate-schema.controller.ts
97.18% 78.95% 100% 97.18%
🔴
... / types.ts
0% 0% 0% 0%
🟢
... / createProject.fixtures.ts
92.24% 66.67% 100% 92.24%
🟢
... / config.ts
100% 100% 100% 100%
🟢
... / index.ts
100% 100% 100% 100%
🔴
... / moduleLoader.ts
56% 40% 100% 56%
🟢
... / types.ts
100% 100% 100% 100%
🔴
... / utils.ts
0% 0% 0% 0%
🟢
... / networkFamily.ts
92.59% 88.89% 100% 92.59%
🟡
... / IPFSHTTPClientLite.ts
63.97% 63.16% 77.78% 63.97%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / utils.ts
92% 66.67% 100% 92%
🟡
... / admin.controller.ts
77.24% 96.3% 78.57% 77.24%
🔴
... / blockRange.ts
46.67% 100% 50% 46.67%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / blockchain.service.ts
100% 100% 100% 100%
🟢
... / SubqueryProject.ts
84.14% 50% 71.43% 84.14%
🟢
... / core.module.ts
100% 100% 100% 100%
🟢
... / dictionary.fixtures.ts
100% 100% 100% 100%
🟡
... / monitor.service.ts
70.04% 88.24% 94.12% 70.04%
🔴
... / sandbox.service.ts
33.33% 50% 25% 33.33%
🟢
... / worker.core.module.ts
100% 100% 0% 100%
🔴
... / worker.monitor.service.ts
41.46% 100% 0% 41.46%
🔴
... / meta.controller.ts
53.33% 100% 0% 53.33%
🟡
... / meta.module.ts
60% 100% 0% 60%
🔴
... / process.ts
50% 66.67% 40% 50%
🔴
... / foreceClean.init.ts
47.62% 100% 0% 47.62%
🔴
... / reindex.init.ts
34.48% 100% 0% 34.48%
🟢
... / testing.core.module.ts
100% 100% 100% 100%
🟢
... / string.ts
100% 100% 100% 100%
🟡
... / blockchain.service.ts
63.98% 100% 46.15% 63.98%
🔴
... / datasourceProcessors.ts
0% 0% 0% 0%
🔴
... / index.ts
0% 0% 0% 0%
🔴
... / types.ts
0% 0% 0% 0%
🔴
... / networking.ts
31.58% 100% 0% 31.58%
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🟢
... / index.ts
82.95%
50% (-16.67% 🔻)
66.67% (+16.67% 🔼)
82.95%
🔴
... / delete.ts
48.72% (-5.57% 🔻)
100%
50% (+50% 🔼)
48.72% (-5.57% 🔻)
🔴
... / promote.ts
44.19% (-4.53% 🔻)
100%
50% (+50% 🔼)
44.19% (-4.53% 🔻)
🟡
... / add.ts
61.29% (-0.78% 🔻)
100%
50% (+50% 🔼)
61.29% (-0.78% 🔻)
🔴
... / publish.ts
25.58% (-63.75% 🔻)
100% (+42.86% 🔼)
50% (-50% 🔻)
25.58% (-63.75% 🔻)
🔴
... / add-chain-controller.ts
39.85% (-0.23% 🔻)
66.67% 30%
39.85% (-0.23% 🔻)
🟢
... / codegen-controller.ts
88.52% (-0.86% 🔻)
84.72% (+9.14% 🔼)
100%
88.52% (-0.86% 🔻)
🔴
... / deploy-controller.ts
32.22% (-5.24% 🔻)
100% (+22.22% 🔼)
12.5% (-12.5% 🔻)
32.22% (-5.24% 🔻)
🟢
... / generate-controller.ts
97.75% (+0.1% 🔼)
93.24% (-0.79% 🔻)
100%
97.75% (+0.1% 🔼)
🟡
... / init-controller.ts
73.03% (+2.54% 🔼)
54.55% (-13.45% 🔻)
61.11% (+7.78% 🔼)
73.03% (+2.54% 🔼)
🔴
... / project-controller.ts
17.81% (-79.45% 🔻)
100% (+40% 🔼)
0% (-100% 🔻)
17.81% (-79.45% 🔻)
🔴
... / publish-controller.ts
13.56% (-66.69% 🔻)
100% (+28.89% 🔼)
0% (-100% 🔻)
13.56% (-66.69% 🔻)
🟢
... / utils.ts
80.38% (-0.7% 🔻)
85.71% (+5.01% 🔼)
80.77% (+3.5% 🔼)
80.38% (-0.7% 🔻)
🔴
... / models.ts
50% (-49.44% 🔻)
94.12% (+1.81% 🔼)
30.77% (-69.23% 🔻)
50% (-49.44% 🔻)
🟢
... / model.ts
93.14% (-4.57% 🔻)
100%
73.33% (+1.9% 🔼)
93.14% (-4.57% 🔻)
🔴
... / models.ts
47.06% (-52.94% 🔻)
100%
0% (-100% 🔻)
47.06% (-52.94% 🔻)
🔴
... / load.ts
59.18%
37.5% (-18.06% 🔻)
66.67% 59.18%
🟡
... / github-reader.ts
65.52% (-23.77% 🔻)
85.71% (+10.71% 🔼)
71.43% (-11.9% 🔻)
65.52% (-23.77% 🔻)
🟡
... / ipfs-reader.ts
60.66% (-25.06% 🔻)
70% (+6.36% 🔼)
71.43% (-11.9% 🔻)
60.66% (-25.06% 🔻)
🟡
... / local-reader.ts
67.5% (-18.55% 🔻)
100% (+37.5% 🔼)
83.33% (-16.67% 🔻)
67.5% (-18.55% 🔻)
🟡
... / reader.ts
63.16% (-26.32% 🔻)
33.33% (-41.67% 🔻)
100%
63.16% (-26.32% 🔻)
🔴
... / base.ts
45.79% (-52.21% 🔻)
100%
40% (-40% 🔻)
45.79% (-52.21% 🔻)
🔴
... / models.ts
25.9% (-74.1% 🔻)
100%
0% (-100% 🔻)
25.9% (-74.1% 🔻)
🟢
... / NodeConfig.ts
88.06% (-0.55% 🔻)
78.18% (-1.45% 🔻)
84.78% (-1.26% 🔻)
88.06% (-0.55% 🔻)
🟡
... / ProjectUpgrade.service.ts
72.4% (-14.68% 🔻)
86.49% (-4.87% 🔻)
84.62% (-6.69% 🔻)
72.4% (-14.68% 🔻)
🟢
... / db.module.ts
89.06% (+0.78% 🔼)
62.5% (-20.83% 🔻)
80%
89.06% (+0.78% 🔼)
🟢
... / SchemaMigration.service.ts
81.12% (-6.44% 🔻)
80.65% (-0.6% 🔻)
83.33% (-16.67% 🔻)
81.12% (-6.44% 🔻)
🟡
... / migration-helpers.ts
75.28% (-0.74% 🔻)
88.24% (+7.64% 🔼)
90.91%
75.28% (-0.74% 🔻)
🟡
... / migration.ts
69.57% (-12.71% 🔻)
79.73%
86.36% (-4.11% 🔻)
69.57% (-12.71% 🔻)
🟢
... / StoreOperations.ts
85.88% (-6.43% 🔻)
66.67% (-18.33% 🔻)
100%
85.88% (-6.43% 🔻)
🔴
... / benchmark.service.ts
43.36% (-11.89% 🔻)
66.67%
36.36% (-3.64% 🔻)
43.36% (-11.89% 🔻)
🔴
... / base-block-dispatcher.ts
19.27% (-28.08% 🔻)
100%
4.35% (-5.65% 🔻)
19.27% (-28.08% 🔻)
🔴
... / block-dispatcher.ts
27.35% (-13.64% 🔻)
66.67%
25% (-3.57% 🔻)
27.35% (-13.64% 🔻)
🔴
... / worker-block-dispatcher.ts
37.59% (-12.62% 🔻)
100%
23.08% (-4.2% 🔻)
37.59% (-12.62% 🔻)
🔴
... / coreDictionary.ts
45.33% (-54.67% 🔻)
87.5% (-6.94% 🔻)
77.78% (-22.22% 🔻)
45.33% (-54.67% 🔻)
🟡
... / dictionary.service.ts
67% (-18.15% 🔻)
80% (-5.71% 🔻)
83.33% (-7.58% 🔻)
67% (-18.15% 🔻)
🟢
... / utils.ts
92.59% (-3.7% 🔻)
69.23% (-24.89% 🔻)
100%
92.59% (-3.7% 🔻)
🟡
... / dictionaryV1.ts
73.47% (-19.76% 🔻)
75% (-3.26% 🔻)
91.67% (-8.33% 🔻)
73.47% (-19.76% 🔻)
🟡
... / dictionaryV2.ts
67.37% (-14.31% 🔻)
68% (+2.78% 🔼)
88.89% (-11.11% 🔻)
67.37% (-14.31% 🔻)
🔴
... / ds-processor.service.ts
34.68% (-27.41% 🔻)
73.33% (-1.67% 🔻)
58.33% (-29.17% 🔻)
34.68% (-27.41% 🔻)
🔴
... / dynamic-ds.service.ts
49.31% (-40.89% 🔻)
80.95% (+14.29% 🔼)
63.64% (-22.08% 🔻)
49.31% (-40.89% 🔻)
🟢
... / fetch.service.ts
92.49% (+0.21% 🔼)
90.12% (+1.39% 🔼)
85.19% (-1.77% 🔻)
92.49% (+0.21% 🔼)
🔴
... / indexer.manager.ts
17.5% (-15.71% 🔻)
100%
10% (-2.5% 🔻)
17.5% (-15.71% 🔻)
🟢
... / PoiBlock.ts
83.87% (-14.52% 🔻)
96.55%
75% (-25% 🔻)
83.87% (-14.52% 🔻)
🔴
... / poi.service.ts
57.21% (+33.28% 🔼)
55.56% (-44.44% 🔻)
80% (+51.43% 🔼)
57.21% (+33.28% 🔼)
🔴
... / poiModel.ts
40% (-23.64% 🔻)
71.43%
44.44% (-12.7% 🔻)
40% (-23.64% 🔻)
🔴
... / poiSync.service.ts
55.88% (-31% 🔻)
77.61% (+1.05% 🔼)
88.89% (-3.42% 🔻)
55.88% (-31% 🔻)
🟡
... / project.service.ts
66.6% (-13.4% 🔻)
66.67% (-3.51% 🔻)
80.77% (-3.23% 🔻)
66.6% (-13.4% 🔻)
🔴
... / sandbox.ts
59.09% (-8.89% 🔻)
56.25% (-0.89% 🔻)
57.14% (-4.4% 🔻)
59.09% (-8.89% 🔻)
🔴
... / smartBatch.service.ts
10.43% (-13.91% 🔻)
100%
12.5% (-1.79% 🔻)
10.43% (-13.91% 🔻)
🔴
... / store.service.ts
55.19% (-10.85% 🔻)
72.92% (+4.5% 🔼)
60% (+2.86% 🔼)
55.19% (-10.85% 🔻)
🟢
... / entity.ts
92.31% (+30.77% 🔼)
75% (-25% 🔻)
75% (+75% 🔼)
92.31% (+30.77% 🔼)
🔴
... / store.ts
13.11% (-19.09% 🔻)
100% 0%
13.11% (-19.09% 🔻)
🟡
... / baseCache.service.ts
62.9% (-30.43% 🔻)
87.5%
66.67% (-13.33% 🔻)
62.9% (-30.43% 🔻)
🟡
... / cacheMetadata.ts
66.81% (-21.7% 🔻)
72.5% (-3.06% 🔻)
87.5% (-5.83% 🔻)
66.81% (-21.7% 🔻)
🟡
... / cachePoi.ts
75.53% (-18.09% 🔻)
88.89%
71.43% (-11.9% 🔻)
75.53% (-18.09% 🔻)
🟢
... / cacheable.ts
89.66% (-0.97% 🔻)
75% 100%
89.66% (-0.97% 🔻)
🟡
... / csvStore.service.ts
76.92% (-14.1% 🔻)
80%
80% (-20% 🔻)
76.92% (-14.1% 🔻)
🟢
... / setValueModel.ts
83.97% (+1.96% 🔼)
80.56% (-0.69% 🔻)
85.71% (+1.1% 🔼)
83.97% (+1.96% 🔼)
🟡
... / storeCache.service.ts
61.23% (-14.01% 🔻)
82.5% (+13.75% 🔼)
77.78% (-3.47% 🔻)
61.23% (-14.01% 🔻)
🟢
... / test.runner.ts
94.9% (-4.43% 🔻)
77.78% (+4.44% 🔼)
75% (-25% 🔻)
94.9% (-4.43% 🔻)
🔴
... / testing.service.ts
12% (-16.57% 🔻)
100% 0%
12% (-16.57% 🔻)
🟡
... / unfinalizedBlocks.service.ts
66.23% (-17.76% 🔻)
96.61% (-0.11% 🔻)
86.96% (-4.71% 🔻)
66.23% (-17.76% 🔻)
🔴
... / worker.builder.ts
59.83% (-19.36% 🔻)
65.38% 80%
59.83% (-19.36% 🔻)
🔴
... / worker.cache.service.ts
48.78% (-9.76% 🔻)
100% 0%
48.78% (-9.76% 🔻)
🔴
... / worker.connectionPoolState.manager.ts
38.21% (-22.76% 🔻)
100% 0%
38.21% (-22.76% 🔻)
🔴
... / worker.dynamic-ds.service.ts
44.44% (-17.78% 🔻)
100% 0%
44.44% (-17.78% 🔻)
🔴
... / worker.service.ts
20.35% (-24.29% 🔻)
100% 0%
20.35% (-24.29% 🔻)
🟢
... / worker.store.service.ts
80% (-2.61% 🔻)
100% 50%
80% (-2.61% 🔻)
🔴
... / worker.ts
42.34% (-0.11% 🔻)
100% 0%
42.34% (-0.11% 🔻)
🔴
... / worker.unfinalizedBlocks.service.ts
30.61% (-69.39% 🔻)
100%
0% (-100% 🔻)
30.61% (-69.39% 🔻)
🔴
... / logger.ts
47.89% (-16.59% 🔻)
33.33%
40% (+20% 🔼)
47.89% (-16.59% 🔻)
🔴
... / event.listener.ts
15.15% (-65.66% 🔻)
100%
0% (-25% 🔻)
15.15% (-65.66% 🔻)
🔴
... / health.controller.ts
37.93% (-17.24% 🔻)
100%
0% (-50% 🔻)
37.93% (-17.24% 🔻)
🔴
... / health.service.ts
21.92% (-35.62% 🔻)
100%
0% (-20% 🔻)
21.92% (-35.62% 🔻)
🔴
... / meta.service.ts
34.26% (-35.26% 🔻)
100% (+20% 🔼)
0% (-40% 🔻)
34.26% (-35.26% 🔻)
🔴
... / ready.controller.ts
34.78% (-21.74% 🔻)
100%
0% (-50% 🔻)
34.78% (-21.74% 🔻)
🔴
... / ready.service.ts
37.5% (-54.17% 🔻)
100%
0% (-66.67% 🔻)
37.5% (-54.17% 🔻)
🔴
... / forceClean.service.ts
22.08% (-4.24% 🔻)
100% 0%
22.08% (-4.24% 🔻)
🔴
... / reindex.service.ts
15.2% (-18.13% 🔻)
100% 0%
15.2% (-18.13% 🔻)
🟡
... / autoQueue.ts
60.3% (-28.09% 🔻)
85.11%
73.08% (-6.09% 🔻)
60.3% (-28.09% 🔻)
🟡
... / blocks.ts
77.78% (-22.22% 🔻)
88.89%
66.67% (-33.33% 🔻)
77.78% (-22.22% 🔻)
🟡
... / project.ts
64.42% (-8.95% 🔻)
57.41% (-17.17% 🔻)
77.78%
64.42% (-8.95% 🔻)
🟢
... / promise.ts
86.44% (-5.32% 🔻)
100% (+13.64% 🔼)
71.43% (-14.29% 🔻)
86.44% (-5.32% 🔻)
🔴
... / yargs.ts
42.51% (-2.97% 🔻)
100% 14.29%
42.51% (-2.97% 🔻)
🟢
... / SubqueryProject.ts
100% (+4.48% 🔼)
66.67% (-15.69% 🔻)
100% (+14.29% 🔼)
100% (+4.48% 🔼)
🟢
... / apiPromise.connection.ts
80% (+10.92% 🔼)
64.29% (-15.71% 🔻)
66.67% (+23.81% 🔼)
80% (+10.92% 🔼)
🟢
... / substrateDictionary.service.ts
98.15% (+7.58% 🔼)
66.67% (-6.06% 🔻)
100% (+20% 🔼)
98.15% (+7.58% 🔼)
🟢
... / substrateDictionaryV1.ts
85.43% (-0.05% 🔻)
78.72% (+8.96% 🔼)
84.62% (+1.28% 🔼)
85.43% (-0.05% 🔻)
🟡
... / substrateDictionaryV2.ts
73.03% (-2.48% 🔻)
75% 33.33%
73.03% (-2.48% 🔻)
🟢
... / fetch.module.ts
86.36% (-5.51% 🔻)
66.67% (-8.33% 🔻)
100%
86.36% (-5.51% 🔻)
🔴
... / indexer.manager.ts
54.85% (-2.69% 🔻)
100%
16.67% (+7.58% 🔼)
54.85% (-2.69% 🔻)
🟢
... / runtimeService.ts
83.53% (-8.68% 🔻)
81.82% (-7.07% 🔻)
83.33% (+3.33% 🔼)
83.53% (-8.68% 🔻)
🟢
... / project.ts
88.73% (-0.16% 🔻)
68.18% 87.5%
88.73% (-0.16% 🔻)
🟢
... / buffer.ts
95.12% (-4.88% 🔻)
95.83% (-4.17% 🔻)
90.48% (+6.27% 🔼)
95.12% (-4.88% 🔻)
🟢
... / entities.ts
86.39% (-1.93% 🔻)
82.54% (-3.55% 🔻)
100%
86.39% (-1.93% 🔻)
🟡
... / logger.ts
69.19% (-0.41% 🔻)
48.15% (-6.85% 🔻)
78.57% (+3.57% 🔼)
69.19% (-0.41% 🔻)

Test suite run failed

Failed tests: 19/577. Failed suites: 6/103.
  ● DynamicDsService › loads all datasources and params when init

    Unable to find matching template in project for name: "Test"

      125 |     const t = (this.project.templates ?? []).find((t) => t.name === templateName);
      126 |     if (!t) {
    > 127 |       throw new Error(`Unable to find matching template in project for name: "${templateName}"`);
          |             ^
      128 |     }
      129 |     const {name, ...template} = cloneDeep(t);
      130 |     return {...template, startBlock} as T;

      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.ts:127:13)
      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:21:18)
      at TestDynamicDsService.getDatasource (packages/node-core/src/indexer/dynamic-ds.service.ts:134:24)
      at packages/node-core/src/indexer/dynamic-ds.service.ts:107:71
          at Array.map (<anonymous>)
      at TestDynamicDsService.loadDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:107:50)
      at TestDynamicDsService.getDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:99:18)
      at TestDynamicDsService.init (packages/node-core/src/indexer/dynamic-ds.service.ts:45:5)
      at Object.<anonymous> (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:53:5)

  ● DynamicDsService › keeps reference to added dynamic datasources

    Unable to find matching template in project for name: "Test"

      125 |     const t = (this.project.templates ?? []).find((t) => t.name === templateName);
      126 |     if (!t) {
    > 127 |       throw new Error(`Unable to find matching template in project for name: "${templateName}"`);
          |             ^
      128 |     }
      129 |     const {name, ...template} = cloneDeep(t);
      130 |     return {...template, startBlock} as T;

      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.ts:127:13)
      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:21:18)
      at TestDynamicDsService.getDatasource (packages/node-core/src/indexer/dynamic-ds.service.ts:134:24)
      at packages/node-core/src/indexer/dynamic-ds.service.ts:107:71
          at Array.map (<anonymous>)
      at TestDynamicDsService.loadDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:107:50)
      at TestDynamicDsService.getDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:99:18)
      at TestDynamicDsService.init (packages/node-core/src/indexer/dynamic-ds.service.ts:45:5)
      at Object.<anonymous> (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:62:5)

  ● DynamicDsService › resets dynamic datasources

    Unable to find matching template in project for name: "Test"

      125 |     const t = (this.project.templates ?? []).find((t) => t.name === templateName);
      126 |     if (!t) {
    > 127 |       throw new Error(`Unable to find matching template in project for name: "${templateName}"`);
          |             ^
      128 |     }
      129 |     const {name, ...template} = cloneDeep(t);
      130 |     return {...template, startBlock} as T;

      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.ts:127:13)
      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:21:18)
      at TestDynamicDsService.getDatasource (packages/node-core/src/indexer/dynamic-ds.service.ts:134:24)
      at packages/node-core/src/indexer/dynamic-ds.service.ts:107:71
          at Array.map (<anonymous>)
      at TestDynamicDsService.loadDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:107:50)
      at TestDynamicDsService.getDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:99:18)
      at TestDynamicDsService.init (packages/node-core/src/indexer/dynamic-ds.service.ts:45:5)
      at Object.<anonymous> (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:74:5)

  ● DynamicDsService › getDynamicDatasources with force reloads from metadata

    Unable to find matching template in project for name: "Test"

      125 |     const t = (this.project.templates ?? []).find((t) => t.name === templateName);
      126 |     if (!t) {
    > 127 |       throw new Error(`Unable to find matching template in project for name: "${templateName}"`);
          |             ^
      128 |     }
      129 |     const {name, ...template} = cloneDeep(t);
      130 |     return {...template, startBlock} as T;

      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.ts:127:13)
      at TestDynamicDsService.getTemplate (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:21:18)
      at TestDynamicDsService.getDatasource (packages/node-core/src/indexer/dynamic-ds.service.ts:134:24)
      at packages/node-core/src/indexer/dynamic-ds.service.ts:107:71
          at Array.map (<anonymous>)
      at TestDynamicDsService.loadDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:107:50)
      at TestDynamicDsService.getDynamicDatasources (packages/node-core/src/indexer/dynamic-ds.service.ts:99:18)
      at TestDynamicDsService.init (packages/node-core/src/indexer/dynamic-ds.service.ts:45:5)
      at Object.<anonymous> (packages/node-core/src/indexer/dynamic-ds.service.spec.ts:84:5)


  ● IPFSClient Lite › should upload files and yield results

    Failed to upload files to IPFS

      116 |       return jsonLines.map((line) => JSON.parse(line)).map(mapResponse);
      117 |     } catch (error) {
    > 118 |       throw new Error(`Failed to upload files to IPFS`, {cause: error});
          |             ^
      119 |     }
      120 |   }
      121 |

      at IPFSHTTPClientLite.addAll (packages/common/src/project/IpfsHttpClientLite/IPFSHTTPClientLite.ts:118:13)
      at Object.<anonymous> (packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts:25:21)

    Cause:
    AxiosError: Request failed with status code 403

      at settle (node_modules/axios/lib/core/settle.js:17:12)
      at IncomingMessage.handleStreamEnd (node_modules/axios/lib/adapters/http.js:382:11)

  ● IPFSClient Lite › should add a file to IPFS and return AddResult

    Failed to upload files to IPFS

      116 |       return jsonLines.map((line) => JSON.parse(line)).map(mapResponse);
      117 |     } catch (error) {
    > 118 |       throw new Error(`Failed to upload files to IPFS`, {cause: error});
          |             ^
      119 |     }
      120 |   }
      121 |

      at IPFSHTTPClientLite.addAll (packages/common/src/project/IpfsHttpClientLite/IPFSHTTPClientLite.ts:118:13)
      at IPFSHTTPClientLite.add (packages/common/src/project/IpfsHttpClientLite/IPFSHTTPClientLite.ts:52:21)
      at Object.<anonymous> (packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts:55:23)

    Cause:
    AxiosError: Request failed with status code 403

      at settle (node_modules/axios/lib/core/settle.js:17:12)
      at IncomingMessage.handleStreamEnd (node_modules/axios/lib/adapters/http.js:382:11)

  ● IPFSClient Lite › should pin a content with given CID to a remote pinning service

    Failed to pin CID QmQKeYj2UZJoTN5yXSvzJy4A3CjUuSmEWAKeZV4herh5bS to remote service

      74 |       return response.data;
      75 |     } catch (e) {
    > 76 |       throw new Error(`Failed to pin CID ${cid} to remote service`, {cause: e});
         |             ^
      77 |     }
      78 |   }
      79 |

      at IPFSHTTPClientLite.pinRemoteAdd (packages/common/src/project/IpfsHttpClientLite/IPFSHTTPClientLite.ts:76:13)
      at Object.<anonymous> (packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts:64:20)

    Cause:
    AxiosError: Request failed with status code 403

      at settle (node_modules/axios/lib/core/settle.js:17:12)
      at IncomingMessage.handleStreamEnd (node_modules/axios/lib/adapters/http.js:382:11)


  ● ApiPromiseConnection › should not make duplicate requests for state_getRuntimeVersion on wsProvider

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 2

      37 |     ]);
      38 |
    > 39 |     expect(wsProvider.send).toHaveBeenCalledTimes(1);
         |                             ^
      40 |   });
      41 |
      42 |   it('should not make duplicate requests for chain_getHeader on wsProvider', async () => {

      at Object.<anonymous> (packages/node/src/indexer/x-provider/x-provider.spec.ts:39:29)

  ● ApiPromiseConnection › should not make duplicate requests for chain_getHeader on wsProvider

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 2

      45 |       wsProvider.send('chain_getHeader', [TEST_BLOCKHASH]),
      46 |     ]);
    > 47 |     expect(wsProvider.send).toHaveBeenCalledTimes(1);
         |                             ^
      48 |   });
      49 |
      50 |   it('should not make duplicate requests for state_getRuntimeVersion on httpProvider', async () => {

      at Object.<anonymous> (packages/node/src/indexer/x-provider/x-provider.spec.ts:47:29)

  ● ApiPromiseConnection › should not make duplicate requests for state_getRuntimeVersion on httpProvider

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 2

      53 |       httpProvider.send('state_getRuntimeVersion', [TEST_BLOCKHASH]),
      54 |     ]);
    > 55 |     expect(httpProvider.send).toHaveBeenCalledTimes(1);
         |                               ^
      56 |   });
      57 |
      58 |   it('should not make duplicate requests for chain_getHeader on httpProvider', async () => {

      at Object.<anonymous> (packages/node/src/indexer/x-provider/x-provider.spec.ts:55:31)

  ● ApiPromiseConnection › should not make duplicate requests for chain_getHeader on httpProvider

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 2

      61 |       httpProvider.send('chain_getHeader', [TEST_BLOCKHASH]),
      62 |     ]);
    > 63 |     expect(httpProvider.send).toHaveBeenCalledTimes(1);
         |                               ^
      64 |   });
      65 |
      66 |   it('should not cache requests if there are no args', async () => {

      at Object.<anonymous> (packages/node/src/indexer/x-provider/x-provider.spec.ts:63:31)


  ● Intergration test - Publish › overwrites any exisiting CID files

    [tsl] ERROR in /tmp/LC3MeR/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
      at async Object.<anonymous> (packages/cli/src/commands/publish.test.ts:17:22)

  ● Intergration test - Publish › create ipfsCID file stored in local with dictiory path

    [tsl] ERROR in /tmp/LC3MeR/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
      at async Object.<anonymous> (packages/cli/src/commands/publish.test.ts:17:22)

  ● Intergration test - Publish › file name consistent with manfiest file name, if -f <manifest path> is used

    [tsl] ERROR in /tmp/LC3MeR/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
      at async Object.<anonymous> (packages/cli/src/commands/publish.test.ts:17:22)


  ● Cli publish › should upload appropriate project to IPFS

    [tsl] ERROR in /tmp/yJ9lKU/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
          at async Promise.all (index 0)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)

  ● Cli publish › convert to deployment and removed descriptive field

    [tsl] ERROR in /tmp/yJ9lKU/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
          at async Promise.all (index 0)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)

  ● Cli publish › convert js object to JSON object

    [tsl] ERROR in /tmp/yJ9lKU/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
          at async Promise.all (index 0)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)

  ● Cli publish › Get directory CID from multi-chain project

    [tsl] ERROR in /tmp/yJ9lKU/mocked_starter/src/mappings/mappingHandlers.ts(45,5)
          TS2322: Type 'Date | undefined' is not assignable to type 'Date'.
      Type 'undefined' is not assignable to type 'Date'.

      70 |         );
      71 |       }
    > 72 |
         | ^
      73 |       for (const i in buildEntries) {
      74 |         if (typeof buildEntries[i] !== 'string') {
      75 |           this.warn(`Ignoring entry ${i} from build.`);

      at Object.error (node_modules/@oclif/core/lib/errors/index.js:27:15)
      at Build.error (node_modules/@oclif/core/lib/command.js:139:23)
      at Build.run (packages/cli/src/commands/build/index.ts:72:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createTestProject (packages/cli/src/createProject.fixtures.ts:76:5)
          at async Promise.all (index 0)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)


  ● Load chain type hasher › should use new hasher function, types hasher string should be replaced with function

    thrown: "Exceeded timeout of 90000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      508 |   };
      509 |
    > 510 |   it('should use new hasher function, types hasher string should be replaced with function', async () => {
          |   ^
      511 |     const apiService = await prepareApiService();
      512 |     const api = apiService.api;
      513 |     expect(typeof (api as any)._options.typesBundle.spec.gargantua.hasher).toBe(

      at packages/node/src/indexer/api.service.test.ts:510:3
      at Object.<anonymous> (packages/node/src/indexer/api.service.test.ts:446:1)

Report generated by 🧪jest coverage report action from 8a7c91b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant