From 19e1e29b3890f43804495135528aad244868554d Mon Sep 17 00:00:00 2001 From: Felix Zhang Date: Fri, 25 Jul 2025 14:40:40 -0700 Subject: [PATCH 1/2] window.top first --- .../src/interface/builder/core/getInjectedProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/account-sdk/src/interface/builder/core/getInjectedProvider.ts b/packages/account-sdk/src/interface/builder/core/getInjectedProvider.ts index 59ef4c77..395d1a83 100644 --- a/packages/account-sdk/src/interface/builder/core/getInjectedProvider.ts +++ b/packages/account-sdk/src/interface/builder/core/getInjectedProvider.ts @@ -13,7 +13,7 @@ type InjectedProvider = ProviderInterface & { }; export function getInjectedProvider(): InjectedProvider | null { - const injectedProvider = window.ethereum ?? window.top?.ethereum; + const injectedProvider = window.top?.ethereum ?? window.ethereum; if (injectedProvider?.[TBA_PROVIDER_IDENTIFIER]) { return injectedProvider; From a8082c4454e9c989a1331cef9c9a3f2d5aed6c44 Mon Sep 17 00:00:00 2001 From: Felix Zhang Date: Fri, 25 Jul 2025 14:46:05 -0700 Subject: [PATCH 2/2] test --- .../builder/core/getInjectedProvider.test.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/packages/account-sdk/src/interface/builder/core/getInjectedProvider.test.ts b/packages/account-sdk/src/interface/builder/core/getInjectedProvider.test.ts index 720ca8eb..65a69d66 100644 --- a/packages/account-sdk/src/interface/builder/core/getInjectedProvider.test.ts +++ b/packages/account-sdk/src/interface/builder/core/getInjectedProvider.test.ts @@ -104,7 +104,7 @@ describe('getInjectedProvider', () => { }); describe('when both window.ethereum and window.top.ethereum exist', () => { - it('should prefer window.ethereum over window.top.ethereum', () => { + it('should prefer window.top.ethereum', () => { const windowProvider = { isCoinbaseBrowser: true, request: vi.fn(), @@ -121,23 +121,18 @@ describe('getInjectedProvider', () => { const result = getInjectedProvider(); - expect(result).toBe(windowProvider); - expect(result).not.toBe(topProvider); + expect(result).not.toBe(windowProvider); + expect(result).toBe(topProvider); }); - it('should return null when window.ethereum exists but lacks TBA identifier (does not fallback)', () => { + it('should return null when window.top.ethereum exists but lacks TBA identifier (does not fallback)', () => { const windowProvider = { request: vi.fn(), source: 'window', }; - const topProvider = { - isCoinbaseBrowser: true, - request: vi.fn(), - source: 'top', - }; mockWindow.ethereum = windowProvider; - mockWindow.top.ethereum = topProvider; + mockWindow.top.ethereum = windowProvider; const result = getInjectedProvider();