diff --git a/packages/codegen/src/data/entities/Event.yaml b/packages/codegen/src/data/entities/Event.yaml index 1f937a2c..320f1b35 100644 --- a/packages/codegen/src/data/entities/Event.yaml +++ b/packages/codegen/src/data/entities/Event.yaml @@ -37,6 +37,40 @@ columns: columnOptions: - option: length value: 42 + - name: topic0 + pgType: varchar + tsType: string + columnType: Column + columnOptions: + - option: length + value: 66 + - name: topic1 + pgType: varchar + tsType: string | null + columnType: Column + columnOptions: + - option: length + value: 66 + - option: nullable + value: true + - name: topic2 + pgType: varchar + tsType: string | null + columnType: Column + columnOptions: + - option: length + value: 66 + - option: nullable + value: true + - name: topic3 + pgType: varchar + tsType: string | null + columnType: Column + columnOptions: + - option: length + value: 66 + - option: nullable + value: true - name: eventName pgType: varchar tsType: string diff --git a/packages/util/src/indexer.ts b/packages/util/src/indexer.ts index 0fd0f0ba..9cc6d27f 100644 --- a/packages/util/src/indexer.ts +++ b/packages/util/src/indexer.ts @@ -672,6 +672,8 @@ export class Indexer { const tx = transactionMap[txHash]; const extraInfo: { [key: string]: any } = { topics, data, tx, logIndex }; + const [topic0, topic1, topic2, topic3] = topics as string[]; + const contract = ethers.utils.getAddress(address); const watchedContracts = this.isContractAddressWatched(contract); @@ -693,6 +695,10 @@ export class Indexer { index: this._upstreamConfig.ethServer.isFEVM ? li : logIndex, txHash, contract, + topic0, + topic1, + topic2, + topic3, eventName, eventInfo: JSONbigNative.stringify(eventInfo), extraInfo: JSONbigNative.stringify(extraInfo), diff --git a/packages/util/src/types.ts b/packages/util/src/types.ts index f799fde1..5fc04aa0 100644 --- a/packages/util/src/types.ts +++ b/packages/util/src/types.ts @@ -61,6 +61,10 @@ export interface EventInterface { txHash: string; index: number; contract: string; + topic0: string; + topic1: string | null; + topic2: string | null; + topic3: string | null; eventName: string; eventInfo: string; extraInfo: string;