Browse Source

ts: Add tx signature to EventCallback (#1851)

Charlie You 3 years ago
parent
commit
90bbc8b6be
3 changed files with 8 additions and 4 deletions
  1. 4 0
      CHANGELOG.md
  2. 3 3
      ts/src/program/event.ts
  3. 1 1
      ts/src/program/index.ts

+ 4 - 0
CHANGELOG.md

@@ -32,6 +32,10 @@ com/project-serum/anchor/pull/1841)).
 
 ts: Change `BROWSER` env variable to `ANCHOR_BROWSER` ([#1233](https://github.com/project-serum/anchor/pull/1233)).
 
+### Breaking
+
+* ts: Add transaction signature to `EventCallback` parameters ([#1851](https://github.com/project-serum/anchor/pull/1851)).
+
 ## [0.24.2] - 2022-04-13
 
 ### Fixes

+ 3 - 3
ts/src/program/event.ts

@@ -23,7 +23,7 @@ export type EventData<T extends IdlEventField, Defined> = {
   [N in T["name"]]: DecodeType<(T & { name: N })["type"], Defined>;
 };
 
-type EventCallback = (event: any, slot: number) => void;
+type EventCallback = (event: any, slot: number, signature: string) => void;
 
 export class EventManager {
   /**
@@ -72,7 +72,7 @@ export class EventManager {
 
   public addEventListener(
     eventName: string,
-    callback: (event: any, slot: number) => void
+    callback: (event: any, slot: number, signature: string) => void
   ): number {
     let listener = this._listenerIdCount;
     this._listenerIdCount += 1;
@@ -107,7 +107,7 @@ export class EventManager {
               const listenerCb = this._eventCallbacks.get(listener);
               if (listenerCb) {
                 const [, callback] = listenerCb;
-                callback(event.data, ctx.slot);
+                callback(event.data, ctx.slot, logs.signature);
               }
             });
           }

+ 1 - 1
ts/src/program/index.ts

@@ -362,7 +362,7 @@ export class Program<IDL extends Idl = Idl> {
    */
   public addEventListener(
     eventName: string,
-    callback: (event: any, slot: number) => void
+    callback: (event: any, slot: number, signature: string) => void
   ): number {
     return this._events.addEventListener(eventName, callback);
   }