diff --git a/.changeset/serious-ravens-appear.md b/.changeset/serious-ravens-appear.md new file mode 100644 index 0000000000..bc77407a11 --- /dev/null +++ b/.changeset/serious-ravens-appear.md @@ -0,0 +1,23 @@ +--- +'@reown/appkit-siwx': patch +'@reown/appkit-adapter-bitcoin': patch +'@reown/appkit-adapter-ethers': patch +'@reown/appkit-adapter-ethers5': patch +'@reown/appkit-adapter-solana': patch +'@reown/appkit-adapter-wagmi': patch +'@reown/appkit': patch +'@reown/appkit-utils': patch +'@reown/appkit-cdn': patch +'@reown/appkit-cli': patch +'@reown/appkit-common': patch +'@reown/appkit-core': patch +'@reown/appkit-experimental': patch +'@reown/appkit-polyfills': patch +'@reown/appkit-scaffold-ui': patch +'@reown/appkit-siwe': patch +'@reown/appkit-ui': patch +'@reown/appkit-wallet': patch +'@reown/appkit-wallet-button': patch +--- + +Fixes issue where 1CA session would not be found because of non-cased addresses mismatching.' diff --git a/packages/siwx/src/configs/CloudAuthSIWX.ts b/packages/siwx/src/configs/CloudAuthSIWX.ts index 123eff245f..d1f341a48a 100644 --- a/packages/siwx/src/configs/CloudAuthSIWX.ts +++ b/packages/siwx/src/configs/CloudAuthSIWX.ts @@ -72,7 +72,10 @@ export class CloudAuthSIWX implements SIWXConfig { const siweCaipNetworkId = `eip155:${siweSession?.chainId}` - if (!siweSession || siweCaipNetworkId !== chainId || siweSession.address !== address) { + const isSameAddress = siweSession?.address.toLowerCase() === address.toLowerCase() + const isSameNetwork = siweCaipNetworkId === chainId + + if (!isSameAddress || !isSameNetwork) { return [] } diff --git a/packages/siwx/tests/configs/CloudAuthSIWX.test.ts b/packages/siwx/tests/configs/CloudAuthSIWX.test.ts index c33487615b..bd4476657b 100644 --- a/packages/siwx/tests/configs/CloudAuthSIWX.test.ts +++ b/packages/siwx/tests/configs/CloudAuthSIWX.test.ts @@ -241,6 +241,33 @@ Issued At: 2024-12-05T16:02:32.905Z`) ) }) + it('gets sessions when address is not lowercased', async () => { + const fetchSpy = vi.spyOn(global, 'fetch') + + fetchSpy.mockResolvedValueOnce( + mocks.mockFetchResponse({ + address: '0x1234567890abcdef1234567890abcdef12345678', + chainId: 1 + }) + ) + + const sessions = await siwx.getSessions( + 'eip155:1', + '0x1234567890ABCDEF1234567890abcdef12345678' + ) + + expect(sessions).toEqual([ + { + data: { + accountAddress: '0x1234567890abcdef1234567890abcdef12345678', + chainId: 'eip155:1' + }, + message: '', + signature: '' + } + ]) + }) + it('returns empty array if session is not found', async () => { const fetchSpy = vi.spyOn(global, 'fetch')