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

Improve event iteration performance #2601

Merged
merged 3 commits into from
Nov 25, 2024
Merged

Improve event iteration performance #2601

merged 3 commits into from
Nov 25, 2024

Conversation

stwiname
Copy link
Collaborator

@stwiname stwiname commented Nov 25, 2024

Description

Fixes iterating block events multiple times, this can be a huge perf improvement for large substrate blocks

Type of change

Please delete options that are not relevant.

  • Performance improvement

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

@stwiname stwiname requested a review from yoozo November 25, 2024 00:54
Copy link

github-actions bot commented Nov 25, 2024

Coverage report for .

Caution

Test run failed

St.
Category Percentage Covered / Total
🟡 Statements
66.71% (-3.39% 🔻)
20302/30431
🟡 Branches
78.96% (+0.67% 🔼)
2729/3456
🟡 Functions
69.82% (+7.32% 🔼)
1143/1637
🟡 Lines
66.71% (-3.39% 🔻)
20302/30431
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% 72.41% 88.89% 88%
🟢
... / migrate-mapping.controller.ts
100% 100% 100% 100%
🟢
... / migrate-controller.ts
92.41% 85.19% 100% 92.41%
🟢
... / migrate.fixtures.ts
100% 100% 100% 100%
🟢
... / migrate-schema.controller.ts
97.23% 79.49% 100% 97.23%
🔴
... / types.ts
0% 0% 0% 0%
🟢
... / createProject.fixtures.ts
87.07% 75% 100% 87.07%
🟢
... / 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
75.74% 79.17% 88.89% 75.74%
🟢
... / 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%
🟢
... / SubqueryProject.ts
84.14% 50% 71.43% 84.14%
🟢
... / core.module.ts
100% 50% 100% 100%
🟢
... / dictionary.fixtures.ts
100% 100% 100% 100%
🟡
... / monitor.service.ts
69.61% 85.88% 94.12% 69.61%
🔴
... / sandbox.service.ts
33.33% 50% 25% 33.33%
🟡
... / baseCache.service.ts
62.12% 88.89% 66.67% 62.12%
🔴
... / baseStoreModel.service.ts
57.41% 66.67% 80% 57.41%
🟢
... / cacheable.ts
89.66% 75% 100% 89.66%
🟡
... / csvStore.service.ts
77.78% 80% 80% 77.78%
🟢
... / index.ts
100% 100% 100% 100%
🟡
... / cacheMetadata.ts
67.84% 82.22% 86.67% 67.84%
🟢
... / index.ts
100% 100% 100% 100%
🔴
... / metadata.ts
53.01% 71.43% 55.56% 53.01%
🟢
... / utils.ts
100% 100% 100% 100%
🟢
... / cacheModel.ts
86.33% 83.12% 85% 86.33%
🟢
... / index.ts
100% 100% 100% 100%
🟡
... / model.ts
77.36% 73.91% 81.82% 77.36%
🟢
... / utils.ts
100% 100% 100% 100%
🟡
... / cachePoi.ts
76.84% 89.47% 85.71% 76.84%
🟢
... / index.ts
100% 100% 100% 100%
🔴
... / poi.ts
41.07% 71.43% 44.44% 41.07%
🟢
... / setValueModel.ts
80.77% 76.47% 85.71% 80.77%
🟡
... / storeCache.service.ts
63.35% 84.38% 73.33% 63.35%
🔴
... / storeModel.service.ts
56.79% 50% 57.14% 56.79%
🟢
... / types.ts
100% 100% 100% 100%
🟢
... / utils.ts
87.5% 75% 100% 87.5%
🟢
... / 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
61.29% 66.67% 40% 61.29%
🔴
... / foreceClean.init.ts
47.62% 100% 0% 47.62%
🔴
... / reindex.init.ts
33.33% 100% 0% 33.33%
🟡
... / string.ts
61.54% 50% 100% 61.54%
🔴
... / 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
🔴
... / 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
83.72% (-5.61% 🔻)
60% (+2.86% 🔼)
100%
83.72% (-5.61% 🔻)
🔴
... / add-chain-controller.ts
39.62% (-0.45% 🔻)
66.67% 30%
39.62% (-0.45% 🔻)
🟢
... / codegen-controller.ts
88.52% (-0.86% 🔻)
84.72% (+9.14% 🔼)
100%
88.52% (-0.86% 🔻)
🟢
... / generate-controller.ts
97.75% (+0.1% 🔼)
93.24% (-0.79% 🔻)
100%
97.75% (+0.1% 🔼)
🟡
... / init-controller.ts
73.06% (+2.57% 🔼)
54.55% (-13.45% 🔻)
61.11% (+7.78% 🔼)
73.06% (+2.57% 🔼)
🟢
... / project-controller.ts
80.72% (-16.54% 🔻)
50% (-10% 🔻)
75% (-25% 🔻)
80.72% (-16.54% 🔻)
🟡
... / publish-controller.ts
78.39% (-1.86% 🔻)
63.64% (-7.47% 🔻)
83.33% (-16.67% 🔻)
78.39% (-1.86% 🔻)
🟢
... / models.ts
82.22% (-17.22% 🔻)
95.65% (+3.34% 🔼)
76.92% (-23.08% 🔻)
82.22% (-17.22% 🔻)
🟢
... / model.ts
95.43% (-2.29% 🔻)
100%
80% (+8.57% 🔼)
95.43% (-2.29% 🔻)
🔴
... / models.ts
47.06% (-52.94% 🔻)
100%
0% (-100% 🔻)
47.06% (-52.94% 🔻)
🟡
... / load.ts
64.29% (+5.1% 🔼)
38.89% (-16.67% 🔻)
83.33% (+16.67% 🔼)
64.29% (+5.1% 🔼)
🟡
... / github-reader.ts
65.52% (-23.77% 🔻)
85.71% (+10.71% 🔼)
71.43% (-11.9% 🔻)
65.52% (-23.77% 🔻)
🟡
... / ipfs-reader.ts
65.08% (-20.63% 🔻)
90.91% (+27.27% 🔼)
71.43% (-11.9% 🔻)
65.08% (-20.63% 🔻)
🟡
... / local-reader.ts
67.5% (-18.55% 🔻)
100% (+37.5% 🔼)
83.33% (-16.67% 🔻)
67.5% (-18.55% 🔻)
🟡
... / utils.ts
70.35% (+7.65% 🔼)
73.02% (-0.15% 🔻)
65.38% (+9.38% 🔼)
70.35% (+7.65% 🔼)
🔴
... / models.ts
57.49% (-42.51% 🔻)
100%
44.44% (-55.56% 🔻)
57.49% (-42.51% 🔻)
🟢
... / NodeConfig.ts
88.51% (-0.1% 🔻)
78.69% (-0.94% 🔻)
85.11% (-0.94% 🔻)
88.51% (-0.1% 🔻)
🟡
... / ProjectUpgrade.service.ts
78.72% (-8.35% 🔻)
78.82% (-12.53% 🔻)
92.31% (+1% 🔼)
78.72% (-8.35% 🔻)
🟢
... / configure.module.ts
82.51% (-2.06% 🔻)
72% (+8% 🔼)
100%
82.51% (-2.06% 🔻)
🟢
... / db.module.ts
89.06% (+0.78% 🔼)
62.5% (-20.83% 🔻)
80%
89.06% (+0.78% 🔼)
🟢
... / SchemaMigration.service.ts
84.04% (-3.52% 🔻)
81.82% (+0.57% 🔼)
83.33% (-16.67% 🔻)
84.04% (-3.52% 🔻)
🟡
... / migration-helpers.ts
75.28% (-0.74% 🔻)
88.24% (+7.64% 🔼)
90.91%
75.28% (-0.74% 🔻)
🟡
... / migration.ts
73.29% (-9% 🔻)
83.33% (+3.6% 🔼)
85% (-5.48% 🔻)
73.29% (-9% 🔻)
🟡
... / StoreOperations.ts
65.88% (-26.43% 🔻)
60% (-25% 🔻)
87.5% (-12.5% 🔻)
65.88% (-26.43% 🔻)
🔴
... / benchmark.service.ts
43.36% (-11.89% 🔻)
66.67%
36.36% (-3.64% 🔻)
43.36% (-11.89% 🔻)
🔴
... / base-block-dispatcher.ts
18.33% (-29.02% 🔻)
100%
4.35% (-5.65% 🔻)
18.33% (-29.02% 🔻)
🔴
... / block-dispatcher.ts
26.61% (-14.39% 🔻)
66.67%
25% (-3.57% 🔻)
26.61% (-14.39% 🔻)
🔴
... / worker-block-dispatcher.ts
36.17% (-14.04% 🔻)
100%
25% (-2.27% 🔻)
36.17% (-14.04% 🔻)
🟢
... / coreDictionary.ts
94.67% (-5.33% 🔻)
88.24% (-6.21% 🔻)
88.89% (-11.11% 🔻)
94.67% (-5.33% 🔻)
🟡
... / dictionary.service.ts
68.47% (-16.67% 🔻)
83.78% (-1.93% 🔻)
83.33% (-7.58% 🔻)
68.47% (-16.67% 🔻)
🟢
... / dictionaryV1.ts
91.02% (-2.21% 🔻)
73.33% (-4.93% 🔻)
100%
91.02% (-2.21% 🔻)
🟡
... / dictionaryV2.ts
67.37% (-14.31% 🔻)
68% (+2.78% 🔼)
88.89% (-11.11% 🔻)
67.37% (-14.31% 🔻)
🔴
... / ds-processor.service.ts
38.12% (-23.97% 🔻)
75%
58.33% (-29.17% 🔻)
38.12% (-23.97% 🔻)
🟡
... / dynamic-ds.service.ts
60.16% (-30.04% 🔻)
65% (-1.67% 🔻)
80% (-5.71% 🔻)
60.16% (-30.04% 🔻)
🟢
... / fetch.service.ts
92.23% (-0.06% 🔻)
87.67% (-1.06% 🔻)
88% (+1.04% 🔼)
92.23% (-0.06% 🔻)
🟢
... / inMemoryCache.service.ts
86.21% (-13.79% 🔻)
100%
75% (-25% 🔻)
86.21% (-13.79% 🔻)
🔴
... / indexer.manager.ts
16.79% (-16.42% 🔻)
100%
10% (-2.5% 🔻)
16.79% (-16.42% 🔻)
🟢
... / PoiBlock.ts
83.87% (-14.52% 🔻)
96.55%
75% (-25% 🔻)
83.87% (-14.52% 🔻)
🔴
... / poi.service.ts
55.7% (+31.78% 🔼)
57.69% (-42.31% 🔻)
80% (+51.43% 🔼)
55.7% (+31.78% 🔼)
🔴
... / poiSync.service.ts
55.88% (-31% 🔻)
77.61% (+1.05% 🔼)
88.89% (-3.42% 🔻)
55.88% (-31% 🔻)
🟡
... / project.service.ts
73.54% (-6.46% 🔻)
76.06% (+5.88% 🔼)
85.19% (+1.19% 🔼)
73.54% (-6.46% 🔻)
🔴
... / sandbox.ts
42.27% (-25.71% 🔻)
62.5% (+5.36% 🔼)
28.57% (-32.97% 🔻)
42.27% (-25.71% 🔻)
🔴
... / smartBatch.service.ts
10.43% (-13.91% 🔻)
100%
12.5% (-1.79% 🔻)
10.43% (-13.91% 🔻)
🟡
... / store.service.ts
60.52% (-5.52% 🔻)
75.41% (+6.99% 🔼)
80.65% (+23.5% 🔼)
60.52% (-5.52% 🔻)
🔴
... / entity.ts
50% (-11.54% 🔻)
100%
50% (+50% 🔼)
50% (-11.54% 🔻)
🔴
... / store.ts
30% (-2.2% 🔻)
62.5% (-37.5% 🔻)
33.33% (+33.33% 🔼)
30% (-2.2% 🔻)
🟢
... / test.runner.ts
95.06% (-4.27% 🔻)
77.78% (+4.44% 🔼)
75% (-25% 🔻)
95.06% (-4.27% 🔻)
🔴
... / testing.service.ts
12% (-16.57% 🔻)
100% 0%
12% (-16.57% 🔻)
🔴
... / unfinalizedBlocks.service.ts
56.21% (-27.78% 🔻)
75% (-21.72% 🔻)
92% (+0.33% 🔼)
56.21% (-27.78% 🔻)
🔴
... / 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.54% (-24.11% 🔻)
100% 0%
20.54% (-24.11% 🔻)
🔴
... / worker.ts
42.08% (-0.37% 🔻)
100% 0%
42.08% (-0.37% 🔻)
🔴
... / worker.unfinalizedBlocks.service.ts
26.79% (-73.21% 🔻)
100%
0% (-100% 🔻)
26.79% (-73.21% 🔻)
🔴
... / 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.05% (-36.48% 🔻)
100%
0% (-20% 🔻)
21.05% (-36.48% 🔻)
🔴
... / 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
18.62% (-14.71% 🔻)
100% 0%
18.62% (-14.71% 🔻)
🔴
... / autoQueue.ts
59.49% (-28.9% 🔻)
85.11%
70.37% (-8.8% 🔻)
59.49% (-28.9% 🔻)
🟡
... / blocks.ts
71.21% (-28.79% 🔻)
91.67% (+2.78% 🔼)
75% (-25% 🔻)
71.21% (-28.79% 🔻)
🟡
... / project.ts
64.54% (-8.84% 🔻)
57.41% (-17.17% 🔻)
77.78%
64.54% (-8.84% 🔻)
🟢
... / reindex.ts
82.05% (+48.01% 🔼)
14.29% (-85.71% 🔻)
100% (+100% 🔼)
82.05% (+48.01% 🔼)
🔴
... / yargs.ts
40.69% (-4.8% 🔻)
100% 14.29%
40.69% (-4.8% 🔻)
🟢
... / SubqueryProject.ts
100% (+4.48% 🔼)
66.67% (-15.69% 🔻)
100% (+14.29% 🔼)
100% (+4.48% 🔼)
🟢
... / apiPromise.connection.ts
80% (+10.92% 🔼)
61.54% (-18.46% 🔻)
66.67% (+23.81% 🔼)
80% (+10.92% 🔼)
🟡
... / block-dispatcher.service.ts
66.35% (-2.52% 🔻)
100%
33.33% (+8.33% 🔼)
66.35% (-2.52% 🔻)
🔴
... / worker-block-dispatcher.service.ts
24.16% (-12.8% 🔻)
100% 0%
24.16% (-12.8% 🔻)
🟢
... / substrateDictionary.service.ts
89.62% (-0.94% 🔻)
60% (-12.73% 🔻)
100% (+20% 🔼)
89.62% (-0.94% 🔻)
🟡
... / substrateDictionaryV1.ts
63.3% (-22.18% 🔻)
79.49% (+9.72% 🔼)
53.85% (-29.49% 🔻)
63.3% (-22.18% 🔻)
🟡
... / substrateDictionaryV2.ts
73.03% (-2.48% 🔻)
75% 33.33%
73.03% (-2.48% 🔻)
🟢
... / fetch.module.ts
89.6% (-2.27% 🔻)
50% (-25% 🔻)
100%
89.6% (-2.27% 🔻)
🔴
... / indexer.manager.ts
50% (-7.55% 🔻)
100%
20% (+10.91% 🔼)
50% (-7.55% 🔻)
🟡
... / base-runtime.service.ts
72.17% (-0.15% 🔻)
76.92% (+1.92% 🔼)
77.78% (+2.78% 🔼)
72.17% (-0.15% 🔻)
🟢
... / runtimeService.ts
94.52% (+2.31% 🔼)
81.82% (-7.07% 🔻)
100% (+20% 🔼)
94.52% (+2.31% 🔼)
🟢
... / unfinalizedBlocks.service.ts
85.45% (-0.82% 🔻)
100%
60% (+10% 🔼)
85.45% (-0.82% 🔻)
🔴
... / http.ts
50.58% (-29.34% 🔻)
50% (+10% 🔼)
42.86% (+12.09% 🔼)
50.58% (-29.34% 🔻)
🟢
... / 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% 🔻)
🟢
... / builder.ts
92.77%
82.14% (-0.62% 🔻)
100% 92.77%
🟡
... / logger.ts
69.19% (-0.41% 🔻)
48.15% (-6.85% 🔻)
78.57% (+3.57% 🔼)
69.19% (-0.41% 🔻)

Test suite run failed

Failed tests: 11/597. Failed suites: 6/107.
  ● Dictionary V1 › return dictionary query result

    expect(received).toBeGreaterThan(expected)

    Matcher error: received value must be a number or bigint

    Received has value: undefined

      160 |     const endBlock = 10001;
      161 |     const dic = await dictionary.getData(startBlock, endBlock, batchSize);
    > 162 |     expect(dic?.batchBlocks.length).toBeGreaterThan(1);
          |                                     ^
      163 |     expect(dic?.batchBlocks[0]).toBe(1463);
      164 |   });
      165 |

      at Object.<anonymous> (packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts:162:37)

  ● Individual dictionary V1 test › test query the correct range

    expect(received).toEqual(expected) // deep equality

    Expected: [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, …]
    Received: undefined

      249 |     const endBlock = 10001;
      250 |     const dic = await dictionary.getData(startBlock, endBlock, batchSize);
    > 251 |     expect(dic?.batchBlocks).toEqual(range(startBlock, startBlock + batchSize));
          |                              ^
      252 |   });
      253 |
      254 |   it('use minimum value of event/extrinsic returned block as batch end block', async () => {

      at Object.<anonymous> (packages/node-core/src/indexer/dictionary/v1/dictionaryV1.spec.ts:251:30)

  ● Individual dictionary V1 test › use minimum value of event/extrinsic returned block as batch end block

    ApolloError: Response not successful: Received status code 500

      at new ApolloError (node_modules/@apollo/client/errors/index.js:40:28)
      at node_modules/@apollo/client/core/QueryManager.js:777:71
      at both (node_modules/@apollo/client/utilities/observables/asyncMap.js:22:31)
      at node_modules/@apollo/client/utilities/observables/asyncMap.js:11:72
      at Object.then (node_modules/@apollo/client/utilities/observables/asyncMap.js:11:24)
      at Object.error (node_modules/@apollo/client/utilities/observables/asyncMap.js:24:49)
      at notifySubscription (node_modules/zen-observable/lib/Observable.js:140:18)
      at onNotify (node_modules/zen-observable/lib/Observable.js:179:3)
      at SubscriptionObserver.error (node_modules/zen-observable/lib/Observable.js:240:7)
      at node_modules/@apollo/client/utilities/observables/iteration.js:7:68
          at Array.forEach (<anonymous>)
      at iterateObserversSafely (node_modules/@apollo/client/utilities/observables/iteration.js:7:25)
      at Object.error (node_modules/@apollo/client/utilities/observables/Concast.js:76:21)
      at notifySubscription (node_modules/zen-observable/lib/Observable.js:140:18)
      at onNotify (node_modules/zen-observable/lib/Observable.js:179:3)
      at SubscriptionObserver.error (node_modules/zen-observable/lib/Observable.js:240:7)
      at handleError (node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js:170:14)
      at node_modules/@apollo/client/link/http/createHttpLink.js:145:17

    Cause:
    ServerError: Response not successful: Received status code 500

      at Object.throwServerError (node_modules/@apollo/client/link/utils/throwServerError.js:2:17)
      at throwServerError (node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js:120:9)
      at node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js:176:48


  ● Substrate DictionaryService › should return all specVersion

    expect(received).toBeGreaterThan(expected)

    Matcher error: received value must be a number or bigint

    Received has value: undefined

      55 |     const specVersions = await dictionaryService.getSpecVersions();
      56 |
    > 57 |     expect(specVersions?.length).toBeGreaterThan(0);
         |                                  ^
      58 |     dictionaryService.onApplicationShutdown();
      59 |   }, 50000);
      60 | });

      at Object.<anonymous> (packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.spec.ts:57:34)


  ● CLI deploy, delete, promote › Deploy to Hosted Service and Delete

    Error deploying to hosted service: The selected cluster is not supported

      77 | export function errorHandle(e: any, msg: string): Error {
      78 |   if (axios.isAxiosError(e) && e?.response?.data) {
    > 79 |     return new Error(`${msg} ${e.response.data.message ?? e.response.data}`);
         |            ^
      80 |   }
      81 |
      82 |   return new Error(`${msg} ${e.message}`);

      at errorHandle (packages/cli/src/utils/utils.ts:79:12)
      at createDeployment (packages/cli/src/controller/deploy-controller.ts:62:22)
      at Object.<anonymous> (packages/cli/src/controller/deploy-controller.test.ts:115:27)

  ● CLI deploy, delete, promote › reDeploy to Hosted Service

    Error deploying to hosted service: The selected cluster is not supported

      77 | export function errorHandle(e: any, msg: string): Error {
      78 |   if (axios.isAxiosError(e) && e?.response?.data) {
    > 79 |     return new Error(`${msg} ${e.response.data.message ?? e.response.data}`);
         |            ^
      80 |   }
      81 |
      82 |   return new Error(`${msg} ${e.message}`);

      at errorHandle (packages/cli/src/utils/utils.ts:79:12)
      at createDeployment (packages/cli/src/controller/deploy-controller.ts:62:22)
      at Object.<anonymous> (packages/cli/src/controller/deploy-controller.test.ts:159:26)


  ● Test suite failed to run

    TypeError: Class extends value undefined is not a constructor or null

      84 | }
      85 |
    > 86 | class DsPluginSandbox<P> extends Sandbox {
         |                                  ^
      87 |   constructor(option: Omit<SandboxOption, 'store'>, nodeConfig: NodeConfig) {
      88 |     super(
      89 |       option,

      at Object.<anonymous> (packages/node-core/src/indexer/ds-processor.service.ts:86:34)
      at Object.<anonymous> (packages/node-core/src/indexer/indexer.manager.ts:13:1)
      at Object.<anonymous> (packages/node-core/src/indexer/index.ts:23:1)
      at Object.<anonymous> (packages/node-core/src/db/migration-service/SchemaMigration.service.ts:8:1)
      at Object.<anonymous> (packages/node-core/src/db/migration-service/index.ts:5:1)
      at Object.<anonymous> (packages/node-core/src/db/index.ts:5:1)
      at Object.<anonymous> (packages/node-core/src/utils/graphql.ts:19:1)
      at Object.<anonymous> (packages/node-core/src/utils/index.ts:7:1)
      at Object.<anonymous> (packages/node-core/src/indexer/sandbox.ts:14:1)
      at Object.<anonymous> (packages/node-core/src/indexer/sandbox.spec.ts:6:1)


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

    thrown: "Exceeded timeout of 5000 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."

      59 |   });
      60 |   //
    > 61 |   it('should pin a content with given CID to a remote pinning service', async () => {
         |   ^
      62 |     const testCID = 'QmQKeYj2UZJoTN5yXSvzJy4A3CjUuSmEWAKeZV4herh5bS';
      63 |     const result = await writeClient.pinRemoteAdd(testCID, {service: 'onfinality'});
      64 |     expect(result.Cid).toBe(testCID);

      at packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts:61:3
      at Object.<anonymous> (packages/common/src/project/IpfsHttpClientLite/IpfsHttpClientLite.spec.ts:9:1)


  ● Cli publish › should upload appropriate project to IPFS

    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(63,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(69,48)
          TS2558: Expected 0 type arguments, but got 1.

      44 |       const outputDir = path.resolve(directory, flags.output ?? 'dist');
      45 |
    > 46 |       await runWebpack(buildEntries, directory, outputDir, isDev, true);
         |                  ^
      47 |       if (!flags.silent) {
      48 |         this.log('Building and packing code ...');
      49 |         this.log('Done!');

      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:46:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
          at async Promise.all (index 1)
      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/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(63,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(69,48)
          TS2558: Expected 0 type arguments, but got 1.

      44 |       const outputDir = path.resolve(directory, flags.output ?? 'dist');
      45 |
    > 46 |       await runWebpack(buildEntries, directory, outputDir, isDev, true);
         |                  ^
      47 |       if (!flags.silent) {
      48 |         this.log('Building and packing code ...');
      49 |         this.log('Done!');

      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:46:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
          at async Promise.all (index 1)
      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/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(63,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(69,48)
          TS2558: Expected 0 type arguments, but got 1.

      44 |       const outputDir = path.resolve(directory, flags.output ?? 'dist');
      45 |
    > 46 |       await runWebpack(buildEntries, directory, outputDir, isDev, true);
         |                  ^
      47 |       if (!flags.silent) {
      48 |         this.log('Building and packing code ...');
      49 |         this.log('Done!');

      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:46:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
          at async Promise.all (index 1)
      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/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(75,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ClaimRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(81,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/ForgeRecord.ts(87,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(63,48)
          TS2558: Expected 0 type arguments, but got 1.
    [tsl] ERROR in /tmp/Glj9V1/multi_mocked_starter/src/types/models/NFT.ts(69,48)
          TS2558: Expected 0 type arguments, but got 1.

      44 |       const outputDir = path.resolve(directory, flags.output ?? 'dist');
      45 |
    > 46 |       await runWebpack(buildEntries, directory, outputDir, isDev, true);
         |                  ^
      47 |       if (!flags.silent) {
      48 |         this.log('Building and packing code ...');
      49 |         this.log('Done!');

      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:46:18)
      at async Build._run (node_modules/@oclif/core/lib/command.js:117:22)
      at async createMultiChainTestProject (packages/cli/src/createProject.fixtures.ts:89:5)
          at async Promise.all (index 1)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:18:21)

Report generated by 🧪jest coverage report action from b639369

acc.finalize.push(evt);
} else if (evt.extrinsic?.idx) {
const idx = evt.extrinsic.idx;
acc[idx] = acc[idx] || [];
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
acc[idx] = acc[idx] || [];
acc[idx] ??= [];

Comment on lines 124 to 126
if (!acc[extrinsicIdx]) {
acc[extrinsicIdx] = [];
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (!acc[extrinsicIdx]) {
acc[extrinsicIdx] = [];
}
acc[extrinsicIdx] ??= []

}
return acc;
},
{} as Record<number | 'init' | 'finalize', SubstrateEvent[]>,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{} as Record<number | 'init' | 'finalize', SubstrateEvent[]>,
{init: [], finalize: []} as Record<number | 'init' | 'finalize', SubstrateEvent[]>,

You can remove other ?? [].

@stwiname stwiname merged commit 0378dcc into main Nov 25, 2024
2 of 3 checks passed
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.

2 participants