From 8e5ce91edcfd64ac5a8126b62bfe4dfdf0d95496 Mon Sep 17 00:00:00 2001 From: Volodymyr-Kuchinskyi Date: Tue, 8 Jul 2025 12:56:41 +0200 Subject: [PATCH] feat: Added transformIdx to the event --- .github/workflows/test.yml | 2 +- src/event.ts | 1 + src/parser.ts | 5 ++++- test/parser.test.ts | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dd7235d..5abecca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,7 +16,7 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: diff --git a/src/event.ts b/src/event.ts index 86c93cc..a14d487 100644 --- a/src/event.ts +++ b/src/event.ts @@ -16,6 +16,7 @@ export interface Event { contractHash: Hash | null; contractPackageHash: Hash | null; eventId: number; + transformIdx: number; data: Record; } diff --git a/src/parser.ts b/src/parser.ts index 005e4f3..b2659a8 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -138,7 +138,9 @@ export class Parser { const results: ParseResult[] = []; - for (const transform of executionResult.effects) { + for (let i = 0; i < executionResult.effects.length; i++) { + const transform = executionResult.effects[i]; + if (!transform.key.dictionary) { continue; } @@ -168,6 +170,7 @@ export class Parser { contractPackageHash: null, name: eventNameWithRemainder.result, eventId: parseInt(dictionary.key), + transformIdx: i, data: {}, }; diff --git a/test/parser.test.ts b/test/parser.test.ts index a155f05..2c60887 100644 --- a/test/parser.test.ts +++ b/test/parser.test.ts @@ -62,6 +62,8 @@ describe('Parser', () => { expect(events[0].event!.name).toEqual('BallotCast'); expect(events[0].event!.contractHash).toEqual(contractHash); expect(events[0].event!.contractPackageHash).toEqual(contractPackageHash); + expect(events[0].event!.eventId).toEqual(2); + expect(events[0].event!.transformIdx).toEqual(99); expect(Object.keys(events[0].event!.data!).length).toEqual(5); @@ -75,6 +77,8 @@ describe('Parser', () => { expect(events[1].event!.name).toEqual('SimpleVotingCreated'); expect(events[1].event!.contractHash).toEqual(contractHash); expect(events[1].event!.contractPackageHash).toEqual(contractPackageHash); + expect(events[1].event!.eventId).toEqual(3); + expect(events[1].event!.transformIdx).toEqual(115); expect(Object.keys(events[1].event!.data!).length).toEqual(12);