diff --git a/CHANGELOG.md b/CHANGELOG.md index 86d1b77dec..bb99b79528 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ The minor version will be incremented upon a breaking change and the patch versi * lang: Fix IDL `seed` generation for byte string literals. ([#2125](https://github.com/coral-xyz/anchor/pull/2125)) * ts: Update seeds inference to allow nested user defined structs within the seeds ([#2198](https://github.com/coral-xyz/anchor/pull/2198)) +* event: Fix multiple event listeners with the same name. ([#2165](https://github.com/coral-xyz/anchor/pull/2165)) ## [0.25.0] - 2022-07-05 diff --git a/ts/packages/anchor/src/program/event.ts b/ts/packages/anchor/src/program/event.ts index 872251b39c..75770a80f1 100644 --- a/ts/packages/anchor/src/program/event.ts +++ b/ts/packages/anchor/src/program/event.ts @@ -78,7 +78,7 @@ export class EventManager { this._listenerIdCount += 1; // Store the listener into the event map. - if (!(eventName in this._eventCallbacks)) { + if (!this._eventListeners.has(eventName)) { this._eventListeners.set(eventName, []); } this._eventListeners.set( @@ -138,6 +138,7 @@ export class EventManager { // Update both maps. this._eventCallbacks.delete(listener); listeners = listeners.filter((l) => l !== listener); + this._eventListeners.set(eventName, listeners); if (listeners.length === 0) { this._eventListeners.delete(eventName); }