From c4f6cb53b6295cb33484bcaa2d3278cc4182a700 Mon Sep 17 00:00:00 2001 From: Scott Twiname Date: Mon, 30 Oct 2023 13:42:21 +1300 Subject: [PATCH] Fix indexing events multiple times (#194) * Fix indexing events multiple times * Update changelog --- packages/node/CHANGELOG.md | 3 +++ packages/node/src/indexer/indexer.manager.ts | 3 ++- packages/node/src/subcommands/testing.module.ts | 4 ++++ packages/types/CHANGELOG.md | 2 ++ packages/types/src/interfaces.ts | 3 +++ 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/node/CHANGELOG.md b/packages/node/CHANGELOG.md index f63ea8e59..d0a65cb33 100644 --- a/packages/node/CHANGELOG.md +++ b/packages/node/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Missing dependencies for testing command (#194) +- Events getting processed multiple times (#194) ## [3.1.1] - 2023-10-26 ### Fixed diff --git a/packages/node/src/indexer/indexer.manager.ts b/packages/node/src/indexer/indexer.manager.ts index ce46224f5..f3cdc3136 100644 --- a/packages/node/src/indexer/indexer.manager.ts +++ b/packages/node/src/indexer/indexer.manager.ts @@ -120,8 +120,9 @@ export class IndexerManager extends BaseIndexerManager< for (const msg of msgs) { await this.indexMessage(msg, dataSources, getVM); const events = blockContent.events.filter( - (event) => event.msg?.idx === msg.idx, + (event) => event.tx.hash === tx.hash && event.msg?.idx === msg.idx, ); + for (const evt of events) { await this.indexEvent(evt, dataSources, getVM); } diff --git a/packages/node/src/subcommands/testing.module.ts b/packages/node/src/subcommands/testing.module.ts index 0e7baebf1..336c8e1cc 100644 --- a/packages/node/src/subcommands/testing.module.ts +++ b/packages/node/src/subcommands/testing.module.ts @@ -8,7 +8,9 @@ import { ConnectionPoolService, ConnectionPoolStateManager, DbModule, + InMemoryCacheService, PoiService, + PoiSyncService, StoreService, TestRunner, } from '@subql/node-core'; @@ -26,10 +28,12 @@ import { UnfinalizedBlocksService } from '../indexer/unfinalizedBlocks.service'; @Module({ providers: [ + InMemoryCacheService, StoreService, StoreCacheService, EventEmitter2, PoiService, + PoiSyncService, SandboxService, DsProcessorService, DynamicDsService, diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 5d0b9df47..263991330 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- JSDoc to field explaining definition (#194) ## [3.1.0] - 2023-10-20 ### Changed diff --git a/packages/types/src/interfaces.ts b/packages/types/src/interfaces.ts index 3658d53b3..0c2d0ea3d 100644 --- a/packages/types/src/interfaces.ts +++ b/packages/types/src/interfaces.ts @@ -28,6 +28,9 @@ export interface CosmosTransaction { } export interface CosmosMessage { + /** + * The index of the message within the transaction + */ idx: number; block: CosmosBlock; tx: CosmosTransaction;