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

Merged
merged 17 commits into from
Feb 5, 2025
Merged

Blockchain service #2517

merged 17 commits into from
Feb 5, 2025

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.

Fixes #2171

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 .

St.
Category Percentage Covered / Total
🟡 Statements
68.21% (-1.9% 🔻)
20750/30420
🟢 Branches
80.13% (+1.84% 🔼)
2867/3578
🟡 Functions
70.66% (+8.16% 🔼)
1144/1619
🟡 Lines
68.21% (-1.9% 🔻)
20750/30420
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% 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
94.92% 77.78% 100% 94.92%
🟢
... / 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% 80% 88.89% 75.74%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / utils.ts
92% 66.67% 100% 92%
🟡
... / admin.controller.ts
75.56% 96% 78.57% 75.56%
🟡
... / blockRange.ts
73.02% 100% 80% 73.02%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / blockchain.service.ts
100% 100% 100% 100%
🟢
... / SubqueryProject.ts
85.52% 83.33% 71.43% 85.52%
🟢
... / core.module.ts
100% 100% 100% 100%
🟢
... / dictionary.fixtures.ts
100% 100% 100% 100%
🟡
... / monitor.service.ts
70.04% 87.21% 94.12% 70.04%
🔴
... / sandbox.service.ts
33.33% 50% 25% 33.33%
🟡
... / baseCache.service.ts
66.22% 92.31% 66.67% 66.22%
🟡
... / baseStoreModel.service.ts
62.71% 83.33% 83.33% 62.71%
🟢
... / cacheable.ts
89.29% 75% 100% 89.29%
🟡
... / csvStore.ts
73.96% 73.68% 85.71% 73.96%
🟡
... / exporter.ts
70% 71.43% 71.43% 70%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / cacheMetadata.ts
88.11% 82.98% 93.33% 88.11%
🟢
... / index.ts
100% 100% 100% 100%
🔴
... / metadata.ts
53.01% 71.43% 55.56% 53.01%
🟢
... / utils.ts
100% 100% 100% 100%
🟢
... / cacheModel.ts
87.05% 81.01% 90% 87.05%
🟢
... / index.ts
100% 100% 100% 100%
🟡
... / model.ts
74.69% 70.83% 90.91% 74.69%
🟢
... / 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
82.05% 79.41% 85.71% 82.05%
🟡
... / storeCache.service.ts
68.6% 78.13% 76.92% 68.6%
🟡
... / storeModel.service.ts
64.84% 61.54% 71.43% 64.84%
🟢
... / types.ts
100% 100% 100% 100%
🟢
... / utils.ts
93.33% 60% 100% 93.33%
🟢
... / worker.core.module.ts
100% 100% 0% 100%
🔴
... / worker.monitor.service.ts
39.53% 100% 0% 39.53%
🔴
... / 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%
🟢
... / testing.core.module.ts
100% 100% 100% 100%
🟡
... / autoQueue.ts
64.88% 87.18% 73.33% 64.88%
🟢
... / index.ts
100% 100% 100% 100%
🔴
... / queue.ts
45.83% 80% 66.67% 45.83%
🟡
... / rampQueue.ts
77.66% 91.3% 87.5% 77.66%
🟢
... / string.ts
100% 95.45% 100% 100%
🟡
... / blockchain.service.ts
63.68% 100% 42.86% 63.68%
🔴
... / 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.85% (-0.23% 🔻)
66.67% 30%
39.85% (-0.23% 🔻)
🟢
... / build-controller.ts
90.44% (-0.86% 🔻)
71.43% (+14.29% 🔼)
100%
90.44% (-0.86% 🔻)
🟢
... / codegen-controller.ts
88.77% (-0.62% 🔻)
83.95% (+8.37% 🔼)
100%
88.77% (-0.62% 🔻)
🟡
... / deploy-controller.ts
64.94% (+27.48% 🔼)
72.73% (-5.05% 🔻)
64.29% (+39.29% 🔼)
64.94% (+27.48% 🔼)
🟢
... / generate-controller.ts
97.75% (+0.1% 🔼)
93.24% (-0.79% 🔻)
100%
97.75% (+0.1% 🔼)
🟡
... / init-controller.ts
76.7% (+6.21% 🔼)
67.65% (-0.35% 🔻)
61.11% (+7.78% 🔼)
76.7% (+6.21% 🔼)
🟢
... / project-controller.ts
83.13% (-14.13% 🔻)
42.86% (-17.14% 🔻)
75% (-25% 🔻)
83.13% (-14.13% 🔻)
🟢
... / publish-controller.ts
82.63% (+2.38% 🔼)
70.27% (-0.84% 🔻)
100%
82.63% (+2.38% 🔼)
🔴
... / models.ts
50% (-49.44% 🔻)
94.12% (+1.81% 🔼)
30.77% (-69.23% 🔻)
50% (-49.44% 🔻)
🟢
... / ProjectManifestVersioned.ts
82.19% (-2.74% 🔻)
88.89% (-11.11% 🔻)
61.54% (+3.21% 🔼)
82.19% (-2.74% 🔻)
🟢
... / 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
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% 🔻)
91.67% (+28.03% 🔼)
71.43% (-11.9% 🔻)
65.08% (-20.63% 🔻)
🟡
... / local-reader.ts
69.77% (-16.28% 🔻)
100% (+37.5% 🔼)
83.33% (-16.67% 🔻)
69.77% (-16.28% 🔻)
🔴
... / base.ts
42.99% (-55.01% 🔻)
87.5% (-12.5% 🔻)
40% (-40% 🔻)
42.99% (-55.01% 🔻)
🔴
... / models.ts
26.35% (-73.65% 🔻)
100%
0% (-100% 🔻)
26.35% (-73.65% 🔻)
🟢
... / NodeConfig.ts
88.92% (+0.31% 🔼)
80.3% (+0.67% 🔼)
84.91% (-1.14% 🔻)
88.92% (+0.31% 🔼)
🟢
... / ProjectUpgrade.service.ts
81.28% (-5.8% 🔻)
87.36% (-4% 🔻)
92.31% (+1% 🔼)
81.28% (-5.8% 🔻)
🟢
... / configure.module.ts
82.67% (-1.9% 🔻)
71.15% (+7.15% 🔼)
100%
82.67% (-1.9% 🔻)
🟢
... / db.module.ts
89.63% (+1.35% 🔼)
62.5% (-20.83% 🔻)
80%
89.63% (+1.35% 🔼)
🟢
... / 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.17% (-9.12% 🔻)
83.33% (+3.6% 🔼)
85% (-5.48% 🔻)
73.17% (-9.12% 🔻)
🟡
... / 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
17.88% (-29.47% 🔻)
100%
4.55% (-5.45% 🔻)
17.88% (-29.47% 🔻)
🔴
... / block-dispatcher.ts
30.09% (-10.9% 🔻)
66.67% 28.57%
30.09% (-10.9% 🔻)
🔴
... / worker-block-dispatcher.ts
16.26% (-33.95% 🔻)
100%
0% (-27.27% 🔻)
16.26% (-33.95% 🔻)
🔴
... / coreDictionary.ts
47.44% (-52.56% 🔻)
87.5% (-6.94% 🔻)
77.78% (-22.22% 🔻)
47.44% (-52.56% 🔻)
🟡
... / dictionary.service.ts
68.47% (-16.67% 🔻)
83.78% (-1.93% 🔻)
83.33% (-7.58% 🔻)
68.47% (-16.67% 🔻)
🟡
... / dictionaryV1.ts
73.06% (-20.17% 🔻)
75% (-3.26% 🔻)
91.67% (-8.33% 🔻)
73.06% (-20.17% 🔻)
🟡
... / dictionaryV2.ts
68.04% (-13.63% 🔻)
68% (+2.78% 🔼)
88.89% (-11.11% 🔻)
68.04% (-13.63% 🔻)
🔴
... / ds-processor.service.ts
39.73% (-22.36% 🔻)
75%
58.33% (-29.17% 🔻)
39.73% (-22.36% 🔻)
🟢
... / dynamic-ds.service.ts
90.85% (+0.65% 🔼)
65.22% (-1.45% 🔻)
90.91% (+5.19% 🔼)
90.85% (+0.65% 🔼)
🟢
... / fetch.service.ts
92.75% (+0.46% 🔼)
90.28% (+1.55% 🔼)
84.62% (-2.34% 🔻)
92.75% (+0.46% 🔼)
🟢
... / inMemoryCache.service.ts
86.21% (-13.79% 🔻)
100%
75% (-25% 🔻)
86.21% (-13.79% 🔻)
🔴
... / indexer.manager.ts
17.38% (-15.83% 🔻)
100%
10% (-2.5% 🔻)
17.38% (-15.83% 🔻)
🟢
... / 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
74.21% (-5.79% 🔻)
73.33% (+3.16% 🔼)
85.19% (+1.19% 🔼)
74.21% (-5.79% 🔻)
🔴
... / sandbox.ts
59.09% (-8.89% 🔻)
56.25% (-0.89% 🔻)
57.14% (-4.4% 🔻)
59.09% (-8.89% 🔻)
🔴
... / entity.ts
50% (-11.54% 🔻)
100%
50% (+50% 🔼)
50% (-11.54% 🔻)
🔴
... / store.ts
30.46% (-1.74% 🔻)
62.5% (-37.5% 🔻)
33.33% (+33.33% 🔼)
30.46% (-1.74% 🔻)
🟢
... / test.runner.ts
95.06% (-4.27% 🔻)
77.78% (+4.44% 🔼)
75% (-25% 🔻)
95.06% (-4.27% 🔻)
🔴
... / testing.service.ts
11.54% (-17.03% 🔻)
100% 0%
11.54% (-17.03% 🔻)
🟡
... / unfinalizedBlocks.service.ts
66.77% (-17.21% 🔻)
95.08% (-1.64% 🔻)
91.3% (-0.36% 🔻)
66.77% (-17.21% 🔻)
🟡
... / worker.builder.ts
60.68% (-18.5% 🔻)
65.38% 80%
60.68% (-18.5% 🔻)
🔴
... / 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.ts
41.75% (-0.71% 🔻)
100% 0%
41.75% (-0.71% 🔻)
🔴
... / 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
21.05% (-5.26% 🔻)
100% 0%
21.05% (-5.26% 🔻)
🔴
... / reindex.service.ts
19.05% (-14.29% 🔻)
100% 0%
19.05% (-14.29% 🔻)
🟡
... / blocks.ts
71.21% (-28.79% 🔻)
91.67% (+2.78% 🔼)
75% (-25% 🔻)
71.21% (-28.79% 🔻)
🟡
... / project.ts
71.88% (-1.49% 🔻)
75% (+0.42% 🔼)
77.78%
71.88% (-1.49% 🔻)
🟢
... / promise.ts
86.44% (-5.32% 🔻)
100% (+13.64% 🔼)
71.43% (-14.29% 🔻)
86.44% (-5.32% 🔻)
🟢
... / reindex.ts
82.05% (+48.01% 🔼)
14.29% (-85.71% 🔻)
100% (+100% 🔼)
82.05% (+48.01% 🔼)
🔴
... / yargs.ts
44.18% (-1.3% 🔻)
100% 14.29%
44.18% (-1.3% 🔻)
🟢
... / api.service.ts
87.2% (+3.69% 🔼)
81.25% (+9.03% 🔼)
80.77% (-5.9% 🔻)
87.2% (+3.69% 🔼)
🟢
... / apiPromise.connection.ts
80% (+10.92% 🔼)
61.54% (-18.46% 🔻)
66.67% (+23.81% 🔼)
80% (+10.92% 🔼)
🔴
... / index.ts
0% (-100% 🔻)
0% (-100% 🔻)
0% (-100% 🔻)
0% (-100% 🔻)
🟢
... / substrateDictionary.service.ts
98.15% (+7.58% 🔼)
66.67% (-6.06% 🔻)
100% (+20% 🔼)
98.15% (+7.58% 🔼)
🔴
... / types.ts
0% (-100% 🔻)
0% (-100% 🔻)
0% (-100% 🔻)
0% (-100% 🔻)
🟢
... / 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.27% (-5.6% 🔻)
50% (-25% 🔻)
100%
86.27% (-5.6% 🔻)
🔴
... / indexer.manager.ts
52.02% (-5.53% 🔻)
100%
16.67% (+7.58% 🔼)
52.02% (-5.53% 🔻)
🟢
... / runtimeService.ts
95.29% (+3.09% 🔼)
83.33% (-5.56% 🔻)
100% (+20% 🔼)
95.29% (+3.09% 🔼)
🟡
... / types.ts
70.45% (-14.84% 🔻)
100% 0%
70.45% (-14.84% 🔻)
🟢
... / project.ts
88.73% (-0.16% 🔻)
68.18% 87.5%
88.73% (-0.16% 🔻)
🟢
... / buffer.ts
90.24% (-9.76% 🔻)
91.3% (-8.7% 🔻)
90.48% (+6.27% 🔼)
90.24% (-9.76% 🔻)
🟡
... / logger.ts
66.28% (-3.32% 🔻)
46.15% (-8.85% 🔻)
78.57% (+3.57% 🔼)
66.28% (-3.32% 🔻)

Test suite run success

599 tests passing in 107 suites.

Report generated by 🧪jest coverage report action from 92baa77

@stwiname stwiname marked this pull request as ready for review February 5, 2025 01:00
@stwiname stwiname merged commit 2bd617b into main Feb 5, 2025
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.

Move more code to node-core
2 participants