From 8a4e69479224a89480e8b612ba50234c6ef8bd6c Mon Sep 17 00:00:00 2001 From: omerbek <21971506+omerbek@users.noreply.github.com> Date: Tue, 25 Aug 2026 10:23:21 +0300 Subject: [PATCH] fix(transport): ignore non-object postMessage data --- .../windowPostMessageTransport.test.ts | 18 ++++++++++++++++++ src/transports/windowPostMessageTransport.ts | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/src/transports/windowPostMessageTransport.test.ts b/src/transports/windowPostMessageTransport.test.ts index b0650d4..3697fca 100644 --- a/src/transports/windowPostMessageTransport.test.ts +++ b/src/transports/windowPostMessageTransport.test.ts @@ -230,6 +230,24 @@ describe('WindowPostMessageTransport', () => { expect(notificationCallback).not.toHaveBeenCalled(); }); + it('should ignore messages with non-object data', async () => { + await transport.connect(); + + expect(() => + messageHandler({ + data: null, + origin: mockLocation.origin, + } as MessageEvent), + ).not.toThrow(); + + expect(() => + messageHandler({ + data: 'unrelated message', + origin: mockLocation.origin, + } as MessageEvent), + ).not.toThrow(); + }); + it('should handle disconnection', async () => { await transport.connect(); expect(transport.isConnected()).toBe(true); diff --git a/src/transports/windowPostMessageTransport.ts b/src/transports/windowPostMessageTransport.ts index 5ba2ced..83c2aa6 100644 --- a/src/transports/windowPostMessageTransport.ts +++ b/src/transports/windowPostMessageTransport.ts @@ -93,6 +93,10 @@ export function getWindowPostMessageTransport( // Set up message listener messageListener = (event: MessageEvent) => { + if (!event.data || typeof event.data !== 'object') { + return; + } + const { target, data } = event.data; if (target !== INPAGE || data?.name !== MULTICHAIN_SUBSTREAM_NAME || event.origin !== location.origin) { return;