From 5e6a98ceed63117242841e560fca3fc35ed2a3aa Mon Sep 17 00:00:00 2001 From: danilaverbena <191888356+danilaverbena@users.noreply.github.com> Date: Thu, 16 Jul 2026 03:06:05 +0700 Subject: [PATCH] fix(eip-1193): sign personal_sign payloads as raw bytes --- .../src/__tests__/providers/eip-1193/provider.test.ts | 6 ++++++ .../w3s-web-core-sdk/src/providers/eip-1193/provider.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/w3s-web-core-sdk/src/__tests__/providers/eip-1193/provider.test.ts b/packages/w3s-web-core-sdk/src/__tests__/providers/eip-1193/provider.test.ts index b5f01da..21a3bab 100644 --- a/packages/w3s-web-core-sdk/src/__tests__/providers/eip-1193/provider.test.ts +++ b/packages/w3s-web-core-sdk/src/__tests__/providers/eip-1193/provider.test.ts @@ -198,13 +198,19 @@ describe('Providers > eip-1193 > EIP1193Provider > rpc methods', () => { method: 'personal_sign', params: PersonalSignParams, } + const signMessageSpy = jest.spyOn(account, 'signMessage') const response = await provider.request< string, typeof PersonalSignResponse >(mockPayload) + expect(signMessageSpy).toHaveBeenCalledWith({ + message: { raw: PersonalSignParams[0] }, + }) expect(response).toEqual(PersonalSignResponse) + + signMessageSpy.mockRestore() }) it('should throw an error when the to parameter is not provided for eth_sendTransaction', async () => { diff --git a/packages/w3s-web-core-sdk/src/providers/eip-1193/provider.ts b/packages/w3s-web-core-sdk/src/providers/eip-1193/provider.ts index 0b1c10a..fd082d5 100644 --- a/packages/w3s-web-core-sdk/src/providers/eip-1193/provider.ts +++ b/packages/w3s-web-core-sdk/src/providers/eip-1193/provider.ts @@ -76,7 +76,7 @@ export default class EIP1193Provider< await this.validateAddress(address) const result = await this.bundlerClient.account!.signMessage({ - message: challenge, + message: { raw: challenge }, }) return this.getResponse(result, payload)